summaryrefslogtreecommitdiff
path: root/java/src
diff options
context:
space:
mode:
authorBernard Normier <bernard@zeroc.com>2006-06-02 22:25:29 +0000
committerBernard Normier <bernard@zeroc.com>2006-06-02 22:25:29 +0000
commite32c0b2bfa459a9f089862a69ba518e5da7a8d32 (patch)
tree7aa4ff8f36e1ed4d81bb104cc1e30062f60ffcae /java/src
parentFixed bug #1026 (diff)
downloadice-e32c0b2bfa459a9f089862a69ba518e5da7a8d32.tar.bz2
ice-e32c0b2bfa459a9f089862a69ba518e5da7a8d32.tar.xz
ice-e32c0b2bfa459a9f089862a69ba518e5da7a8d32.zip
Parameter values now show 'Use default' or 'Not set' as appropriate
Diffstat (limited to 'java/src')
-rwxr-xr-xjava/src/IceGridGUI/Application/ParameterValuesField.java198
-rwxr-xr-xjava/src/IceGridGUI/Application/ParametersField.java145
-rwxr-xr-xjava/src/IceGridGUI/Application/ServerInstanceEditor.java17
-rwxr-xr-xjava/src/IceGridGUI/Application/ServiceInstanceEditor.java17
-rwxr-xr-xjava/src/IceGridGUI/Application/TemplateEditor.java4
5 files changed, 262 insertions, 119 deletions
diff --git a/java/src/IceGridGUI/Application/ParameterValuesField.java b/java/src/IceGridGUI/Application/ParameterValuesField.java
new file mode 100755
index 00000000000..5959ca5bd95
--- /dev/null
+++ b/java/src/IceGridGUI/Application/ParameterValuesField.java
@@ -0,0 +1,198 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2006 ZeroC, Inc. All rights reserved.
+//
+// This copy of Ice is licensed to you under the terms described in the
+// ICE_LICENSE file included in this distribution.
+//
+// **********************************************************************
+package IceGridGUI.Application;
+
+import IceGrid.*;
+import IceGridGUI.*;
+
+import java.awt.event.ActionEvent;
+
+import javax.swing.AbstractAction;
+import javax.swing.Action;
+import javax.swing.DefaultCellEditor;
+import javax.swing.JComboBox;
+import javax.swing.JTable;
+import javax.swing.JTextField;
+import javax.swing.KeyStroke;
+import javax.swing.event.TableModelEvent;
+import javax.swing.event.TableModelListener;
+import javax.swing.table.DefaultTableCellRenderer;
+import javax.swing.table.DefaultTableModel;
+import javax.swing.table.TableCellEditor;
+import javax.swing.table.TableColumn;
+
+//
+// A special field used to show/edit parameter values
+//
+
+public class ParameterValuesField extends JTable
+{
+ public ParameterValuesField(Editor editor)
+ {
+ _editor = editor;
+
+ _columnNames = new java.util.Vector(2);
+ _columnNames.add("Name");
+ _columnNames.add("Value");
+
+ _useDefaultCombo.setEditable(true);
+ _notSetCombo.setEditable(true);
+ }
+
+ public void set(java.util.List names,
+ java.util.Map values,
+ java.util.Map defaultValues,
+ final Utils.Resolver resolver)
+ {
+ //
+ // Transform map into vector of vectors
+ //
+ java.util.Vector vector = new java.util.Vector(names.size());
+ java.util.Iterator p = names.iterator();
+
+ _hasDefault = new boolean[names.size()];
+ int i = 0;
+
+ while(p.hasNext())
+ {
+ java.util.Vector row = new java.util.Vector(2);
+ String name = (String)p.next();
+ row.add(name);
+
+ _hasDefault[i] = (defaultValues.get(name) != null);
+
+ Object val = values.get(name);
+ if(val == null)
+ {
+ row.add(_hasDefault[i] ? _useDefault : _notSet);
+ }
+ else
+ {
+ row.add(Utils.substitute((String)val, resolver));
+ }
+ vector.add(row);
+ i++;
+ }
+
+ _model = new DefaultTableModel(vector, _columnNames)
+ {
+ public boolean isCellEditable(int row, int column)
+ {
+ if(resolver == null)
+ {
+ return column > 0;
+ }
+ else
+ {
+ return false;
+ }
+ }
+ };
+
+ _model.addTableModelListener(new TableModelListener()
+ {
+ public void tableChanged(TableModelEvent e)
+ {
+ _editor.updated();
+ }
+ });
+ setModel(_model);
+
+ setCellSelectionEnabled(resolver == null);
+ setOpaque(resolver == null);
+ setPreferredScrollableViewportSize(getPreferredSize());
+
+ DefaultTableCellRenderer cr = (DefaultTableCellRenderer)
+ getDefaultRenderer(String.class);
+ cr.setOpaque(resolver == null);
+ }
+
+
+ public java.util.Map getValues()
+ {
+ java.util.Map values = new java.util.HashMap();
+
+ if(isEditing())
+ {
+ getCellEditor().stopCellEditing();
+ }
+ java.util.Vector vector = _model.getDataVector();
+
+ java.util.Iterator p = vector.iterator();
+ while(p.hasNext())
+ {
+ java.util.Vector row = (java.util.Vector)p.next();
+
+ //
+ // Eliminate rows with null or empty names
+ //
+ String name = (String)row.elementAt(0);
+ assert name != null;
+
+ Object val = row.elementAt(1);
+
+ //
+ // Eliminate entries with default or not set value
+ //
+ if(val != _useDefault && val != _notSet)
+ {
+ assert val != null;
+ values.put(name, val);
+ }
+ }
+ return values;
+ }
+
+ public TableCellEditor getCellEditor(int row,
+ int column)
+ {
+ if(column == 1)
+ {
+ return _hasDefault[row] ? _useDefaultEditor : _notSetEditor;
+ }
+ else
+ {
+ return super.getCellEditor(row, column);
+ }
+ }
+
+
+ private static final Object _useDefault = new Object()
+ {
+ public String toString()
+ {
+ return "Use default";
+ }
+ };
+
+ private static final Object _notSet = new Object()
+ {
+ public String toString()
+ {
+ return "Not set";
+ }
+ };
+
+ private JComboBox _useDefaultCombo = new JComboBox(
+ new Object[]{_useDefault});
+
+ private JComboBox _notSetCombo = new JComboBox(
+ new Object[]{_notSet});
+
+ private TableCellEditor _useDefaultEditor = new DefaultCellEditor(_useDefaultCombo);
+ private TableCellEditor _notSetEditor = new DefaultCellEditor(_notSetCombo);
+
+ private DefaultTableModel _model;
+ private java.util.Vector _columnNames;
+ private Editor _editor;
+
+ private boolean[] _hasDefault;
+}
+
+
diff --git a/java/src/IceGridGUI/Application/ParametersField.java b/java/src/IceGridGUI/Application/ParametersField.java
index f5f107df0a0..d3f48301b3d 100755
--- a/java/src/IceGridGUI/Application/ParametersField.java
+++ b/java/src/IceGridGUI/Application/ParametersField.java
@@ -33,51 +33,38 @@ import javax.swing.table.TableColumn;
public class ParametersField extends JTable
{
- public ParametersField(Editor editor, String valHeading,
- boolean editNames, final String nullLabel)
+ public ParametersField(Editor editor)
{
- _editNames = editNames;
_editor = editor;
- _nullObject = new Object()
- {
- public String toString()
- {
- return nullLabel;
- }
- };
-
_columnNames = new java.util.Vector(2);
_columnNames.add("Name");
- _columnNames.add(valHeading);
+ _columnNames.add("Default value");
- JComboBox comboBox = new JComboBox();
+ JComboBox comboBox = new JComboBox(
+ new Object[]{_noDefault});
comboBox.setEditable(true);
- comboBox.addItem(_nullObject);
_cellEditor = new DefaultCellEditor(comboBox);
Action deleteRow = new AbstractAction("Delete selected row(s)")
{
public void actionPerformed(ActionEvent e)
{
- if(_editable && _editNames)
+ if(isEditing())
{
- if(isEditing())
+ getCellEditor().stopCellEditing();
+ }
+
+ for(;;)
+ {
+ int selectedRow = getSelectedRow();
+ if(selectedRow == -1)
{
- getCellEditor().stopCellEditing();
+ break;
}
-
- for(;;)
+ else
{
- int selectedRow = getSelectedRow();
- if(selectedRow == -1)
- {
- break;
- }
- else
- {
- _model.removeRow(selectedRow);
- }
+ _model.removeRow(selectedRow);
}
}
}
@@ -88,12 +75,8 @@ public class ParametersField extends JTable
}
- public void set(java.util.List names,
- java.util.Map values,
- Utils.Resolver resolver, boolean editable)
+ public void set(java.util.List names, java.util.Map values)
{
- _editable = editable;
-
//
// Transform map into vector of vectors
//
@@ -109,62 +92,35 @@ public class ParametersField extends JTable
Object val = values.get(name);
if(val == null)
{
- row.add(_nullObject);
+ row.add(_noDefault);
}
else
{
- row.add(Utils.substitute((String)val, resolver));
+ row.add(val);
}
vector.add(row);
}
- if(_editable && _editNames)
- {
- java.util.Vector newRow = new java.util.Vector(2);
- newRow.add("");
- newRow.add(_nullObject);
- vector.add(newRow);
- }
- _model = new DefaultTableModel(vector, _columnNames)
- {
- public boolean isCellEditable(int row, int column)
- {
- if(_editable)
- {
- if(column == 0)
- {
- return _editNames;
- }
- else
- {
- return true;
- }
- }
- else
- {
- return false;
- }
- }
- };
+ java.util.Vector newRow = new java.util.Vector(2);
+ newRow.add("");
+ newRow.add(_noDefault);
+ vector.add(newRow);
+
+ _model = new DefaultTableModel(vector, _columnNames);
_model.addTableModelListener(new TableModelListener()
{
public void tableChanged(TableModelEvent e)
{
- if(_editable)
+ Object lastKey = _model.getValueAt(
+ _model.getRowCount() - 1 , 0);
+ if(lastKey != null && !lastKey.equals(""))
{
- if(_editNames)
- {
- Object lastKey = _model.getValueAt(
- _model.getRowCount() - 1 , 0);
- if(lastKey != null && !lastKey.equals(""))
- {
- _model.addRow(new Object[]{"", _nullObject});
- }
- }
- _editor.updated();
+ _model.addRow(new Object[]{"", _noDefault});
}
+
+ _editor.updated();
}
});
setModel(_model);
@@ -172,25 +128,13 @@ public class ParametersField extends JTable
TableColumn valColumn = getColumnModel().getColumn(1);
valColumn.setCellEditor(_cellEditor);
- setCellSelectionEnabled(_editable);
- setOpaque(_editable);
- setPreferredScrollableViewportSize(getPreferredSize());
-
- DefaultTableCellRenderer cr = (DefaultTableCellRenderer)
- getDefaultRenderer(String.class);
- cr.setOpaque(_editable);
+ setPreferredScrollableViewportSize(getPreferredSize());
}
public java.util.Map get(java.util.List names)
{
- assert _editable;
-
- if(_editNames)
- {
- assert names != null;
- }
-
+ assert names != null;
java.util.Map values = new java.util.HashMap();
@@ -211,24 +155,18 @@ public class ParametersField extends JTable
String name = (String)row.elementAt(0);
if(name != null)
{
- if(_editNames)
- {
- name = name.trim();
- }
+ name = name.trim();
if(!name.equals(""))
{
- if(_editNames)
- {
- names.add(name);
- }
-
+ names.add(name);
+
Object val = row.elementAt(1);
//
// Eliminate entries with "default" value
//
- if(val != _nullObject)
+ if(val != _noDefault)
{
assert val != null;
values.put(name, val);
@@ -239,11 +177,16 @@ public class ParametersField extends JTable
return values;
}
- private final boolean _editNames;
- private final Object _nullObject;
+ private final Object _noDefault = new Object()
+ {
+ public String toString()
+ {
+ return "No default";
+ }
+ };
+
private DefaultTableModel _model;
private java.util.Vector _columnNames;
- private boolean _editable = false;
private Editor _editor;
private TableCellEditor _cellEditor;
}
diff --git a/java/src/IceGridGUI/Application/ServerInstanceEditor.java b/java/src/IceGridGUI/Application/ServerInstanceEditor.java
index 50d474b248f..23f8da37aa9 100755
--- a/java/src/IceGridGUI/Application/ServerInstanceEditor.java
+++ b/java/src/IceGridGUI/Application/ServerInstanceEditor.java
@@ -34,7 +34,7 @@ class ServerInstanceEditor extends AbstractServerEditor
ServerTemplate t = (ServerTemplate)_template.getSelectedItem();
descriptor.template = t.getId();
- descriptor.parameterValues = _parameters.get(null);;
+ descriptor.parameterValues = _parameters.getValues();
descriptor.propertySet.references =
(String[])_propertySets.getList().toArray(new String[0]);
@@ -50,7 +50,7 @@ class ServerInstanceEditor extends AbstractServerEditor
ServerTemplate t = (ServerTemplate)_template.getSelectedItem();
return descriptor.template.equals(t.getId())
- && descriptor.parameterValues.equals(_parameters.get(null));
+ && descriptor.parameterValues.equals(_parameters.getValues());
}
ServerInstanceEditor()
@@ -76,7 +76,7 @@ class ServerInstanceEditor extends AbstractServerEditor
"Goto this server template");
_templateButton = new JButton(gotoTemplate);
- _parameters = new ParametersField(this, "Value", false, "Use default");
+ _parameters = new ParameterValuesField(this);
_propertySets.getDocument().addDocumentListener(_updateListener);
_propertySets.setToolTipText("Property Set References");
@@ -189,8 +189,8 @@ class ServerInstanceEditor extends AbstractServerEditor
// Replace parameters but keep existing values
//
_parameters.set(td.parameters,
- makeParameterValues(_parameters.get(null), td.parameters),
- null, true);
+ makeParameterValues(_parameters.getValues(), td.parameters),
+ td.parameterDefaults, null);
}
public void intervalAdded(ListDataEvent e)
@@ -203,8 +203,9 @@ class ServerInstanceEditor extends AbstractServerEditor
_template.getModel().addListDataListener(templateListener);
_template.setEnabled(isEditable);
- _parameters.set(((TemplateDescriptor)t.getDescriptor()).parameters,
- descriptor.parameterValues, resolver, isEditable);
+ TemplateDescriptor td = (TemplateDescriptor)t.getDescriptor();
+ _parameters.set(td.parameters, descriptor.parameterValues,
+ td.parameterDefaults, resolver);
_propertySets.setList(java.util.Arrays.asList(descriptor.propertySet.references),
getDetailResolver());
@@ -220,7 +221,7 @@ class ServerInstanceEditor extends AbstractServerEditor
private JComboBox _template = new JComboBox();
private JButton _templateButton;
- private ParametersField _parameters;
+ private ParameterValuesField _parameters;
private ListTextField _propertySets = new ListTextField(20);
private PropertiesField _properties;
diff --git a/java/src/IceGridGUI/Application/ServiceInstanceEditor.java b/java/src/IceGridGUI/Application/ServiceInstanceEditor.java
index bb0991a26a8..59113937479 100755
--- a/java/src/IceGridGUI/Application/ServiceInstanceEditor.java
+++ b/java/src/IceGridGUI/Application/ServiceInstanceEditor.java
@@ -49,7 +49,7 @@ class ServiceInstanceEditor extends CommunicatorChildEditor
"Goto this service template");
_templateButton = new JButton(gotoTemplate);
- _parameters = new ParametersField(this, "Value", false, "Use default");
+ _parameters = new ParameterValuesField(this);
_propertySets.getDocument().addDocumentListener(_updateListener);
_propertySets.setToolTipText("Property Set References");
@@ -81,7 +81,7 @@ class ServiceInstanceEditor extends CommunicatorChildEditor
{
ServiceInstanceDescriptor descriptor = getDescriptor();
descriptor.template = ((ServiceTemplate)_template.getSelectedItem()).getId();
- descriptor.parameterValues = _parameters.get(null);
+ descriptor.parameterValues = _parameters.getValues();
descriptor.propertySet.references =
(String[])_propertySets.getList().toArray(new String[0]);
@@ -94,7 +94,7 @@ class ServiceInstanceEditor extends CommunicatorChildEditor
ServiceTemplate t = (ServiceTemplate)_template.getSelectedItem();
return descriptor.template.equals(t.getId())
- && descriptor.parameterValues.equals(_parameters.get(null));
+ && descriptor.parameterValues.equals(_parameters.getValues());
}
Communicator.ChildList getChildList()
@@ -201,8 +201,8 @@ class ServiceInstanceEditor extends CommunicatorChildEditor
// Replace parameters but keep existing values
//
_parameters.set(td.parameters,
- makeParameterValues(_parameters.get(null), td.parameters),
- null, true);
+ makeParameterValues(_parameters.getValues(), td.parameters),
+ td.parameterDefaults, null);
}
public void intervalAdded(ListDataEvent e)
@@ -215,8 +215,9 @@ class ServiceInstanceEditor extends CommunicatorChildEditor
_template.getModel().addListDataListener(templateListener);
_template.setEnabled(isEditable);
- _parameters.set(((TemplateDescriptor)t.getDescriptor()).parameters,
- descriptor.parameterValues, resolver, isEditable);
+ TemplateDescriptor td = (TemplateDescriptor)t.getDescriptor();
+ _parameters.set(td.parameters, descriptor.parameterValues,
+ td.parameterDefaults, resolver);
_propertySets.setList(java.util.Arrays.asList(descriptor.propertySet.references),
getDetailResolver());
@@ -232,7 +233,7 @@ class ServiceInstanceEditor extends CommunicatorChildEditor
private JComboBox _template = new JComboBox();
private JButton _templateButton;
- private ParametersField _parameters;
+ private ParameterValuesField _parameters;
private ListTextField _propertySets = new ListTextField(20);
private PropertiesField _properties;
}
diff --git a/java/src/IceGridGUI/Application/TemplateEditor.java b/java/src/IceGridGUI/Application/TemplateEditor.java
index fe4a24134df..2131e6b2cf1 100755
--- a/java/src/IceGridGUI/Application/TemplateEditor.java
+++ b/java/src/IceGridGUI/Application/TemplateEditor.java
@@ -30,7 +30,7 @@ class TemplateEditor extends Editor
_template.getDocument().addDocumentListener(_updateListener);
_template.setToolTipText("Must be unique within the enclosing application");
- _parameters = new ParametersField(this, "Default value", true, "No default");
+ _parameters = new ParametersField(this);
}
TemplateDescriptor getDescriptor()
@@ -90,7 +90,7 @@ class TemplateEditor extends Editor
_template.setText(_target.getId());
_template.setEditable(_target.isEphemeral());
- _parameters.set(descriptor.parameters, descriptor.parameterDefaults, null, true);
+ _parameters.set(descriptor.parameters, descriptor.parameterDefaults);
}
protected boolean applyUpdate()