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());
}
}