summaryrefslogtreecommitdiff
path: root/java/src/IceGridGUI/Application/MapField.java
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/Application/MapField.java
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/Application/MapField.java')
-rwxr-xr-xjava/src/IceGridGUI/Application/MapField.java78
1 files changed, 62 insertions, 16 deletions
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;