diff options
author | Bernard Normier <bernard@zeroc.com> | 2006-12-19 03:08:13 +0000 |
---|---|---|
committer | Bernard Normier <bernard@zeroc.com> | 2006-12-19 03:08:13 +0000 |
commit | 5d97f1baac41ab400f1fac069de3ca8c28ed69e2 (patch) | |
tree | 84bc15c4cc2f6455d1c4ff612cd2881f142444cd /java | |
parent | Added support for user-defined log files (diff) | |
download | ice-5d97f1baac41ab400f1fac069de3ca8c28ed69e2.tar.bz2 ice-5d97f1baac41ab400f1fac069de3ca8c28ed69e2.tar.xz ice-5d97f1baac41ab400f1fac069de3ca8c28ed69e2.zip |
Added properties for objects and allocatables in Adapter editor
Diffstat (limited to 'java')
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"; |