DataSetBindingDemoPanel.java
上传用户:zhengdagz
上传日期:2014-03-06
资源大小:1956k
文件大小:14k
源码类别:

xml/soap/webservice

开发平台:

Java

  1. /*
  2.  * DataSetBindingDemoPanel.java
  3.  *
  4.  * Created on April 29, 2005, 1:48 PM
  5.  */
  6. package org.jdesktop.demo.binding;
  7. import javax.swing.JSlider;
  8. import org.jdesktop.binding.DataModel;
  9. import org.jdesktop.binding.TabularDataModel;
  10. import org.jdesktop.binding.swingx.AbstractBinding;
  11. import org.jdesktop.binding.swingx.BooleanBinding;
  12. import org.jdesktop.binding.swingx.ComboBoxBinding;
  13. import org.jdesktop.binding.swingx.DirectListBinding;
  14. import org.jdesktop.binding.swingx.LabelBinding;
  15. import org.jdesktop.binding.swingx.RadioBinding;
  16. import org.jdesktop.binding.swingx.TextBinding;
  17. import org.jdesktop.dataset.DataRow;
  18. import org.jdesktop.dataset.DataSet;
  19. import org.jdesktop.dataset.DataTable;
  20. import org.jdesktop.dataset.adapter.DataModelAdapter;
  21. import org.jdesktop.dataset.adapter.SelectionModelAdapter;
  22. import org.jdesktop.dataset.adapter.TabularDataModelAdapter;
  23. import org.jdesktop.demo.DemoPanel;
  24. /**
  25.  *
  26.  * @author  rbair
  27.  */
  28. public class DataSetBindingDemoPanel extends DemoPanel {
  29.     private DataSet testDS;
  30.     
  31.     /** Creates new form DataSetBindingDemoPanel */
  32.     public DataSetBindingDemoPanel() {
  33.         setName("Binding to DataSet");
  34.         initComponents();
  35.         //set up the DataSet
  36.         testDS = DataSetBindingDemoPanel.createTestDataSet();
  37.         //load the DataSet with some test data
  38.         DataSetBindingDemoPanel.loadTestDataSet(testDS);
  39.         //now to bind
  40.         TabularDataModel tdm = new TabularDataModelAdapter(testDS.getTable("Users"));
  41.         new DirectListBinding(hackerList, tdm, "name", new SelectionModelAdapter(testDS.getTable("Users").getSelector("current")));
  42.         DataModel model = new DataModelAdapter(testDS.getTable("Users").getSelector("current"));
  43.         new LabelBinding(idLBL, model, "id");
  44.         new TextBinding(nameTF, model, "name");
  45.         new RadioBinding(mfRadioGroup, model, "gender");
  46.         new BooleanBinding(developerCHK, model, "developer");
  47.         new ComboBoxBinding(langCB, model, "primary_language");
  48.         new CustomSliderBinding(skillSlider, model, "skill_level");
  49.         new TextBinding(notesTA, model, "notes");
  50.     }
  51.     public String getHtmlDescription() {
  52.         return "<html>This demo shows the results of binding various UI " +
  53.                 "components to a DataSet. The DataSet schema can be viewed by " +
  54.                 "clicking the 'View Schema' button</html>";
  55.     }
  56.     private static DataSet createTestDataSet() {
  57.         DataSet ds = new DataSet("Test");
  58.         DataTable table = ds.createTable("Users");
  59.         table.createColumn("id").setKeyColumn(true);
  60.         table.getColumn("id").setType(Integer.class);
  61.         table.createColumn("name");
  62.         table.createColumn("gender");
  63.         table.createColumn("developer").setType(Boolean.class);
  64.         table.createColumn("primary_language");
  65.         table.createColumn("skill_level").setType(Integer.class);
  66.         table.createColumn("notes");
  67.         return ds;
  68.     }
  69.     
  70.     private static void loadTestDataSet(DataSet ds) {
  71.         DataTable users = ds.getTable("Users");
  72.         appendUser(users, 100, "John Doe", "Male", true, "English", 4, "Nice guy");
  73.         appendUser(users, 101, "Jane Doe", "Female", true, "English", 6, "Not related to John Doe, amazingly enough");
  74.         appendUser(users, 120, "Harry Hacker", "Male", true, "French", 9, "Remarkable fello!");
  75.         appendUser(users, 300, "Marlaina S. Coder", "Female", true, "German", 8, "Oh boy can she code!");
  76.     }
  77.     
  78.     private static DataRow appendUser(DataTable users, int id, String name, 
  79.             String gender, boolean dev, String lang, int skillz, String notes) {
  80.         DataRow user = users.appendRowNoEvent();
  81.         user.setValue("id", id);
  82.         user.setValue("name", name);
  83.         user.setValue("gender", gender);
  84.         user.setValue("developer", dev);
  85.         user.setValue("primary_language", lang);
  86.         user.setValue("skill_level", skillz);
  87.         user.setValue("notes", notes);
  88.         user.setStatus(DataRow.DataRowStatus.UNCHANGED);
  89.         return user;
  90.     }
  91.     
  92.     /** This method is called from within the constructor to
  93.      * initialize the form.
  94.      * WARNING: Do NOT modify this code. The content of this method is
  95.      * always regenerated by the Form Editor.
  96.      */
  97.     // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents
  98.     private void initComponents() {
  99.         java.awt.GridBagConstraints gridBagConstraints;
  100.         jSplitPane1 = new javax.swing.JSplitPane();
  101.         jScrollPane1 = new javax.swing.JScrollPane();
  102.         hackerList = new javax.swing.JList();
  103.         jPanel1 = new javax.swing.JPanel();
  104.         jLabel1 = new javax.swing.JLabel();
  105.         nameTF = new javax.swing.JTextField();
  106.         jLabel2 = new javax.swing.JLabel();
  107.         idLBL = new javax.swing.JLabel();
  108.         jLabel4 = new javax.swing.JLabel();
  109.         jLabel5 = new javax.swing.JLabel();
  110.         developerCHK = new javax.swing.JCheckBox();
  111.         jLabel6 = new javax.swing.JLabel();
  112.         langCB = new javax.swing.JComboBox();
  113.         jLabel7 = new javax.swing.JLabel();
  114.         skillSlider = new javax.swing.JSlider();
  115.         jLabel8 = new javax.swing.JLabel();
  116.         jScrollPane3 = new javax.swing.JScrollPane();
  117.         notesTA = new javax.swing.JTextArea();
  118.         mfRadioGroup = new org.jdesktop.swingx.JXRadioGroup();
  119.         mfRadioGroup.add("Male");
  120.         mfRadioGroup.add("Female");
  121.         setLayout(new java.awt.BorderLayout());
  122.         jScrollPane1.setViewportView(hackerList);
  123.         jSplitPane1.setLeftComponent(jScrollPane1);
  124.         jPanel1.setLayout(new java.awt.GridBagLayout());
  125.         jLabel1.setText("Bound JLabel:");
  126.         gridBagConstraints = new java.awt.GridBagConstraints();
  127.         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
  128.         gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
  129.         gridBagConstraints.insets = new java.awt.Insets(12, 12, 0, 0);
  130.         jPanel1.add(jLabel1, gridBagConstraints);
  131.         nameTF.setText("jTextField1");
  132.         gridBagConstraints = new java.awt.GridBagConstraints();
  133.         gridBagConstraints.gridx = 1;
  134.         gridBagConstraints.gridy = 1;
  135.         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
  136.         gridBagConstraints.weightx = 1.0;
  137.         gridBagConstraints.insets = new java.awt.Insets(7, 5, 0, 11);
  138.         jPanel1.add(nameTF, gridBagConstraints);
  139.         jLabel2.setText("Bound JTextField:");
  140.         gridBagConstraints = new java.awt.GridBagConstraints();
  141.         gridBagConstraints.gridx = 0;
  142.         gridBagConstraints.gridy = 1;
  143.         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
  144.         gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
  145.         gridBagConstraints.insets = new java.awt.Insets(7, 12, 0, 0);
  146.         jPanel1.add(jLabel2, gridBagConstraints);
  147.         idLBL.setText("jLabel3");
  148.         gridBagConstraints = new java.awt.GridBagConstraints();
  149.         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
  150.         gridBagConstraints.weightx = 1.0;
  151.         gridBagConstraints.insets = new java.awt.Insets(12, 5, 0, 11);
  152.         jPanel1.add(idLBL, gridBagConstraints);
  153.         jLabel4.setText("Bound JXRadioGroup:");
  154.         gridBagConstraints = new java.awt.GridBagConstraints();
  155.         gridBagConstraints.gridx = 0;
  156.         gridBagConstraints.gridy = 2;
  157.         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
  158.         gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
  159.         gridBagConstraints.insets = new java.awt.Insets(7, 12, 0, 0);
  160.         jPanel1.add(jLabel4, gridBagConstraints);
  161.         jLabel5.setText("Bound JCheckBox:");
  162.         gridBagConstraints = new java.awt.GridBagConstraints();
  163.         gridBagConstraints.gridx = 0;
  164.         gridBagConstraints.gridy = 3;
  165.         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
  166.         gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
  167.         gridBagConstraints.insets = new java.awt.Insets(7, 12, 0, 0);
  168.         jPanel1.add(jLabel5, gridBagConstraints);
  169.         developerCHK.setText("Developer");
  170.         gridBagConstraints = new java.awt.GridBagConstraints();
  171.         gridBagConstraints.gridx = 1;
  172.         gridBagConstraints.gridy = 3;
  173.         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
  174.         gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
  175.         gridBagConstraints.weightx = 1.0;
  176.         gridBagConstraints.insets = new java.awt.Insets(7, 5, 0, 11);
  177.         jPanel1.add(developerCHK, gridBagConstraints);
  178.         jLabel6.setText("Bound JComboBox:");
  179.         gridBagConstraints = new java.awt.GridBagConstraints();
  180.         gridBagConstraints.gridx = 0;
  181.         gridBagConstraints.gridy = 4;
  182.         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
  183.         gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
  184.         gridBagConstraints.insets = new java.awt.Insets(7, 12, 0, 0);
  185.         jPanel1.add(jLabel6, gridBagConstraints);
  186.         langCB.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "English", "French", "German", "Spanish", "Russian" }));
  187.         gridBagConstraints = new java.awt.GridBagConstraints();
  188.         gridBagConstraints.gridx = 1;
  189.         gridBagConstraints.gridy = 4;
  190.         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
  191.         gridBagConstraints.weightx = 1.0;
  192.         gridBagConstraints.insets = new java.awt.Insets(7, 5, 0, 11);
  193.         jPanel1.add(langCB, gridBagConstraints);
  194.         jLabel7.setText("Bound JSlider:");
  195.         gridBagConstraints = new java.awt.GridBagConstraints();
  196.         gridBagConstraints.gridx = 0;
  197.         gridBagConstraints.gridy = 5;
  198.         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
  199.         gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
  200.         gridBagConstraints.insets = new java.awt.Insets(7, 12, 0, 0);
  201.         jPanel1.add(jLabel7, gridBagConstraints);
  202.         skillSlider.setMajorTickSpacing(1);
  203.         skillSlider.setMaximum(10);
  204.         skillSlider.setMinorTickSpacing(1);
  205.         skillSlider.setPaintLabels(true);
  206.         skillSlider.setPaintTicks(true);
  207.         skillSlider.setSnapToTicks(true);
  208.         skillSlider.setToolTipText("Select the skill level of the developer, 1 being lowest, 10 being highest");
  209.         gridBagConstraints = new java.awt.GridBagConstraints();
  210.         gridBagConstraints.gridx = 1;
  211.         gridBagConstraints.gridy = 5;
  212.         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
  213.         gridBagConstraints.weightx = 1.0;
  214.         gridBagConstraints.insets = new java.awt.Insets(7, 5, 0, 11);
  215.         jPanel1.add(skillSlider, gridBagConstraints);
  216.         jLabel8.setText("Bound JEditorPane:");
  217.         gridBagConstraints = new java.awt.GridBagConstraints();
  218.         gridBagConstraints.gridx = 0;
  219.         gridBagConstraints.gridy = 6;
  220.         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
  221.         gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
  222.         gridBagConstraints.insets = new java.awt.Insets(7, 12, 0, 0);
  223.         jPanel1.add(jLabel8, gridBagConstraints);
  224.         jScrollPane3.setViewportView(notesTA);
  225.         gridBagConstraints = new java.awt.GridBagConstraints();
  226.         gridBagConstraints.gridx = 1;
  227.         gridBagConstraints.gridy = 6;
  228.         gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
  229.         gridBagConstraints.weightx = 1.0;
  230.         gridBagConstraints.weighty = 1.0;
  231.         gridBagConstraints.insets = new java.awt.Insets(7, 5, 11, 11);
  232.         jPanel1.add(jScrollPane3, gridBagConstraints);
  233.         gridBagConstraints = new java.awt.GridBagConstraints();
  234.         gridBagConstraints.gridx = 1;
  235.         gridBagConstraints.gridy = 2;
  236.         gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
  237.         gridBagConstraints.weightx = 1.0;
  238.         gridBagConstraints.insets = new java.awt.Insets(7, 5, 0, 11);
  239.         jPanel1.add(mfRadioGroup, gridBagConstraints);
  240.         jSplitPane1.setRightComponent(jPanel1);
  241.         add(jSplitPane1, java.awt.BorderLayout.CENTER);
  242.     }
  243.     // </editor-fold>//GEN-END:initComponents
  244.     
  245.     
  246.     // Variables declaration - do not modify//GEN-BEGIN:variables
  247.     private javax.swing.JCheckBox developerCHK;
  248.     private javax.swing.JList hackerList;
  249.     private javax.swing.JLabel idLBL;
  250.     private javax.swing.JLabel jLabel1;
  251.     private javax.swing.JLabel jLabel2;
  252.     private javax.swing.JLabel jLabel4;
  253.     private javax.swing.JLabel jLabel5;
  254.     private javax.swing.JLabel jLabel6;
  255.     private javax.swing.JLabel jLabel7;
  256.     private javax.swing.JLabel jLabel8;
  257.     private javax.swing.JPanel jPanel1;
  258.     private javax.swing.JScrollPane jScrollPane1;
  259.     private javax.swing.JScrollPane jScrollPane3;
  260.     private javax.swing.JSplitPane jSplitPane1;
  261.     private javax.swing.JComboBox langCB;
  262.     private org.jdesktop.swingx.JXRadioGroup mfRadioGroup;
  263.     private javax.swing.JTextField nameTF;
  264.     private javax.swing.JTextArea notesTA;
  265.     private javax.swing.JSlider skillSlider;
  266.     // End of variables declaration//GEN-END:variables
  267.     
  268.     public static final class CustomSliderBinding extends AbstractBinding {
  269.         private JSlider slider;
  270.         
  271.         
  272.         public CustomSliderBinding(JSlider slider, DataModel model, String fieldName) {
  273.             super(slider, model, fieldName, AbstractBinding.AUTO_VALIDATE_NONE);
  274.         }
  275.         
  276.         protected void setComponent(javax.swing.JComponent component) {
  277.             assert component instanceof JSlider;
  278.             slider = (JSlider)component;
  279.         }
  280.         protected void setComponentValue(Object value) {
  281.             if (value instanceof Number) {
  282.                 slider.setValue(((Number)value).intValue());
  283.             }
  284.         }
  285.         protected Object getComponentValue() {
  286.             return slider.getValue();
  287.         }
  288.         public javax.swing.JComponent getComponent() {
  289.             return slider;
  290.         }
  291.         
  292.     }
  293. }