Author: jflesch
Date: 2008-02-07 02:26:04 +0000 (Thu, 07 Feb 2008)
New Revision: 17642

Modified:
   trunk/apps/Thaw/src/thaw/plugins/nodeConfigurator/NodeConfiguratorTab.java
Log:
Node configurator : use a combobox (true|false) instead of a text field when 
the default value is "true" or "false"

Modified: 
trunk/apps/Thaw/src/thaw/plugins/nodeConfigurator/NodeConfiguratorTab.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/nodeConfigurator/NodeConfiguratorTab.java  
2008-02-07 02:02:59 UTC (rev 17641)
+++ trunk/apps/Thaw/src/thaw/plugins/nodeConfigurator/NodeConfiguratorTab.java  
2008-02-07 02:26:04 UTC (rev 17642)
@@ -2,6 +2,7 @@

 import javax.swing.JPanel;
 import javax.swing.JList;
+import javax.swing.JComboBox;
 import javax.swing.JTextField;
 import javax.swing.JTextArea;
 import javax.swing.JScrollPane;
@@ -39,9 +40,15 @@
        private JList categoryChoice;
        private JList settingChoice;
        private JTextArea descriptionArea;
+
        private JTextField valueField;
+       private JComboBox valueSelecter;
+       private boolean selecter = false;
+
        private JTextField defaultField;

+       private JPanel valuePanel;
+       
        private JButton applyButton;

        public final static int COLUMNS_WIDTH = 125;
@@ -49,6 +56,9 @@

        private Hashtable categories = null;
        private Vector categoryNames = null;
+       
+       private final static String trueStr = 
I18n.getMessage("thaw.common.true");
+       private final static String falseStr = 
I18n.getMessage("thaw.common.false");

        public NodeConfiguratorTab(boolean advanced, FCPQueueManager 
queueManager) {
                this.advanced = advanced;
@@ -107,7 +117,7 @@
                JPanel valueAndButtonsPanel = new JPanel(new BorderLayout(0, 
0));

                /* value */     
-               JPanel valuePanel = new JPanel(new GridLayout(4, 0));
+               valuePanel = new JPanel(new GridLayout(4, 0));
                valuePanel.add(new 
JLabel(I18n.getMessage("thaw.plugin.nodeConfig.default")));
                defaultField = new JTextField();
                defaultField.setEditable(false);
@@ -115,9 +125,15 @@
                valuePanel.add(defaultField);
                valuePanel.add(new 
JLabel(I18n.getMessage("thaw.plugin.nodeConfig.value")));
                valueField = new JTextField();
-               valueField.addActionListener(this);
                valuePanel.add(valueField);

+               selecter = false;
+               
+               valueSelecter = new JComboBox(new String[] {
+                       trueStr,
+                       falseStr
+               });
+               
                valueAndButtonsPanel.add(valuePanel, BorderLayout.NORTH);

                /* button(s) */
@@ -156,20 +172,51 @@
                settingChoice.removeListSelectionListener(this);
                settingChoice.setListData(new Vector());
                settingChoice.addListSelectionListener(this);
+               
+               displayField();

                descriptionArea.setText("");
                valueField.setText("");
                defaultField.setText("");
        }
+       
+       private void displaySelecter() {
+               if (!selecter) {
+                       valuePanel.remove(valueField);
+                       valuePanel.add(valueSelecter);
+                       selecter = true;
+                       panel.revalidate();
+               }
+       }
+       
+       private void displayField() {
+               if (selecter) {
+                       valuePanel.remove(valueSelecter);
+                       valuePanel.add(valueField);
+                       selecter = false;
+                       panel.revalidate();
+               }
+       }

        public void actionPerformed(ActionEvent e) {
-               if (e.getSource() == applyButton || e.getSource() == 
valueField) {
+               if (e.getSource() == applyButton) {

                        FCPGetConfig.ConfigSetting setting = 
(FCPGetConfig.ConfigSetting)settingChoice.getSelectedValue();

                        String name = setting.getName();
-                       String value = valueField.getText();

+                       String value;
+                       
+                       if (!selecter)
+                               value = valueField.getText();
+                       else {
+                               String selected = 
(String)valueSelecter.getSelectedItem();
+                               if (trueStr == selected)
+                                       value = "true";
+                               else
+                                       value = "false";
+                       }
+                       
                        FCPModifyConfig modifConf = new FCPModifyConfig(name, 
value);
                        modifConf.start(queueManager);

@@ -190,6 +237,8 @@
                                settingChoice.removeListSelectionListener(this);
                                
settingChoice.setListData((Vector)categories.get(catName));
                                settingChoice.addListSelectionListener(this);
+                               
+                               displayField();

                                descriptionArea.setText("");
                                valueField.setText("");
@@ -200,8 +249,24 @@
                } else if (e.getSource() == settingChoice) {

                        FCPGetConfig.ConfigSetting setting = 
(FCPGetConfig.ConfigSetting)settingChoice.getSelectedValue();
-                       descriptionArea.setText(setting.getLongDesc());
-                       valueField.setText(setting.getCurrent());
+                       descriptionArea.setText(setting.getLongDesc());         
        
+
+                       if ("false".equals(setting.getDefault())
+                                       || "true".equals(setting.getDefault())) 
{
+
+                               displaySelecter();
+
+                               if ("true".equals(setting.getCurrent()))
+                                       valueSelecter.setSelectedItem(trueStr);
+                               else
+                                       valueSelecter.setSelectedItem(falseStr);
+
+                       } else {
+                               
+                               displayField();
+                               valueField.setText(setting.getCurrent());
+                       }
+
                        defaultField.setText(setting.getDefault());
                }
        }


Reply via email to