summaryrefslogtreecommitdiff
path: root/java/src/IceGridGUI
diff options
context:
space:
mode:
authorBernard Normier <bernard@zeroc.com>2006-12-19 03:08:13 +0000
committerBernard Normier <bernard@zeroc.com>2006-12-19 03:08:13 +0000
commit5d97f1baac41ab400f1fac069de3ca8c28ed69e2 (patch)
tree84bc15c4cc2f6455d1c4ff612cd2881f142444cd /java/src/IceGridGUI
parentAdded support for user-defined log files (diff)
downloadice-5d97f1baac41ab400f1fac069de3ca8c28ed69e2.tar.bz2
ice-5d97f1baac41ab400f1fac069de3ca8c28ed69e2.tar.xz
ice-5d97f1baac41ab400f1fac069de3ca8c28ed69e2.zip
Added properties for objects and allocatables in Adapter editor
Diffstat (limited to 'java/src/IceGridGUI')
-rwxr-xr-xjava/src/IceGridGUI/Application/Adapter.java9
-rwxr-xr-xjava/src/IceGridGUI/Application/AdapterEditor.java46
-rwxr-xr-xjava/src/IceGridGUI/Application/Communicator.java16
-rwxr-xr-xjava/src/IceGridGUI/Application/CommunicatorSubEditor.java2
-rwxr-xr-xjava/src/IceGridGUI/Application/MapField.java78
-rwxr-xr-xjava/src/IceGridGUI/Application/ReplicaGroupEditor.java33
6 files changed, 157 insertions, 27 deletions
diff --git a/java/src/IceGridGUI/Application/Adapter.java b/java/src/IceGridGUI/Application/Adapter.java
index cd82d9ba212..ebde3ac6f7b 100755
--- a/java/src/IceGridGUI/Application/Adapter.java
+++ b/java/src/IceGridGUI/Application/Adapter.java
@@ -194,15 +194,24 @@ class Adapter extends TreeNode implements DescriptorHolder
{
return ((Communicator)_parent).getProperty(_descriptor.name + "." + property);
}
+ String lookupPropertyValue(String val)
+ {
+ return ((Communicator)_parent).lookupPropertyValue(val);
+ }
void setProperty(String name, String property, String newValue)
{
((Communicator)_parent).setProperty(name + "." + property, newValue);
}
+ void setProperty(String property, String newValue)
+ {
+ ((Communicator)_parent).setProperty(property, newValue);
+ }
void removeProperty(String name, String property)
{
((Communicator)_parent).removeProperty(name + "." + property);
}
+
String getDefaultAdapterId()
{
return getDefaultAdapterId(_id);
diff --git a/java/src/IceGridGUI/Application/AdapterEditor.java b/java/src/IceGridGUI/Application/AdapterEditor.java
index 00d4d0ce41d..42b0cd97fbd 100755
--- a/java/src/IceGridGUI/Application/AdapterEditor.java
+++ b/java/src/IceGridGUI/Application/AdapterEditor.java
@@ -35,8 +35,8 @@ class AdapterEditor extends CommunicatorChildEditor
{
AdapterEditor()
{
- _objects = new MapField(this, "Identity", "Type", true);
- _allocatables = new MapField(this, "Identity", "Type", true);
+ _objects = new MapField(this, "Identity", new String[]{"Type", "Property"}, true);
+ _allocatables = new MapField(this, "Identity", new String[]{"Type", "Property"}, true);
//
// Create buttons
@@ -316,6 +316,35 @@ class AdapterEditor extends CommunicatorChildEditor
published.toString().trim());
}
+
+ //
+ // Set all objects and allocatables properties
+ //
+ java.util.Map map = _objects.get();
+ java.util.Iterator p = map.entrySet().iterator();
+ while(p.hasNext())
+ {
+ java.util.Map.Entry entry = (java.util.Map.Entry)p.next();
+ String key = (String)entry.getKey();
+ String[] value = (String[]) entry.getValue();
+ if(!value[1].equals(""))
+ {
+ adapter.setProperty(value[1], key);
+ }
+ }
+
+ map = _allocatables.get();
+ p = map.entrySet().iterator();
+ while(p.hasNext())
+ {
+ java.util.Map.Entry entry = (java.util.Map.Entry)p.next();
+ String key = (String)entry.getKey();
+ String[] value = (String[]) entry.getValue();
+ if(!value[1].equals(""))
+ {
+ adapter.setProperty(value[1], key);
+ }
+ }
}
private void setId(String id)
@@ -513,20 +542,21 @@ class AdapterEditor extends CommunicatorChildEditor
return (Adapter)_target;
}
- static java.util.Map objectDescriptorSeqToMap(java.util.List objects)
+ private java.util.Map objectDescriptorSeqToMap(java.util.List objects)
{
java.util.Map result = new java.util.TreeMap();
java.util.Iterator p = objects.iterator();
while(p.hasNext())
{
ObjectDescriptor od = (ObjectDescriptor)p.next();
- result.put(Ice.Util.identityToString(od.id),
- od.type);
+ String k = Ice.Util.identityToString(od.id);
+
+ result.put(k, new String[]{od.type, getAdapter().lookupPropertyValue(k)});
}
return result;
}
- static java.util.LinkedList mapToObjectDescriptorSeq(java.util.Map map)
+ private java.util.LinkedList mapToObjectDescriptorSeq(java.util.Map map)
{
java.util.LinkedList result = new java.util.LinkedList();
java.util.Iterator p = map.entrySet().iterator();
@@ -535,8 +565,8 @@ class AdapterEditor extends CommunicatorChildEditor
java.util.Map.Entry entry = (java.util.Map.Entry)p.next();
Ice.Identity id =
Ice.Util.stringToIdentity((String)entry.getKey());
- String type = (String)entry.getValue();
- result.add(new ObjectDescriptor(id, type, "")); // TODO: Benoit: Add support for "property"
+ String[] val = (String[])entry.getValue();
+ result.add(new ObjectDescriptor(id, val[0], "")); // TODO: Bernard: Remove "property"
}
return result;
}
diff --git a/java/src/IceGridGUI/Application/Communicator.java b/java/src/IceGridGUI/Application/Communicator.java
index e62c1fda896..2e99aa34ede 100755
--- a/java/src/IceGridGUI/Application/Communicator.java
+++ b/java/src/IceGridGUI/Application/Communicator.java
@@ -873,6 +873,22 @@ abstract class Communicator extends TreeNode implements DescriptorHolder
return null;
}
+ String lookupPropertyValue(String val)
+ {
+ CommunicatorDescriptor descriptor = getCommunicatorDescriptor();
+ java.util.Iterator p = descriptor.propertySet.properties.iterator();
+ while(p.hasNext())
+ {
+ PropertyDescriptor pd = (PropertyDescriptor)p.next();
+ if(pd.value.equals(val))
+ {
+ return pd.name;
+ }
+ }
+ return "";
+ }
+
+
void setProperty(String key, String newValue)
{
CommunicatorDescriptor descriptor = getCommunicatorDescriptor();
diff --git a/java/src/IceGridGUI/Application/CommunicatorSubEditor.java b/java/src/IceGridGUI/Application/CommunicatorSubEditor.java
index ab3506a59a0..21bf0ffc98a 100755
--- a/java/src/IceGridGUI/Application/CommunicatorSubEditor.java
+++ b/java/src/IceGridGUI/Application/CommunicatorSubEditor.java
@@ -38,7 +38,7 @@ class CommunicatorSubEditor
_properties = new PropertiesField(mainEditor);
_description.setToolTipText("Property Set References");
- _logFiles = new MapField(mainEditor, "Path", "Property name",
+ _logFiles = new MapField(mainEditor, "Path", "Property",
true);
_logFiles.setToolTipText("Log files used by this server or service");
}
diff --git a/java/src/IceGridGUI/Application/MapField.java b/java/src/IceGridGUI/Application/MapField.java
index 7049cdf61c7..cd9235765d8 100755
--- a/java/src/IceGridGUI/Application/MapField.java
+++ b/java/src/IceGridGUI/Application/MapField.java
@@ -24,23 +24,27 @@ import javax.swing.event.TableModelListener;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;
-
//
// A special field used to show/edit a map
//
public class MapField extends JTable
{
- public MapField(Editor editor, String headKey, String headValue, boolean substituteKey)
+ public MapField(Editor editor, String headKey, String[] headValues, boolean substituteKey)
{
+ _editor = editor;
_substituteKey = substituteKey;
+ _vectorSize = headValues.length + 1;
- _columnNames = new java.util.Vector(2);
+ _columnNames = new java.util.Vector(_vectorSize);
_columnNames.add(headKey);
- _columnNames.add(headValue);
-
- _editor = editor;
+ for(int i = 0; i < headValues.length; ++i)
+ {
+ _columnNames.add(headValues[i]);
+ }
+ assert _vectorSize >= 2;
+
Action deleteRow = new AbstractAction("Delete selected row(s)")
{
public void actionPerformed(ActionEvent e)
@@ -70,7 +74,11 @@ public class MapField extends JTable
getActionMap().put("delete", deleteRow);
getInputMap().put(
KeyStroke.getKeyStroke("DELETE"), "delete");
+ }
+ public MapField(Editor editor, String headKey, String headValue, boolean substituteKey)
+ {
+ this(editor, headKey, new String[]{headValue}, substituteKey);
}
public void set(java.util.Map map, Utils.Resolver resolver,
@@ -85,7 +93,7 @@ public class MapField extends JTable
java.util.Iterator p = map.entrySet().iterator();
while(p.hasNext())
{
- java.util.Vector row = new java.util.Vector(2);
+ java.util.Vector row = new java.util.Vector(_vectorSize);
java.util.Map.Entry entry = (java.util.Map.Entry)p.next();
if(_substituteKey)
@@ -96,15 +104,30 @@ public class MapField extends JTable
{
row.add((String)entry.getKey());
}
- row.add(Utils.substitute((String)entry.getValue(), resolver));
+
+ if(_vectorSize == 2)
+ {
+ row.add(Utils.substitute((String)entry.getValue(), resolver));
+ }
+ else
+ {
+ String[] val = (String[])entry.getValue();
+
+ for(int i = 0; i < val.length; ++i)
+ {
+ row.add(Utils.substitute(val[i], resolver));
+ }
+ }
vector.add(row);
}
if(_editable)
{
- java.util.Vector newRow = new java.util.Vector(2);
- newRow.add("");
- newRow.add("");
+ java.util.Vector newRow = new java.util.Vector(_vectorSize);
+ for(int i = 0; i < _vectorSize; ++i)
+ {
+ newRow.add("");
+ }
vector.add(newRow);
}
@@ -126,7 +149,12 @@ public class MapField extends JTable
_model.getRowCount() - 1 , 0);
if(lastKey != null && !lastKey.equals(""))
{
- _model.addRow(new Object[]{"", ""});
+ Object[] emptyRow = new Object[_vectorSize];
+ for(int i = 0; i < _vectorSize; ++i)
+ {
+ emptyRow[i] = "";
+ }
+ _model.addRow(emptyRow);
}
_editor.updated();
}
@@ -170,18 +198,36 @@ public class MapField extends JTable
key = key.trim();
if(!key.equals(""))
{
- String val = (String)row.elementAt(1);
- if(val == null)
+ if(_vectorSize == 2)
{
- val = "";
+ String val = (String)row.elementAt(1);
+ if(val == null)
+ {
+ val = "";
+ }
+ result.put(key, val);
+ }
+ else
+ {
+ String[] val = new String[_vectorSize - 1];
+ for(int i = 1; i < _vectorSize; ++i)
+ {
+ val[i - 1] = (String)row.elementAt(i);
+ if(val[i - 1] == null)
+ {
+ val[i - 1] = "";
+ }
+ }
+ result.put(key, val);
}
- result.put(key, val);
}
}
}
return result;
}
+ private final int _vectorSize;
+
private DefaultTableModel _model;
private java.util.Vector _columnNames;
private boolean _editable = false;
diff --git a/java/src/IceGridGUI/Application/ReplicaGroupEditor.java b/java/src/IceGridGUI/Application/ReplicaGroupEditor.java
index 4cb075956c4..34a4c683be8 100755
--- a/java/src/IceGridGUI/Application/ReplicaGroupEditor.java
+++ b/java/src/IceGridGUI/Application/ReplicaGroupEditor.java
@@ -229,7 +229,7 @@ class ReplicaGroupEditor extends Editor
descriptor.id = _id.getText().trim();
descriptor.description = _description.getText();
- descriptor.objects = AdapterEditor.mapToObjectDescriptorSeq(_objects.get());
+ descriptor.objects = mapToObjectDescriptorSeq(_objects.get());
Object loadBalancing = _loadBalancing.getSelectedItem();
if(loadBalancing == ORDERED)
@@ -344,7 +344,7 @@ class ReplicaGroupEditor extends Editor
_description.setEditable(isEditable);
_description.setOpaque(isEditable);
- _objects.set(AdapterEditor.objectDescriptorSeqToMap(descriptor.objects), resolver, isEditable);
+ _objects.set(objectDescriptorSeqToMap(descriptor.objects), resolver, isEditable);
_loadBalancing.setEnabled(true);
@@ -404,6 +404,35 @@ class ReplicaGroupEditor extends Editor
return (ReplicaGroup)_target;
}
+ private java.util.Map objectDescriptorSeqToMap(java.util.List objects)
+ {
+ java.util.Map result = new java.util.TreeMap();
+ java.util.Iterator p = objects.iterator();
+ while(p.hasNext())
+ {
+ ObjectDescriptor od = (ObjectDescriptor)p.next();
+ result.put(Ice.Util.identityToString(od.id),
+ od.type);
+ }
+ return result;
+ }
+
+ private java.util.LinkedList mapToObjectDescriptorSeq(java.util.Map map)
+ {
+ java.util.LinkedList result = new java.util.LinkedList();
+ java.util.Iterator p = map.entrySet().iterator();
+ while(p.hasNext())
+ {
+ java.util.Map.Entry entry = (java.util.Map.Entry)p.next();
+ Ice.Identity id =
+ Ice.Util.stringToIdentity((String)entry.getKey());
+ String type = (String)entry.getValue();
+ result.add(new ObjectDescriptor(id, type, "")); // TODO: Bernard: remove property!
+ }
+ return result;
+ }
+
+
static private String ORDERED = "Ordered";
static private String RANDOM = "Random";
static private String ROUND_ROBIN = "Round-robin";