diff options
Diffstat (limited to 'java/src')
-rwxr-xr-x | java/src/IceGrid/ListDialog.java | 150 | ||||
-rwxr-xr-x | java/src/IceGrid/ParametersDialog.java | 161 | ||||
-rwxr-xr-x | java/src/IceGrid/TableDialog.java | 150 | ||||
-rwxr-xr-x | java/src/IceGrid/TreeNode/Adapter.java | 12 | ||||
-rwxr-xr-x | java/src/IceGrid/TreeNode/AdapterEditor.java | 28 | ||||
-rwxr-xr-x | java/src/IceGrid/TreeNode/Application.java | 52 | ||||
-rwxr-xr-x | java/src/IceGrid/TreeNode/ApplicationEditor.java | 2 | ||||
-rwxr-xr-x | java/src/IceGrid/TreeNode/Nodes.java | 3 | ||||
-rwxr-xr-x | java/src/IceGrid/TreeNode/PropertiesHolder.java | 34 | ||||
-rwxr-xr-x | java/src/IceGrid/TreeNode/Server.java | 33 | ||||
-rwxr-xr-x | java/src/IceGrid/TreeNode/ServerSubEditor.java | 4 | ||||
-rwxr-xr-x | java/src/IceGrid/TreeNode/ServerTemplate.java | 48 | ||||
-rwxr-xr-x | java/src/IceGrid/TreeNode/Service.java | 24 | ||||
-rwxr-xr-x | java/src/IceGrid/TreeNode/ServiceTemplate.java | 37 |
14 files changed, 434 insertions, 304 deletions
diff --git a/java/src/IceGrid/ListDialog.java b/java/src/IceGrid/ListDialog.java index e5ffdc3a8ac..a1d8943e6da 100755 --- a/java/src/IceGrid/ListDialog.java +++ b/java/src/IceGrid/ListDialog.java @@ -13,8 +13,6 @@ import java.awt.Dimension; import java.awt.Frame;
import java.awt.event.ActionEvent;
-import java.awt.event.MouseAdapter;
-import java.awt.event.MouseEvent;
import javax.swing.AbstractAction;
import javax.swing.Action;
@@ -22,9 +20,11 @@ import javax.swing.JButton; import javax.swing.JComponent;
import javax.swing.JDialog;
import javax.swing.JPanel;
-import javax.swing.JPopupMenu;
import javax.swing.JScrollPane;
import javax.swing.JTable;
+import javax.swing.KeyStroke;
+import javax.swing.event.TableModelEvent;
+import javax.swing.event.TableModelListener;
import javax.swing.table.DefaultTableModel;
import com.jgoodies.forms.factories.Borders;
@@ -35,79 +35,14 @@ import com.jgoodies.forms.factories.ButtonBarFactory; //
public class ListDialog extends JDialog
-{
- class PopupListener extends MouseAdapter
- {
- public void mousePressed(MouseEvent e)
- {
- maybeShowPopup(e);
- }
-
- public void mouseReleased(MouseEvent e)
- {
- maybeShowPopup(e);
- }
-
- private void maybeShowPopup(MouseEvent e)
- {
- if (e.isPopupTrigger())
- {
- _popup.show(e.getX(), e.getY());
- }
- }
- }
-
- class PopupMenu extends JPopupMenu
- {
- PopupMenu()
- {
- _addRow = new AbstractAction("Add a new element")
- {
- public void actionPerformed(ActionEvent e)
- {
- java.util.Vector newRow = null;
- _model.addRow(newRow);
- }
- };
-
- _deleteRow = new AbstractAction("Delete selected element(s)")
- {
- public void actionPerformed(ActionEvent e)
- {
- for(;;)
- {
- int selectedRow = _list.getSelectedRow();
- if(selectedRow == -1)
- {
- break;
- }
- else
- {
- _model.removeRow(selectedRow);
- }
- }
- }
- };
-
- add(_addRow);
- add(_deleteRow);
- }
-
- void show(int x, int y)
- {
- _deleteRow.setEnabled(_list.getSelectedRowCount() > 0);
- show(_list, x, y);
- }
-
- private Action _addRow;
- private Action _deleteRow;
- }
-
- public ListDialog(Frame parentFrame, String title)
+{
+ public ListDialog(Frame parentFrame, String title, boolean trim)
{
super(parentFrame, title, true);
setDefaultCloseOperation(JDialog.HIDE_ON_CLOSE);
-
+
+ _trim = trim;
+
_columnNames = new java.util.Vector(1);
_columnNames.add("item");
@@ -132,12 +67,35 @@ public class ListDialog extends JDialog }
};
JButton cancelButton = new JButton(cancel);
+
+ Action deleteRow = new AbstractAction("Delete selected element(s)")
+ {
+ public void actionPerformed(ActionEvent e)
+ {
+ if(_list.isEditing())
+ {
+ _list.getCellEditor().stopCellEditing();
+ }
+
+ for(;;)
+ {
+ int selectedRow = _list.getSelectedRow();
+ if(selectedRow == -1)
+ {
+ break;
+ }
+ else
+ {
+ _model.removeRow(selectedRow);
+ }
+ }
+ }
+ };
+ _list.getActionMap().put("delete", deleteRow);
+ _list.getInputMap().put(KeyStroke.getKeyStroke("DELETE"), "delete");
+
JScrollPane scrollPane = new JScrollPane(_list);
-
- PopupListener popupListener = new PopupListener();
- _list.addMouseListener(popupListener);
- scrollPane.addMouseListener(popupListener);
scrollPane.setBorder(Borders.DIALOG_BORDER);
getContentPane().add(scrollPane, BorderLayout.CENTER);
@@ -163,12 +121,26 @@ public class ListDialog extends JDialog elt.add(p.next());
vector.add(elt);
}
- if(vector.size() == 0)
- {
- vector.addElement(new java.util.Vector(1));
- }
-
+
+ java.util.Vector newRow = new java.util.Vector(1);
+ newRow.add("");
+ vector.addElement(newRow);
+
_model = new DefaultTableModel(vector, _columnNames);
+
+ _model.addTableModelListener(new TableModelListener()
+ {
+ public void tableChanged(TableModelEvent e)
+ {
+ Object lastKey = _model.getValueAt(
+ _model.getRowCount() - 1 , 0);
+ if(lastKey != null && !lastKey.equals(""))
+ {
+ _model.addRow(new Object[]{""});
+ }
+ }
+ });
+
_list.setModel(_model);
setLocationRelativeTo(onComponent);
@@ -191,9 +163,17 @@ public class ListDialog extends JDialog java.util.LinkedList result = new java.util.LinkedList();
for(int i = 0; i < _model.getRowCount(); ++i)
{
- if(!_model.getValueAt(i, 0).equals(""))
+ String value = (String)_model.getValueAt(i, 0);
+ if(value != null)
{
- result.add(_model.getValueAt(i, 0));
+ if(_trim)
+ {
+ value = value.trim();
+ }
+ if(!value.equals(""))
+ {
+ result.add(value);
+ }
}
}
return result;
@@ -204,7 +184,7 @@ public class ListDialog extends JDialog private DefaultTableModel _model;
private JTable _list;
private java.util.Vector _columnNames;
- private PopupMenu _popup = new PopupMenu();
+ private boolean _trim;
}
diff --git a/java/src/IceGrid/ParametersDialog.java b/java/src/IceGrid/ParametersDialog.java index fa699869ccc..157ac416266 100755 --- a/java/src/IceGrid/ParametersDialog.java +++ b/java/src/IceGrid/ParametersDialog.java @@ -13,8 +13,6 @@ import java.awt.Dimension; import java.awt.Frame;
import java.awt.event.ActionEvent;
-import java.awt.event.MouseAdapter;
-import java.awt.event.MouseEvent;
import javax.swing.AbstractAction;
import javax.swing.Action;
@@ -27,6 +25,9 @@ import javax.swing.JPanel; import javax.swing.JPopupMenu;
import javax.swing.JScrollPane;
import javax.swing.JTable;
+import javax.swing.KeyStroke;
+import javax.swing.event.TableModelEvent;
+import javax.swing.event.TableModelListener;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableCellEditor;
import javax.swing.table.TableColumn;
@@ -41,74 +42,6 @@ import com.jgoodies.forms.factories.ButtonBarFactory; public class ParametersDialog extends JDialog
{
- class PopupListener extends MouseAdapter
- {
- public void mousePressed(MouseEvent e)
- {
- maybeShowPopup(e);
- }
-
- public void mouseReleased(MouseEvent e)
- {
- maybeShowPopup(e);
- }
-
- private void maybeShowPopup(MouseEvent e)
- {
- if (e.isPopupTrigger())
- {
- _popup.show( e.getX(), e.getY());
- }
- }
- }
-
- class PopupMenu extends JPopupMenu
- {
- PopupMenu()
- {
- _addRow = new AbstractAction("Add a new parameter")
- {
- public void actionPerformed(ActionEvent e)
- {
- java.util.Vector newVector = new java.util.Vector(2);
- newVector.add(null);
- newVector.add(_nullObject);
- _model.addRow(newVector);
- }
- };
-
- _deleteRow = new AbstractAction("Delete selected parameter(s)")
- {
- public void actionPerformed(ActionEvent e)
- {
- for(;;)
- {
- int selectedRow = _table.getSelectedRow();
- if(selectedRow == -1)
- {
- break;
- }
- else
- {
- _model.removeRow(selectedRow);
- }
- }
- }
- };
-
- add(_addRow);
- add(_deleteRow);
- }
-
- void show(int x, int y)
- {
- _deleteRow.setEnabled(_table.getSelectedRowCount() > 0);
- show(_table, x, y);
- }
-
- private Action _addRow;
- private Action _deleteRow;
- }
public ParametersDialog(Frame parentFrame, String title,
String valHeading, boolean editNames,
@@ -156,13 +89,37 @@ public class ParametersDialog extends JDialog };
JButton cancelButton = new JButton(cancel);
- JScrollPane scrollPane = new JScrollPane(_table);
if(_editNames)
{
- PopupListener popupListener = new PopupListener();
- _table.addMouseListener(popupListener);
- scrollPane.addMouseListener(popupListener);
+ Action deleteRow = new AbstractAction("Delete selected parameter(s)")
+ {
+ public void actionPerformed(ActionEvent e)
+ {
+ for(;;)
+ {
+ if(_table.isEditing())
+ {
+ _table.getCellEditor().stopCellEditing();
+ }
+
+ int selectedRow = _table.getSelectedRow();
+ if(selectedRow == -1)
+ {
+ break;
+ }
+ else
+ {
+ _model.removeRow(selectedRow);
+ }
+ }
+ }
+ };
+ _table.getActionMap().put("delete", deleteRow);
+ _table.getInputMap().put(
+ KeyStroke.getKeyStroke("DELETE"), "delete");
}
+
+ JScrollPane scrollPane = new JScrollPane(_table);
scrollPane.setBorder(Borders.DIALOG_BORDER);
getContentPane().add(scrollPane, BorderLayout.CENTER);
@@ -205,12 +162,12 @@ public class ParametersDialog extends JDialog vector.add(row);
}
- if(_editNames && vector.size() == 0)
+ if(_editNames)
{
- java.util.Vector newVector = new java.util.Vector(2);
- newVector.add(null);
- newVector.add(_nullObject);
- vector.add(newVector);
+ java.util.Vector newRow = new java.util.Vector(2);
+ newRow.add("");
+ newRow.add(_nullObject);
+ vector.add(newRow);
}
_model = new DefaultTableModel(vector, _columnNames)
@@ -228,6 +185,23 @@ public class ParametersDialog extends JDialog }
};
+
+ _model.addTableModelListener(new TableModelListener()
+ {
+ public void tableChanged(TableModelEvent e)
+ {
+ if(_editNames)
+ {
+ Object lastKey = _model.getValueAt(
+ _model.getRowCount() - 1 , 0);
+ if(lastKey != null && !lastKey.equals(""))
+ {
+ _model.addRow(new Object[]{"", _nullObject});
+ }
+ }
+ }
+ });
+
_table.setModel(_model);
TableColumn valColumn = _table.getColumnModel().getColumn(1);
@@ -266,20 +240,30 @@ public class ParametersDialog extends JDialog // Eliminate rows with null or empty names
//
String name = (String)row.elementAt(0);
- if(name != null && name.length() > 0)
+ if(name != null)
{
if(_editNames)
{
- names.add(name);
+ name = name.trim();
}
- Object val = row.elementAt(1);
-
- //
- // Eliminate entries with "default" value
- //
- if(val != _nullObject)
+
+ if(!name.equals(""))
{
- values.put(name, val);
+ if(_editNames)
+ {
+ names.add(name);
+ }
+
+ Object val = row.elementAt(1);
+
+ //
+ // Eliminate entries with "default" value
+ //
+ if(val != _nullObject)
+ {
+ assert val != null;
+ values.put(name, val);
+ }
}
}
}
@@ -293,7 +277,6 @@ public class ParametersDialog extends JDialog private JTable _table;
private DefaultTableModel _model;
private java.util.Vector _columnNames;
- private PopupMenu _popup = new PopupMenu();
private TableCellEditor _cellEditor;
}
diff --git a/java/src/IceGrid/TableDialog.java b/java/src/IceGrid/TableDialog.java index 9b7a5376e12..52692c38057 100755 --- a/java/src/IceGrid/TableDialog.java +++ b/java/src/IceGrid/TableDialog.java @@ -13,8 +13,6 @@ import java.awt.Dimension; import java.awt.Frame;
import java.awt.event.ActionEvent;
-import java.awt.event.MouseAdapter;
-import java.awt.event.MouseEvent;
import javax.swing.AbstractAction;
import javax.swing.Action;
@@ -22,9 +20,11 @@ import javax.swing.JButton; import javax.swing.JComponent;
import javax.swing.JDialog;
import javax.swing.JPanel;
-import javax.swing.JPopupMenu;
import javax.swing.JScrollPane;
import javax.swing.JTable;
+import javax.swing.KeyStroke;
+import javax.swing.event.TableModelEvent;
+import javax.swing.event.TableModelListener;
import javax.swing.table.DefaultTableModel;
import com.jgoodies.forms.factories.Borders;
@@ -37,73 +37,6 @@ import com.jgoodies.forms.factories.ButtonBarFactory; public class TableDialog extends JDialog
{
- class PopupListener extends MouseAdapter
- {
- public void mousePressed(MouseEvent e)
- {
- maybeShowPopup(e);
- }
-
- public void mouseReleased(MouseEvent e)
- {
- maybeShowPopup(e);
- }
-
- private void maybeShowPopup(MouseEvent e)
- {
- if (e.isPopupTrigger())
- {
- _popup.show( e.getX(), e.getY());
- }
- }
- }
-
- class PopupMenu extends JPopupMenu
- {
- PopupMenu()
- {
- _addRow = new AbstractAction("Add a new row")
- {
- public void actionPerformed(ActionEvent e)
- {
- java.util.Vector newRow = null;
- _model.addRow(newRow);
- }
- };
-
- _deleteRow = new AbstractAction("Delete selected row(s)")
- {
- public void actionPerformed(ActionEvent e)
- {
- for(;;)
- {
- int selectedRow = _table.getSelectedRow();
- if(selectedRow == -1)
- {
- break;
- }
- else
- {
- _model.removeRow(selectedRow);
- }
- }
- }
- };
-
- add(_addRow);
- add(_deleteRow);
- }
-
- void show(int x, int y)
- {
- _deleteRow.setEnabled(_table.getSelectedRowCount() > 0);
- show(_table, x, y);
- }
-
- private Action _addRow;
- private Action _deleteRow;
- }
-
public TableDialog(Frame parentFrame, String title,
String heading0, String heading1, boolean editKeys)
{
@@ -136,17 +69,42 @@ public class TableDialog extends JDialog };
JButton cancelButton = new JButton(cancel);
- JScrollPane scrollPane = new JScrollPane(_table);
if(_editKeys)
{
- PopupListener popupListener = new PopupListener();
- _table.addMouseListener(popupListener);
- scrollPane.addMouseListener(popupListener);
+ Action deleteRow = new AbstractAction("Delete selected row(s)")
+ {
+ public void actionPerformed(ActionEvent e)
+ {
+ if(_table.isEditing())
+ {
+ _table.getCellEditor().stopCellEditing();
+ }
+
+ for(;;)
+ {
+ int selectedRow = _table.getSelectedRow();
+ if(selectedRow == -1)
+ {
+ break;
+ }
+ else
+ {
+ _model.removeRow(selectedRow);
+ }
+ }
+ }
+ };
+ _table.getActionMap().put("delete", deleteRow);
+ _table.getInputMap().put(
+ KeyStroke.getKeyStroke("DELETE"), "delete");
}
+
+ JScrollPane scrollPane = new JScrollPane(_table);
scrollPane.setBorder(Borders.DIALOG_BORDER);
getContentPane().add(scrollPane, BorderLayout.CENTER);
- JPanel buttonBar = ButtonBarFactory.buildOKCancelBar(okButton, cancelButton);
+ JPanel buttonBar =
+ ButtonBarFactory.buildOKCancelBar(okButton, cancelButton);
buttonBar.setBorder(Borders.DIALOG_BORDER);
getContentPane().add(buttonBar, BorderLayout.SOUTH);
@@ -173,9 +131,12 @@ public class TableDialog extends JDialog row.add(entry.getValue());
vector.add(row);
}
- if(_editKeys && vector.size() == 0)
+ if(_editKeys)
{
- vector.add(new java.util.Vector(2));
+ java.util.Vector newRow = new java.util.Vector(2);
+ newRow.add("");
+ newRow.add("");
+ vector.add(newRow);
}
_model = new DefaultTableModel(vector, _columnNames)
@@ -193,6 +154,23 @@ public class TableDialog extends JDialog }
};
+ _model.addTableModelListener(new TableModelListener()
+ {
+ public void tableChanged(TableModelEvent e)
+ {
+ if(_editKeys)
+ {
+ Object lastKey = _model.getValueAt(
+ _model.getRowCount() - 1 , 0);
+ if(lastKey != null && !lastKey.equals(""))
+ {
+ _model.addRow(new Object[]{"", ""});
+ }
+ }
+ }
+ });
+
+
_table.setModel(_model);
setLocationRelativeTo(onComponent);
@@ -223,9 +201,22 @@ public class TableDialog extends JDialog // Eliminate rows with null or empty keys
//
String key = (String)row.elementAt(0);
- if(key != null && key.length() > 0)
+ if(key != null)
{
- result.put(key, row.elementAt(1));
+ if(_editKeys)
+ {
+ key = key.trim();
+ }
+
+ if(!key.equals(""))
+ {
+ String val = (String) row.elementAt(1);
+ if(val == null)
+ {
+ val = "";
+ }
+ result.put(key, val);
+ }
}
}
return result;
@@ -237,7 +228,6 @@ public class TableDialog extends JDialog private JTable _table;
private DefaultTableModel _model;
private java.util.Vector _columnNames;
- private PopupMenu _popup = new PopupMenu();
}
diff --git a/java/src/IceGrid/TreeNode/Adapter.java b/java/src/IceGrid/TreeNode/Adapter.java index 02551d1c0f6..92f6d7ae19f 100755 --- a/java/src/IceGrid/TreeNode/Adapter.java +++ b/java/src/IceGrid/TreeNode/Adapter.java @@ -229,13 +229,17 @@ class Adapter extends Leaf assert ph != null; return ph.get(_descriptor.name + "." + property); } - - void setProperty(String property, String newName, String newValue) + void setProperty(String name, String property, String newValue) + { + PropertiesHolder ph = getParent().getParent().getPropertiesHolder(); + assert ph != null; + ph.set(name + "." + property, newValue); + } + void removeProperty(String name, String property) { PropertiesHolder ph = getParent().getParent().getPropertiesHolder(); assert ph != null; - ph.replace(_descriptor.name + "." + property, - newName + "." + property, newValue); + ph.remove(name + "." + property); } String getAdapterId() diff --git a/java/src/IceGrid/TreeNode/AdapterEditor.java b/java/src/IceGrid/TreeNode/AdapterEditor.java index 4a3378f9d93..3a2f0bb033e 100755 --- a/java/src/IceGrid/TreeNode/AdapterEditor.java +++ b/java/src/IceGrid/TreeNode/AdapterEditor.java @@ -227,19 +227,25 @@ class AdapterEditor extends ListElementEditor // // Change enclosing properties after successful update // - getAdapter().setProperty("Endpoints", _name.getText(), - _endpoints.getText()); + String name = _name.getText(); + Adapter adapter = getAdapter(); + if(!name.equals(_oldName)) + { + adapter.removeProperty(_oldName, "Endpoints"); + adapter.removeProperty(_oldName, "PublishedEndpoints"); + } + + adapter.setProperty(name, "Endpoints", _endpoints.getText()); Object published = _publishedEndpoints.getSelectedItem(); if(published == PUBLISH_ACTUAL) { - getAdapter().setProperty("PublishedEndpoints", _name.getText(), - ""); + adapter.removeProperty(name, "PublishedEndpoints"); } else { - getAdapter().setProperty("PublishedEndpoints", _name.getText(), - published.toString()); + adapter.setProperty(name, "PublishedEndpoints", + published.toString()); } } @@ -347,8 +353,9 @@ class AdapterEditor extends ListElementEditor boolean isEditable = adapter.isEditable() && resolver == null; boolean inIceBox = adapter.inIceBox(); - _name.setText( - Utils.substitute(descriptor.name, resolver)); + _oldName = descriptor.name; + + _name.setText(Utils.substitute(descriptor.name, resolver)); _name.setEditable(isEditable && !inIceBox); _description.setText( @@ -476,6 +483,9 @@ class AdapterEditor extends ListElementEditor } return result; } + + + private String _oldName; private JTextField _name = new JTextField(20); private JTextArea _description = new JTextArea(3, 20); @@ -489,8 +499,6 @@ class AdapterEditor extends ListElementEditor new Object[]{PUBLISH_ACTUAL}); private JTextField _currentEndpoints = new JTextField(20); - - private JCheckBox _registerProcess; private JCheckBox _waitForActivation; diff --git a/java/src/IceGrid/TreeNode/Application.java b/java/src/IceGrid/TreeNode/Application.java index 04df1e024af..c00be603606 100755 --- a/java/src/IceGrid/TreeNode/Application.java +++ b/java/src/IceGrid/TreeNode/Application.java @@ -8,6 +8,7 @@ // **********************************************************************
package IceGrid.TreeNode;
+import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPopupMenu;
@@ -63,6 +64,13 @@ public class Application extends EditableParent actions[APPLICATION_INSTALL_DISTRIBUTION] =
!_descriptor.distrib.icepatch.equals("");
}
+
+ actions[NEW_NODE] = (_nodes != null);
+ actions[NEW_REPLICA_GROUP] = (_replicaGroups != null);
+ actions[NEW_TEMPLATE_SERVER] = (_serverTemplates != null);
+ actions[NEW_TEMPLATE_SERVER_ICEBOX] = (_serverTemplates != null);
+ actions[NEW_TEMPLATE_SERVICE] = (_serviceTemplates != null);
+
return actions;
}
public JPopupMenu getPopupMenu()
@@ -70,6 +78,30 @@ public class Application extends EditableParent if(_popup == null)
{
_popup = new PopupMenu(_model);
+
+ JMenuItem newNodeItem = new JMenuItem(_model.getActions()[NEW_NODE]);
+ newNodeItem.setText("New node");
+ _popup.add(newNodeItem);
+
+ JMenuItem newReplicaGroupItem = new JMenuItem(_model.getActions()[NEW_REPLICA_GROUP]);
+ newReplicaGroupItem.setText("New replica group");
+ _popup.add(newReplicaGroupItem);
+ _popup.addSeparator();
+
+ JMenuItem newServerItem = new JMenuItem(_model.getActions()[NEW_TEMPLATE_SERVER]);
+ newServerItem.setText("New server template");
+ _popup.add(newServerItem);
+ JMenuItem newIceBoxItem =
+ new JMenuItem(_model.getActions()[NEW_TEMPLATE_SERVER_ICEBOX]);
+ newIceBoxItem.setText("New IceBox server template");
+ _popup.add(newIceBoxItem);
+ _popup.addSeparator();
+
+ JMenuItem newServiceItem = new JMenuItem(_model.getActions()[NEW_TEMPLATE_SERVICE]);
+ newServiceItem.setText("New service template");
+ _popup.add(newServiceItem);
+ _popup.addSeparator();
+
_popup.add(_model.getActions()[APPLICATION_INSTALL_DISTRIBUTION]);
}
return _popup;
@@ -83,6 +115,26 @@ public class Application extends EditableParent {
_parent.paste();
}
+ public void newNode()
+ {
+ _nodes.newNode();
+ }
+ public void newReplicaGroup()
+ {
+ _replicaGroups.newReplicaGroup();
+ }
+ public void newTemplateServer()
+ {
+ _serverTemplates.newTemplateServer();
+ }
+ public void newTemplateServerIceBox()
+ {
+ _serverTemplates.newTemplateServerIceBox();
+ }
+ public void newTemplateService()
+ {
+ _serviceTemplates.newTemplateService();
+ }
public ApplicationUpdateDescriptor createUpdateDescriptor()
{
diff --git a/java/src/IceGrid/TreeNode/ApplicationEditor.java b/java/src/IceGrid/TreeNode/ApplicationEditor.java index cec4137d56b..010f9f78535 100755 --- a/java/src/IceGrid/TreeNode/ApplicationEditor.java +++ b/java/src/IceGrid/TreeNode/ApplicationEditor.java @@ -180,7 +180,7 @@ class ApplicationEditor extends Editor _distribDirs.setEditable(false);
_distribDirsDialog = new ListDialog(parentFrame,
- "Directories");
+ "Directories", true);
Action openDistribDirsDialog = new AbstractAction("...")
{
diff --git a/java/src/IceGrid/TreeNode/Nodes.java b/java/src/IceGrid/TreeNode/Nodes.java index 2829a42bc88..6f0a45ffc9c 100755 --- a/java/src/IceGrid/TreeNode/Nodes.java +++ b/java/src/IceGrid/TreeNode/Nodes.java @@ -59,7 +59,8 @@ public class Nodes extends EditableParent {
_popup = new PopupMenu(_model);
- JMenuItem newNodeItem = new JMenuItem(_model.getActions()[NEW_NODE]);
+ JMenuItem newNodeItem =
+ new JMenuItem(_model.getActions()[NEW_NODE]);
newNodeItem.setText("New node");
_popup.add(newNodeItem);
}
diff --git a/java/src/IceGrid/TreeNode/PropertiesHolder.java b/java/src/IceGrid/TreeNode/PropertiesHolder.java index a35d3e931d5..745b0a8053a 100755 --- a/java/src/IceGrid/TreeNode/PropertiesHolder.java +++ b/java/src/IceGrid/TreeNode/PropertiesHolder.java @@ -35,40 +35,24 @@ class PropertiesHolder return null;
}
- void replace(String oldKey, String newKey, String newValue)
+ void set(String key, String newValue)
{
- //
- // Each PropertyDescriptor is considered immutable: so always remove + put
- //
- boolean oldKeyRemoved = false;
- boolean newKeyRemoved = false;
- if(oldKey.equals(newKey))
- {
- oldKeyRemoved = true;
- }
+ remove(key);
+ _descriptor.properties.add(new PropertyDescriptor(key, newValue));
+ }
+ void remove(String key)
+ {
java.util.Iterator p = _descriptor.properties.iterator();
- while(p.hasNext() && (!oldKeyRemoved || !newKeyRemoved))
+ while(p.hasNext())
{
PropertyDescriptor pd = (PropertyDescriptor)p.next();
-
- if(!oldKeyRemoved && pd.name.equals(oldKey))
- {
- p.remove();
- oldKeyRemoved = true;
- }
- else if(!newKeyRemoved && pd.name.equals(newKey))
+ if(pd.name.equals(key))
{
p.remove();
- newKeyRemoved = true;
}
}
-
-
- if(!newValue.equals(""))
- {
- _descriptor.properties.add(new PropertyDescriptor(newKey, newValue));
- }
}
+
private CommunicatorDescriptor _descriptor;
}
diff --git a/java/src/IceGrid/TreeNode/Server.java b/java/src/IceGrid/TreeNode/Server.java index 5ae524ede47..a5f38801e2d 100755 --- a/java/src/IceGrid/TreeNode/Server.java +++ b/java/src/IceGrid/TreeNode/Server.java @@ -163,6 +163,13 @@ class Server extends EditableParent actions[DELETE] = true;
actions[SUBSTITUTE_VARS] = true;
+
+ if(_instanceDescriptor == null)
+ {
+ actions[NEW_ADAPTER] = (_adapters != null && _services == null);
+ actions[NEW_SERVICE] = (_services != null);
+ actions[NEW_DBENV] = (_dbEnvs != null);
+ }
ServerState state = getState();
if(state != null)
@@ -187,6 +194,20 @@ class Server extends EditableParent if(_popup == null)
{
_popup = new PopupMenu(_model);
+
+ JMenuItem item = new JMenuItem(_model.getActions()[NEW_ADAPTER]);
+ item.setText("New adapter");
+ _popup.add(item);
+
+ item = new JMenuItem(_model.getActions()[NEW_DBENV]);
+ item.setText("New DbEnv");
+ _popup.add(item);
+
+ item = new JMenuItem(_model.getActions()[NEW_SERVICE]);
+ item.setText("New service");
+ _popup.add(item);
+
+ _popup.addSeparator();
_popup.add(_model.getActions()[START]);
_popup.add(_model.getActions()[STOP]);
_popup.addSeparator();
@@ -213,6 +234,18 @@ class Server extends EditableParent {
_parent.paste();
}
+ public void newAdapter()
+ {
+ _adapters.newAdapter();
+ }
+ public void newDbEnv()
+ {
+ _dbEnvs.newDbEnv();
+ }
+ public void newService()
+ {
+ _services.newService();
+ }
public void start()
{
diff --git a/java/src/IceGrid/TreeNode/ServerSubEditor.java b/java/src/IceGrid/TreeNode/ServerSubEditor.java index a0153e7545b..c11524a03c9 100755 --- a/java/src/IceGrid/TreeNode/ServerSubEditor.java +++ b/java/src/IceGrid/TreeNode/ServerSubEditor.java @@ -73,7 +73,7 @@ class ServerSubEditor extends CommunicatorSubEditor _envButton = new JButton(openEnvDialog);
_optionDialog = new ListDialog(parentFrame,
- "Command Arguments");
+ "Command Arguments", false);
Action openOptionDialog = new AbstractAction("...")
{
public void actionPerformed(ActionEvent e)
@@ -99,7 +99,7 @@ class ServerSubEditor extends CommunicatorSubEditor _distribDirs.setEditable(false);
_distribDirsDialog = new ListDialog(parentFrame,
- "Directories");
+ "Directories", true);
Action openDistribDirsDialog = new AbstractAction("...")
{
diff --git a/java/src/IceGrid/TreeNode/ServerTemplate.java b/java/src/IceGrid/TreeNode/ServerTemplate.java index d9579b012be..4b85ba0714c 100755 --- a/java/src/IceGrid/TreeNode/ServerTemplate.java +++ b/java/src/IceGrid/TreeNode/ServerTemplate.java @@ -66,6 +66,11 @@ class ServerTemplate extends EditableParent actions[PASTE] = true;
}
actions[DELETE] = true;
+
+ actions[NEW_ADAPTER] = (_adapters != null && _services == null);
+ actions[NEW_SERVICE] = (_services != null);
+ actions[NEW_DBENV] = (_dbEnvs != null);
+
return actions;
}
public void copy()
@@ -77,6 +82,40 @@ class ServerTemplate extends EditableParent {
_parent.paste();
}
+ public void newAdapter()
+ {
+ _adapters.newAdapter();
+ }
+ public void newDbEnv()
+ {
+ _dbEnvs.newDbEnv();
+ }
+ public void newService()
+ {
+ _services.newService();
+ }
+
+ public JPopupMenu getPopupMenu()
+ {
+ if(_popup == null)
+ {
+ _popup = new PopupMenu(_model);
+
+ JMenuItem item = new JMenuItem(_model.getActions()[NEW_ADAPTER]);
+ item.setText("New adapter");
+ _popup.add(item);
+
+ item = new JMenuItem(_model.getActions()[NEW_DBENV]);
+ item.setText("New DbEnv");
+ _popup.add(item);
+
+ item = new JMenuItem(_model.getActions()[NEW_SERVICE]);
+ item.setText("New service");
+ _popup.add(item);
+ }
+ return _popup;
+ }
+
public void displayProperties()
{
@@ -226,9 +265,9 @@ class ServerTemplate extends EditableParent {
if(_templateDescriptor.descriptor instanceof IceBoxDescriptor)
{
- _iceBoxDescriptor = (IceBoxDescriptor)_templateDescriptor.descriptor;
+ IceBoxDescriptor iceBoxDescriptor = (IceBoxDescriptor)_templateDescriptor.descriptor;
- _services = new Services(_iceBoxDescriptor.services, true, null,
+ _services = new Services(iceBoxDescriptor.services, true, null,
application);
addChild(_services);
@@ -238,7 +277,6 @@ class ServerTemplate extends EditableParent else
{
_services = null;
- _iceBoxDescriptor = null;
_dbEnvs = new DbEnvs(_templateDescriptor.descriptor.dbEnvs, true,
null, _model);
@@ -260,8 +298,7 @@ class ServerTemplate extends EditableParent }
private TemplateDescriptor _templateDescriptor;
- private IceBoxDescriptor _iceBoxDescriptor;
-
+
private Services _services;
private Adapters _adapters;
private DbEnvs _dbEnvs;
@@ -270,4 +307,5 @@ class ServerTemplate extends EditableParent private final boolean _ephemeral;
static private ServerTemplateEditor _editor;
+ static private JPopupMenu _popup;
}
diff --git a/java/src/IceGrid/TreeNode/Service.java b/java/src/IceGrid/TreeNode/Service.java index 06f3c12608f..f85aa8820e1 100755 --- a/java/src/IceGrid/TreeNode/Service.java +++ b/java/src/IceGrid/TreeNode/Service.java @@ -8,6 +8,7 @@ // **********************************************************************
package IceGrid.TreeNode;
+import javax.swing.JMenuItem;
import javax.swing.JPopupMenu;
import IceGrid.SimpleInternalFrame;
@@ -63,6 +64,12 @@ class Service extends Parent if(isEditable())
{
actions[DELETE] = true;
+
+ if(_instanceDescriptor.template.equals(""))
+ {
+ actions[NEW_ADAPTER] = (_adapters != null);
+ actions[NEW_DBENV] = (_dbEnvs != null);
+ }
}
if(_resolver != null && !_ephemeral)
@@ -79,6 +86,15 @@ class Service extends Parent if(_popup == null)
{
_popup = new PopupMenu(_model);
+ JMenuItem item = new JMenuItem(_model.getActions()[NEW_ADAPTER]);
+ item.setText("New adapter");
+ _popup.add(item);
+
+ item = new JMenuItem(_model.getActions()[NEW_DBENV]);
+ item.setText("New DbEnv");
+ _popup.add(item);
+
+ _popup.addSeparator();
_popup.add(_model.getActions()[MOVE_UP]);
_popup.add(_model.getActions()[MOVE_DOWN]);
}
@@ -103,6 +119,14 @@ class Service extends Parent assert canMoveDown();
((Services)_parent).move(this, false);
}
+ public void newAdapter()
+ {
+ _adapters.newAdapter();
+ }
+ public void newDbEnv()
+ {
+ _dbEnvs.newDbEnv();
+ }
public Object getDescriptor()
{
diff --git a/java/src/IceGrid/TreeNode/ServiceTemplate.java b/java/src/IceGrid/TreeNode/ServiceTemplate.java index 03ed357f4a5..98a891938cc 100755 --- a/java/src/IceGrid/TreeNode/ServiceTemplate.java +++ b/java/src/IceGrid/TreeNode/ServiceTemplate.java @@ -8,11 +8,14 @@ // **********************************************************************
package IceGrid.TreeNode;
-import IceGrid.SimpleInternalFrame;
+import javax.swing.JMenuItem;
+import javax.swing.JPopupMenu;
+import IceGrid.Model;
import IceGrid.ServiceDescriptor;
+import IceGrid.SimpleInternalFrame;
import IceGrid.TemplateDescriptor;
-import IceGrid.Model;
+
class ServiceTemplate extends EditableParent
{
@@ -40,6 +43,10 @@ class ServiceTemplate extends EditableParent actions[PASTE] = true;
}
actions[DELETE] = true;
+
+ actions[NEW_ADAPTER] = (_adapters != null);
+ actions[NEW_DBENV] = (_dbEnvs != null);
+
return actions;
}
public void copy()
@@ -51,6 +58,31 @@ class ServiceTemplate extends EditableParent {
_parent.paste();
}
+ public void newAdapter()
+ {
+ _adapters.newAdapter();
+ }
+ public void newDbEnv()
+ {
+ _dbEnvs.newDbEnv();
+ }
+
+ public JPopupMenu getPopupMenu()
+ {
+ if(_popup == null)
+ {
+ _popup = new PopupMenu(_model);
+ JMenuItem item = new JMenuItem(_model.getActions()[NEW_ADAPTER]);
+ item.setText("New adapter");
+ _popup.add(item);
+
+ item = new JMenuItem(_model.getActions()[NEW_DBENV]);
+ item.setText("New DbEnv");
+ _popup.add(item);
+ }
+ return _popup;
+ }
+
public void displayProperties()
{
@@ -204,4 +236,5 @@ class ServiceTemplate extends EditableParent private final boolean _ephemeral;
static private ServiceTemplateEditor _editor;
+ static private JPopupMenu _popup;
}
|