diff options
author | Bernard Normier <bernard@zeroc.com> | 2007-02-01 17:09:49 +0000 |
---|---|---|
committer | Bernard Normier <bernard@zeroc.com> | 2007-02-01 17:09:49 +0000 |
commit | abada90e3f84dc703b8ddc9efcbed8a946fadead (patch) | |
tree | 2c6f9dccd510ea97cb927a7bd635422efaae547a /java/src/IceGridGUI/Application | |
parent | removing trace message (diff) | |
download | ice-abada90e3f84dc703b8ddc9efcbed8a946fadead.tar.bz2 ice-abada90e3f84dc703b8ddc9efcbed8a946fadead.tar.xz ice-abada90e3f84dc703b8ddc9efcbed8a946fadead.zip |
Expanded tabs into spaces
Diffstat (limited to 'java/src/IceGridGUI/Application')
49 files changed, 9795 insertions, 9795 deletions
diff --git a/java/src/IceGridGUI/Application/AbstractServerEditor.java b/java/src/IceGridGUI/Application/AbstractServerEditor.java index 2bead3feac9..f46a40838c3 100755 --- a/java/src/IceGridGUI/Application/AbstractServerEditor.java +++ b/java/src/IceGridGUI/Application/AbstractServerEditor.java @@ -33,148 +33,148 @@ abstract class AbstractServerEditor extends Editor protected void buildPropertiesPanel() { - super.buildPropertiesPanel(); - _propertiesPanel.setName("Server Properties"); + super.buildPropertiesPanel(); + _propertiesPanel.setName("Server Properties"); } protected boolean applyUpdate(boolean refresh) { - Root root = _target.getRoot(); - Server server = (Server)_target; + Root root = _target.getRoot(); + Server server = (Server)_target; - root.disableSelectionListener(); - try - { - if(_target.isEphemeral()) - { - Node node = (Node)_target.getParent(); - writeDescriptor(); + root.disableSelectionListener(); + try + { + if(_target.isEphemeral()) + { + Node node = (Node)_target.getParent(); + writeDescriptor(); - _target.destroy(); // just removes the child + _target.destroy(); // just removes the child - try - { - if(server instanceof PlainServer) - { - node.tryAdd((ServerDescriptor)server.getDescriptor(), true); - } - else - { - node.tryAdd((ServerInstanceDescriptor)server.getDescriptor(), true); - } - } - catch(UpdateFailedException e) - { - // - // Add back ephemeral child - // - try - { - node.insertServer(_target, true); - } - catch(UpdateFailedException die) - { - assert false; - } - root.setSelectedNode(_target); + try + { + if(server instanceof PlainServer) + { + node.tryAdd((ServerDescriptor)server.getDescriptor(), true); + } + else + { + node.tryAdd((ServerInstanceDescriptor)server.getDescriptor(), true); + } + } + catch(UpdateFailedException e) + { + // + // Add back ephemeral child + // + try + { + node.insertServer(_target, true); + } + catch(UpdateFailedException die) + { + assert false; + } + root.setSelectedNode(_target); - JOptionPane.showMessageDialog( - root.getCoordinator().getMainFrame(), - e.toString(), - "Apply failed", - JOptionPane.ERROR_MESSAGE); - return false; - } + JOptionPane.showMessageDialog( + root.getCoordinator().getMainFrame(), + e.toString(), + "Apply failed", + JOptionPane.ERROR_MESSAGE); + return false; + } - // - // Success - // - _target = (TreeNode)node.findChildWithDescriptor(server.getDescriptor()); - root.updated(); - - if(refresh) - { - root.setSelectedNode(_target); - } - - } - else if(isSimpleUpdate()) - { - writeDescriptor(); - root.updated(); - server.getEditable().markModified(); - } - else - { - // - // Save to be able to rollback - // - Object savedDescriptor = server.saveDescriptor(); - Node node = (Node)_target.getParent(); - writeDescriptor(); - - node.removeServer(_target); - - try - { - if(server instanceof PlainServer) - { - node.tryAdd((ServerDescriptor)server.getDescriptor(), false); - } - else - { - node.tryAdd((ServerInstanceDescriptor)server.getDescriptor(), false); - } - } - catch(UpdateFailedException e) - { - // - // Restore - // - try - { - node.insertServer(_target, true); - } - catch(UpdateFailedException die) - { - assert false; - } - server.restoreDescriptor(savedDescriptor); - root.setSelectedNode(_target); - - JOptionPane.showMessageDialog( - root.getCoordinator().getMainFrame(), - e.toString(), - "Apply failed", - JOptionPane.ERROR_MESSAGE); - return false; - } - - // - // Success - // - node.getEditable().removeElement(_target.getId(), server.getEditable(), - Server.class); // replaced by brand new Server - - _target = node.findChildWithDescriptor(server.getDescriptor()); - root.updated(); - if(refresh) - { - root.setSelectedNode(_target); - } - } - - if(refresh) - { - root.getCoordinator().getCurrentTab().showNode(_target); - } - _applyButton.setEnabled(false); - _discardButton.setEnabled(false); - return true; - } - finally - { - root.enableSelectionListener(); - } + // + // Success + // + _target = (TreeNode)node.findChildWithDescriptor(server.getDescriptor()); + root.updated(); + + if(refresh) + { + root.setSelectedNode(_target); + } + + } + else if(isSimpleUpdate()) + { + writeDescriptor(); + root.updated(); + server.getEditable().markModified(); + } + else + { + // + // Save to be able to rollback + // + Object savedDescriptor = server.saveDescriptor(); + Node node = (Node)_target.getParent(); + writeDescriptor(); + + node.removeServer(_target); + + try + { + if(server instanceof PlainServer) + { + node.tryAdd((ServerDescriptor)server.getDescriptor(), false); + } + else + { + node.tryAdd((ServerInstanceDescriptor)server.getDescriptor(), false); + } + } + catch(UpdateFailedException e) + { + // + // Restore + // + try + { + node.insertServer(_target, true); + } + catch(UpdateFailedException die) + { + assert false; + } + server.restoreDescriptor(savedDescriptor); + root.setSelectedNode(_target); + + JOptionPane.showMessageDialog( + root.getCoordinator().getMainFrame(), + e.toString(), + "Apply failed", + JOptionPane.ERROR_MESSAGE); + return false; + } + + // + // Success + // + node.getEditable().removeElement(_target.getId(), server.getEditable(), + Server.class); // replaced by brand new Server + + _target = node.findChildWithDescriptor(server.getDescriptor()); + root.updated(); + if(refresh) + { + root.setSelectedNode(_target); + } + } + + if(refresh) + { + root.getCoordinator().getCurrentTab().showNode(_target); + } + _applyButton.setEnabled(false); + _discardButton.setEnabled(false); + return true; + } + finally + { + root.enableSelectionListener(); + } } } diff --git a/java/src/IceGridGUI/Application/Adapter.java b/java/src/IceGridGUI/Application/Adapter.java index 9c3adc738ef..f12b90d139b 100755 --- a/java/src/IceGridGUI/Application/Adapter.java +++ b/java/src/IceGridGUI/Application/Adapter.java @@ -19,19 +19,19 @@ class Adapter extends TreeNode implements DescriptorHolder { static public AdapterDescriptor copyDescriptor(AdapterDescriptor d) { - return (AdapterDescriptor)d.clone(); + return (AdapterDescriptor)d.clone(); } static public java.util.List copyDescriptors(java.util.List descriptors) { - java.util.List copy = new java.util.LinkedList(); - java.util.Iterator p = descriptors.iterator(); - while(p.hasNext()) - { - copy.add(copyDescriptor((AdapterDescriptor)p.next())); - } - return copy; + java.util.List copy = new java.util.LinkedList(); + java.util.Iterator p = descriptors.iterator(); + while(p.hasNext()) + { + copy.add(copyDescriptor((AdapterDescriptor)p.next())); + } + return copy; } // @@ -39,194 +39,194 @@ class Adapter extends TreeNode implements DescriptorHolder // public boolean[] getAvailableActions() { - boolean[] actions = new boolean[ACTION_COUNT]; - actions[COPY] = !_ephemeral; - - Object clipboard = getCoordinator().getClipboard(); - actions[PASTE] = clipboard != null && - (clipboard instanceof AdapterDescriptor - || clipboard instanceof DbEnvDescriptor); - - actions[DELETE] = true; - - if(!_ephemeral) - { - boolean[] parentActions = ((TreeNode)_parent).getAvailableActions(); - actions[SHOW_VARS] = parentActions[SHOW_VARS]; - actions[SUBSTITUTE_VARS] = parentActions[SUBSTITUTE_VARS]; - } - return actions; + boolean[] actions = new boolean[ACTION_COUNT]; + actions[COPY] = !_ephemeral; + + Object clipboard = getCoordinator().getClipboard(); + actions[PASTE] = clipboard != null && + (clipboard instanceof AdapterDescriptor + || clipboard instanceof DbEnvDescriptor); + + actions[DELETE] = true; + + if(!_ephemeral) + { + boolean[] parentActions = ((TreeNode)_parent).getAvailableActions(); + actions[SHOW_VARS] = parentActions[SHOW_VARS]; + actions[SUBSTITUTE_VARS] = parentActions[SUBSTITUTE_VARS]; + } + return actions; } public void copy() { - getCoordinator().setClipboard(copyDescriptor(_descriptor)); - getCoordinator().getActionsForMenu().get(PASTE).setEnabled(true); + getCoordinator().setClipboard(copyDescriptor(_descriptor)); + getCoordinator().getActionsForMenu().get(PASTE).setEnabled(true); } public void paste() { - ((TreeNode)_parent).paste(); + ((TreeNode)_parent).paste(); } public Component getTreeCellRendererComponent( - JTree tree, - Object value, - boolean sel, - boolean expanded, - boolean leaf, - int row, - boolean hasFocus) + JTree tree, + Object value, + boolean sel, + boolean expanded, + boolean leaf, + int row, + boolean hasFocus) { - if(_cellRenderer == null) - { - _cellRenderer = new DefaultTreeCellRenderer(); - _cellRenderer.setLeafIcon(Utils.getIcon("/icons/16x16/adapter_inactive.png")); - } + if(_cellRenderer == null) + { + _cellRenderer = new DefaultTreeCellRenderer(); + _cellRenderer.setLeafIcon(Utils.getIcon("/icons/16x16/adapter_inactive.png")); + } - return _cellRenderer.getTreeCellRendererComponent( - tree, value, sel, expanded, leaf, row, hasFocus); + return _cellRenderer.getTreeCellRendererComponent( + tree, value, sel, expanded, leaf, row, hasFocus); } public Editor getEditor() { - if(_editor == null) - { - _editor = (AdapterEditor)getRoot().getEditor(AdapterEditor.class, this); - } - _editor.show(this); - return _editor; + if(_editor == null) + { + _editor = (AdapterEditor)getRoot().getEditor(AdapterEditor.class, this); + } + _editor.show(this); + return _editor; } protected Editor createEditor() { - return new AdapterEditor(); + return new AdapterEditor(); } public void destroy() { - removeProperty("Ice.OA." + _descriptor.name + ".Endpoints"); - removeProperty("Ice.OA." + _descriptor.name + ".PublishedEndpoints"); + removeProperty("Ice.OA." + _descriptor.name + ".Endpoints"); + removeProperty("Ice.OA." + _descriptor.name + ".PublishedEndpoints"); - ((Communicator)_parent).getAdapters().destroyChild(this); + ((Communicator)_parent).getAdapters().destroyChild(this); } Object getDescriptor() { - return _descriptor; + return _descriptor; } public Object saveDescriptor() { - return copyDescriptor(_descriptor); + return copyDescriptor(_descriptor); } public void restoreDescriptor(Object savedDescriptor) { - AdapterDescriptor ad = (AdapterDescriptor)savedDescriptor; - - _descriptor.name = ad.name; - _descriptor.id = ad.id; - _descriptor.replicaGroupId = ad.replicaGroupId; - _descriptor.description = ad.description; - _descriptor.registerProcess = ad.registerProcess; - _descriptor.serverLifetime = ad.serverLifetime; - _descriptor.objects = ad.objects; + AdapterDescriptor ad = (AdapterDescriptor)savedDescriptor; + + _descriptor.name = ad.name; + _descriptor.id = ad.id; + _descriptor.replicaGroupId = ad.replicaGroupId; + _descriptor.description = ad.description; + _descriptor.registerProcess = ad.registerProcess; + _descriptor.serverLifetime = ad.serverLifetime; + _descriptor.objects = ad.objects; } Adapter(Communicator parent, String adapterName, AdapterDescriptor descriptor, - boolean ephemeral) + boolean ephemeral) { - super(parent, adapterName); - _descriptor = descriptor; - _ephemeral = ephemeral; + super(parent, adapterName); + _descriptor = descriptor; + _ephemeral = ephemeral; } void write(XMLWriter writer) throws java.io.IOException { - assert false; + assert false; } void write(XMLWriter writer, java.util.List properties) throws java.io.IOException { - if(!_ephemeral) - { - java.util.List attributes = new java.util.LinkedList(); - attributes.add(createAttribute("name", _descriptor.name)); - String oaPrefix = "Ice.OA." + _descriptor.name + "."; - - attributes.add(createAttribute("endpoints", getProperty(oaPrefix + "Endpoints"))); - attributes.add(createAttribute("id", _descriptor.id)); - if(_descriptor.registerProcess) - { - attributes.add(createAttribute("register-process", "true")); - } - if(_descriptor.replicaGroupId.length() > 0) - { - attributes.add(createAttribute("replica-group", _descriptor.replicaGroupId)); - } - if(_descriptor.priority != null && _descriptor.priority.length() > 0) - { - attributes.add(createAttribute("priority", _descriptor.priority)); - } - if(!_descriptor.serverLifetime) - { - attributes.add(createAttribute("server-lifetime", "false")); - } - - if(_descriptor.description.length() == 0 - && _descriptor.objects.isEmpty() - && _descriptor.allocatables.isEmpty()) - { - writer.writeElement("adapter", attributes); - } - else - { - writer.writeStartTag("adapter", attributes); - - if(_descriptor.description.length() > 0) - { - writer.writeElement("description", _descriptor.description); - } - writeObjects("object", writer, _descriptor.objects, properties); - writeObjects("allocatable", writer, _descriptor.allocatables, properties); - writer.writeEndTag("adapter"); - } - } + if(!_ephemeral) + { + java.util.List attributes = new java.util.LinkedList(); + attributes.add(createAttribute("name", _descriptor.name)); + String oaPrefix = "Ice.OA." + _descriptor.name + "."; + + attributes.add(createAttribute("endpoints", getProperty(oaPrefix + "Endpoints"))); + attributes.add(createAttribute("id", _descriptor.id)); + if(_descriptor.registerProcess) + { + attributes.add(createAttribute("register-process", "true")); + } + if(_descriptor.replicaGroupId.length() > 0) + { + attributes.add(createAttribute("replica-group", _descriptor.replicaGroupId)); + } + if(_descriptor.priority != null && _descriptor.priority.length() > 0) + { + attributes.add(createAttribute("priority", _descriptor.priority)); + } + if(!_descriptor.serverLifetime) + { + attributes.add(createAttribute("server-lifetime", "false")); + } + + if(_descriptor.description.length() == 0 + && _descriptor.objects.isEmpty() + && _descriptor.allocatables.isEmpty()) + { + writer.writeElement("adapter", attributes); + } + else + { + writer.writeStartTag("adapter", attributes); + + if(_descriptor.description.length() > 0) + { + writer.writeElement("description", _descriptor.description); + } + writeObjects("object", writer, _descriptor.objects, properties); + writeObjects("allocatable", writer, _descriptor.allocatables, properties); + writer.writeEndTag("adapter"); + } + } } String getProperty(String property) { - return ((Communicator)_parent).getProperty(property); + return ((Communicator)_parent).getProperty(property); } String lookupPropertyValue(String val) { - return ((Communicator)_parent).lookupPropertyValue(val); + return ((Communicator)_parent).lookupPropertyValue(val); } void setProperty(String property, String newValue) { - ((Communicator)_parent).setProperty(property, newValue); + ((Communicator)_parent).setProperty(property, newValue); } void removeProperty(String property) { - ((Communicator)_parent).removeProperty(property); + ((Communicator)_parent).removeProperty(property); } String getDefaultAdapterId() { - return getDefaultAdapterId(_id); + return getDefaultAdapterId(_id); } String getDefaultAdapterId(String name) - { - return (_parent instanceof Service || - _parent instanceof ServiceTemplate) ? - "${server}.${service}." + name: "${server}." + name; + { + return (_parent instanceof Service || + _parent instanceof ServiceTemplate) ? + "${server}.${service}." + name: "${server}." + name; } public boolean isEphemeral() { - return _ephemeral; + return _ephemeral; } private final boolean _ephemeral; diff --git a/java/src/IceGridGUI/Application/AdapterEditor.java b/java/src/IceGridGUI/Application/AdapterEditor.java index 97c6ba17bd1..5b8f8f85647 100755 --- a/java/src/IceGridGUI/Application/AdapterEditor.java +++ b/java/src/IceGridGUI/Application/AdapterEditor.java @@ -35,147 +35,147 @@ class AdapterEditor extends CommunicatorChildEditor { AdapterEditor() { - _objects = new MapField(this, "Identity", new String[]{"Type", "Property"}, true); - _allocatables = new MapField(this, "Identity", new String[]{"Type", "Property"}, true); - - // - // Create buttons - // - - // - // _replicaGroupButton - // - Action gotoReplicaGroup = new AbstractAction( - "", Utils.getIcon("/icons/16x16/goto.png")) - { - public void actionPerformed(ActionEvent e) - { - Object obj = _replicaGroupId.getSelectedItem(); - Adapter adapter = getAdapter(); - - ReplicaGroup rg = null; - if(obj instanceof ReplicaGroup) - { - rg = (ReplicaGroup)obj; - } - else - { - String replicaGroupId = - Utils.substitute(obj.toString(), adapter.getResolver()); - - rg = adapter.getRoot().findReplicaGroup(replicaGroupId); - } - - // - // The button is enabled therefore rg should be != null - // - if(rg != null) - { - adapter.getRoot().setSelectedNode(rg); - } - } - }; - gotoReplicaGroup.putValue(Action.SHORT_DESCRIPTION, - "Goto the definition of this replica group"); - _replicaGroupButton = new JButton(gotoReplicaGroup); - - Action checkRegisterProcess = new AbstractAction("Register Process") - { - public void actionPerformed(ActionEvent e) - { - updated(); - } - }; - _registerProcess = new JCheckBox(checkRegisterProcess); - _registerProcess.setToolTipText( - "<html>During activation, create a Process object<br>" - + "in this adapter and register it with IceGrid<br>" - + "to enable clean shutdown; you should register<br>" - + "exactly one Process object per server.</html>"); - - Action checkServerLifetime = - new AbstractAction("Server Lifetime") - { - public void actionPerformed(ActionEvent e) - { - updated(); - } - }; - _serverLifetime = new JCheckBox(checkServerLifetime); - _serverLifetime.setToolTipText( - "<html>Is the adapter lifetime the same as the server<br>" + + _objects = new MapField(this, "Identity", new String[]{"Type", "Property"}, true); + _allocatables = new MapField(this, "Identity", new String[]{"Type", "Property"}, true); + + // + // Create buttons + // + + // + // _replicaGroupButton + // + Action gotoReplicaGroup = new AbstractAction( + "", Utils.getIcon("/icons/16x16/goto.png")) + { + public void actionPerformed(ActionEvent e) + { + Object obj = _replicaGroupId.getSelectedItem(); + Adapter adapter = getAdapter(); + + ReplicaGroup rg = null; + if(obj instanceof ReplicaGroup) + { + rg = (ReplicaGroup)obj; + } + else + { + String replicaGroupId = + Utils.substitute(obj.toString(), adapter.getResolver()); + + rg = adapter.getRoot().findReplicaGroup(replicaGroupId); + } + + // + // The button is enabled therefore rg should be != null + // + if(rg != null) + { + adapter.getRoot().setSelectedNode(rg); + } + } + }; + gotoReplicaGroup.putValue(Action.SHORT_DESCRIPTION, + "Goto the definition of this replica group"); + _replicaGroupButton = new JButton(gotoReplicaGroup); + + Action checkRegisterProcess = new AbstractAction("Register Process") + { + public void actionPerformed(ActionEvent e) + { + updated(); + } + }; + _registerProcess = new JCheckBox(checkRegisterProcess); + _registerProcess.setToolTipText( + "<html>During activation, create a Process object<br>" + + "in this adapter and register it with IceGrid<br>" + + "to enable clean shutdown; you should register<br>" + + "exactly one Process object per server.</html>"); + + Action checkServerLifetime = + new AbstractAction("Server Lifetime") + { + public void actionPerformed(ActionEvent e) + { + updated(); + } + }; + _serverLifetime = new JCheckBox(checkServerLifetime); + _serverLifetime.setToolTipText( + "<html>Is the adapter lifetime the same as the server<br>" + "lifetime? The server is considered to be active<br>" + - "only if all the adapters with this attribute set<br>" + - "to true are active.</html>"); - // - // Associate updateListener with various fields - // - _name.getDocument().addDocumentListener( - new DocumentListener() - { - public void changedUpdate(DocumentEvent e) - { - update(); - } - - public void insertUpdate(DocumentEvent e) - { - update(); - } - - public void removeUpdate(DocumentEvent e) - { - update(); - } - - private void update() - { - updated(); - // - // Recompute default id - // - _defaultAdapterId = getAdapter().getDefaultAdapterId(_name.getText().trim()); - refreshId(); - } - }); - - _name.setToolTipText( - "Identifies this object adapter within an Ice communicator"); - - _endpoints.getDocument().addDocumentListener(_updateListener); - _endpoints.setToolTipText( - "<html>The network interface(s) on which this object adapter receives requests;<br>" - + "for example:<br>" - + " tcp (listen on all local interfaces using a random port)<br>" - + " tcp -h venus.foo.com (listen on just one interface)<br>" - + " tcp -t 10000 (sets a timeout of 10,000 milliseconds)<br>" - + " ssl -h venus.foo.com (accepts SSL connections instead of plain TCP)" - + "</html>"); - - _description.getDocument().addDocumentListener(_updateListener); - _description.setToolTipText( - "An optional description for this object adapter"); - - JTextField idTextField = (JTextField) - _id.getEditor().getEditorComponent(); - idTextField.getDocument().addDocumentListener(_updateListener); - _id.setToolTipText("Identities this object adapter within an IceGrid deployment"); - - JTextField replicaGroupIdTextField = (JTextField) - _replicaGroupId.getEditor().getEditorComponent(); - replicaGroupIdTextField.getDocument().addDocumentListener(_updateListener); - _replicaGroupId.setToolTipText("Select a replica group"); - - _priority.getDocument().addDocumentListener(_updateListener); - _priority.setToolTipText("The priority of this adapter; see the Ordered load-balancing " - + "policy in Replica Groups"); - - - JTextField publishedEndpointsTextField = (JTextField) - _publishedEndpoints.getEditor().getEditorComponent(); - publishedEndpointsTextField.getDocument().addDocumentListener(_updateListener); - _publishedEndpoints.setToolTipText( - "Endpoints registered with the IceGrid Registry during the activation of this adapter."); + "only if all the adapters with this attribute set<br>" + + "to true are active.</html>"); + // + // Associate updateListener with various fields + // + _name.getDocument().addDocumentListener( + new DocumentListener() + { + public void changedUpdate(DocumentEvent e) + { + update(); + } + + public void insertUpdate(DocumentEvent e) + { + update(); + } + + public void removeUpdate(DocumentEvent e) + { + update(); + } + + private void update() + { + updated(); + // + // Recompute default id + // + _defaultAdapterId = getAdapter().getDefaultAdapterId(_name.getText().trim()); + refreshId(); + } + }); + + _name.setToolTipText( + "Identifies this object adapter within an Ice communicator"); + + _endpoints.getDocument().addDocumentListener(_updateListener); + _endpoints.setToolTipText( + "<html>The network interface(s) on which this object adapter receives requests;<br>" + + "for example:<br>" + + " tcp (listen on all local interfaces using a random port)<br>" + + " tcp -h venus.foo.com (listen on just one interface)<br>" + + " tcp -t 10000 (sets a timeout of 10,000 milliseconds)<br>" + + " ssl -h venus.foo.com (accepts SSL connections instead of plain TCP)" + + "</html>"); + + _description.getDocument().addDocumentListener(_updateListener); + _description.setToolTipText( + "An optional description for this object adapter"); + + JTextField idTextField = (JTextField) + _id.getEditor().getEditorComponent(); + idTextField.getDocument().addDocumentListener(_updateListener); + _id.setToolTipText("Identities this object adapter within an IceGrid deployment"); + + JTextField replicaGroupIdTextField = (JTextField) + _replicaGroupId.getEditor().getEditorComponent(); + replicaGroupIdTextField.getDocument().addDocumentListener(_updateListener); + _replicaGroupId.setToolTipText("Select a replica group"); + + _priority.getDocument().addDocumentListener(_updateListener); + _priority.setToolTipText("The priority of this adapter; see the Ordered load-balancing " + + "policy in Replica Groups"); + + + JTextField publishedEndpointsTextField = (JTextField) + _publishedEndpoints.getEditor().getEditorComponent(); + publishedEndpointsTextField.getDocument().addDocumentListener(_updateListener); + _publishedEndpoints.setToolTipText( + "Endpoints registered with the IceGrid Registry during the activation of this adapter."); } @@ -185,403 +185,403 @@ class AdapterEditor extends CommunicatorChildEditor void writeDescriptor() { - AdapterDescriptor descriptor = - (AdapterDescriptor)getAdapter().getDescriptor(); - descriptor.name = _name.getText().trim(); - descriptor.description = _description.getText(); - descriptor.id = getIdAsString(); - descriptor.replicaGroupId = getReplicaGroupIdAsString(); - descriptor.priority = _priority.getText().trim(); - descriptor.registerProcess = _registerProcess.isSelected(); - descriptor.serverLifetime = _serverLifetime.isSelected(); - descriptor.objects = mapToObjectDescriptorSeq(_objects.get()); - descriptor.allocatables = mapToObjectDescriptorSeq(_allocatables.get()); - } + AdapterDescriptor descriptor = + (AdapterDescriptor)getAdapter().getDescriptor(); + descriptor.name = _name.getText().trim(); + descriptor.description = _description.getText(); + descriptor.id = getIdAsString(); + descriptor.replicaGroupId = getReplicaGroupIdAsString(); + descriptor.priority = _priority.getText().trim(); + descriptor.registerProcess = _registerProcess.isSelected(); + descriptor.serverLifetime = _serverLifetime.isSelected(); + descriptor.objects = mapToObjectDescriptorSeq(_objects.get()); + descriptor.allocatables = mapToObjectDescriptorSeq(_allocatables.get()); + } boolean isSimpleUpdate() { - AdapterDescriptor descriptor = - (AdapterDescriptor)getAdapter().getDescriptor(); + AdapterDescriptor descriptor = + (AdapterDescriptor)getAdapter().getDescriptor(); - return descriptor.name.equals(_name.getText().trim()); + return descriptor.name.equals(_name.getText().trim()); } Communicator.ChildList getChildList() { - return ((Communicator)_target.getParent()).getAdapters(); + return ((Communicator)_target.getParent()).getAdapters(); } protected void appendProperties(DefaultFormBuilder builder) { - builder.append("Adapter Name" ); - builder.append(_name, 3); - builder.nextLine(); - - builder.append("Description"); - builder.nextLine(); - builder.append(""); - builder.nextRow(-2); - CellConstraints cc = new CellConstraints(); - JScrollPane scrollPane = new JScrollPane(_description); - builder.add(scrollPane, - cc.xywh(builder.getColumn(), builder.getRow(), 3, 3)); - builder.nextRow(2); - builder.nextLine(); - - builder.append("Adapter ID"); - builder.append(_id, 3); - builder.nextLine(); - - builder.append("Replica Group", _replicaGroupId); - builder.append(_replicaGroupButton); - builder.nextLine(); - - builder.append("Priority"); - builder.append(_priority, 3); - builder.nextLine(); - - builder.append("Endpoints" ); - builder.append(_endpoints, 3); - builder.nextLine(); - - builder.append("Published Endpoints"); - builder.append(_publishedEndpoints, 3); - builder.nextLine(); - - builder.append("", _registerProcess); - builder.nextLine(); - builder.append("", _serverLifetime); - builder.nextLine(); - - builder.append("Well-known Objects"); - builder.nextLine(); - builder.append(""); - builder.nextLine(); - builder.append(""); - builder.nextLine(); - builder.append(""); - builder.nextRow(-6); - scrollPane = new JScrollPane(_objects); - builder.add(scrollPane, - cc.xywh(builder.getColumn(), builder.getRow(), 3, 7)); - builder.nextRow(6); - builder.nextLine(); - - builder.append("Allocatable Objects"); - builder.nextLine(); - builder.append(""); - builder.nextLine(); - builder.append(""); - builder.nextLine(); - builder.append(""); - builder.nextRow(-6); - scrollPane = new JScrollPane(_allocatables); - builder.add(scrollPane, - cc.xywh(builder.getColumn(), builder.getRow(), 3, 7)); - builder.nextRow(6); - builder.nextLine(); + builder.append("Adapter Name" ); + builder.append(_name, 3); + builder.nextLine(); + + builder.append("Description"); + builder.nextLine(); + builder.append(""); + builder.nextRow(-2); + CellConstraints cc = new CellConstraints(); + JScrollPane scrollPane = new JScrollPane(_description); + builder.add(scrollPane, + cc.xywh(builder.getColumn(), builder.getRow(), 3, 3)); + builder.nextRow(2); + builder.nextLine(); + + builder.append("Adapter ID"); + builder.append(_id, 3); + builder.nextLine(); + + builder.append("Replica Group", _replicaGroupId); + builder.append(_replicaGroupButton); + builder.nextLine(); + + builder.append("Priority"); + builder.append(_priority, 3); + builder.nextLine(); + + builder.append("Endpoints" ); + builder.append(_endpoints, 3); + builder.nextLine(); + + builder.append("Published Endpoints"); + builder.append(_publishedEndpoints, 3); + builder.nextLine(); + + builder.append("", _registerProcess); + builder.nextLine(); + builder.append("", _serverLifetime); + builder.nextLine(); + + builder.append("Well-known Objects"); + builder.nextLine(); + builder.append(""); + builder.nextLine(); + builder.append(""); + builder.nextLine(); + builder.append(""); + builder.nextRow(-6); + scrollPane = new JScrollPane(_objects); + builder.add(scrollPane, + cc.xywh(builder.getColumn(), builder.getRow(), 3, 7)); + builder.nextRow(6); + builder.nextLine(); + + builder.append("Allocatable Objects"); + builder.nextLine(); + builder.append(""); + builder.nextLine(); + builder.append(""); + builder.nextLine(); + builder.append(""); + builder.nextRow(-6); + scrollPane = new JScrollPane(_allocatables); + builder.add(scrollPane, + cc.xywh(builder.getColumn(), builder.getRow(), 3, 7)); + builder.nextRow(6); + builder.nextLine(); } protected void buildPropertiesPanel() { - super.buildPropertiesPanel(); - _propertiesPanel.setName("Adapter Properties"); + super.buildPropertiesPanel(); + _propertiesPanel.setName("Adapter Properties"); } void postUpdate() { - // - // Change enclosing properties after successful update - // - String name = _name.getText().trim(); - Adapter adapter = getAdapter(); - if(!name.equals(_oldName)) - { - adapter.removeProperty("Ice.OA." + _oldName + ".Endpoints"); - adapter.removeProperty("Ice.OA." + _oldName + ".PublishedEndpoints"); - _oldName = name; - } - - adapter.setProperty("Ice.OA." + name + ".Endpoints", _endpoints.getText().trim()); - - Object published = _publishedEndpoints.getSelectedItem(); - if(published == PUBLISH_ACTUAL) - { - adapter.removeProperty("Ice.OA." + name + ".PublishedEndpoints"); - } - else - { - adapter.setProperty("Ice.OA." + name + ".PublishedEndpoints", - 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); - } - } + // + // Change enclosing properties after successful update + // + String name = _name.getText().trim(); + Adapter adapter = getAdapter(); + if(!name.equals(_oldName)) + { + adapter.removeProperty("Ice.OA." + _oldName + ".Endpoints"); + adapter.removeProperty("Ice.OA." + _oldName + ".PublishedEndpoints"); + _oldName = name; + } + + adapter.setProperty("Ice.OA." + name + ".Endpoints", _endpoints.getText().trim()); + + Object published = _publishedEndpoints.getSelectedItem(); + if(published == PUBLISH_ACTUAL) + { + adapter.removeProperty("Ice.OA." + name + ".PublishedEndpoints"); + } + else + { + adapter.setProperty("Ice.OA." + name + ".PublishedEndpoints", + 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) { - if(id.equals(_defaultAdapterId)) - { - _id.setSelectedItem(DEFAULT_ADAPTER_ID); - } - else - { - _id.setSelectedItem(id); - } + if(id.equals(_defaultAdapterId)) + { + _id.setSelectedItem(DEFAULT_ADAPTER_ID); + } + else + { + _id.setSelectedItem(id); + } } private void refreshId() { - Object id = _id.getSelectedItem(); - _id.setModel(new DefaultComboBoxModel(new Object[] - {DEFAULT_ADAPTER_ID})); - _id.setSelectedItem(id); + Object id = _id.getSelectedItem(); + _id.setModel(new DefaultComboBoxModel(new Object[] + {DEFAULT_ADAPTER_ID})); + _id.setSelectedItem(id); } private String getIdAsString() { - Object obj = _id.getSelectedItem(); - return obj.toString().trim(); + Object obj = _id.getSelectedItem(); + return obj.toString().trim(); } private void setReplicaGroupId(String replicaGroupId) { - if(replicaGroupId.equals("")) - { - _replicaGroupId.setSelectedItem(NOT_REPLICATED); - } - else - { - ReplicaGroups replicaGroups = - getAdapter().getRoot().getReplicaGroups(); - - ReplicaGroup replicaGroup = - (ReplicaGroup)replicaGroups.findChild(replicaGroupId); - - if(replicaGroup != null) - { - _replicaGroupId.setSelectedItem(replicaGroup); - } - else - { - _replicaGroupId.setSelectedItem(replicaGroupId); - } - } + if(replicaGroupId.equals("")) + { + _replicaGroupId.setSelectedItem(NOT_REPLICATED); + } + else + { + ReplicaGroups replicaGroups = + getAdapter().getRoot().getReplicaGroups(); + + ReplicaGroup replicaGroup = + (ReplicaGroup)replicaGroups.findChild(replicaGroupId); + + if(replicaGroup != null) + { + _replicaGroupId.setSelectedItem(replicaGroup); + } + else + { + _replicaGroupId.setSelectedItem(replicaGroupId); + } + } } private String getReplicaGroupIdAsString() { - Object obj = _replicaGroupId.getSelectedItem(); - if(obj == NOT_REPLICATED) - { - return ""; - } - else - { - return obj.toString().trim(); - } + Object obj = _replicaGroupId.getSelectedItem(); + if(obj == NOT_REPLICATED) + { + return ""; + } + else + { + return obj.toString().trim(); + } } protected boolean validate() { - return check(new String[]{ - "Adapter Name", _name.getText().trim(), - "Adapter ID", getIdAsString(), - "Endpoints", _endpoints.getText().trim() - }); + return check(new String[]{ + "Adapter Name", _name.getText().trim(), + "Adapter ID", getIdAsString(), + "Endpoints", _endpoints.getText().trim() + }); } void show(Adapter adapter) { - detectUpdates(false); - _target = adapter; - - AdapterDescriptor descriptor = (AdapterDescriptor)adapter.getDescriptor(); - - final Utils.Resolver resolver = adapter.getCoordinator().substitute() ? - adapter.getResolver() : null; - - boolean isEditable = resolver == null; - - _oldName = descriptor.name; - - _name.setText(Utils.substitute(descriptor.name, resolver)); - _name.setEditable(isEditable); - - String oaPrefix = "Ice.OA." + descriptor.name + "."; - - _description.setText( - Utils.substitute(descriptor.description, resolver)); - _description.setEditable(isEditable); - _description.setOpaque(isEditable); - - // - // Need to make control editable & enabled before changing it - // - _id.setEnabled(true); - _id.setEditable(true); - _defaultAdapterId = adapter.getDefaultAdapterId(); - refreshId(); - if(descriptor.id == null) - { - descriptor.id = _defaultAdapterId; - } - - setId(Utils.substitute(descriptor.id, resolver)); - _id.setEnabled(isEditable); - _id.setEditable(isEditable); - - _replicaGroupId.setEnabled(true); - _replicaGroupId.setEditable(true); - - final ReplicaGroups replicaGroups = - adapter.getRoot().getReplicaGroups(); - _replicaGroupId.setModel(replicaGroups.createComboBoxModel(NOT_REPLICATED)); - - _replicaGroupId.addItemListener(new ItemListener() - { - public void itemStateChanged(ItemEvent e) - { - if(e.getStateChange() == ItemEvent.SELECTED) - { - Object item = e.getItem(); - boolean enabled = (item instanceof ReplicaGroup); - if(!enabled && item != NOT_REPLICATED) - { - if(resolver != null) - { - String replicaGroupId = - resolver.substitute(item.toString().trim()); - enabled = (replicaGroups.findChild(replicaGroupId) != null); - } - } - _replicaGroupButton.setEnabled(enabled); - } - } - }); - - setReplicaGroupId(Utils.substitute(descriptor.replicaGroupId, resolver)); - - _replicaGroupId.setEnabled(isEditable); - _replicaGroupId.setEditable(isEditable); - - _priority.setText(Utils.substitute(descriptor.priority, resolver)); - _priority.setEditable(isEditable); - - if(adapter.isEphemeral()) - { - _endpoints.setText("default"); - } - else - { - _endpoints.setText(Utils.substitute(adapter.getProperty(oaPrefix + "Endpoints"), resolver)); - } - _endpoints.setEditable(isEditable); - - _publishedEndpoints.setEnabled(true); - _publishedEndpoints.setEditable(true); - String published = - Utils.substitute(adapter.getProperty(oaPrefix + "PublishedEndpoints"), resolver); - if(published == null || published.equals("")) - { - _publishedEndpoints.setSelectedItem(PUBLISH_ACTUAL); - } - else - { - _publishedEndpoints.setSelectedItem(published); - } - _publishedEndpoints.setEnabled(isEditable); - _publishedEndpoints.setEditable(isEditable); - - // - // Objects - // - _objects.set(objectDescriptorSeqToMap(descriptor.objects), resolver, isEditable); - _allocatables.set(objectDescriptorSeqToMap(descriptor.allocatables), resolver, isEditable); - - _registerProcess.setSelected(descriptor.registerProcess); - _registerProcess.setEnabled(isEditable); - - _serverLifetime.setSelected(descriptor.serverLifetime); - _serverLifetime.setEnabled(isEditable); - - _applyButton.setEnabled(adapter.isEphemeral()); - _discardButton.setEnabled(adapter.isEphemeral()); - detectUpdates(true); + detectUpdates(false); + _target = adapter; + + AdapterDescriptor descriptor = (AdapterDescriptor)adapter.getDescriptor(); + + final Utils.Resolver resolver = adapter.getCoordinator().substitute() ? + adapter.getResolver() : null; + + boolean isEditable = resolver == null; + + _oldName = descriptor.name; + + _name.setText(Utils.substitute(descriptor.name, resolver)); + _name.setEditable(isEditable); + + String oaPrefix = "Ice.OA." + descriptor.name + "."; + + _description.setText( + Utils.substitute(descriptor.description, resolver)); + _description.setEditable(isEditable); + _description.setOpaque(isEditable); + + // + // Need to make control editable & enabled before changing it + // + _id.setEnabled(true); + _id.setEditable(true); + _defaultAdapterId = adapter.getDefaultAdapterId(); + refreshId(); + if(descriptor.id == null) + { + descriptor.id = _defaultAdapterId; + } + + setId(Utils.substitute(descriptor.id, resolver)); + _id.setEnabled(isEditable); + _id.setEditable(isEditable); + + _replicaGroupId.setEnabled(true); + _replicaGroupId.setEditable(true); + + final ReplicaGroups replicaGroups = + adapter.getRoot().getReplicaGroups(); + _replicaGroupId.setModel(replicaGroups.createComboBoxModel(NOT_REPLICATED)); + + _replicaGroupId.addItemListener(new ItemListener() + { + public void itemStateChanged(ItemEvent e) + { + if(e.getStateChange() == ItemEvent.SELECTED) + { + Object item = e.getItem(); + boolean enabled = (item instanceof ReplicaGroup); + if(!enabled && item != NOT_REPLICATED) + { + if(resolver != null) + { + String replicaGroupId = + resolver.substitute(item.toString().trim()); + enabled = (replicaGroups.findChild(replicaGroupId) != null); + } + } + _replicaGroupButton.setEnabled(enabled); + } + } + }); + + setReplicaGroupId(Utils.substitute(descriptor.replicaGroupId, resolver)); + + _replicaGroupId.setEnabled(isEditable); + _replicaGroupId.setEditable(isEditable); + + _priority.setText(Utils.substitute(descriptor.priority, resolver)); + _priority.setEditable(isEditable); + + if(adapter.isEphemeral()) + { + _endpoints.setText("default"); + } + else + { + _endpoints.setText(Utils.substitute(adapter.getProperty(oaPrefix + "Endpoints"), resolver)); + } + _endpoints.setEditable(isEditable); + + _publishedEndpoints.setEnabled(true); + _publishedEndpoints.setEditable(true); + String published = + Utils.substitute(adapter.getProperty(oaPrefix + "PublishedEndpoints"), resolver); + if(published == null || published.equals("")) + { + _publishedEndpoints.setSelectedItem(PUBLISH_ACTUAL); + } + else + { + _publishedEndpoints.setSelectedItem(published); + } + _publishedEndpoints.setEnabled(isEditable); + _publishedEndpoints.setEditable(isEditable); + + // + // Objects + // + _objects.set(objectDescriptorSeqToMap(descriptor.objects), resolver, isEditable); + _allocatables.set(objectDescriptorSeqToMap(descriptor.allocatables), resolver, isEditable); + + _registerProcess.setSelected(descriptor.registerProcess); + _registerProcess.setEnabled(isEditable); + + _serverLifetime.setSelected(descriptor.serverLifetime); + _serverLifetime.setEnabled(isEditable); + + _applyButton.setEnabled(adapter.isEphemeral()); + _discardButton.setEnabled(adapter.isEphemeral()); + detectUpdates(true); } Adapter getAdapter() { - return (Adapter)_target; + return (Adapter)_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(); - String k = Ice.Util.identityToString(od.id); - - result.put(k, new String[]{od.type, getAdapter().lookupPropertyValue(k)}); - } - return result; + java.util.Map result = new java.util.TreeMap(); + java.util.Iterator p = objects.iterator(); + while(p.hasNext()) + { + ObjectDescriptor od = (ObjectDescriptor)p.next(); + String k = Ice.Util.identityToString(od.id); + + result.put(k, new String[]{od.type, getAdapter().lookupPropertyValue(k)}); + } + 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[] val = (String[])entry.getValue(); - result.add(new ObjectDescriptor(id, val[0])); - } - return result; + 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[] val = (String[])entry.getValue(); + result.add(new ObjectDescriptor(id, val[0])); + } + return result; } private String _defaultAdapterId = ""; private final Object DEFAULT_ADAPTER_ID = new Object() - { - public String toString() - { - return _defaultAdapterId; - } - }; + { + public String toString() + { + return _defaultAdapterId; + } + }; private String _oldName; @@ -596,7 +596,7 @@ class AdapterEditor extends CommunicatorChildEditor private JTextField _endpoints = new JTextField(20); private JComboBox _publishedEndpoints = new JComboBox( - new Object[]{PUBLISH_ACTUAL}); + new Object[]{PUBLISH_ACTUAL}); private JTextField _currentStatus = new JTextField(20); private JTextField _currentEndpoints = new JTextField(20); @@ -608,18 +608,18 @@ class AdapterEditor extends CommunicatorChildEditor private MapField _allocatables; static private final Object PUBLISH_ACTUAL = new Object() - { - public String toString() - { - return "Actual endpoints"; - } - }; + { + public String toString() + { + return "Actual endpoints"; + } + }; static private final Object NOT_REPLICATED = new Object() - { - public String toString() - { - return "Does not belong to a replica group"; - } - }; + { + public String toString() + { + return "Does not belong to a replica group"; + } + }; } diff --git a/java/src/IceGridGUI/Application/ApplicationEditor.java b/java/src/IceGridGUI/Application/ApplicationEditor.java index 6a7c9858767..006cbad1270 100755 --- a/java/src/IceGridGUI/Application/ApplicationEditor.java +++ b/java/src/IceGridGUI/Application/ApplicationEditor.java @@ -30,231 +30,231 @@ class ApplicationEditor extends Editor { protected boolean applyUpdate(boolean refresh) { - Root root = (Root)_target; - MainPane mainPane = _target.getCoordinator().getMainPane(); + Root root = (Root)_target; + MainPane mainPane = _target.getCoordinator().getMainPane(); - root.disableSelectionListener(); - try - { - if(isSimpleUpdate()) - { - writeDescriptor(); - root.updated(); - root.getEditable().markModified(); - } - else - { - // - // Save to be able to rollback - // - ApplicationDescriptor savedDescriptor = root.saveDescriptor(); - writeDescriptor(); - try - { - root.rebuild(); - } - catch(UpdateFailedException e) - { - root.restoreDescriptor(savedDescriptor); - JOptionPane.showMessageDialog( - root.getCoordinator().getMainFrame(), - e.toString(), - "Apply failed", - JOptionPane.ERROR_MESSAGE); - return false; - } - // - // Success - // - root.updated(); - root.getEditable().markModified(); - - if(!savedDescriptor.name.equals(root.getId())) - { - mainPane.resetTitle(root); - root.getTreeModel().nodeChanged(root); - } - } - - _applyButton.setEnabled(false); - _discardButton.setEnabled(false); - return true; - } - finally - { - root.enableSelectionListener(); - } + root.disableSelectionListener(); + try + { + if(isSimpleUpdate()) + { + writeDescriptor(); + root.updated(); + root.getEditable().markModified(); + } + else + { + // + // Save to be able to rollback + // + ApplicationDescriptor savedDescriptor = root.saveDescriptor(); + writeDescriptor(); + try + { + root.rebuild(); + } + catch(UpdateFailedException e) + { + root.restoreDescriptor(savedDescriptor); + JOptionPane.showMessageDialog( + root.getCoordinator().getMainFrame(), + e.toString(), + "Apply failed", + JOptionPane.ERROR_MESSAGE); + return false; + } + // + // Success + // + root.updated(); + root.getEditable().markModified(); + + if(!savedDescriptor.name.equals(root.getId())) + { + mainPane.resetTitle(root); + root.getTreeModel().nodeChanged(root); + } + } + + _applyButton.setEnabled(false); + _discardButton.setEnabled(false); + return true; + } + finally + { + root.enableSelectionListener(); + } } ApplicationEditor() { - _name.getDocument().addDocumentListener(_updateListener); - _description.getDocument().addDocumentListener(_updateListener); - - // - // Variables - // - _variables = new MapField(this, "Name", "Value", false); + _name.getDocument().addDocumentListener(_updateListener); + _description.getDocument().addDocumentListener(_updateListener); + + // + // Variables + // + _variables = new MapField(this, "Name", "Value", false); - // - // Distrib - // - _distrib = new JComboBox(new Object[]{NO_DISTRIB, DEFAULT_DISTRIB}); - _distrib.setEditable(true); - _distrib.setToolTipText("The proxy to the IcePatch2 server holding your files"); + // + // Distrib + // + _distrib = new JComboBox(new Object[]{NO_DISTRIB, DEFAULT_DISTRIB}); + _distrib.setEditable(true); + _distrib.setToolTipText("The proxy to the IcePatch2 server holding your files"); - JTextField distribTextField = (JTextField) - _distrib.getEditor().getEditorComponent(); - distribTextField.getDocument().addDocumentListener( - _updateListener); + JTextField distribTextField = (JTextField) + _distrib.getEditor().getEditorComponent(); + distribTextField.getDocument().addDocumentListener( + _updateListener); - _distribDirs.getDocument().addDocumentListener(_updateListener); - _distribDirs.setToolTipText( - "<html>Include only these directories when patching.<br>" - + "Use whitespace as separator; use double-quotes around directories containing whitespaces</html>"); + _distribDirs.getDocument().addDocumentListener(_updateListener); + _distribDirs.setToolTipText( + "<html>Include only these directories when patching.<br>" + + "Use whitespace as separator; use double-quotes around directories containing whitespaces</html>"); } protected void appendProperties(DefaultFormBuilder builder) { - builder.append("Name"); - builder.append(_name, 3); + builder.append("Name"); + builder.append(_name, 3); - builder.append("Description"); - builder.nextLine(); - builder.append(""); - builder.nextRow(-2); - CellConstraints cc = new CellConstraints(); - JScrollPane scrollPane = new JScrollPane(_description); - builder.add(scrollPane, - cc.xywh(builder.getColumn(), builder.getRow(), 3, 3)); - builder.nextRow(2); - builder.nextLine(); + builder.append("Description"); + builder.nextLine(); + builder.append(""); + builder.nextRow(-2); + CellConstraints cc = new CellConstraints(); + JScrollPane scrollPane = new JScrollPane(_description); + builder.add(scrollPane, + cc.xywh(builder.getColumn(), builder.getRow(), 3, 3)); + builder.nextRow(2); + builder.nextLine(); - builder.append("Variables"); - builder.nextLine(); - builder.append(""); - builder.nextLine(); - builder.append(""); - builder.nextLine(); - builder.append(""); - builder.nextRow(-6); - scrollPane = new JScrollPane(_variables); - builder.add(scrollPane, - cc.xywh(builder.getColumn(), builder.getRow(), 3, 7)); - builder.nextRow(6); - builder.nextLine(); + builder.append("Variables"); + builder.nextLine(); + builder.append(""); + builder.nextLine(); + builder.append(""); + builder.nextLine(); + builder.append(""); + builder.nextRow(-6); + scrollPane = new JScrollPane(_variables); + builder.add(scrollPane, + cc.xywh(builder.getColumn(), builder.getRow(), 3, 7)); + builder.nextRow(6); + builder.nextLine(); - JComponent c = builder.appendSeparator("Distribution"); - c.setToolTipText("Files shared by all servers in your application"); - builder.append("IcePatch2 Proxy"); - builder.append(_distrib, 3); - builder.nextLine(); - builder.append("Directories"); - builder.append(_distribDirs, 3); - builder.nextLine(); + JComponent c = builder.appendSeparator("Distribution"); + c.setToolTipText("Files shared by all servers in your application"); + builder.append("IcePatch2 Proxy"); + builder.append(_distrib, 3); + builder.nextLine(); + builder.append("Directories"); + builder.append(_distribDirs, 3); + builder.nextLine(); } protected void buildPropertiesPanel() { - super.buildPropertiesPanel(); - _propertiesPanel.setName("Application Properties"); + super.buildPropertiesPanel(); + _propertiesPanel.setName("Application Properties"); } boolean isSimpleUpdate() { - ApplicationDescriptor descriptor = (ApplicationDescriptor)_target.getDescriptor(); - return descriptor.name.equals(_name.getText().trim()) - && _variables.get().equals(descriptor.variables); + ApplicationDescriptor descriptor = (ApplicationDescriptor)_target.getDescriptor(); + return descriptor.name.equals(_name.getText().trim()) + && _variables.get().equals(descriptor.variables); } void writeDescriptor() { - ApplicationDescriptor descriptor = (ApplicationDescriptor)_target.getDescriptor(); - descriptor.name = _name.getText().trim(); - descriptor.variables = _variables.get(); - descriptor.description = _description.getText(); + ApplicationDescriptor descriptor = (ApplicationDescriptor)_target.getDescriptor(); + descriptor.name = _name.getText().trim(); + descriptor.variables = _variables.get(); + descriptor.description = _description.getText(); - if(_distrib.getSelectedItem() == NO_DISTRIB) - { - descriptor.distrib.icepatch = ""; - } - else - { - descriptor.distrib.icepatch = _distrib.getSelectedItem().toString().trim(); - } - descriptor.distrib.directories = _distribDirs.getList(); - } + if(_distrib.getSelectedItem() == NO_DISTRIB) + { + descriptor.distrib.icepatch = ""; + } + else + { + descriptor.distrib.icepatch = _distrib.getSelectedItem().toString().trim(); + } + descriptor.distrib.directories = _distribDirs.getList(); + } protected boolean validate() { - return check(new String[]{"Name", _name.getText().trim()}); + return check(new String[]{"Name", _name.getText().trim()}); } void show(Root root) { - detectUpdates(false); - _target = root; - - Utils.Resolver resolver = getDetailResolver(); - boolean isEditable = (resolver == null); + detectUpdates(false); + _target = root; + + Utils.Resolver resolver = getDetailResolver(); + boolean isEditable = (resolver == null); - ApplicationDescriptor descriptor = - (ApplicationDescriptor)root.getDescriptor(); + ApplicationDescriptor descriptor = + (ApplicationDescriptor)root.getDescriptor(); - _name.setText(descriptor.name); - _name.setEditable(!root.isLive() && isEditable); + _name.setText(descriptor.name); + _name.setEditable(!root.isLive() && isEditable); - _description.setText( - Utils.substitute(descriptor.description, resolver)); - _description.setEditable(isEditable); - _description.setOpaque(isEditable); - _description.setToolTipText("An optional description for this application"); - - _variables.set(descriptor.variables, resolver, isEditable); - - _distrib.setEnabled(true); - _distrib.setEditable(true); - String icepatch = - Utils.substitute(descriptor.distrib.icepatch, resolver); - if(icepatch.equals("")) - { - _distrib.setSelectedItem(NO_DISTRIB); - } - else - { - _distrib.setSelectedItem(icepatch); - } - _distrib.setEnabled(isEditable); - _distrib.setEditable(isEditable); + _description.setText( + Utils.substitute(descriptor.description, resolver)); + _description.setEditable(isEditable); + _description.setOpaque(isEditable); + _description.setToolTipText("An optional description for this application"); + + _variables.set(descriptor.variables, resolver, isEditable); + + _distrib.setEnabled(true); + _distrib.setEditable(true); + String icepatch = + Utils.substitute(descriptor.distrib.icepatch, resolver); + if(icepatch.equals("")) + { + _distrib.setSelectedItem(NO_DISTRIB); + } + else + { + _distrib.setSelectedItem(icepatch); + } + _distrib.setEnabled(isEditable); + _distrib.setEditable(isEditable); - _distribDirs.setList(descriptor.distrib.directories, resolver); - _distribDirs.setEditable(isEditable); + _distribDirs.setList(descriptor.distrib.directories, resolver); + _distribDirs.setEditable(isEditable); - _applyButton.setEnabled(false); - _discardButton.setEnabled(false); - detectUpdates(true); + _applyButton.setEnabled(false); + _discardButton.setEnabled(false); + detectUpdates(true); } Utils.Resolver getDetailResolver() { - if(_target.getCoordinator().substitute()) - { - return _target.getResolver(); - } - else - { - return null; - } + if(_target.getCoordinator().substitute()) + { + return _target.getResolver(); + } + else + { + return null; + } } static private final Object NO_DISTRIB = new Object() - { - public String toString() - { - return "None selected"; - } - }; + { + public String toString() + { + return "None selected"; + } + }; static private final String DEFAULT_DISTRIB = "${application}.IcePatch2/server"; private JTextField _name = new JTextField(20); diff --git a/java/src/IceGridGUI/Application/Communicator.java b/java/src/IceGridGUI/Application/Communicator.java index 4669e7385e4..dd13244ebf3 100755 --- a/java/src/IceGridGUI/Application/Communicator.java +++ b/java/src/IceGridGUI/Application/Communicator.java @@ -23,114 +23,114 @@ abstract class Communicator extends TreeNode implements DescriptorHolder { public Enumeration children() { - return new Enumeration() - { - public boolean hasMoreElements() - { - if(_p.hasNext()) - { - return true; - } - - while(++_index < _childListArray.length) - { - _p = _childListArray[_index].iterator(); - if(_p.hasNext()) - { - return true; - } - } - return false; - } - - public Object nextElement() - { - try - { - return _p.next(); - } - catch(java.util.NoSuchElementException nse) - { - if(hasMoreElements()) - { - return _p.next(); - } - else - { - throw nse; - } - } - } - - private int _index = 0; - private java.util.Iterator _p = _childListArray[0].iterator(); - }; + return new Enumeration() + { + public boolean hasMoreElements() + { + if(_p.hasNext()) + { + return true; + } + + while(++_index < _childListArray.length) + { + _p = _childListArray[_index].iterator(); + if(_p.hasNext()) + { + return true; + } + } + return false; + } + + public Object nextElement() + { + try + { + return _p.next(); + } + catch(java.util.NoSuchElementException nse) + { + if(hasMoreElements()) + { + return _p.next(); + } + else + { + throw nse; + } + } + } + + private int _index = 0; + private java.util.Iterator _p = _childListArray[0].iterator(); + }; } public boolean getAllowsChildren() { - return true; + return true; } public javax.swing.tree.TreeNode getChildAt(int childIndex) { - if(childIndex < 0) - { - throw new ArrayIndexOutOfBoundsException(childIndex); - } - int offset = 0; - for(int i = 0; i < _childListArray.length; ++i) - { - if(childIndex < offset + _childListArray[i].size()) - { - return _childListArray[i].get(childIndex - offset); - } - else - { - offset += _childListArray[i].size(); - } - } - throw new ArrayIndexOutOfBoundsException(childIndex); + if(childIndex < 0) + { + throw new ArrayIndexOutOfBoundsException(childIndex); + } + int offset = 0; + for(int i = 0; i < _childListArray.length; ++i) + { + if(childIndex < offset + _childListArray[i].size()) + { + return _childListArray[i].get(childIndex - offset); + } + else + { + offset += _childListArray[i].size(); + } + } + throw new ArrayIndexOutOfBoundsException(childIndex); } public int getChildCount() { - int result = 0; - for(int i = 0; i < _childListArray.length; ++i) - { - result += _childListArray[i].size(); - } - return result; + int result = 0; + for(int i = 0; i < _childListArray.length; ++i) + { + result += _childListArray[i].size(); + } + return result; } public int getIndex(javax.swing.tree.TreeNode node) { - int offset = 0; - for(int i = 0; i < _childListArray.length; ++i) - { - int index = _childListArray[i].indexOf(node); - if(index == -1) - { - offset += _childListArray[i].size(); - } - else - { - return offset + index; - } - } - return -1; + int offset = 0; + for(int i = 0; i < _childListArray.length; ++i) + { + int index = _childListArray[i].indexOf(node); + if(index == -1) + { + offset += _childListArray[i].size(); + } + else + { + return offset + index; + } + } + return -1; } public boolean isLeaf() { - for(int i = 0; i < _childListArray.length; ++i) - { - if(!_childListArray[i].isEmpty()) - { - return false; - } - } - return true; + for(int i = 0; i < _childListArray.length; ++i) + { + if(!_childListArray[i].isEmpty()) + { + return false; + } + } + return true; } // @@ -139,44 +139,44 @@ abstract class Communicator extends TreeNode implements DescriptorHolder public void newAdapter() { - _adapters.newChild(); + _adapters.newChild(); } public void newDbEnv() { - _dbEnvs.newChild(); + _dbEnvs.newChild(); } public void newService() { - _services.newChild(); + _services.newChild(); } public void newServiceFromTemplate() { - _services.newServiceFromTemplate(); + _services.newServiceFromTemplate(); } public void paste() { - Object descriptor = getCoordinator().getClipboard(); - - if(descriptor instanceof AdapterDescriptor) - { - AdapterDescriptor d = (AdapterDescriptor)descriptor; - _adapters.newAdapter(Adapter.copyDescriptor(d)); - } - else if(descriptor instanceof DbEnvDescriptor) - { - DbEnvDescriptor d = (DbEnvDescriptor)descriptor; - _dbEnvs.newDbEnv(DbEnv.copyDescriptor(d)); - } - else if(descriptor instanceof ServiceInstanceDescriptor && _services.initialized()) - { - ServiceInstanceDescriptor d = (ServiceInstanceDescriptor)descriptor; - _services.newService(ServiceInstance.copyDescriptor(d)); - } - else - { - ((TreeNode)_parent).paste(); - } + Object descriptor = getCoordinator().getClipboard(); + + if(descriptor instanceof AdapterDescriptor) + { + AdapterDescriptor d = (AdapterDescriptor)descriptor; + _adapters.newAdapter(Adapter.copyDescriptor(d)); + } + else if(descriptor instanceof DbEnvDescriptor) + { + DbEnvDescriptor d = (DbEnvDescriptor)descriptor; + _dbEnvs.newDbEnv(DbEnv.copyDescriptor(d)); + } + else if(descriptor instanceof ServiceInstanceDescriptor && _services.initialized()) + { + ServiceInstanceDescriptor d = (ServiceInstanceDescriptor)descriptor; + _services.newService(ServiceInstance.copyDescriptor(d)); + } + else + { + ((TreeNode)_parent).paste(); + } } abstract CommunicatorDescriptor getCommunicatorDescriptor(); @@ -188,736 +188,736 @@ abstract class Communicator extends TreeNode implements DescriptorHolder // java.util.List findInstances() { - java.util.List result = new java.util.LinkedList(); - result.add(this); - return result; + java.util.List result = new java.util.LinkedList(); + result.add(this); + return result; } TreeNode findChildLike(TreeNode other) { - if(other instanceof Adapter) - { - return _adapters.findChildById(other.getId()); - } - else if(other instanceof DbEnv) - { - return _dbEnvs.findChildById(other.getId()); - } - else if(other instanceof Service) - { - return _dbEnvs.findChildById(other.getId()); - } - else - { - return null; - } + if(other instanceof Adapter) + { + return _adapters.findChildById(other.getId()); + } + else if(other instanceof DbEnv) + { + return _dbEnvs.findChildById(other.getId()); + } + else if(other instanceof Service) + { + return _dbEnvs.findChildById(other.getId()); + } + else + { + return null; + } } boolean isIceBox() { - return false; + return false; } protected Communicator(TreeNode parent, String id) { - super(parent, id); + super(parent, id); } abstract class ChildList { - abstract TreeNode createChild(Object descriptor) throws UpdateFailedException; - abstract void newChild(); - - protected ChildList(boolean sorted) - { - _sorted = sorted; - } - - void write(XMLWriter writer) throws java.io.IOException - { - java.util.Iterator p = _children.iterator(); - while(p.hasNext()) - { - TreeNode child = (TreeNode)p.next(); - child.write(writer); - } - } - - // - // Some list-like methods - // - java.util.Iterator iterator() - { - return _children.iterator(); - } - - TreeNode get(int index) - { - return (TreeNode)_children.get(index); - } - - int indexOf(Object obj) - { - return _children.indexOf(obj); - } - - int size() - { - return _children.size(); - } - - boolean isEmpty() - { - return _children.isEmpty(); - } - - // - // Non-list methods - // - - void init(java.util.List descriptors) throws UpdateFailedException - { - assert _descriptors == null; - assert _children.isEmpty(); - - _descriptors = descriptors; - java.util.Iterator p = _descriptors.iterator(); - - while(p.hasNext()) - { - Object descriptor = p.next(); - TreeNode child = createChild(descriptor); - addChild(child, false); - } - } - - boolean initialized() - { - return _descriptors != null; - } - - void clear() - { - _descriptors = null; - _children.clear(); - } - - TreeNode addNewChild(Object descriptor) throws UpdateFailedException - { - TreeNode child = createChild(descriptor); - addChild(child, true); - - return child; - } - - TreeNode findChildWithDescriptor(Object descriptor) - { - java.util.Iterator p = _children.iterator(); - while(p.hasNext()) - { - TreeNode child = (TreeNode)p.next(); - if(child.getDescriptor() == descriptor) - { - return child; - } - } - return null; - } - - TreeNode findChildById(String id) - { - java.util.Iterator p = _children.iterator(); - while(p.hasNext()) - { - TreeNode child = (TreeNode)p.next(); - if(child.getId().equals(id)) - { - return child; - } - } - return null; - } - - void addChild(TreeNode child, boolean fireEvent) throws UpdateFailedException - { - if(_sorted) - { - DefaultTreeModel treeModel = fireEvent ? - getRoot().getTreeModel() : null; - - if(!insertSortedChild(child, _children, treeModel)) - { - throw new UpdateFailedException(Communicator.this, child.getId()); - } - } - else - { - // - // Just add the child at the end of the list - // - _children.add(child); - if(fireEvent) - { - getRoot().getTreeModel().nodesWereInserted(Communicator.this, new int[]{getIndex(child)}); - } - } - } - - int removeChild(TreeNode child) - { - int index = getIndex(child); - - _children.remove(child); - - getRoot().getTreeModel().nodesWereRemoved(Communicator.this, - new int[]{index}, - new Object[]{child}); - return index; - } - - void destroyChild(TreeNode child) - { - if(child.isEphemeral()) - { - removeChild(child); - } - else - { - Object descriptor = child.getDescriptor(); - removeDescriptor(descriptor); - getEnclosingEditable().markModified(); - getRoot().updated(); - removeChild(child); - } - } - - void addDescriptor(Object descriptor) - { - _descriptors.add(descriptor); - } - - void removeDescriptor(Object descriptor) - { - // - // A straight remove uses equals(), which is not the desired behavior - // - java.util.Iterator p = _descriptors.iterator(); - while(p.hasNext()) - { - if(descriptor == p.next()) - { - p.remove(); - break; - } - } - } - - boolean canMove(TreeNode child, boolean up) - { - int i = _children.indexOf(child); - assert i != -1; - return (up && i > 0) || (!up && i < _children.size() - 1); - } - - void tryAdd(Object descriptor) throws UpdateFailedException - { - addDescriptor(descriptor); - try - { - addNewChild(descriptor); - } - catch(UpdateFailedException e) - { - removeDescriptor(descriptor); - throw e; - } - getEnclosingEditable().markModified(); - } - - void tryUpdate(TreeNode child) throws UpdateFailedException - { - // - // Child is an Adapter or DbEnv - // - assert _sorted; - - Object descriptor = child.getDescriptor(); - removeChild(child); - try - { - addNewChild(descriptor); - } - catch(UpdateFailedException e) - { - addChild(child, true); - throw e; - } - getEnclosingEditable().markModified(); - } - - protected String makeNewChildId(String base) - { - String id = base; - int i = 0; - while(findChildById(id) != null) - { - id = base + "-" + (++i); - } - return id; - } - - protected java.util.List _children = new java.util.LinkedList(); - protected java.util.List _descriptors; - protected boolean _sorted; + abstract TreeNode createChild(Object descriptor) throws UpdateFailedException; + abstract void newChild(); + + protected ChildList(boolean sorted) + { + _sorted = sorted; + } + + void write(XMLWriter writer) throws java.io.IOException + { + java.util.Iterator p = _children.iterator(); + while(p.hasNext()) + { + TreeNode child = (TreeNode)p.next(); + child.write(writer); + } + } + + // + // Some list-like methods + // + java.util.Iterator iterator() + { + return _children.iterator(); + } + + TreeNode get(int index) + { + return (TreeNode)_children.get(index); + } + + int indexOf(Object obj) + { + return _children.indexOf(obj); + } + + int size() + { + return _children.size(); + } + + boolean isEmpty() + { + return _children.isEmpty(); + } + + // + // Non-list methods + // + + void init(java.util.List descriptors) throws UpdateFailedException + { + assert _descriptors == null; + assert _children.isEmpty(); + + _descriptors = descriptors; + java.util.Iterator p = _descriptors.iterator(); + + while(p.hasNext()) + { + Object descriptor = p.next(); + TreeNode child = createChild(descriptor); + addChild(child, false); + } + } + + boolean initialized() + { + return _descriptors != null; + } + + void clear() + { + _descriptors = null; + _children.clear(); + } + + TreeNode addNewChild(Object descriptor) throws UpdateFailedException + { + TreeNode child = createChild(descriptor); + addChild(child, true); + + return child; + } + + TreeNode findChildWithDescriptor(Object descriptor) + { + java.util.Iterator p = _children.iterator(); + while(p.hasNext()) + { + TreeNode child = (TreeNode)p.next(); + if(child.getDescriptor() == descriptor) + { + return child; + } + } + return null; + } + + TreeNode findChildById(String id) + { + java.util.Iterator p = _children.iterator(); + while(p.hasNext()) + { + TreeNode child = (TreeNode)p.next(); + if(child.getId().equals(id)) + { + return child; + } + } + return null; + } + + void addChild(TreeNode child, boolean fireEvent) throws UpdateFailedException + { + if(_sorted) + { + DefaultTreeModel treeModel = fireEvent ? + getRoot().getTreeModel() : null; + + if(!insertSortedChild(child, _children, treeModel)) + { + throw new UpdateFailedException(Communicator.this, child.getId()); + } + } + else + { + // + // Just add the child at the end of the list + // + _children.add(child); + if(fireEvent) + { + getRoot().getTreeModel().nodesWereInserted(Communicator.this, new int[]{getIndex(child)}); + } + } + } + + int removeChild(TreeNode child) + { + int index = getIndex(child); + + _children.remove(child); + + getRoot().getTreeModel().nodesWereRemoved(Communicator.this, + new int[]{index}, + new Object[]{child}); + return index; + } + + void destroyChild(TreeNode child) + { + if(child.isEphemeral()) + { + removeChild(child); + } + else + { + Object descriptor = child.getDescriptor(); + removeDescriptor(descriptor); + getEnclosingEditable().markModified(); + getRoot().updated(); + removeChild(child); + } + } + + void addDescriptor(Object descriptor) + { + _descriptors.add(descriptor); + } + + void removeDescriptor(Object descriptor) + { + // + // A straight remove uses equals(), which is not the desired behavior + // + java.util.Iterator p = _descriptors.iterator(); + while(p.hasNext()) + { + if(descriptor == p.next()) + { + p.remove(); + break; + } + } + } + + boolean canMove(TreeNode child, boolean up) + { + int i = _children.indexOf(child); + assert i != -1; + return (up && i > 0) || (!up && i < _children.size() - 1); + } + + void tryAdd(Object descriptor) throws UpdateFailedException + { + addDescriptor(descriptor); + try + { + addNewChild(descriptor); + } + catch(UpdateFailedException e) + { + removeDescriptor(descriptor); + throw e; + } + getEnclosingEditable().markModified(); + } + + void tryUpdate(TreeNode child) throws UpdateFailedException + { + // + // Child is an Adapter or DbEnv + // + assert _sorted; + + Object descriptor = child.getDescriptor(); + removeChild(child); + try + { + addNewChild(descriptor); + } + catch(UpdateFailedException e) + { + addChild(child, true); + throw e; + } + getEnclosingEditable().markModified(); + } + + protected String makeNewChildId(String base) + { + String id = base; + int i = 0; + while(findChildById(id) != null) + { + id = base + "-" + (++i); + } + return id; + } + + protected java.util.List _children = new java.util.LinkedList(); + protected java.util.List _descriptors; + protected boolean _sorted; } class Adapters extends ChildList { - Adapters() - { - super(true); - } - - void write(XMLWriter writer, java.util.List props) throws java.io.IOException - { - java.util.Iterator p = _children.iterator(); - while(p.hasNext()) - { - Adapter child = (Adapter)p.next(); - child.write(writer, props); - } - } - - void newChild() - { - AdapterDescriptor descriptor = new AdapterDescriptor( - "NewAdapter", - "", - null, - "", - "", - false, - true, - new java.util.LinkedList(), - new java.util.LinkedList() - ); + Adapters() + { + super(true); + } + + void write(XMLWriter writer, java.util.List props) throws java.io.IOException + { + java.util.Iterator p = _children.iterator(); + while(p.hasNext()) + { + Adapter child = (Adapter)p.next(); + child.write(writer, props); + } + } + + void newChild() + { + AdapterDescriptor descriptor = new AdapterDescriptor( + "NewAdapter", + "", + null, + "", + "", + false, + true, + new java.util.LinkedList(), + new java.util.LinkedList() + ); - newAdapter(descriptor); - } - - TreeNode createChild(Object descriptor) - { - AdapterDescriptor ad = (AdapterDescriptor)descriptor; - String name = Utils.substitute(ad.name, getResolver()); - return new Adapter(Communicator.this, name, ad, false); - } - - private void newAdapter(AdapterDescriptor descriptor) - { - descriptor.name = makeNewChildId(descriptor.name); - Adapter adapter = new Adapter(Communicator.this, descriptor.name, descriptor, true); - try - { - addChild(adapter, true); - } - catch(UpdateFailedException e) - { - assert false; - } - getRoot().setSelectedNode(adapter); - } + newAdapter(descriptor); + } + + TreeNode createChild(Object descriptor) + { + AdapterDescriptor ad = (AdapterDescriptor)descriptor; + String name = Utils.substitute(ad.name, getResolver()); + return new Adapter(Communicator.this, name, ad, false); + } + + private void newAdapter(AdapterDescriptor descriptor) + { + descriptor.name = makeNewChildId(descriptor.name); + Adapter adapter = new Adapter(Communicator.this, descriptor.name, descriptor, true); + try + { + addChild(adapter, true); + } + catch(UpdateFailedException e) + { + assert false; + } + getRoot().setSelectedNode(adapter); + } } class DbEnvs extends ChildList { - DbEnvs() - { - super(true); - } - - void newChild() - { - DbEnvDescriptor descriptor = new DbEnvDescriptor( - "NewDbEnv", - "", - "", - new java.util.LinkedList()); - - newDbEnv(descriptor); - } - - TreeNode createChild(Object descriptor) - { - DbEnvDescriptor dd = (DbEnvDescriptor)descriptor; - String name = Utils.substitute(dd.name, getResolver()); - return new DbEnv(Communicator.this, name, dd, false); - } - - private void newDbEnv(DbEnvDescriptor descriptor) - { - descriptor.name = makeNewChildId(descriptor.name); - DbEnv dbEnv = new DbEnv(Communicator.this, descriptor.name, descriptor, true); - try - { - addChild(dbEnv, true); - } - catch(UpdateFailedException e) - { - assert false; - } - getRoot().setSelectedNode(dbEnv); - } + DbEnvs() + { + super(true); + } + + void newChild() + { + DbEnvDescriptor descriptor = new DbEnvDescriptor( + "NewDbEnv", + "", + "", + new java.util.LinkedList()); + + newDbEnv(descriptor); + } + + TreeNode createChild(Object descriptor) + { + DbEnvDescriptor dd = (DbEnvDescriptor)descriptor; + String name = Utils.substitute(dd.name, getResolver()); + return new DbEnv(Communicator.this, name, dd, false); + } + + private void newDbEnv(DbEnvDescriptor descriptor) + { + descriptor.name = makeNewChildId(descriptor.name); + DbEnv dbEnv = new DbEnv(Communicator.this, descriptor.name, descriptor, true); + try + { + addChild(dbEnv, true); + } + catch(UpdateFailedException e) + { + assert false; + } + getRoot().setSelectedNode(dbEnv); + } } class Services extends ChildList { - Services() - { - super(false); - } - - void newChild() - { - ServiceDescriptor serviceDescriptor = - new ServiceDescriptor(new java.util.LinkedList(), - new PropertySetDescriptor(new String[0], new java.util.LinkedList()), - new java.util.LinkedList(), - new String[0], - "", - "NewService", - ""); - - ServiceInstanceDescriptor descriptor = - new ServiceInstanceDescriptor("", - new java.util.HashMap(), - serviceDescriptor, - new PropertySetDescriptor(new String[0], new java.util.LinkedList())); - - newService(descriptor); - } - - void newServiceFromTemplate() - { - ServiceInstanceDescriptor descriptor = - new ServiceInstanceDescriptor("", - new java.util.HashMap(), - null, - new PropertySetDescriptor(new String[0], new java.util.LinkedList())); - newService(descriptor); - } - - void move(TreeNode child, boolean up) - { - int index = getIndex(child); - int listIndex = _children.indexOf(child); - - Object descriptor = child.getDescriptor(); - - getEnclosingEditable().markModified(); - getRoot().updated(); - - _descriptors.remove(listIndex); - if(up) - { - _descriptors.add(listIndex - 1, descriptor); - } - else - { - _descriptors.add(listIndex + 1, descriptor); - } - - _children.remove(listIndex); - getRoot().getTreeModel().nodesWereRemoved(Communicator.this, - new int[]{index}, - new Object[]{child}); - if(up) - { - _children.add(listIndex - 1, child); - getRoot().getTreeModel().nodesWereInserted(Communicator.this, - new int[]{index - 1}); - - } - else - { - _children.add(listIndex + 1, child); - getRoot().getTreeModel().nodesWereInserted(Communicator.this, - new int[]{index + 1}); - - } - getRoot().setSelectedNode(child); - getCoordinator().showActions(child); - } - - TreeNode createChild(Object o) throws UpdateFailedException - { - ServiceInstanceDescriptor descriptor = (ServiceInstanceDescriptor)o; - - if(descriptor.descriptor == null) - { - TemplateDescriptor templateDescriptor - = getRoot().findServiceTemplateDescriptor(descriptor.template); - - assert templateDescriptor != null; - - String serviceName = null; - String displayString = null; - Utils.Resolver serviceResolver = null; - - if(Communicator.this instanceof PlainServer) - { - serviceResolver = new Utils.Resolver(getResolver(), - descriptor.parameterValues, - templateDescriptor.parameterDefaults); - - ServiceDescriptor serviceDescriptor = (ServiceDescriptor)templateDescriptor.descriptor; - assert serviceDescriptor != null; - - serviceName = serviceResolver.substitute(serviceDescriptor.name); - serviceResolver.put("service", serviceName); - displayString = serviceName + ": " + descriptor.template + "<>"; - } - else - { - // - // Note: service names don't have to be unique - // - serviceName = descriptor.template + "<>"; - } - - return new ServiceInstance(Communicator.this, - serviceName, - displayString, - descriptor, - serviceResolver); - } - else - { - ServiceDescriptor serviceDescriptor = descriptor.descriptor; - - String serviceName = null; - Utils.Resolver serviceResolver = null; - - if(Communicator.this instanceof PlainServer) - { - serviceResolver = new Utils.Resolver(getResolver()); - serviceName = serviceResolver.substitute(serviceDescriptor.name); - serviceResolver.put("service", serviceName); - } - else - { - serviceName = serviceDescriptor.name; - } - - return new PlainService(Communicator.this, - serviceName, - descriptor, - serviceResolver); - } - } - - void tryUpdate(TreeNode child) throws UpdateFailedException - { - // - // Rebuilding a Service is quite different since the creation of a service can - // trigger an UpdateFailedException - // - Object descriptor = child.getDescriptor(); - int listIndex = _children.indexOf(child); - assert listIndex != -1; - - TreeNode newChild = createChild(descriptor); - _children.set(listIndex, newChild); - getRoot().getTreeModel().nodeChanged(newChild); - - getEnclosingEditable().markModified(); - } - - private void newService(ServiceInstanceDescriptor descriptor) - { - if(descriptor.descriptor == null) - { - String name = makeNewChildId("NewService"); - - // - // Make sure descriptor.template points to a real template - // - ServiceTemplate t = getRoot().findServiceTemplate(descriptor.template); - - if(t == null) - { - if(getRoot().getServiceTemplates().getChildCount() == 0) - { - JOptionPane.showMessageDialog( - getCoordinator().getMainFrame(), - "You need to create a service template before you can create a service from a template.", - "No Service Template", - JOptionPane.INFORMATION_MESSAGE); - return; - } - else - { - t = (ServiceTemplate)getRoot().getServiceTemplates().getChildAt(0); - descriptor.template = t.getId(); - descriptor.parameterValues = new java.util.HashMap(); - } - } - - // - // Validate/update parameterValues - // - TemplateDescriptor td = (TemplateDescriptor)t.getDescriptor(); - descriptor.parameterValues = Editor.makeParameterValues(descriptor.parameterValues, - td.parameters); - - - ServiceInstance service = new ServiceInstance(Communicator.this, name, descriptor); - try - { - addChild(service, true); - } - catch(UpdateFailedException e) - { - assert false; - } - getRoot().setSelectedNode(service); - } - else - { - descriptor.descriptor.name = makeNewChildId(descriptor.descriptor.name); - - PlainService service = new PlainService(Communicator.this, descriptor); - try - { - addChild(service, true); - } - catch(UpdateFailedException e) - { - assert false; - } - getRoot().setSelectedNode(service); - } - } + Services() + { + super(false); + } + + void newChild() + { + ServiceDescriptor serviceDescriptor = + new ServiceDescriptor(new java.util.LinkedList(), + new PropertySetDescriptor(new String[0], new java.util.LinkedList()), + new java.util.LinkedList(), + new String[0], + "", + "NewService", + ""); + + ServiceInstanceDescriptor descriptor = + new ServiceInstanceDescriptor("", + new java.util.HashMap(), + serviceDescriptor, + new PropertySetDescriptor(new String[0], new java.util.LinkedList())); + + newService(descriptor); + } + + void newServiceFromTemplate() + { + ServiceInstanceDescriptor descriptor = + new ServiceInstanceDescriptor("", + new java.util.HashMap(), + null, + new PropertySetDescriptor(new String[0], new java.util.LinkedList())); + newService(descriptor); + } + + void move(TreeNode child, boolean up) + { + int index = getIndex(child); + int listIndex = _children.indexOf(child); + + Object descriptor = child.getDescriptor(); + + getEnclosingEditable().markModified(); + getRoot().updated(); + + _descriptors.remove(listIndex); + if(up) + { + _descriptors.add(listIndex - 1, descriptor); + } + else + { + _descriptors.add(listIndex + 1, descriptor); + } + + _children.remove(listIndex); + getRoot().getTreeModel().nodesWereRemoved(Communicator.this, + new int[]{index}, + new Object[]{child}); + if(up) + { + _children.add(listIndex - 1, child); + getRoot().getTreeModel().nodesWereInserted(Communicator.this, + new int[]{index - 1}); + + } + else + { + _children.add(listIndex + 1, child); + getRoot().getTreeModel().nodesWereInserted(Communicator.this, + new int[]{index + 1}); + + } + getRoot().setSelectedNode(child); + getCoordinator().showActions(child); + } + + TreeNode createChild(Object o) throws UpdateFailedException + { + ServiceInstanceDescriptor descriptor = (ServiceInstanceDescriptor)o; + + if(descriptor.descriptor == null) + { + TemplateDescriptor templateDescriptor + = getRoot().findServiceTemplateDescriptor(descriptor.template); + + assert templateDescriptor != null; + + String serviceName = null; + String displayString = null; + Utils.Resolver serviceResolver = null; + + if(Communicator.this instanceof PlainServer) + { + serviceResolver = new Utils.Resolver(getResolver(), + descriptor.parameterValues, + templateDescriptor.parameterDefaults); + + ServiceDescriptor serviceDescriptor = (ServiceDescriptor)templateDescriptor.descriptor; + assert serviceDescriptor != null; + + serviceName = serviceResolver.substitute(serviceDescriptor.name); + serviceResolver.put("service", serviceName); + displayString = serviceName + ": " + descriptor.template + "<>"; + } + else + { + // + // Note: service names don't have to be unique + // + serviceName = descriptor.template + "<>"; + } + + return new ServiceInstance(Communicator.this, + serviceName, + displayString, + descriptor, + serviceResolver); + } + else + { + ServiceDescriptor serviceDescriptor = descriptor.descriptor; + + String serviceName = null; + Utils.Resolver serviceResolver = null; + + if(Communicator.this instanceof PlainServer) + { + serviceResolver = new Utils.Resolver(getResolver()); + serviceName = serviceResolver.substitute(serviceDescriptor.name); + serviceResolver.put("service", serviceName); + } + else + { + serviceName = serviceDescriptor.name; + } + + return new PlainService(Communicator.this, + serviceName, + descriptor, + serviceResolver); + } + } + + void tryUpdate(TreeNode child) throws UpdateFailedException + { + // + // Rebuilding a Service is quite different since the creation of a service can + // trigger an UpdateFailedException + // + Object descriptor = child.getDescriptor(); + int listIndex = _children.indexOf(child); + assert listIndex != -1; + + TreeNode newChild = createChild(descriptor); + _children.set(listIndex, newChild); + getRoot().getTreeModel().nodeChanged(newChild); + + getEnclosingEditable().markModified(); + } + + private void newService(ServiceInstanceDescriptor descriptor) + { + if(descriptor.descriptor == null) + { + String name = makeNewChildId("NewService"); + + // + // Make sure descriptor.template points to a real template + // + ServiceTemplate t = getRoot().findServiceTemplate(descriptor.template); + + if(t == null) + { + if(getRoot().getServiceTemplates().getChildCount() == 0) + { + JOptionPane.showMessageDialog( + getCoordinator().getMainFrame(), + "You need to create a service template before you can create a service from a template.", + "No Service Template", + JOptionPane.INFORMATION_MESSAGE); + return; + } + else + { + t = (ServiceTemplate)getRoot().getServiceTemplates().getChildAt(0); + descriptor.template = t.getId(); + descriptor.parameterValues = new java.util.HashMap(); + } + } + + // + // Validate/update parameterValues + // + TemplateDescriptor td = (TemplateDescriptor)t.getDescriptor(); + descriptor.parameterValues = Editor.makeParameterValues(descriptor.parameterValues, + td.parameters); + + + ServiceInstance service = new ServiceInstance(Communicator.this, name, descriptor); + try + { + addChild(service, true); + } + catch(UpdateFailedException e) + { + assert false; + } + getRoot().setSelectedNode(service); + } + else + { + descriptor.descriptor.name = makeNewChildId(descriptor.descriptor.name); + + PlainService service = new PlainService(Communicator.this, descriptor); + try + { + addChild(service, true); + } + catch(UpdateFailedException e) + { + assert false; + } + getRoot().setSelectedNode(service); + } + } } Adapters getAdapters() { - return _adapters; + return _adapters; } DbEnvs getDbEnvs() { - return _dbEnvs; + return _dbEnvs; } Services getServices() { - return _services; + return _services; } java.util.List findServiceInstances(String template) { - java.util.List result = new java.util.LinkedList(); - java.util.Iterator p = _services.iterator(); - while(p.hasNext()) - { - Object obj = p.next(); - if(obj instanceof ServiceInstance) - { - ServiceInstance service = (ServiceInstance)obj; - ServiceInstanceDescriptor d = - (ServiceInstanceDescriptor)service.getDescriptor(); - if(d.template.equals(template)) - { - result.add(service); - } - } - } - return result; + java.util.List result = new java.util.LinkedList(); + java.util.Iterator p = _services.iterator(); + while(p.hasNext()) + { + Object obj = p.next(); + if(obj instanceof ServiceInstance) + { + ServiceInstance service = (ServiceInstance)obj; + ServiceInstanceDescriptor d = + (ServiceInstanceDescriptor)service.getDescriptor(); + if(d.template.equals(template)) + { + result.add(service); + } + } + } + return result; } void removeServiceInstances(String template) - { - java.util.Iterator p = _services.iterator(); - while(p.hasNext()) - { - Object obj = p.next(); - if(obj instanceof ServiceInstance) - { - ServiceInstance service = (ServiceInstance)obj; - ServiceInstanceDescriptor d = - (ServiceInstanceDescriptor)service.getDescriptor(); - if(d.template.equals(template)) - { - p.remove(); - _services.removeDescriptor(d); - getEnclosingEditable().markModified(); - } - } - } + { + java.util.Iterator p = _services.iterator(); + while(p.hasNext()) + { + Object obj = p.next(); + if(obj instanceof ServiceInstance) + { + ServiceInstance service = (ServiceInstance)obj; + ServiceInstanceDescriptor d = + (ServiceInstanceDescriptor)service.getDescriptor(); + if(d.template.equals(template)) + { + p.remove(); + _services.removeDescriptor(d); + getEnclosingEditable().markModified(); + } + } + } } void removeSortedChildren(String[] childIds, java.util.List fromChildren) { - removeSortedChildren(childIds, fromChildren, getRoot().getTreeModel()); + removeSortedChildren(childIds, fromChildren, getRoot().getTreeModel()); } void childrenChanged(java.util.List children) { - childrenChanged(children, getRoot().getTreeModel()); + childrenChanged(children, getRoot().getTreeModel()); } String getProperty(String key) { - CommunicatorDescriptor descriptor = getCommunicatorDescriptor(); - java.util.Iterator p = descriptor.propertySet.properties.iterator(); - while(p.hasNext()) - { - PropertyDescriptor pd = (PropertyDescriptor)p.next(); - if(pd.name.equals(key)) - { - return pd.value; - } - } - return null; + CommunicatorDescriptor descriptor = getCommunicatorDescriptor(); + java.util.Iterator p = descriptor.propertySet.properties.iterator(); + while(p.hasNext()) + { + PropertyDescriptor pd = (PropertyDescriptor)p.next(); + if(pd.name.equals(key)) + { + return pd.value; + } + } + 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 ""; + 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(); - removeProperty(key); - ((java.util.LinkedList)descriptor.propertySet.properties).addFirst(new PropertyDescriptor(key, newValue)); + CommunicatorDescriptor descriptor = getCommunicatorDescriptor(); + removeProperty(key); + ((java.util.LinkedList)descriptor.propertySet.properties).addFirst(new PropertyDescriptor(key, newValue)); } void removeProperty(String key) { - CommunicatorDescriptor descriptor = getCommunicatorDescriptor(); - java.util.Iterator p = descriptor.propertySet.properties.iterator(); - while(p.hasNext()) - { - PropertyDescriptor pd = (PropertyDescriptor)p.next(); - if(pd.name.equals(key)) - { - p.remove(); - } - } + CommunicatorDescriptor descriptor = getCommunicatorDescriptor(); + java.util.Iterator p = descriptor.propertySet.properties.iterator(); + while(p.hasNext()) + { + PropertyDescriptor pd = (PropertyDescriptor)p.next(); + if(pd.name.equals(key)) + { + p.remove(); + } + } } // diff --git a/java/src/IceGridGUI/Application/CommunicatorChildEditor.java b/java/src/IceGridGUI/Application/CommunicatorChildEditor.java index ee3ffe13935..041a9a72826 100755 --- a/java/src/IceGridGUI/Application/CommunicatorChildEditor.java +++ b/java/src/IceGridGUI/Application/CommunicatorChildEditor.java @@ -23,109 +23,109 @@ abstract class CommunicatorChildEditor extends Editor protected boolean applyUpdate(boolean refresh) { - Root root = _target.getRoot(); - root.disableSelectionListener(); - try - { - if(_target.isEphemeral()) - { - Communicator.ChildList childList = getChildList(); - - writeDescriptor(); - Object descriptor = _target.getDescriptor(); - _target.destroy(); // just removes the child - - try - { - childList.tryAdd(descriptor); - } - catch(UpdateFailedException e) - { - // - // Restore ephemeral - // - try - { - childList.addChild(_target, true); - } - catch(UpdateFailedException die) - { - assert false; - } - - JOptionPane.showMessageDialog( - root.getCoordinator().getMainFrame(), - e.toString(), - "Apply failed", - JOptionPane.ERROR_MESSAGE); - - root.setSelectedNode(_target); - return false; - } - - // - // Success - // - _target = childList.findChildWithDescriptor(descriptor); - root.updated(); - if(refresh) - { - root.setSelectedNode(_target); - } - } - else if(isSimpleUpdate()) - { - writeDescriptor(); - root.updated(); - ((Communicator)_target.getParent()).getEnclosingEditable().markModified(); - } - else - { - // - // Save to be able to rollback - // - Object savedDescriptor = ((DescriptorHolder)_target).saveDescriptor(); - Communicator.ChildList childList = getChildList(); - writeDescriptor(); - try - { - childList.tryUpdate(_target); - } - catch(UpdateFailedException e) - { - ((DescriptorHolder)_target).restoreDescriptor(savedDescriptor); - JOptionPane.showMessageDialog( - root.getCoordinator().getMainFrame(), - e.toString(), - "Apply failed", - JOptionPane.ERROR_MESSAGE); - return false; - } - - // - // Success - // - _target = childList.findChildWithDescriptor(_target.getDescriptor()); - root.updated(); - if(refresh) - { - root.setSelectedNode(_target); - } - } - - postUpdate(); + Root root = _target.getRoot(); + root.disableSelectionListener(); + try + { + if(_target.isEphemeral()) + { + Communicator.ChildList childList = getChildList(); + + writeDescriptor(); + Object descriptor = _target.getDescriptor(); + _target.destroy(); // just removes the child + + try + { + childList.tryAdd(descriptor); + } + catch(UpdateFailedException e) + { + // + // Restore ephemeral + // + try + { + childList.addChild(_target, true); + } + catch(UpdateFailedException die) + { + assert false; + } + + JOptionPane.showMessageDialog( + root.getCoordinator().getMainFrame(), + e.toString(), + "Apply failed", + JOptionPane.ERROR_MESSAGE); + + root.setSelectedNode(_target); + return false; + } + + // + // Success + // + _target = childList.findChildWithDescriptor(descriptor); + root.updated(); + if(refresh) + { + root.setSelectedNode(_target); + } + } + else if(isSimpleUpdate()) + { + writeDescriptor(); + root.updated(); + ((Communicator)_target.getParent()).getEnclosingEditable().markModified(); + } + else + { + // + // Save to be able to rollback + // + Object savedDescriptor = ((DescriptorHolder)_target).saveDescriptor(); + Communicator.ChildList childList = getChildList(); + writeDescriptor(); + try + { + childList.tryUpdate(_target); + } + catch(UpdateFailedException e) + { + ((DescriptorHolder)_target).restoreDescriptor(savedDescriptor); + JOptionPane.showMessageDialog( + root.getCoordinator().getMainFrame(), + e.toString(), + "Apply failed", + JOptionPane.ERROR_MESSAGE); + return false; + } + + // + // Success + // + _target = childList.findChildWithDescriptor(_target.getDescriptor()); + root.updated(); + if(refresh) + { + root.setSelectedNode(_target); + } + } + + postUpdate(); - if(refresh) - { - root.getCoordinator().getCurrentTab().showNode(_target); - } - _applyButton.setEnabled(false); - _discardButton.setEnabled(false); - return true; - } - finally - { - root.enableSelectionListener(); - } + if(refresh) + { + root.getCoordinator().getCurrentTab().showNode(_target); + } + _applyButton.setEnabled(false); + _discardButton.setEnabled(false); + return true; + } + finally + { + root.enableSelectionListener(); + } } } diff --git a/java/src/IceGridGUI/Application/CommunicatorSubEditor.java b/java/src/IceGridGUI/Application/CommunicatorSubEditor.java index 68a7200b179..5286e57b059 100755 --- a/java/src/IceGridGUI/Application/CommunicatorSubEditor.java +++ b/java/src/IceGridGUI/Application/CommunicatorSubEditor.java @@ -27,123 +27,123 @@ class CommunicatorSubEditor { CommunicatorSubEditor(Editor mainEditor) { - _mainEditor = mainEditor; - - _description.getDocument().addDocumentListener( - _mainEditor.getUpdateListener()); - _description.setToolTipText("An optional description"); - - _propertySets.getDocument().addDocumentListener( - _mainEditor.getUpdateListener()); - _propertySets.setToolTipText("Property Set References"); - - _properties = new PropertiesField(mainEditor); - _logFiles = new MapField(mainEditor, "Path", "Property", - true); - _logFiles.setToolTipText("Log files used by this server or service"); + _mainEditor = mainEditor; + + _description.getDocument().addDocumentListener( + _mainEditor.getUpdateListener()); + _description.setToolTipText("An optional description"); + + _propertySets.getDocument().addDocumentListener( + _mainEditor.getUpdateListener()); + _propertySets.setToolTipText("Property Set References"); + + _properties = new PropertiesField(mainEditor); + _logFiles = new MapField(mainEditor, "Path", "Property", + true); + _logFiles.setToolTipText("Log files used by this server or service"); } void appendProperties(DefaultFormBuilder builder) { - builder.append("Description"); - builder.nextLine(); - builder.append(""); - builder.nextRow(-2); - CellConstraints cc = new CellConstraints(); - JScrollPane scrollPane = new JScrollPane(_description); - builder.add(scrollPane, - cc.xywh(builder.getColumn(), builder.getRow(), 3, 3)); - builder.nextRow(2); - builder.nextLine(); - - builder.append("Property Sets"); - builder.append(_propertySets, 3); - builder.nextLine(); - - builder.append("Properties"); - builder.nextLine(); - builder.append(""); - builder.nextLine(); - builder.append(""); - builder.nextLine(); - builder.append(""); - - builder.nextRow(-6); - scrollPane = new JScrollPane(_properties); - builder.add(scrollPane, - cc.xywh(builder.getColumn(), builder.getRow(), 3, 7)); - builder.nextRow(6); - builder.nextLine(); - - builder.append("Log files"); - builder.nextLine(); - builder.append(""); - builder.nextLine(); - builder.append(""); - builder.nextRow(-4); - scrollPane = new JScrollPane(_logFiles); - builder.add(scrollPane, - cc.xywh(builder.getColumn(), builder.getRow(), 3, 5)); - builder.nextRow(4); - builder.nextLine(); + builder.append("Description"); + builder.nextLine(); + builder.append(""); + builder.nextRow(-2); + CellConstraints cc = new CellConstraints(); + JScrollPane scrollPane = new JScrollPane(_description); + builder.add(scrollPane, + cc.xywh(builder.getColumn(), builder.getRow(), 3, 3)); + builder.nextRow(2); + builder.nextLine(); + + builder.append("Property Sets"); + builder.append(_propertySets, 3); + builder.nextLine(); + + builder.append("Properties"); + builder.nextLine(); + builder.append(""); + builder.nextLine(); + builder.append(""); + builder.nextLine(); + builder.append(""); + + builder.nextRow(-6); + scrollPane = new JScrollPane(_properties); + builder.add(scrollPane, + cc.xywh(builder.getColumn(), builder.getRow(), 3, 7)); + builder.nextRow(6); + builder.nextLine(); + + builder.append("Log files"); + builder.nextLine(); + builder.append(""); + builder.nextLine(); + builder.append(""); + builder.nextRow(-4); + scrollPane = new JScrollPane(_logFiles); + builder.add(scrollPane, + cc.xywh(builder.getColumn(), builder.getRow(), 3, 5)); + builder.nextRow(4); + builder.nextLine(); } void writeDescriptor(CommunicatorDescriptor descriptor) { - descriptor.propertySet.references = - (String[])_propertySets.getList().toArray(new String[0]); - descriptor.propertySet.properties = _properties.getProperties(); - descriptor.description = _description.getText(); - - java.util.TreeMap tm = _logFiles.get(); - java.util.Iterator p = tm.entrySet().iterator(); - descriptor.logs = new String[tm.size()]; - int i = 0; - - while(p.hasNext()) - { - java.util.Map.Entry entry = (java.util.Map.Entry)p.next(); - String path = (String)entry.getKey(); - String prop = ((String)entry.getValue()).trim(); - - descriptor.logs[i++] = path; - if(!prop.equals("")) - { - setProperty((java.util.LinkedList)descriptor.propertySet.properties, prop, path); - } - } + descriptor.propertySet.references = + (String[])_propertySets.getList().toArray(new String[0]); + descriptor.propertySet.properties = _properties.getProperties(); + descriptor.description = _description.getText(); + + java.util.TreeMap tm = _logFiles.get(); + java.util.Iterator p = tm.entrySet().iterator(); + descriptor.logs = new String[tm.size()]; + int i = 0; + + while(p.hasNext()) + { + java.util.Map.Entry entry = (java.util.Map.Entry)p.next(); + String path = (String)entry.getKey(); + String prop = ((String)entry.getValue()).trim(); + + descriptor.logs[i++] = path; + if(!prop.equals("")) + { + setProperty((java.util.LinkedList)descriptor.propertySet.properties, prop, path); + } + } } void show(CommunicatorDescriptor descriptor, boolean isEditable) { - Utils.Resolver detailResolver = _mainEditor.getDetailResolver(); - isEditable = isEditable && (detailResolver == null); - - // - // Note that we don't substitute in the lookup - // - java.util.Map map = new java.util.TreeMap(); - for(int i = 0; i < descriptor.logs.length; ++i) - { - String prop = lookupKey(descriptor.propertySet.properties, - descriptor.logs[i]); - map.put(descriptor.logs[i], prop); - } - _logFiles.set(map, detailResolver, isEditable); - - _propertySets.setList(java.util.Arrays.asList(descriptor.propertySet.references), - detailResolver); - _propertySets.setEditable(isEditable); - _properties.setProperties(descriptor.propertySet.properties, - descriptor.adapters, - descriptor.logs, - detailResolver, isEditable); - - _description.setText( - Utils.substitute(descriptor.description, detailResolver)); - _description.setEditable(isEditable); - _description.setOpaque(isEditable); + Utils.Resolver detailResolver = _mainEditor.getDetailResolver(); + isEditable = isEditable && (detailResolver == null); + + // + // Note that we don't substitute in the lookup + // + java.util.Map map = new java.util.TreeMap(); + for(int i = 0; i < descriptor.logs.length; ++i) + { + String prop = lookupKey(descriptor.propertySet.properties, + descriptor.logs[i]); + map.put(descriptor.logs[i], prop); + } + _logFiles.set(map, detailResolver, isEditable); + + _propertySets.setList(java.util.Arrays.asList(descriptor.propertySet.references), + detailResolver); + _propertySets.setEditable(isEditable); + _properties.setProperties(descriptor.propertySet.properties, + descriptor.adapters, + descriptor.logs, + detailResolver, isEditable); + + _description.setText( + Utils.substitute(descriptor.description, detailResolver)); + _description.setEditable(isEditable); + _description.setOpaque(isEditable); } @@ -152,35 +152,35 @@ class CommunicatorSubEditor // private String lookupKey(java.util.List props, String value) { - java.util.Iterator p = props.iterator(); - while(p.hasNext()) - { - PropertyDescriptor pd = (PropertyDescriptor)p.next(); - if(pd.value.equals(value)) - { - return pd.name; - } - } - return ""; + java.util.Iterator p = props.iterator(); + while(p.hasNext()) + { + PropertyDescriptor pd = (PropertyDescriptor)p.next(); + if(pd.value.equals(value)) + { + return pd.name; + } + } + return ""; } private void setProperty(java.util.LinkedList props, String key, String newValue) { - removeProperty(props, key); - props.addFirst(new PropertyDescriptor(key, newValue)); + removeProperty(props, key); + props.addFirst(new PropertyDescriptor(key, newValue)); } private void removeProperty(java.util.List props, String key) { - java.util.Iterator p = props.iterator(); - while(p.hasNext()) - { - PropertyDescriptor pd = (PropertyDescriptor)p.next(); - if(pd.name.equals(key)) - { - p.remove(); - } - } + java.util.Iterator p = props.iterator(); + while(p.hasNext()) + { + PropertyDescriptor pd = (PropertyDescriptor)p.next(); + if(pd.name.equals(key)) + { + p.remove(); + } + } } diff --git a/java/src/IceGridGUI/Application/DbEnv.java b/java/src/IceGridGUI/Application/DbEnv.java index b2e89d668c9..790dcd83d89 100755 --- a/java/src/IceGridGUI/Application/DbEnv.java +++ b/java/src/IceGridGUI/Application/DbEnv.java @@ -19,36 +19,36 @@ class DbEnv extends TreeNode implements DescriptorHolder { static public DbEnvDescriptor copyDescriptor(DbEnvDescriptor d) { - return (DbEnvDescriptor)d.clone(); + return (DbEnvDescriptor)d.clone(); } static public java.util.List copyDescriptors(java.util.List list) { - java.util.List copy = new java.util.LinkedList(); - java.util.Iterator p = list.iterator(); - while(p.hasNext()) - { - copy.add(copyDescriptor((DbEnvDescriptor)p.next())); - } - return copy; + java.util.List copy = new java.util.LinkedList(); + java.util.Iterator p = list.iterator(); + while(p.hasNext()) + { + copy.add(copyDescriptor((DbEnvDescriptor)p.next())); + } + return copy; } public Component getTreeCellRendererComponent( - JTree tree, - Object value, - boolean sel, - boolean expanded, - boolean leaf, - int row, - boolean hasFocus) - { - if(_cellRenderer == null) - { - _cellRenderer = new DefaultTreeCellRenderer(); - _cellRenderer.setLeafIcon(Utils.getIcon("/icons/16x16/database.png")); - } - return _cellRenderer.getTreeCellRendererComponent( - tree, value, sel, expanded, leaf, row, hasFocus); + JTree tree, + Object value, + boolean sel, + boolean expanded, + boolean leaf, + int row, + boolean hasFocus) + { + if(_cellRenderer == null) + { + _cellRenderer = new DefaultTreeCellRenderer(); + _cellRenderer.setLeafIcon(Utils.getIcon("/icons/16x16/database.png")); + } + return _cellRenderer.getTreeCellRendererComponent( + tree, value, sel, expanded, leaf, row, hasFocus); } // @@ -56,134 +56,134 @@ class DbEnv extends TreeNode implements DescriptorHolder // public boolean[] getAvailableActions() { - boolean[] actions = new boolean[ACTION_COUNT]; - actions[COPY] = !_ephemeral; + boolean[] actions = new boolean[ACTION_COUNT]; + actions[COPY] = !_ephemeral; - Object clipboard = getCoordinator().getClipboard(); - actions[PASTE] = clipboard != null && - (clipboard instanceof AdapterDescriptor - || clipboard instanceof DbEnvDescriptor); - actions[DELETE] = true; - - if(!_ephemeral) - { - boolean[] parentActions = ((TreeNode)_parent).getAvailableActions(); - actions[SHOW_VARS] = parentActions[SHOW_VARS]; - actions[SUBSTITUTE_VARS] = parentActions[SUBSTITUTE_VARS]; - } - return actions; + Object clipboard = getCoordinator().getClipboard(); + actions[PASTE] = clipboard != null && + (clipboard instanceof AdapterDescriptor + || clipboard instanceof DbEnvDescriptor); + actions[DELETE] = true; + + if(!_ephemeral) + { + boolean[] parentActions = ((TreeNode)_parent).getAvailableActions(); + actions[SHOW_VARS] = parentActions[SHOW_VARS]; + actions[SUBSTITUTE_VARS] = parentActions[SUBSTITUTE_VARS]; + } + return actions; } public void copy() { - getCoordinator().setClipboard(copyDescriptor(_descriptor)); - getCoordinator().getActionsForMenu().get(PASTE).setEnabled(true); + getCoordinator().setClipboard(copyDescriptor(_descriptor)); + getCoordinator().getActionsForMenu().get(PASTE).setEnabled(true); } public void paste() { - ((TreeNode)_parent).paste(); + ((TreeNode)_parent).paste(); } public Editor getEditor() { - if(_editor == null) - { - _editor = (DbEnvEditor)getRoot().getEditor(DbEnvEditor.class, this); - } - _editor.show(this); - return _editor; + if(_editor == null) + { + _editor = (DbEnvEditor)getRoot().getEditor(DbEnvEditor.class, this); + } + _editor.show(this); + return _editor; } protected Editor createEditor() { - return new DbEnvEditor(); + return new DbEnvEditor(); } public Object getDescriptor() { - return _descriptor; + return _descriptor; } public Object copyDescriptor() { - return copyDescriptor(_descriptor); + return copyDescriptor(_descriptor); } public Object saveDescriptor() { - return copyDescriptor(_descriptor); + return copyDescriptor(_descriptor); } public void restoreDescriptor(Object savedDescriptor) { - DbEnvDescriptor clone = (DbEnvDescriptor)savedDescriptor; - _descriptor.name = clone.name; - _descriptor.dbHome = clone.dbHome; - _descriptor.description = clone.description; - _descriptor.properties = clone.properties; + DbEnvDescriptor clone = (DbEnvDescriptor)savedDescriptor; + _descriptor.name = clone.name; + _descriptor.dbHome = clone.dbHome; + _descriptor.description = clone.description; + _descriptor.properties = clone.properties; } public void destroy() { - ((Communicator)_parent).getDbEnvs().destroyChild(this); + ((Communicator)_parent).getDbEnvs().destroyChild(this); } public boolean isEphemeral() { - return _ephemeral; + return _ephemeral; } DbEnv(Communicator parent, String dbEnvName, DbEnvDescriptor descriptor, - boolean ephemeral) + boolean ephemeral) { - super(parent, dbEnvName); - _descriptor = descriptor; - _ephemeral = ephemeral; + super(parent, dbEnvName); + _descriptor = descriptor; + _ephemeral = ephemeral; } static void writeDbProperties(XMLWriter writer, - java.util.List properties) - throws java.io.IOException + java.util.List properties) + throws java.io.IOException { - java.util.Iterator p = properties.iterator(); - while(p.hasNext()) - { - PropertyDescriptor pd = (PropertyDescriptor)p.next(); - java.util.List attributes = new java.util.LinkedList(); - attributes.add(createAttribute("name", pd.name)); - attributes.add(createAttribute("value", pd.value)); - writer.writeElement("dbproperty", attributes); - } + java.util.Iterator p = properties.iterator(); + while(p.hasNext()) + { + PropertyDescriptor pd = (PropertyDescriptor)p.next(); + java.util.List attributes = new java.util.LinkedList(); + attributes.add(createAttribute("name", pd.name)); + attributes.add(createAttribute("value", pd.value)); + writer.writeElement("dbproperty", attributes); + } } void write(XMLWriter writer) throws java.io.IOException { - if(!_ephemeral) - { - java.util.List attributes = new java.util.LinkedList(); - attributes.add(createAttribute("name", _descriptor.name)); - if(_descriptor.dbHome.length() > 0) - { - attributes.add(createAttribute("home", _descriptor.dbHome)); - } - - if(_descriptor.description.length() == 0 && - _descriptor.properties.isEmpty()) - { - writer.writeElement("dbenv", attributes); - } - else - { - writer.writeStartTag("dbenv", attributes); - if(_descriptor.description.length() > 0) - { - writer.writeElement("description", _descriptor.description); - } - writeDbProperties(writer, _descriptor.properties); - writer.writeEndTag("dbenv"); - } - } + if(!_ephemeral) + { + java.util.List attributes = new java.util.LinkedList(); + attributes.add(createAttribute("name", _descriptor.name)); + if(_descriptor.dbHome.length() > 0) + { + attributes.add(createAttribute("home", _descriptor.dbHome)); + } + + if(_descriptor.description.length() == 0 && + _descriptor.properties.isEmpty()) + { + writer.writeElement("dbenv", attributes); + } + else + { + writer.writeStartTag("dbenv", attributes); + if(_descriptor.description.length() > 0) + { + writer.writeElement("description", _descriptor.description); + } + writeDbProperties(writer, _descriptor.properties); + writer.writeEndTag("dbenv"); + } + } } private DbEnvDescriptor _descriptor; diff --git a/java/src/IceGridGUI/Application/DbEnvEditor.java b/java/src/IceGridGUI/Application/DbEnvEditor.java index 9ff7b6a47bb..b937cd96ba8 100755 --- a/java/src/IceGridGUI/Application/DbEnvEditor.java +++ b/java/src/IceGridGUI/Application/DbEnvEditor.java @@ -28,160 +28,160 @@ class DbEnvEditor extends CommunicatorChildEditor { DbEnvEditor() { - _name.getDocument().addDocumentListener(_updateListener); - _name.setToolTipText( - "Identifies this Freeze database environment within an Ice communicator"); - _description.getDocument().addDocumentListener(_updateListener); - _description.setToolTipText( - "An optional description for this database environment"); - - JTextField dbHomeTextField = (JTextField) - _dbHome.getEditor().getEditorComponent(); - dbHomeTextField.getDocument().addDocumentListener(_updateListener); - _dbHome.setToolTipText("<html><i>node data dir</i>/servers/<i>server id</i>" - + "/dbs/<i>db env name</i> if created by the IceGrid Node;<br>" - + "otherwise, IceGrid does not create this directory" - + "</html>"); - - _properties = new PropertiesField(this); + _name.getDocument().addDocumentListener(_updateListener); + _name.setToolTipText( + "Identifies this Freeze database environment within an Ice communicator"); + _description.getDocument().addDocumentListener(_updateListener); + _description.setToolTipText( + "An optional description for this database environment"); + + JTextField dbHomeTextField = (JTextField) + _dbHome.getEditor().getEditorComponent(); + dbHomeTextField.getDocument().addDocumentListener(_updateListener); + _dbHome.setToolTipText("<html><i>node data dir</i>/servers/<i>server id</i>" + + "/dbs/<i>db env name</i> if created by the IceGrid Node;<br>" + + "otherwise, IceGrid does not create this directory" + + "</html>"); + + _properties = new PropertiesField(this); } void writeDescriptor() { - DbEnvDescriptor descriptor = - (DbEnvDescriptor)getDbEnv().getDescriptor(); - descriptor.name = _name.getText().trim(); - descriptor.description = _description.getText(); - descriptor.dbHome = getDbHomeAsString(); - descriptor.properties = _properties.getProperties(); - } + DbEnvDescriptor descriptor = + (DbEnvDescriptor)getDbEnv().getDescriptor(); + descriptor.name = _name.getText().trim(); + descriptor.description = _description.getText(); + descriptor.dbHome = getDbHomeAsString(); + descriptor.properties = _properties.getProperties(); + } boolean isSimpleUpdate() { - DbEnvDescriptor descriptor = - (DbEnvDescriptor)getDbEnv().getDescriptor(); - return descriptor.name.equals(_name.getText().trim()); + DbEnvDescriptor descriptor = + (DbEnvDescriptor)getDbEnv().getDescriptor(); + return descriptor.name.equals(_name.getText().trim()); } Communicator.ChildList getChildList() { - return ((Communicator)_target.getParent()).getDbEnvs(); + return ((Communicator)_target.getParent()).getDbEnvs(); } protected void appendProperties(DefaultFormBuilder builder) { - builder.append("Name" ); - builder.append(_name, 3); - builder.nextLine(); - - builder.append("Description"); - builder.nextLine(); - builder.append(""); - builder.nextRow(-2); - CellConstraints cc = new CellConstraints(); - JScrollPane scrollPane = new JScrollPane(_description); - builder.add(scrollPane, - cc.xywh(builder.getColumn(), builder.getRow(), 3, 3)); - builder.nextRow(2); - builder.nextLine(); - - builder.append("DB Home" ); - builder.append(_dbHome, 3); - builder.nextLine(); - - builder.append("Properties"); - builder.nextLine(); - builder.append(""); - builder.nextLine(); - builder.append(""); - - builder.nextLine(); - builder.append(""); - - builder.nextRow(-6); - scrollPane = new JScrollPane(_properties); - builder.add(scrollPane, - cc.xywh(builder.getColumn(), builder.getRow(), 3, 7)); - builder.nextRow(6); - builder.nextLine(); + builder.append("Name" ); + builder.append(_name, 3); + builder.nextLine(); + + builder.append("Description"); + builder.nextLine(); + builder.append(""); + builder.nextRow(-2); + CellConstraints cc = new CellConstraints(); + JScrollPane scrollPane = new JScrollPane(_description); + builder.add(scrollPane, + cc.xywh(builder.getColumn(), builder.getRow(), 3, 3)); + builder.nextRow(2); + builder.nextLine(); + + builder.append("DB Home" ); + builder.append(_dbHome, 3); + builder.nextLine(); + + builder.append("Properties"); + builder.nextLine(); + builder.append(""); + builder.nextLine(); + builder.append(""); + + builder.nextLine(); + builder.append(""); + + builder.nextRow(-6); + scrollPane = new JScrollPane(_properties); + builder.add(scrollPane, + cc.xywh(builder.getColumn(), builder.getRow(), 3, 7)); + builder.nextRow(6); + builder.nextLine(); } protected void buildPropertiesPanel() { - super.buildPropertiesPanel(); - _propertiesPanel.setName("Database Environment Properties"); + super.buildPropertiesPanel(); + _propertiesPanel.setName("Database Environment Properties"); } protected boolean validate() { - return check(new String[]{"Name", _name.getText().trim()}); + return check(new String[]{"Name", _name.getText().trim()}); } void show(DbEnv dbEnv) { - detectUpdates(false); - _target = dbEnv; - - DbEnvDescriptor descriptor = (DbEnvDescriptor)dbEnv.getDescriptor(); - - Utils.Resolver resolver = null; - if(dbEnv.getCoordinator().substitute()) - { - resolver = dbEnv.getResolver(); - } - boolean isEditable = resolver == null; - - _name.setText( - Utils.substitute(descriptor.name, resolver)); - _name.setEditable(isEditable); - - _description.setText( - Utils.substitute(descriptor.description, resolver)); - _description.setEditable(isEditable); - _description.setOpaque(isEditable); - - _dbHome.setEnabled(true); - _dbHome.setEditable(true); - setDbHome(Utils.substitute(descriptor.dbHome, resolver)); - _dbHome.setEnabled(isEditable); - _dbHome.setEditable(isEditable); - - _properties.setProperties(descriptor.properties, null, null, - resolver, isEditable); - - _applyButton.setEnabled(dbEnv.isEphemeral()); - _discardButton.setEnabled(dbEnv.isEphemeral()); - detectUpdates(true); + detectUpdates(false); + _target = dbEnv; + + DbEnvDescriptor descriptor = (DbEnvDescriptor)dbEnv.getDescriptor(); + + Utils.Resolver resolver = null; + if(dbEnv.getCoordinator().substitute()) + { + resolver = dbEnv.getResolver(); + } + boolean isEditable = resolver == null; + + _name.setText( + Utils.substitute(descriptor.name, resolver)); + _name.setEditable(isEditable); + + _description.setText( + Utils.substitute(descriptor.description, resolver)); + _description.setEditable(isEditable); + _description.setOpaque(isEditable); + + _dbHome.setEnabled(true); + _dbHome.setEditable(true); + setDbHome(Utils.substitute(descriptor.dbHome, resolver)); + _dbHome.setEnabled(isEditable); + _dbHome.setEditable(isEditable); + + _properties.setProperties(descriptor.properties, null, null, + resolver, isEditable); + + _applyButton.setEnabled(dbEnv.isEphemeral()); + _discardButton.setEnabled(dbEnv.isEphemeral()); + detectUpdates(true); } private DbEnv getDbEnv() { - return (DbEnv)_target; + return (DbEnv)_target; } private void setDbHome(String dbHome) { - if(dbHome.equals("")) - { - _dbHome.setSelectedItem(NO_DB_HOME); - } - else - { - _dbHome.setSelectedItem(dbHome); - } + if(dbHome.equals("")) + { + _dbHome.setSelectedItem(NO_DB_HOME); + } + else + { + _dbHome.setSelectedItem(dbHome); + } } private String getDbHomeAsString() { - Object obj = _dbHome.getSelectedItem(); - if(obj == NO_DB_HOME) - { - return ""; - } - else - { - return obj.toString().trim(); - } + Object obj = _dbHome.getSelectedItem(); + if(obj == NO_DB_HOME) + { + return ""; + } + else + { + return obj.toString().trim(); + } } private JTextField _name = new JTextField(20); @@ -191,10 +191,10 @@ class DbEnvEditor extends CommunicatorChildEditor private PropertiesField _properties; static private final Object NO_DB_HOME = new Object() - { - public String toString() - { - return "Created by the IceGrid Node"; - } - }; + { + public String toString() + { + return "Created by the IceGrid Node"; + } + }; } diff --git a/java/src/IceGridGUI/Application/Editable.java b/java/src/IceGridGUI/Application/Editable.java index 487a7fecdc1..5972ea4d57e 100755 --- a/java/src/IceGridGUI/Application/Editable.java +++ b/java/src/IceGridGUI/Application/Editable.java @@ -12,91 +12,91 @@ class Editable implements Cloneable { Editable(boolean brandNew) { - _isNew = brandNew; + _isNew = brandNew; } boolean isNew() { - return _isNew; + return _isNew; } boolean isModified() { - return _modified; + return _modified; } void markModified() { - _modified = true; + _modified = true; } void commit() { - _isNew = false; - _modified = false; - _removedElements.clear(); + _isNew = false; + _modified = false; + _removedElements.clear(); } void markNew() { - _isNew = true; + _isNew = true; } void removeElement(String id, Editable editable, Class forClass) { - if(!editable.isNew()) - { - java.util.TreeSet set = (java.util.TreeSet)_removedElements.get(forClass); - if(set == null) - { - set = new java.util.TreeSet(); - _removedElements.put(forClass, set); - } - set.add(id); - } + if(!editable.isNew()) + { + java.util.TreeSet set = (java.util.TreeSet)_removedElements.get(forClass); + if(set == null) + { + set = new java.util.TreeSet(); + _removedElements.put(forClass, set); + } + set.add(id); + } } String[] removedElements(Class forClass) { - java.util.TreeSet set = (java.util.TreeSet)_removedElements.get(forClass); - if(set == null) - { - return new String[0]; - } - else - { - return (String[])set.toArray(new String[0]); - } + java.util.TreeSet set = (java.util.TreeSet)_removedElements.get(forClass); + if(set == null) + { + return new String[0]; + } + else + { + return (String[])set.toArray(new String[0]); + } } Editable save() { - try - { - Editable result = (Editable)clone(); - java.util.HashMap removedElements = new java.util.HashMap(); - java.util.Iterator p = result._removedElements.entrySet().iterator(); - while(p.hasNext()) - { - java.util.Map.Entry entry = (java.util.Map.Entry)p.next(); - Object val = ((java.util.TreeSet)entry.getValue()).clone(); - removedElements.put(entry.getKey(), val); - } - result._removedElements = removedElements; - return result; - } - catch(CloneNotSupportedException e) - { - assert false; - return null; - } + try + { + Editable result = (Editable)clone(); + java.util.HashMap removedElements = new java.util.HashMap(); + java.util.Iterator p = result._removedElements.entrySet().iterator(); + while(p.hasNext()) + { + java.util.Map.Entry entry = (java.util.Map.Entry)p.next(); + Object val = ((java.util.TreeSet)entry.getValue()).clone(); + removedElements.put(entry.getKey(), val); + } + result._removedElements = removedElements; + return result; + } + catch(CloneNotSupportedException e) + { + assert false; + return null; + } } void restore(Editable clone) { - _isNew = clone._isNew; - _modified = clone._modified; - _removedElements = clone._removedElements; + _isNew = clone._isNew; + _modified = clone._modified; + _removedElements = clone._removedElements; } private boolean _isNew = false; diff --git a/java/src/IceGridGUI/Application/Editor.java b/java/src/IceGridGUI/Application/Editor.java index dd8cf663e00..cb3308c0111 100755 --- a/java/src/IceGridGUI/Application/Editor.java +++ b/java/src/IceGridGUI/Application/Editor.java @@ -39,62 +39,62 @@ import IceGridGUI.*; public class Editor extends EditorBase { static public java.util.Map makeParameterValues( - java.util.Map oldParameterValues, - java.util.List newParameters) + java.util.Map oldParameterValues, + java.util.List newParameters) { - java.util.Map result = new java.util.HashMap(); - - java.util.Iterator p = newParameters.iterator(); - while(p.hasNext()) - { - Object name = p.next(); - Object value = oldParameterValues.get(name); - if(value != null) - { - result.put(name, value); - } - } - return result; + java.util.Map result = new java.util.HashMap(); + + java.util.Iterator p = newParameters.iterator(); + while(p.hasNext()) + { + Object name = p.next(); + Object value = oldParameterValues.get(name); + if(value != null) + { + result.put(name, value); + } + } + return result; } public boolean save(boolean refresh) { - if(_applyButton.isEnabled()) - { - return validate() && applyUpdate(refresh); - } - else - { - return true; - } + if(_applyButton.isEnabled()) + { + return validate() && applyUpdate(refresh); + } + else + { + return true; + } } protected boolean validate() { - return true; + return true; } protected boolean applyUpdate(boolean refresh) { - assert false; - return false; + assert false; + return false; } protected void detectUpdates(boolean val) { - _detectUpdates = val; + _detectUpdates = val; } protected void discardUpdate() { - if(_target.isEphemeral()) - { - _target.delete(); - } - else - { - _target.getCoordinator().getCurrentTab().showNode(_target); - } + if(_target.isEphemeral()) + { + _target.delete(); + } + else + { + _target.getCoordinator().getCurrentTab().showNode(_target); + } } protected void appendProperties(DefaultFormBuilder builder) @@ -102,67 +102,67 @@ public class Editor extends EditorBase protected void buildPropertiesPanel() { - super.buildPropertiesPanel(); - JComponent buttonBar = - ButtonBarFactory.buildRightAlignedBar(_applyButton, - _discardButton); - buttonBar.setBorder(Borders.DIALOG_BORDER); - _propertiesPanel.add(buttonBar, BorderLayout.SOUTH); + super.buildPropertiesPanel(); + JComponent buttonBar = + ButtonBarFactory.buildRightAlignedBar(_applyButton, + _discardButton); + buttonBar.setBorder(Borders.DIALOG_BORDER); + _propertiesPanel.add(buttonBar, BorderLayout.SOUTH); } Editor() { - // - // _applyButton - // - AbstractAction apply = new AbstractAction("Apply") - { - public void actionPerformed(ActionEvent e) - { - if(validate()) - { - if(applyUpdate(true)) - { - _target.getRoot().getTree().grabFocus(); - } - } - } - }; - _applyButton = new JButton(apply); - _applyButton.setEnabled(false); - - // - // _discardButton - // - AbstractAction discard = new AbstractAction("Discard") - { - public void actionPerformed(ActionEvent e) - { - discardUpdate(); - _target.getRoot().getTree().grabFocus(); - } - }; - _discardButton = new JButton(discard); - _discardButton.setEnabled(false); - - _updateListener = new DocumentListener() - { - public void changedUpdate(DocumentEvent e) - { - updated(); - } - - public void insertUpdate(DocumentEvent e) - { - updated(); - } - - public void removeUpdate(DocumentEvent e) - { - updated(); - } - }; + // + // _applyButton + // + AbstractAction apply = new AbstractAction("Apply") + { + public void actionPerformed(ActionEvent e) + { + if(validate()) + { + if(applyUpdate(true)) + { + _target.getRoot().getTree().grabFocus(); + } + } + } + }; + _applyButton = new JButton(apply); + _applyButton.setEnabled(false); + + // + // _discardButton + // + AbstractAction discard = new AbstractAction("Discard") + { + public void actionPerformed(ActionEvent e) + { + discardUpdate(); + _target.getRoot().getTree().grabFocus(); + } + }; + _discardButton = new JButton(discard); + _discardButton.setEnabled(false); + + _updateListener = new DocumentListener() + { + public void changedUpdate(DocumentEvent e) + { + updated(); + } + + public void insertUpdate(DocumentEvent e) + { + updated(); + } + + public void removeUpdate(DocumentEvent e) + { + updated(); + } + }; } // @@ -170,32 +170,32 @@ public class Editor extends EditorBase // Object getSubDescriptor() { - return null; + return null; } Utils.Resolver getDetailResolver() { - return null; + return null; } public TreeNode getTarget() { - return _target; + return _target; } void updated() { - if(_detectUpdates) - { - _target.getRoot().disableRegistryUpdates(); - _applyButton.setEnabled(true); - _discardButton.setEnabled(true); - } + if(_detectUpdates) + { + _target.getRoot().disableRegistryUpdates(); + _applyButton.setEnabled(true); + _discardButton.setEnabled(true); + } } DocumentListener getUpdateListener() { - return _updateListener; + return _updateListener; } // @@ -203,36 +203,36 @@ public class Editor extends EditorBase // boolean check(String[] nameValArray) { - String emptyFields = ""; - int errorCount = 0; - - for(int i = 1; i < nameValArray.length; i += 2) - { - if(nameValArray[i] == null || nameValArray[i].length() == 0) - { - errorCount++; - if(emptyFields.length() > 0) - { - emptyFields += "\n"; - } - emptyFields += "'" + nameValArray[i - 1] + "'"; - } - } - - if(errorCount > 0) - { - String message = errorCount == 1 ? - emptyFields + " cannot be empty" : - "The following fields cannot be empty:\n" + emptyFields; - - JOptionPane.showMessageDialog( - _target.getCoordinator().getMainFrame(), - message, - "Validation failed", - JOptionPane.ERROR_MESSAGE); - } - - return errorCount == 0; + String emptyFields = ""; + int errorCount = 0; + + for(int i = 1; i < nameValArray.length; i += 2) + { + if(nameValArray[i] == null || nameValArray[i].length() == 0) + { + errorCount++; + if(emptyFields.length() > 0) + { + emptyFields += "\n"; + } + emptyFields += "'" + nameValArray[i - 1] + "'"; + } + } + + if(errorCount > 0) + { + String message = errorCount == 1 ? + emptyFields + " cannot be empty" : + "The following fields cannot be empty:\n" + emptyFields; + + JOptionPane.showMessageDialog( + _target.getCoordinator().getMainFrame(), + message, + "Validation failed", + JOptionPane.ERROR_MESSAGE); + } + + return errorCount == 0; } protected JButton _applyButton; diff --git a/java/src/IceGridGUI/Application/ListTextField.java b/java/src/IceGridGUI/Application/ListTextField.java index 86efdd6ef99..e82a6564cf8 100755 --- a/java/src/IceGridGUI/Application/ListTextField.java +++ b/java/src/IceGridGUI/Application/ListTextField.java @@ -22,58 +22,58 @@ public class ListTextField extends JTextField { public ListTextField(int columns) { - super(columns); + super(columns); } public void setList(java.util.List list, final Utils.Resolver resolver) { - Utils.Stringifier stringifier = new Utils.Stringifier() - { - public String toString(Object obj) - { - return Utils.substitute((String)obj, resolver); - } - }; - - setText(Utils.stringify(list, stringifier, " ", null)); + Utils.Stringifier stringifier = new Utils.Stringifier() + { + public String toString(Object obj) + { + return Utils.substitute((String)obj, resolver); + } + }; + + setText(Utils.stringify(list, stringifier, " ", null)); } public java.util.LinkedList getList() { - String text = getText().trim(); - java.util.LinkedList result = new java.util.LinkedList(); + String text = getText().trim(); + java.util.LinkedList result = new java.util.LinkedList(); - while(text.length() > 0) - { - if(text.startsWith("\"")) - { - int last = text.indexOf("\"", 1); - if(last == -1) - { - result.add(text.substring(1)); - text = ""; - } - else - { - result.add(text.substring(1, last)); - text = text.substring(last + 1).trim(); - } - } - else - { - String[] strings = text.split("\\s", 2); - if(strings.length == 1) - { - result.add(strings[0]); - text = ""; - } - else - { - result.add(strings[0]); - text = strings[1].trim(); - } - } - } - return result; + while(text.length() > 0) + { + if(text.startsWith("\"")) + { + int last = text.indexOf("\"", 1); + if(last == -1) + { + result.add(text.substring(1)); + text = ""; + } + else + { + result.add(text.substring(1, last)); + text = text.substring(last + 1).trim(); + } + } + else + { + String[] strings = text.split("\\s", 2); + if(strings.length == 1) + { + result.add(strings[0]); + text = ""; + } + else + { + result.add(strings[0]); + text = strings[1].trim(); + } + } + } + return result; } } diff --git a/java/src/IceGridGUI/Application/ListTreeNode.java b/java/src/IceGridGUI/Application/ListTreeNode.java index 90fec250fc8..4b5fa7f5370 100755 --- a/java/src/IceGridGUI/Application/ListTreeNode.java +++ b/java/src/IceGridGUI/Application/ListTreeNode.java @@ -22,214 +22,214 @@ abstract class ListTreeNode extends TreeNode { public Enumeration children() { - return new Enumeration() - { - public boolean hasMoreElements() - { - return _p.hasNext(); - } - - public Object nextElement() - { - return _p.next(); - } - - private java.util.Iterator _p = _children.iterator(); - }; + return new Enumeration() + { + public boolean hasMoreElements() + { + return _p.hasNext(); + } + + public Object nextElement() + { + return _p.next(); + } + + private java.util.Iterator _p = _children.iterator(); + }; } public boolean getAllowsChildren() { - return true; + return true; } public javax.swing.tree.TreeNode getChildAt(int childIndex) { - if(childIndex < 0) - { - throw new ArrayIndexOutOfBoundsException(childIndex); - } - else if(childIndex < _children.size()) - { - return (javax.swing.tree.TreeNode)_children.get(childIndex); - } - else - { - throw new ArrayIndexOutOfBoundsException(childIndex); - } + if(childIndex < 0) + { + throw new ArrayIndexOutOfBoundsException(childIndex); + } + else if(childIndex < _children.size()) + { + return (javax.swing.tree.TreeNode)_children.get(childIndex); + } + else + { + throw new ArrayIndexOutOfBoundsException(childIndex); + } } public int getChildCount() { - return _children.size(); + return _children.size(); } public int getIndex(javax.swing.tree.TreeNode node) { - return _children.indexOf(node); + return _children.indexOf(node); } public boolean isLeaf() { - return _children.isEmpty(); + return _children.isEmpty(); } public Editor getEditor() { - if(_editor == null) - { - _editor = new Editor(); - } - return _editor; + if(_editor == null) + { + _editor = new Editor(); + } + return _editor; } protected Editor createEditor() { - assert false; - return null; + assert false; + return null; } protected ListTreeNode(boolean brandNew, TreeNode parent, String id) { - super(parent, id); - _editable = new Editable(brandNew); + super(parent, id); + _editable = new Editable(brandNew); } void write(XMLWriter writer) throws java.io.IOException { - java.util.Iterator p = _children.iterator(); - while(p.hasNext()) - { - TreeNode node = (TreeNode)p.next(); - node.write(writer); - } + java.util.Iterator p = _children.iterator(); + while(p.hasNext()) + { + TreeNode node = (TreeNode)p.next(); + node.write(writer); + } } void insertChild(TreeNode child, boolean fireEvent) - throws UpdateFailedException + throws UpdateFailedException { - DefaultTreeModel treeModel = fireEvent ? - getRoot().getTreeModel() : null; - - if(!insertSortedChild(child, _children, treeModel)) - { - throw new UpdateFailedException(this, child.getId()); - } + DefaultTreeModel treeModel = fireEvent ? + getRoot().getTreeModel() : null; + + if(!insertSortedChild(child, _children, treeModel)) + { + throw new UpdateFailedException(this, child.getId()); + } } void insertChildren(java.util.List newChildren, boolean fireEvent) - throws UpdateFailedException + throws UpdateFailedException { - DefaultTreeModel treeModel = fireEvent ? - getRoot().getTreeModel() : null; - - String badChildId = insertSortedChildren(newChildren, _children, treeModel); - - if(badChildId != null) - { - throw new UpdateFailedException(this, badChildId); - } + DefaultTreeModel treeModel = fireEvent ? + getRoot().getTreeModel() : null; + + String badChildId = insertSortedChildren(newChildren, _children, treeModel); + + if(badChildId != null) + { + throw new UpdateFailedException(this, badChildId); + } } int removeChild(TreeNode child) { - int index = getIndex(child); - _children.remove(child); - - getRoot().getTreeModel().nodesWereRemoved(this, - new int[]{index}, - new Object[]{child}); - return index; + int index = getIndex(child); + _children.remove(child); + + getRoot().getTreeModel().nodesWereRemoved(this, + new int[]{index}, + new Object[]{child}); + return index; } void removeChildren(String[] childIds) { - removeSortedChildren(childIds, _children, getRoot().getTreeModel()); + removeSortedChildren(childIds, _children, getRoot().getTreeModel()); } void childrenChanged(java.util.List children) { - childrenChanged(children, getRoot().getTreeModel()); + childrenChanged(children, getRoot().getTreeModel()); } Editable getEditable() { - return _editable; + return _editable; } javax.swing.ComboBoxModel createComboBoxModel() { - return new ComboBoxModel(); + return new ComboBoxModel(); } javax.swing.ComboBoxModel createComboBoxModel(Object item) { - return new ComboBoxModel(item); + return new ComboBoxModel(item); } // // Adapts ListTreeNode to a ComboBoxModel // class ComboBoxModel extends javax.swing.AbstractListModel - implements javax.swing.ComboBoxModel - { - public Object getElementAt(int index) - { - if(_firstItem != null) - { - if(index == 0) - { - return _firstItem; - } - else - { - return getChildAt(index - 1); - } - } - else - { - return getChildAt(index); - } - } - - public int getSize() - { - if(_firstItem != null) - { - return getChildCount() + 1; - } - else - { - return getChildCount(); - } - } - - public Object getSelectedItem() - { - return _selectedItem; - } - - public void setSelectedItem(Object obj) - { - if(obj != _selectedItem) - { - _selectedItem = obj; - fireContentsChanged(this, -1, -1); - } - } - - ComboBoxModel(Object firstItem) - { - _firstItem = firstItem; - } - - ComboBoxModel() - { - _firstItem = null; - } - - private final Object _firstItem; - private Object _selectedItem; + implements javax.swing.ComboBoxModel + { + public Object getElementAt(int index) + { + if(_firstItem != null) + { + if(index == 0) + { + return _firstItem; + } + else + { + return getChildAt(index - 1); + } + } + else + { + return getChildAt(index); + } + } + + public int getSize() + { + if(_firstItem != null) + { + return getChildCount() + 1; + } + else + { + return getChildCount(); + } + } + + public Object getSelectedItem() + { + return _selectedItem; + } + + public void setSelectedItem(Object obj) + { + if(obj != _selectedItem) + { + _selectedItem = obj; + fireContentsChanged(this, -1, -1); + } + } + + ComboBoxModel(Object firstItem) + { + _firstItem = firstItem; + } + + ComboBoxModel() + { + _firstItem = null; + } + + private final Object _firstItem; + private Object _selectedItem; } protected final java.util.LinkedList _children = new java.util.LinkedList(); diff --git a/java/src/IceGridGUI/Application/MapField.java b/java/src/IceGridGUI/Application/MapField.java index f5bc7cf7f2d..0966b6f6e83 100755 --- a/java/src/IceGridGUI/Application/MapField.java +++ b/java/src/IceGridGUI/Application/MapField.java @@ -32,198 +32,198 @@ public class MapField extends JTable { public MapField(Editor editor, String headKey, String[] headValues, boolean substituteKey) { - _editor = editor; - _substituteKey = substituteKey; - _vectorSize = headValues.length + 1; - - _columnNames = new java.util.Vector(_vectorSize); - _columnNames.add(headKey); - 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) - { - if(_editable) - { - if(isEditing()) - { - getCellEditor().stopCellEditing(); - } - - for(;;) - { - int selectedRow = getSelectedRow(); - if(selectedRow == -1) - { - break; - } - else - { - _model.removeRow(selectedRow); - } - } - } - } - }; - getActionMap().put("delete", deleteRow); - getInputMap().put( - KeyStroke.getKeyStroke("DELETE"), "delete"); + _editor = editor; + _substituteKey = substituteKey; + _vectorSize = headValues.length + 1; + + _columnNames = new java.util.Vector(_vectorSize); + _columnNames.add(headKey); + 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) + { + if(_editable) + { + if(isEditing()) + { + getCellEditor().stopCellEditing(); + } + + for(;;) + { + int selectedRow = getSelectedRow(); + if(selectedRow == -1) + { + break; + } + else + { + _model.removeRow(selectedRow); + } + } + } + } + }; + 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); + this(editor, headKey, new String[]{headValue}, substituteKey); } public void set(java.util.Map map, Utils.Resolver resolver, - boolean editable) + boolean editable) { - _editable = editable; - - // - // Transform map into vector of vectors - // - java.util.Vector vector = new java.util.Vector(map.size()); - java.util.Iterator p = map.entrySet().iterator(); - while(p.hasNext()) - { - java.util.Vector row = new java.util.Vector(_vectorSize); - java.util.Map.Entry entry = (java.util.Map.Entry)p.next(); - - if(_substituteKey) - { - row.add(Utils.substitute((String)entry.getKey(), resolver)); - } - else - { - row.add((String)entry.getKey()); - } - - 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(_vectorSize); - for(int i = 0; i < _vectorSize; ++i) - { - newRow.add(""); - } - vector.add(newRow); - } - - _model = new DefaultTableModel(vector, _columnNames) - { - public boolean isCellEditable(int row, int column) - { - return _editable; - } - }; - - _model.addTableModelListener(new TableModelListener() - { - public void tableChanged(TableModelEvent e) - { - if(_editable) - { - Object lastKey = _model.getValueAt( - _model.getRowCount() - 1 , 0); - if(lastKey != null && !lastKey.equals("")) - { - Object[] emptyRow = new Object[_vectorSize]; - for(int i = 0; i < _vectorSize; ++i) - { - emptyRow[i] = ""; - } - _model.addRow(emptyRow); - } - _editor.updated(); - } - } - }); - setModel(_model); - - setCellSelectionEnabled(_editable); - setOpaque(_editable); - setPreferredScrollableViewportSize(getPreferredSize()); - - DefaultTableCellRenderer cr = (DefaultTableCellRenderer) - getDefaultRenderer(String.class); - cr.setOpaque(_editable); + _editable = editable; + + // + // Transform map into vector of vectors + // + java.util.Vector vector = new java.util.Vector(map.size()); + java.util.Iterator p = map.entrySet().iterator(); + while(p.hasNext()) + { + java.util.Vector row = new java.util.Vector(_vectorSize); + java.util.Map.Entry entry = (java.util.Map.Entry)p.next(); + + if(_substituteKey) + { + row.add(Utils.substitute((String)entry.getKey(), resolver)); + } + else + { + row.add((String)entry.getKey()); + } + + 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(_vectorSize); + for(int i = 0; i < _vectorSize; ++i) + { + newRow.add(""); + } + vector.add(newRow); + } + + _model = new DefaultTableModel(vector, _columnNames) + { + public boolean isCellEditable(int row, int column) + { + return _editable; + } + }; + + _model.addTableModelListener(new TableModelListener() + { + public void tableChanged(TableModelEvent e) + { + if(_editable) + { + Object lastKey = _model.getValueAt( + _model.getRowCount() - 1 , 0); + if(lastKey != null && !lastKey.equals("")) + { + Object[] emptyRow = new Object[_vectorSize]; + for(int i = 0; i < _vectorSize; ++i) + { + emptyRow[i] = ""; + } + _model.addRow(emptyRow); + } + _editor.updated(); + } + } + }); + setModel(_model); + + setCellSelectionEnabled(_editable); + setOpaque(_editable); + setPreferredScrollableViewportSize(getPreferredSize()); + + DefaultTableCellRenderer cr = (DefaultTableCellRenderer) + getDefaultRenderer(String.class); + cr.setOpaque(_editable); } public java.util.TreeMap get() { - assert _editable; - - if(isEditing()) - { - getCellEditor().stopCellEditing(); - } - java.util.Vector vector = _model.getDataVector(); - - java.util.TreeMap result = new java.util.TreeMap(); - - java.util.Iterator p = vector.iterator(); - while(p.hasNext()) - { - java.util.Vector row = (java.util.Vector)p.next(); - - // - // Eliminate rows with null or empty keys - // - String key = (String)row.elementAt(0); - if(key != null) - { - key = key.trim(); - if(!key.equals("")) - { - if(_vectorSize == 2) - { - 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); - } - } - } - } - return result; + assert _editable; + + if(isEditing()) + { + getCellEditor().stopCellEditing(); + } + java.util.Vector vector = _model.getDataVector(); + + java.util.TreeMap result = new java.util.TreeMap(); + + java.util.Iterator p = vector.iterator(); + while(p.hasNext()) + { + java.util.Vector row = (java.util.Vector)p.next(); + + // + // Eliminate rows with null or empty keys + // + String key = (String)row.elementAt(0); + if(key != null) + { + key = key.trim(); + if(!key.equals("")) + { + if(_vectorSize == 2) + { + 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); + } + } + } + } + return result; } private final int _vectorSize; diff --git a/java/src/IceGridGUI/Application/Node.java b/java/src/IceGridGUI/Application/Node.java index 6d82d32731a..1260456a360 100755 --- a/java/src/IceGridGUI/Application/Node.java +++ b/java/src/IceGridGUI/Application/Node.java @@ -30,437 +30,437 @@ class Node extends TreeNode implements PropertySetParent static public NodeDescriptor copyDescriptor(NodeDescriptor nd) { - NodeDescriptor copy = (NodeDescriptor)nd.clone(); - - copy.propertySets = PropertySets.copyDescriptors(copy.propertySets); - - - copy.serverInstances = new java.util.LinkedList(); - java.util.Iterator p = nd.serverInstances.iterator(); - while(p.hasNext()) - { - copy.serverInstances.add(ServerInstance.copyDescriptor( - (ServerInstanceDescriptor)p.next())); - } + NodeDescriptor copy = (NodeDescriptor)nd.clone(); + + copy.propertySets = PropertySets.copyDescriptors(copy.propertySets); + + + copy.serverInstances = new java.util.LinkedList(); + java.util.Iterator p = nd.serverInstances.iterator(); + while(p.hasNext()) + { + copy.serverInstances.add(ServerInstance.copyDescriptor( + (ServerInstanceDescriptor)p.next())); + } - copy.servers = new java.util.LinkedList(); - p = nd.servers.iterator(); - while(p.hasNext()) - { - copy.servers.add(PlainServer.copyDescriptor( - (ServerDescriptor)p.next())); - } - - return copy; + copy.servers = new java.util.LinkedList(); + p = nd.servers.iterator(); + while(p.hasNext()) + { + copy.servers.add(PlainServer.copyDescriptor( + (ServerDescriptor)p.next())); + } + + return copy; } public Enumeration children() { - return new Enumeration() - { - public boolean hasMoreElements() - { - if(!_p.hasNext()) - { - if(!_iteratingOverServers) - { - _p = _servers.iterator(); - _iteratingOverServers = true; - return _p.hasNext(); - } - return false; - } - return true; - } - - public Object nextElement() - { - return _p.next(); - } - - private java.util.Iterator _p = _propertySets.iterator(); - private boolean _iteratingOverServers = false; - }; + return new Enumeration() + { + public boolean hasMoreElements() + { + if(!_p.hasNext()) + { + if(!_iteratingOverServers) + { + _p = _servers.iterator(); + _iteratingOverServers = true; + return _p.hasNext(); + } + return false; + } + return true; + } + + public Object nextElement() + { + return _p.next(); + } + + private java.util.Iterator _p = _propertySets.iterator(); + private boolean _iteratingOverServers = false; + }; } public boolean getAllowsChildren() { - return true; + return true; } public javax.swing.tree.TreeNode getChildAt(int childIndex) { - if(childIndex < 0) - { - throw new ArrayIndexOutOfBoundsException(childIndex); - } - else if(childIndex < _propertySets.size()) - { - return (javax.swing.tree.TreeNode)_propertySets.get(childIndex); - } - else if(childIndex < (_propertySets.size() + _servers.size())) - { - return (javax.swing.tree.TreeNode)_servers.get( - childIndex - _propertySets.size()); - } - else - { - throw new ArrayIndexOutOfBoundsException(childIndex); - } + if(childIndex < 0) + { + throw new ArrayIndexOutOfBoundsException(childIndex); + } + else if(childIndex < _propertySets.size()) + { + return (javax.swing.tree.TreeNode)_propertySets.get(childIndex); + } + else if(childIndex < (_propertySets.size() + _servers.size())) + { + return (javax.swing.tree.TreeNode)_servers.get( + childIndex - _propertySets.size()); + } + else + { + throw new ArrayIndexOutOfBoundsException(childIndex); + } } public int getChildCount() { - return _propertySets.size() + _servers.size(); + return _propertySets.size() + _servers.size(); } public int getIndex(javax.swing.tree.TreeNode node) { - if(node instanceof PropertySet) - { - return _propertySets.indexOf(node); - } - else - { - int index = _servers.indexOf(node); - if(index != -1) - { - index += _propertySets.size(); - } - return index; - } + if(node instanceof PropertySet) + { + return _propertySets.indexOf(node); + } + else + { + int index = _servers.indexOf(node); + if(index != -1) + { + index += _propertySets.size(); + } + return index; + } } public boolean isLeaf() { - return _propertySets.isEmpty() && _servers.isEmpty(); + return _propertySets.isEmpty() && _servers.isEmpty(); } void removeServers(String[] childIds) { - removeSortedChildren(childIds, _servers, getRoot().getTreeModel()); + removeSortedChildren(childIds, _servers, getRoot().getTreeModel()); } void removePropertySets(String[] childIds) { - removeSortedChildren(childIds, _propertySets, getRoot().getTreeModel()); + removeSortedChildren(childIds, _propertySets, getRoot().getTreeModel()); } void childrenChanged(java.util.List children) { - childrenChanged(children, getRoot().getTreeModel()); + childrenChanged(children, getRoot().getTreeModel()); } Server findServer(String id) { - return (Server)find(id, _servers); + return (Server)find(id, _servers); } PropertySet findPropertySet(String id) { - return (PropertySet)find(id, _propertySets); + return (PropertySet)find(id, _propertySets); } void insertPropertySets(java.util.List newChildren, boolean fireEvent) - throws UpdateFailedException + throws UpdateFailedException { - DefaultTreeModel treeModel = fireEvent ? - getRoot().getTreeModel() : null; - - String badChildId = insertSortedChildren(newChildren, _propertySets, treeModel); - - if(badChildId != null) - { - throw new UpdateFailedException(this, badChildId); - } + DefaultTreeModel treeModel = fireEvent ? + getRoot().getTreeModel() : null; + + String badChildId = insertSortedChildren(newChildren, _propertySets, treeModel); + + if(badChildId != null) + { + throw new UpdateFailedException(this, badChildId); + } } void insertServer(TreeNode child, boolean fireEvent) - throws UpdateFailedException + throws UpdateFailedException { - DefaultTreeModel treeModel = fireEvent ? - getRoot().getTreeModel() : null; - - if(!insertSortedChild(child, _servers, treeModel)) - { - throw new UpdateFailedException(this, child.getId()); - } + DefaultTreeModel treeModel = fireEvent ? + getRoot().getTreeModel() : null; + + if(!insertSortedChild(child, _servers, treeModel)) + { + throw new UpdateFailedException(this, child.getId()); + } } void insertServers(java.util.List newChildren, boolean fireEvent) - throws UpdateFailedException + throws UpdateFailedException { - DefaultTreeModel treeModel = fireEvent ? - getRoot().getTreeModel() : null; - - String badChildId = insertSortedChildren(newChildren, _servers, treeModel); - - if(badChildId != null) - { - throw new UpdateFailedException(this, badChildId); - } + DefaultTreeModel treeModel = fireEvent ? + getRoot().getTreeModel() : null; + + String badChildId = insertSortedChildren(newChildren, _servers, treeModel); + + if(badChildId != null) + { + throw new UpdateFailedException(this, badChildId); + } } void removeServer(TreeNode child) { - int index = getIndex(child); - _servers.remove(child); - - getRoot().getTreeModel().nodesWereRemoved(this, - new int[]{index}, - new Object[]{child}); + int index = getIndex(child); + _servers.remove(child); + + getRoot().getTreeModel().nodesWereRemoved(this, + new int[]{index}, + new Object[]{child}); } public void insertPropertySet(PropertySet child, boolean fireEvent) - throws UpdateFailedException + throws UpdateFailedException { - DefaultTreeModel treeModel = fireEvent ? - getRoot().getTreeModel() : null; - - if(!insertSortedChild(child, _propertySets, treeModel)) - { - throw new UpdateFailedException(this, child.getId()); - } + DefaultTreeModel treeModel = fireEvent ? + getRoot().getTreeModel() : null; + + if(!insertSortedChild(child, _propertySets, treeModel)) + { + throw new UpdateFailedException(this, child.getId()); + } } public void removePropertySet(PropertySet child) { - int index = getIndex(child); - _propertySets.remove(child); - - getRoot().getTreeModel().nodesWereRemoved(this, - new int[]{index}, - new Object[]{child}); + int index = getIndex(child); + _propertySets.remove(child); + + getRoot().getTreeModel().nodesWereRemoved(this, + new int[]{index}, + new Object[]{child}); } public void removeDescriptor(String id) { - _descriptor.propertySets.remove(id); + _descriptor.propertySets.remove(id); } public Editable getEditable() { - return _editable; + return _editable; } public boolean[] getAvailableActions() { - boolean[] actions = new boolean[ACTION_COUNT]; - - actions[COPY] = !_ephemeral; - actions[DELETE] = true; - - Object descriptor = getCoordinator().getClipboard(); - if(descriptor != null) - { - actions[PASTE] = descriptor instanceof NodeDescriptor || - descriptor instanceof ServerInstanceDescriptor || - descriptor instanceof ServerDescriptor || - descriptor instanceof PropertySetDescriptor; - } - - if(!_ephemeral) - { - actions[SHOW_VARS] = true; - actions[SUBSTITUTE_VARS] = true; - actions[NEW_PROPERTY_SET] = true; - actions[NEW_SERVER] = true; - actions[NEW_SERVER_ICEBOX] = true; - actions[NEW_SERVER_FROM_TEMPLATE] = true; - } - return actions; + boolean[] actions = new boolean[ACTION_COUNT]; + + actions[COPY] = !_ephemeral; + actions[DELETE] = true; + + Object descriptor = getCoordinator().getClipboard(); + if(descriptor != null) + { + actions[PASTE] = descriptor instanceof NodeDescriptor || + descriptor instanceof ServerInstanceDescriptor || + descriptor instanceof ServerDescriptor || + descriptor instanceof PropertySetDescriptor; + } + + if(!_ephemeral) + { + actions[SHOW_VARS] = true; + actions[SUBSTITUTE_VARS] = true; + actions[NEW_PROPERTY_SET] = true; + actions[NEW_SERVER] = true; + actions[NEW_SERVER_ICEBOX] = true; + actions[NEW_SERVER_FROM_TEMPLATE] = true; + } + return actions; } public JPopupMenu getPopupMenu() { - ApplicationActions actions = getCoordinator().getActionsForPopup(); - if(_popup == null) - { - _popup = new JPopupMenu(); - _popup.add(actions.get(NEW_PROPERTY_SET)); - _popup.addSeparator(); - _popup.add(actions.get(NEW_SERVER)); - _popup.add(actions.get(NEW_SERVER_ICEBOX)); - _popup.add(actions.get(NEW_SERVER_FROM_TEMPLATE)); - } - actions.setTarget(this); - return _popup; + ApplicationActions actions = getCoordinator().getActionsForPopup(); + if(_popup == null) + { + _popup = new JPopupMenu(); + _popup.add(actions.get(NEW_PROPERTY_SET)); + _popup.addSeparator(); + _popup.add(actions.get(NEW_SERVER)); + _popup.add(actions.get(NEW_SERVER_ICEBOX)); + _popup.add(actions.get(NEW_SERVER_FROM_TEMPLATE)); + } + actions.setTarget(this); + return _popup; } public void copy() { - getCoordinator().setClipboard(copyDescriptor(_descriptor)); - getCoordinator().getActionsForMenu().get(PASTE).setEnabled(true); + getCoordinator().setClipboard(copyDescriptor(_descriptor)); + getCoordinator().getActionsForMenu().get(PASTE).setEnabled(true); } public void paste() { - Object descriptor = getCoordinator().getClipboard(); - if(descriptor instanceof NodeDescriptor) - { - ((TreeNode)_parent).paste(); - } - else if(descriptor instanceof PropertySetDescriptor) - { - newPropertySet(PropertySet.copyDescriptor((PropertySetDescriptor)descriptor)); - } - else if(descriptor instanceof ServerInstanceDescriptor) - { - newServer(ServerInstance.copyDescriptor((ServerInstanceDescriptor)descriptor)); - } - else - { - newServer(PlainServer.copyDescriptor(((ServerDescriptor)descriptor))); - } + Object descriptor = getCoordinator().getClipboard(); + if(descriptor instanceof NodeDescriptor) + { + ((TreeNode)_parent).paste(); + } + else if(descriptor instanceof PropertySetDescriptor) + { + newPropertySet(PropertySet.copyDescriptor((PropertySetDescriptor)descriptor)); + } + else if(descriptor instanceof ServerInstanceDescriptor) + { + newServer(ServerInstance.copyDescriptor((ServerInstanceDescriptor)descriptor)); + } + else + { + newServer(PlainServer.copyDescriptor(((ServerDescriptor)descriptor))); + } } public void newPropertySet() { - newPropertySet(new PropertySetDescriptor( - new String[0], new java.util.LinkedList())); + newPropertySet(new PropertySetDescriptor( + new String[0], new java.util.LinkedList())); } public void newServer() { - newServer(PlainServer.newServerDescriptor()); + newServer(PlainServer.newServerDescriptor()); } public void newServerIceBox() { - newServer(PlainServer.newIceBoxDescriptor()); + newServer(PlainServer.newIceBoxDescriptor()); } public void newServerFromTemplate() { - ServerInstanceDescriptor descriptor = - new ServerInstanceDescriptor("", - new java.util.HashMap(), - new PropertySetDescriptor(new String[0], new java.util.LinkedList()), - new java.util.HashMap()); + ServerInstanceDescriptor descriptor = + new ServerInstanceDescriptor("", + new java.util.HashMap(), + new PropertySetDescriptor(new String[0], new java.util.LinkedList()), + new java.util.HashMap()); - newServer(descriptor); + newServer(descriptor); } public void destroy() { - Nodes nodes = (Nodes)_parent; - if(_ephemeral) - { - nodes.removeChild(this); - } - else - { - nodes.removeChild(this); - nodes.removeDescriptor(_id); - nodes.getEditable().removeElement(_id, _editable, Node.class); - getRoot().updated(); - } + Nodes nodes = (Nodes)_parent; + if(_ephemeral) + { + nodes.removeChild(this); + } + else + { + nodes.removeChild(this); + nodes.removeDescriptor(_id); + nodes.getEditable().removeElement(_id, _editable, Node.class); + getRoot().updated(); + } } public Component getTreeCellRendererComponent( - JTree tree, - Object value, - boolean sel, - boolean expanded, - boolean leaf, - int row, - boolean hasFocus) + JTree tree, + Object value, + boolean sel, + boolean expanded, + boolean leaf, + int row, + boolean hasFocus) { - if(_cellRenderer == null) - { - // - // Initialization - // - _cellRenderer = new DefaultTreeCellRenderer(); - Icon nodeIcon = Utils.getIcon("/icons/16x16/node.png"); - _cellRenderer.setOpenIcon(nodeIcon); - _cellRenderer.setClosedIcon(nodeIcon); - } - - return _cellRenderer.getTreeCellRendererComponent( - tree, value, sel, expanded, leaf, row, hasFocus); + if(_cellRenderer == null) + { + // + // Initialization + // + _cellRenderer = new DefaultTreeCellRenderer(); + Icon nodeIcon = Utils.getIcon("/icons/16x16/node.png"); + _cellRenderer.setOpenIcon(nodeIcon); + _cellRenderer.setClosedIcon(nodeIcon); + } + + return _cellRenderer.getTreeCellRendererComponent( + tree, value, sel, expanded, leaf, row, hasFocus); } public Editor getEditor() { - if(_editor == null) - { - _editor = (NodeEditor)getRoot().getEditor(NodeEditor.class, this); - } - _editor.show(this); - return _editor; + if(_editor == null) + { + _editor = (NodeEditor)getRoot().getEditor(NodeEditor.class, this); + } + _editor.show(this); + return _editor; } protected Editor createEditor() { - return new NodeEditor(); + return new NodeEditor(); } public boolean isEphemeral() { - return _ephemeral; + return _ephemeral; } Object getDescriptor() { - return _descriptor; + return _descriptor; } NodeDescriptor saveDescriptor() { - return (NodeDescriptor)_descriptor.clone(); + return (NodeDescriptor)_descriptor.clone(); } void restoreDescriptor(NodeDescriptor copy) { - _descriptor.description = copy.description; - _descriptor.loadFactor = copy.loadFactor; - _descriptor.variables = copy.variables; + _descriptor.description = copy.description; + _descriptor.loadFactor = copy.loadFactor; + _descriptor.variables = copy.variables; } void write(XMLWriter writer) throws java.io.IOException { - if(!_ephemeral) - { - java.util.List attributes = new java.util.LinkedList(); - attributes.add(createAttribute("name", _id)); - if(_descriptor.loadFactor.length() > 0) - { - attributes.add(createAttribute("load-factor", - _descriptor.loadFactor)); - } - - writer.writeStartTag("node", attributes); - - if(_descriptor.description.length() > 0) - { - writer.writeElement("description", _descriptor.description); - } - writeVariables(writer, _descriptor.variables); - - - java.util.Iterator p = _propertySets.iterator(); - while(p.hasNext()) - { - PropertySet ps = (PropertySet)p.next(); - ps.write(writer); - } - - p = _servers.iterator(); - while(p.hasNext()) - { - TreeNode server = (TreeNode)p.next(); - server.write(writer); - } - writer.writeEndTag("node"); - } + if(!_ephemeral) + { + java.util.List attributes = new java.util.LinkedList(); + attributes.add(createAttribute("name", _id)); + if(_descriptor.loadFactor.length() > 0) + { + attributes.add(createAttribute("load-factor", + _descriptor.loadFactor)); + } + + writer.writeStartTag("node", attributes); + + if(_descriptor.description.length() > 0) + { + writer.writeElement("description", _descriptor.description); + } + writeVariables(writer, _descriptor.variables); + + + java.util.Iterator p = _propertySets.iterator(); + while(p.hasNext()) + { + PropertySet ps = (PropertySet)p.next(); + ps.write(writer); + } + + p = _servers.iterator(); + while(p.hasNext()) + { + TreeNode server = (TreeNode)p.next(); + server.write(writer); + } + writer.writeEndTag("node"); + } } static class Backup { - Utils.Resolver resolver; - java.util.List backupList; - java.util.List servers; + Utils.Resolver resolver; + java.util.List backupList; + java.util.List servers; } // @@ -471,854 +471,854 @@ class Node extends TreeNode implements PropertySetParent // Backup rebuild(java.util.List editables) - throws UpdateFailedException + throws UpdateFailedException { - Root root = getRoot(); - Backup backup = new Backup(); - backup.resolver = _resolver; - - _resolver = new Utils.Resolver(new java.util.Map[] - {_descriptor.variables, root.getVariables()}); - - _resolver.put("application", root.getId()); - _resolver.put("node", _id); - - backup.backupList = new java.util.Vector(); - backup.servers = (java.util.LinkedList)_servers.clone(); - - java.util.Iterator p = backup.servers.iterator(); - while(p.hasNext()) - { - Server server = (Server)p.next(); - try - { - backup.backupList.add(server.rebuild(editables)); - } - catch(UpdateFailedException e) - { - restore(backup); - throw e; - } - } - return backup; + Root root = getRoot(); + Backup backup = new Backup(); + backup.resolver = _resolver; + + _resolver = new Utils.Resolver(new java.util.Map[] + {_descriptor.variables, root.getVariables()}); + + _resolver.put("application", root.getId()); + _resolver.put("node", _id); + + backup.backupList = new java.util.Vector(); + backup.servers = (java.util.LinkedList)_servers.clone(); + + java.util.Iterator p = backup.servers.iterator(); + while(p.hasNext()) + { + Server server = (Server)p.next(); + try + { + backup.backupList.add(server.rebuild(editables)); + } + catch(UpdateFailedException e) + { + restore(backup); + throw e; + } + } + return backup; } void commit() { - _editable.commit(); - _origVariables = _descriptor.variables; - _origDescription = _descriptor.description; - _origLoadFactor = _descriptor.loadFactor; - - java.util.Iterator p = _propertySets.iterator(); - while(p.hasNext()) - { - PropertySet ps = (PropertySet)p.next(); - ps.commit(); - } - - p = _servers.iterator(); - while(p.hasNext()) - { - Server server = (Server)p.next(); - server.getEditable().commit(); - } + _editable.commit(); + _origVariables = _descriptor.variables; + _origDescription = _descriptor.description; + _origLoadFactor = _descriptor.loadFactor; + + java.util.Iterator p = _propertySets.iterator(); + while(p.hasNext()) + { + PropertySet ps = (PropertySet)p.next(); + ps.commit(); + } + + p = _servers.iterator(); + while(p.hasNext()) + { + Server server = (Server)p.next(); + server.getEditable().commit(); + } } void restore(Backup backup) - { - for(int i = backup.backupList.size() - 1; i >= 0; --i) - { - ((Server)backup.servers.get(i)).restore(backup.backupList.get(i)); - } - _resolver = backup.resolver; + { + for(int i = backup.backupList.size() - 1; i >= 0; --i) + { + ((Server)backup.servers.get(i)).restore(backup.backupList.get(i)); + } + _resolver = backup.resolver; } ServerInstance createServer(boolean brandNew, - ServerInstanceDescriptor instanceDescriptor) - throws UpdateFailedException + ServerInstanceDescriptor instanceDescriptor) + throws UpdateFailedException { - Root root = getRoot(); - - // - // Find template - // - TemplateDescriptor templateDescriptor = - root.findServerTemplateDescriptor(instanceDescriptor.template); - - assert templateDescriptor != null; - - ServerDescriptor serverDescriptor = - (ServerDescriptor)templateDescriptor.descriptor; - - assert serverDescriptor != null; - boolean isIceBox = serverDescriptor instanceof IceBoxDescriptor; - - // - // Build resolver - // - Utils.Resolver instanceResolver = - new Utils.Resolver(_resolver, - instanceDescriptor.parameterValues, - templateDescriptor.parameterDefaults); - - String serverId = instanceResolver.substitute(serverDescriptor.id); - instanceResolver.put("server", serverId); - - // - // Create server - // - return new ServerInstance(brandNew, this, serverId, - instanceResolver, instanceDescriptor, isIceBox); + Root root = getRoot(); + + // + // Find template + // + TemplateDescriptor templateDescriptor = + root.findServerTemplateDescriptor(instanceDescriptor.template); + + assert templateDescriptor != null; + + ServerDescriptor serverDescriptor = + (ServerDescriptor)templateDescriptor.descriptor; + + assert serverDescriptor != null; + boolean isIceBox = serverDescriptor instanceof IceBoxDescriptor; + + // + // Build resolver + // + Utils.Resolver instanceResolver = + new Utils.Resolver(_resolver, + instanceDescriptor.parameterValues, + templateDescriptor.parameterDefaults); + + String serverId = instanceResolver.substitute(serverDescriptor.id); + instanceResolver.put("server", serverId); + + // + // Create server + // + return new ServerInstance(brandNew, this, serverId, + instanceResolver, instanceDescriptor, isIceBox); } PlainServer createServer(boolean brandNew, ServerDescriptor serverDescriptor) - throws UpdateFailedException + throws UpdateFailedException { - // - // Build resolver - // - Utils.Resolver instanceResolver = new Utils.Resolver(_resolver); - String serverId = instanceResolver.substitute(serverDescriptor.id); - instanceResolver.put("server", serverId); - - // - // Create server - // - return new PlainServer(brandNew, this, serverId, - instanceResolver, serverDescriptor); + // + // Build resolver + // + Utils.Resolver instanceResolver = new Utils.Resolver(_resolver); + String serverId = instanceResolver.substitute(serverDescriptor.id); + instanceResolver.put("server", serverId); + + // + // Create server + // + return new PlainServer(brandNew, this, serverId, + instanceResolver, serverDescriptor); } NodeUpdateDescriptor getUpdate() { - NodeUpdateDescriptor update = new NodeUpdateDescriptor(); - update.name = _id; - - // - // First: property sets - // - if(_editable.isNew()) - { - update.removePropertySets = new String[0]; - update.propertySets = _descriptor.propertySets; - } - else - { - update.removePropertySets = _editable.removedElements(PropertySet.class); - update.propertySets = new java.util.HashMap(); - - java.util.Iterator p = _propertySets.iterator(); - while(p.hasNext()) - { - PropertySet ps = (PropertySet)p.next(); - if(ps.getEditable().isNew() || ps.getEditable().isModified()) - { - update.propertySets.put(ps.getId(), ps.getDescriptor()); - } - } - } - - // - // Then: servers - // - if(_editable.isNew()) - { - update.removeServers = new String[0]; - } - else - { - update.removeServers = _editable.removedElements(Server.class); - } - - update.serverInstances = new java.util.LinkedList(); - update.servers = new java.util.LinkedList(); - - java.util.Iterator p = _servers.iterator(); - while(p.hasNext()) - { - Server server = (Server)p.next(); - if(_editable.isNew() || server.getEditable().isModified() - || server.getEditable().isNew()) - { - if(server instanceof PlainServer) - { - update.servers.add(server.getDescriptor()); - } - else - { - update.serverInstances.add(server.getDescriptor()); - } - } - } - - // - // Anything in this update? - // - if(!_editable.isNew() && !_editable.isModified() - && update.removePropertySets.length == 0 - && update.propertySets.size() == 0 - && update.removeServers.length == 0 - && update.servers.size() == 0 - && update.serverInstances.size() == 0) - { - return null; - } - - if(_editable.isNew()) - { - update.variables = _descriptor.variables; - update.removeVariables = new String[0]; - update.loadFactor = new IceGrid.BoxedString(_descriptor.loadFactor); - } - else - { - if(!_descriptor.description.equals(_origDescription)) - { - update.description = new IceGrid.BoxedString(_descriptor.description); - } - - if(!_descriptor.loadFactor.equals(_origLoadFactor)) - { - update.loadFactor = new IceGrid.BoxedString(_descriptor.loadFactor); - } - - // - // Diff variables (TODO: avoid duplication with same code in Root) - // - update.variables = new java.util.TreeMap(_descriptor.variables); - java.util.List removeVariables = new java.util.LinkedList(); - - p = _origVariables.entrySet().iterator(); - while(p.hasNext()) - { - java.util.Map.Entry entry = (java.util.Map.Entry)p.next(); - Object key = entry.getKey(); - Object newValue = update.variables.get(key); - if(newValue == null) - { - removeVariables.add(key); - } - else - { - Object value = entry.getValue(); - if(newValue.equals(value)) - { - update.variables.remove(key); - } - } - } - update.removeVariables = (String[])removeVariables.toArray(new String[0]); - } - - return update; + NodeUpdateDescriptor update = new NodeUpdateDescriptor(); + update.name = _id; + + // + // First: property sets + // + if(_editable.isNew()) + { + update.removePropertySets = new String[0]; + update.propertySets = _descriptor.propertySets; + } + else + { + update.removePropertySets = _editable.removedElements(PropertySet.class); + update.propertySets = new java.util.HashMap(); + + java.util.Iterator p = _propertySets.iterator(); + while(p.hasNext()) + { + PropertySet ps = (PropertySet)p.next(); + if(ps.getEditable().isNew() || ps.getEditable().isModified()) + { + update.propertySets.put(ps.getId(), ps.getDescriptor()); + } + } + } + + // + // Then: servers + // + if(_editable.isNew()) + { + update.removeServers = new String[0]; + } + else + { + update.removeServers = _editable.removedElements(Server.class); + } + + update.serverInstances = new java.util.LinkedList(); + update.servers = new java.util.LinkedList(); + + java.util.Iterator p = _servers.iterator(); + while(p.hasNext()) + { + Server server = (Server)p.next(); + if(_editable.isNew() || server.getEditable().isModified() + || server.getEditable().isNew()) + { + if(server instanceof PlainServer) + { + update.servers.add(server.getDescriptor()); + } + else + { + update.serverInstances.add(server.getDescriptor()); + } + } + } + + // + // Anything in this update? + // + if(!_editable.isNew() && !_editable.isModified() + && update.removePropertySets.length == 0 + && update.propertySets.size() == 0 + && update.removeServers.length == 0 + && update.servers.size() == 0 + && update.serverInstances.size() == 0) + { + return null; + } + + if(_editable.isNew()) + { + update.variables = _descriptor.variables; + update.removeVariables = new String[0]; + update.loadFactor = new IceGrid.BoxedString(_descriptor.loadFactor); + } + else + { + if(!_descriptor.description.equals(_origDescription)) + { + update.description = new IceGrid.BoxedString(_descriptor.description); + } + + if(!_descriptor.loadFactor.equals(_origLoadFactor)) + { + update.loadFactor = new IceGrid.BoxedString(_descriptor.loadFactor); + } + + // + // Diff variables (TODO: avoid duplication with same code in Root) + // + update.variables = new java.util.TreeMap(_descriptor.variables); + java.util.List removeVariables = new java.util.LinkedList(); + + p = _origVariables.entrySet().iterator(); + while(p.hasNext()) + { + java.util.Map.Entry entry = (java.util.Map.Entry)p.next(); + Object key = entry.getKey(); + Object newValue = update.variables.get(key); + if(newValue == null) + { + removeVariables.add(key); + } + else + { + Object value = entry.getValue(); + if(newValue.equals(value)) + { + update.variables.remove(key); + } + } + } + update.removeVariables = (String[])removeVariables.toArray(new String[0]); + } + + return update; } void update(NodeUpdateDescriptor update, - java.util.Set serverTemplates, java.util.Set serviceTemplates) - throws UpdateFailedException + java.util.Set serverTemplates, java.util.Set serviceTemplates) + throws UpdateFailedException { - Root root = getRoot(); - - java.util.Vector newServers = new java.util.Vector(); - java.util.Vector updatedServers = new java.util.Vector(); - - if(update != null) - { - // - // Description - // - if(update.description != null) - { - _descriptor.description = update.description.value; - _origDescription = _descriptor.description; - } - - // - // Load factor - // - if(update.loadFactor != null) - { - _descriptor.loadFactor = update.loadFactor.value; - _origLoadFactor = _descriptor.loadFactor; - } - - // - // Variables - // - for(int i = 0; i < update.removeVariables.length; ++i) - { - _descriptor.variables.remove(update.removeVariables[i]); - } - _descriptor.variables.putAll(update.variables); - - - // - // Property Sets - // - removePropertySets(update.removePropertySets); - for(int i = 0; i < update.removePropertySets.length; ++i) - { - _descriptor.propertySets.remove(update.removePropertySets[i]); - } - - java.util.Vector newPropertySets = new java.util.Vector(); - java.util.Vector updatedPropertySets = new java.util.Vector(); - - java.util.Iterator p = update.propertySets.entrySet().iterator(); - while(p.hasNext()) - { - java.util.Map.Entry entry = (java.util.Map.Entry)p.next(); - - String id = (String)entry.getKey(); - PropertySetDescriptor psd = (PropertySetDescriptor)entry.getValue(); - - // - // Lookup named property set - // - PropertySet ps = findPropertySet(id); - if(ps != null) - { - ps.rebuild(psd); - updatedPropertySets.add(ps); - } - else - { - ps = new PropertySet(false, this, id, id, psd); - newPropertySets.add(ps); - _descriptor.propertySets.put(id, psd); - } - } - childrenChanged(updatedPropertySets); - insertPropertySets(newPropertySets, true); - - - // - // Update _descriptor - // - for(int i = 0; i < update.removeServers.length; ++i) - { - Server server = findServer(update.removeServers[i]); - removeDescriptor(server); - } - - // - // One big set of removes - // - removeServers(update.removeServers); - - // - // One big set of updates, followed by inserts - // - p = update.serverInstances.iterator(); - while(p.hasNext()) - { - ServerInstanceDescriptor instanceDescriptor = - (ServerInstanceDescriptor)p.next(); - - // - // Find template - // - TemplateDescriptor templateDescriptor = - root.findServerTemplateDescriptor(instanceDescriptor.template); - - assert templateDescriptor != null; - - ServerDescriptor serverDescriptor = - (ServerDescriptor)templateDescriptor.descriptor; - - assert serverDescriptor != null; - - // - // Build resolver - // - Utils.Resolver instanceResolver = - new Utils.Resolver(_resolver, - instanceDescriptor.parameterValues, - templateDescriptor.parameterDefaults); - - String serverId = instanceResolver.substitute(serverDescriptor.id); - instanceResolver.put("server", serverId); - - // - // Lookup servers - // - ServerInstance server = (ServerInstance)findServer(serverId); - if(server != null) - { - removeDescriptor(server); - server.rebuild(instanceResolver, instanceDescriptor, - serverDescriptor instanceof IceBoxDescriptor); - updatedServers.add(server); - _descriptor.serverInstances.add(instanceDescriptor); - } - else - { - server = new ServerInstance(false, this, serverId, instanceResolver, - instanceDescriptor, - serverDescriptor instanceof IceBoxDescriptor); - newServers.add(server); - _descriptor.serverInstances.add(instanceDescriptor); - } - } - - // - // Plain servers - // - p = update.servers.iterator(); - while(p.hasNext()) - { - ServerDescriptor serverDescriptor = (ServerDescriptor)p.next(); - - // - // Build resolver - // - Utils.Resolver instanceResolver = new Utils.Resolver(_resolver); - String serverId = instanceResolver.substitute(serverDescriptor.id); - instanceResolver.put("server", serverId); - - // - // Lookup server - // - PlainServer server = (PlainServer)findServer(serverId); - - if(server != null) - { - removeDescriptor(server); - server.rebuild(instanceResolver, serverDescriptor); - updatedServers.add(server); - _descriptor.servers.add(serverDescriptor); - } - else - { - server = new PlainServer(false, this, serverId, instanceResolver, - serverDescriptor); - newServers.add(server); - _descriptor.servers.add(serverDescriptor); - } - } - } - - // - // Find servers affected by template updates - // - java.util.Set serverSet = new java.util.HashSet(); - - java.util.Iterator p = serverTemplates.iterator(); - while(p.hasNext()) - { - String template = (String)p.next(); - java.util.List serverInstances = findServerInstances(template); - java.util.Iterator q = serverInstances.iterator(); - while(q.hasNext()) - { - ServerInstance server = (ServerInstance)q.next(); - if(!updatedServers.contains(server) && !newServers.contains(server)) - { - serverSet.add(server); - } - } - } - - // - // Servers affected by service-template updates - // - p = serviceTemplates.iterator(); - while(p.hasNext()) - { - java.util.List serviceInstances = - findServiceInstances((String)p.next()); - java.util.Iterator q = serviceInstances.iterator(); - while(q.hasNext()) - { - ServiceInstance service = (ServiceInstance)q.next(); - Server server = (Server)service.getParent().getParent(); - if(!updatedServers.contains(server) && !newServers.contains(server)) - { - serverSet.add(server); - } - } - } - - // - // Rebuild these servers - // - p = serverSet.iterator(); - while(p.hasNext()) - { - Server server = (Server)p.next(); - - if(server instanceof PlainServer) - { - PlainServer ps = (PlainServer)server; - ServerDescriptor serverDescriptor = (ServerDescriptor)ps.getDescriptor(); - Utils.Resolver instanceResolver = new Utils.Resolver(_resolver); - - String serverId = instanceResolver.substitute(serverDescriptor.id); - assert serverId.equals(ps.getId()); - - ps.rebuild(instanceResolver, serverDescriptor); - } - else - { - ServerInstance si = (ServerInstance)server; - ServerInstanceDescriptor instanceDescriptor = (ServerInstanceDescriptor)si.getDescriptor(); - - TemplateDescriptor templateDescriptor = - root.findServerTemplateDescriptor(instanceDescriptor.template); - assert templateDescriptor != null; - - ServerDescriptor serverDescriptor = (ServerDescriptor)templateDescriptor.descriptor; - assert serverDescriptor != null; - - Utils.Resolver instanceResolver = - new Utils.Resolver(_resolver, - instanceDescriptor.parameterValues, - templateDescriptor.parameterDefaults); - - String serverId = instanceResolver.substitute(serverDescriptor.id); - assert serverId.equals(si.getId()); - - si.rebuild(instanceResolver, instanceDescriptor, - serverDescriptor instanceof IceBoxDescriptor); - } - updatedServers.add(server); - } - - childrenChanged(updatedServers); - insertServers(newServers, true); + Root root = getRoot(); + + java.util.Vector newServers = new java.util.Vector(); + java.util.Vector updatedServers = new java.util.Vector(); + + if(update != null) + { + // + // Description + // + if(update.description != null) + { + _descriptor.description = update.description.value; + _origDescription = _descriptor.description; + } + + // + // Load factor + // + if(update.loadFactor != null) + { + _descriptor.loadFactor = update.loadFactor.value; + _origLoadFactor = _descriptor.loadFactor; + } + + // + // Variables + // + for(int i = 0; i < update.removeVariables.length; ++i) + { + _descriptor.variables.remove(update.removeVariables[i]); + } + _descriptor.variables.putAll(update.variables); + + + // + // Property Sets + // + removePropertySets(update.removePropertySets); + for(int i = 0; i < update.removePropertySets.length; ++i) + { + _descriptor.propertySets.remove(update.removePropertySets[i]); + } + + java.util.Vector newPropertySets = new java.util.Vector(); + java.util.Vector updatedPropertySets = new java.util.Vector(); + + java.util.Iterator p = update.propertySets.entrySet().iterator(); + while(p.hasNext()) + { + java.util.Map.Entry entry = (java.util.Map.Entry)p.next(); + + String id = (String)entry.getKey(); + PropertySetDescriptor psd = (PropertySetDescriptor)entry.getValue(); + + // + // Lookup named property set + // + PropertySet ps = findPropertySet(id); + if(ps != null) + { + ps.rebuild(psd); + updatedPropertySets.add(ps); + } + else + { + ps = new PropertySet(false, this, id, id, psd); + newPropertySets.add(ps); + _descriptor.propertySets.put(id, psd); + } + } + childrenChanged(updatedPropertySets); + insertPropertySets(newPropertySets, true); + + + // + // Update _descriptor + // + for(int i = 0; i < update.removeServers.length; ++i) + { + Server server = findServer(update.removeServers[i]); + removeDescriptor(server); + } + + // + // One big set of removes + // + removeServers(update.removeServers); + + // + // One big set of updates, followed by inserts + // + p = update.serverInstances.iterator(); + while(p.hasNext()) + { + ServerInstanceDescriptor instanceDescriptor = + (ServerInstanceDescriptor)p.next(); + + // + // Find template + // + TemplateDescriptor templateDescriptor = + root.findServerTemplateDescriptor(instanceDescriptor.template); + + assert templateDescriptor != null; + + ServerDescriptor serverDescriptor = + (ServerDescriptor)templateDescriptor.descriptor; + + assert serverDescriptor != null; + + // + // Build resolver + // + Utils.Resolver instanceResolver = + new Utils.Resolver(_resolver, + instanceDescriptor.parameterValues, + templateDescriptor.parameterDefaults); + + String serverId = instanceResolver.substitute(serverDescriptor.id); + instanceResolver.put("server", serverId); + + // + // Lookup servers + // + ServerInstance server = (ServerInstance)findServer(serverId); + if(server != null) + { + removeDescriptor(server); + server.rebuild(instanceResolver, instanceDescriptor, + serverDescriptor instanceof IceBoxDescriptor); + updatedServers.add(server); + _descriptor.serverInstances.add(instanceDescriptor); + } + else + { + server = new ServerInstance(false, this, serverId, instanceResolver, + instanceDescriptor, + serverDescriptor instanceof IceBoxDescriptor); + newServers.add(server); + _descriptor.serverInstances.add(instanceDescriptor); + } + } + + // + // Plain servers + // + p = update.servers.iterator(); + while(p.hasNext()) + { + ServerDescriptor serverDescriptor = (ServerDescriptor)p.next(); + + // + // Build resolver + // + Utils.Resolver instanceResolver = new Utils.Resolver(_resolver); + String serverId = instanceResolver.substitute(serverDescriptor.id); + instanceResolver.put("server", serverId); + + // + // Lookup server + // + PlainServer server = (PlainServer)findServer(serverId); + + if(server != null) + { + removeDescriptor(server); + server.rebuild(instanceResolver, serverDescriptor); + updatedServers.add(server); + _descriptor.servers.add(serverDescriptor); + } + else + { + server = new PlainServer(false, this, serverId, instanceResolver, + serverDescriptor); + newServers.add(server); + _descriptor.servers.add(serverDescriptor); + } + } + } + + // + // Find servers affected by template updates + // + java.util.Set serverSet = new java.util.HashSet(); + + java.util.Iterator p = serverTemplates.iterator(); + while(p.hasNext()) + { + String template = (String)p.next(); + java.util.List serverInstances = findServerInstances(template); + java.util.Iterator q = serverInstances.iterator(); + while(q.hasNext()) + { + ServerInstance server = (ServerInstance)q.next(); + if(!updatedServers.contains(server) && !newServers.contains(server)) + { + serverSet.add(server); + } + } + } + + // + // Servers affected by service-template updates + // + p = serviceTemplates.iterator(); + while(p.hasNext()) + { + java.util.List serviceInstances = + findServiceInstances((String)p.next()); + java.util.Iterator q = serviceInstances.iterator(); + while(q.hasNext()) + { + ServiceInstance service = (ServiceInstance)q.next(); + Server server = (Server)service.getParent().getParent(); + if(!updatedServers.contains(server) && !newServers.contains(server)) + { + serverSet.add(server); + } + } + } + + // + // Rebuild these servers + // + p = serverSet.iterator(); + while(p.hasNext()) + { + Server server = (Server)p.next(); + + if(server instanceof PlainServer) + { + PlainServer ps = (PlainServer)server; + ServerDescriptor serverDescriptor = (ServerDescriptor)ps.getDescriptor(); + Utils.Resolver instanceResolver = new Utils.Resolver(_resolver); + + String serverId = instanceResolver.substitute(serverDescriptor.id); + assert serverId.equals(ps.getId()); + + ps.rebuild(instanceResolver, serverDescriptor); + } + else + { + ServerInstance si = (ServerInstance)server; + ServerInstanceDescriptor instanceDescriptor = (ServerInstanceDescriptor)si.getDescriptor(); + + TemplateDescriptor templateDescriptor = + root.findServerTemplateDescriptor(instanceDescriptor.template); + assert templateDescriptor != null; + + ServerDescriptor serverDescriptor = (ServerDescriptor)templateDescriptor.descriptor; + assert serverDescriptor != null; + + Utils.Resolver instanceResolver = + new Utils.Resolver(_resolver, + instanceDescriptor.parameterValues, + templateDescriptor.parameterDefaults); + + String serverId = instanceResolver.substitute(serverDescriptor.id); + assert serverId.equals(si.getId()); + + si.rebuild(instanceResolver, instanceDescriptor, + serverDescriptor instanceof IceBoxDescriptor); + } + updatedServers.add(server); + } + + childrenChanged(updatedServers); + insertServers(newServers, true); } Node(boolean brandNew, TreeNode parent, String nodeName, NodeDescriptor descriptor) - throws UpdateFailedException + throws UpdateFailedException { - super(parent, nodeName); - _editable = new Editable(brandNew); - - _ephemeral = false; - _descriptor = descriptor; - - _origVariables = _descriptor.variables; - _origDescription = _descriptor.description; - _origLoadFactor = _descriptor.loadFactor; - - _resolver = new Utils.Resolver(new java.util.Map[] - {_descriptor.variables, getRoot().getVariables()}); - - _resolver.put("application", getRoot().getId()); - _resolver.put("node", _id); - - // - // Property Sets - // - java.util.Iterator p = _descriptor.propertySets.entrySet().iterator(); - while(p.hasNext()) - { - java.util.Map.Entry entry = (java.util.Map.Entry)p.next(); - String id = (String)entry.getKey(); - insertPropertySet(new PropertySet(false, this, - id, id, - (PropertySetDescriptor)entry.getValue()), - false); - } - - // - // Template instances - // - p = _descriptor.serverInstances.iterator(); - while(p.hasNext()) - { - ServerInstanceDescriptor instanceDescriptor = - (ServerInstanceDescriptor)p.next(); - - insertServer(createServer(false, instanceDescriptor), false); - } - - // - // Plain servers - // - p = _descriptor.servers.iterator(); - while(p.hasNext()) - { - ServerDescriptor serverDescriptor = (ServerDescriptor)p.next(); - insertServer(createServer(false, serverDescriptor), false); - } + super(parent, nodeName); + _editable = new Editable(brandNew); + + _ephemeral = false; + _descriptor = descriptor; + + _origVariables = _descriptor.variables; + _origDescription = _descriptor.description; + _origLoadFactor = _descriptor.loadFactor; + + _resolver = new Utils.Resolver(new java.util.Map[] + {_descriptor.variables, getRoot().getVariables()}); + + _resolver.put("application", getRoot().getId()); + _resolver.put("node", _id); + + // + // Property Sets + // + java.util.Iterator p = _descriptor.propertySets.entrySet().iterator(); + while(p.hasNext()) + { + java.util.Map.Entry entry = (java.util.Map.Entry)p.next(); + String id = (String)entry.getKey(); + insertPropertySet(new PropertySet(false, this, + id, id, + (PropertySetDescriptor)entry.getValue()), + false); + } + + // + // Template instances + // + p = _descriptor.serverInstances.iterator(); + while(p.hasNext()) + { + ServerInstanceDescriptor instanceDescriptor = + (ServerInstanceDescriptor)p.next(); + + insertServer(createServer(false, instanceDescriptor), false); + } + + // + // Plain servers + // + p = _descriptor.servers.iterator(); + while(p.hasNext()) + { + ServerDescriptor serverDescriptor = (ServerDescriptor)p.next(); + insertServer(createServer(false, serverDescriptor), false); + } } Node(TreeNode parent, String nodeName, NodeDescriptor descriptor) { - super(parent, nodeName); - _editable = new Editable(false); - _ephemeral = true; - _descriptor = descriptor; + super(parent, nodeName); + _editable = new Editable(false); + _ephemeral = true; + _descriptor = descriptor; } java.util.List findServerInstances(String template) { - java.util.List result = new java.util.LinkedList(); - java.util.Iterator p = _servers.iterator(); - while(p.hasNext()) - { - Server server = (Server)p.next(); - - if(server instanceof ServerInstance) - { - ServerInstanceDescriptor instanceDescriptor - = (ServerInstanceDescriptor)server.getDescriptor(); - - if(instanceDescriptor.template.equals(template)) - { - result.add(server); - } - } - } - return result; + java.util.List result = new java.util.LinkedList(); + java.util.Iterator p = _servers.iterator(); + while(p.hasNext()) + { + Server server = (Server)p.next(); + + if(server instanceof ServerInstance) + { + ServerInstanceDescriptor instanceDescriptor + = (ServerInstanceDescriptor)server.getDescriptor(); + + if(instanceDescriptor.template.equals(template)) + { + result.add(server); + } + } + } + return result; } void removeServerInstances(String template) { - java.util.List toRemove = new java.util.LinkedList(); - - java.util.Iterator p = _servers.iterator(); - while(p.hasNext()) - { - Server server = (Server)p.next(); - - if(server instanceof ServerInstance) - { - ServerInstanceDescriptor instanceDescriptor - = (ServerInstanceDescriptor)server.getDescriptor(); - - if(instanceDescriptor.template.equals(template)) - { - // - // Remove instance - // - removeDescriptor(instanceDescriptor); - String id = ((TreeNode)server).getId(); - _editable.removeElement(id, server.getEditable(), Server.class); - toRemove.add(id); - } - } - } - - if(toRemove.size() > 0) - { - removeServers((String[])toRemove.toArray(new String[0])); - } + java.util.List toRemove = new java.util.LinkedList(); + + java.util.Iterator p = _servers.iterator(); + while(p.hasNext()) + { + Server server = (Server)p.next(); + + if(server instanceof ServerInstance) + { + ServerInstanceDescriptor instanceDescriptor + = (ServerInstanceDescriptor)server.getDescriptor(); + + if(instanceDescriptor.template.equals(template)) + { + // + // Remove instance + // + removeDescriptor(instanceDescriptor); + String id = ((TreeNode)server).getId(); + _editable.removeElement(id, server.getEditable(), Server.class); + toRemove.add(id); + } + } + } + + if(toRemove.size() > 0) + { + removeServers((String[])toRemove.toArray(new String[0])); + } } java.util.List findServiceInstances(String template) { - java.util.List result = new java.util.LinkedList(); - java.util.Iterator p = _servers.iterator(); - while(p.hasNext()) - { - Object o = p.next(); - if(o instanceof PlainServer) - { - result.addAll(((PlainServer)o).findServiceInstances(template)); - } - } - return result; + java.util.List result = new java.util.LinkedList(); + java.util.Iterator p = _servers.iterator(); + while(p.hasNext()) + { + Object o = p.next(); + if(o instanceof PlainServer) + { + result.addAll(((PlainServer)o).findServiceInstances(template)); + } + } + return result; } void removeServiceInstances(String template) - { - java.util.Iterator p = _servers.iterator(); - while(p.hasNext()) - { - Object o = p.next(); - if(o instanceof PlainServer) - { - ((PlainServer)o).removeServiceInstances(template); - } - } + { + java.util.Iterator p = _servers.iterator(); + while(p.hasNext()) + { + Object o = p.next(); + if(o instanceof PlainServer) + { + ((PlainServer)o).removeServiceInstances(template); + } + } } Utils.Resolver getResolver() { - return _resolver; + return _resolver; } public void tryAdd(String id, PropertySetDescriptor descriptor) - throws UpdateFailedException + throws UpdateFailedException { - insertPropertySet(new PropertySet(true, this, id, id, descriptor), - true); - _descriptor.propertySets.put(id, descriptor); + insertPropertySet(new PropertySet(true, this, id, id, descriptor), + true); + _descriptor.propertySets.put(id, descriptor); } public void tryRename(String oldId, String oldId2, String newId) - throws UpdateFailedException + throws UpdateFailedException { - PropertySet oldChild = findPropertySet(oldId); - assert oldChild != null; - removePropertySet(oldChild); - PropertySetDescriptor descriptor = (PropertySetDescriptor)oldChild.getDescriptor(); - - try - { - insertPropertySet( - new PropertySet(true, this, newId, newId, descriptor), - true); - } - catch(UpdateFailedException ex) - { - try - { - insertPropertySet(oldChild, true); - } - catch(UpdateFailedException ufe) - { - assert false; - } - throw ex; - } - - _editable.removeElement(oldId, oldChild.getEditable(), PropertySet.class); - _descriptor.propertySets.remove(oldId); - _descriptor.propertySets.put(newId, descriptor); + PropertySet oldChild = findPropertySet(oldId); + assert oldChild != null; + removePropertySet(oldChild); + PropertySetDescriptor descriptor = (PropertySetDescriptor)oldChild.getDescriptor(); + + try + { + insertPropertySet( + new PropertySet(true, this, newId, newId, descriptor), + true); + } + catch(UpdateFailedException ex) + { + try + { + insertPropertySet(oldChild, true); + } + catch(UpdateFailedException ufe) + { + assert false; + } + throw ex; + } + + _editable.removeElement(oldId, oldChild.getEditable(), PropertySet.class); + _descriptor.propertySets.remove(oldId); + _descriptor.propertySets.put(newId, descriptor); } void tryAdd(ServerInstanceDescriptor instanceDescriptor, - boolean addDescriptor) throws UpdateFailedException + boolean addDescriptor) throws UpdateFailedException { - insertServer(createServer(true, instanceDescriptor), true); + insertServer(createServer(true, instanceDescriptor), true); - if(addDescriptor) - { - _descriptor.serverInstances.add(instanceDescriptor); - } + if(addDescriptor) + { + _descriptor.serverInstances.add(instanceDescriptor); + } } void tryAdd(ServerDescriptor serverDescriptor, - boolean addDescriptor) throws UpdateFailedException + boolean addDescriptor) throws UpdateFailedException { - insertServer(createServer(true, serverDescriptor), true); + insertServer(createServer(true, serverDescriptor), true); - if(addDescriptor) - { - _descriptor.servers.add(serverDescriptor); - } + if(addDescriptor) + { + _descriptor.servers.add(serverDescriptor); + } } void removeDescriptor(Server server) { - if(server instanceof ServerInstance) - { - removeDescriptor((ServerInstanceDescriptor)server.getDescriptor()); - } - else - { - removeDescriptor((ServerDescriptor)server.getDescriptor()); - } + if(server instanceof ServerInstance) + { + removeDescriptor((ServerInstanceDescriptor)server.getDescriptor()); + } + else + { + removeDescriptor((ServerDescriptor)server.getDescriptor()); + } } void removeDescriptor(ServerDescriptor sd) { - // - // A straight remove uses equals(), which is not the desired behavior - // - java.util.Iterator p = _descriptor.servers.iterator(); - while(p.hasNext()) - { - if(sd == p.next()) - { - p.remove(); - break; - } - } + // + // A straight remove uses equals(), which is not the desired behavior + // + java.util.Iterator p = _descriptor.servers.iterator(); + while(p.hasNext()) + { + if(sd == p.next()) + { + p.remove(); + break; + } + } } void removeDescriptor(ServerInstanceDescriptor sd) { - // - // A straight remove uses equals(), which is not the desired behavior - // - java.util.Iterator p = _descriptor.serverInstances.iterator(); - while(p.hasNext()) - { - if(sd == p.next()) - { - p.remove(); - break; - } - } + // + // A straight remove uses equals(), which is not the desired behavior + // + java.util.Iterator p = _descriptor.serverInstances.iterator(); + while(p.hasNext()) + { + if(sd == p.next()) + { + p.remove(); + break; + } + } } private void newPropertySet(PropertySetDescriptor descriptor) { - String id = makeNewChildId("PropertySet"); - - PropertySet ps = new PropertySet(this, id, descriptor); - try - { - insertPropertySet(ps, true); - } - catch(UpdateFailedException e) - { - assert false; - } - getRoot().setSelectedNode(ps); + String id = makeNewChildId("PropertySet"); + + PropertySet ps = new PropertySet(this, id, descriptor); + try + { + insertPropertySet(ps, true); + } + catch(UpdateFailedException e) + { + assert false; + } + getRoot().setSelectedNode(ps); } private void newServer(ServerDescriptor descriptor) { - descriptor.id = makeNewChildId(descriptor.id); - - PlainServer server = new PlainServer(this, descriptor.id, descriptor); - try - { - insertServer(server, true); - } - catch(UpdateFailedException e) - { - assert false; - } - getRoot().setSelectedNode(server); + descriptor.id = makeNewChildId(descriptor.id); + + PlainServer server = new PlainServer(this, descriptor.id, descriptor); + try + { + insertServer(server, true); + } + catch(UpdateFailedException e) + { + assert false; + } + getRoot().setSelectedNode(server); } private void newServer(ServerInstanceDescriptor descriptor) { - String id = makeNewChildId("NewServer"); - Root root = getRoot(); - - // - // Make sure descriptor.template points to a real template - // - ServerTemplate t = root.findServerTemplate(descriptor.template); - - if(t == null) - { - if(root.getServerTemplates().getChildCount() == 0) - { - JOptionPane.showMessageDialog( - getCoordinator().getMainFrame(), - "You need to create a server template before you can create a server from a template.", - "No Server Template", - JOptionPane.INFORMATION_MESSAGE); - return; - } - - t = (ServerTemplate)root.getServerTemplates().getChildAt(0); - descriptor.template = t.getId(); - descriptor.parameterValues = new java.util.HashMap(); - } - - ServerInstance server = new ServerInstance(this, id, descriptor); - try - { - insertServer(server, true); - } - catch(UpdateFailedException e) - { - assert false; - } - root.setSelectedNode(server); + String id = makeNewChildId("NewServer"); + Root root = getRoot(); + + // + // Make sure descriptor.template points to a real template + // + ServerTemplate t = root.findServerTemplate(descriptor.template); + + if(t == null) + { + if(root.getServerTemplates().getChildCount() == 0) + { + JOptionPane.showMessageDialog( + getCoordinator().getMainFrame(), + "You need to create a server template before you can create a server from a template.", + "No Server Template", + JOptionPane.INFORMATION_MESSAGE); + return; + } + + t = (ServerTemplate)root.getServerTemplates().getChildAt(0); + descriptor.template = t.getId(); + descriptor.parameterValues = new java.util.HashMap(); + } + + ServerInstance server = new ServerInstance(this, id, descriptor); + try + { + insertServer(server, true); + } + catch(UpdateFailedException e) + { + assert false; + } + root.setSelectedNode(server); } private NodeDescriptor _descriptor; diff --git a/java/src/IceGridGUI/Application/NodeEditor.java b/java/src/IceGridGUI/Application/NodeEditor.java index 78ecd6392b3..b8ca49a9302 100755 --- a/java/src/IceGridGUI/Application/NodeEditor.java +++ b/java/src/IceGridGUI/Application/NodeEditor.java @@ -32,232 +32,232 @@ class NodeEditor extends Editor { protected void buildPropertiesPanel() { - super.buildPropertiesPanel(); - _propertiesPanel.setName("Node Properties"); + super.buildPropertiesPanel(); + _propertiesPanel.setName("Node Properties"); } protected boolean applyUpdate(boolean refresh) { - Root root = _target.getRoot(); + Root root = _target.getRoot(); - root.disableSelectionListener(); - try - { - if(_target.isEphemeral()) - { - Nodes nodes = (Nodes)_target.getParent(); - writeDescriptor(); - NodeDescriptor descriptor = (NodeDescriptor)_target.getDescriptor(); - _target.destroy(); // just removes the child - try - { - nodes.tryAdd(_name.getText().trim(), descriptor); - } - catch(UpdateFailedException e) - { - // - // Add back ephemeral child - // - try - { - nodes.insertChild(_target, true); - } - catch(UpdateFailedException die) - { - assert false; - } - root.setSelectedNode(_target); + root.disableSelectionListener(); + try + { + if(_target.isEphemeral()) + { + Nodes nodes = (Nodes)_target.getParent(); + writeDescriptor(); + NodeDescriptor descriptor = (NodeDescriptor)_target.getDescriptor(); + _target.destroy(); // just removes the child + try + { + nodes.tryAdd(_name.getText().trim(), descriptor); + } + catch(UpdateFailedException e) + { + // + // Add back ephemeral child + // + try + { + nodes.insertChild(_target, true); + } + catch(UpdateFailedException die) + { + assert false; + } + root.setSelectedNode(_target); - JOptionPane.showMessageDialog( - root.getCoordinator().getMainFrame(), - e.toString(), - "Apply failed", - JOptionPane.ERROR_MESSAGE); - return false; - } - - // - // Success - // - _target = nodes.findChildWithDescriptor(descriptor); - root.updated(); - if(refresh) - { - root.setSelectedNode(_target); - } - } - else if(isSimpleUpdate()) - { - writeDescriptor(); - root.updated(); - ((Node)_target).getEditable().markModified(); - } - else - { - // - // Save to be able to rollback - // - NodeDescriptor savedDescriptor = ((Node)_target).saveDescriptor(); - writeDescriptor(); - - // - // Rebuild node; don't need the backup - // since it's just one node - // - java.util.List editables = new java.util.LinkedList(); - - try - { - ((Node)_target).rebuild(editables); - } - catch(UpdateFailedException e) - { - ((Node)_target).restoreDescriptor(savedDescriptor); - JOptionPane.showMessageDialog( - root.getCoordinator().getMainFrame(), - e.toString(), - "Apply failed", - JOptionPane.ERROR_MESSAGE); - return false; - } - - java.util.Iterator p = editables.iterator(); - while(p.hasNext()) - { - Editable editable = (Editable)p.next(); - editable.markModified(); - } + JOptionPane.showMessageDialog( + root.getCoordinator().getMainFrame(), + e.toString(), + "Apply failed", + JOptionPane.ERROR_MESSAGE); + return false; + } + + // + // Success + // + _target = nodes.findChildWithDescriptor(descriptor); + root.updated(); + if(refresh) + { + root.setSelectedNode(_target); + } + } + else if(isSimpleUpdate()) + { + writeDescriptor(); + root.updated(); + ((Node)_target).getEditable().markModified(); + } + else + { + // + // Save to be able to rollback + // + NodeDescriptor savedDescriptor = ((Node)_target).saveDescriptor(); + writeDescriptor(); + + // + // Rebuild node; don't need the backup + // since it's just one node + // + java.util.List editables = new java.util.LinkedList(); + + try + { + ((Node)_target).rebuild(editables); + } + catch(UpdateFailedException e) + { + ((Node)_target).restoreDescriptor(savedDescriptor); + JOptionPane.showMessageDialog( + root.getCoordinator().getMainFrame(), + e.toString(), + "Apply failed", + JOptionPane.ERROR_MESSAGE); + return false; + } + + java.util.Iterator p = editables.iterator(); + while(p.hasNext()) + { + Editable editable = (Editable)p.next(); + editable.markModified(); + } - ((Node)_target).getEditable().markModified(); - root.updated(); - } + ((Node)_target).getEditable().markModified(); + root.updated(); + } - if(refresh) - { - root.getCoordinator().getCurrentTab().showNode(_target); - } - _applyButton.setEnabled(false); - _discardButton.setEnabled(false); - return true; - } - finally - { - root.enableSelectionListener(); - } + if(refresh) + { + root.getCoordinator().getCurrentTab().showNode(_target); + } + _applyButton.setEnabled(false); + _discardButton.setEnabled(false); + return true; + } + finally + { + root.enableSelectionListener(); + } } Utils.Resolver getDetailResolver() { - if(_target.getCoordinator().substitute()) - { - return _target.getResolver(); - } - else - { - return null; - } + if(_target.getCoordinator().substitute()) + { + return _target.getResolver(); + } + else + { + return null; + } } NodeEditor() { - _name.getDocument().addDocumentListener(_updateListener); - _name.setToolTipText("Must match the IceGrid.Node.Name property of the desired icegridnode process"); - _description.getDocument().addDocumentListener(_updateListener); - _description.setToolTipText("An optional description for this node"); - - // - // Variables - // - _variables = new MapField(this, "Name", "Value", false); + _name.getDocument().addDocumentListener(_updateListener); + _name.setToolTipText("Must match the IceGrid.Node.Name property of the desired icegridnode process"); + _description.getDocument().addDocumentListener(_updateListener); + _description.setToolTipText("An optional description for this node"); + + // + // Variables + // + _variables = new MapField(this, "Name", "Value", false); - _loadFactor.getDocument().addDocumentListener(_updateListener); - _loadFactor.setToolTipText("<html>A floating point value.<br>" - + "When not specified, IceGrid uses 1.0 on all platforms<br>" - + "except Windows where it uses 1.0 divided by <i>number of processors</i>.<html>"); + _loadFactor.getDocument().addDocumentListener(_updateListener); + _loadFactor.setToolTipText("<html>A floating point value.<br>" + + "When not specified, IceGrid uses 1.0 on all platforms<br>" + + "except Windows where it uses 1.0 divided by <i>number of processors</i>.<html>"); } protected void appendProperties(DefaultFormBuilder builder) { - builder.append("Name"); - builder.append(_name, 3); - builder.nextLine(); + builder.append("Name"); + builder.append(_name, 3); + builder.nextLine(); - builder.append("Description"); - builder.nextLine(); - builder.append(""); - builder.nextRow(-2); - CellConstraints cc = new CellConstraints(); - JScrollPane scrollPane = new JScrollPane(_description); - builder.add(scrollPane, - cc.xywh(builder.getColumn(), builder.getRow(), 3, 3)); - builder.nextRow(2); - builder.nextLine(); + builder.append("Description"); + builder.nextLine(); + builder.append(""); + builder.nextRow(-2); + CellConstraints cc = new CellConstraints(); + JScrollPane scrollPane = new JScrollPane(_description); + builder.add(scrollPane, + cc.xywh(builder.getColumn(), builder.getRow(), 3, 3)); + builder.nextRow(2); + builder.nextLine(); - builder.append("Variables"); - builder.nextLine(); - builder.append(""); - builder.nextLine(); - builder.append(""); - builder.nextLine(); - builder.append(""); - builder.nextRow(-6); - scrollPane = new JScrollPane(_variables); - builder.add(scrollPane, - cc.xywh(builder.getColumn(), builder.getRow(), 3, 7)); - builder.nextRow(6); - builder.nextLine(); + builder.append("Variables"); + builder.nextLine(); + builder.append(""); + builder.nextLine(); + builder.append(""); + builder.nextLine(); + builder.append(""); + builder.nextRow(-6); + scrollPane = new JScrollPane(_variables); + builder.add(scrollPane, + cc.xywh(builder.getColumn(), builder.getRow(), 3, 7)); + builder.nextRow(6); + builder.nextLine(); - builder.append("Load Factor"); - builder.append(_loadFactor, 3); - builder.nextLine(); + builder.append("Load Factor"); + builder.append(_loadFactor, 3); + builder.nextLine(); } boolean isSimpleUpdate() { - NodeDescriptor descriptor = (NodeDescriptor)_target.getDescriptor(); - return (_variables.get().equals(descriptor.variables)); + NodeDescriptor descriptor = (NodeDescriptor)_target.getDescriptor(); + return (_variables.get().equals(descriptor.variables)); } void writeDescriptor() { - NodeDescriptor descriptor = (NodeDescriptor)_target.getDescriptor(); - descriptor.description = _description.getText(); - descriptor.variables = _variables.get(); - descriptor.loadFactor = _loadFactor.getText().trim(); - } + NodeDescriptor descriptor = (NodeDescriptor)_target.getDescriptor(); + descriptor.description = _description.getText(); + descriptor.variables = _variables.get(); + descriptor.loadFactor = _loadFactor.getText().trim(); + } protected boolean validate() { - return check(new String[]{"Name", _name.getText().trim()}); + return check(new String[]{"Name", _name.getText().trim()}); } void show(Node node) { - detectUpdates(false); - _target = node; - - Utils.Resolver resolver = getDetailResolver(); - boolean isEditable = (resolver == null); + detectUpdates(false); + _target = node; + + Utils.Resolver resolver = getDetailResolver(); + boolean isEditable = (resolver == null); - _name.setText(_target.getId()); - _name.setEditable(_target.isEphemeral()); - - NodeDescriptor descriptor = (NodeDescriptor)_target.getDescriptor(); + _name.setText(_target.getId()); + _name.setEditable(_target.isEphemeral()); + + NodeDescriptor descriptor = (NodeDescriptor)_target.getDescriptor(); - _description.setText( - Utils.substitute(descriptor.description, resolver)); - _description.setEditable(isEditable); - _description.setOpaque(isEditable); + _description.setText( + Utils.substitute(descriptor.description, resolver)); + _description.setEditable(isEditable); + _description.setOpaque(isEditable); - _variables.set(descriptor.variables, resolver, isEditable); + _variables.set(descriptor.variables, resolver, isEditable); - _loadFactor.setText( - Utils.substitute(descriptor.loadFactor, resolver)); - _loadFactor.setEditable(isEditable); + _loadFactor.setText( + Utils.substitute(descriptor.loadFactor, resolver)); + _loadFactor.setEditable(isEditable); - _applyButton.setEnabled(node.isEphemeral()); - _discardButton.setEnabled(node.isEphemeral()); - detectUpdates(true); + _applyButton.setEnabled(node.isEphemeral()); + _discardButton.setEnabled(node.isEphemeral()); + detectUpdates(true); } private JTextField _name = new JTextField(20); diff --git a/java/src/IceGridGUI/Application/Nodes.java b/java/src/IceGridGUI/Application/Nodes.java index c8c021d5ce1..5da3acee87d 100755 --- a/java/src/IceGridGUI/Application/Nodes.java +++ b/java/src/IceGridGUI/Application/Nodes.java @@ -22,75 +22,75 @@ class Nodes extends ListTreeNode static public java.util.Map copyDescriptors(java.util.Map descriptors) { - java.util.Map copy = new java.util.HashMap(); - java.util.Iterator p = descriptors.entrySet().iterator(); - while(p.hasNext()) - { - java.util.Map.Entry entry = (java.util.Map.Entry)p.next(); - - copy.put(entry.getKey(), - Node.copyDescriptor( - (NodeDescriptor)entry.getValue())); - } - return copy; + java.util.Map copy = new java.util.HashMap(); + java.util.Iterator p = descriptors.entrySet().iterator(); + while(p.hasNext()) + { + java.util.Map.Entry entry = (java.util.Map.Entry)p.next(); + + copy.put(entry.getKey(), + Node.copyDescriptor( + (NodeDescriptor)entry.getValue())); + } + return copy; } public boolean[] getAvailableActions() { - boolean[] actions = new boolean[ACTION_COUNT]; + boolean[] actions = new boolean[ACTION_COUNT]; - Object descriptor = getCoordinator().getClipboard(); - if(descriptor != null) - { - actions[PASTE] = descriptor instanceof NodeDescriptor; - } - actions[NEW_NODE] = true; - return actions; + Object descriptor = getCoordinator().getClipboard(); + if(descriptor != null) + { + actions[PASTE] = descriptor instanceof NodeDescriptor; + } + actions[NEW_NODE] = true; + return actions; } public JPopupMenu getPopupMenu() { - ApplicationActions actions = getCoordinator().getActionsForPopup(); - if(_popup == null) - { - _popup = new JPopupMenu(); - _popup.add(actions.get(NEW_NODE)); - } - actions.setTarget(this); - return _popup; + ApplicationActions actions = getCoordinator().getActionsForPopup(); + if(_popup == null) + { + _popup = new JPopupMenu(); + _popup.add(actions.get(NEW_NODE)); + } + actions.setTarget(this); + return _popup; } public void paste() { - Object descriptor = getCoordinator().getClipboard(); - newNode(Node.copyDescriptor((NodeDescriptor)descriptor)); + Object descriptor = getCoordinator().getClipboard(); + newNode(Node.copyDescriptor((NodeDescriptor)descriptor)); } public void newNode() { - newNode(new NodeDescriptor( - new java.util.TreeMap(), - new java.util.LinkedList(), - new java.util.LinkedList(), - "", - "", - new java.util.HashMap())); + newNode(new NodeDescriptor( + new java.util.TreeMap(), + new java.util.LinkedList(), + new java.util.LinkedList(), + "", + "", + new java.util.HashMap())); } Nodes(TreeNode parent, java.util.Map descriptors) - throws UpdateFailedException + throws UpdateFailedException { - super(false, parent, "Nodes"); - _descriptors = descriptors; + super(false, parent, "Nodes"); + _descriptors = descriptors; - java.util.Iterator p = _descriptors.entrySet().iterator(); - while(p.hasNext()) - { - java.util.Map.Entry entry = (java.util.Map.Entry)p.next(); - String nodeName = (String)entry.getKey(); - NodeDescriptor nodeDescriptor = (NodeDescriptor)entry.getValue(); - insertChild(new Node(false, this, nodeName, nodeDescriptor), false); - } + java.util.Iterator p = _descriptors.entrySet().iterator(); + while(p.hasNext()) + { + java.util.Map.Entry entry = (java.util.Map.Entry)p.next(); + String nodeName = (String)entry.getKey(); + NodeDescriptor nodeDescriptor = (NodeDescriptor)entry.getValue(); + insertChild(new Node(false, this, nodeName, nodeDescriptor), false); + } } // @@ -99,216 +99,216 @@ class Nodes extends ListTreeNode // void rebuild() throws UpdateFailedException { - java.util.List backupList = new java.util.Vector(); - java.util.List editables = new java.util.LinkedList(); + java.util.List backupList = new java.util.Vector(); + java.util.List editables = new java.util.LinkedList(); - java.util.Iterator p = _children.iterator(); - while(p.hasNext()) - { - Node node = (Node)p.next(); - try - { - backupList.add(node.rebuild(editables)); - } - catch(UpdateFailedException e) - { - for(int i = backupList.size() - 1; i >= 0; --i) - { - ((Node)_children.get(i)).restore((Node.Backup)backupList.get(i)); - } - throw e; - } - } + java.util.Iterator p = _children.iterator(); + while(p.hasNext()) + { + Node node = (Node)p.next(); + try + { + backupList.add(node.rebuild(editables)); + } + catch(UpdateFailedException e) + { + for(int i = backupList.size() - 1; i >= 0; --i) + { + ((Node)_children.get(i)).restore((Node.Backup)backupList.get(i)); + } + throw e; + } + } - // - // Success - // - p = editables.iterator(); - while(p.hasNext()) - { - Editable editable = (Editable)p.next(); - editable.markModified(); - } + // + // Success + // + p = editables.iterator(); + while(p.hasNext()) + { + Editable editable = (Editable)p.next(); + editable.markModified(); + } } void commit() { - _editable.commit(); - java.util.Iterator p = _children.iterator(); - while(p.hasNext()) - { - Node node = (Node)p.next(); - node.commit(); - } + _editable.commit(); + java.util.Iterator p = _children.iterator(); + while(p.hasNext()) + { + Node node = (Node)p.next(); + node.commit(); + } } java.util.LinkedList getUpdates() { - java.util.LinkedList updates = new java.util.LinkedList(); - java.util.Iterator p = _children.iterator(); - while(p.hasNext()) - { - Node node = (Node)p.next(); - NodeUpdateDescriptor d = node.getUpdate(); - if(d != null) - { - updates.add(d); - } - } - return updates; + java.util.LinkedList updates = new java.util.LinkedList(); + java.util.Iterator p = _children.iterator(); + while(p.hasNext()) + { + Node node = (Node)p.next(); + NodeUpdateDescriptor d = node.getUpdate(); + if(d != null) + { + updates.add(d); + } + } + return updates; } void removeServerInstances(String templateId) { - java.util.Iterator p = _children.iterator(); - while(p.hasNext()) - { - Node node = (Node)p.next(); - node.removeServerInstances(templateId); - } + java.util.Iterator p = _children.iterator(); + while(p.hasNext()) + { + Node node = (Node)p.next(); + node.removeServerInstances(templateId); + } } java.util.List findServiceInstances(String template) { - java.util.List result = new java.util.LinkedList(); - java.util.Iterator p = _children.iterator(); - while(p.hasNext()) - { - Node node = (Node)p.next(); - result.addAll(node.findServiceInstances(template)); - } - return result; + java.util.List result = new java.util.LinkedList(); + java.util.Iterator p = _children.iterator(); + while(p.hasNext()) + { + Node node = (Node)p.next(); + result.addAll(node.findServiceInstances(template)); + } + return result; } void removeServiceInstances(String templateId) { - java.util.Iterator p = _children.iterator(); - while(p.hasNext()) - { - Node node = (Node)p.next(); - node.removeServiceInstances(templateId); - } + java.util.Iterator p = _children.iterator(); + while(p.hasNext()) + { + Node node = (Node)p.next(); + node.removeServiceInstances(templateId); + } } void update(java.util.List updates, String[] removeNodes, - java.util.Set serverTemplates, java.util.Set serviceTemplates) - throws UpdateFailedException + java.util.Set serverTemplates, java.util.Set serviceTemplates) + throws UpdateFailedException { - Root root = getRoot(); + Root root = getRoot(); - // - // Note: _descriptors has already the nodes removed but - // needs to get the updated and new NodeDescriptors - // + // + // Note: _descriptors has already the nodes removed but + // needs to get the updated and new NodeDescriptors + // - // - // One big set of removes - // - removeChildren(removeNodes); - - // - // One big set of updates, followed by inserts - // - java.util.Vector newChildren = new java.util.Vector(); - java.util.Set updatedNodes = new java.util.HashSet(); - - java.util.Iterator p = updates.iterator(); - while(p.hasNext()) - { - NodeUpdateDescriptor update = (NodeUpdateDescriptor)p.next(); - Node node = findNode(update.name); + // + // One big set of removes + // + removeChildren(removeNodes); + + // + // One big set of updates, followed by inserts + // + java.util.Vector newChildren = new java.util.Vector(); + java.util.Set updatedNodes = new java.util.HashSet(); + + java.util.Iterator p = updates.iterator(); + while(p.hasNext()) + { + NodeUpdateDescriptor update = (NodeUpdateDescriptor)p.next(); + Node node = findNode(update.name); - if(node == null) - { - NodeDescriptor nodeDescriptor = new NodeDescriptor(update.variables, - update.serverInstances, - update.servers, - update.loadFactor.value, - update.description.value, - new java.util.HashMap()); - _descriptors.put(update.name, nodeDescriptor); - node = new Node(false, this, update.name, nodeDescriptor); - newChildren.add(node); - } - else - { - node.update(update, serverTemplates, serviceTemplates); - updatedNodes.add(node); - } - } + if(node == null) + { + NodeDescriptor nodeDescriptor = new NodeDescriptor(update.variables, + update.serverInstances, + update.servers, + update.loadFactor.value, + update.description.value, + new java.util.HashMap()); + _descriptors.put(update.name, nodeDescriptor); + node = new Node(false, this, update.name, nodeDescriptor); + newChildren.add(node); + } + else + { + node.update(update, serverTemplates, serviceTemplates); + updatedNodes.add(node); + } + } - // - // Some nodes are only affected by template updates - // - p = _children.iterator(); - while(p.hasNext()) - { - Node node = (Node)p.next(); - if(!updatedNodes.contains(node)) - { - node.update(null, serverTemplates, serviceTemplates); - } - } - - insertChildren(newChildren, true); + // + // Some nodes are only affected by template updates + // + p = _children.iterator(); + while(p.hasNext()) + { + Node node = (Node)p.next(); + if(!updatedNodes.contains(node)) + { + node.update(null, serverTemplates, serviceTemplates); + } + } + + insertChildren(newChildren, true); } Node findNode(String nodeName) { - return (Node)findChild(nodeName); + return (Node)findChild(nodeName); } java.util.List findServerInstances(String template) { - java.util.List result = new java.util.LinkedList(); - java.util.Iterator p = _children.iterator(); - while(p.hasNext()) - { - Node node = (Node)p.next(); - result.addAll(node.findServerInstances(template)); - } - return result; + java.util.List result = new java.util.LinkedList(); + java.util.Iterator p = _children.iterator(); + while(p.hasNext()) + { + Node node = (Node)p.next(); + result.addAll(node.findServerInstances(template)); + } + return result; } void addDescriptor(String nodeName, NodeDescriptor descriptor) { - _descriptors.put(nodeName, descriptor); + _descriptors.put(nodeName, descriptor); } void removeDescriptor(String nodeName) { - _descriptors.remove(nodeName); + _descriptors.remove(nodeName); } Object getDescriptor() { - return _descriptors; + return _descriptors; } void tryAdd(String nodeName, NodeDescriptor descriptor) - throws UpdateFailedException + throws UpdateFailedException { - Node node = new Node(true, this, nodeName, descriptor); - insertChild(node, true); - _descriptors.put(nodeName, descriptor); + Node node = new Node(true, this, nodeName, descriptor); + insertChild(node, true); + _descriptors.put(nodeName, descriptor); } private void newNode(NodeDescriptor descriptor) { - String name = makeNewChildId("NewNode"); - - Node node = new Node(this, name, descriptor); - try - { - insertChild(node, true); - } - catch(UpdateFailedException e) - { - assert false; - } - getRoot().setSelectedNode(node); + String name = makeNewChildId("NewNode"); + + Node node = new Node(this, name, descriptor); + try + { + insertChild(node, true); + } + catch(UpdateFailedException e) + { + assert false; + } + getRoot().setSelectedNode(node); } diff --git a/java/src/IceGridGUI/Application/ParameterValuesField.java b/java/src/IceGridGUI/Application/ParameterValuesField.java index fbb4cc25b56..8976e461996 100755 --- a/java/src/IceGridGUI/Application/ParameterValuesField.java +++ b/java/src/IceGridGUI/Application/ParameterValuesField.java @@ -35,155 +35,155 @@ public class ParameterValuesField extends JTable { public ParameterValuesField(Editor editor) { - _editor = editor; + _editor = editor; - _columnNames = new java.util.Vector(2); - _columnNames.add("Name"); - _columnNames.add("Value"); + _columnNames = new java.util.Vector(2); + _columnNames.add("Name"); + _columnNames.add("Value"); - _useDefaultCombo.setEditable(true); - _notSetCombo.setEditable(true); + _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) + 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); + // + // 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; + 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) + int column) { - if(column == 1) - { - return _hasDefault[row] ? _useDefaultEditor : _notSetEditor; - } - else - { - return super.getCellEditor(row, 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"; - } - }; + { + public String toString() + { + return "Use default"; + } + }; private static final Object _notSet = new Object() - { - public String toString() - { - return "Not set"; - } - }; + { + public String toString() + { + return "Not set"; + } + }; private JComboBox _useDefaultCombo = new JComboBox( - new Object[]{_useDefault}); + new Object[]{_useDefault}); private JComboBox _notSetCombo = new JComboBox( - new Object[]{_notSet}); + new Object[]{_notSet}); private TableCellEditor _useDefaultEditor = new DefaultCellEditor(_useDefaultCombo); private TableCellEditor _notSetEditor = new DefaultCellEditor(_notSetCombo); diff --git a/java/src/IceGridGUI/Application/ParametersField.java b/java/src/IceGridGUI/Application/ParametersField.java index c491d28ddd4..aa82c146a81 100755 --- a/java/src/IceGridGUI/Application/ParametersField.java +++ b/java/src/IceGridGUI/Application/ParametersField.java @@ -35,155 +35,155 @@ public class ParametersField extends JTable { public ParametersField(Editor editor) { - _editor = editor; - - _columnNames = new java.util.Vector(2); - _columnNames.add("Name"); - _columnNames.add("Default value"); - - JComboBox comboBox = new JComboBox( - new Object[]{_noDefault}); - comboBox.setEditable(true); - _cellEditor = new DefaultCellEditor(comboBox); - - Action deleteRow = new AbstractAction("Delete selected row(s)") - { - public void actionPerformed(ActionEvent e) - { - if(isEditing()) - { - getCellEditor().stopCellEditing(); - } - - for(;;) - { - int selectedRow = getSelectedRow(); - if(selectedRow == -1) - { - break; - } - else - { - _model.removeRow(selectedRow); - } - } - } - }; - getActionMap().put("delete", deleteRow); - getInputMap().put( - KeyStroke.getKeyStroke("DELETE"), "delete"); + _editor = editor; + + _columnNames = new java.util.Vector(2); + _columnNames.add("Name"); + _columnNames.add("Default value"); + + JComboBox comboBox = new JComboBox( + new Object[]{_noDefault}); + comboBox.setEditable(true); + _cellEditor = new DefaultCellEditor(comboBox); + + Action deleteRow = new AbstractAction("Delete selected row(s)") + { + public void actionPerformed(ActionEvent e) + { + if(isEditing()) + { + getCellEditor().stopCellEditing(); + } + + for(;;) + { + int selectedRow = getSelectedRow(); + if(selectedRow == -1) + { + break; + } + else + { + _model.removeRow(selectedRow); + } + } + } + }; + getActionMap().put("delete", deleteRow); + getInputMap().put( + KeyStroke.getKeyStroke("DELETE"), "delete"); } public void set(java.util.List names, java.util.Map values) { - // - // Transform map into vector of vectors - // - java.util.Vector vector = new java.util.Vector(names.size()); - java.util.Iterator p = names.iterator(); - while(p.hasNext()) - { - java.util.Vector row = new java.util.Vector(2); - String name = (String)p.next(); - - row.add(name); - - Object val = values.get(name); - if(val == null) - { - row.add(_noDefault); - } - else - { - row.add(val); - } - vector.add(row); - } - - - 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) - { - Object lastKey = _model.getValueAt( - _model.getRowCount() - 1 , 0); - if(lastKey != null && !lastKey.equals("")) - { - _model.addRow(new Object[]{"", _noDefault}); - } - - _editor.updated(); - } - }); - setModel(_model); - - TableColumn valColumn = getColumnModel().getColumn(1); - valColumn.setCellEditor(_cellEditor); - - setPreferredScrollableViewportSize(getPreferredSize()); + // + // Transform map into vector of vectors + // + java.util.Vector vector = new java.util.Vector(names.size()); + java.util.Iterator p = names.iterator(); + while(p.hasNext()) + { + java.util.Vector row = new java.util.Vector(2); + String name = (String)p.next(); + + row.add(name); + + Object val = values.get(name); + if(val == null) + { + row.add(_noDefault); + } + else + { + row.add(val); + } + vector.add(row); + } + + + 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) + { + Object lastKey = _model.getValueAt( + _model.getRowCount() - 1 , 0); + if(lastKey != null && !lastKey.equals("")) + { + _model.addRow(new Object[]{"", _noDefault}); + } + + _editor.updated(); + } + }); + setModel(_model); + + TableColumn valColumn = getColumnModel().getColumn(1); + valColumn.setCellEditor(_cellEditor); + + setPreferredScrollableViewportSize(getPreferredSize()); } public java.util.Map get(java.util.List names) { - assert names != null; - - 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); - if(name != null) - { - name = name.trim(); - - if(!name.equals("")) - { - names.add(name); - - Object val = row.elementAt(1); - - // - // Eliminate entries with "default" value - // - if(val != _noDefault) - { - assert val != null; - values.put(name, val); - } - } - } - } - return values; + assert names != null; + + 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); + if(name != null) + { + name = name.trim(); + + if(!name.equals("")) + { + names.add(name); + + Object val = row.elementAt(1); + + // + // Eliminate entries with "default" value + // + if(val != _noDefault) + { + assert val != null; + values.put(name, val); + } + } + } + } + return values; } private final Object _noDefault = new Object() - { - public String toString() - { - return "No default"; - } - }; + { + public String toString() + { + return "No default"; + } + }; private DefaultTableModel _model; private java.util.Vector _columnNames; diff --git a/java/src/IceGridGUI/Application/PlainServer.java b/java/src/IceGridGUI/Application/PlainServer.java index fdf86d2ea0b..315d4212a5b 100755 --- a/java/src/IceGridGUI/Application/PlainServer.java +++ b/java/src/IceGridGUI/Application/PlainServer.java @@ -25,95 +25,95 @@ class PlainServer extends Communicator implements Server static public ServerDescriptor copyDescriptor(ServerDescriptor sd) { - ServerDescriptor copy = (ServerDescriptor)sd.clone(); + ServerDescriptor copy = (ServerDescriptor)sd.clone(); - copy.adapters = Adapter.copyDescriptors(copy.adapters); - copy.dbEnvs = DbEnv.copyDescriptors(copy.dbEnvs); + copy.adapters = Adapter.copyDescriptors(copy.adapters); + copy.dbEnvs = DbEnv.copyDescriptors(copy.dbEnvs); - copy.propertySet = PropertySet.copyDescriptor(copy.propertySet); - - copy.distrib = (DistributionDescriptor)copy.distrib.clone(); + copy.propertySet = PropertySet.copyDescriptor(copy.propertySet); + + copy.distrib = (DistributionDescriptor)copy.distrib.clone(); - if(copy instanceof IceBoxDescriptor) - { - IceBoxDescriptor ib = (IceBoxDescriptor)copy; - ib.services = ServiceInstance.copyDescriptors(ib.services); - } - return copy; + if(copy instanceof IceBoxDescriptor) + { + IceBoxDescriptor ib = (IceBoxDescriptor)copy; + ib.services = ServiceInstance.copyDescriptors(ib.services); + } + return copy; } static public void shallowRestore(ServerDescriptor from, ServerDescriptor into) { - // - // When editing a server or server template, if we update properties, - // we replace the entire field - // - into.propertySet = from.propertySet; - into.description = from.description; - into.id = from.id; - into.exe = from.exe; - into.options = from.options; - into.envs = from.envs; - into.activation = from.activation; - into.activationTimeout = from.activationTimeout; - into.deactivationTimeout = from.deactivationTimeout; - into.applicationDistrib = from.applicationDistrib; - into.distrib.icepatch = from.distrib.icepatch; - into.distrib.directories = from.distrib.directories; + // + // When editing a server or server template, if we update properties, + // we replace the entire field + // + into.propertySet = from.propertySet; + into.description = from.description; + into.id = from.id; + into.exe = from.exe; + into.options = from.options; + into.envs = from.envs; + into.activation = from.activation; + into.activationTimeout = from.activationTimeout; + into.deactivationTimeout = from.deactivationTimeout; + into.applicationDistrib = from.applicationDistrib; + into.distrib.icepatch = from.distrib.icepatch; + into.distrib.directories = from.distrib.directories; } static public ServerDescriptor newServerDescriptor() { - return new ServerDescriptor( - new java.util.LinkedList(), - new PropertySetDescriptor(new String[0], new java.util.LinkedList()), - new java.util.LinkedList(), - new String[0], - "", - "NewServer", - "", - "", - new java.util.LinkedList(), - new java.util.LinkedList(), - "manual", - "", - "", - true, - new DistributionDescriptor("", new java.util.LinkedList()), - false, // Allocatable - "", - "" // Ice version - ); + return new ServerDescriptor( + new java.util.LinkedList(), + new PropertySetDescriptor(new String[0], new java.util.LinkedList()), + new java.util.LinkedList(), + new String[0], + "", + "NewServer", + "", + "", + new java.util.LinkedList(), + new java.util.LinkedList(), + "manual", + "", + "", + true, + new DistributionDescriptor("", new java.util.LinkedList()), + false, // Allocatable + "", + "" // Ice version + ); } static public IceBoxDescriptor newIceBoxDescriptor() { - java.util.LinkedList properties = new java.util.LinkedList(); - properties.add(new PropertyDescriptor("IceBox.InstanceName", "${server}")); - properties.add(new PropertyDescriptor("Ice.OA.IceBox.ServiceManager.Endpoints", "tcp -h 127.0.0.1")); - properties.add(new PropertyDescriptor("Ice.OA.IceBox.ServiceManager.RegisterProcess", "1")); - - return new IceBoxDescriptor( - new java.util.LinkedList(), - new PropertySetDescriptor(new String[0], properties), - new java.util.LinkedList(), - new String[0], - "", - "NewIceBox", - "", - "", - new java.util.LinkedList(), - new java.util.LinkedList(), - "manual", - "", - "", - true, - new DistributionDescriptor("", new java.util.LinkedList()), - false, // Allocatable - "", - "", // Ice version - new java.util.LinkedList() - ); + java.util.LinkedList properties = new java.util.LinkedList(); + properties.add(new PropertyDescriptor("IceBox.InstanceName", "${server}")); + properties.add(new PropertyDescriptor("Ice.OA.IceBox.ServiceManager.Endpoints", "tcp -h 127.0.0.1")); + properties.add(new PropertyDescriptor("Ice.OA.IceBox.ServiceManager.RegisterProcess", "1")); + + return new IceBoxDescriptor( + new java.util.LinkedList(), + new PropertySetDescriptor(new String[0], properties), + new java.util.LinkedList(), + new String[0], + "", + "NewIceBox", + "", + "", + new java.util.LinkedList(), + new java.util.LinkedList(), + "manual", + "", + "", + true, + new DistributionDescriptor("", new java.util.LinkedList()), + false, // Allocatable + "", + "", // Ice version + new java.util.LinkedList() + ); } // @@ -121,412 +121,412 @@ class PlainServer extends Communicator implements Server // public boolean[] getAvailableActions() { - boolean[] actions = new boolean[ACTION_COUNT]; - - Object clipboard = getCoordinator().getClipboard(); - if(clipboard != null && - (clipboard instanceof ServerDescriptor - || clipboard instanceof ServerInstanceDescriptor - || (isIceBox() && (clipboard instanceof ServiceInstanceDescriptor)) - || (!isIceBox() && (clipboard instanceof AdapterDescriptor - || clipboard instanceof DbEnvDescriptor)))) - { - actions[PASTE] = true; - } - - actions[DELETE] = true; - if(!_ephemeral) - { - actions[COPY] = true; - actions[SHOW_VARS] = true; - actions[SUBSTITUTE_VARS] = true; - - actions[NEW_ADAPTER] = !_services.initialized(); - actions[NEW_DBENV] = !_services.initialized(); - actions[NEW_SERVICE] = _services.initialized(); - actions[NEW_SERVICE_FROM_TEMPLATE] = _services.initialized(); - } - return actions; + boolean[] actions = new boolean[ACTION_COUNT]; + + Object clipboard = getCoordinator().getClipboard(); + if(clipboard != null && + (clipboard instanceof ServerDescriptor + || clipboard instanceof ServerInstanceDescriptor + || (isIceBox() && (clipboard instanceof ServiceInstanceDescriptor)) + || (!isIceBox() && (clipboard instanceof AdapterDescriptor + || clipboard instanceof DbEnvDescriptor)))) + { + actions[PASTE] = true; + } + + actions[DELETE] = true; + if(!_ephemeral) + { + actions[COPY] = true; + actions[SHOW_VARS] = true; + actions[SUBSTITUTE_VARS] = true; + + actions[NEW_ADAPTER] = !_services.initialized(); + actions[NEW_DBENV] = !_services.initialized(); + actions[NEW_SERVICE] = _services.initialized(); + actions[NEW_SERVICE_FROM_TEMPLATE] = _services.initialized(); + } + return actions; } public JPopupMenu getPopupMenu() { - ApplicationActions actions = getCoordinator().getActionsForPopup(); - if(_popup == null) - { - _popup = new JPopupMenu(); - _popup.add(actions.get(NEW_ADAPTER)); - _popup.add(actions.get(NEW_DBENV)); - _popup.add(actions.get(NEW_SERVICE)); - _popup.add(actions.get(NEW_SERVICE_FROM_TEMPLATE)); - } - actions.setTarget(this); - return _popup; + ApplicationActions actions = getCoordinator().getActionsForPopup(); + if(_popup == null) + { + _popup = new JPopupMenu(); + _popup.add(actions.get(NEW_ADAPTER)); + _popup.add(actions.get(NEW_DBENV)); + _popup.add(actions.get(NEW_SERVICE)); + _popup.add(actions.get(NEW_SERVICE_FROM_TEMPLATE)); + } + actions.setTarget(this); + return _popup; } public void copy() { - getCoordinator().setClipboard(copyDescriptor(_descriptor)); - getCoordinator().getActionsForMenu().get(PASTE).setEnabled(true); + getCoordinator().setClipboard(copyDescriptor(_descriptor)); + getCoordinator().getActionsForMenu().get(PASTE).setEnabled(true); } public Editor getEditor() { - if(_editor == null) - { - _editor = (PlainServerEditor)getRoot().getEditor(PlainServerEditor.class, this); - } - _editor.show(this); - return _editor; + if(_editor == null) + { + _editor = (PlainServerEditor)getRoot().getEditor(PlainServerEditor.class, this); + } + _editor.show(this); + return _editor; } protected Editor createEditor() { - return new PlainServerEditor(); + return new PlainServerEditor(); } - + public Component getTreeCellRendererComponent( - JTree tree, - Object value, - boolean sel, - boolean expanded, - boolean leaf, - int row, - boolean hasFocus) + JTree tree, + Object value, + boolean sel, + boolean expanded, + boolean leaf, + int row, + boolean hasFocus) { - if(_cellRenderer == null) - { - // - // Initialization - // - _cellRenderer = new DefaultTreeCellRenderer(); - - _serverIcon = Utils.getIcon("/icons/16x16/server_inactive.png"); - _iceboxServerIcon = Utils.getIcon("/icons/16x16/icebox_server_inactive.png"); - } - - if(expanded) - { - _cellRenderer.setOpenIcon(isIceBox() ? _iceboxServerIcon : _serverIcon); - } - else - { - _cellRenderer.setClosedIcon(isIceBox() ? _iceboxServerIcon : _serverIcon); - } - return _cellRenderer.getTreeCellRendererComponent( - tree, value, sel, expanded, leaf, row, hasFocus); + if(_cellRenderer == null) + { + // + // Initialization + // + _cellRenderer = new DefaultTreeCellRenderer(); + + _serverIcon = Utils.getIcon("/icons/16x16/server_inactive.png"); + _iceboxServerIcon = Utils.getIcon("/icons/16x16/icebox_server_inactive.png"); + } + + if(expanded) + { + _cellRenderer.setOpenIcon(isIceBox() ? _iceboxServerIcon : _serverIcon); + } + else + { + _cellRenderer.setClosedIcon(isIceBox() ? _iceboxServerIcon : _serverIcon); + } + return _cellRenderer.getTreeCellRendererComponent( + tree, value, sel, expanded, leaf, row, hasFocus); } public void destroy() { - Node node = (Node)_parent; - - if(_ephemeral) - { - node.removeServer(this); - } - else - { - node.removeDescriptor(_descriptor); - node.removeServer(this); - node.getEditable().removeElement(_id, _editable, Server.class); - getRoot().updated(); - } + Node node = (Node)_parent; + + if(_ephemeral) + { + node.removeServer(this); + } + else + { + node.removeDescriptor(_descriptor); + node.removeServer(this); + node.getEditable().removeElement(_id, _editable, Server.class); + getRoot().updated(); + } } public Object getDescriptor() { - return _descriptor; + return _descriptor; } public Object saveDescriptor() { - ServerDescriptor clone = (ServerDescriptor)_descriptor.clone(); - clone.distrib = (DistributionDescriptor)clone.distrib.clone(); - return clone; + ServerDescriptor clone = (ServerDescriptor)_descriptor.clone(); + clone.distrib = (DistributionDescriptor)clone.distrib.clone(); + return clone; } public void restoreDescriptor(Object savedDescriptor) { - shallowRestore((ServerDescriptor)savedDescriptor, _descriptor); + shallowRestore((ServerDescriptor)savedDescriptor, _descriptor); } // // Builds the server and all its sub-tree // PlainServer(boolean brandNew, TreeNode parent, String serverId, - Utils.Resolver resolver, ServerDescriptor serverDescriptor) - throws UpdateFailedException + Utils.Resolver resolver, ServerDescriptor serverDescriptor) + throws UpdateFailedException { - super(parent, serverId); - _ephemeral = false; - _editable = new Editable(brandNew); - rebuild(resolver, serverDescriptor); + super(parent, serverId); + _ephemeral = false; + _editable = new Editable(brandNew); + rebuild(resolver, serverDescriptor); } PlainServer(TreeNode parent, String serverId, ServerDescriptor serverDescriptor) { - super(parent, serverId); - _ephemeral = true; - _editable = null; - try - { - rebuild(null, serverDescriptor); - } - catch(UpdateFailedException e) - { - assert false; - } + super(parent, serverId); + _ephemeral = true; + _editable = null; + try + { + rebuild(null, serverDescriptor); + } + catch(UpdateFailedException e) + { + assert false; + } } static java.util.List createAttributes(ServerDescriptor descriptor) { - java.util.List attributes = new java.util.LinkedList(); - attributes.add(createAttribute("id", descriptor.id)); - if(descriptor.activation.length() > 0) - { - attributes.add(createAttribute("activation", - descriptor.activation)); - } - if(descriptor.activationTimeout.length() > 0) - { - attributes.add(createAttribute("activation-timeout", - descriptor.activationTimeout)); - } - if(!descriptor.applicationDistrib) - { - attributes.add(createAttribute("application-distrib", "false")); - } - if(descriptor.deactivationTimeout.length() > 0) - { - attributes.add(createAttribute("deactivation-timeout", - descriptor.deactivationTimeout)); - } - if(descriptor.exe.length() > 0) - { - attributes.add(createAttribute("exe", descriptor.exe)); - } - if(descriptor.pwd.length() > 0) - { - attributes.add(createAttribute("pwd", descriptor.pwd)); - } - - return attributes; + java.util.List attributes = new java.util.LinkedList(); + attributes.add(createAttribute("id", descriptor.id)); + if(descriptor.activation.length() > 0) + { + attributes.add(createAttribute("activation", + descriptor.activation)); + } + if(descriptor.activationTimeout.length() > 0) + { + attributes.add(createAttribute("activation-timeout", + descriptor.activationTimeout)); + } + if(!descriptor.applicationDistrib) + { + attributes.add(createAttribute("application-distrib", "false")); + } + if(descriptor.deactivationTimeout.length() > 0) + { + attributes.add(createAttribute("deactivation-timeout", + descriptor.deactivationTimeout)); + } + if(descriptor.exe.length() > 0) + { + attributes.add(createAttribute("exe", descriptor.exe)); + } + if(descriptor.pwd.length() > 0) + { + attributes.add(createAttribute("pwd", descriptor.pwd)); + } + + return attributes; } static void writeOptions(XMLWriter writer, java.util.List options) - throws java.io.IOException + throws java.io.IOException { - java.util.Iterator p = options.iterator(); - while(p.hasNext()) - { - writer.writeElement("option", (String)p.next()); - } + java.util.Iterator p = options.iterator(); + while(p.hasNext()) + { + writer.writeElement("option", (String)p.next()); + } } static void writeEnvs(XMLWriter writer, java.util.List envs) - throws java.io.IOException + throws java.io.IOException { - java.util.Iterator p = envs.iterator(); - while(p.hasNext()) - { - writer.writeElement("env", (String)p.next()); - } + java.util.Iterator p = envs.iterator(); + while(p.hasNext()) + { + writer.writeElement("env", (String)p.next()); + } } void write(XMLWriter writer) throws java.io.IOException { - if(!_ephemeral) - { - if(isIceBox()) - { - writer.writeStartTag("icebox", - createAttributes(_descriptor)); - - if(_descriptor.description.length() > 0) - { - writer.writeElement("description", _descriptor.description); - } - writeOptions(writer, _descriptor.options); - writeEnvs(writer, _descriptor.envs); - - writePropertySet(writer, "", "", _descriptor.propertySet, - _descriptor.adapters, _descriptor.logs); - writeLogs(writer, _descriptor.logs, _descriptor.propertySet.properties); - writeDistribution(writer, _descriptor.distrib); - - _adapters.write(writer, _descriptor.propertySet.properties); - _services.write(writer); - writer.writeEndTag("icebox"); - } - else - { - writer.writeStartTag("server", createAttributes(_descriptor)); - - if(_descriptor.description.length() > 0) - { - writer.writeElement("description", _descriptor.description); - } - - writeOptions(writer, _descriptor.options); - writeEnvs(writer, _descriptor.envs); - - writePropertySet(writer, _descriptor.propertySet, _descriptor.adapters, _descriptor.logs); - writeLogs(writer, _descriptor.logs, _descriptor.propertySet.properties); - writeDistribution(writer, _descriptor.distrib); - - _adapters.write(writer, _descriptor.propertySet.properties); - _dbEnvs.write(writer); - writer.writeEndTag("server"); - } - } + if(!_ephemeral) + { + if(isIceBox()) + { + writer.writeStartTag("icebox", + createAttributes(_descriptor)); + + if(_descriptor.description.length() > 0) + { + writer.writeElement("description", _descriptor.description); + } + writeOptions(writer, _descriptor.options); + writeEnvs(writer, _descriptor.envs); + + writePropertySet(writer, "", "", _descriptor.propertySet, + _descriptor.adapters, _descriptor.logs); + writeLogs(writer, _descriptor.logs, _descriptor.propertySet.properties); + writeDistribution(writer, _descriptor.distrib); + + _adapters.write(writer, _descriptor.propertySet.properties); + _services.write(writer); + writer.writeEndTag("icebox"); + } + else + { + writer.writeStartTag("server", createAttributes(_descriptor)); + + if(_descriptor.description.length() > 0) + { + writer.writeElement("description", _descriptor.description); + } + + writeOptions(writer, _descriptor.options); + writeEnvs(writer, _descriptor.envs); + + writePropertySet(writer, _descriptor.propertySet, _descriptor.adapters, _descriptor.logs); + writeLogs(writer, _descriptor.logs, _descriptor.propertySet.properties); + writeDistribution(writer, _descriptor.distrib); + + _adapters.write(writer, _descriptor.propertySet.properties); + _dbEnvs.write(writer); + writer.writeEndTag("server"); + } + } } boolean isIceBox() { - return _descriptor instanceof IceBoxDescriptor; + return _descriptor instanceof IceBoxDescriptor; } public Object rebuild(java.util.List editables) throws UpdateFailedException { - Node node = (Node)_parent; - PlainServer newServer = node.createServer(false, _descriptor); - - Object backup = null; - - if(_id.equals(newServer.getId())) - { - // - // A simple update. We can't simply rebuild server because - // we need to keep a backup - // - if(_editable.isModified()) - { - newServer.getEditable().markModified(); - } - - node.removeServer(this); - try - { - node.insertServer(newServer, true); - } - catch(UpdateFailedException e) - { - assert false; // impossible, we just removed a child with - // this id - } - } - else - { - // - // Typically, the id uses a variable whose definition changed - // - newServer.getEditable().markNew(); - node.removeServer(this); - backup = node.getEditable().save(); - node.getEditable().removeElement(_id, _editable, Server.class); - - try - { - node.insertServer(newServer, true); - } - catch(UpdateFailedException e) - { - restore(backup); - throw e; - } - } - - return backup; + Node node = (Node)_parent; + PlainServer newServer = node.createServer(false, _descriptor); + + Object backup = null; + + if(_id.equals(newServer.getId())) + { + // + // A simple update. We can't simply rebuild server because + // we need to keep a backup + // + if(_editable.isModified()) + { + newServer.getEditable().markModified(); + } + + node.removeServer(this); + try + { + node.insertServer(newServer, true); + } + catch(UpdateFailedException e) + { + assert false; // impossible, we just removed a child with + // this id + } + } + else + { + // + // Typically, the id uses a variable whose definition changed + // + newServer.getEditable().markNew(); + node.removeServer(this); + backup = node.getEditable().save(); + node.getEditable().removeElement(_id, _editable, Server.class); + + try + { + node.insertServer(newServer, true); + } + catch(UpdateFailedException e) + { + restore(backup); + throw e; + } + } + + return backup; } public void restore(Object backupObj) { - Editable backup = (Editable)backupObj; - Node node = (Node)_parent; - - if(backup != null) - { - node.getEditable().restore(backup); - } - - TreeNode badServer = node.findChildWithDescriptor(_descriptor); - - if(badServer != null) - { - node.removeServer(badServer); - } - try - { - node.insertServer(this, true); - } - catch(UpdateFailedException e) - { - assert false; // impossible - } + Editable backup = (Editable)backupObj; + Node node = (Node)_parent; + + if(backup != null) + { + node.getEditable().restore(backup); + } + + TreeNode badServer = node.findChildWithDescriptor(_descriptor); + + if(badServer != null) + { + node.removeServer(badServer); + } + try + { + node.insertServer(this, true); + } + catch(UpdateFailedException e) + { + assert false; // impossible + } } void setServerDescriptor(ServerDescriptor descriptor) { - _descriptor = descriptor; + _descriptor = descriptor; } // // Update the server and all its subtree // void rebuild(Utils.Resolver resolver, - ServerDescriptor serverDescriptor) throws UpdateFailedException + ServerDescriptor serverDescriptor) throws UpdateFailedException { - assert serverDescriptor != null; - _resolver = resolver; - _descriptor = serverDescriptor; - - _adapters.clear(); - _dbEnvs.clear(); - _services.clear(); - - if(!_ephemeral) - { - _adapters.init(_descriptor.adapters); - if(isIceBox()) - { - IceBoxDescriptor iceBoxDescriptor = (IceBoxDescriptor)_descriptor; - _services.init(iceBoxDescriptor.services); + assert serverDescriptor != null; + _resolver = resolver; + _descriptor = serverDescriptor; + + _adapters.clear(); + _dbEnvs.clear(); + _services.clear(); + + if(!_ephemeral) + { + _adapters.init(_descriptor.adapters); + if(isIceBox()) + { + IceBoxDescriptor iceBoxDescriptor = (IceBoxDescriptor)_descriptor; + _services.init(iceBoxDescriptor.services); - // - // IceBox has not dbEnv - // - assert _descriptor.dbEnvs.size() == 0; - } - else - { - _dbEnvs.init(_descriptor.dbEnvs); - } - } + // + // IceBox has not dbEnv + // + assert _descriptor.dbEnvs.size() == 0; + } + else + { + _dbEnvs.init(_descriptor.dbEnvs); + } + } } CommunicatorDescriptor getCommunicatorDescriptor() { - return _descriptor; + return _descriptor; } Utils.Resolver getResolver() { - return _resolver; + return _resolver; } public Editable getEditable() { - return _editable; + return _editable; } Editable getEnclosingEditable() { - return _editable; + return _editable; } public boolean isEphemeral() { - return _ephemeral; + return _ephemeral; } private ServerDescriptor _descriptor; diff --git a/java/src/IceGridGUI/Application/PlainServerEditor.java b/java/src/IceGridGUI/Application/PlainServerEditor.java index d8bb19c4663..d2859d1339a 100755 --- a/java/src/IceGridGUI/Application/PlainServerEditor.java +++ b/java/src/IceGridGUI/Application/PlainServerEditor.java @@ -17,17 +17,17 @@ class PlainServerEditor extends AbstractServerEditor { protected void writeDescriptor() { - _subEditor.writeDescriptor(); - } + _subEditor.writeDescriptor(); + } protected boolean isSimpleUpdate() { - return _subEditor.isSimpleUpdate(); + return _subEditor.isSimpleUpdate(); } PlainServerEditor() { - _subEditor = new ServerSubEditor(this); + _subEditor = new ServerSubEditor(this); } // @@ -35,41 +35,41 @@ class PlainServerEditor extends AbstractServerEditor // Utils.Resolver getDetailResolver() { - if(_target.getCoordinator().substitute()) - { - return _target.getResolver(); - } - else - { - return null; - } + if(_target.getCoordinator().substitute()) + { + return _target.getResolver(); + } + else + { + return null; + } } protected void appendProperties(DefaultFormBuilder builder) { - _subEditor.appendProperties(builder); + _subEditor.appendProperties(builder); } Object getSubDescriptor() { - return _target.getDescriptor(); + return _target.getDescriptor(); } protected boolean validate() { - return _subEditor.validate(); + return _subEditor.validate(); } void show(PlainServer server) { - detectUpdates(false); - _target = server; + detectUpdates(false); + _target = server; - _subEditor.show(true); + _subEditor.show(true); - _applyButton.setEnabled(server.isEphemeral()); - _discardButton.setEnabled(server.isEphemeral()); - detectUpdates(true); + _applyButton.setEnabled(server.isEphemeral()); + _discardButton.setEnabled(server.isEphemeral()); + detectUpdates(true); } private ServerSubEditor _subEditor; diff --git a/java/src/IceGridGUI/Application/PlainService.java b/java/src/IceGridGUI/Application/PlainService.java index 01743f7bc90..f21b554a79b 100755 --- a/java/src/IceGridGUI/Application/PlainService.java +++ b/java/src/IceGridGUI/Application/PlainService.java @@ -21,34 +21,34 @@ class PlainService extends Communicator implements Service, Cloneable static public ServiceDescriptor copyDescriptor(ServiceDescriptor sd) { - ServiceDescriptor copy = (ServiceDescriptor)sd.clone(); - copy.adapters = Adapter.copyDescriptors(copy.adapters); - copy.dbEnvs = DbEnv.copyDescriptors(copy.dbEnvs); - copy.propertySet = PropertySet.copyDescriptor(copy.propertySet); - return copy; + ServiceDescriptor copy = (ServiceDescriptor)sd.clone(); + copy.adapters = Adapter.copyDescriptors(copy.adapters); + copy.dbEnvs = DbEnv.copyDescriptors(copy.dbEnvs); + copy.propertySet = PropertySet.copyDescriptor(copy.propertySet); + return copy; } public Component getTreeCellRendererComponent( - JTree tree, - Object value, - boolean sel, - boolean expanded, - boolean leaf, - int row, - boolean hasFocus) + JTree tree, + Object value, + boolean sel, + boolean expanded, + boolean leaf, + int row, + boolean hasFocus) { - if(_cellRenderer == null) - { - _cellRenderer = new DefaultTreeCellRenderer(); - _cellRenderer.setOpenIcon( - Utils.getIcon("/icons/16x16/service.png")); - - _cellRenderer.setClosedIcon( - Utils.getIcon("/icons/16x16/service.png")); - } - - return _cellRenderer.getTreeCellRendererComponent( - tree, value, sel, expanded, leaf, row, hasFocus); + if(_cellRenderer == null) + { + _cellRenderer = new DefaultTreeCellRenderer(); + _cellRenderer.setOpenIcon( + Utils.getIcon("/icons/16x16/service.png")); + + _cellRenderer.setClosedIcon( + Utils.getIcon("/icons/16x16/service.png")); + } + + return _cellRenderer.getTreeCellRendererComponent( + tree, value, sel, expanded, leaf, row, hasFocus); } // @@ -56,183 +56,183 @@ class PlainService extends Communicator implements Service, Cloneable // public boolean[] getAvailableActions() { - boolean[] actions = new boolean[ACTION_COUNT]; - actions[COPY] = !_ephemeral; - - Object clipboard = getCoordinator().getClipboard(); - if(clipboard != null && - (clipboard instanceof ServiceInstanceDescriptor - || clipboard instanceof AdapterDescriptor - || clipboard instanceof DbEnvDescriptor)) - { - actions[PASTE] = true; - } - - actions[DELETE] = true; - actions[NEW_ADAPTER] = !_ephemeral; - actions[NEW_DBENV] = !_ephemeral; - - if(_parent instanceof Server && !_ephemeral) - { - actions[SHOW_VARS] = true; - actions[SUBSTITUTE_VARS] = true; - } - - actions[MOVE_UP] = canMove(true); - actions[MOVE_DOWN] = canMove(false); - return actions; + boolean[] actions = new boolean[ACTION_COUNT]; + actions[COPY] = !_ephemeral; + + Object clipboard = getCoordinator().getClipboard(); + if(clipboard != null && + (clipboard instanceof ServiceInstanceDescriptor + || clipboard instanceof AdapterDescriptor + || clipboard instanceof DbEnvDescriptor)) + { + actions[PASTE] = true; + } + + actions[DELETE] = true; + actions[NEW_ADAPTER] = !_ephemeral; + actions[NEW_DBENV] = !_ephemeral; + + if(_parent instanceof Server && !_ephemeral) + { + actions[SHOW_VARS] = true; + actions[SUBSTITUTE_VARS] = true; + } + + actions[MOVE_UP] = canMove(true); + actions[MOVE_DOWN] = canMove(false); + return actions; } public JPopupMenu getPopupMenu() { - ApplicationActions actions = getCoordinator().getActionsForPopup(); - if(_popup == null) - { - _popup = new JPopupMenu(); - _popup.add(actions.get(NEW_ADAPTER)); - _popup.add(actions.get(NEW_DBENV)); - _popup.addSeparator(); - _popup.add(actions.get(MOVE_UP)); - _popup.add(actions.get(MOVE_DOWN)); - } - actions.setTarget(this); - return _popup; + ApplicationActions actions = getCoordinator().getActionsForPopup(); + if(_popup == null) + { + _popup = new JPopupMenu(); + _popup.add(actions.get(NEW_ADAPTER)); + _popup.add(actions.get(NEW_DBENV)); + _popup.addSeparator(); + _popup.add(actions.get(MOVE_UP)); + _popup.add(actions.get(MOVE_DOWN)); + } + actions.setTarget(this); + return _popup; } public void copy() { - getCoordinator().setClipboard(ServiceInstance.copyDescriptor(_descriptor)); - getCoordinator().getActionsForMenu().get(PASTE).setEnabled(true); + getCoordinator().setClipboard(ServiceInstance.copyDescriptor(_descriptor)); + getCoordinator().getActionsForMenu().get(PASTE).setEnabled(true); } public void moveUp() { - move(true); + move(true); } public void moveDown() { - move(false); + move(false); } public Object getDescriptor() { - return _descriptor; + return _descriptor; } public Object saveDescriptor() { - return _descriptor.clone(); + return _descriptor.clone(); } public void restoreDescriptor(Object savedDescriptor) { - ServiceInstanceDescriptor sid = (ServiceInstanceDescriptor)savedDescriptor; + ServiceInstanceDescriptor sid = (ServiceInstanceDescriptor)savedDescriptor; - _descriptor.descriptor.propertySet = sid.descriptor.propertySet; - _descriptor.descriptor.description = sid.descriptor.description; - _descriptor.descriptor.name = sid.descriptor.name; - _descriptor.descriptor.entry = sid.descriptor.entry; + _descriptor.descriptor.propertySet = sid.descriptor.propertySet; + _descriptor.descriptor.description = sid.descriptor.description; + _descriptor.descriptor.name = sid.descriptor.name; + _descriptor.descriptor.entry = sid.descriptor.entry; } public void destroy() { - ((Communicator)_parent).getServices().destroyChild(this); + ((Communicator)_parent).getServices().destroyChild(this); } public Editor getEditor() { - if(_editor == null) - { - _editor = (PlainServiceEditor)getRoot().getEditor(PlainServiceEditor.class, this); - } - _editor.show(this); - return _editor; + if(_editor == null) + { + _editor = (PlainServiceEditor)getRoot().getEditor(PlainServiceEditor.class, this); + } + _editor.show(this); + return _editor; } protected Editor createEditor() { - return new PlainServiceEditor(); + return new PlainServiceEditor(); } Editable getEnclosingEditable() { - return ((Communicator)_parent).getEnclosingEditable(); + return ((Communicator)_parent).getEnclosingEditable(); } private boolean canMove(boolean up) { - if(_ephemeral) - { - return false; - } - else - { - return ((Communicator)_parent).getServices().canMove(this, up); - } + if(_ephemeral) + { + return false; + } + else + { + return ((Communicator)_parent).getServices().canMove(this, up); + } } private void move(boolean up) { - assert canMove(up); - ((Communicator)_parent).getServices().move(this, up); + assert canMove(up); + ((Communicator)_parent).getServices().move(this, up); } public Object rebuild(java.util.List editables) - throws UpdateFailedException + throws UpdateFailedException { - Communicator communicator = (Communicator)_parent; - Services services = communicator.getServices(); - PlainService newService = null; - - newService = (PlainService)services.createChild(_descriptor); - - Object backup = null; - - try - { - backup = (PlainService)clone(); - } - catch(CloneNotSupportedException e) - { - assert false; - } - - reset(newService); - getRoot().getTreeModel().nodeChanged(this); - return backup; + Communicator communicator = (Communicator)_parent; + Services services = communicator.getServices(); + PlainService newService = null; + + newService = (PlainService)services.createChild(_descriptor); + + Object backup = null; + + try + { + backup = (PlainService)clone(); + } + catch(CloneNotSupportedException e) + { + assert false; + } + + reset(newService); + getRoot().getTreeModel().nodeChanged(this); + return backup; } public void restore(Object backupObj) { - reset((PlainService)backupObj); - getRoot().getTreeModel().nodeChanged(this); + reset((PlainService)backupObj); + getRoot().getTreeModel().nodeChanged(this); } private void reset(PlainService from) { - _id = from._id; - assert _parent == from._parent; - - _adapters = from._adapters; - _dbEnvs = from._dbEnvs; - _services = from._services; - _childListArray = from._childListArray; - - _descriptor = from._descriptor; - _resolver = from._resolver; + _id = from._id; + assert _parent == from._parent; + + _adapters = from._adapters; + _dbEnvs = from._dbEnvs; + _services = from._services; + _childListArray = from._childListArray; + + _descriptor = from._descriptor; + _resolver = from._resolver; } PlainService(Communicator parent, - String name, - ServiceInstanceDescriptor descriptor, - Utils.Resolver resolver) - throws UpdateFailedException + String name, + ServiceInstanceDescriptor descriptor, + Utils.Resolver resolver) + throws UpdateFailedException { - super(parent, name); - _descriptor = descriptor; - _ephemeral = false; - _resolver = resolver; + super(parent, name); + _descriptor = descriptor; + _ephemeral = false; + _resolver = resolver; - _adapters.init(_descriptor.descriptor.adapters); - _dbEnvs.init(_descriptor.descriptor.dbEnvs); + _adapters.init(_descriptor.descriptor.adapters); + _dbEnvs.init(_descriptor.descriptor.dbEnvs); } // @@ -240,53 +240,53 @@ class PlainService extends Communicator implements Service, Cloneable // PlainService(Communicator parent, ServiceInstanceDescriptor descriptor) { - super(parent, descriptor.descriptor.name); - _descriptor = descriptor; - _ephemeral = true; + super(parent, descriptor.descriptor.name); + _descriptor = descriptor; + _ephemeral = true; } static java.util.List createAttributes(ServiceDescriptor descriptor) { - java.util.List attributes = new java.util.LinkedList(); - attributes.add(createAttribute("name", descriptor.name)); - attributes.add(createAttribute("entry", descriptor.entry)); - return attributes; + java.util.List attributes = new java.util.LinkedList(); + attributes.add(createAttribute("name", descriptor.name)); + attributes.add(createAttribute("entry", descriptor.entry)); + return attributes; } void write(XMLWriter writer) throws java.io.IOException { - if(!_ephemeral) - { - writer.writeStartTag("service", createAttributes(_descriptor.descriptor)); - - if(_descriptor.descriptor.description.length() > 0) - { - writer.writeElement("description", _descriptor.descriptor.description); - } - - writePropertySet(writer, _descriptor.descriptor.propertySet, - _descriptor.descriptor.adapters, _descriptor.descriptor.logs); - writeLogs(writer, _descriptor.descriptor.logs, _descriptor.descriptor.propertySet.properties); - - _adapters.write(writer, _descriptor.descriptor.propertySet.properties); - _dbEnvs.write(writer); - writer.writeEndTag("service"); - } + if(!_ephemeral) + { + writer.writeStartTag("service", createAttributes(_descriptor.descriptor)); + + if(_descriptor.descriptor.description.length() > 0) + { + writer.writeElement("description", _descriptor.descriptor.description); + } + + writePropertySet(writer, _descriptor.descriptor.propertySet, + _descriptor.descriptor.adapters, _descriptor.descriptor.logs); + writeLogs(writer, _descriptor.descriptor.logs, _descriptor.descriptor.propertySet.properties); + + _adapters.write(writer, _descriptor.descriptor.propertySet.properties); + _dbEnvs.write(writer); + writer.writeEndTag("service"); + } } CommunicatorDescriptor getCommunicatorDescriptor() { - return _descriptor.descriptor; + return _descriptor.descriptor; } Utils.Resolver getResolver() { - return _resolver; + return _resolver; } public boolean isEphemeral() { - return _ephemeral; + return _ephemeral; } private ServiceInstanceDescriptor _descriptor; diff --git a/java/src/IceGridGUI/Application/PlainServiceEditor.java b/java/src/IceGridGUI/Application/PlainServiceEditor.java index c1de8d137e2..f2487413ba8 100755 --- a/java/src/IceGridGUI/Application/PlainServiceEditor.java +++ b/java/src/IceGridGUI/Application/PlainServiceEditor.java @@ -17,7 +17,7 @@ class PlainServiceEditor extends CommunicatorChildEditor { PlainServiceEditor() { - _subEditor = new ServiceSubEditor(this); + _subEditor = new ServiceSubEditor(this); } // @@ -25,65 +25,65 @@ class PlainServiceEditor extends CommunicatorChildEditor // Utils.Resolver getDetailResolver() { - PlainService service = (PlainService)_target; - if(service.getCoordinator().substitute()) - { - return service.getResolver(); - } - else - { - return null; - } + PlainService service = (PlainService)_target; + if(service.getCoordinator().substitute()) + { + return service.getResolver(); + } + else + { + return null; + } } protected void appendProperties(DefaultFormBuilder builder) { - _subEditor.appendProperties(builder); + _subEditor.appendProperties(builder); } protected void buildPropertiesPanel() { - super.buildPropertiesPanel(); - _propertiesPanel.setName("Service Properties"); + super.buildPropertiesPanel(); + _propertiesPanel.setName("Service Properties"); } protected boolean validate() { - return _subEditor.validate(); + return _subEditor.validate(); } void writeDescriptor() { - _subEditor.writeDescriptor(); - } + _subEditor.writeDescriptor(); + } boolean isSimpleUpdate() { - return _subEditor.isSimpleUpdate(); + return _subEditor.isSimpleUpdate(); } Communicator.ChildList getChildList() { - return ((Communicator)_target.getParent()).getServices(); + return ((Communicator)_target.getParent()).getServices(); } Object getSubDescriptor() { - ServiceInstanceDescriptor sid = (ServiceInstanceDescriptor)_target.getDescriptor(); - return sid.descriptor; + ServiceInstanceDescriptor sid = (ServiceInstanceDescriptor)_target.getDescriptor(); + return sid.descriptor; } void show(PlainService service) { - detectUpdates(false); - _target = service; + detectUpdates(false); + _target = service; - _subEditor.show(true); + _subEditor.show(true); - _applyButton.setEnabled(service.isEphemeral()); - _discardButton.setEnabled(service.isEphemeral()); - detectUpdates(true); + _applyButton.setEnabled(service.isEphemeral()); + _discardButton.setEnabled(service.isEphemeral()); + detectUpdates(true); } private ServiceSubEditor _subEditor; diff --git a/java/src/IceGridGUI/Application/PropertiesField.java b/java/src/IceGridGUI/Application/PropertiesField.java index e94ca2fda66..ed2035f56c9 100755 --- a/java/src/IceGridGUI/Application/PropertiesField.java +++ b/java/src/IceGridGUI/Application/PropertiesField.java @@ -33,231 +33,231 @@ public class PropertiesField extends JTable { public PropertiesField(Editor editor) { - _columnNames = new java.util.Vector(2); - _columnNames.add("Name"); - _columnNames.add("Value"); - - _editor = editor; - - Action deleteRow = new AbstractAction("Delete selected row(s)") - { - public void actionPerformed(ActionEvent e) - { - if(_editable) - { - if(isEditing()) - { - getCellEditor().stopCellEditing(); - } - - for(;;) - { - int selectedRow = getSelectedRow(); - if(selectedRow == -1) - { - break; - } - else - { - _model.removeRow(selectedRow); - } - } - } - } - }; - getActionMap().put("delete", deleteRow); - getInputMap().put( - KeyStroke.getKeyStroke("DELETE"), "delete"); - - - + _columnNames = new java.util.Vector(2); + _columnNames.add("Name"); + _columnNames.add("Value"); + + _editor = editor; + + Action deleteRow = new AbstractAction("Delete selected row(s)") + { + public void actionPerformed(ActionEvent e) + { + if(_editable) + { + if(isEditing()) + { + getCellEditor().stopCellEditing(); + } + + for(;;) + { + int selectedRow = getSelectedRow(); + if(selectedRow == -1) + { + break; + } + else + { + _model.removeRow(selectedRow); + } + } + } + } + }; + getActionMap().put("delete", deleteRow); + getInputMap().put( + KeyStroke.getKeyStroke("DELETE"), "delete"); + + + } public void setProperties(java.util.List properties, - java.util.List adapters, - String[] logs, - Utils.Resolver resolver, boolean editable) + java.util.List adapters, + String[] logs, + Utils.Resolver resolver, boolean editable) { - _editable = editable; - - // - // We don't show the .Endpoint and .PublishedEndpoints of adapters, - // since they already appear in the Adapter pages - // - java.util.Set hiddenPropertyNames = new java.util.HashSet(); - - // - // We also hide properties whose value match an object or allocatable - // - java.util.Set hiddenPropertyValues = new java.util.HashSet(); - - _hiddenProperties.clear(); - - if(adapters != null) - { - // - // Note that we don't substitute *on purpose*, i.e. the names or values - // must match before substitution. - // - java.util.Iterator p = adapters.iterator(); - while(p.hasNext()) - { - AdapterDescriptor ad = (AdapterDescriptor)p.next(); - hiddenPropertyNames.add("Ice.OA." + ad.name + ".Endpoints"); - hiddenPropertyNames.add("Ice.OA." + ad.name + ".PublishedEndpoints"); - - java.util.Iterator q = ad.objects.iterator(); - while(q.hasNext()) - { - ObjectDescriptor od = (ObjectDescriptor)q.next(); - hiddenPropertyValues.add(Ice.Util.identityToString(od.id)); - } - q = ad.allocatables.iterator(); - while(q.hasNext()) - { - ObjectDescriptor od = (ObjectDescriptor)q.next(); - hiddenPropertyValues.add(Ice.Util.identityToString(od.id)); - } - } - } - - if(logs != null) - { - for(int i = 0; i < logs.length; ++i) - { - hiddenPropertyValues.add(logs[i]); - } - } - - // - // Transform list into vector of vectors - // - java.util.Vector vector = new java.util.Vector(properties.size()); - java.util.Iterator p = properties.iterator(); - while(p.hasNext()) - { - PropertyDescriptor pd = (PropertyDescriptor)p.next(); - if(hiddenPropertyNames.contains(pd.name)) - { - // - // We keep them at the top of the list - // - if(_editable) - { - _hiddenProperties.add(pd); - } - - // - // We hide only the first occurence - // - hiddenPropertyNames.remove(pd.name); - } - else if(hiddenPropertyValues.contains(pd.value)) - { - // - // We keep them at the top of the list - // - if(_editable) - { - _hiddenProperties.add(pd); - } - - // - // We hide only the first occurence - // - hiddenPropertyValues.remove(pd.value); - } - else - { - java.util.Vector row = new java.util.Vector(2); - row.add(Utils.substitute(pd.name, resolver)); - row.add(Utils.substitute(pd.value, resolver)); - vector.add(row); - } - } - - if(_editable) - { - java.util.Vector newRow = new java.util.Vector(2); - newRow.add(""); - newRow.add(""); - vector.add(newRow); - } - - _model = new DefaultTableModel(vector, _columnNames) - { - public boolean isCellEditable(int row, int column) - { - return _editable; - } - }; - - _model.addTableModelListener(new TableModelListener() - { - public void tableChanged(TableModelEvent e) - { - if(_editable) - { - Object lastKey = _model.getValueAt( - _model.getRowCount() - 1 , 0); - if(lastKey != null && !lastKey.equals("")) - { - _model.addRow(new Object[]{"", ""}); - } - _editor.updated(); - } - } - }); - setModel(_model); - - setCellSelectionEnabled(_editable); - setOpaque(_editable); - setPreferredScrollableViewportSize(getPreferredSize()); - - DefaultTableCellRenderer cr = (DefaultTableCellRenderer) - getDefaultRenderer(String.class); - cr.setOpaque(_editable); + _editable = editable; + + // + // We don't show the .Endpoint and .PublishedEndpoints of adapters, + // since they already appear in the Adapter pages + // + java.util.Set hiddenPropertyNames = new java.util.HashSet(); + + // + // We also hide properties whose value match an object or allocatable + // + java.util.Set hiddenPropertyValues = new java.util.HashSet(); + + _hiddenProperties.clear(); + + if(adapters != null) + { + // + // Note that we don't substitute *on purpose*, i.e. the names or values + // must match before substitution. + // + java.util.Iterator p = adapters.iterator(); + while(p.hasNext()) + { + AdapterDescriptor ad = (AdapterDescriptor)p.next(); + hiddenPropertyNames.add("Ice.OA." + ad.name + ".Endpoints"); + hiddenPropertyNames.add("Ice.OA." + ad.name + ".PublishedEndpoints"); + + java.util.Iterator q = ad.objects.iterator(); + while(q.hasNext()) + { + ObjectDescriptor od = (ObjectDescriptor)q.next(); + hiddenPropertyValues.add(Ice.Util.identityToString(od.id)); + } + q = ad.allocatables.iterator(); + while(q.hasNext()) + { + ObjectDescriptor od = (ObjectDescriptor)q.next(); + hiddenPropertyValues.add(Ice.Util.identityToString(od.id)); + } + } + } + + if(logs != null) + { + for(int i = 0; i < logs.length; ++i) + { + hiddenPropertyValues.add(logs[i]); + } + } + + // + // Transform list into vector of vectors + // + java.util.Vector vector = new java.util.Vector(properties.size()); + java.util.Iterator p = properties.iterator(); + while(p.hasNext()) + { + PropertyDescriptor pd = (PropertyDescriptor)p.next(); + if(hiddenPropertyNames.contains(pd.name)) + { + // + // We keep them at the top of the list + // + if(_editable) + { + _hiddenProperties.add(pd); + } + + // + // We hide only the first occurence + // + hiddenPropertyNames.remove(pd.name); + } + else if(hiddenPropertyValues.contains(pd.value)) + { + // + // We keep them at the top of the list + // + if(_editable) + { + _hiddenProperties.add(pd); + } + + // + // We hide only the first occurence + // + hiddenPropertyValues.remove(pd.value); + } + else + { + java.util.Vector row = new java.util.Vector(2); + row.add(Utils.substitute(pd.name, resolver)); + row.add(Utils.substitute(pd.value, resolver)); + vector.add(row); + } + } + + if(_editable) + { + java.util.Vector newRow = new java.util.Vector(2); + newRow.add(""); + newRow.add(""); + vector.add(newRow); + } + + _model = new DefaultTableModel(vector, _columnNames) + { + public boolean isCellEditable(int row, int column) + { + return _editable; + } + }; + + _model.addTableModelListener(new TableModelListener() + { + public void tableChanged(TableModelEvent e) + { + if(_editable) + { + Object lastKey = _model.getValueAt( + _model.getRowCount() - 1 , 0); + if(lastKey != null && !lastKey.equals("")) + { + _model.addRow(new Object[]{"", ""}); + } + _editor.updated(); + } + } + }); + setModel(_model); + + setCellSelectionEnabled(_editable); + setOpaque(_editable); + setPreferredScrollableViewportSize(getPreferredSize()); + + DefaultTableCellRenderer cr = (DefaultTableCellRenderer) + getDefaultRenderer(String.class); + cr.setOpaque(_editable); } public java.util.LinkedList getProperties() { - assert _editable; - - if(isEditing()) - { - getCellEditor().stopCellEditing(); - } - java.util.Vector vector = _model.getDataVector(); - - java.util.LinkedList result = new java.util.LinkedList(_hiddenProperties); - - java.util.Iterator p = vector.iterator(); - while(p.hasNext()) - { - java.util.Vector row = (java.util.Vector)p.next(); - - // - // Eliminate rows with null or empty keys - // - String key = (String)row.elementAt(0); - if(key != null) - { - key = key.trim(); - if(!key.equals("")) - { - String val = (String) row.elementAt(1); - if(val == null) - { - val = ""; - } - - result.add(new PropertyDescriptor(key, val)); - } - } - } - return result; + assert _editable; + + if(isEditing()) + { + getCellEditor().stopCellEditing(); + } + java.util.Vector vector = _model.getDataVector(); + + java.util.LinkedList result = new java.util.LinkedList(_hiddenProperties); + + java.util.Iterator p = vector.iterator(); + while(p.hasNext()) + { + java.util.Vector row = (java.util.Vector)p.next(); + + // + // Eliminate rows with null or empty keys + // + String key = (String)row.elementAt(0); + if(key != null) + { + key = key.trim(); + if(!key.equals("")) + { + String val = (String) row.elementAt(1); + if(val == null) + { + val = ""; + } + + result.add(new PropertyDescriptor(key, val)); + } + } + } + return result; } private DefaultTableModel _model; diff --git a/java/src/IceGridGUI/Application/PropertySet.java b/java/src/IceGridGUI/Application/PropertySet.java index 745bc163aa3..8027977ef02 100755 --- a/java/src/IceGridGUI/Application/PropertySet.java +++ b/java/src/IceGridGUI/Application/PropertySet.java @@ -20,29 +20,29 @@ class PropertySet extends TreeNode static public PropertySetDescriptor copyDescriptor(PropertySetDescriptor d) { - PropertySetDescriptor psd = (PropertySetDescriptor)d.clone(); - psd.properties = new java.util.LinkedList(psd.properties); - return psd; + PropertySetDescriptor psd = (PropertySetDescriptor)d.clone(); + psd.properties = new java.util.LinkedList(psd.properties); + return psd; } public Component getTreeCellRendererComponent( - JTree tree, - Object value, - boolean sel, - boolean expanded, - boolean leaf, - int row, - boolean hasFocus) - { - if(_cellRenderer == null) - { - _cellRenderer = new DefaultTreeCellRenderer(); - _cellRenderer.setLeafIcon( - Utils.getIcon("/icons/16x16/property_set.png")); - } - - return _cellRenderer.getTreeCellRendererComponent( - tree, value, sel, expanded, leaf, row, hasFocus); + JTree tree, + Object value, + boolean sel, + boolean expanded, + boolean leaf, + int row, + boolean hasFocus) + { + if(_cellRenderer == null) + { + _cellRenderer = new DefaultTreeCellRenderer(); + _cellRenderer.setLeafIcon( + Utils.getIcon("/icons/16x16/property_set.png")); + } + + return _cellRenderer.getTreeCellRendererComponent( + tree, value, sel, expanded, leaf, row, hasFocus); } // @@ -50,182 +50,182 @@ class PropertySet extends TreeNode // public boolean[] getAvailableActions() { - boolean[] actions = new boolean[ACTION_COUNT]; - actions[COPY] = !_ephemeral; - - if(((TreeNode)_parent).getAvailableActions()[PASTE]) - { - actions[PASTE] = true; - } - actions[DELETE] = true; + boolean[] actions = new boolean[ACTION_COUNT]; + actions[COPY] = !_ephemeral; + + if(((TreeNode)_parent).getAvailableActions()[PASTE]) + { + actions[PASTE] = true; + } + actions[DELETE] = true; - if(!_ephemeral) - { - actions[SHOW_VARS] = true; - actions[SUBSTITUTE_VARS] = true; - } - return actions; + if(!_ephemeral) + { + actions[SHOW_VARS] = true; + actions[SUBSTITUTE_VARS] = true; + } + return actions; } public void copy() { - getCoordinator().setClipboard(copyDescriptor(_descriptor)); - getCoordinator().getActionsForMenu().get(PASTE).setEnabled(true); + getCoordinator().setClipboard(copyDescriptor(_descriptor)); + getCoordinator().getActionsForMenu().get(PASTE).setEnabled(true); } public void paste() { - ((TreeNode)_parent).paste(); + ((TreeNode)_parent).paste(); } public void destroy() { - PropertySetParent parent = (PropertySetParent)_parent; - parent.removePropertySet(this); + PropertySetParent parent = (PropertySetParent)_parent; + parent.removePropertySet(this); - if(!_ephemeral) - { - parent.removeDescriptor(_unsubstitutedId); - if(_editable != null) - { - parent.getEditable().removeElement(_unsubstitutedId, _editable, PropertySet.class); - } - else - { - parent.getEditable().markModified(); - } - getRoot().updated(); - } + if(!_ephemeral) + { + parent.removeDescriptor(_unsubstitutedId); + if(_editable != null) + { + parent.getEditable().removeElement(_unsubstitutedId, _editable, PropertySet.class); + } + else + { + parent.getEditable().markModified(); + } + getRoot().updated(); + } } public Editor getEditor() { - if(_editor == null) - { - if(_inServerInstance) - { - _editor = (PropertySetEditor)getRoot(). - getEditor(ServerInstancePropertySetEditor.class, this); - } - else - { - _editor = (PropertySetEditor)getRoot(). - getEditor(PropertySetEditor.class, this); - } - } - _editor.show(_unsubstitutedId, this); - return _editor; + if(_editor == null) + { + if(_inServerInstance) + { + _editor = (PropertySetEditor)getRoot(). + getEditor(ServerInstancePropertySetEditor.class, this); + } + else + { + _editor = (PropertySetEditor)getRoot(). + getEditor(PropertySetEditor.class, this); + } + } + _editor.show(_unsubstitutedId, this); + return _editor; } protected Editor createEditor() { - if(_inServerInstance) - { - return new ServerInstancePropertySetEditor(); - } - else - { - return new PropertySetEditor(); - } + if(_inServerInstance) + { + return new ServerInstancePropertySetEditor(); + } + else + { + return new PropertySetEditor(); + } } public boolean isEphemeral() { - return _ephemeral; + return _ephemeral; } public String unsubstitutedId() { - return _unsubstitutedId; + return _unsubstitutedId; } Object getDescriptor() { - return _descriptor; + return _descriptor; } Object saveDescriptor() { - return _descriptor.clone(); + return _descriptor.clone(); } void restoreDescriptor(Object savedDescriptor) { - PropertySetDescriptor clone = (PropertySetDescriptor)savedDescriptor; - _descriptor.references = clone.references; - _descriptor.properties = clone.properties; + PropertySetDescriptor clone = (PropertySetDescriptor)savedDescriptor; + _descriptor.references = clone.references; + _descriptor.properties = clone.properties; } void commit() { - if(_editable != null) - { - _editable.commit(); - } + if(_editable != null) + { + _editable.commit(); + } } Editable getEditable() { - if(_editable != null) - { - return _editable; - } - else - { - return ((PropertySetParent)_parent).getEditable(); - } + if(_editable != null) + { + return _editable; + } + else + { + return ((PropertySetParent)_parent).getEditable(); + } } PropertySet(boolean brandNew, - TreeNode parent, - String id, - String unsubstitutedId, - PropertySetDescriptor descriptor) + TreeNode parent, + String id, + String unsubstitutedId, + PropertySetDescriptor descriptor) { - super(parent, id); - _unsubstitutedId = unsubstitutedId; - _inServerInstance = (parent instanceof ServerInstance); - _ephemeral = false; - _editable = new Editable(brandNew); - rebuild(descriptor); + super(parent, id); + _unsubstitutedId = unsubstitutedId; + _inServerInstance = (parent instanceof ServerInstance); + _ephemeral = false; + _editable = new Editable(brandNew); + rebuild(descriptor); } PropertySet(TreeNode parent, - String id, - String unsubstitutedId, - PropertySetDescriptor descriptor) + String id, + String unsubstitutedId, + PropertySetDescriptor descriptor) { - super(parent, id); - _unsubstitutedId = unsubstitutedId; - _inServerInstance = (parent instanceof ServerInstance); - _ephemeral = false; - _editable = null; - rebuild(descriptor); + super(parent, id); + _unsubstitutedId = unsubstitutedId; + _inServerInstance = (parent instanceof ServerInstance); + _ephemeral = false; + _editable = null; + rebuild(descriptor); } PropertySet(TreeNode parent, String id, PropertySetDescriptor descriptor) { - super(parent, id); - _unsubstitutedId = id; - _inServerInstance = (parent instanceof ServerInstance); - _ephemeral = true; - _editable = null; - rebuild(descriptor); + super(parent, id); + _unsubstitutedId = id; + _inServerInstance = (parent instanceof ServerInstance); + _ephemeral = true; + _editable = null; + rebuild(descriptor); } void write(XMLWriter writer) throws java.io.IOException { - if(!_ephemeral) - { - writePropertySet(writer, _unsubstitutedId, - _inServerInstance ? "service" : "id", - _descriptor, null, null); - } + if(!_ephemeral) + { + writePropertySet(writer, _unsubstitutedId, + _inServerInstance ? "service" : "id", + _descriptor, null, null); + } } void rebuild(PropertySetDescriptor descriptor) { - _descriptor = descriptor; + _descriptor = descriptor; } private PropertySetDescriptor _descriptor; diff --git a/java/src/IceGridGUI/Application/PropertySetEditor.java b/java/src/IceGridGUI/Application/PropertySetEditor.java index dae73a2ab60..bad0ca590d2 100755 --- a/java/src/IceGridGUI/Application/PropertySetEditor.java +++ b/java/src/IceGridGUI/Application/PropertySetEditor.java @@ -34,240 +34,240 @@ class PropertySetEditor extends Editor { protected boolean applyUpdate(boolean refresh) { - PropertySet nps = (PropertySet)_target; - Root root = nps.getRoot(); - - root.disableSelectionListener(); - try - { - PropertySetParent parent = (PropertySetParent)nps.getParent(); - if(nps.isEphemeral()) - { - writeDescriptor(); - PropertySetDescriptor descriptor = - (PropertySetDescriptor)nps.getDescriptor(); - nps.destroy(); // just removes the child - - try - { - parent.tryAdd(getIdText(), descriptor); - } - catch(UpdateFailedException e) - { - // - // Add back ephemeral child - // - try - { - parent.insertPropertySet(nps, true); - } - catch(UpdateFailedException die) - { - assert false; - } - root.setSelectedNode(_target); - - JOptionPane.showMessageDialog( - root.getCoordinator().getMainFrame(), - e.toString(), - "Apply failed", - JOptionPane.ERROR_MESSAGE); - return false; - } - - // - // Success - // - _target = ((TreeNode)parent).findChildWithDescriptor(descriptor); - root.updated(); - if(refresh) - { - root.setSelectedNode(_target); - } - } - else if(!isSimpleUpdate()) - { - PropertySetDescriptor descriptor = - (PropertySetDescriptor)nps.getDescriptor(); - - try - { - parent.tryRename(_target.getId(), _oldId, getIdText()); - } - catch(UpdateFailedException e) - { - JOptionPane.showMessageDialog( - root.getCoordinator().getMainFrame(), - e.toString(), - "Apply failed", - JOptionPane.ERROR_MESSAGE); - return false; - } - - // - // Success - // - _target = ((TreeNode)parent).findChildWithDescriptor(descriptor); - writeDescriptor(); - root.updated(); - if(refresh) - { - root.setSelectedNode(_target); - } - } - else - { - writeDescriptor(); - root.updated(); - nps.getEditable().markModified(); - } - - if(refresh) - { - root.getCoordinator().getCurrentTab().showNode(_target); - } - _applyButton.setEnabled(false); - _discardButton.setEnabled(false); - return true; - } - finally - { - root.enableSelectionListener(); - } + PropertySet nps = (PropertySet)_target; + Root root = nps.getRoot(); + + root.disableSelectionListener(); + try + { + PropertySetParent parent = (PropertySetParent)nps.getParent(); + if(nps.isEphemeral()) + { + writeDescriptor(); + PropertySetDescriptor descriptor = + (PropertySetDescriptor)nps.getDescriptor(); + nps.destroy(); // just removes the child + + try + { + parent.tryAdd(getIdText(), descriptor); + } + catch(UpdateFailedException e) + { + // + // Add back ephemeral child + // + try + { + parent.insertPropertySet(nps, true); + } + catch(UpdateFailedException die) + { + assert false; + } + root.setSelectedNode(_target); + + JOptionPane.showMessageDialog( + root.getCoordinator().getMainFrame(), + e.toString(), + "Apply failed", + JOptionPane.ERROR_MESSAGE); + return false; + } + + // + // Success + // + _target = ((TreeNode)parent).findChildWithDescriptor(descriptor); + root.updated(); + if(refresh) + { + root.setSelectedNode(_target); + } + } + else if(!isSimpleUpdate()) + { + PropertySetDescriptor descriptor = + (PropertySetDescriptor)nps.getDescriptor(); + + try + { + parent.tryRename(_target.getId(), _oldId, getIdText()); + } + catch(UpdateFailedException e) + { + JOptionPane.showMessageDialog( + root.getCoordinator().getMainFrame(), + e.toString(), + "Apply failed", + JOptionPane.ERROR_MESSAGE); + return false; + } + + // + // Success + // + _target = ((TreeNode)parent).findChildWithDescriptor(descriptor); + writeDescriptor(); + root.updated(); + if(refresh) + { + root.setSelectedNode(_target); + } + } + else + { + writeDescriptor(); + root.updated(); + nps.getEditable().markModified(); + } + + if(refresh) + { + root.getCoordinator().getCurrentTab().showNode(_target); + } + _applyButton.setEnabled(false); + _discardButton.setEnabled(false); + return true; + } + finally + { + root.enableSelectionListener(); + } } Utils.Resolver getDetailResolver() { - Root root = _target.getRoot(); - - if(root.getCoordinator().substitute()) - { - return _target.getResolver(); - } - else - { - return null; - } + Root root = _target.getRoot(); + + if(root.getCoordinator().substitute()) + { + return _target.getResolver(); + } + else + { + return null; + } } PropertySetEditor() { - this("ID"); - _id.setToolTipText("The id of this Property Set"); - _id.getDocument().addDocumentListener(_updateListener); + this("ID"); + _id.setToolTipText("The id of this Property Set"); + _id.getDocument().addDocumentListener(_updateListener); } protected PropertySetEditor(String label) { - _idLabel = new JLabel(label); + _idLabel = new JLabel(label); - _propertySets.getDocument().addDocumentListener(_updateListener); - _propertySets.setToolTipText("Property Set References"); - _properties = new PropertiesField(this); + _propertySets.getDocument().addDocumentListener(_updateListener); + _propertySets.setToolTipText("Property Set References"); + _properties = new PropertiesField(this); } void writeDescriptor() { - PropertySetDescriptor descriptor = - (PropertySetDescriptor)getPropertySet().getDescriptor(); + PropertySetDescriptor descriptor = + (PropertySetDescriptor)getPropertySet().getDescriptor(); - descriptor.references = - (String[])_propertySets.getList().toArray(new String[0]); - descriptor.properties = _properties.getProperties(); - } + descriptor.references = + (String[])_propertySets.getList().toArray(new String[0]); + descriptor.properties = _properties.getProperties(); + } boolean isSimpleUpdate() { - return getIdText().equals(_oldId); + return getIdText().equals(_oldId); } protected void appendProperties(DefaultFormBuilder builder) { - builder.append(_idLabel); - builder.append(getIdComponent(), 3); - builder.nextLine(); - - builder.append("Property Sets"); - builder.append(_propertySets, 3); - builder.nextLine(); - - builder.append("Properties"); - builder.nextLine(); - builder.append(""); - builder.nextLine(); - builder.append(""); - builder.nextLine(); - builder.append(""); - - builder.nextRow(-6); - JScrollPane scrollPane = new JScrollPane(_properties); - CellConstraints cc = new CellConstraints(); - builder.add(scrollPane, - cc.xywh(builder.getColumn(), builder.getRow(), 3, 7)); - builder.nextRow(6); - builder.nextLine(); + builder.append(_idLabel); + builder.append(getIdComponent(), 3); + builder.nextLine(); + + builder.append("Property Sets"); + builder.append(_propertySets, 3); + builder.nextLine(); + + builder.append("Properties"); + builder.nextLine(); + builder.append(""); + builder.nextLine(); + builder.append(""); + builder.nextLine(); + builder.append(""); + + builder.nextRow(-6); + JScrollPane scrollPane = new JScrollPane(_properties); + CellConstraints cc = new CellConstraints(); + builder.add(scrollPane, + cc.xywh(builder.getColumn(), builder.getRow(), 3, 7)); + builder.nextRow(6); + builder.nextLine(); } protected void buildPropertiesPanel() { - super.buildPropertiesPanel(); - _propertiesPanel.setName("Named Property Set"); + super.buildPropertiesPanel(); + _propertiesPanel.setName("Named Property Set"); } protected boolean validate() { - return check(new String[]{_idLabel.getText(), getIdText()}); + return check(new String[]{_idLabel.getText(), getIdText()}); } void show(String unsubstitutedId, PropertySet nps) { - detectUpdates(false); - _target = nps; - - Utils.Resolver resolver = getDetailResolver(); - boolean isEditable = (resolver == null); - - PropertySetDescriptor descriptor = - (PropertySetDescriptor)nps.getDescriptor(); - - showId(unsubstitutedId, resolver); - _oldId = unsubstitutedId; - - _propertySets.setList(java.util.Arrays.asList(descriptor.references), - resolver); - _propertySets.setEditable(isEditable); - - _properties.setProperties(descriptor.properties, null, null, - getDetailResolver(), isEditable); - - _applyButton.setEnabled(nps.isEphemeral()); - _discardButton.setEnabled(nps.isEphemeral()); - detectUpdates(true); + detectUpdates(false); + _target = nps; + + Utils.Resolver resolver = getDetailResolver(); + boolean isEditable = (resolver == null); + + PropertySetDescriptor descriptor = + (PropertySetDescriptor)nps.getDescriptor(); + + showId(unsubstitutedId, resolver); + _oldId = unsubstitutedId; + + _propertySets.setList(java.util.Arrays.asList(descriptor.references), + resolver); + _propertySets.setEditable(isEditable); + + _properties.setProperties(descriptor.properties, null, null, + getDetailResolver(), isEditable); + + _applyButton.setEnabled(nps.isEphemeral()); + _discardButton.setEnabled(nps.isEphemeral()); + detectUpdates(true); } protected JComponent getIdComponent() { - return _id; + return _id; } protected String getIdText() { - return _id.getText().trim(); + return _id.getText().trim(); } protected void showId(String unsubstitutedId, Utils.Resolver resolver) { - // - // This version does NOT substitute the ID - // - _id.setText(unsubstitutedId); - _id.setEditable(resolver == null); + // + // This version does NOT substitute the ID + // + _id.setText(unsubstitutedId); + _id.setEditable(resolver == null); } private PropertySet getPropertySet() { - return (PropertySet)_target; + return (PropertySet)_target; } private String _oldId; diff --git a/java/src/IceGridGUI/Application/PropertySetParent.java b/java/src/IceGridGUI/Application/PropertySetParent.java index b7a285650ff..9d5f7a254e8 100755 --- a/java/src/IceGridGUI/Application/PropertySetParent.java +++ b/java/src/IceGridGUI/Application/PropertySetParent.java @@ -14,13 +14,13 @@ import IceGridGUI.*; interface PropertySetParent { void tryAdd(String id, PropertySetDescriptor descriptor) - throws UpdateFailedException; + throws UpdateFailedException; void tryRename(String oldId, String oldUnresolveId, String newUnresolvedId) - throws UpdateFailedException; + throws UpdateFailedException; void insertPropertySet(PropertySet nps, boolean fireEvent) - throws UpdateFailedException; + throws UpdateFailedException; void removePropertySet(PropertySet nps); diff --git a/java/src/IceGridGUI/Application/PropertySets.java b/java/src/IceGridGUI/Application/PropertySets.java index 2f090f2fb57..843d0f2cc59 100755 --- a/java/src/IceGridGUI/Application/PropertySets.java +++ b/java/src/IceGridGUI/Application/PropertySets.java @@ -20,17 +20,17 @@ class PropertySets extends ListTreeNode implements PropertySetParent static public java.util.Map copyDescriptors(java.util.Map descriptors) { - java.util.Map copy = new java.util.HashMap(); - java.util.Iterator p = descriptors.entrySet().iterator(); - while(p.hasNext()) - { - java.util.Map.Entry entry = (java.util.Map.Entry)p.next(); + java.util.Map copy = new java.util.HashMap(); + java.util.Iterator p = descriptors.entrySet().iterator(); + while(p.hasNext()) + { + java.util.Map.Entry entry = (java.util.Map.Entry)p.next(); - copy.put(entry.getKey(), - PropertySet.copyDescriptor( - (PropertySetDescriptor)entry.getValue())); - } - return copy; + copy.put(entry.getKey(), + PropertySet.copyDescriptor( + (PropertySetDescriptor)entry.getValue())); + } + return copy; } // @@ -38,215 +38,215 @@ class PropertySets extends ListTreeNode implements PropertySetParent // public boolean[] getAvailableActions() { - boolean[] actions = new boolean[ACTION_COUNT]; + boolean[] actions = new boolean[ACTION_COUNT]; - Object descriptor = getCoordinator().getClipboard(); - if(descriptor != null) - { - actions[PASTE] = descriptor instanceof PropertySetDescriptor; - } + Object descriptor = getCoordinator().getClipboard(); + if(descriptor != null) + { + actions[PASTE] = descriptor instanceof PropertySetDescriptor; + } - actions[NEW_PROPERTY_SET] = true; - return actions; + actions[NEW_PROPERTY_SET] = true; + return actions; } public JPopupMenu getPopupMenu() { - ApplicationActions actions = getCoordinator().getActionsForPopup(); - if(_popup == null) - { - _popup = new JPopupMenu(); - _popup.add(actions.get(NEW_PROPERTY_SET)); - } - actions.setTarget(this); - return _popup; + ApplicationActions actions = getCoordinator().getActionsForPopup(); + if(_popup == null) + { + _popup = new JPopupMenu(); + _popup.add(actions.get(NEW_PROPERTY_SET)); + } + actions.setTarget(this); + return _popup; } public void newPropertySet() { - PropertySetDescriptor descriptor = new - PropertySetDescriptor(new String[0], - new java.util.LinkedList()); + PropertySetDescriptor descriptor = new + PropertySetDescriptor(new String[0], + new java.util.LinkedList()); - newPropertySet(descriptor); + newPropertySet(descriptor); } public void paste() { - Object descriptor = getCoordinator().getClipboard(); - - PropertySetDescriptor d = PropertySet.copyDescriptor( - (PropertySetDescriptor)descriptor); - newPropertySet(d); + Object descriptor = getCoordinator().getClipboard(); + + PropertySetDescriptor d = PropertySet.copyDescriptor( + (PropertySetDescriptor)descriptor); + newPropertySet(d); } PropertySets(TreeNode parent, java.util.Map desc) - throws UpdateFailedException + throws UpdateFailedException { - super(false, parent, "Property Sets"); - _descriptors = desc; - - java.util.Iterator p = _descriptors.entrySet().iterator(); - while(p.hasNext()) - { - java.util.Map.Entry entry = (java.util.Map.Entry)p.next(); - - String id = (String)entry.getKey(); + super(false, parent, "Property Sets"); + _descriptors = desc; + + java.util.Iterator p = _descriptors.entrySet().iterator(); + while(p.hasNext()) + { + java.util.Map.Entry entry = (java.util.Map.Entry)p.next(); + + String id = (String)entry.getKey(); - insertChild(new PropertySet(false, this, id, id, - (PropertySetDescriptor)entry.getValue()), false); - } + insertChild(new PropertySet(false, this, id, id, + (PropertySetDescriptor)entry.getValue()), false); + } } void update(java.util.Map updates, String[] removePropertySets) - throws UpdateFailedException - { - // - // Note: _descriptors is updated by Root - // - - // - // One big set of removes - // - removeChildren(removePropertySets); - - // - // One big set of updates, followed by inserts - // - java.util.Vector newChildren = new java.util.Vector(); - - java.util.Iterator p = updates.entrySet().iterator(); - while(p.hasNext()) - { - java.util.Map.Entry entry = (java.util.Map.Entry)p.next(); - String id = (String)entry.getKey(); - PropertySetDescriptor psd = (PropertySetDescriptor)entry.getValue(); - PropertySet child = (PropertySet)findChild(id); - if(child == null) - { - newChildren.add( - new PropertySet(false, this, id, id, psd)); - } - else - { - child.rebuild(psd); - } - } - insertChildren(newChildren, true); + throws UpdateFailedException + { + // + // Note: _descriptors is updated by Root + // + + // + // One big set of removes + // + removeChildren(removePropertySets); + + // + // One big set of updates, followed by inserts + // + java.util.Vector newChildren = new java.util.Vector(); + + java.util.Iterator p = updates.entrySet().iterator(); + while(p.hasNext()) + { + java.util.Map.Entry entry = (java.util.Map.Entry)p.next(); + String id = (String)entry.getKey(); + PropertySetDescriptor psd = (PropertySetDescriptor)entry.getValue(); + PropertySet child = (PropertySet)findChild(id); + if(child == null) + { + newChildren.add( + new PropertySet(false, this, id, id, psd)); + } + else + { + child.rebuild(psd); + } + } + insertChildren(newChildren, true); } java.util.Map getUpdates() { - java.util.Map updates = new java.util.HashMap(); - java.util.Iterator p = _children.iterator(); - while(p.hasNext()) - { - PropertySet ps = (PropertySet)p.next(); - if(ps.getEditable().isNew() || ps.getEditable().isModified()) - { - updates.put(ps.getId(), ps.getDescriptor()); - } - } - return updates; + java.util.Map updates = new java.util.HashMap(); + java.util.Iterator p = _children.iterator(); + while(p.hasNext()) + { + PropertySet ps = (PropertySet)p.next(); + if(ps.getEditable().isNew() || ps.getEditable().isModified()) + { + updates.put(ps.getId(), ps.getDescriptor()); + } + } + return updates; } void commit() { - _editable.commit(); - java.util.Iterator p = _children.iterator(); - while(p.hasNext()) - { - PropertySet ps = (PropertySet)p.next(); - ps.commit(); - } + _editable.commit(); + java.util.Iterator p = _children.iterator(); + while(p.hasNext()) + { + PropertySet ps = (PropertySet)p.next(); + ps.commit(); + } } Object getDescriptor() { - return _descriptors; + return _descriptors; } public void tryAdd(String id, PropertySetDescriptor descriptor) - throws UpdateFailedException + throws UpdateFailedException { - insertChild( - new PropertySet(true, this, id, id, descriptor), - true); + insertChild( + new PropertySet(true, this, id, id, descriptor), + true); - _descriptors.put(id, descriptor); + _descriptors.put(id, descriptor); } public void tryRename(String oldId, String oldId2, String newId) - throws UpdateFailedException - { - PropertySet oldChild = (PropertySet)findChild(oldId); - assert oldChild != null; - removeChild(oldChild); - PropertySetDescriptor descriptor = (PropertySetDescriptor)oldChild.getDescriptor(); - - try - { - insertChild( - new PropertySet(true, this, newId, newId, descriptor), - true); - } - catch(UpdateFailedException ex) - { - try - { - insertChild(oldChild, true); - } - catch(UpdateFailedException ufe) - { - assert false; - } - throw ex; - } - - _editable.removeElement(oldId, oldChild.getEditable(), PropertySet.class); - _descriptors.remove(oldId); - _descriptors.put(newId, descriptor); + throws UpdateFailedException + { + PropertySet oldChild = (PropertySet)findChild(oldId); + assert oldChild != null; + removeChild(oldChild); + PropertySetDescriptor descriptor = (PropertySetDescriptor)oldChild.getDescriptor(); + + try + { + insertChild( + new PropertySet(true, this, newId, newId, descriptor), + true); + } + catch(UpdateFailedException ex) + { + try + { + insertChild(oldChild, true); + } + catch(UpdateFailedException ufe) + { + assert false; + } + throw ex; + } + + _editable.removeElement(oldId, oldChild.getEditable(), PropertySet.class); + _descriptors.remove(oldId); + _descriptors.put(newId, descriptor); } public void insertPropertySet(PropertySet nps, boolean fireEvent) - throws UpdateFailedException + throws UpdateFailedException { - insertChild(nps, fireEvent); + insertChild(nps, fireEvent); } public void removePropertySet(PropertySet nps) { - removeChild(nps); + removeChild(nps); } public void removeDescriptor(String id) { - _descriptors.remove(id); + _descriptors.remove(id); } public Editable getEditable() { - return super.getEditable(); + return super.getEditable(); } private void newPropertySet(PropertySetDescriptor descriptor) { - String id = makeNewChildId("PropertySet"); + String id = makeNewChildId("PropertySet"); - PropertySet propertySet = - new PropertySet(this, id, descriptor); + PropertySet propertySet = + new PropertySet(this, id, descriptor); - try - { - insertChild(propertySet, true); - } - catch(UpdateFailedException e) - { - assert false; - } - getRoot().setSelectedNode(propertySet); + try + { + insertChild(propertySet, true); + } + catch(UpdateFailedException e) + { + assert false; + } + getRoot().setSelectedNode(propertySet); } private java.util.Map _descriptors; diff --git a/java/src/IceGridGUI/Application/ReplicaGroup.java b/java/src/IceGridGUI/Application/ReplicaGroup.java index a65a48b3989..50abc1dd7e2 100755 --- a/java/src/IceGridGUI/Application/ReplicaGroup.java +++ b/java/src/IceGridGUI/Application/ReplicaGroup.java @@ -20,27 +20,27 @@ class ReplicaGroup extends TreeNode static public ReplicaGroupDescriptor copyDescriptor(ReplicaGroupDescriptor d) { - return (ReplicaGroupDescriptor)d.clone(); + return (ReplicaGroupDescriptor)d.clone(); } public Component getTreeCellRendererComponent( - JTree tree, - Object value, - boolean sel, - boolean expanded, - boolean leaf, - int row, - boolean hasFocus) - { - if(_cellRenderer == null) - { - _cellRenderer = new DefaultTreeCellRenderer(); - _cellRenderer.setLeafIcon( - Utils.getIcon("/icons/16x16/replica_group.png")); - } - - return _cellRenderer.getTreeCellRendererComponent( - tree, value, sel, expanded, leaf, row, hasFocus); + JTree tree, + Object value, + boolean sel, + boolean expanded, + boolean leaf, + int row, + boolean hasFocus) + { + if(_cellRenderer == null) + { + _cellRenderer = new DefaultTreeCellRenderer(); + _cellRenderer.setLeafIcon( + Utils.getIcon("/icons/16x16/replica_group.png")); + } + + return _cellRenderer.getTreeCellRendererComponent( + tree, value, sel, expanded, leaf, row, hasFocus); } // @@ -48,173 +48,173 @@ class ReplicaGroup extends TreeNode // public boolean[] getAvailableActions() { - boolean[] actions = new boolean[ACTION_COUNT]; - actions[COPY] = !_ephemeral; - - if(((TreeNode)_parent).getAvailableActions()[PASTE]) - { - actions[PASTE] = true; - } - actions[DELETE] = true; + boolean[] actions = new boolean[ACTION_COUNT]; + actions[COPY] = !_ephemeral; + + if(((TreeNode)_parent).getAvailableActions()[PASTE]) + { + actions[PASTE] = true; + } + actions[DELETE] = true; - if(!_ephemeral) - { - actions[SHOW_VARS] = true; - actions[SUBSTITUTE_VARS] = true; - } - return actions; + if(!_ephemeral) + { + actions[SHOW_VARS] = true; + actions[SUBSTITUTE_VARS] = true; + } + return actions; } public void copy() { - getCoordinator().setClipboard(copyDescriptor(_descriptor)); - getCoordinator().getActionsForMenu().get(PASTE).setEnabled(true); + getCoordinator().setClipboard(copyDescriptor(_descriptor)); + getCoordinator().getActionsForMenu().get(PASTE).setEnabled(true); } public void paste() { - ((TreeNode)_parent).paste(); + ((TreeNode)_parent).paste(); } public void destroy() { - ReplicaGroups replicaGroups = (ReplicaGroups)_parent; - replicaGroups.removeChild(this); + ReplicaGroups replicaGroups = (ReplicaGroups)_parent; + replicaGroups.removeChild(this); - if(!_ephemeral) - { - replicaGroups.removeDescriptor(_descriptor); - replicaGroups.getEditable(). - removeElement(_id, _editable, ReplicaGroup.class); - getRoot().updated(); - } + if(!_ephemeral) + { + replicaGroups.removeDescriptor(_descriptor); + replicaGroups.getEditable(). + removeElement(_id, _editable, ReplicaGroup.class); + getRoot().updated(); + } } public Editor getEditor() { - if(_editor == null) - { - _editor = (ReplicaGroupEditor)getRoot().getEditor(ReplicaGroupEditor.class, this); - } - _editor.show(this); - return _editor; + if(_editor == null) + { + _editor = (ReplicaGroupEditor)getRoot().getEditor(ReplicaGroupEditor.class, this); + } + _editor.show(this); + return _editor; } protected Editor createEditor() { - return new ReplicaGroupEditor(); + return new ReplicaGroupEditor(); } public boolean isEphemeral() { - return _ephemeral; + return _ephemeral; } Object getDescriptor() { - return _descriptor; + return _descriptor; } Object saveDescriptor() { - return _descriptor.clone(); + return _descriptor.clone(); } void restoreDescriptor(Object savedDescriptor) { - ReplicaGroupDescriptor clone = (ReplicaGroupDescriptor)savedDescriptor; - _descriptor.id = clone.id; - _descriptor.description = clone.description; - _descriptor.objects = clone.objects; - _descriptor.loadBalancing = clone.loadBalancing; + ReplicaGroupDescriptor clone = (ReplicaGroupDescriptor)savedDescriptor; + _descriptor.id = clone.id; + _descriptor.description = clone.description; + _descriptor.objects = clone.objects; + _descriptor.loadBalancing = clone.loadBalancing; } void commit() { - _editable.commit(); + _editable.commit(); } Editable getEditable() { - return _editable; + return _editable; } ReplicaGroup(boolean brandNew, - TreeNode parent, - ReplicaGroupDescriptor descriptor) + TreeNode parent, + ReplicaGroupDescriptor descriptor) { - super(parent, descriptor.id); - _ephemeral = false; - _editable = new Editable(brandNew); - rebuild(descriptor); + super(parent, descriptor.id); + _ephemeral = false; + _editable = new Editable(brandNew); + rebuild(descriptor); } ReplicaGroup(TreeNode parent, ReplicaGroupDescriptor descriptor) { - super(parent, descriptor.id); - _ephemeral = true; - _editable = null; - rebuild(descriptor); + super(parent, descriptor.id); + _ephemeral = true; + _editable = null; + rebuild(descriptor); } void write(XMLWriter writer) throws java.io.IOException { - if(!_ephemeral) - { - java.util.List attributes = new java.util.LinkedList(); - attributes.add(createAttribute("id", _descriptor.id)); - - if(_descriptor.loadBalancing == null && - _descriptor.description.length() == 0 && _descriptor.objects.isEmpty()) - { - writer.writeElement("replica-group", attributes); - } - else - { - writer.writeStartTag("replica-group", attributes); - - if(_descriptor.description.length() > 0) - { - writer.writeElement("description", _descriptor.description); - } - assert _descriptor.loadBalancing != null; - - attributes.clear(); - if(_descriptor.loadBalancing instanceof RandomLoadBalancingPolicy) - { - attributes.add(createAttribute("type", "random")); - } - else if(_descriptor.loadBalancing instanceof OrderedLoadBalancingPolicy) - { - attributes.add(createAttribute("type", "ordered")); - } - else if(_descriptor.loadBalancing instanceof RoundRobinLoadBalancingPolicy) - { - attributes.add(createAttribute("type", "round-robin")); - } - else if(_descriptor.loadBalancing instanceof AdaptiveLoadBalancingPolicy) - { - attributes.add(createAttribute("type", "adaptive")); - AdaptiveLoadBalancingPolicy policy = - (AdaptiveLoadBalancingPolicy)_descriptor.loadBalancing; - attributes.add(createAttribute("load-sample", policy.loadSample)); - } - attributes.add(createAttribute("n-replicas", - _descriptor.loadBalancing.nReplicas)); - writer.writeElement("load-balancing", attributes); - - writeObjects("object", writer, _descriptor.objects, null); - writer.writeEndTag("replica-group"); - } - } + if(!_ephemeral) + { + java.util.List attributes = new java.util.LinkedList(); + attributes.add(createAttribute("id", _descriptor.id)); + + if(_descriptor.loadBalancing == null && + _descriptor.description.length() == 0 && _descriptor.objects.isEmpty()) + { + writer.writeElement("replica-group", attributes); + } + else + { + writer.writeStartTag("replica-group", attributes); + + if(_descriptor.description.length() > 0) + { + writer.writeElement("description", _descriptor.description); + } + assert _descriptor.loadBalancing != null; + + attributes.clear(); + if(_descriptor.loadBalancing instanceof RandomLoadBalancingPolicy) + { + attributes.add(createAttribute("type", "random")); + } + else if(_descriptor.loadBalancing instanceof OrderedLoadBalancingPolicy) + { + attributes.add(createAttribute("type", "ordered")); + } + else if(_descriptor.loadBalancing instanceof RoundRobinLoadBalancingPolicy) + { + attributes.add(createAttribute("type", "round-robin")); + } + else if(_descriptor.loadBalancing instanceof AdaptiveLoadBalancingPolicy) + { + attributes.add(createAttribute("type", "adaptive")); + AdaptiveLoadBalancingPolicy policy = + (AdaptiveLoadBalancingPolicy)_descriptor.loadBalancing; + attributes.add(createAttribute("load-sample", policy.loadSample)); + } + attributes.add(createAttribute("n-replicas", + _descriptor.loadBalancing.nReplicas)); + writer.writeElement("load-balancing", attributes); + + writeObjects("object", writer, _descriptor.objects, null); + writer.writeEndTag("replica-group"); + } + } } void rebuild(ReplicaGroupDescriptor descriptor) { - _descriptor = descriptor; - // - // And that's it since there is no children - // + _descriptor = descriptor; + // + // And that's it since there is no children + // } private ReplicaGroupDescriptor _descriptor; diff --git a/java/src/IceGridGUI/Application/ReplicaGroupEditor.java b/java/src/IceGridGUI/Application/ReplicaGroupEditor.java index a93852cd935..d0762ed687a 100755 --- a/java/src/IceGridGUI/Application/ReplicaGroupEditor.java +++ b/java/src/IceGridGUI/Application/ReplicaGroupEditor.java @@ -34,402 +34,402 @@ class ReplicaGroupEditor extends Editor { protected boolean applyUpdate(boolean refresh) { - ReplicaGroup replicaGroup = (ReplicaGroup)_target; - Root root = replicaGroup.getRoot(); - - root.disableSelectionListener(); - try - { - if(replicaGroup.isEphemeral()) - { - ReplicaGroups replicaGroups = (ReplicaGroups)replicaGroup.getParent(); - writeDescriptor(); - ReplicaGroupDescriptor descriptor = - (ReplicaGroupDescriptor)replicaGroup.getDescriptor(); - replicaGroup.destroy(); // just removes the child - - try - { - replicaGroups.tryAdd(descriptor, true); - } - catch(UpdateFailedException e) - { - // - // Add back ephemeral child - // - try - { - replicaGroups.insertChild(replicaGroup, true); - } - catch(UpdateFailedException die) - { - assert false; - } - root.setSelectedNode(replicaGroup); - - JOptionPane.showMessageDialog( - root.getCoordinator().getMainFrame(), - e.toString(), - "Apply failed", - JOptionPane.ERROR_MESSAGE); - return false; - } - - // - // Success - // - _target = replicaGroups.findChildWithDescriptor(descriptor); - root.updated(); - } - else if(isSimpleUpdate()) - { - writeDescriptor(); - root.updated(); - replicaGroup.getEditable().markModified(); - } - else - { - // - // Save to be able to rollback - // - Object savedDescriptor = replicaGroup.saveDescriptor(); - ReplicaGroups replicaGroups = (ReplicaGroups)replicaGroup.getParent(); - writeDescriptor(); - ReplicaGroupDescriptor descriptor = - (ReplicaGroupDescriptor)replicaGroup.getDescriptor(); - - replicaGroups.removeChild(replicaGroup); - try - { - replicaGroups.tryAdd(descriptor, false); - } - catch(UpdateFailedException e) - { - // - // Restore all - // - try - { - replicaGroups.insertChild(replicaGroup, true); - } - catch(UpdateFailedException die) - { - assert false; - } - replicaGroup.restoreDescriptor(savedDescriptor); - root.setSelectedNode(_target); - - JOptionPane.showMessageDialog( - root.getCoordinator().getMainFrame(), - e.toString(), - "Apply failed", - JOptionPane.ERROR_MESSAGE); - return false; - } - - // - // Success - // - - // replaced by brand new ReplicaGroup - replicaGroups.getEditable(). - removeElement(replicaGroup.getId(), - replicaGroup.getEditable(), ReplicaGroup.class); - - _target = replicaGroups.findChildWithDescriptor(descriptor); - root.updated(); - - if(refresh) - { - root.setSelectedNode(_target); - } - } - - if(refresh) - { - root.getCoordinator().getCurrentTab().showNode(_target); - } - _applyButton.setEnabled(false); - _discardButton.setEnabled(false); - return true; - } - finally - { - root.enableSelectionListener(); - } + ReplicaGroup replicaGroup = (ReplicaGroup)_target; + Root root = replicaGroup.getRoot(); + + root.disableSelectionListener(); + try + { + if(replicaGroup.isEphemeral()) + { + ReplicaGroups replicaGroups = (ReplicaGroups)replicaGroup.getParent(); + writeDescriptor(); + ReplicaGroupDescriptor descriptor = + (ReplicaGroupDescriptor)replicaGroup.getDescriptor(); + replicaGroup.destroy(); // just removes the child + + try + { + replicaGroups.tryAdd(descriptor, true); + } + catch(UpdateFailedException e) + { + // + // Add back ephemeral child + // + try + { + replicaGroups.insertChild(replicaGroup, true); + } + catch(UpdateFailedException die) + { + assert false; + } + root.setSelectedNode(replicaGroup); + + JOptionPane.showMessageDialog( + root.getCoordinator().getMainFrame(), + e.toString(), + "Apply failed", + JOptionPane.ERROR_MESSAGE); + return false; + } + + // + // Success + // + _target = replicaGroups.findChildWithDescriptor(descriptor); + root.updated(); + } + else if(isSimpleUpdate()) + { + writeDescriptor(); + root.updated(); + replicaGroup.getEditable().markModified(); + } + else + { + // + // Save to be able to rollback + // + Object savedDescriptor = replicaGroup.saveDescriptor(); + ReplicaGroups replicaGroups = (ReplicaGroups)replicaGroup.getParent(); + writeDescriptor(); + ReplicaGroupDescriptor descriptor = + (ReplicaGroupDescriptor)replicaGroup.getDescriptor(); + + replicaGroups.removeChild(replicaGroup); + try + { + replicaGroups.tryAdd(descriptor, false); + } + catch(UpdateFailedException e) + { + // + // Restore all + // + try + { + replicaGroups.insertChild(replicaGroup, true); + } + catch(UpdateFailedException die) + { + assert false; + } + replicaGroup.restoreDescriptor(savedDescriptor); + root.setSelectedNode(_target); + + JOptionPane.showMessageDialog( + root.getCoordinator().getMainFrame(), + e.toString(), + "Apply failed", + JOptionPane.ERROR_MESSAGE); + return false; + } + + // + // Success + // + + // replaced by brand new ReplicaGroup + replicaGroups.getEditable(). + removeElement(replicaGroup.getId(), + replicaGroup.getEditable(), ReplicaGroup.class); + + _target = replicaGroups.findChildWithDescriptor(descriptor); + root.updated(); + + if(refresh) + { + root.setSelectedNode(_target); + } + } + + if(refresh) + { + root.getCoordinator().getCurrentTab().showNode(_target); + } + _applyButton.setEnabled(false); + _discardButton.setEnabled(false); + return true; + } + finally + { + root.enableSelectionListener(); + } } Utils.Resolver getDetailResolver() { - Root root = _target.getRoot(); - - if(root.getCoordinator().substitute()) - { - return root.getResolver(); - } - else - { - return null; - } + Root root = _target.getRoot(); + + if(root.getCoordinator().substitute()) + { + return root.getResolver(); + } + else + { + return null; + } } ReplicaGroupEditor() { - _objects = new MapField(this, "Identity", "Type", true); - - // - // load balancing - // - _loadBalancing.addItemListener(new ItemListener() - { - public void itemStateChanged(ItemEvent e) - { - if(e.getStateChange() == ItemEvent.SELECTED) - { - updated(); - - Object item = e.getItem(); - _loadSampleLabel.setVisible(item == ADAPTIVE); - _loadSample.setVisible(item == ADAPTIVE); - } - } - }); - _loadBalancing.setToolTipText( - "<html>Specifies how IceGrid selects adapters and return<br>" - + "their endpoints when resolving a replica group ID</html>"); - - // - // Associate updateListener with various fields - // - _id.getDocument().addDocumentListener(_updateListener); - _id.setToolTipText("Must be unique within this IceGrid deployment"); - - _description.getDocument().addDocumentListener(_updateListener); - _description.setToolTipText( - "An optional description for this replica group"); - - _nReplicas.getDocument().addDocumentListener(_updateListener); - _nReplicas.setToolTipText("<html>IceGrid returns the endpoints of " - + "up to <i>number</i> adapters<br>" - + "when resolving a replica group ID.<br>" - + "Enter 0 to returns the endpoints of all adapters.</html>"); - - _loadSample.setEditable(true); - JTextField loadSampleTextField = (JTextField) - _loadSample.getEditor().getEditorComponent(); - loadSampleTextField.getDocument().addDocumentListener(_updateListener); - _loadSample.setToolTipText( - "Use the load average or CPU usage over the last 1, 5 or 15 minutes?"); + _objects = new MapField(this, "Identity", "Type", true); + + // + // load balancing + // + _loadBalancing.addItemListener(new ItemListener() + { + public void itemStateChanged(ItemEvent e) + { + if(e.getStateChange() == ItemEvent.SELECTED) + { + updated(); + + Object item = e.getItem(); + _loadSampleLabel.setVisible(item == ADAPTIVE); + _loadSample.setVisible(item == ADAPTIVE); + } + } + }); + _loadBalancing.setToolTipText( + "<html>Specifies how IceGrid selects adapters and return<br>" + + "their endpoints when resolving a replica group ID</html>"); + + // + // Associate updateListener with various fields + // + _id.getDocument().addDocumentListener(_updateListener); + _id.setToolTipText("Must be unique within this IceGrid deployment"); + + _description.getDocument().addDocumentListener(_updateListener); + _description.setToolTipText( + "An optional description for this replica group"); + + _nReplicas.getDocument().addDocumentListener(_updateListener); + _nReplicas.setToolTipText("<html>IceGrid returns the endpoints of " + + "up to <i>number</i> adapters<br>" + + "when resolving a replica group ID.<br>" + + "Enter 0 to returns the endpoints of all adapters.</html>"); + + _loadSample.setEditable(true); + JTextField loadSampleTextField = (JTextField) + _loadSample.getEditor().getEditorComponent(); + loadSampleTextField.getDocument().addDocumentListener(_updateListener); + _loadSample.setToolTipText( + "Use the load average or CPU usage over the last 1, 5 or 15 minutes?"); } void writeDescriptor() { - ReplicaGroupDescriptor descriptor = - (ReplicaGroupDescriptor)getReplicaGroup().getDescriptor(); - - descriptor.id = _id.getText().trim(); - descriptor.description = _description.getText(); - descriptor.objects = mapToObjectDescriptorSeq(_objects.get()); - - Object loadBalancing = _loadBalancing.getSelectedItem(); - if(loadBalancing == ORDERED) - { - descriptor.loadBalancing = new OrderedLoadBalancingPolicy( - _nReplicas.getText().trim()); - } - else if(loadBalancing == RANDOM) - { - descriptor.loadBalancing = new RandomLoadBalancingPolicy( - _nReplicas.getText().trim()); - } - else if(loadBalancing == ROUND_ROBIN) - { - descriptor.loadBalancing = new RoundRobinLoadBalancingPolicy( - _nReplicas.getText().trim()); - } - else if(loadBalancing == ADAPTIVE) - { - descriptor.loadBalancing = new AdaptiveLoadBalancingPolicy( - _nReplicas.getText().trim(), - _loadSample.getSelectedItem().toString().trim()); - } - else - { - assert false; - } - } + ReplicaGroupDescriptor descriptor = + (ReplicaGroupDescriptor)getReplicaGroup().getDescriptor(); + + descriptor.id = _id.getText().trim(); + descriptor.description = _description.getText(); + descriptor.objects = mapToObjectDescriptorSeq(_objects.get()); + + Object loadBalancing = _loadBalancing.getSelectedItem(); + if(loadBalancing == ORDERED) + { + descriptor.loadBalancing = new OrderedLoadBalancingPolicy( + _nReplicas.getText().trim()); + } + else if(loadBalancing == RANDOM) + { + descriptor.loadBalancing = new RandomLoadBalancingPolicy( + _nReplicas.getText().trim()); + } + else if(loadBalancing == ROUND_ROBIN) + { + descriptor.loadBalancing = new RoundRobinLoadBalancingPolicy( + _nReplicas.getText().trim()); + } + else if(loadBalancing == ADAPTIVE) + { + descriptor.loadBalancing = new AdaptiveLoadBalancingPolicy( + _nReplicas.getText().trim(), + _loadSample.getSelectedItem().toString().trim()); + } + else + { + assert false; + } + } boolean isSimpleUpdate() { - ReplicaGroupDescriptor descriptor = - (ReplicaGroupDescriptor)getReplicaGroup().getDescriptor(); - return descriptor.id.equals(_id.getText().trim()); + ReplicaGroupDescriptor descriptor = + (ReplicaGroupDescriptor)getReplicaGroup().getDescriptor(); + return descriptor.id.equals(_id.getText().trim()); } protected void appendProperties(DefaultFormBuilder builder) { - builder.append("Replica Group ID"); - builder.append(_id, 3); - builder.nextLine(); - - builder.append("Description"); - builder.nextLine(); - builder.append(""); - builder.nextRow(-2); - CellConstraints cc = new CellConstraints(); - JScrollPane scrollPane = new JScrollPane(_description); - builder.add(scrollPane, - cc.xywh(builder.getColumn(), builder.getRow(), 3, 3)); - builder.nextRow(2); - builder.nextLine(); - - builder.append("Well-known Objects"); - builder.nextLine(); - builder.append(""); - builder.nextLine(); - builder.append(""); - builder.nextLine(); - builder.append(""); - builder.nextRow(-6); - scrollPane = new JScrollPane(_objects); - builder.add(scrollPane, - cc.xywh(builder.getColumn(), builder.getRow(), 3, 7)); - builder.nextRow(6); - builder.nextLine(); - - builder.append("Load Balancing Policy"); - builder.append(_loadBalancing, 3); - builder.nextLine(); - builder.append("How many Adapters? (0 = all)"); - builder.append(_nReplicas, 3); - builder.nextLine(); - _loadSampleLabel = builder.append("Load Sample"); - builder.append(_loadSample, 3); - builder.nextLine(); + builder.append("Replica Group ID"); + builder.append(_id, 3); + builder.nextLine(); + + builder.append("Description"); + builder.nextLine(); + builder.append(""); + builder.nextRow(-2); + CellConstraints cc = new CellConstraints(); + JScrollPane scrollPane = new JScrollPane(_description); + builder.add(scrollPane, + cc.xywh(builder.getColumn(), builder.getRow(), 3, 3)); + builder.nextRow(2); + builder.nextLine(); + + builder.append("Well-known Objects"); + builder.nextLine(); + builder.append(""); + builder.nextLine(); + builder.append(""); + builder.nextLine(); + builder.append(""); + builder.nextRow(-6); + scrollPane = new JScrollPane(_objects); + builder.add(scrollPane, + cc.xywh(builder.getColumn(), builder.getRow(), 3, 7)); + builder.nextRow(6); + builder.nextLine(); + + builder.append("Load Balancing Policy"); + builder.append(_loadBalancing, 3); + builder.nextLine(); + builder.append("How many Adapters? (0 = all)"); + builder.append(_nReplicas, 3); + builder.nextLine(); + _loadSampleLabel = builder.append("Load Sample"); + builder.append(_loadSample, 3); + builder.nextLine(); } protected void buildPropertiesPanel() { - super.buildPropertiesPanel(); - _propertiesPanel.setName("Replica Group Properties"); + super.buildPropertiesPanel(); + _propertiesPanel.setName("Replica Group Properties"); } protected boolean validate() { - return check(new String[]{"Replica Group ID", _id.getText().trim()}); + return check(new String[]{"Replica Group ID", _id.getText().trim()}); } void show(ReplicaGroup replicaGroup) { - // - // Make sure everything is built - // - getProperties(); - - detectUpdates(false); - _target = replicaGroup; - - Utils.Resolver resolver = getDetailResolver(); - boolean isEditable = (resolver == null); - - ReplicaGroupDescriptor descriptor = - (ReplicaGroupDescriptor)replicaGroup.getDescriptor(); - - _id.setText(descriptor.id); - _id.setEditable(isEditable); - - _description.setText( - Utils.substitute(descriptor.description, resolver)); - _description.setEditable(isEditable); - _description.setOpaque(isEditable); - - _objects.set(objectDescriptorSeqToMap(descriptor.objects), resolver, isEditable); - - _loadBalancing.setEnabled(true); - - if(descriptor.loadBalancing == null) - { - _loadBalancing.setSelectedItem(RANDOM); - _nReplicas.setText("0"); - _loadSample.setSelectedItem("1"); - } - else if(descriptor.loadBalancing instanceof RandomLoadBalancingPolicy) - { - _loadBalancing.setSelectedItem(RANDOM); - _nReplicas.setText( - Utils.substitute(descriptor.loadBalancing.nReplicas, resolver)); - _loadSample.setSelectedItem("1"); - } - else if(descriptor.loadBalancing instanceof OrderedLoadBalancingPolicy) - { - _loadBalancing.setSelectedItem(ORDERED); - _nReplicas.setText( - Utils.substitute(descriptor.loadBalancing.nReplicas, resolver)); - _loadSample.setSelectedItem("1"); - } - else if(descriptor.loadBalancing instanceof RoundRobinLoadBalancingPolicy) - { - _loadBalancing.setSelectedItem(ROUND_ROBIN); - _nReplicas.setText( - Utils.substitute(descriptor.loadBalancing.nReplicas, resolver)); - _loadSample.setSelectedItem("1"); - } - else if(descriptor.loadBalancing instanceof AdaptiveLoadBalancingPolicy) - { - _loadBalancing.setSelectedItem(ADAPTIVE); - _nReplicas.setText( - Utils.substitute(descriptor.loadBalancing.nReplicas, resolver)); - - _loadSample.setSelectedItem( - Utils.substitute( - ((AdaptiveLoadBalancingPolicy)descriptor.loadBalancing).loadSample, - resolver)); - } - else - { - assert false; - } - _nReplicas.setEditable(isEditable); - _loadSample.setEditable(isEditable); - _loadBalancing.setEnabled(isEditable); - - _applyButton.setEnabled(replicaGroup.isEphemeral()); - _discardButton.setEnabled(replicaGroup.isEphemeral()); - detectUpdates(true); + // + // Make sure everything is built + // + getProperties(); + + detectUpdates(false); + _target = replicaGroup; + + Utils.Resolver resolver = getDetailResolver(); + boolean isEditable = (resolver == null); + + ReplicaGroupDescriptor descriptor = + (ReplicaGroupDescriptor)replicaGroup.getDescriptor(); + + _id.setText(descriptor.id); + _id.setEditable(isEditable); + + _description.setText( + Utils.substitute(descriptor.description, resolver)); + _description.setEditable(isEditable); + _description.setOpaque(isEditable); + + _objects.set(objectDescriptorSeqToMap(descriptor.objects), resolver, isEditable); + + _loadBalancing.setEnabled(true); + + if(descriptor.loadBalancing == null) + { + _loadBalancing.setSelectedItem(RANDOM); + _nReplicas.setText("0"); + _loadSample.setSelectedItem("1"); + } + else if(descriptor.loadBalancing instanceof RandomLoadBalancingPolicy) + { + _loadBalancing.setSelectedItem(RANDOM); + _nReplicas.setText( + Utils.substitute(descriptor.loadBalancing.nReplicas, resolver)); + _loadSample.setSelectedItem("1"); + } + else if(descriptor.loadBalancing instanceof OrderedLoadBalancingPolicy) + { + _loadBalancing.setSelectedItem(ORDERED); + _nReplicas.setText( + Utils.substitute(descriptor.loadBalancing.nReplicas, resolver)); + _loadSample.setSelectedItem("1"); + } + else if(descriptor.loadBalancing instanceof RoundRobinLoadBalancingPolicy) + { + _loadBalancing.setSelectedItem(ROUND_ROBIN); + _nReplicas.setText( + Utils.substitute(descriptor.loadBalancing.nReplicas, resolver)); + _loadSample.setSelectedItem("1"); + } + else if(descriptor.loadBalancing instanceof AdaptiveLoadBalancingPolicy) + { + _loadBalancing.setSelectedItem(ADAPTIVE); + _nReplicas.setText( + Utils.substitute(descriptor.loadBalancing.nReplicas, resolver)); + + _loadSample.setSelectedItem( + Utils.substitute( + ((AdaptiveLoadBalancingPolicy)descriptor.loadBalancing).loadSample, + resolver)); + } + else + { + assert false; + } + _nReplicas.setEditable(isEditable); + _loadSample.setEditable(isEditable); + _loadBalancing.setEnabled(isEditable); + + _applyButton.setEnabled(replicaGroup.isEphemeral()); + _discardButton.setEnabled(replicaGroup.isEphemeral()); + detectUpdates(true); } private ReplicaGroup getReplicaGroup() { - return (ReplicaGroup)_target; + 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; + 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)); - } - return result; + 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)); + } + return result; } @@ -442,13 +442,13 @@ class ReplicaGroupEditor extends Editor private JTextArea _description = new JTextArea(3, 20); private JComboBox _loadBalancing = new JComboBox(new Object[] - {ADAPTIVE, ORDERED, RANDOM, ROUND_ROBIN}); + {ADAPTIVE, ORDERED, RANDOM, ROUND_ROBIN}); private JTextField _nReplicas = new JTextField(20); private JLabel _loadSampleLabel; private JComboBox _loadSample = new JComboBox(new Object[] - {"1", "5", "15"}); + {"1", "5", "15"}); private MapField _objects; } diff --git a/java/src/IceGridGUI/Application/ReplicaGroups.java b/java/src/IceGridGUI/Application/ReplicaGroups.java index 47960ef28bc..6ab770a779a 100755 --- a/java/src/IceGridGUI/Application/ReplicaGroups.java +++ b/java/src/IceGridGUI/Application/ReplicaGroups.java @@ -20,14 +20,14 @@ class ReplicaGroups extends ListTreeNode static public java.util.List copyDescriptors(java.util.List descriptors) { - java.util.List copy = new java.util.LinkedList(); - java.util.Iterator p = descriptors.iterator(); - while(p.hasNext()) - { - copy.add(ReplicaGroup.copyDescriptor( - (ReplicaGroupDescriptor)p.next())); - } - return copy; + java.util.List copy = new java.util.LinkedList(); + java.util.Iterator p = descriptors.iterator(); + while(p.hasNext()) + { + copy.add(ReplicaGroup.copyDescriptor( + (ReplicaGroupDescriptor)p.next())); + } + return copy; } // @@ -35,198 +35,198 @@ class ReplicaGroups extends ListTreeNode // public boolean[] getAvailableActions() { - boolean[] actions = new boolean[ACTION_COUNT]; + boolean[] actions = new boolean[ACTION_COUNT]; - Object descriptor = getCoordinator().getClipboard(); - if(descriptor != null) - { - actions[PASTE] = descriptor instanceof ReplicaGroupDescriptor; - } + Object descriptor = getCoordinator().getClipboard(); + if(descriptor != null) + { + actions[PASTE] = descriptor instanceof ReplicaGroupDescriptor; + } - actions[NEW_REPLICA_GROUP] = true; - return actions; + actions[NEW_REPLICA_GROUP] = true; + return actions; } public JPopupMenu getPopupMenu() { - ApplicationActions actions = getCoordinator().getActionsForPopup(); - if(_popup == null) - { - _popup = new JPopupMenu(); - _popup.add(actions.get(NEW_REPLICA_GROUP)); - } - actions.setTarget(this); - return _popup; + ApplicationActions actions = getCoordinator().getActionsForPopup(); + if(_popup == null) + { + _popup = new JPopupMenu(); + _popup.add(actions.get(NEW_REPLICA_GROUP)); + } + actions.setTarget(this); + return _popup; } public void newReplicaGroup() { - ReplicaGroupDescriptor descriptor = new - ReplicaGroupDescriptor( - makeNewChildId("NewReplicaGroup"), - null, - new java.util.LinkedList(), - ""); - - newReplicaGroup(descriptor); + ReplicaGroupDescriptor descriptor = new + ReplicaGroupDescriptor( + makeNewChildId("NewReplicaGroup"), + null, + new java.util.LinkedList(), + ""); + + newReplicaGroup(descriptor); } public void paste() { - Object descriptor = getCoordinator().getClipboard(); - - ReplicaGroupDescriptor d = ReplicaGroup.copyDescriptor( - (ReplicaGroupDescriptor)descriptor); - d.id = makeNewChildId(d.id); - newReplicaGroup(d); + Object descriptor = getCoordinator().getClipboard(); + + ReplicaGroupDescriptor d = ReplicaGroup.copyDescriptor( + (ReplicaGroupDescriptor)descriptor); + d.id = makeNewChildId(d.id); + newReplicaGroup(d); } ReplicaGroups(TreeNode parent, java.util.List desc) throws UpdateFailedException { - super(false, parent, "Replica Groups"); - _descriptors = desc; - - java.util.Iterator p = _descriptors.iterator(); - while(p.hasNext()) - { - ReplicaGroupDescriptor descriptor - = (ReplicaGroupDescriptor)p.next(); - - insertChild(new ReplicaGroup(false, this, descriptor), false); - } + super(false, parent, "Replica Groups"); + _descriptors = desc; + + java.util.Iterator p = _descriptors.iterator(); + while(p.hasNext()) + { + ReplicaGroupDescriptor descriptor + = (ReplicaGroupDescriptor)p.next(); + + insertChild(new ReplicaGroup(false, this, descriptor), false); + } } java.util.LinkedList getUpdates() { - java.util.LinkedList updates = new java.util.LinkedList(); - java.util.Iterator p = _children.iterator(); - while(p.hasNext()) - { - ReplicaGroup ra = (ReplicaGroup)p.next(); - if(ra.getEditable().isNew() || ra.getEditable().isModified()) - { - updates.add(ra.getDescriptor()); - } - } - return updates; + java.util.LinkedList updates = new java.util.LinkedList(); + java.util.Iterator p = _children.iterator(); + while(p.hasNext()) + { + ReplicaGroup ra = (ReplicaGroup)p.next(); + if(ra.getEditable().isNew() || ra.getEditable().isModified()) + { + updates.add(ra.getDescriptor()); + } + } + return updates; } void commit() { - _editable.commit(); - java.util.Iterator p = _children.iterator(); - while(p.hasNext()) - { - ReplicaGroup rg = (ReplicaGroup)p.next(); - rg.commit(); - } + _editable.commit(); + java.util.Iterator p = _children.iterator(); + while(p.hasNext()) + { + ReplicaGroup rg = (ReplicaGroup)p.next(); + rg.commit(); + } } void update(java.util.List descriptors, String[] removeReplicaGroups) { - _descriptors = descriptors; - - // - // One big set of removes - // - removeChildren(removeReplicaGroups); - - // - // Updates and inserts - // - java.util.List updatedChildren = new java.util.LinkedList(); - java.util.Iterator p = descriptors.iterator(); - while(p.hasNext()) - { - ReplicaGroupDescriptor descriptor = - (ReplicaGroupDescriptor)p.next(); - - ReplicaGroup child - = (ReplicaGroup)findChild(descriptor.id); - - if(child == null) - { - try - { - insertChild( - new ReplicaGroup(false, this, descriptor), - true); - } - catch(UpdateFailedException e) - { - assert false; - } - } - else - { - child.rebuild(descriptor); - updatedChildren.add(child); - } - } - childrenChanged(updatedChildren); + _descriptors = descriptors; + + // + // One big set of removes + // + removeChildren(removeReplicaGroups); + + // + // Updates and inserts + // + java.util.List updatedChildren = new java.util.LinkedList(); + java.util.Iterator p = descriptors.iterator(); + while(p.hasNext()) + { + ReplicaGroupDescriptor descriptor = + (ReplicaGroupDescriptor)p.next(); + + ReplicaGroup child + = (ReplicaGroup)findChild(descriptor.id); + + if(child == null) + { + try + { + insertChild( + new ReplicaGroup(false, this, descriptor), + true); + } + catch(UpdateFailedException e) + { + assert false; + } + } + else + { + child.rebuild(descriptor); + updatedChildren.add(child); + } + } + childrenChanged(updatedChildren); } Object getDescriptor() { - return _descriptors; + return _descriptors; } /* Object saveDescriptor() { - assert false; - return null; + assert false; + return null; } void restoreDescriptor(Object savedDescriptor) { - assert false; + assert false; } */ void removeDescriptor(Object descriptor) { - // - // A straight remove uses equals(), which is not the desired behavior - // - java.util.Iterator p = _descriptors.iterator(); - while(p.hasNext()) - { - if(descriptor == p.next()) - { - p.remove(); - break; - } - } + // + // A straight remove uses equals(), which is not the desired behavior + // + java.util.Iterator p = _descriptors.iterator(); + while(p.hasNext()) + { + if(descriptor == p.next()) + { + p.remove(); + break; + } + } } void tryAdd(ReplicaGroupDescriptor descriptor, boolean addDescriptor) - throws UpdateFailedException + throws UpdateFailedException { - insertChild( - new ReplicaGroup(true, this, descriptor), - true); - - if(addDescriptor) - { - _descriptors.add(descriptor); - } + insertChild( + new ReplicaGroup(true, this, descriptor), + true); + + if(addDescriptor) + { + _descriptors.add(descriptor); + } } private void newReplicaGroup(ReplicaGroupDescriptor descriptor) { - ReplicaGroup replicaGroup = - new ReplicaGroup(this, descriptor); - - try - { - insertChild(replicaGroup, true); - } - catch(UpdateFailedException e) - { - assert false; - } - getRoot().setSelectedNode(replicaGroup); + ReplicaGroup replicaGroup = + new ReplicaGroup(this, descriptor); + + try + { + insertChild(replicaGroup, true); + } + catch(UpdateFailedException e) + { + assert false; + } + getRoot().setSelectedNode(replicaGroup); } private java.util.List _descriptors; diff --git a/java/src/IceGridGUI/Application/Root.java b/java/src/IceGridGUI/Application/Root.java index 80122504967..572f2e00897 100755 --- a/java/src/IceGridGUI/Application/Root.java +++ b/java/src/IceGridGUI/Application/Root.java @@ -32,19 +32,19 @@ public class Root extends ListTreeNode // Construct a normal, existing Application // public Root(Coordinator coordinator, ApplicationDescriptor desc, - boolean live, File file) throws UpdateFailedException + boolean live, File file) throws UpdateFailedException { - super(false, null, desc.name); - _coordinator = coordinator; - _traceSaveToRegistry = coordinator.traceSaveToRegistry(); + super(false, null, desc.name); + _coordinator = coordinator; + _traceSaveToRegistry = coordinator.traceSaveToRegistry(); - _descriptor = desc; + _descriptor = desc; - _file = file; - _live = live; + _file = file; + _live = live; - init(); + init(); } // @@ -52,144 +52,144 @@ public class Root extends ListTreeNode // public Root(Coordinator coordinator, ApplicationDescriptor desc) { - super(true, null, desc.name); - _coordinator = coordinator; - _traceSaveToRegistry = coordinator.traceSaveToRegistry(); - _descriptor = desc; - - _file = null; - _live = false; - - try - { - init(); - } - catch(UpdateFailedException e) - { - // - // Impossible - // - assert false; - } + super(true, null, desc.name); + _coordinator = coordinator; + _traceSaveToRegistry = coordinator.traceSaveToRegistry(); + _descriptor = desc; + + _file = null; + _live = false; + + try + { + init(); + } + catch(UpdateFailedException e) + { + // + // Impossible + // + assert false; + } } private void init() throws UpdateFailedException { - _resolver = new Utils.Resolver(_descriptor.variables); - _resolver.put("application", _descriptor.name); + _resolver = new Utils.Resolver(_descriptor.variables); + _resolver.put("application", _descriptor.name); - _origVariables = _descriptor.variables; - _origDescription = _descriptor.description; - _origDistrib = (DistributionDescriptor)_descriptor.distrib.clone(); + _origVariables = _descriptor.variables; + _origDescription = _descriptor.description; + _origDistrib = (DistributionDescriptor)_descriptor.distrib.clone(); - _propertySets = new PropertySets(this, _descriptor.propertySets); - _replicaGroups = new ReplicaGroups(this, _descriptor.replicaGroups); - _serviceTemplates = new ServiceTemplates(this, _descriptor.serviceTemplates); - _serverTemplates = new ServerTemplates(this, _descriptor.serverTemplates); - _nodes = new Nodes(this, _descriptor.nodes); + _propertySets = new PropertySets(this, _descriptor.propertySets); + _replicaGroups = new ReplicaGroups(this, _descriptor.replicaGroups); + _serviceTemplates = new ServiceTemplates(this, _descriptor.serviceTemplates); + _serverTemplates = new ServerTemplates(this, _descriptor.serverTemplates); + _nodes = new Nodes(this, _descriptor.nodes); - _children.add(_nodes); - _children.add(_propertySets); - _children.add(_replicaGroups); - _children.add(_serverTemplates); - _children.add(_serviceTemplates); + _children.add(_nodes); + _children.add(_propertySets); + _children.add(_replicaGroups); + _children.add(_serverTemplates); + _children.add(_serviceTemplates); - _tree = new JTree(this, true); - _treeModel = (DefaultTreeModel)_tree.getModel(); + _tree = new JTree(this, true); + _treeModel = (DefaultTreeModel)_tree.getModel(); - // - // Rebind "copy" and "paste" - // - javax.swing.ActionMap am = _tree.getActionMap(); - am.put("copy", _coordinator.getActionsForMenu().get(COPY)); - am.put("paste", _coordinator.getActionsForMenu().get(PASTE)); + // + // Rebind "copy" and "paste" + // + javax.swing.ActionMap am = _tree.getActionMap(); + am.put("copy", _coordinator.getActionsForMenu().get(COPY)); + am.put("paste", _coordinator.getActionsForMenu().get(PASTE)); } static public ApplicationDescriptor copyDescriptor(ApplicationDescriptor ad) { - ApplicationDescriptor copy = (ApplicationDescriptor)ad.clone(); - - copy.propertySets = PropertySets.copyDescriptors(copy.propertySets); + ApplicationDescriptor copy = (ApplicationDescriptor)ad.clone(); + + copy.propertySets = PropertySets.copyDescriptors(copy.propertySets); - copy.replicaGroups = - ReplicaGroups.copyDescriptors(copy.replicaGroups); - - copy.serverTemplates = - ServerTemplates.copyDescriptors(copy.serverTemplates); - - copy.serviceTemplates = - ServiceTemplates.copyDescriptors(copy.serviceTemplates); - - copy.nodes = Nodes.copyDescriptors(copy.nodes); + copy.replicaGroups = + ReplicaGroups.copyDescriptors(copy.replicaGroups); + + copy.serverTemplates = + ServerTemplates.copyDescriptors(copy.serverTemplates); + + copy.serviceTemplates = + ServiceTemplates.copyDescriptors(copy.serviceTemplates); + + copy.nodes = Nodes.copyDescriptors(copy.nodes); - copy.distrib = (DistributionDescriptor)copy.distrib.clone(); - return copy; + copy.distrib = (DistributionDescriptor)copy.distrib.clone(); + return copy; } public Editor getEditor() { - if(_editor == null) - { - _editor = (ApplicationEditor) - getEditor(ApplicationEditor.class, this); - } - _editor.show(this); - return _editor; + if(_editor == null) + { + _editor = (ApplicationEditor) + getEditor(ApplicationEditor.class, this); + } + _editor.show(this); + return _editor; } protected Editor createEditor() { - return new ApplicationEditor(); + return new ApplicationEditor(); } public TreeNode findNodeLike(TreePath path, boolean exactMatch) { - TreeNode result = null; - if(path == null) - { - return null; - } - - for(int i = 0; i < path.getPathCount(); ++i) - { - TreeNode node = (TreeNode)path.getPathComponent(i); - - if(result == null) - { - if(node.getId().equals(_id)) - { - result = this; - } - else - { - return null; - } - } - else - { - TreeNode newNode = result.findChildLike(node); - if(newNode == null) - { - if(exactMatch) - { - return null; - } - else - { - return result; - } - } - else - { - result = newNode; - } - } - } - - return result; + TreeNode result = null; + if(path == null) + { + return null; + } + + for(int i = 0; i < path.getPathCount(); ++i) + { + TreeNode node = (TreeNode)path.getPathComponent(i); + + if(result == null) + { + if(node.getId().equals(_id)) + { + result = this; + } + else + { + return null; + } + } + else + { + TreeNode newNode = result.findChildLike(node); + if(newNode == null) + { + if(exactMatch) + { + return null; + } + else + { + return result; + } + } + else + { + result = newNode; + } + } + } + + return result; } // @@ -197,1091 +197,1091 @@ public class Root extends ListTreeNode // public boolean hasNode(TreeNode node) { - while(node != this) - { - TreeNode parent = (TreeNode)node.getParent(); - if(parent == null || parent.getIndex(node) == -1) - { - return false; - } - else - { - node = parent; - } - } - return true; + while(node != this) + { + TreeNode parent = (TreeNode)node.getParent(); + if(parent == null || parent.getIndex(node) == -1) + { + return false; + } + else + { + node = parent; + } + } + return true; } public void setSelectedNode(TreeNode node) { - _tree.setSelectionPath(node.getPath()); + _tree.setSelectionPath(node.getPath()); } public TreeNode getSelectedNode() { - TreePath path = _tree.getSelectionPath(); - if(path == null) - { - return null; - } - else - { - return (TreeNode)path.getLastPathComponent(); - } + TreePath path = _tree.getSelectionPath(); + if(path == null) + { + return null; + } + else + { + return (TreeNode)path.getLastPathComponent(); + } } public void selectServer(String nodeName, String serverId) { - TreeNode target = _nodes; - if(target != null) - { - Node node = (Node)target.findChild(nodeName); - if(node != null) - { - target = node; - Server server = node.findServer(serverId); - if(server != null) - { - target = (TreeNode)server; - } - } - setSelectedNode(target); - } + TreeNode target = _nodes; + if(target != null) + { + Node node = (Node)target.findChild(nodeName); + if(node != null) + { + target = node; + Server server = node.findServer(serverId); + if(server != null) + { + target = (TreeNode)server; + } + } + setSelectedNode(target); + } } public Component getTreeCellRendererComponent( - JTree tree, - Object value, - boolean sel, - boolean expanded, - boolean leaf, - int row, - boolean hasFocus) - { - if(_cellRenderer == null) - { - _cellRenderer = new DefaultTreeCellRenderer(); - _cellRenderer.setOpenIcon( - Utils.getIcon("/icons/16x16/application_open.png")); - _cellRenderer.setClosedIcon( - Utils.getIcon("/icons/16x16/application_closed.png")); - } - - return _cellRenderer.getTreeCellRendererComponent( - tree, value, sel, expanded, leaf, row, hasFocus); + JTree tree, + Object value, + boolean sel, + boolean expanded, + boolean leaf, + int row, + boolean hasFocus) + { + if(_cellRenderer == null) + { + _cellRenderer = new DefaultTreeCellRenderer(); + _cellRenderer.setOpenIcon( + Utils.getIcon("/icons/16x16/application_open.png")); + _cellRenderer.setClosedIcon( + Utils.getIcon("/icons/16x16/application_closed.png")); + } + + return _cellRenderer.getTreeCellRendererComponent( + tree, value, sel, expanded, leaf, row, hasFocus); } public boolean[] getAvailableActions() { - boolean[] actions = new boolean[ACTION_COUNT]; + boolean[] actions = new boolean[ACTION_COUNT]; - actions[COPY] = true; - actions[DELETE] = true; + actions[COPY] = true; + actions[DELETE] = true; - Object descriptor = _coordinator.getClipboard(); - if(descriptor != null) - { - actions[PASTE] = descriptor instanceof ApplicationDescriptor; - } + Object descriptor = _coordinator.getClipboard(); + if(descriptor != null) + { + actions[PASTE] = descriptor instanceof ApplicationDescriptor; + } - actions[SHOW_VARS] = true; - actions[SUBSTITUTE_VARS] = true; - actions[NEW_NODE] = true; - actions[NEW_PROPERTY_SET] = true; - actions[NEW_REPLICA_GROUP] = true; - actions[NEW_TEMPLATE_SERVER] = true; - actions[NEW_TEMPLATE_SERVER_ICEBOX] = true; - actions[NEW_TEMPLATE_SERVICE] = true; + actions[SHOW_VARS] = true; + actions[SUBSTITUTE_VARS] = true; + actions[NEW_NODE] = true; + actions[NEW_PROPERTY_SET] = true; + actions[NEW_REPLICA_GROUP] = true; + actions[NEW_TEMPLATE_SERVER] = true; + actions[NEW_TEMPLATE_SERVER_ICEBOX] = true; + actions[NEW_TEMPLATE_SERVICE] = true; - return actions; + return actions; } public JPopupMenu getPopupMenu() { - ApplicationActions actions = _coordinator.getActionsForPopup(); - if(_popup == null) - { - _popup = new JPopupMenu(); - _popup.add(actions.get(NEW_NODE)); - _popup.add(actions.get(NEW_PROPERTY_SET)); - _popup.add(actions.get(NEW_REPLICA_GROUP)); - _popup.addSeparator(); - _popup.add(actions.get(NEW_TEMPLATE_SERVER)); - _popup.add(actions.get(NEW_TEMPLATE_SERVER_ICEBOX)); - _popup.addSeparator(); - _popup.add(actions.get(NEW_TEMPLATE_SERVICE)); - } - actions.setTarget(this); - return _popup; + ApplicationActions actions = _coordinator.getActionsForPopup(); + if(_popup == null) + { + _popup = new JPopupMenu(); + _popup.add(actions.get(NEW_NODE)); + _popup.add(actions.get(NEW_PROPERTY_SET)); + _popup.add(actions.get(NEW_REPLICA_GROUP)); + _popup.addSeparator(); + _popup.add(actions.get(NEW_TEMPLATE_SERVER)); + _popup.add(actions.get(NEW_TEMPLATE_SERVER_ICEBOX)); + _popup.addSeparator(); + _popup.add(actions.get(NEW_TEMPLATE_SERVICE)); + } + actions.setTarget(this); + return _popup; } public void copy() { - _coordinator.setClipboard(copyDescriptor(_descriptor)); - _coordinator.getActionsForMenu().get(PASTE).setEnabled(true); + _coordinator.setClipboard(copyDescriptor(_descriptor)); + _coordinator.getActionsForMenu().get(PASTE).setEnabled(true); } public void paste() { - _coordinator.pasteApplication(); + _coordinator.pasteApplication(); } public void newNode() { - _nodes.newNode(); + _nodes.newNode(); } public void newPropertySet() { - _propertySets.newPropertySet(); + _propertySets.newPropertySet(); } public void newReplicaGroup() { - _replicaGroups.newReplicaGroup(); + _replicaGroups.newReplicaGroup(); } public void newTemplateServer() { - _serverTemplates.newTemplateServer(); + _serverTemplates.newTemplateServer(); } public void newTemplateServerIceBox() { - _serverTemplates.newTemplateServerIceBox(); + _serverTemplates.newTemplateServerIceBox(); } public void newTemplateService() { - _serviceTemplates.newTemplateService(); + _serviceTemplates.newTemplateService(); } public void save() { - if(_live) - { - saveToRegistry(); - } - else if(_file != null) - { - File file = _coordinator.saveToFile(false, this, _file); - if(file != null) - { - _file = file; - commit(); - _coordinator.getSaveAction().setEnabled(false); - _coordinator.getDiscardUpdatesAction().setEnabled(false); - } - } - else - { - assert false; - } + if(_live) + { + saveToRegistry(); + } + else if(_file != null) + { + File file = _coordinator.saveToFile(false, this, _file); + if(file != null) + { + _file = file; + commit(); + _coordinator.getSaveAction().setEnabled(false); + _coordinator.getDiscardUpdatesAction().setEnabled(false); + } + } + else + { + assert false; + } } public void saveToRegistry() { - // - // To be run in GUI thread when exclusive write access is acquired - // - Runnable runnable = new Runnable() - { - private void release() - { - _coordinator.releaseExclusiveWriteAccess(); - _coordinator.getMainFrame().setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); - } - - private void handleFailure(String prefix, String title, String message) - { - release(); - - if(isSelected()) - { - _coordinator.getSaveAction().setEnabled(isLive() && _coordinator.connectedToMaster() || hasFile()); - _coordinator.getSaveToRegistryAction().setEnabled(true); - _coordinator.getDiscardUpdatesAction().setEnabled(true); - } - - _coordinator.getStatusBar().setText(prefix + "failed!"); - - JOptionPane.showMessageDialog( - _coordinator.getMainFrame(), - message, - title, - JOptionPane.ERROR_MESSAGE); - } - - - public void run() - { - _coordinator.getMainFrame().setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); - boolean asyncRelease = false; - - try - { - if(_live && _canUseUpdateDescriptor) - { - ApplicationUpdateDescriptor updateDescriptor = createUpdateDescriptor(); - if(updateDescriptor != null) - { - final String prefix = "Updating application '" + _id + "'..."; - _coordinator.getStatusBar().setText(prefix); - - AMI_Admin_updateApplication cb = new AMI_Admin_updateApplication() - { - public void ice_response() - { - if(_traceSaveToRegistry) - { - _coordinator.traceSaveToRegistry("updateApplication for application " + _id + ": success"); - } - - SwingUtilities.invokeLater(new Runnable() - { - public void run() - { - commit(); - release(); - _coordinator.getStatusBar().setText(prefix + "done."); - } - }); - } - - public void ice_exception(final Ice.UserException e) - { - if(_traceSaveToRegistry) - { - _coordinator.traceSaveToRegistry("updateApplication for application " + _id + ": failed"); - } - - SwingUtilities.invokeLater(new Runnable() - { - public void run() - { - _skipUpdates--; - handleFailure(prefix, "Update failed", - "IceGrid exception: " + e.toString()); - } - - }); - } - - public void ice_exception(final Ice.LocalException e) - { - if(_traceSaveToRegistry) - { - _coordinator.traceSaveToRegistry("updateApplication for application " + _id + ": failed"); - } - - SwingUtilities.invokeLater(new Runnable() - { - public void run() - { - _skipUpdates--; - handleFailure(prefix, "Update failed", - "Communication exception: " + e.toString()); - } - }); - } - - }; - - if(_traceSaveToRegistry) - { - _coordinator.traceSaveToRegistry("sending updateApplication for application " + _id); - } - - _coordinator.getAdmin().updateApplication_async(cb, updateDescriptor); - asyncRelease = true; - - // - // If updateApplication fails, we know we can't get other updates - // since we have exclusive write access - // - _skipUpdates++; - } - else - { - final String prefix = "Application '" + _id + "' is already up-to-date"; - _coordinator.getStatusBar().setText(prefix); - commit(); - } - } - else - { - // - // Add or sync application - // - if(_coordinator.getLiveDeploymentRoot().getApplicationDescriptor(_id) == null) - { - assert _live == false; - - - final String prefix = "Adding application '" + _id + "'..."; - _coordinator.getStatusBar().setText(prefix); - - AMI_Admin_addApplication cb = new AMI_Admin_addApplication() - { - public void ice_response() - { - if(_traceSaveToRegistry) - { - _coordinator.traceSaveToRegistry("addApplication for application " + _id + ": success"); - } - - SwingUtilities.invokeLater(new Runnable() - { - public void run() - { - commit(); - liveReset(); - _coordinator.addLiveApplication(Root.this); - release(); - _coordinator.getStatusBar().setText(prefix + "done."); - } - }); - } - - public void ice_exception(final Ice.UserException e) - { - if(_traceSaveToRegistry) - { - _coordinator.traceSaveToRegistry("addApplication for application " + _id + ": failed"); - } - - SwingUtilities.invokeLater(new Runnable() - { - public void run() - { - handleFailure(prefix, "Add failed", - "IceGrid exception: " + e.toString()); - } - - }); - } - - public void ice_exception(final Ice.LocalException e) - { - if(_traceSaveToRegistry) - { - _coordinator.traceSaveToRegistry("addApplication for application " + _id + ": failed"); - } - - SwingUtilities.invokeLater(new Runnable() - { - public void run() - { - handleFailure(prefix, "Add failed", - "Communication exception: " + e.toString()); - } - }); - } - - }; - - if(_traceSaveToRegistry) - { - _coordinator.traceSaveToRegistry("sending addApplication for application " + _id); - } - - _coordinator.getAdmin().addApplication_async(cb, _descriptor); - asyncRelease = true; - } - else - { - final String prefix = "Synchronizing application '" + _id + "'..."; - _coordinator.getStatusBar().setText(prefix); - - AMI_Admin_syncApplication cb = new AMI_Admin_syncApplication() - { - public void ice_response() - { - if(_traceSaveToRegistry) - { - _coordinator.traceSaveToRegistry("syncApplication for application " + _id + ": failed"); - } - - SwingUtilities.invokeLater(new Runnable() - { - public void run() - { - commit(); - if(!_live) - { - // - // Make this tab live or close it if there is one already open - // - ApplicationPane app = _coordinator.getLiveApplication(_id); - if(app == null) - { - liveReset(); - _coordinator.addLiveApplication(Root.this); - } - else - { - boolean selected = isSelected(); - _coordinator.getMainPane().removeApplication(Root.this); - if(selected) - { - _coordinator.getMainPane().setSelectedComponent(app); - } - } - } - - release(); - _coordinator.getStatusBar().setText(prefix + "done."); - } - }); - } - - public void ice_exception(final Ice.UserException e) - { - if(_traceSaveToRegistry) - { - _coordinator.traceSaveToRegistry("syncApplication for application " + _id + ": failed"); - } - - SwingUtilities.invokeLater(new Runnable() - { - public void run() - { - if(_live) - { - _skipUpdates--; - } - - handleFailure(prefix, "Sync failed", - "IceGrid exception: " + e.toString()); - } - - }); - } - - public void ice_exception(final Ice.LocalException e) - { - if(_traceSaveToRegistry) - { - _coordinator.traceSaveToRegistry("syncApplication for application " + _id + ": failed"); - } - - SwingUtilities.invokeLater(new Runnable() - { - public void run() - { - if(_live) - { - _skipUpdates--; - } - - handleFailure(prefix, "Sync failed", - "Communication exception: " + e.toString()); - } - }); - } - - }; - - if(_traceSaveToRegistry) - { - _coordinator.traceSaveToRegistry("sending syncApplication for application " + _id); - } - - _coordinator.getAdmin().syncApplication_async(cb, _descriptor); - asyncRelease = true; - if(_live) - { - _skipUpdates++; - } - } - } - if(isSelected()) - { - _coordinator.getSaveAction().setEnabled(false); - _coordinator.getSaveToRegistryAction().setEnabled(false); - _coordinator.getDiscardUpdatesAction().setEnabled(false); - } - } - catch(Ice.LocalException e) - { - if(_traceSaveToRegistry) - { - _coordinator.traceSaveToRegistry("Ice communications exception while saving application " + _id); - } - - JOptionPane.showMessageDialog( - _coordinator.getMainFrame(), - e.toString(), - "Communication Exception", - JOptionPane.ERROR_MESSAGE); - } - finally - { - if(!asyncRelease) - { - _coordinator.getMainFrame().setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); - _coordinator.releaseExclusiveWriteAccess(); - } - } - } - }; - - try - { - _coordinator.acquireExclusiveWriteAccess(runnable); - } - catch(AccessDeniedException e) - { - _coordinator.accessDenied(e); - } - catch(Ice.LocalException e) - { - JOptionPane.showMessageDialog( - _coordinator.getMainFrame(), - e.toString(), - "Communication Exception", - JOptionPane.ERROR_MESSAGE); - } + // + // To be run in GUI thread when exclusive write access is acquired + // + Runnable runnable = new Runnable() + { + private void release() + { + _coordinator.releaseExclusiveWriteAccess(); + _coordinator.getMainFrame().setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); + } + + private void handleFailure(String prefix, String title, String message) + { + release(); + + if(isSelected()) + { + _coordinator.getSaveAction().setEnabled(isLive() && _coordinator.connectedToMaster() || hasFile()); + _coordinator.getSaveToRegistryAction().setEnabled(true); + _coordinator.getDiscardUpdatesAction().setEnabled(true); + } + + _coordinator.getStatusBar().setText(prefix + "failed!"); + + JOptionPane.showMessageDialog( + _coordinator.getMainFrame(), + message, + title, + JOptionPane.ERROR_MESSAGE); + } + + + public void run() + { + _coordinator.getMainFrame().setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); + boolean asyncRelease = false; + + try + { + if(_live && _canUseUpdateDescriptor) + { + ApplicationUpdateDescriptor updateDescriptor = createUpdateDescriptor(); + if(updateDescriptor != null) + { + final String prefix = "Updating application '" + _id + "'..."; + _coordinator.getStatusBar().setText(prefix); + + AMI_Admin_updateApplication cb = new AMI_Admin_updateApplication() + { + public void ice_response() + { + if(_traceSaveToRegistry) + { + _coordinator.traceSaveToRegistry("updateApplication for application " + _id + ": success"); + } + + SwingUtilities.invokeLater(new Runnable() + { + public void run() + { + commit(); + release(); + _coordinator.getStatusBar().setText(prefix + "done."); + } + }); + } + + public void ice_exception(final Ice.UserException e) + { + if(_traceSaveToRegistry) + { + _coordinator.traceSaveToRegistry("updateApplication for application " + _id + ": failed"); + } + + SwingUtilities.invokeLater(new Runnable() + { + public void run() + { + _skipUpdates--; + handleFailure(prefix, "Update failed", + "IceGrid exception: " + e.toString()); + } + + }); + } + + public void ice_exception(final Ice.LocalException e) + { + if(_traceSaveToRegistry) + { + _coordinator.traceSaveToRegistry("updateApplication for application " + _id + ": failed"); + } + + SwingUtilities.invokeLater(new Runnable() + { + public void run() + { + _skipUpdates--; + handleFailure(prefix, "Update failed", + "Communication exception: " + e.toString()); + } + }); + } + + }; + + if(_traceSaveToRegistry) + { + _coordinator.traceSaveToRegistry("sending updateApplication for application " + _id); + } + + _coordinator.getAdmin().updateApplication_async(cb, updateDescriptor); + asyncRelease = true; + + // + // If updateApplication fails, we know we can't get other updates + // since we have exclusive write access + // + _skipUpdates++; + } + else + { + final String prefix = "Application '" + _id + "' is already up-to-date"; + _coordinator.getStatusBar().setText(prefix); + commit(); + } + } + else + { + // + // Add or sync application + // + if(_coordinator.getLiveDeploymentRoot().getApplicationDescriptor(_id) == null) + { + assert _live == false; + + + final String prefix = "Adding application '" + _id + "'..."; + _coordinator.getStatusBar().setText(prefix); + + AMI_Admin_addApplication cb = new AMI_Admin_addApplication() + { + public void ice_response() + { + if(_traceSaveToRegistry) + { + _coordinator.traceSaveToRegistry("addApplication for application " + _id + ": success"); + } + + SwingUtilities.invokeLater(new Runnable() + { + public void run() + { + commit(); + liveReset(); + _coordinator.addLiveApplication(Root.this); + release(); + _coordinator.getStatusBar().setText(prefix + "done."); + } + }); + } + + public void ice_exception(final Ice.UserException e) + { + if(_traceSaveToRegistry) + { + _coordinator.traceSaveToRegistry("addApplication for application " + _id + ": failed"); + } + + SwingUtilities.invokeLater(new Runnable() + { + public void run() + { + handleFailure(prefix, "Add failed", + "IceGrid exception: " + e.toString()); + } + + }); + } + + public void ice_exception(final Ice.LocalException e) + { + if(_traceSaveToRegistry) + { + _coordinator.traceSaveToRegistry("addApplication for application " + _id + ": failed"); + } + + SwingUtilities.invokeLater(new Runnable() + { + public void run() + { + handleFailure(prefix, "Add failed", + "Communication exception: " + e.toString()); + } + }); + } + + }; + + if(_traceSaveToRegistry) + { + _coordinator.traceSaveToRegistry("sending addApplication for application " + _id); + } + + _coordinator.getAdmin().addApplication_async(cb, _descriptor); + asyncRelease = true; + } + else + { + final String prefix = "Synchronizing application '" + _id + "'..."; + _coordinator.getStatusBar().setText(prefix); + + AMI_Admin_syncApplication cb = new AMI_Admin_syncApplication() + { + public void ice_response() + { + if(_traceSaveToRegistry) + { + _coordinator.traceSaveToRegistry("syncApplication for application " + _id + ": failed"); + } + + SwingUtilities.invokeLater(new Runnable() + { + public void run() + { + commit(); + if(!_live) + { + // + // Make this tab live or close it if there is one already open + // + ApplicationPane app = _coordinator.getLiveApplication(_id); + if(app == null) + { + liveReset(); + _coordinator.addLiveApplication(Root.this); + } + else + { + boolean selected = isSelected(); + _coordinator.getMainPane().removeApplication(Root.this); + if(selected) + { + _coordinator.getMainPane().setSelectedComponent(app); + } + } + } + + release(); + _coordinator.getStatusBar().setText(prefix + "done."); + } + }); + } + + public void ice_exception(final Ice.UserException e) + { + if(_traceSaveToRegistry) + { + _coordinator.traceSaveToRegistry("syncApplication for application " + _id + ": failed"); + } + + SwingUtilities.invokeLater(new Runnable() + { + public void run() + { + if(_live) + { + _skipUpdates--; + } + + handleFailure(prefix, "Sync failed", + "IceGrid exception: " + e.toString()); + } + + }); + } + + public void ice_exception(final Ice.LocalException e) + { + if(_traceSaveToRegistry) + { + _coordinator.traceSaveToRegistry("syncApplication for application " + _id + ": failed"); + } + + SwingUtilities.invokeLater(new Runnable() + { + public void run() + { + if(_live) + { + _skipUpdates--; + } + + handleFailure(prefix, "Sync failed", + "Communication exception: " + e.toString()); + } + }); + } + + }; + + if(_traceSaveToRegistry) + { + _coordinator.traceSaveToRegistry("sending syncApplication for application " + _id); + } + + _coordinator.getAdmin().syncApplication_async(cb, _descriptor); + asyncRelease = true; + if(_live) + { + _skipUpdates++; + } + } + } + if(isSelected()) + { + _coordinator.getSaveAction().setEnabled(false); + _coordinator.getSaveToRegistryAction().setEnabled(false); + _coordinator.getDiscardUpdatesAction().setEnabled(false); + } + } + catch(Ice.LocalException e) + { + if(_traceSaveToRegistry) + { + _coordinator.traceSaveToRegistry("Ice communications exception while saving application " + _id); + } + + JOptionPane.showMessageDialog( + _coordinator.getMainFrame(), + e.toString(), + "Communication Exception", + JOptionPane.ERROR_MESSAGE); + } + finally + { + if(!asyncRelease) + { + _coordinator.getMainFrame().setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); + _coordinator.releaseExclusiveWriteAccess(); + } + } + } + }; + + try + { + _coordinator.acquireExclusiveWriteAccess(runnable); + } + catch(AccessDeniedException e) + { + _coordinator.accessDenied(e); + } + catch(Ice.LocalException e) + { + JOptionPane.showMessageDialog( + _coordinator.getMainFrame(), + e.toString(), + "Communication Exception", + JOptionPane.ERROR_MESSAGE); + } } public void saveToFile() { - File file = _coordinator.saveToFile(true, this, _file); - if(file != null) - { - _file = file; - _live = false; + File file = _coordinator.saveToFile(true, this, _file); + if(file != null) + { + _file = file; + _live = false; - _coordinator.removeLiveApplication(_id); - _coordinator.getMainPane().resetIcon(this); + _coordinator.removeLiveApplication(_id); + _coordinator.getMainPane().resetIcon(this); - commit(); - _coordinator.getSaveAction().setEnabled(false); - _coordinator.getDiscardUpdatesAction().setEnabled(false); - _coordinator.getSaveToRegistryAction().setEnabled(_coordinator.connectedToMaster()); - } + commit(); + _coordinator.getSaveAction().setEnabled(false); + _coordinator.getDiscardUpdatesAction().setEnabled(false); + _coordinator.getSaveToRegistryAction().setEnabled(_coordinator.connectedToMaster()); + } } public void discardUpdates() { - ApplicationDescriptor desc = null; - - if(_live) - { - desc = _coordinator.getLiveDeploymentRoot().getApplicationDescriptor(_id); - assert desc != null; - desc = IceGridGUI.Application.Root.copyDescriptor(desc); - } - else if(_file != null) - { - desc = _coordinator.parseFile(_file); - if(desc == null) - { - return; - } - } - else - { - assert false; - } - - Root newRoot; - - try - { - newRoot = new Root(_coordinator, desc, _live, _file); - } - catch(UpdateFailedException e) - { - JOptionPane.showMessageDialog( - _coordinator.getMainFrame(), - e.toString(), - "Bad Application Descriptor: Unable reload Application", - JOptionPane.ERROR_MESSAGE); - return; - } - - ApplicationPane app = _coordinator.getMainPane().findApplication(this); - assert app != null; - app.setRoot(newRoot); - - TreeNode node = newRoot.findNodeLike(_tree.getSelectionPath(), false); - if(node == null) - { - newRoot.setSelectedNode(newRoot); - } - else - { - newRoot.setSelectedNode(node); - } - _coordinator.getCurrentTab().selected(); + ApplicationDescriptor desc = null; + + if(_live) + { + desc = _coordinator.getLiveDeploymentRoot().getApplicationDescriptor(_id); + assert desc != null; + desc = IceGridGUI.Application.Root.copyDescriptor(desc); + } + else if(_file != null) + { + desc = _coordinator.parseFile(_file); + if(desc == null) + { + return; + } + } + else + { + assert false; + } + + Root newRoot; + + try + { + newRoot = new Root(_coordinator, desc, _live, _file); + } + catch(UpdateFailedException e) + { + JOptionPane.showMessageDialog( + _coordinator.getMainFrame(), + e.toString(), + "Bad Application Descriptor: Unable reload Application", + JOptionPane.ERROR_MESSAGE); + return; + } + + ApplicationPane app = _coordinator.getMainPane().findApplication(this); + assert app != null; + app.setRoot(newRoot); + + TreeNode node = newRoot.findNodeLike(_tree.getSelectionPath(), false); + if(node == null) + { + newRoot.setSelectedNode(newRoot); + } + else + { + newRoot.setSelectedNode(node); + } + _coordinator.getCurrentTab().selected(); } private void liveReset() { - _live = true; - _skipUpdates = 0; - _file = null; - _coordinator.getMainPane().resetIcon(this); + _live = true; + _skipUpdates = 0; + _file = null; + _coordinator.getMainPane().resetIcon(this); } private ApplicationUpdateDescriptor createUpdateDescriptor() { - ApplicationUpdateDescriptor update = new ApplicationUpdateDescriptor(); - update.name = _descriptor.name; - if(_editable.isModified()) - { - // - // Diff description - // - if(!_descriptor.description.equals(_origDescription)) - { - update.description = - new IceGrid.BoxedString(_descriptor.description); - } - - // - // Diff variables - // - update.variables = new java.util.TreeMap(_descriptor.variables); - java.util.List removeVariables = new java.util.LinkedList(); - - java.util.Iterator p = _origVariables.entrySet().iterator(); - while(p.hasNext()) - { - java.util.Map.Entry entry = (java.util.Map.Entry)p.next(); - Object key = entry.getKey(); - Object newValue = update.variables.get(key); - if(newValue == null) - { - removeVariables.add(key); - } - else - { - Object value = entry.getValue(); - if(newValue.equals(value)) - { - update.variables.remove(key); - } - } - } - update.removeVariables = (String[])removeVariables.toArray(new String[0]); - - // - // Diff distribution - // - if(!_descriptor.distrib.equals(_origDistrib)) - { - update.distrib = new IceGrid.BoxedDistributionDescriptor( - _descriptor.distrib); - } - } - else - { - update.variables = new java.util.TreeMap(); - update.removeVariables = new String[0]; - } - - // - // Property sets - // - update.removePropertySets = _propertySets.getEditable(). - removedElements(PropertySet.class); - update.propertySets = _propertySets.getUpdates(); - - // - // Replica Groups - // - update.removeReplicaGroups = _replicaGroups.getEditable(). - removedElements(ReplicaGroup.class); - update.replicaGroups = _replicaGroups.getUpdates(); - - // - // Server Templates - // - update.removeServerTemplates = _serverTemplates.getEditable(). - removedElements(ServerTemplate.class); - update.serverTemplates = _serverTemplates.getUpdates(); - - // - // Service Templates - // - update.removeServiceTemplates = _serviceTemplates.getEditable(). - removedElements(ServiceTemplate.class); - update.serviceTemplates =_serviceTemplates.getUpdates(); - - // - // Nodes - // - update.removeNodes = _nodes.getEditable(). - removedElements(Node.class); - update.nodes = _nodes.getUpdates(); - - - // - // Return null if nothing changed - // - if(!_editable.isModified() && - update.removePropertySets.length == 0 && - update.propertySets.size() == 0 && - update.removeReplicaGroups.length == 0 && - update.replicaGroups.size() == 0 && - update.removeServerTemplates.length == 0 && - update.serverTemplates.size() == 0 && - update.removeServiceTemplates.length == 0 && - update.serviceTemplates.size() == 0 && - update.removeNodes.length == 0 && - update.nodes.size() == 0) - { - return null; - } - else - { - return update; - } + ApplicationUpdateDescriptor update = new ApplicationUpdateDescriptor(); + update.name = _descriptor.name; + if(_editable.isModified()) + { + // + // Diff description + // + if(!_descriptor.description.equals(_origDescription)) + { + update.description = + new IceGrid.BoxedString(_descriptor.description); + } + + // + // Diff variables + // + update.variables = new java.util.TreeMap(_descriptor.variables); + java.util.List removeVariables = new java.util.LinkedList(); + + java.util.Iterator p = _origVariables.entrySet().iterator(); + while(p.hasNext()) + { + java.util.Map.Entry entry = (java.util.Map.Entry)p.next(); + Object key = entry.getKey(); + Object newValue = update.variables.get(key); + if(newValue == null) + { + removeVariables.add(key); + } + else + { + Object value = entry.getValue(); + if(newValue.equals(value)) + { + update.variables.remove(key); + } + } + } + update.removeVariables = (String[])removeVariables.toArray(new String[0]); + + // + // Diff distribution + // + if(!_descriptor.distrib.equals(_origDistrib)) + { + update.distrib = new IceGrid.BoxedDistributionDescriptor( + _descriptor.distrib); + } + } + else + { + update.variables = new java.util.TreeMap(); + update.removeVariables = new String[0]; + } + + // + // Property sets + // + update.removePropertySets = _propertySets.getEditable(). + removedElements(PropertySet.class); + update.propertySets = _propertySets.getUpdates(); + + // + // Replica Groups + // + update.removeReplicaGroups = _replicaGroups.getEditable(). + removedElements(ReplicaGroup.class); + update.replicaGroups = _replicaGroups.getUpdates(); + + // + // Server Templates + // + update.removeServerTemplates = _serverTemplates.getEditable(). + removedElements(ServerTemplate.class); + update.serverTemplates = _serverTemplates.getUpdates(); + + // + // Service Templates + // + update.removeServiceTemplates = _serviceTemplates.getEditable(). + removedElements(ServiceTemplate.class); + update.serviceTemplates =_serviceTemplates.getUpdates(); + + // + // Nodes + // + update.removeNodes = _nodes.getEditable(). + removedElements(Node.class); + update.nodes = _nodes.getUpdates(); + + + // + // Return null if nothing changed + // + if(!_editable.isModified() && + update.removePropertySets.length == 0 && + update.propertySets.size() == 0 && + update.removeReplicaGroups.length == 0 && + update.replicaGroups.size() == 0 && + update.removeServerTemplates.length == 0 && + update.serverTemplates.size() == 0 && + update.removeServiceTemplates.length == 0 && + update.serviceTemplates.size() == 0 && + update.removeNodes.length == 0 && + update.nodes.size() == 0) + { + return null; + } + else + { + return update; + } } private void commit() { - _updated = false; - _registryUpdatesEnabled = true; - _canUseUpdateDescriptor = true; + _updated = false; + _registryUpdatesEnabled = true; + _canUseUpdateDescriptor = true; - assert _concurrentUpdates.size() == 0; + assert _concurrentUpdates.size() == 0; - _editable.commit(); - _origVariables = _descriptor.variables; - _origDescription = _descriptor.description; - _origDistrib = (DistributionDescriptor)_descriptor.distrib.clone(); - - _nodes.commit(); - _propertySets.commit(); - _replicaGroups.commit(); - _serverTemplates.commit(); - _serviceTemplates.commit(); + _editable.commit(); + _origVariables = _descriptor.variables; + _origDescription = _descriptor.description; + _origDistrib = (DistributionDescriptor)_descriptor.distrib.clone(); + + _nodes.commit(); + _propertySets.commit(); + _replicaGroups.commit(); + _serverTemplates.commit(); + _serviceTemplates.commit(); } public boolean isEphemeral() { - return false; + return false; } public void destroy() { - if(!_live && _file == null) - { - _coordinator.getMainPane().removeApplication(this); - } - else if(_live) - { - int confirm = JOptionPane.showConfirmDialog( - _coordinator.getMainFrame(), - "You are about to remove application '" + _id + "' from the IceGrid registry. " - + "Do you want to proceed?", - "Remove Confirmation", - JOptionPane.YES_NO_OPTION); - - if(confirm == JOptionPane.YES_OPTION) - { - _coordinator.removeApplicationFromRegistry(_id); - _discardMe = true; - } - } - else - { - assert _file != null; - - int confirm = JOptionPane.showConfirmDialog( - _coordinator.getMainFrame(), - "You are about to remove application '" + _id + "' and its associated file. " - + "Do you want to proceed?", - "Remove Confirmation", - JOptionPane.YES_NO_OPTION); - - if(confirm == JOptionPane.YES_OPTION) - { - if(_file.delete()) - { - _coordinator.getMainPane().removeApplication(this); - } - } - } + if(!_live && _file == null) + { + _coordinator.getMainPane().removeApplication(this); + } + else if(_live) + { + int confirm = JOptionPane.showConfirmDialog( + _coordinator.getMainFrame(), + "You are about to remove application '" + _id + "' from the IceGrid registry. " + + "Do you want to proceed?", + "Remove Confirmation", + JOptionPane.YES_NO_OPTION); + + if(confirm == JOptionPane.YES_OPTION) + { + _coordinator.removeApplicationFromRegistry(_id); + _discardMe = true; + } + } + else + { + assert _file != null; + + int confirm = JOptionPane.showConfirmDialog( + _coordinator.getMainFrame(), + "You are about to remove application '" + _id + "' and its associated file. " + + "Do you want to proceed?", + "Remove Confirmation", + JOptionPane.YES_NO_OPTION); + + if(confirm == JOptionPane.YES_OPTION) + { + if(_file.delete()) + { + _coordinator.getMainPane().removeApplication(this); + } + } + } } public boolean update(ApplicationUpdateDescriptor desc) { - assert _live == true; - - if(_skipUpdates > 0) - { - _skipUpdates--; - return false; - } - - if(!_registryUpdatesEnabled) - { - if(_updated) - { - _canUseUpdateDescriptor = false; - } - else - { - _concurrentUpdates.add(desc); - } - return false; - } - - try - { - // - // Description - // - if(desc.description != null) - { - _descriptor.description = desc.description.value; - _origDescription = _descriptor.description; - } - - // - // Variables - // - for(int i = 0; i < desc.removeVariables.length; ++i) - { - _descriptor.variables.remove(desc.removeVariables[i]); - } - _descriptor.variables.putAll(desc.variables); - - // - // Distrib - // - if(desc.distrib != null) - { - _descriptor.distrib = desc.distrib.value; - _origDistrib = (DistributionDescriptor)_descriptor.distrib.clone(); - } - - // - // Property Sets - // - for(int i = 0; i < desc.removePropertySets.length; ++i) - { - _descriptor.propertySets.remove(desc.removePropertySets[i]); - } - _descriptor.propertySets.putAll(desc.propertySets); - _propertySets.update(desc.propertySets, - desc.removePropertySets); - - // - // Replica groups - // - for(int i = 0; i < desc.removeReplicaGroups.length; ++i) - { - _descriptor.replicaGroups.remove(desc. - removeReplicaGroups[i]); - } - _descriptor.replicaGroups.addAll(desc.replicaGroups); - _replicaGroups.update(desc.replicaGroups, - desc.removeReplicaGroups); - - - // - // Service templates - // - for(int i = 0; i < desc.removeServiceTemplates.length; ++i) - { - _descriptor.serviceTemplates.remove(desc. - removeServiceTemplates[i]); - } - _descriptor.serviceTemplates.putAll(desc.serviceTemplates); - _serviceTemplates.update(desc.serviceTemplates, - desc.removeServiceTemplates); - - // - // Server templates - // - for(int i = 0; i < desc.removeServerTemplates.length; ++i) - { - _descriptor.serverTemplates.remove(desc.removeServerTemplates[i]); - } - _descriptor.serverTemplates.putAll(desc.serverTemplates); - _serverTemplates.update(desc.serverTemplates, - desc.removeServerTemplates, - desc.serviceTemplates.keySet()); - - // - // Nodes - // - for(int i = 0; i < desc.removeNodes.length; ++i) - { - _descriptor.nodes.remove(desc.removeNodes[i]); - } - - // - // Updates also _descriptor.nodes - // - _nodes.update(desc.nodes, desc.removeNodes, - desc.serverTemplates.keySet(), - desc.serviceTemplates.keySet()); - } - catch(UpdateFailedException e) - { - // - // Received invalid update from IceGrid registry: a bug! - // - assert false; - } - - return true; + assert _live == true; + + if(_skipUpdates > 0) + { + _skipUpdates--; + return false; + } + + if(!_registryUpdatesEnabled) + { + if(_updated) + { + _canUseUpdateDescriptor = false; + } + else + { + _concurrentUpdates.add(desc); + } + return false; + } + + try + { + // + // Description + // + if(desc.description != null) + { + _descriptor.description = desc.description.value; + _origDescription = _descriptor.description; + } + + // + // Variables + // + for(int i = 0; i < desc.removeVariables.length; ++i) + { + _descriptor.variables.remove(desc.removeVariables[i]); + } + _descriptor.variables.putAll(desc.variables); + + // + // Distrib + // + if(desc.distrib != null) + { + _descriptor.distrib = desc.distrib.value; + _origDistrib = (DistributionDescriptor)_descriptor.distrib.clone(); + } + + // + // Property Sets + // + for(int i = 0; i < desc.removePropertySets.length; ++i) + { + _descriptor.propertySets.remove(desc.removePropertySets[i]); + } + _descriptor.propertySets.putAll(desc.propertySets); + _propertySets.update(desc.propertySets, + desc.removePropertySets); + + // + // Replica groups + // + for(int i = 0; i < desc.removeReplicaGroups.length; ++i) + { + _descriptor.replicaGroups.remove(desc. + removeReplicaGroups[i]); + } + _descriptor.replicaGroups.addAll(desc.replicaGroups); + _replicaGroups.update(desc.replicaGroups, + desc.removeReplicaGroups); + + + // + // Service templates + // + for(int i = 0; i < desc.removeServiceTemplates.length; ++i) + { + _descriptor.serviceTemplates.remove(desc. + removeServiceTemplates[i]); + } + _descriptor.serviceTemplates.putAll(desc.serviceTemplates); + _serviceTemplates.update(desc.serviceTemplates, + desc.removeServiceTemplates); + + // + // Server templates + // + for(int i = 0; i < desc.removeServerTemplates.length; ++i) + { + _descriptor.serverTemplates.remove(desc.removeServerTemplates[i]); + } + _descriptor.serverTemplates.putAll(desc.serverTemplates); + _serverTemplates.update(desc.serverTemplates, + desc.removeServerTemplates, + desc.serviceTemplates.keySet()); + + // + // Nodes + // + for(int i = 0; i < desc.removeNodes.length; ++i) + { + _descriptor.nodes.remove(desc.removeNodes[i]); + } + + // + // Updates also _descriptor.nodes + // + _nodes.update(desc.nodes, desc.removeNodes, + desc.serverTemplates.keySet(), + desc.serviceTemplates.keySet()); + } + catch(UpdateFailedException e) + { + // + // Received invalid update from IceGrid registry: a bug! + // + assert false; + } + + return true; } public JTree getTree() { - return _tree; + return _tree; } public DefaultTreeModel getTreeModel() { - return _treeModel; + return _treeModel; } public Coordinator getCoordinator() { - return _coordinator; + return _coordinator; } public boolean isSelectionListenerEnabled() { - return _selectionListenerEnabled; + return _selectionListenerEnabled; } public void enableSelectionListener() { - _selectionListenerEnabled = true; + _selectionListenerEnabled = true; } public void disableSelectionListener() { - _selectionListenerEnabled = false; + _selectionListenerEnabled = false; } public void cancelEdit() { - if(!_updated) - { - _registryUpdatesEnabled = true; - - // - // Apply now any delayed concurrent update - // - java.util.Iterator p = _concurrentUpdates.iterator(); - while(p.hasNext()) - { - ApplicationUpdateDescriptor d = (ApplicationUpdateDescriptor)p.next(); - boolean ok = update(d); - assert ok; - } - _concurrentUpdates.clear(); - - _coordinator.getSaveAction().setEnabled(false); - _coordinator.getDiscardUpdatesAction().setEnabled(false); - _coordinator.getSaveToRegistryAction().setEnabled(hasFile() - && _coordinator.connectedToMaster()); - } + if(!_updated) + { + _registryUpdatesEnabled = true; + + // + // Apply now any delayed concurrent update + // + java.util.Iterator p = _concurrentUpdates.iterator(); + while(p.hasNext()) + { + ApplicationUpdateDescriptor d = (ApplicationUpdateDescriptor)p.next(); + boolean ok = update(d); + assert ok; + } + _concurrentUpdates.clear(); + + _coordinator.getSaveAction().setEnabled(false); + _coordinator.getDiscardUpdatesAction().setEnabled(false); + _coordinator.getSaveToRegistryAction().setEnabled(hasFile() + && _coordinator.connectedToMaster()); + } } public boolean kill() { - _live = false; + _live = false; - if(_registryUpdatesEnabled || _discardMe) - { - return true; - } - else - { - _coordinator.getMainPane().resetIcon(this); - _coordinator.getCurrentTab().selected(); // only needed when 'this' - // corresponds to the current tab - return false; - } + if(_registryUpdatesEnabled || _discardMe) + { + return true; + } + else + { + _coordinator.getMainPane().resetIcon(this); + _coordinator.getCurrentTab().selected(); // only needed when 'this' + // corresponds to the current tab + return false; + } } public boolean isLive() { - return _live; + return _live; } public boolean hasFile() { - return _file != null; + return _file != null; } public boolean needsSaving() { - return _updated || !_registryUpdatesEnabled; + return _updated || !_registryUpdatesEnabled; } public void setPane(ApplicationPane app) { - _applicationPane = app; + _applicationPane = app; } public ApplicationPane getPane() { - return _applicationPane; + return _applicationPane; } Editor getEditor(Class c, TreeNode node) { - Editor result = (Editor)_editorMap.get(c); - if(result == null) - { - result = node.createEditor(); - _editorMap.put(c, result); - } - return result; + Editor result = (Editor)_editorMap.get(c); + if(result == null) + { + result = node.createEditor(); + _editorMap.put(c, result); + } + return result; } Object getDescriptor() { - return _descriptor; + return _descriptor; } ApplicationDescriptor saveDescriptor() { - ApplicationDescriptor clone = (ApplicationDescriptor)_descriptor.clone(); - clone.distrib = (IceGrid.DistributionDescriptor)clone.distrib.clone(); - return clone; + ApplicationDescriptor clone = (ApplicationDescriptor)_descriptor.clone(); + clone.distrib = (IceGrid.DistributionDescriptor)clone.distrib.clone(); + return clone; } void restoreDescriptor(ApplicationDescriptor clone) { - _descriptor.name = clone.name; - _descriptor.variables = clone.variables; - _descriptor.distrib.icepatch = clone.distrib.icepatch; - _descriptor.distrib.directories = clone.distrib.directories; - _descriptor.description = clone.description; + _descriptor.name = clone.name; + _descriptor.variables = clone.variables; + _descriptor.distrib.icepatch = clone.distrib.icepatch; + _descriptor.distrib.directories = clone.distrib.directories; + _descriptor.description = clone.description; } public void write(XMLWriter writer) throws java.io.IOException { - writer.writeStartTag("icegrid"); + writer.writeStartTag("icegrid"); - java.util.List attributes = new java.util.LinkedList(); - attributes.add(createAttribute("name", _id)); + java.util.List attributes = new java.util.LinkedList(); + attributes.add(createAttribute("name", _id)); - writer.writeStartTag("application", attributes); + writer.writeStartTag("application", attributes); - if(_descriptor.description.length() > 0) - { - writer.writeElement("description", _descriptor.description); - } - writeVariables(writer, _descriptor.variables); - writeDistribution(writer, _descriptor.distrib); + if(_descriptor.description.length() > 0) + { + writer.writeElement("description", _descriptor.description); + } + writeVariables(writer, _descriptor.variables); + writeDistribution(writer, _descriptor.distrib); - _serviceTemplates.write(writer); - _serverTemplates.write(writer); - _replicaGroups.write(writer); - _propertySets.write(writer); - _nodes.write(writer); - - writer.writeEndTag("application"); - writer.writeEndTag("icegrid"); + _serviceTemplates.write(writer); + _serverTemplates.write(writer); + _replicaGroups.write(writer); + _propertySets.write(writer); + _nodes.write(writer); + + writer.writeEndTag("application"); + writer.writeEndTag("icegrid"); } // @@ -1289,41 +1289,41 @@ public class Root extends ListTreeNode // void disableRegistryUpdates() { - if(_registryUpdatesEnabled) - { - _registryUpdatesEnabled = false; - _coordinator.getSaveAction().setEnabled(_live && _coordinator.connectedToMaster() || _file != null); - _coordinator.getDiscardUpdatesAction().setEnabled(_live || _file != null); - _coordinator.getSaveToRegistryAction().setEnabled(_coordinator.connectedToMaster()); - } + if(_registryUpdatesEnabled) + { + _registryUpdatesEnabled = false; + _coordinator.getSaveAction().setEnabled(_live && _coordinator.connectedToMaster() || _file != null); + _coordinator.getDiscardUpdatesAction().setEnabled(_live || _file != null); + _coordinator.getSaveToRegistryAction().setEnabled(_coordinator.connectedToMaster()); + } } void updated() { - _updated = true; - disableRegistryUpdates(); // can be still enabled when updated() is called by destroy() + _updated = true; + disableRegistryUpdates(); // can be still enabled when updated() is called by destroy() - _concurrentUpdates.clear(); + _concurrentUpdates.clear(); } void rebuild() throws UpdateFailedException { - Utils.Resolver oldResolver = _resolver; - String oldId = _id; - _id = _descriptor.name; - _resolver = new Utils.Resolver(_descriptor.variables); - _resolver.put("application", _id); - - try - { - _nodes.rebuild(); - } - catch(UpdateFailedException e) - { - _id = oldId; - _resolver = oldResolver; - throw e; - } + Utils.Resolver oldResolver = _resolver; + String oldId = _id; + _id = _descriptor.name; + _resolver = new Utils.Resolver(_descriptor.variables); + _resolver.put("application", _id); + + try + { + _nodes.rebuild(); + } + catch(UpdateFailedException e) + { + _id = oldId; + _resolver = oldResolver; + throw e; + } } // @@ -1332,7 +1332,7 @@ public class Root extends ListTreeNode // void removeServerInstances(String templateId) { - _nodes.removeServerInstances(templateId); + _nodes.removeServerInstances(templateId); } // @@ -1341,78 +1341,78 @@ public class Root extends ListTreeNode // void removeServiceInstances(String templateId) { - _nodes.removeServiceInstances(templateId); - _serverTemplates.removeServiceInstances(templateId); + _nodes.removeServiceInstances(templateId); + _serverTemplates.removeServiceInstances(templateId); } ServerTemplate findServerTemplate(String id) { - return (ServerTemplate)_serverTemplates.findChild(id); + return (ServerTemplate)_serverTemplates.findChild(id); } ServiceTemplate findServiceTemplate(String id) { - return (ServiceTemplate)_serviceTemplates.findChild(id); + return (ServiceTemplate)_serviceTemplates.findChild(id); } ReplicaGroup findReplicaGroup(String id) { - return (ReplicaGroup)_replicaGroups.findChild(id); + return (ReplicaGroup)_replicaGroups.findChild(id); } Node findNode(String id) { - return (Node)_nodes.findChild(id); + return (Node)_nodes.findChild(id); } java.util.List findServerInstances(String template) { - return _nodes.findServerInstances(template); + return _nodes.findServerInstances(template); } java.util.List findServiceInstances(String template) { - java.util.List result = _serverTemplates.findServiceInstances(template); - result.addAll(_nodes.findServiceInstances(template)); - return result; + java.util.List result = _serverTemplates.findServiceInstances(template); + result.addAll(_nodes.findServiceInstances(template)); + return result; } TemplateDescriptor findServerTemplateDescriptor(String templateName) { - return (TemplateDescriptor) - _descriptor.serverTemplates.get(templateName); + return (TemplateDescriptor) + _descriptor.serverTemplates.get(templateName); } TemplateDescriptor findServiceTemplateDescriptor(String templateName) { - return (TemplateDescriptor) - _descriptor.serviceTemplates.get(templateName); + return (TemplateDescriptor) + _descriptor.serviceTemplates.get(templateName); } ServerTemplates getServerTemplates() { - return _serverTemplates; + return _serverTemplates; } ServiceTemplates getServiceTemplates() { - return _serviceTemplates; + return _serviceTemplates; } ReplicaGroups getReplicaGroups() { - return _replicaGroups; + return _replicaGroups; } public Root getRoot() { - return this; + return this; } Utils.Resolver getResolver() { - return _resolver; + return _resolver; } // @@ -1420,19 +1420,19 @@ public class Root extends ListTreeNode // java.util.Map getVariables() { - return _descriptor.variables; + return _descriptor.variables; } private boolean isSelected() { - if(_coordinator.getCurrentTab() instanceof ApplicationPane) - { - return ((ApplicationPane)_coordinator.getCurrentTab()).getRoot() == Root.this; - } - else - { - return false; - } + if(_coordinator.getCurrentTab() instanceof ApplicationPane) + { + return ((ApplicationPane)_coordinator.getCurrentTab()).getRoot() == Root.this; + } + else + { + return false; + } } private final Coordinator _coordinator; diff --git a/java/src/IceGridGUI/Application/ServerInstance.java b/java/src/IceGridGUI/Application/ServerInstance.java index 8e2d7388fc3..5d8fd9a23d9 100755 --- a/java/src/IceGridGUI/Application/ServerInstance.java +++ b/java/src/IceGridGUI/Application/ServerInstance.java @@ -26,8 +26,8 @@ class ServerInstance extends ListTreeNode implements Server, PropertySetParent copyDescriptor(ServerInstanceDescriptor sid) { ServerInstanceDescriptor copy = (ServerInstanceDescriptor)sid.clone(); - copy.propertySet = PropertySet.copyDescriptor(copy.propertySet); - return copy; + copy.propertySet = PropertySet.copyDescriptor(copy.propertySet); + return copy; } // @@ -35,7 +35,7 @@ class ServerInstance extends ListTreeNode implements Server, PropertySetParent // public boolean getAllowsChildren() { - return _isIceBox; + return _isIceBox; } // @@ -43,519 +43,519 @@ class ServerInstance extends ListTreeNode implements Server, PropertySetParent // public boolean[] getAvailableActions() { - boolean[] actions = new boolean[ACTION_COUNT]; - actions[COPY] = !_ephemeral; - - Object clipboard = getCoordinator().getClipboard(); - if(clipboard != null && - (clipboard instanceof ServerDescriptor - || clipboard instanceof ServerInstanceDescriptor - || (_isIceBox && clipboard instanceof PropertySetDescriptor))) - { - actions[PASTE] = true; - } - - actions[DELETE] = true; - if(!_ephemeral) - { - actions[SHOW_VARS] = true; - actions[SUBSTITUTE_VARS] = true; - - if(_isIceBox) - { - actions[NEW_PROPERTY_SET] = true; - } - } - - return actions; + boolean[] actions = new boolean[ACTION_COUNT]; + actions[COPY] = !_ephemeral; + + Object clipboard = getCoordinator().getClipboard(); + if(clipboard != null && + (clipboard instanceof ServerDescriptor + || clipboard instanceof ServerInstanceDescriptor + || (_isIceBox && clipboard instanceof PropertySetDescriptor))) + { + actions[PASTE] = true; + } + + actions[DELETE] = true; + if(!_ephemeral) + { + actions[SHOW_VARS] = true; + actions[SUBSTITUTE_VARS] = true; + + if(_isIceBox) + { + actions[NEW_PROPERTY_SET] = true; + } + } + + return actions; } public void copy() { - getCoordinator().setClipboard(copyDescriptor(_descriptor)); - getCoordinator().getActionsForMenu().get(PASTE).setEnabled(true); + getCoordinator().setClipboard(copyDescriptor(_descriptor)); + getCoordinator().getActionsForMenu().get(PASTE).setEnabled(true); } public void paste() { - if(_isIceBox) - { - Object descriptor = getCoordinator().getClipboard(); - if(descriptor instanceof PropertySetDescriptor) - { - newPropertySet(PropertySet.copyDescriptor((PropertySetDescriptor)descriptor)); - return; - } - } + if(_isIceBox) + { + Object descriptor = getCoordinator().getClipboard(); + if(descriptor instanceof PropertySetDescriptor) + { + newPropertySet(PropertySet.copyDescriptor((PropertySetDescriptor)descriptor)); + return; + } + } - ((TreeNode)_parent).paste(); + ((TreeNode)_parent).paste(); } public void newPropertySet() { - newPropertySet(new PropertySetDescriptor( - new String[0], new java.util.LinkedList())); + newPropertySet(new PropertySetDescriptor( + new String[0], new java.util.LinkedList())); } public JPopupMenu getPopupMenu() { - if(_isIceBox) - { - ApplicationActions actions = getCoordinator().getActionsForPopup(); - if(_popup == null) - { - _popup = new JPopupMenu(); - _popup.add(actions.get(NEW_PROPERTY_SET)); - } - actions.setTarget(this); - return _popup; - } - else - { - return null; - } + if(_isIceBox) + { + ApplicationActions actions = getCoordinator().getActionsForPopup(); + if(_popup == null) + { + _popup = new JPopupMenu(); + _popup.add(actions.get(NEW_PROPERTY_SET)); + } + actions.setTarget(this); + return _popup; + } + else + { + return null; + } } public Editor getEditor() { - if(_editor == null) - { - _editor = (ServerInstanceEditor) - getRoot().getEditor(ServerInstanceEditor.class, this); - } - _editor.show(this); - return _editor; + if(_editor == null) + { + _editor = (ServerInstanceEditor) + getRoot().getEditor(ServerInstanceEditor.class, this); + } + _editor.show(this); + return _editor; } protected Editor createEditor() { - return new ServerInstanceEditor(); + return new ServerInstanceEditor(); } - + public Component getTreeCellRendererComponent( - JTree tree, - Object value, - boolean sel, - boolean expanded, - boolean leaf, - int row, - boolean hasFocus) - { - if(_cellRenderer == null) - { - // - // Initialization - // - _cellRenderer = new DefaultTreeCellRenderer(); - - _serverIcon = Utils.getIcon("/icons/16x16/server_inactive.png"); - _iceboxServerIcon = Utils.getIcon("/icons/16x16/icebox_server_inactive.png"); - - _cellRenderer.setLeafIcon(_serverIcon); - _cellRenderer.setOpenIcon(_iceboxServerIcon); - _cellRenderer.setClosedIcon(_iceboxServerIcon); - } - - return _cellRenderer.getTreeCellRendererComponent( - tree, value, sel, expanded, leaf, row, hasFocus); + JTree tree, + Object value, + boolean sel, + boolean expanded, + boolean leaf, + int row, + boolean hasFocus) + { + if(_cellRenderer == null) + { + // + // Initialization + // + _cellRenderer = new DefaultTreeCellRenderer(); + + _serverIcon = Utils.getIcon("/icons/16x16/server_inactive.png"); + _iceboxServerIcon = Utils.getIcon("/icons/16x16/icebox_server_inactive.png"); + + _cellRenderer.setLeafIcon(_serverIcon); + _cellRenderer.setOpenIcon(_iceboxServerIcon); + _cellRenderer.setClosedIcon(_iceboxServerIcon); + } + + return _cellRenderer.getTreeCellRendererComponent( + tree, value, sel, expanded, leaf, row, hasFocus); } public void destroy() { - Node node = (Node)_parent; - - if(_ephemeral) - { - node.removeServer(this); - } - else - { - node.removeDescriptor(_descriptor); - node.removeServer(this); - node.getEditable().removeElement(_id, _editable, Server.class); - getRoot().updated(); - } + Node node = (Node)_parent; + + if(_ephemeral) + { + node.removeServer(this); + } + else + { + node.removeDescriptor(_descriptor); + node.removeServer(this); + node.getEditable().removeElement(_id, _editable, Server.class); + getRoot().updated(); + } } public Object getDescriptor() { - return _descriptor; + return _descriptor; } public Object saveDescriptor() { - return _descriptor.clone(); + return _descriptor.clone(); } public void restoreDescriptor(Object savedDescriptor) { - ServerInstanceDescriptor copy = (ServerInstanceDescriptor)savedDescriptor; + ServerInstanceDescriptor copy = (ServerInstanceDescriptor)savedDescriptor; - _descriptor.template = copy.template; - _descriptor.parameterValues = copy.parameterValues; - _descriptor.propertySet = copy.propertySet; + _descriptor.template = copy.template; + _descriptor.parameterValues = copy.parameterValues; + _descriptor.propertySet = copy.propertySet; } // // Builds the server and all its sub-tree // ServerInstance(boolean brandNew, TreeNode parent, String serverId, - Utils.Resolver resolver, - ServerInstanceDescriptor instanceDescriptor, - boolean isIceBox) - throws UpdateFailedException + Utils.Resolver resolver, + ServerInstanceDescriptor instanceDescriptor, + boolean isIceBox) + throws UpdateFailedException { - super(brandNew, parent, serverId); - _ephemeral = false; - rebuild(resolver, instanceDescriptor, isIceBox); + super(brandNew, parent, serverId); + _ephemeral = false; + rebuild(resolver, instanceDescriptor, isIceBox); } ServerInstance(TreeNode parent, String serverId, - ServerInstanceDescriptor instanceDescriptor) + ServerInstanceDescriptor instanceDescriptor) { - super(false, parent, serverId); - _ephemeral = true; - try - { - rebuild(null, instanceDescriptor, false); - } - catch(UpdateFailedException e) - { - assert false; - } + super(false, parent, serverId); + _ephemeral = true; + try + { + rebuild(null, instanceDescriptor, false); + } + catch(UpdateFailedException e) + { + assert false; + } } void write(XMLWriter writer) throws java.io.IOException { - if(!_ephemeral) - { - TemplateDescriptor templateDescriptor - = getRoot().findServerTemplateDescriptor(_descriptor.template); - - java.util.LinkedList attributes = parameterValuesToAttributes( - _descriptor.parameterValues, templateDescriptor.parameters); - attributes.addFirst(createAttribute("template", _descriptor.template)); - - if(_descriptor.propertySet.references.length == 0 && - _descriptor.propertySet.properties.size() == 0 && - _children.size() == 0) - { - writer.writeElement("server-instance", attributes); - } - else - { - writer.writeStartTag("server-instance", attributes); - writePropertySet(writer, _descriptor.propertySet, null, null); - - java.util.Iterator p = _children.iterator(); - while(p.hasNext()) - { - PropertySet ps = (PropertySet)p.next(); - ps.write(writer); - } - - writer.writeEndTag("server-instance"); - } - } + if(!_ephemeral) + { + TemplateDescriptor templateDescriptor + = getRoot().findServerTemplateDescriptor(_descriptor.template); + + java.util.LinkedList attributes = parameterValuesToAttributes( + _descriptor.parameterValues, templateDescriptor.parameters); + attributes.addFirst(createAttribute("template", _descriptor.template)); + + if(_descriptor.propertySet.references.length == 0 && + _descriptor.propertySet.properties.size() == 0 && + _children.size() == 0) + { + writer.writeElement("server-instance", attributes); + } + else + { + writer.writeStartTag("server-instance", attributes); + writePropertySet(writer, _descriptor.propertySet, null, null); + + java.util.Iterator p = _children.iterator(); + while(p.hasNext()) + { + PropertySet ps = (PropertySet)p.next(); + ps.write(writer); + } + + writer.writeEndTag("server-instance"); + } + } } boolean isIceBox() { - return _isIceBox; + return _isIceBox; } void isIceBox(boolean newValue) { - if(newValue != _isIceBox) - { - _isIceBox = newValue; - _children.clear(); - getRoot().getTreeModel().nodeStructureChanged(this); - } + if(newValue != _isIceBox) + { + _isIceBox = newValue; + _children.clear(); + getRoot().getTreeModel().nodeStructureChanged(this); + } } static private class Backup { - Backup(Editable ne) - { - nodeEditable = ne; - } + Backup(Editable ne) + { + nodeEditable = ne; + } - Editable nodeEditable; - java.util.Map parameterValues; + Editable nodeEditable; + java.util.Map parameterValues; } public Object rebuild(java.util.List editables) throws UpdateFailedException { - Node node = (Node)_parent; - Backup backup = new Backup(node.getEditable().save()); - - TemplateDescriptor templateDescriptor - = getRoot().findServerTemplateDescriptor(_descriptor.template); - - java.util.Set parameters = new java.util.HashSet(templateDescriptor.parameters); - if(!parameters.equals(_descriptor.parameterValues.keySet())) - { - backup.parameterValues = _descriptor.parameterValues; - _descriptor.parameterValues = Editor.makeParameterValues( - _descriptor.parameterValues, templateDescriptor.parameters); - } - ServerInstance newServer = node.createServer(false, _descriptor); - - - if(_id.equals(newServer.getId())) - { - // - // A simple update. We can't simply rebuild server because - // we need to keep a backup - // - if(_editable.isModified()) - { - newServer.getEditable().markModified(); - } - - node.removeServer(this); - try - { - node.insertServer(newServer, true); - } - catch(UpdateFailedException e) - { - assert false; // impossible, we just removed a child with - // this id - } - - if(backup.parameterValues != null) - { - editables.add(newServer.getEditable()); - } - } - else - { - newServer.getEditable().markNew(); - node.removeServer(this); - node.getEditable().removeElement(_id, _editable, Server.class); - try - { - node.insertServer(newServer, true); - } - catch(UpdateFailedException e) - { - restore(backup); - throw e; - } - } - - return backup; + Node node = (Node)_parent; + Backup backup = new Backup(node.getEditable().save()); + + TemplateDescriptor templateDescriptor + = getRoot().findServerTemplateDescriptor(_descriptor.template); + + java.util.Set parameters = new java.util.HashSet(templateDescriptor.parameters); + if(!parameters.equals(_descriptor.parameterValues.keySet())) + { + backup.parameterValues = _descriptor.parameterValues; + _descriptor.parameterValues = Editor.makeParameterValues( + _descriptor.parameterValues, templateDescriptor.parameters); + } + ServerInstance newServer = node.createServer(false, _descriptor); + + + if(_id.equals(newServer.getId())) + { + // + // A simple update. We can't simply rebuild server because + // we need to keep a backup + // + if(_editable.isModified()) + { + newServer.getEditable().markModified(); + } + + node.removeServer(this); + try + { + node.insertServer(newServer, true); + } + catch(UpdateFailedException e) + { + assert false; // impossible, we just removed a child with + // this id + } + + if(backup.parameterValues != null) + { + editables.add(newServer.getEditable()); + } + } + else + { + newServer.getEditable().markNew(); + node.removeServer(this); + node.getEditable().removeElement(_id, _editable, Server.class); + try + { + node.insertServer(newServer, true); + } + catch(UpdateFailedException e) + { + restore(backup); + throw e; + } + } + + return backup; } public void restore(Object backupObj) { - Backup backup = (Backup)backupObj; - Node node = (Node)_parent; - - node.getEditable().restore(backup.nodeEditable); + Backup backup = (Backup)backupObj; + Node node = (Node)_parent; + + node.getEditable().restore(backup.nodeEditable); - if(backup.parameterValues != null) - { - _descriptor.parameterValues = backup.parameterValues; - } + if(backup.parameterValues != null) + { + _descriptor.parameterValues = backup.parameterValues; + } - TreeNode badServer = node.findChildWithDescriptor(_descriptor); + TreeNode badServer = node.findChildWithDescriptor(_descriptor); - if(badServer != null) - { - node.removeServer(badServer); - } + if(badServer != null) + { + node.removeServer(badServer); + } - try - { - node.insertServer(this, true); - } - catch(UpdateFailedException e) - { - assert false; // impossible - } + try + { + node.insertServer(this, true); + } + catch(UpdateFailedException e) + { + assert false; // impossible + } } public void tryAdd(String unsubstitutedId, PropertySetDescriptor descriptor) - throws UpdateFailedException + throws UpdateFailedException { - insertPropertySet(new PropertySet(this, - Utils.substitute(unsubstitutedId, _resolver), - unsubstitutedId, - descriptor), - true); - _descriptor.servicePropertySets.put(unsubstitutedId, descriptor); - _editable.markModified(); + insertPropertySet(new PropertySet(this, + Utils.substitute(unsubstitutedId, _resolver), + unsubstitutedId, + descriptor), + true); + _descriptor.servicePropertySets.put(unsubstitutedId, descriptor); + _editable.markModified(); } public void tryRename(String oldId, String oldUnresolvedId, - String newUnsubstitutedId) - throws UpdateFailedException - { - PropertySet oldChild = (PropertySet)findChild(oldId); - assert oldChild != null; - removePropertySet(oldChild); - PropertySetDescriptor descriptor = (PropertySetDescriptor)oldChild.getDescriptor(); - - try - { - insertPropertySet( - new PropertySet(this, - Utils.substitute(newUnsubstitutedId, _resolver), - newUnsubstitutedId, descriptor), - true); - } - catch(UpdateFailedException ex) - { - try - { - insertPropertySet(oldChild, true); - } - catch(UpdateFailedException ufe) - { - assert false; - } - throw ex; - } - - _editable.markModified(); - _descriptor.servicePropertySets.remove(oldUnresolvedId); - _descriptor.servicePropertySets.put(newUnsubstitutedId, descriptor); + String newUnsubstitutedId) + throws UpdateFailedException + { + PropertySet oldChild = (PropertySet)findChild(oldId); + assert oldChild != null; + removePropertySet(oldChild); + PropertySetDescriptor descriptor = (PropertySetDescriptor)oldChild.getDescriptor(); + + try + { + insertPropertySet( + new PropertySet(this, + Utils.substitute(newUnsubstitutedId, _resolver), + newUnsubstitutedId, descriptor), + true); + } + catch(UpdateFailedException ex) + { + try + { + insertPropertySet(oldChild, true); + } + catch(UpdateFailedException ufe) + { + assert false; + } + throw ex; + } + + _editable.markModified(); + _descriptor.servicePropertySets.remove(oldUnresolvedId); + _descriptor.servicePropertySets.put(newUnsubstitutedId, descriptor); } public void insertPropertySet(PropertySet nps, boolean fireEvent) - throws UpdateFailedException + throws UpdateFailedException { - insertChild(nps, fireEvent); + insertChild(nps, fireEvent); } public void removePropertySet(PropertySet nps) { - removeChild(nps); + removeChild(nps); } public void removeDescriptor(String unsubstitutedId) { - _descriptor.servicePropertySets.remove(unsubstitutedId); + _descriptor.servicePropertySets.remove(unsubstitutedId); } public Editable getEditable() { - return _editable; + return _editable; } Object[] getServiceNames() { - assert _isIceBox; - - // - // Retrieve the list of service instances - // - - Communicator.ChildList services = getRoot(). - findServerTemplate(_descriptor.template).getServices(); - - Object[] result = new Object[services.size()]; - int i = 0; - - java.util.Iterator p = services.iterator(); - while(p.hasNext()) - { - TreeNode n = (TreeNode)p.next(); - ServiceInstanceDescriptor d = (ServiceInstanceDescriptor)n.getDescriptor(); - - if(d.template.length() > 0) - { - TemplateDescriptor templateDescriptor - = (TemplateDescriptor)getRoot().findServiceTemplateDescriptor(d.template); - assert templateDescriptor != null; - Utils.Resolver serviceResolver = new Utils.Resolver(_resolver, - d.parameterValues, - templateDescriptor.parameterDefaults); - - ServiceDescriptor serviceDescriptor = (ServiceDescriptor)templateDescriptor.descriptor; - - result[i++] = serviceResolver.substitute(serviceDescriptor.name); - } - else - { - result[i++] = _resolver.substitute(d.descriptor.name); - } - } - return result; + assert _isIceBox; + + // + // Retrieve the list of service instances + // + + Communicator.ChildList services = getRoot(). + findServerTemplate(_descriptor.template).getServices(); + + Object[] result = new Object[services.size()]; + int i = 0; + + java.util.Iterator p = services.iterator(); + while(p.hasNext()) + { + TreeNode n = (TreeNode)p.next(); + ServiceInstanceDescriptor d = (ServiceInstanceDescriptor)n.getDescriptor(); + + if(d.template.length() > 0) + { + TemplateDescriptor templateDescriptor + = (TemplateDescriptor)getRoot().findServiceTemplateDescriptor(d.template); + assert templateDescriptor != null; + Utils.Resolver serviceResolver = new Utils.Resolver(_resolver, + d.parameterValues, + templateDescriptor.parameterDefaults); + + ServiceDescriptor serviceDescriptor = (ServiceDescriptor)templateDescriptor.descriptor; + + result[i++] = serviceResolver.substitute(serviceDescriptor.name); + } + else + { + result[i++] = _resolver.substitute(d.descriptor.name); + } + } + return result; } // // Update the server and its children // void rebuild(Utils.Resolver resolver, - ServerInstanceDescriptor instanceDescriptor, - boolean isIceBox) throws UpdateFailedException + ServerInstanceDescriptor instanceDescriptor, + boolean isIceBox) throws UpdateFailedException { - _resolver = resolver; - _isIceBox = isIceBox; - _descriptor = instanceDescriptor; - - _children.clear(); + _resolver = resolver; + _isIceBox = isIceBox; + _descriptor = instanceDescriptor; + + _children.clear(); - java.util.Iterator p = _descriptor.servicePropertySets.entrySet().iterator(); - while(p.hasNext()) - { - java.util.Map.Entry entry = (java.util.Map.Entry)p.next(); - String unsubstitutedId = (String)entry.getKey(); + java.util.Iterator p = _descriptor.servicePropertySets.entrySet().iterator(); + while(p.hasNext()) + { + java.util.Map.Entry entry = (java.util.Map.Entry)p.next(); + String unsubstitutedId = (String)entry.getKey(); - insertPropertySet(new PropertySet(this, - Utils.substitute(unsubstitutedId, _resolver), - unsubstitutedId, - (PropertySetDescriptor)entry.getValue()), - false); - } + insertPropertySet(new PropertySet(this, + Utils.substitute(unsubstitutedId, _resolver), + unsubstitutedId, + (PropertySetDescriptor)entry.getValue()), + false); + } } private void newPropertySet(PropertySetDescriptor descriptor) { - String id = makeNewChildId("Service"); - - PropertySet ps = new PropertySet(this, id, descriptor); - try - { - insertChild(ps, true); - } - catch(UpdateFailedException e) - { - assert false; - } - getRoot().setSelectedNode(ps); + String id = makeNewChildId("Service"); + + PropertySet ps = new PropertySet(this, id, descriptor); + try + { + insertChild(ps, true); + } + catch(UpdateFailedException e) + { + assert false; + } + getRoot().setSelectedNode(ps); } Utils.Resolver getResolver() { - return _resolver; + return _resolver; } public boolean isEphemeral() { - return _ephemeral; + return _ephemeral; } public String toString() { - if(_ephemeral) - { - return super.toString(); - } - else - { - return _id + ": " + _descriptor.template + "<>"; - } + if(_ephemeral) + { + return super.toString(); + } + else + { + return _id + ": " + _descriptor.template + "<>"; + } } private ServerInstanceDescriptor _descriptor; diff --git a/java/src/IceGridGUI/Application/ServerInstanceEditor.java b/java/src/IceGridGUI/Application/ServerInstanceEditor.java index 6f2497bb56f..44affdcbaed 100755 --- a/java/src/IceGridGUI/Application/ServerInstanceEditor.java +++ b/java/src/IceGridGUI/Application/ServerInstanceEditor.java @@ -30,63 +30,63 @@ class ServerInstanceEditor extends AbstractServerEditor { protected void writeDescriptor() { - ServerInstanceDescriptor descriptor = getDescriptor(); - ServerTemplate t = (ServerTemplate)_template.getSelectedItem(); - - descriptor.template = t.getId(); - descriptor.parameterValues = _parameters.getValues(); - - descriptor.propertySet.references = - (String[])_propertySets.getList().toArray(new String[0]); - descriptor.propertySet.properties = _properties.getProperties(); - - ((ServerInstance)_target).isIceBox( - ((TemplateDescriptor)t.getDescriptor()).descriptor instanceof IceBoxDescriptor); + ServerInstanceDescriptor descriptor = getDescriptor(); + ServerTemplate t = (ServerTemplate)_template.getSelectedItem(); + + descriptor.template = t.getId(); + descriptor.parameterValues = _parameters.getValues(); + + descriptor.propertySet.references = + (String[])_propertySets.getList().toArray(new String[0]); + descriptor.propertySet.properties = _properties.getProperties(); + + ((ServerInstance)_target).isIceBox( + ((TemplateDescriptor)t.getDescriptor()).descriptor instanceof IceBoxDescriptor); } protected boolean isSimpleUpdate() { - ServerInstanceDescriptor descriptor = getDescriptor(); - ServerTemplate t = (ServerTemplate)_template.getSelectedItem(); + ServerInstanceDescriptor descriptor = getDescriptor(); + ServerTemplate t = (ServerTemplate)_template.getSelectedItem(); - return descriptor.template.equals(t.getId()) - && descriptor.parameterValues.equals(_parameters.getValues()); + return descriptor.template.equals(t.getId()) + && descriptor.parameterValues.equals(_parameters.getValues()); } ServerInstanceEditor() - { - _template.setToolTipText("Server template"); - - // - // Template - // - Action gotoTemplate = new AbstractAction( - "", Utils.getIcon("/icons/16x16/goto.png")) - { - public void actionPerformed(ActionEvent e) - { - TreeNode t = (TreeNode)_template.getSelectedItem(); - if(t != null) - { - t.getRoot().setSelectedNode(t); - } - } - }; - gotoTemplate.putValue(Action.SHORT_DESCRIPTION, - "Goto this server template"); - _templateButton = new JButton(gotoTemplate); - - _parameters = new ParameterValuesField(this); - - _propertySets.getDocument().addDocumentListener(_updateListener); - _propertySets.setToolTipText("Property Set References"); - - _properties = new PropertiesField(this); + { + _template.setToolTipText("Server template"); + + // + // Template + // + Action gotoTemplate = new AbstractAction( + "", Utils.getIcon("/icons/16x16/goto.png")) + { + public void actionPerformed(ActionEvent e) + { + TreeNode t = (TreeNode)_template.getSelectedItem(); + if(t != null) + { + t.getRoot().setSelectedNode(t); + } + } + }; + gotoTemplate.putValue(Action.SHORT_DESCRIPTION, + "Goto this server template"); + _templateButton = new JButton(gotoTemplate); + + _parameters = new ParameterValuesField(this); + + _propertySets.getDocument().addDocumentListener(_updateListener); + _propertySets.setToolTipText("Property Set References"); + + _properties = new PropertiesField(this); } ServerInstanceDescriptor getDescriptor() { - return (ServerInstanceDescriptor)_target.getDescriptor(); + return (ServerInstanceDescriptor)_target.getDescriptor(); } // @@ -95,128 +95,128 @@ class ServerInstanceEditor extends AbstractServerEditor Utils.Resolver getDetailResolver() { - if(_target.getCoordinator().substitute()) - { - return _target.getResolver(); - } - else - { - return null; - } + if(_target.getCoordinator().substitute()) + { + return _target.getResolver(); + } + else + { + return null; + } } protected void appendProperties(DefaultFormBuilder builder) { - builder.append("Template", _template); - builder.append(_templateButton); - builder.nextLine(); - - builder.append("Parameters"); - builder.nextLine(); - builder.append(""); - builder.nextLine(); - builder.append(""); - - builder.nextLine(); - builder.append(""); - - builder.nextRow(-6); - JScrollPane scrollPane = new JScrollPane(_parameters); - CellConstraints cc = new CellConstraints(); - builder.add(scrollPane, - cc.xywh(builder.getColumn(), builder.getRow(), 3, 7)); - builder.nextRow(6); - builder.nextLine(); - - builder.append("Property Sets"); - builder.append(_propertySets, 3); - builder.nextLine(); - - builder.append("Properties"); - builder.nextLine(); - builder.append(""); - builder.nextLine(); - builder.append(""); - - builder.nextLine(); - builder.append(""); - - builder.nextRow(-6); - scrollPane = new JScrollPane(_properties); - builder.add(scrollPane, - cc.xywh(builder.getColumn(), builder.getRow(), 3, 7)); - builder.nextRow(6); - builder.nextLine(); + builder.append("Template", _template); + builder.append(_templateButton); + builder.nextLine(); + + builder.append("Parameters"); + builder.nextLine(); + builder.append(""); + builder.nextLine(); + builder.append(""); + + builder.nextLine(); + builder.append(""); + + builder.nextRow(-6); + JScrollPane scrollPane = new JScrollPane(_parameters); + CellConstraints cc = new CellConstraints(); + builder.add(scrollPane, + cc.xywh(builder.getColumn(), builder.getRow(), 3, 7)); + builder.nextRow(6); + builder.nextLine(); + + builder.append("Property Sets"); + builder.append(_propertySets, 3); + builder.nextLine(); + + builder.append("Properties"); + builder.nextLine(); + builder.append(""); + builder.nextLine(); + builder.append(""); + + builder.nextLine(); + builder.append(""); + + builder.nextRow(-6); + scrollPane = new JScrollPane(_properties); + builder.add(scrollPane, + cc.xywh(builder.getColumn(), builder.getRow(), 3, 7)); + builder.nextRow(6); + builder.nextLine(); } void show(ServerInstance server) { - detectUpdates(false); - _target = server; - - ServerInstanceDescriptor descriptor = getDescriptor(); - Root root = server.getRoot(); - boolean isEditable = server.isEphemeral() || !root.getCoordinator().substitute(); - - Utils.Resolver resolver = isEditable ? null : - ((Node)_target.getParent()).getResolver(); - - // - // Need to make control enabled before changing it - // - _template.setEnabled(true); - - ServerTemplates serverTemplates = root.getServerTemplates(); - _template.setModel(serverTemplates.createComboBoxModel()); - - ServerTemplate t = (ServerTemplate) - serverTemplates.findChild(descriptor.template); - assert t != null; - _template.setSelectedItem(t); - - ListDataListener templateListener = new ListDataListener() - { - public void contentsChanged(ListDataEvent e) - { - updated(); - - ServerTemplate t = - (ServerTemplate)_template.getModel().getSelectedItem(); - - TemplateDescriptor td = (TemplateDescriptor)t.getDescriptor(); - - // - // Replace parameters but keep existing values - // - _parameters.set(td.parameters, - makeParameterValues(_parameters.getValues(), td.parameters), - td.parameterDefaults, null); - } - - public void intervalAdded(ListDataEvent e) - {} + detectUpdates(false); + _target = server; + + ServerInstanceDescriptor descriptor = getDescriptor(); + Root root = server.getRoot(); + boolean isEditable = server.isEphemeral() || !root.getCoordinator().substitute(); + + Utils.Resolver resolver = isEditable ? null : + ((Node)_target.getParent()).getResolver(); + + // + // Need to make control enabled before changing it + // + _template.setEnabled(true); + + ServerTemplates serverTemplates = root.getServerTemplates(); + _template.setModel(serverTemplates.createComboBoxModel()); + + ServerTemplate t = (ServerTemplate) + serverTemplates.findChild(descriptor.template); + assert t != null; + _template.setSelectedItem(t); + + ListDataListener templateListener = new ListDataListener() + { + public void contentsChanged(ListDataEvent e) + { + updated(); + + ServerTemplate t = + (ServerTemplate)_template.getModel().getSelectedItem(); + + TemplateDescriptor td = (TemplateDescriptor)t.getDescriptor(); + + // + // Replace parameters but keep existing values + // + _parameters.set(td.parameters, + makeParameterValues(_parameters.getValues(), td.parameters), + td.parameterDefaults, null); + } + + public void intervalAdded(ListDataEvent e) + {} - public void intervalRemoved(ListDataEvent e) - {} - }; - - _template.getModel().addListDataListener(templateListener); - _template.setEnabled(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()); - _propertySets.setEditable(isEditable); - - _properties.setProperties(descriptor.propertySet.properties, null, null, - getDetailResolver(), isEditable); - - _applyButton.setEnabled(server.isEphemeral()); - _discardButton.setEnabled(server.isEphemeral()); - detectUpdates(true); + public void intervalRemoved(ListDataEvent e) + {} + }; + + _template.getModel().addListDataListener(templateListener); + _template.setEnabled(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()); + _propertySets.setEditable(isEditable); + + _properties.setProperties(descriptor.propertySet.properties, null, null, + getDetailResolver(), isEditable); + + _applyButton.setEnabled(server.isEphemeral()); + _discardButton.setEnabled(server.isEphemeral()); + detectUpdates(true); } private JComboBox _template = new JComboBox(); diff --git a/java/src/IceGridGUI/Application/ServerInstancePropertySetEditor.java b/java/src/IceGridGUI/Application/ServerInstancePropertySetEditor.java index 76fac6c588a..ecf97467164 100644 --- a/java/src/IceGridGUI/Application/ServerInstancePropertySetEditor.java +++ b/java/src/IceGridGUI/Application/ServerInstancePropertySetEditor.java @@ -20,47 +20,47 @@ class ServerInstancePropertySetEditor extends PropertySetEditor { ServerInstancePropertySetEditor() { - super("Service Name"); - _id.setToolTipText("The name of the service"); + super("Service Name"); + _id.setToolTipText("The name of the service"); - JTextField idTextField = (JTextField) - _id.getEditor().getEditorComponent(); - idTextField.getDocument().addDocumentListener(_updateListener); + JTextField idTextField = (JTextField) + _id.getEditor().getEditorComponent(); + idTextField.getDocument().addDocumentListener(_updateListener); } protected void buildPropertiesPanel() { - super.buildPropertiesPanel(); - _propertiesPanel.setName("Service Instance Property Set"); + super.buildPropertiesPanel(); + _propertiesPanel.setName("Service Instance Property Set"); } protected JComponent getIdComponent() { - return _id; + return _id; } protected String getIdText() { - if(_id.getSelectedItem() == null) - { - return ""; - } - else - { - return _id.getSelectedItem().toString().trim(); - } + if(_id.getSelectedItem() == null) + { + return ""; + } + else + { + return _id.getSelectedItem().toString().trim(); + } } protected void showId(String unsubstitutedId, Utils.Resolver resolver) { - ServerInstance s = (ServerInstance)_target.getParent(); - - _id.setEnabled(true); - _id.setEditable(true); - _id.setModel(new DefaultComboBoxModel(s.getServiceNames())); - _id.setSelectedItem(Utils.substitute(unsubstitutedId, resolver)); - _id.setEditable(resolver == null); - _id.setEnabled(resolver == null); + ServerInstance s = (ServerInstance)_target.getParent(); + + _id.setEnabled(true); + _id.setEditable(true); + _id.setModel(new DefaultComboBoxModel(s.getServiceNames())); + _id.setSelectedItem(Utils.substitute(unsubstitutedId, resolver)); + _id.setEditable(resolver == null); + _id.setEnabled(resolver == null); } private JComboBox _id = new JComboBox(); diff --git a/java/src/IceGridGUI/Application/ServerSubEditor.java b/java/src/IceGridGUI/Application/ServerSubEditor.java index aee4c65a92f..3acedfe0a7f 100755 --- a/java/src/IceGridGUI/Application/ServerSubEditor.java +++ b/java/src/IceGridGUI/Application/ServerSubEditor.java @@ -29,352 +29,352 @@ class ServerSubEditor extends CommunicatorSubEditor { ServerSubEditor(Editor mainEditor) { - super(mainEditor); - - _id.getDocument().addDocumentListener( - _mainEditor.getUpdateListener()); - _id.setToolTipText("Must be unique within this IceGrid deployment"); - - _iceVersion.getDocument().addDocumentListener( - _mainEditor.getUpdateListener()); - _iceVersion.setToolTipText("<html>This server's Ice version, such as 3.0 or 3.1.1;<br>" - + "leave blank to use the version of the IceGrid registry.</html>"); - - _exe.getDocument().addDocumentListener( - _mainEditor.getUpdateListener()); - _exe.setToolTipText("<html>Path to this server's executable, e.g.:<br>" - + "icebox<br>" - + "java<br>" - + "myHelloServer<br>" - + "C:\\testbed\\hello\\server</html>"); - - _pwd.getDocument().addDocumentListener( - _mainEditor.getUpdateListener()); - _pwd.setToolTipText( - "<html>If not set, the server will start in " - + "<i>node data dir</i>/servers/<i>server-id</i>;<br>" - + "relative directories are relative to the current directory" - + " of the icegridnode process.</html>"); - - _options.getDocument().addDocumentListener( - _mainEditor.getUpdateListener()); - _options.setToolTipText( - "<html>Command-line arguments for this server.<br>" - + "Use whitespace as separator; use double-quotes around arguments containing whitespaces</html>"); - - _user.getDocument().addDocumentListener( - _mainEditor.getUpdateListener()); - _user.setToolTipText( - "<html>Run the server using this user account.<br>" - + "This feature is only available on Unix/Linux, when the IceGrid node runs as root.</html>"); - - _envs = new MapField(mainEditor, "Name", "Value", true); - - _activation = new JComboBox(new Object[]{ALWAYS, MANUAL, ON_DEMAND, SESSION}); - _activation.setToolTipText("<html>always: IceGrid starts and keeps the server up all the time<br>" - + "manual: you start the server yourself<br>" - + "on-demand: IceGrid starts the server when a client needs it<br>" - + "session: IceGrid starts and shuts down the server for each session</html>"); - - JTextField activationTextField = (JTextField) - _activation.getEditor().getEditorComponent(); - activationTextField.getDocument().addDocumentListener( - _mainEditor.getUpdateListener()); - - _activationTimeout.getDocument().addDocumentListener( - _mainEditor.getUpdateListener()); - _activationTimeout.setToolTipText("<html>Number of seconds; if not set or set to 0, " - + "the IceGrid Node<br> uses the value of its " - + "IceGrid.Node.WaitTime property</html>"); - _deactivationTimeout.getDocument().addDocumentListener( - _mainEditor.getUpdateListener()); - _deactivationTimeout.setToolTipText("<html>Number of seconds; if not set or set to 0, " - + "the IceGrid Node<br> uses the value of its " - + "IceGrid.Node.WaitTime property</html>"); - - Action allocatable = new AbstractAction("Allocatable") - { - public void actionPerformed(ActionEvent e) - { - _mainEditor.updated(); - } - }; - allocatable.putValue(Action.SHORT_DESCRIPTION, - "<html>Check this box to ensure that the well-known objects<br>" - + "of this server can only be allocated by one session at a time.</html>"); - _allocatable = new JCheckBox(allocatable); - - - Action appDistrib = new AbstractAction("Depends on the application distribution") - { - public void actionPerformed(ActionEvent e) - { - _mainEditor.updated(); - } - }; - appDistrib.putValue(Action.SHORT_DESCRIPTION, - "<html>Check this box if this server needs to be restarted<br>" - + "each time the distribution for your application is refreshed.</html>"); - - _applicationDistrib = new JCheckBox(appDistrib); - - _distrib = new JComboBox(new Object[]{NO_DISTRIB, DEFAULT_DISTRIB}); - _distrib.setToolTipText( - "The proxy to the IcePatch2 server holding your files"); - - JTextField distribTextField = (JTextField) - _distrib.getEditor().getEditorComponent(); - distribTextField.getDocument().addDocumentListener( - _mainEditor.getUpdateListener()); - - _distribDirs.getDocument().addDocumentListener( - _mainEditor.getUpdateListener()); - _distribDirs.setToolTipText( - "<html>Include only these directories when patching.<br>" - + "Use whitespace as separator; use double-quotes around directories containing whitespaces</html>"); - + super(mainEditor); + + _id.getDocument().addDocumentListener( + _mainEditor.getUpdateListener()); + _id.setToolTipText("Must be unique within this IceGrid deployment"); + + _iceVersion.getDocument().addDocumentListener( + _mainEditor.getUpdateListener()); + _iceVersion.setToolTipText("<html>This server's Ice version, such as 3.0 or 3.1.1;<br>" + + "leave blank to use the version of the IceGrid registry.</html>"); + + _exe.getDocument().addDocumentListener( + _mainEditor.getUpdateListener()); + _exe.setToolTipText("<html>Path to this server's executable, e.g.:<br>" + + "icebox<br>" + + "java<br>" + + "myHelloServer<br>" + + "C:\\testbed\\hello\\server</html>"); + + _pwd.getDocument().addDocumentListener( + _mainEditor.getUpdateListener()); + _pwd.setToolTipText( + "<html>If not set, the server will start in " + + "<i>node data dir</i>/servers/<i>server-id</i>;<br>" + + "relative directories are relative to the current directory" + + " of the icegridnode process.</html>"); + + _options.getDocument().addDocumentListener( + _mainEditor.getUpdateListener()); + _options.setToolTipText( + "<html>Command-line arguments for this server.<br>" + + "Use whitespace as separator; use double-quotes around arguments containing whitespaces</html>"); + + _user.getDocument().addDocumentListener( + _mainEditor.getUpdateListener()); + _user.setToolTipText( + "<html>Run the server using this user account.<br>" + + "This feature is only available on Unix/Linux, when the IceGrid node runs as root.</html>"); + + _envs = new MapField(mainEditor, "Name", "Value", true); + + _activation = new JComboBox(new Object[]{ALWAYS, MANUAL, ON_DEMAND, SESSION}); + _activation.setToolTipText("<html>always: IceGrid starts and keeps the server up all the time<br>" + + "manual: you start the server yourself<br>" + + "on-demand: IceGrid starts the server when a client needs it<br>" + + "session: IceGrid starts and shuts down the server for each session</html>"); + + JTextField activationTextField = (JTextField) + _activation.getEditor().getEditorComponent(); + activationTextField.getDocument().addDocumentListener( + _mainEditor.getUpdateListener()); + + _activationTimeout.getDocument().addDocumentListener( + _mainEditor.getUpdateListener()); + _activationTimeout.setToolTipText("<html>Number of seconds; if not set or set to 0, " + + "the IceGrid Node<br> uses the value of its " + + "IceGrid.Node.WaitTime property</html>"); + _deactivationTimeout.getDocument().addDocumentListener( + _mainEditor.getUpdateListener()); + _deactivationTimeout.setToolTipText("<html>Number of seconds; if not set or set to 0, " + + "the IceGrid Node<br> uses the value of its " + + "IceGrid.Node.WaitTime property</html>"); + + Action allocatable = new AbstractAction("Allocatable") + { + public void actionPerformed(ActionEvent e) + { + _mainEditor.updated(); + } + }; + allocatable.putValue(Action.SHORT_DESCRIPTION, + "<html>Check this box to ensure that the well-known objects<br>" + + "of this server can only be allocated by one session at a time.</html>"); + _allocatable = new JCheckBox(allocatable); + + + Action appDistrib = new AbstractAction("Depends on the application distribution") + { + public void actionPerformed(ActionEvent e) + { + _mainEditor.updated(); + } + }; + appDistrib.putValue(Action.SHORT_DESCRIPTION, + "<html>Check this box if this server needs to be restarted<br>" + + "each time the distribution for your application is refreshed.</html>"); + + _applicationDistrib = new JCheckBox(appDistrib); + + _distrib = new JComboBox(new Object[]{NO_DISTRIB, DEFAULT_DISTRIB}); + _distrib.setToolTipText( + "The proxy to the IcePatch2 server holding your files"); + + JTextField distribTextField = (JTextField) + _distrib.getEditor().getEditorComponent(); + distribTextField.getDocument().addDocumentListener( + _mainEditor.getUpdateListener()); + + _distribDirs.getDocument().addDocumentListener( + _mainEditor.getUpdateListener()); + _distribDirs.setToolTipText( + "<html>Include only these directories when patching.<br>" + + "Use whitespace as separator; use double-quotes around directories containing whitespaces</html>"); + } ServerDescriptor getServerDescriptor() { - return (ServerDescriptor) - _mainEditor.getSubDescriptor(); + return (ServerDescriptor) + _mainEditor.getSubDescriptor(); } void appendProperties(DefaultFormBuilder builder) { - builder.append("Server ID"); - builder.append(_id, 3); - builder.nextLine(); - builder.append("Ice Version"); - builder.append(_iceVersion, 3); - builder.nextLine(); - - // - // Add Communicator fields - // - super.appendProperties(builder); - - builder.appendSeparator("Activation"); - builder.append("Path to Executable"); - builder.append(_exe, 3); - builder.nextLine(); - builder.append("Working Directory"); - builder.append(_pwd, 3); - builder.nextLine(); - builder.append("Command Arguments"); - builder.append(_options, 3); - builder.nextLine(); - builder.append("Run as"); - builder.append(_user, 3); - builder.nextLine(); - builder.append("Environment Variables"); - builder.nextLine(); - builder.append(""); - builder.nextLine(); - builder.append(""); - builder.nextLine(); - builder.append(""); - builder.nextRow(-6); - CellConstraints cc = new CellConstraints(); - JScrollPane scrollPane = new JScrollPane(_envs); - builder.add(scrollPane, - cc.xywh(builder.getColumn(), builder.getRow(), 3, 7)); - builder.nextRow(6); - builder.nextLine(); - - builder.append("Activation Mode"); - builder.append(_activation, 3); - builder.nextLine(); - builder.append("Activation Timeout"); - builder.append(_activationTimeout, 3); - builder.nextLine(); - builder.append("Deactivation Timeout"); - builder.append(_deactivationTimeout, 3); - builder.nextLine(); - builder.append("", _allocatable); - builder.nextLine(); - - JComponent c = builder.appendSeparator("Distribution"); - c.setToolTipText("Files specific to this server"); - - builder.append("", _applicationDistrib); - builder.nextLine(); - builder.append("IcePatch2 Proxy"); - builder.append(_distrib, 3); - builder.nextLine(); - builder.append("Directories"); - builder.append(_distribDirs, 3); - builder.nextLine(); + builder.append("Server ID"); + builder.append(_id, 3); + builder.nextLine(); + builder.append("Ice Version"); + builder.append(_iceVersion, 3); + builder.nextLine(); + + // + // Add Communicator fields + // + super.appendProperties(builder); + + builder.appendSeparator("Activation"); + builder.append("Path to Executable"); + builder.append(_exe, 3); + builder.nextLine(); + builder.append("Working Directory"); + builder.append(_pwd, 3); + builder.nextLine(); + builder.append("Command Arguments"); + builder.append(_options, 3); + builder.nextLine(); + builder.append("Run as"); + builder.append(_user, 3); + builder.nextLine(); + builder.append("Environment Variables"); + builder.nextLine(); + builder.append(""); + builder.nextLine(); + builder.append(""); + builder.nextLine(); + builder.append(""); + builder.nextRow(-6); + CellConstraints cc = new CellConstraints(); + JScrollPane scrollPane = new JScrollPane(_envs); + builder.add(scrollPane, + cc.xywh(builder.getColumn(), builder.getRow(), 3, 7)); + builder.nextRow(6); + builder.nextLine(); + + builder.append("Activation Mode"); + builder.append(_activation, 3); + builder.nextLine(); + builder.append("Activation Timeout"); + builder.append(_activationTimeout, 3); + builder.nextLine(); + builder.append("Deactivation Timeout"); + builder.append(_deactivationTimeout, 3); + builder.nextLine(); + builder.append("", _allocatable); + builder.nextLine(); + + JComponent c = builder.appendSeparator("Distribution"); + c.setToolTipText("Files specific to this server"); + + builder.append("", _applicationDistrib); + builder.nextLine(); + builder.append("IcePatch2 Proxy"); + builder.append(_distrib, 3); + builder.nextLine(); + builder.append("Directories"); + builder.append(_distribDirs, 3); + builder.nextLine(); } void writeDescriptor() { - ServerDescriptor descriptor = getServerDescriptor(); - descriptor.id = _id.getText().trim(); - descriptor.iceVersion = _iceVersion.getText().trim(); - descriptor.exe = _exe.getText().trim(); - descriptor.pwd = _pwd.getText().trim(); - - descriptor.options = _options.getList(); - descriptor.user = _user.getText().trim(); - - descriptor.envs = new java.util.LinkedList(); - java.util.Iterator p = _envs.get().entrySet().iterator(); - while(p.hasNext()) - { - java.util.Map.Entry entry = (java.util.Map.Entry)p.next(); - descriptor.envs.add(entry.getKey().toString() - + "=" + entry.getValue().toString()); - } + ServerDescriptor descriptor = getServerDescriptor(); + descriptor.id = _id.getText().trim(); + descriptor.iceVersion = _iceVersion.getText().trim(); + descriptor.exe = _exe.getText().trim(); + descriptor.pwd = _pwd.getText().trim(); + + descriptor.options = _options.getList(); + descriptor.user = _user.getText().trim(); + + descriptor.envs = new java.util.LinkedList(); + java.util.Iterator p = _envs.get().entrySet().iterator(); + while(p.hasNext()) + { + java.util.Map.Entry entry = (java.util.Map.Entry)p.next(); + descriptor.envs.add(entry.getKey().toString() + + "=" + entry.getValue().toString()); + } - descriptor.activation = _activation.getSelectedItem().toString().trim(); - descriptor.activationTimeout = _activationTimeout.getText().trim(); - descriptor.deactivationTimeout = _deactivationTimeout.getText().trim(); - - descriptor.allocatable = _allocatable.isSelected(); - - descriptor.applicationDistrib = _applicationDistrib.isSelected(); - - if(_distrib.getSelectedItem() == NO_DISTRIB) - { - descriptor.distrib.icepatch = ""; - } - else - { - descriptor.distrib.icepatch = _distrib.getSelectedItem().toString().trim(); - } - descriptor.distrib.directories = _distribDirs.getList(); - - super.writeDescriptor(descriptor); - } + descriptor.activation = _activation.getSelectedItem().toString().trim(); + descriptor.activationTimeout = _activationTimeout.getText().trim(); + descriptor.deactivationTimeout = _deactivationTimeout.getText().trim(); + + descriptor.allocatable = _allocatable.isSelected(); + + descriptor.applicationDistrib = _applicationDistrib.isSelected(); + + if(_distrib.getSelectedItem() == NO_DISTRIB) + { + descriptor.distrib.icepatch = ""; + } + else + { + descriptor.distrib.icepatch = _distrib.getSelectedItem().toString().trim(); + } + descriptor.distrib.directories = _distribDirs.getList(); + + super.writeDescriptor(descriptor); + } boolean isSimpleUpdate() { - return getServerDescriptor().id.equals(_id.getText().trim()); + return getServerDescriptor().id.equals(_id.getText().trim()); } boolean validate() { - return _mainEditor.check(new String[]{ - "Server ID", _id.getText().trim(), - "Path to Executable", _exe.getText().trim()}); + return _mainEditor.check(new String[]{ + "Server ID", _id.getText().trim(), + "Path to Executable", _exe.getText().trim()}); } void show(boolean isEditable) { - ServerDescriptor descriptor = getServerDescriptor(); - Utils.Resolver detailResolver = _mainEditor.getDetailResolver(); - - isEditable = isEditable && (detailResolver == null); - - if(detailResolver != null) - { - _id.setText(detailResolver.find("server")); - } - else - { - _id.setText(descriptor.id); - } - _id.setEditable(isEditable); - - _iceVersion.setText( - Utils.substitute(descriptor.iceVersion, detailResolver)); - _iceVersion.setEditable(isEditable); - - _exe.setText( - Utils.substitute(descriptor.exe, detailResolver)); - _exe.setEditable(isEditable); - _pwd.setText( - Utils.substitute(descriptor.pwd, detailResolver)); - _pwd.setEditable(isEditable); - - _options.setList(descriptor.options, detailResolver); - _options.setEditable(isEditable); - - _user.setText( - Utils.substitute(descriptor.user, detailResolver)); - _user.setEditable(isEditable); - - java.util.Map envMap = new java.util.TreeMap(); - java.util.Iterator p = descriptor.envs.iterator(); - while(p.hasNext()) - { - String env = (String)p.next(); - int equal = env.indexOf('='); - if(equal == -1 || equal == env.length() - 1) - { - envMap.put(env, ""); - } - else - { - envMap.put(env.substring(0, equal), - env.substring(equal + 1)); - } - } - _envs.set(envMap, detailResolver, isEditable); - - String activation = Utils.substitute(descriptor.activation, - detailResolver); - - _activation.setEnabled(true); - _activation.setEditable(true); - if(activation.equals(ALWAYS)) - { - _activation.setSelectedItem(ALWAYS); - } - else if(activation.equals(MANUAL)) - { - _activation.setSelectedItem(MANUAL); - } - else if(activation.equals(ON_DEMAND)) - { - _activation.setSelectedItem(ON_DEMAND); - } - else if(activation.equals(SESSION)) - { - _activation.setSelectedItem(SESSION); - } - else - { - _activation.setSelectedItem(activation); - } - _activation.setEnabled(isEditable); - _activation.setEditable(isEditable); - - _activationTimeout.setText( - Utils.substitute(descriptor.activationTimeout, detailResolver)); - _activationTimeout.setEditable(isEditable); - - _deactivationTimeout.setText( - Utils.substitute(descriptor.deactivationTimeout, detailResolver)); - _deactivationTimeout.setEditable(isEditable); - - _allocatable.setSelected(descriptor.allocatable); - _allocatable.setEnabled(isEditable); - - _applicationDistrib.setSelected(descriptor.applicationDistrib); - _applicationDistrib.setEnabled(isEditable); - - _distrib.setEnabled(true); - _distrib.setEditable(true); - String icepatch = Utils.substitute(descriptor.distrib.icepatch, - detailResolver); - if(icepatch.equals("")) - { - _distrib.setSelectedItem(NO_DISTRIB); - } - else - { - _distrib.setSelectedItem(icepatch); - } - _distrib.setEnabled(isEditable); - _distrib.setEditable(isEditable); - - _distribDirs.setList(descriptor.distrib.directories, detailResolver); - _distribDirs.setEditable(isEditable); - - show(descriptor, isEditable); + ServerDescriptor descriptor = getServerDescriptor(); + Utils.Resolver detailResolver = _mainEditor.getDetailResolver(); + + isEditable = isEditable && (detailResolver == null); + + if(detailResolver != null) + { + _id.setText(detailResolver.find("server")); + } + else + { + _id.setText(descriptor.id); + } + _id.setEditable(isEditable); + + _iceVersion.setText( + Utils.substitute(descriptor.iceVersion, detailResolver)); + _iceVersion.setEditable(isEditable); + + _exe.setText( + Utils.substitute(descriptor.exe, detailResolver)); + _exe.setEditable(isEditable); + _pwd.setText( + Utils.substitute(descriptor.pwd, detailResolver)); + _pwd.setEditable(isEditable); + + _options.setList(descriptor.options, detailResolver); + _options.setEditable(isEditable); + + _user.setText( + Utils.substitute(descriptor.user, detailResolver)); + _user.setEditable(isEditable); + + java.util.Map envMap = new java.util.TreeMap(); + java.util.Iterator p = descriptor.envs.iterator(); + while(p.hasNext()) + { + String env = (String)p.next(); + int equal = env.indexOf('='); + if(equal == -1 || equal == env.length() - 1) + { + envMap.put(env, ""); + } + else + { + envMap.put(env.substring(0, equal), + env.substring(equal + 1)); + } + } + _envs.set(envMap, detailResolver, isEditable); + + String activation = Utils.substitute(descriptor.activation, + detailResolver); + + _activation.setEnabled(true); + _activation.setEditable(true); + if(activation.equals(ALWAYS)) + { + _activation.setSelectedItem(ALWAYS); + } + else if(activation.equals(MANUAL)) + { + _activation.setSelectedItem(MANUAL); + } + else if(activation.equals(ON_DEMAND)) + { + _activation.setSelectedItem(ON_DEMAND); + } + else if(activation.equals(SESSION)) + { + _activation.setSelectedItem(SESSION); + } + else + { + _activation.setSelectedItem(activation); + } + _activation.setEnabled(isEditable); + _activation.setEditable(isEditable); + + _activationTimeout.setText( + Utils.substitute(descriptor.activationTimeout, detailResolver)); + _activationTimeout.setEditable(isEditable); + + _deactivationTimeout.setText( + Utils.substitute(descriptor.deactivationTimeout, detailResolver)); + _deactivationTimeout.setEditable(isEditable); + + _allocatable.setSelected(descriptor.allocatable); + _allocatable.setEnabled(isEditable); + + _applicationDistrib.setSelected(descriptor.applicationDistrib); + _applicationDistrib.setEnabled(isEditable); + + _distrib.setEnabled(true); + _distrib.setEditable(true); + String icepatch = Utils.substitute(descriptor.distrib.icepatch, + detailResolver); + if(icepatch.equals("")) + { + _distrib.setSelectedItem(NO_DISTRIB); + } + else + { + _distrib.setSelectedItem(icepatch); + } + _distrib.setEnabled(isEditable); + _distrib.setEditable(isEditable); + + _distribDirs.setList(descriptor.distrib.directories, detailResolver); + _distribDirs.setEditable(isEditable); + + show(descriptor, isEditable); } static private final String ALWAYS = "always"; @@ -383,12 +383,12 @@ class ServerSubEditor extends CommunicatorSubEditor static private final String SESSION = "session"; static private final Object NO_DISTRIB = new Object() - { - public String toString() - { - return "None selected"; - } - }; + { + public String toString() + { + return "None selected"; + } + }; static private final String DEFAULT_DISTRIB = "${application}.IcePatch2/server"; diff --git a/java/src/IceGridGUI/Application/ServerTemplate.java b/java/src/IceGridGUI/Application/ServerTemplate.java index 8c361c5a7d9..db630008f54 100755 --- a/java/src/IceGridGUI/Application/ServerTemplate.java +++ b/java/src/IceGridGUI/Application/ServerTemplate.java @@ -31,57 +31,57 @@ class ServerTemplate extends Communicator static public TemplateDescriptor copyDescriptor(TemplateDescriptor templateDescriptor) { - TemplateDescriptor copy = (TemplateDescriptor) - templateDescriptor.clone(); + TemplateDescriptor copy = (TemplateDescriptor) + templateDescriptor.clone(); - copy.descriptor = PlainServer.copyDescriptor( - (ServerDescriptor)copy.descriptor); - return copy; + copy.descriptor = PlainServer.copyDescriptor( + (ServerDescriptor)copy.descriptor); + return copy; } public Component getTreeCellRendererComponent( - JTree tree, - Object value, - boolean sel, - boolean expanded, - boolean leaf, - int row, - boolean hasFocus) + JTree tree, + Object value, + boolean sel, + boolean expanded, + boolean leaf, + int row, + boolean hasFocus) { - if(_cellRenderer == null) - { - _cellRenderer = new DefaultTreeCellRenderer(); - _plainIcon = - Utils.getIcon("/icons/16x16/server_template.png"); - _iceboxIcon = - Utils.getIcon("/icons/16x16/icebox_server_template.png"); - } - - if(_templateDescriptor.descriptor instanceof IceBoxDescriptor) - { - if(expanded) - { - _cellRenderer.setOpenIcon(_iceboxIcon); - } - else - { - _cellRenderer.setClosedIcon(_iceboxIcon); - } - } - else - { - if(expanded) - { - _cellRenderer.setOpenIcon(_plainIcon); - } - else - { - _cellRenderer.setClosedIcon(_plainIcon); - } - } - - return _cellRenderer.getTreeCellRendererComponent( - tree, value, sel, expanded, leaf, row, hasFocus); + if(_cellRenderer == null) + { + _cellRenderer = new DefaultTreeCellRenderer(); + _plainIcon = + Utils.getIcon("/icons/16x16/server_template.png"); + _iceboxIcon = + Utils.getIcon("/icons/16x16/icebox_server_template.png"); + } + + if(_templateDescriptor.descriptor instanceof IceBoxDescriptor) + { + if(expanded) + { + _cellRenderer.setOpenIcon(_iceboxIcon); + } + else + { + _cellRenderer.setClosedIcon(_iceboxIcon); + } + } + else + { + if(expanded) + { + _cellRenderer.setOpenIcon(_plainIcon); + } + else + { + _cellRenderer.setClosedIcon(_plainIcon); + } + } + + return _cellRenderer.getTreeCellRendererComponent( + tree, value, sel, expanded, leaf, row, hasFocus); } @@ -90,270 +90,270 @@ class ServerTemplate extends Communicator // public boolean[] getAvailableActions() { - boolean[] actions = new boolean[ACTION_COUNT]; - actions[COPY] = !_ephemeral; - - if(((TreeNode)_parent).getAvailableActions()[PASTE]) - { - actions[PASTE] = true; - } - else - { - Object clipboard = getCoordinator().getClipboard(); - actions[PASTE] = clipboard != null && - ((isIceBox() && (clipboard instanceof ServiceInstanceDescriptor)) - || (!isIceBox() && (clipboard instanceof AdapterDescriptor - || clipboard instanceof DbEnvDescriptor))); - } - - actions[DELETE] = true; - - if(!_ephemeral) - { - actions[NEW_ADAPTER] = !_services.initialized(); - actions[NEW_SERVICE] = _services.initialized(); - actions[NEW_SERVICE_FROM_TEMPLATE] = _services.initialized(); - actions[NEW_DBENV] = _dbEnvs.initialized(); - } - - return actions; + boolean[] actions = new boolean[ACTION_COUNT]; + actions[COPY] = !_ephemeral; + + if(((TreeNode)_parent).getAvailableActions()[PASTE]) + { + actions[PASTE] = true; + } + else + { + Object clipboard = getCoordinator().getClipboard(); + actions[PASTE] = clipboard != null && + ((isIceBox() && (clipboard instanceof ServiceInstanceDescriptor)) + || (!isIceBox() && (clipboard instanceof AdapterDescriptor + || clipboard instanceof DbEnvDescriptor))); + } + + actions[DELETE] = true; + + if(!_ephemeral) + { + actions[NEW_ADAPTER] = !_services.initialized(); + actions[NEW_SERVICE] = _services.initialized(); + actions[NEW_SERVICE_FROM_TEMPLATE] = _services.initialized(); + actions[NEW_DBENV] = _dbEnvs.initialized(); + } + + return actions; } public void copy() { - getCoordinator().setClipboard(copyDescriptor(_templateDescriptor)); - getCoordinator().getActionsForMenu().get(PASTE).setEnabled(true); + getCoordinator().setClipboard(copyDescriptor(_templateDescriptor)); + getCoordinator().getActionsForMenu().get(PASTE).setEnabled(true); } public JPopupMenu getPopupMenu() { - ApplicationActions actions = getCoordinator().getActionsForPopup(); - if(_popup == null) - { - _popup = new JPopupMenu(); - _popup.add(actions.get(NEW_ADAPTER)); - _popup.add(actions.get(NEW_DBENV)); - _popup.add(actions.get(NEW_SERVICE)); - _popup.add(actions.get(NEW_SERVICE_FROM_TEMPLATE)); - } - actions.setTarget(this); - return _popup; + ApplicationActions actions = getCoordinator().getActionsForPopup(); + if(_popup == null) + { + _popup = new JPopupMenu(); + _popup.add(actions.get(NEW_ADAPTER)); + _popup.add(actions.get(NEW_DBENV)); + _popup.add(actions.get(NEW_SERVICE)); + _popup.add(actions.get(NEW_SERVICE_FROM_TEMPLATE)); + } + actions.setTarget(this); + return _popup; } public Editor getEditor() { - if(_editor == null) - { - _editor = (ServerTemplateEditor)getRoot(). - getEditor(ServerTemplateEditor.class, this); - } - _editor.show(this); - return _editor; + if(_editor == null) + { + _editor = (ServerTemplateEditor)getRoot(). + getEditor(ServerTemplateEditor.class, this); + } + _editor.show(this); + return _editor; } protected Editor createEditor() { - return new ServerTemplateEditor(); + return new ServerTemplateEditor(); } public void destroy() { - ServerTemplates serverTemplates = (ServerTemplates)_parent; - - if(_ephemeral) - { - serverTemplates.removeChild(this); - } - else - { - serverTemplates.removeDescriptor(_id); - getRoot().removeServerInstances(_id); - serverTemplates.removeChild(this); - serverTemplates.getEditable(). - removeElement(_id, _editable, ServerTemplate.class); - getRoot().updated(); - } + ServerTemplates serverTemplates = (ServerTemplates)_parent; + + if(_ephemeral) + { + serverTemplates.removeChild(this); + } + else + { + serverTemplates.removeDescriptor(_id); + getRoot().removeServerInstances(_id); + serverTemplates.removeChild(this); + serverTemplates.getEditable(). + removeElement(_id, _editable, ServerTemplate.class); + getRoot().updated(); + } } public boolean isEphemeral() { - return _ephemeral; + return _ephemeral; } public Object getDescriptor() { - return _templateDescriptor; + return _templateDescriptor; } CommunicatorDescriptor getCommunicatorDescriptor() { - return _templateDescriptor.descriptor; + return _templateDescriptor.descriptor; } public Object saveDescriptor() { - // - // Shallow copy - // - TemplateDescriptor clone = (TemplateDescriptor)_templateDescriptor.clone(); - clone.descriptor = (ServerDescriptor)_templateDescriptor.descriptor.clone(); - return clone; + // + // Shallow copy + // + TemplateDescriptor clone = (TemplateDescriptor)_templateDescriptor.clone(); + clone.descriptor = (ServerDescriptor)_templateDescriptor.descriptor.clone(); + return clone; } public void restoreDescriptor(Object savedDescriptor) { - TemplateDescriptor clone = (TemplateDescriptor)savedDescriptor; - // - // Keep the same object - // - _templateDescriptor.parameters = clone.parameters; - - PlainServer.shallowRestore((ServerDescriptor)clone.descriptor, - (ServerDescriptor)_templateDescriptor.descriptor); + TemplateDescriptor clone = (TemplateDescriptor)savedDescriptor; + // + // Keep the same object + // + _templateDescriptor.parameters = clone.parameters; + + PlainServer.shallowRestore((ServerDescriptor)clone.descriptor, + (ServerDescriptor)_templateDescriptor.descriptor); } // // Application is needed to lookup service templates // ServerTemplate(boolean brandNew, ServerTemplates parent, String name, TemplateDescriptor descriptor) - throws UpdateFailedException + throws UpdateFailedException { - super(parent, name); - _editable = new Editable(brandNew); - _ephemeral = false; - rebuild(descriptor); + super(parent, name); + _editable = new Editable(brandNew); + _ephemeral = false; + rebuild(descriptor); } ServerTemplate(ServerTemplates parent, String name, TemplateDescriptor descriptor) { - super(parent, name); - _ephemeral = true; - try - { - rebuild(descriptor); - } - catch(UpdateFailedException e) - { - assert false; - } + super(parent, name); + _ephemeral = true; + try + { + rebuild(descriptor); + } + catch(UpdateFailedException e) + { + assert false; + } } void write(XMLWriter writer) throws java.io.IOException { - if(!_ephemeral) - { - java.util.List attributes = new java.util.LinkedList(); - attributes.add(createAttribute("id", _id)); - writer.writeStartTag("server-template", attributes); - writeParameters(writer, _templateDescriptor.parameters, - _templateDescriptor.parameterDefaults); - - if(_templateDescriptor.descriptor instanceof IceBoxDescriptor) - { - IceBoxDescriptor descriptor = (IceBoxDescriptor)_templateDescriptor.descriptor; - - writer.writeStartTag("icebox", - PlainServer.createAttributes(descriptor)); - - if(descriptor.description.length() > 0) - { - writer.writeElement("description", descriptor.description); - } - PlainServer.writeOptions(writer, descriptor.options); - PlainServer.writeEnvs(writer, descriptor.envs); - - writePropertySet(writer, "", "", descriptor.propertySet, descriptor.adapters, descriptor.logs); - writeLogs(writer, descriptor.logs, descriptor.propertySet.properties); - writeDistribution(writer, descriptor.distrib); - - _adapters.write(writer, descriptor.propertySet.properties); - _services.write(writer); - writer.writeEndTag("icebox"); - } - else - { - ServerDescriptor descriptor = (ServerDescriptor)_templateDescriptor.descriptor; - - writer.writeStartTag("server", - PlainServer.createAttributes(descriptor)); - - if(descriptor.description.length() > 0) - { - writer.writeElement("description", descriptor.description); - } - PlainServer.writeOptions(writer, descriptor.options); - PlainServer.writeEnvs(writer, descriptor.envs); - - writePropertySet(writer, descriptor.propertySet, descriptor.adapters, descriptor.logs); - writeLogs(writer, descriptor.logs, descriptor.propertySet.properties); - writeDistribution(writer, descriptor.distrib); - - _adapters.write(writer, descriptor.propertySet.properties); - _dbEnvs.write(writer); - writer.writeEndTag("server"); - } - writer.writeEndTag("server-template"); - } + if(!_ephemeral) + { + java.util.List attributes = new java.util.LinkedList(); + attributes.add(createAttribute("id", _id)); + writer.writeStartTag("server-template", attributes); + writeParameters(writer, _templateDescriptor.parameters, + _templateDescriptor.parameterDefaults); + + if(_templateDescriptor.descriptor instanceof IceBoxDescriptor) + { + IceBoxDescriptor descriptor = (IceBoxDescriptor)_templateDescriptor.descriptor; + + writer.writeStartTag("icebox", + PlainServer.createAttributes(descriptor)); + + if(descriptor.description.length() > 0) + { + writer.writeElement("description", descriptor.description); + } + PlainServer.writeOptions(writer, descriptor.options); + PlainServer.writeEnvs(writer, descriptor.envs); + + writePropertySet(writer, "", "", descriptor.propertySet, descriptor.adapters, descriptor.logs); + writeLogs(writer, descriptor.logs, descriptor.propertySet.properties); + writeDistribution(writer, descriptor.distrib); + + _adapters.write(writer, descriptor.propertySet.properties); + _services.write(writer); + writer.writeEndTag("icebox"); + } + else + { + ServerDescriptor descriptor = (ServerDescriptor)_templateDescriptor.descriptor; + + writer.writeStartTag("server", + PlainServer.createAttributes(descriptor)); + + if(descriptor.description.length() > 0) + { + writer.writeElement("description", descriptor.description); + } + PlainServer.writeOptions(writer, descriptor.options); + PlainServer.writeEnvs(writer, descriptor.envs); + + writePropertySet(writer, descriptor.propertySet, descriptor.adapters, descriptor.logs); + writeLogs(writer, descriptor.logs, descriptor.propertySet.properties); + writeDistribution(writer, descriptor.distrib); + + _adapters.write(writer, descriptor.propertySet.properties); + _dbEnvs.write(writer); + writer.writeEndTag("server"); + } + writer.writeEndTag("server-template"); + } } boolean isIceBox() { - return _templateDescriptor.descriptor instanceof IceBoxDescriptor; + return _templateDescriptor.descriptor instanceof IceBoxDescriptor; } void rebuild(TemplateDescriptor descriptor) throws UpdateFailedException { - _templateDescriptor = descriptor; - - _adapters.clear(); - _dbEnvs.clear(); - _services.clear(); - - if(!_ephemeral) - { - _adapters.init(_templateDescriptor.descriptor.adapters); - - if(isIceBox()) - { - IceBoxDescriptor iceBoxDescriptor = - (IceBoxDescriptor)_templateDescriptor.descriptor; - - _services.init(iceBoxDescriptor.services); - - assert _templateDescriptor.descriptor.dbEnvs.size() == 0; - } - else - { - _dbEnvs.init(_templateDescriptor.descriptor.dbEnvs); - } - } + _templateDescriptor = descriptor; + + _adapters.clear(); + _dbEnvs.clear(); + _services.clear(); + + if(!_ephemeral) + { + _adapters.init(_templateDescriptor.descriptor.adapters); + + if(isIceBox()) + { + IceBoxDescriptor iceBoxDescriptor = + (IceBoxDescriptor)_templateDescriptor.descriptor; + + _services.init(iceBoxDescriptor.services); + + assert _templateDescriptor.descriptor.dbEnvs.size() == 0; + } + else + { + _dbEnvs.init(_templateDescriptor.descriptor.dbEnvs); + } + } } void rebuild() throws UpdateFailedException { - rebuild(_templateDescriptor); + rebuild(_templateDescriptor); } void commit() { - _editable.commit(); + _editable.commit(); } Editable getEditable() { - return _editable; + return _editable; } Editable getEnclosingEditable() { - return _editable; + return _editable; } java.util.List findInstances() { - return getRoot().findServerInstances(_id); + return getRoot().findServerInstances(_id); } private TemplateDescriptor _templateDescriptor; diff --git a/java/src/IceGridGUI/Application/ServerTemplateEditor.java b/java/src/IceGridGUI/Application/ServerTemplateEditor.java index 5eef3321f8e..91a7203d926 100755 --- a/java/src/IceGridGUI/Application/ServerTemplateEditor.java +++ b/java/src/IceGridGUI/Application/ServerTemplateEditor.java @@ -14,50 +14,50 @@ class ServerTemplateEditor extends TemplateEditor { ServerTemplateEditor() { - _subEditor = new ServerSubEditor(this); + _subEditor = new ServerSubEditor(this); } void writeDescriptor() { - super.writeDescriptor(); - _subEditor.writeDescriptor(); - } + super.writeDescriptor(); + _subEditor.writeDescriptor(); + } boolean isSimpleUpdate() { - return super.isSimpleUpdate() && _subEditor.isSimpleUpdate(); + return super.isSimpleUpdate() && _subEditor.isSimpleUpdate(); } protected void appendProperties(DefaultFormBuilder builder) { - super.appendProperties(builder); - builder.appendSeparator(); - builder.nextLine(); - _subEditor.appendProperties(builder); + super.appendProperties(builder); + builder.appendSeparator(); + builder.nextLine(); + _subEditor.appendProperties(builder); } protected void buildPropertiesPanel() { - super.buildPropertiesPanel(); - _propertiesPanel.setName("Server Template Properties"); + super.buildPropertiesPanel(); + _propertiesPanel.setName("Server Template Properties"); } protected boolean validate() { - return super.validate() && _subEditor.validate(); + return super.validate() && _subEditor.validate(); } void show(ServerTemplate t) { - detectUpdates(false); - _target = t; - - super.show(); - _subEditor.show(true); + detectUpdates(false); + _target = t; + + super.show(); + _subEditor.show(true); - _applyButton.setEnabled(t.isEphemeral()); - _discardButton.setEnabled(t.isEphemeral()); - detectUpdates(true); + _applyButton.setEnabled(t.isEphemeral()); + _discardButton.setEnabled(t.isEphemeral()); + detectUpdates(true); } private ServerSubEditor _subEditor; diff --git a/java/src/IceGridGUI/Application/ServerTemplates.java b/java/src/IceGridGUI/Application/ServerTemplates.java index e7da327df5a..0b2374d930f 100755 --- a/java/src/IceGridGUI/Application/ServerTemplates.java +++ b/java/src/IceGridGUI/Application/ServerTemplates.java @@ -19,17 +19,17 @@ class ServerTemplates extends Templates static public java.util.Map copyDescriptors(java.util.Map descriptors) { - java.util.Map copy = new java.util.HashMap(); - java.util.Iterator p = descriptors.entrySet().iterator(); - while(p.hasNext()) - { - java.util.Map.Entry entry = (java.util.Map.Entry)p.next(); - - copy.put(entry.getKey(), - ServerTemplate.copyDescriptor( - (TemplateDescriptor)entry.getValue())); - } - return copy; + java.util.Map copy = new java.util.HashMap(); + java.util.Iterator p = descriptors.entrySet().iterator(); + while(p.hasNext()) + { + java.util.Map.Entry entry = (java.util.Map.Entry)p.next(); + + copy.put(entry.getKey(), + ServerTemplate.copyDescriptor( + (TemplateDescriptor)entry.getValue())); + } + return copy; } // @@ -37,70 +37,70 @@ class ServerTemplates extends Templates // public boolean[] getAvailableActions() { - boolean[] actions = new boolean[ACTION_COUNT]; - actions[NEW_TEMPLATE_SERVER] = true; - actions[NEW_TEMPLATE_SERVER_ICEBOX] = true; - - Object clipboard = getCoordinator().getClipboard(); - if(clipboard != null && clipboard instanceof TemplateDescriptor) - { - TemplateDescriptor d = (TemplateDescriptor)clipboard; - actions[PASTE] = d.descriptor instanceof ServerDescriptor; - } - return actions; + boolean[] actions = new boolean[ACTION_COUNT]; + actions[NEW_TEMPLATE_SERVER] = true; + actions[NEW_TEMPLATE_SERVER_ICEBOX] = true; + + Object clipboard = getCoordinator().getClipboard(); + if(clipboard != null && clipboard instanceof TemplateDescriptor) + { + TemplateDescriptor d = (TemplateDescriptor)clipboard; + actions[PASTE] = d.descriptor instanceof ServerDescriptor; + } + return actions; } public JPopupMenu getPopupMenu() { - ApplicationActions actions = getCoordinator().getActionsForPopup(); - if(_popup == null) - { - _popup = new JPopupMenu(); - _popup.add(actions.get(NEW_TEMPLATE_SERVER)); - _popup.add(actions.get(NEW_TEMPLATE_SERVER_ICEBOX)); - } - actions.setTarget(this); - return _popup; + ApplicationActions actions = getCoordinator().getActionsForPopup(); + if(_popup == null) + { + _popup = new JPopupMenu(); + _popup.add(actions.get(NEW_TEMPLATE_SERVER)); + _popup.add(actions.get(NEW_TEMPLATE_SERVER_ICEBOX)); + } + actions.setTarget(this); + return _popup; } public void newTemplateServer() { - newServerTemplate(new TemplateDescriptor( - PlainServer.newServerDescriptor(), - new java.util.LinkedList(), - new java.util.TreeMap())); + newServerTemplate(new TemplateDescriptor( + PlainServer.newServerDescriptor(), + new java.util.LinkedList(), + new java.util.TreeMap())); } public void newTemplateServerIceBox() { - newServerTemplate(new TemplateDescriptor( - PlainServer.newIceBoxDescriptor(), - new java.util.LinkedList(), - new java.util.TreeMap())); + newServerTemplate(new TemplateDescriptor( + PlainServer.newIceBoxDescriptor(), + new java.util.LinkedList(), + new java.util.TreeMap())); } public void paste() { - Object descriptor = getCoordinator().getClipboard(); - TemplateDescriptor td = (TemplateDescriptor)descriptor; - newServerTemplate(td); + Object descriptor = getCoordinator().getClipboard(); + TemplateDescriptor td = (TemplateDescriptor)descriptor; + newServerTemplate(td); } ServerTemplates(Root parent, java.util.Map descriptors) - throws UpdateFailedException + throws UpdateFailedException { - super(parent, "Server templates"); + super(parent, "Server templates"); - _descriptors = descriptors; + _descriptors = descriptors; - java.util.Iterator p = _descriptors.entrySet().iterator(); - - while(p.hasNext()) - { - java.util.Map.Entry entry = (java.util.Map.Entry)p.next(); - insertChild(new ServerTemplate(false, this, - (String)entry.getKey(), - (TemplateDescriptor)entry.getValue()), - false); - } + java.util.Iterator p = _descriptors.entrySet().iterator(); + + while(p.hasNext()) + { + java.util.Map.Entry entry = (java.util.Map.Entry)p.next(); + insertChild(new ServerTemplate(false, this, + (String)entry.getKey(), + (TemplateDescriptor)entry.getValue()), + false); + } } // @@ -108,165 +108,165 @@ class ServerTemplates extends Templates // Utils.Resolver getResolver() { - return null; + return null; } java.util.Map getUpdates() { - java.util.Map updates = new java.util.HashMap(); - java.util.Iterator p = _children.iterator(); - while(p.hasNext()) - { - ServerTemplate t = (ServerTemplate)p.next(); - if(t.getEditable().isNew() || t.getEditable().isModified()) - { - updates.put(t.getId(), t.getDescriptor()); - } - } - return updates; + java.util.Map updates = new java.util.HashMap(); + java.util.Iterator p = _children.iterator(); + while(p.hasNext()) + { + ServerTemplate t = (ServerTemplate)p.next(); + if(t.getEditable().isNew() || t.getEditable().isModified()) + { + updates.put(t.getId(), t.getDescriptor()); + } + } + return updates; } void commit() { - _editable.commit(); - java.util.Iterator p = _children.iterator(); - while(p.hasNext()) - { - ServerTemplate st = (ServerTemplate)p.next(); - st.commit(); - } + _editable.commit(); + java.util.Iterator p = _children.iterator(); + while(p.hasNext()) + { + ServerTemplate st = (ServerTemplate)p.next(); + st.commit(); + } } java.util.List findServiceInstances(String template) { - java.util.List result = new java.util.LinkedList(); - java.util.Iterator p = _children.iterator(); - while(p.hasNext()) - { - ServerTemplate t = (ServerTemplate)p.next(); - result.addAll(t.findServiceInstances(template)); - } - return result; + java.util.List result = new java.util.LinkedList(); + java.util.Iterator p = _children.iterator(); + while(p.hasNext()) + { + ServerTemplate t = (ServerTemplate)p.next(); + result.addAll(t.findServiceInstances(template)); + } + return result; } void removeServiceInstances(String template) { - java.util.Iterator p = _children.iterator(); - while(p.hasNext()) - { - ServerTemplate t = (ServerTemplate)p.next(); - t.removeServiceInstances(template); - } + java.util.Iterator p = _children.iterator(); + while(p.hasNext()) + { + ServerTemplate t = (ServerTemplate)p.next(); + t.removeServiceInstances(template); + } } void newServerTemplate(TemplateDescriptor descriptor) { - String id; - if(descriptor.descriptor instanceof IceBoxDescriptor) - { - id = makeNewChildId("NewIceBoxTemplate"); - } - else - { - id = makeNewChildId("NewServerTemplate"); - } - - ServerTemplate t = new ServerTemplate(this, id, descriptor); - try - { - insertChild(t, true); - } - catch(UpdateFailedException e) - { - assert false; - } - getRoot().setSelectedNode(t); + String id; + if(descriptor.descriptor instanceof IceBoxDescriptor) + { + id = makeNewChildId("NewIceBoxTemplate"); + } + else + { + id = makeNewChildId("NewServerTemplate"); + } + + ServerTemplate t = new ServerTemplate(this, id, descriptor); + try + { + insertChild(t, true); + } + catch(UpdateFailedException e) + { + assert false; + } + getRoot().setSelectedNode(t); } void tryAdd(String newId, TemplateDescriptor descriptor) - throws UpdateFailedException + throws UpdateFailedException { - insertChild(new ServerTemplate(true, this, newId, descriptor), - true); - _descriptors.put(newId, descriptor); + insertChild(new ServerTemplate(true, this, newId, descriptor), + true); + _descriptors.put(newId, descriptor); } void update(java.util.Map updates, String[] removeTemplates, - java.util.Set serviceTemplates) - throws UpdateFailedException + java.util.Set serviceTemplates) + throws UpdateFailedException { - // - // Note: _descriptors is updated by Root - // - - Root root = getRoot(); + // + // Note: _descriptors is updated by Root + // + + Root root = getRoot(); - // - // One big set of removes - // - removeChildren(removeTemplates); + // + // One big set of removes + // + removeChildren(removeTemplates); - // - // One big set of updates, followed by inserts - // - java.util.Vector newChildren = new java.util.Vector(); - java.util.Vector updatedChildren = new java.util.Vector(); - - java.util.Iterator p = updates.entrySet().iterator(); - while(p.hasNext()) - { - java.util.Map.Entry entry = (java.util.Map.Entry)p.next(); - String name = (String)entry.getKey(); - TemplateDescriptor templateDescriptor - = (TemplateDescriptor)entry.getValue(); - ServerTemplate child = (ServerTemplate)findChild(name); - if(child == null) - { - newChildren.add(new ServerTemplate(false, this, name, templateDescriptor)); - } - else - { - child.rebuild(templateDescriptor); - updatedChildren.add(child); - } - } - - // - // Rebuild template affected by service template updates - // - p = serviceTemplates.iterator(); - while(p.hasNext()) - { - java.util.List serviceInstances = - findServiceInstances((String)p.next()); - java.util.Iterator q = serviceInstances.iterator(); - while(q.hasNext()) - { - ServiceInstance service = (ServiceInstance)q.next(); - ServerTemplate serverTemplate = - (ServerTemplate)service.getParent(); - - if(!updatedChildren.contains(serverTemplate) && - !newChildren.contains(serverTemplate)) - { - serverTemplate.rebuild(); - updatedChildren.add(serverTemplate); - } - } - } - - childrenChanged(updatedChildren); - insertChildren(newChildren, true); + // + // One big set of updates, followed by inserts + // + java.util.Vector newChildren = new java.util.Vector(); + java.util.Vector updatedChildren = new java.util.Vector(); + + java.util.Iterator p = updates.entrySet().iterator(); + while(p.hasNext()) + { + java.util.Map.Entry entry = (java.util.Map.Entry)p.next(); + String name = (String)entry.getKey(); + TemplateDescriptor templateDescriptor + = (TemplateDescriptor)entry.getValue(); + ServerTemplate child = (ServerTemplate)findChild(name); + if(child == null) + { + newChildren.add(new ServerTemplate(false, this, name, templateDescriptor)); + } + else + { + child.rebuild(templateDescriptor); + updatedChildren.add(child); + } + } + + // + // Rebuild template affected by service template updates + // + p = serviceTemplates.iterator(); + while(p.hasNext()) + { + java.util.List serviceInstances = + findServiceInstances((String)p.next()); + java.util.Iterator q = serviceInstances.iterator(); + while(q.hasNext()) + { + ServiceInstance service = (ServiceInstance)q.next(); + ServerTemplate serverTemplate = + (ServerTemplate)service.getParent(); + + if(!updatedChildren.contains(serverTemplate) && + !newChildren.contains(serverTemplate)) + { + serverTemplate.rebuild(); + updatedChildren.add(serverTemplate); + } + } + } + + childrenChanged(updatedChildren); + insertChildren(newChildren, true); } void removeDescriptor(String id) { - _descriptors.remove(id); + _descriptors.remove(id); } Object getDescriptor() { - return _descriptors; + return _descriptors; } private java.util.Map _descriptors; diff --git a/java/src/IceGridGUI/Application/ServiceInstance.java b/java/src/IceGridGUI/Application/ServiceInstance.java index d5a93f5e7aa..00b2af1a22d 100755 --- a/java/src/IceGridGUI/Application/ServiceInstance.java +++ b/java/src/IceGridGUI/Application/ServiceInstance.java @@ -21,49 +21,49 @@ class ServiceInstance extends TreeNode implements Service, Cloneable static public ServiceInstanceDescriptor copyDescriptor(ServiceInstanceDescriptor instanceDescriptor) { - ServiceInstanceDescriptor copy = (ServiceInstanceDescriptor) - instanceDescriptor.clone(); - - copy.propertySet = PropertySet.copyDescriptor(copy.propertySet); - - if(copy.descriptor != null) - { - copy.descriptor = PlainService.copyDescriptor((ServiceDescriptor)copy.descriptor); - } - return copy; + ServiceInstanceDescriptor copy = (ServiceInstanceDescriptor) + instanceDescriptor.clone(); + + copy.propertySet = PropertySet.copyDescriptor(copy.propertySet); + + if(copy.descriptor != null) + { + copy.descriptor = PlainService.copyDescriptor((ServiceDescriptor)copy.descriptor); + } + return copy; } static public java.util.List copyDescriptors(java.util.List descriptors) { - java.util.List copy = new java.util.LinkedList(); - java.util.Iterator p = descriptors.iterator(); - while(p.hasNext()) - { - copy.add(copyDescriptor( - (ServiceInstanceDescriptor)p.next())); - } - return copy; + java.util.List copy = new java.util.LinkedList(); + java.util.Iterator p = descriptors.iterator(); + while(p.hasNext()) + { + copy.add(copyDescriptor( + (ServiceInstanceDescriptor)p.next())); + } + return copy; } public Component getTreeCellRendererComponent( - JTree tree, - Object value, - boolean sel, - boolean expanded, - boolean leaf, - int row, - boolean hasFocus) + JTree tree, + Object value, + boolean sel, + boolean expanded, + boolean leaf, + int row, + boolean hasFocus) { - if(_cellRenderer == null) - { - _cellRenderer = new DefaultTreeCellRenderer(); - _cellRenderer.setLeafIcon( - Utils.getIcon("/icons/16x16/service.png")); - } - - return _cellRenderer.getTreeCellRendererComponent( - tree, value, sel, expanded, leaf, row, hasFocus); + if(_cellRenderer == null) + { + _cellRenderer = new DefaultTreeCellRenderer(); + _cellRenderer.setLeafIcon( + Utils.getIcon("/icons/16x16/service.png")); + } + + return _cellRenderer.getTreeCellRendererComponent( + tree, value, sel, expanded, leaf, row, hasFocus); } // @@ -71,283 +71,283 @@ class ServiceInstance extends TreeNode implements Service, Cloneable // public boolean[] getAvailableActions() { - boolean[] actions = new boolean[ACTION_COUNT]; - actions[COPY] = !_ephemeral; - - if(((TreeNode)_parent).getAvailableActions()[PASTE]) - { - actions[PASTE] = true; - } - - actions[DELETE] = true; - - if(_parent instanceof Server && !_ephemeral) - { - actions[SHOW_VARS] = true; - actions[SUBSTITUTE_VARS] = true; - } - - actions[MOVE_UP] = canMove(true); - actions[MOVE_DOWN] = canMove(false); - return actions; + boolean[] actions = new boolean[ACTION_COUNT]; + actions[COPY] = !_ephemeral; + + if(((TreeNode)_parent).getAvailableActions()[PASTE]) + { + actions[PASTE] = true; + } + + actions[DELETE] = true; + + if(_parent instanceof Server && !_ephemeral) + { + actions[SHOW_VARS] = true; + actions[SUBSTITUTE_VARS] = true; + } + + actions[MOVE_UP] = canMove(true); + actions[MOVE_DOWN] = canMove(false); + return actions; } public JPopupMenu getPopupMenu() { - ApplicationActions actions = getCoordinator().getActionsForPopup(); - if(_popup == null) - { - _popup = new JPopupMenu(); - _popup.add(actions.get(MOVE_UP)); - _popup.add(actions.get(MOVE_DOWN)); - } - actions.setTarget(this); - return _popup; + ApplicationActions actions = getCoordinator().getActionsForPopup(); + if(_popup == null) + { + _popup = new JPopupMenu(); + _popup.add(actions.get(MOVE_UP)); + _popup.add(actions.get(MOVE_DOWN)); + } + actions.setTarget(this); + return _popup; } public void copy() { - getCoordinator().setClipboard(copyDescriptor(_descriptor)); - getCoordinator().getActionsForMenu().get(PASTE).setEnabled(true); + getCoordinator().setClipboard(copyDescriptor(_descriptor)); + getCoordinator().getActionsForMenu().get(PASTE).setEnabled(true); } public void paste() { - ((TreeNode)_parent).paste(); + ((TreeNode)_parent).paste(); } public void moveUp() { - move(true); + move(true); } public void moveDown() { - move(false); + move(false); } public Object getDescriptor() { - return _descriptor; + return _descriptor; } public Object saveDescriptor() { - // - // Must be a shallow copy - // - ServiceInstanceDescriptor saved = - (ServiceInstanceDescriptor)_descriptor.clone(); - - - assert saved.descriptor == null; - return saved; + // + // Must be a shallow copy + // + ServiceInstanceDescriptor saved = + (ServiceInstanceDescriptor)_descriptor.clone(); + + + assert saved.descriptor == null; + return saved; } public void restoreDescriptor(Object savedDescriptor) { - ServiceInstanceDescriptor sd = (ServiceInstanceDescriptor)savedDescriptor; - _descriptor.template = sd.template; - _descriptor.parameterValues = sd.parameterValues; - _descriptor.propertySet = sd.propertySet; + ServiceInstanceDescriptor sd = (ServiceInstanceDescriptor)savedDescriptor; + _descriptor.template = sd.template; + _descriptor.parameterValues = sd.parameterValues; + _descriptor.propertySet = sd.propertySet; } public void destroy() { - ((Communicator)_parent).getServices().destroyChild(this); + ((Communicator)_parent).getServices().destroyChild(this); } public Editor getEditor() { - if(_editor == null) - { - _editor = (ServiceInstanceEditor)getRoot(). - getEditor(ServiceInstanceEditor.class, this); - } - _editor.show(this); - return _editor; + if(_editor == null) + { + _editor = (ServiceInstanceEditor)getRoot(). + getEditor(ServiceInstanceEditor.class, this); + } + _editor.show(this); + return _editor; } protected Editor createEditor() { - return new ServiceInstanceEditor(); + return new ServiceInstanceEditor(); } public String toString() { - if(_displayString != null) - { - return _displayString; - } - else - { - return super.toString(); - } + if(_displayString != null) + { + return _displayString; + } + else + { + return super.toString(); + } } private boolean canMove(boolean up) { - if(_ephemeral) - { - return false; - } - else - { - return ((Communicator)_parent).getServices().canMove(this, up); - } + if(_ephemeral) + { + return false; + } + else + { + return ((Communicator)_parent).getServices().canMove(this, up); + } } private void move(boolean up) { - assert canMove(up); - ((Communicator)_parent).getServices().move(this, up); + assert canMove(up); + ((Communicator)_parent).getServices().move(this, up); } Editable getEnclosingEditable() { - return ((Communicator)_parent).getEnclosingEditable(); + return ((Communicator)_parent).getEnclosingEditable(); } static private class Backup { - java.util.Map parameterValues; - ServiceInstance clone; + java.util.Map parameterValues; + ServiceInstance clone; } public Object rebuild(java.util.List editables) - throws UpdateFailedException + throws UpdateFailedException { - Backup backup = new Backup(); - - // - // Fix-up _descriptor if necessary - // - if(_descriptor.template.length() > 0) - { - TemplateDescriptor templateDescriptor - = getRoot().findServiceTemplateDescriptor(_descriptor.template); - - java.util.Set parameters = new java.util.HashSet(templateDescriptor.parameters); - if(!parameters.equals(_descriptor.parameterValues.keySet())) - { - backup.parameterValues = _descriptor.parameterValues; - _descriptor.parameterValues = Editor.makeParameterValues( - _descriptor.parameterValues, templateDescriptor.parameters); - editables.add(getEnclosingEditable()); - } - } - - Communicator communicator = (Communicator)_parent; - Communicator.Services services = communicator.getServices(); - ServiceInstance newService = null; - - try - { - newService = (ServiceInstance)services.createChild(_descriptor); - } - catch(UpdateFailedException e) - { - if(backup.parameterValues != null) - { - _descriptor.parameterValues = backup.parameterValues; - } - throw e; - } - - try - { - backup.clone = (ServiceInstance)clone(); - } - catch(CloneNotSupportedException e) - { - assert false; - } - - reset(newService); - - if(backup.parameterValues != null) - { - editables.add(getEnclosingEditable()); - } - getRoot().getTreeModel().nodeChanged(this); - return backup; + Backup backup = new Backup(); + + // + // Fix-up _descriptor if necessary + // + if(_descriptor.template.length() > 0) + { + TemplateDescriptor templateDescriptor + = getRoot().findServiceTemplateDescriptor(_descriptor.template); + + java.util.Set parameters = new java.util.HashSet(templateDescriptor.parameters); + if(!parameters.equals(_descriptor.parameterValues.keySet())) + { + backup.parameterValues = _descriptor.parameterValues; + _descriptor.parameterValues = Editor.makeParameterValues( + _descriptor.parameterValues, templateDescriptor.parameters); + editables.add(getEnclosingEditable()); + } + } + + Communicator communicator = (Communicator)_parent; + Communicator.Services services = communicator.getServices(); + ServiceInstance newService = null; + + try + { + newService = (ServiceInstance)services.createChild(_descriptor); + } + catch(UpdateFailedException e) + { + if(backup.parameterValues != null) + { + _descriptor.parameterValues = backup.parameterValues; + } + throw e; + } + + try + { + backup.clone = (ServiceInstance)clone(); + } + catch(CloneNotSupportedException e) + { + assert false; + } + + reset(newService); + + if(backup.parameterValues != null) + { + editables.add(getEnclosingEditable()); + } + getRoot().getTreeModel().nodeChanged(this); + return backup; } public void restore(Object backupObj) { - Backup backup = (Backup)backupObj; - - if(backup.parameterValues != null) - { - _descriptor.parameterValues = backup.parameterValues; - } - - reset(backup.clone); - getRoot().getTreeModel().nodeChanged(this); + Backup backup = (Backup)backupObj; + + if(backup.parameterValues != null) + { + _descriptor.parameterValues = backup.parameterValues; + } + + reset(backup.clone); + getRoot().getTreeModel().nodeChanged(this); } private void reset(ServiceInstance from) { - _id = from._id; - _displayString = from._displayString; - _resolver = from._resolver; + _id = from._id; + _displayString = from._displayString; + _resolver = from._resolver; } ServiceInstance(Communicator parent, - String name, - String displayString, - ServiceInstanceDescriptor instanceDescriptor, - Utils.Resolver resolver) - throws UpdateFailedException + String name, + String displayString, + ServiceInstanceDescriptor instanceDescriptor, + Utils.Resolver resolver) + throws UpdateFailedException { - super(parent, name); - _displayString = displayString; - _descriptor = instanceDescriptor; - _ephemeral = false; - _resolver = resolver; + super(parent, name); + _displayString = displayString; + _descriptor = instanceDescriptor; + _ephemeral = false; + _resolver = resolver; } // // New temporary object // ServiceInstance(Communicator parent, String name, - ServiceInstanceDescriptor instanceDescriptor) + ServiceInstanceDescriptor instanceDescriptor) { - super(parent, name); - _descriptor = instanceDescriptor; - _ephemeral = true; + super(parent, name); + _descriptor = instanceDescriptor; + _ephemeral = true; } void write(XMLWriter writer) throws java.io.IOException { - if(!_ephemeral) - { - TemplateDescriptor templateDescriptor - = getRoot().findServiceTemplateDescriptor(_descriptor.template); - - java.util.LinkedList attributes = parameterValuesToAttributes( - _descriptor.parameterValues, templateDescriptor.parameters); - attributes.addFirst(createAttribute("template", _descriptor.template)); - - if(_descriptor.propertySet.references.length == 0 && - _descriptor.propertySet.properties.size() == 0) - { - writer.writeElement("service-instance", attributes); - } - else - { - writer.writeStartTag("service-instance", attributes); - writePropertySet(writer, _descriptor.propertySet, null, null); - writer.writeEndTag("service-instance"); - } - } + if(!_ephemeral) + { + TemplateDescriptor templateDescriptor + = getRoot().findServiceTemplateDescriptor(_descriptor.template); + + java.util.LinkedList attributes = parameterValuesToAttributes( + _descriptor.parameterValues, templateDescriptor.parameters); + attributes.addFirst(createAttribute("template", _descriptor.template)); + + if(_descriptor.propertySet.references.length == 0 && + _descriptor.propertySet.properties.size() == 0) + { + writer.writeElement("service-instance", attributes); + } + else + { + writer.writeStartTag("service-instance", attributes); + writePropertySet(writer, _descriptor.propertySet, null, null); + writer.writeEndTag("service-instance"); + } + } } Utils.Resolver getResolver() { - return _resolver; + return _resolver; } public boolean isEphemeral() { - return _ephemeral; + return _ephemeral; } private ServiceInstanceDescriptor _descriptor; diff --git a/java/src/IceGridGUI/Application/ServiceInstanceEditor.java b/java/src/IceGridGUI/Application/ServiceInstanceEditor.java index 489de0884f4..bf55a13611a 100755 --- a/java/src/IceGridGUI/Application/ServiceInstanceEditor.java +++ b/java/src/IceGridGUI/Application/ServiceInstanceEditor.java @@ -30,35 +30,35 @@ class ServiceInstanceEditor extends CommunicatorChildEditor { ServiceInstanceEditor() { - // - // Template - // - Action gotoTemplate = new AbstractAction( - "", Utils.getIcon("/icons/16x16/goto.png")) - { - public void actionPerformed(ActionEvent e) - { - TreeNode t = (TreeNode)_template.getSelectedItem(); - if(t != null) - { - t.getRoot().setSelectedNode(t); - } - } - }; - gotoTemplate.putValue(Action.SHORT_DESCRIPTION, - "Goto this service template"); - _templateButton = new JButton(gotoTemplate); - - _parameters = new ParameterValuesField(this); - - _propertySets.getDocument().addDocumentListener(_updateListener); - _propertySets.setToolTipText("Property Set References"); - _properties = new PropertiesField(this); + // + // Template + // + Action gotoTemplate = new AbstractAction( + "", Utils.getIcon("/icons/16x16/goto.png")) + { + public void actionPerformed(ActionEvent e) + { + TreeNode t = (TreeNode)_template.getSelectedItem(); + if(t != null) + { + t.getRoot().setSelectedNode(t); + } + } + }; + gotoTemplate.putValue(Action.SHORT_DESCRIPTION, + "Goto this service template"); + _templateButton = new JButton(gotoTemplate); + + _parameters = new ParameterValuesField(this); + + _propertySets.getDocument().addDocumentListener(_updateListener); + _propertySets.setToolTipText("Property Set References"); + _properties = new PropertiesField(this); } ServiceInstanceDescriptor getDescriptor() { - return (ServiceInstanceDescriptor)_target.getDescriptor(); + return (ServiceInstanceDescriptor)_target.getDescriptor(); } // @@ -66,168 +66,168 @@ class ServiceInstanceEditor extends CommunicatorChildEditor // Utils.Resolver getDetailResolver() { - ServiceInstance service = (ServiceInstance)_target; - if(service.getCoordinator().substitute()) - { - return service.getResolver(); - } - else - { - return null; - } + ServiceInstance service = (ServiceInstance)_target; + if(service.getCoordinator().substitute()) + { + return service.getResolver(); + } + else + { + return null; + } } void writeDescriptor() { - ServiceInstanceDescriptor descriptor = getDescriptor(); - descriptor.template = ((ServiceTemplate)_template.getSelectedItem()).getId(); - descriptor.parameterValues = _parameters.getValues(); - - descriptor.propertySet.references = - (String[])_propertySets.getList().toArray(new String[0]); - descriptor.propertySet.properties = _properties.getProperties(); - } + ServiceInstanceDescriptor descriptor = getDescriptor(); + descriptor.template = ((ServiceTemplate)_template.getSelectedItem()).getId(); + descriptor.parameterValues = _parameters.getValues(); + + descriptor.propertySet.references = + (String[])_propertySets.getList().toArray(new String[0]); + descriptor.propertySet.properties = _properties.getProperties(); + } boolean isSimpleUpdate() { - ServiceInstanceDescriptor descriptor = getDescriptor(); - ServiceTemplate t = (ServiceTemplate)_template.getSelectedItem(); - - return descriptor.template.equals(t.getId()) - && descriptor.parameterValues.equals(_parameters.getValues()); + ServiceInstanceDescriptor descriptor = getDescriptor(); + ServiceTemplate t = (ServiceTemplate)_template.getSelectedItem(); + + return descriptor.template.equals(t.getId()) + && descriptor.parameterValues.equals(_parameters.getValues()); } Communicator.ChildList getChildList() { - return ((Communicator)_target.getParent()).getServices(); + return ((Communicator)_target.getParent()).getServices(); } protected void appendProperties(DefaultFormBuilder builder) { - builder.append("Template", _template); - builder.append(_templateButton); - builder.nextLine(); - - builder.append("Parameters"); - builder.nextLine(); - builder.append(""); - builder.nextLine(); - builder.append(""); - - builder.nextLine(); - builder.append(""); - - builder.nextRow(-6); - JScrollPane scrollPane = new JScrollPane(_parameters); - CellConstraints cc = new CellConstraints(); - builder.add(scrollPane, - cc.xywh(builder.getColumn(), builder.getRow(), 3, 7)); - builder.nextRow(6); - builder.nextLine(); - - builder.append("Property Sets"); - builder.append(_propertySets, 3); - builder.nextLine(); - - builder.append("Properties"); - builder.nextLine(); - builder.append(""); - builder.nextLine(); - builder.append(""); - - builder.nextLine(); - builder.append(""); - - builder.nextRow(-6); - scrollPane = new JScrollPane(_properties); - builder.add(scrollPane, - cc.xywh(builder.getColumn(), builder.getRow(), 3, 7)); - builder.nextRow(6); - builder.nextLine(); + builder.append("Template", _template); + builder.append(_templateButton); + builder.nextLine(); + + builder.append("Parameters"); + builder.nextLine(); + builder.append(""); + builder.nextLine(); + builder.append(""); + + builder.nextLine(); + builder.append(""); + + builder.nextRow(-6); + JScrollPane scrollPane = new JScrollPane(_parameters); + CellConstraints cc = new CellConstraints(); + builder.add(scrollPane, + cc.xywh(builder.getColumn(), builder.getRow(), 3, 7)); + builder.nextRow(6); + builder.nextLine(); + + builder.append("Property Sets"); + builder.append(_propertySets, 3); + builder.nextLine(); + + builder.append("Properties"); + builder.nextLine(); + builder.append(""); + builder.nextLine(); + builder.append(""); + + builder.nextLine(); + builder.append(""); + + builder.nextRow(-6); + scrollPane = new JScrollPane(_properties); + builder.add(scrollPane, + cc.xywh(builder.getColumn(), builder.getRow(), 3, 7)); + builder.nextRow(6); + builder.nextLine(); } protected void buildPropertiesPanel() { - super.buildPropertiesPanel(); - _propertiesPanel.setName("Service Properties"); + super.buildPropertiesPanel(); + _propertiesPanel.setName("Service Properties"); } void show(ServiceInstance service) { - detectUpdates(false); - _target = service; - - // - // If it's not a template instance, it's shown using - // ServiceEditor.show() - // - assert getDescriptor().template.length() > 0; - - ServiceInstanceDescriptor descriptor = - (ServiceInstanceDescriptor)service.getDescriptor(); - Coordinator coordinator = service.getCoordinator(); - boolean isEditable = service.isEphemeral() || !coordinator.substitute(); - - Utils.Resolver resolver = isEditable ? null : - ((TreeNode)service.getParent()).getResolver(); - - // - // Need to make control enabled before changing it - // - _template.setEnabled(true); - - ServiceTemplates serviceTemplates = - service.getRoot().getServiceTemplates(); - _template.setModel(serviceTemplates.createComboBoxModel()); - - ServiceTemplate t = (ServiceTemplate) - serviceTemplates.findChild(descriptor.template); - assert t != null; - _template.setSelectedItem(t); - - ListDataListener templateListener = new ListDataListener() - { - public void contentsChanged(ListDataEvent e) - { - updated(); - - ServiceTemplate t = - (ServiceTemplate)_template.getModel().getSelectedItem(); - - TemplateDescriptor td = (TemplateDescriptor)t.getDescriptor(); - - // - // Replace parameters but keep existing values - // - _parameters.set(td.parameters, - makeParameterValues(_parameters.getValues(), td.parameters), - td.parameterDefaults, null); - } - - public void intervalAdded(ListDataEvent e) - {} + detectUpdates(false); + _target = service; + + // + // If it's not a template instance, it's shown using + // ServiceEditor.show() + // + assert getDescriptor().template.length() > 0; + + ServiceInstanceDescriptor descriptor = + (ServiceInstanceDescriptor)service.getDescriptor(); + Coordinator coordinator = service.getCoordinator(); + boolean isEditable = service.isEphemeral() || !coordinator.substitute(); + + Utils.Resolver resolver = isEditable ? null : + ((TreeNode)service.getParent()).getResolver(); + + // + // Need to make control enabled before changing it + // + _template.setEnabled(true); + + ServiceTemplates serviceTemplates = + service.getRoot().getServiceTemplates(); + _template.setModel(serviceTemplates.createComboBoxModel()); + + ServiceTemplate t = (ServiceTemplate) + serviceTemplates.findChild(descriptor.template); + assert t != null; + _template.setSelectedItem(t); + + ListDataListener templateListener = new ListDataListener() + { + public void contentsChanged(ListDataEvent e) + { + updated(); + + ServiceTemplate t = + (ServiceTemplate)_template.getModel().getSelectedItem(); + + TemplateDescriptor td = (TemplateDescriptor)t.getDescriptor(); + + // + // Replace parameters but keep existing values + // + _parameters.set(td.parameters, + makeParameterValues(_parameters.getValues(), td.parameters), + td.parameterDefaults, null); + } + + public void intervalAdded(ListDataEvent e) + {} - public void intervalRemoved(ListDataEvent e) - {} - }; - - _template.getModel().addListDataListener(templateListener); - _template.setEnabled(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()); - _propertySets.setEditable(isEditable); - - _properties.setProperties(descriptor.propertySet.properties, null, null, - getDetailResolver(), isEditable); - - _applyButton.setEnabled(service.isEphemeral()); - _discardButton.setEnabled(service.isEphemeral()); - detectUpdates(true); + public void intervalRemoved(ListDataEvent e) + {} + }; + + _template.getModel().addListDataListener(templateListener); + _template.setEnabled(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()); + _propertySets.setEditable(isEditable); + + _properties.setProperties(descriptor.propertySet.properties, null, null, + getDetailResolver(), isEditable); + + _applyButton.setEnabled(service.isEphemeral()); + _discardButton.setEnabled(service.isEphemeral()); + detectUpdates(true); } private JComboBox _template = new JComboBox(); diff --git a/java/src/IceGridGUI/Application/ServiceSubEditor.java b/java/src/IceGridGUI/Application/ServiceSubEditor.java index 925ad59bf4b..0f5652e02af 100755 --- a/java/src/IceGridGUI/Application/ServiceSubEditor.java +++ b/java/src/IceGridGUI/Application/ServiceSubEditor.java @@ -23,86 +23,86 @@ class ServiceSubEditor extends CommunicatorSubEditor { ServiceSubEditor(Editor mainEditor) { - super(mainEditor); + super(mainEditor); - _name.getDocument().addDocumentListener( - _mainEditor.getUpdateListener()); - _name.setToolTipText("Identifies this service within an IceBox server"); + _name.getDocument().addDocumentListener( + _mainEditor.getUpdateListener()); + _name.setToolTipText("Identifies this service within an IceBox server"); - _entry.getDocument().addDocumentListener( - _mainEditor.getUpdateListener()); - _entry.setToolTipText( - "<html>The service entry point and optional arguments.<br>" - + "C++: <i>shared object:function-name arg1 arg2 ...</i><br>" - + "Java: <i>class-name arg1 arg2 ...</i><br>" - + "C#, Visual Basic: <i>assembly:class-name arg1 arg2 ...</i>" - + "</html>"); + _entry.getDocument().addDocumentListener( + _mainEditor.getUpdateListener()); + _entry.setToolTipText( + "<html>The service entry point and optional arguments.<br>" + + "C++: <i>shared object:function-name arg1 arg2 ...</i><br>" + + "Java: <i>class-name arg1 arg2 ...</i><br>" + + "C#, Visual Basic: <i>assembly:class-name arg1 arg2 ...</i>" + + "</html>"); } ServiceDescriptor getServiceDescriptor() { - return (ServiceDescriptor) - _mainEditor.getSubDescriptor(); + return (ServiceDescriptor) + _mainEditor.getSubDescriptor(); } void appendProperties(DefaultFormBuilder builder) { - builder.append("Service Name"); - builder.append(_name, 3); - builder.nextLine(); - - // - // Add Communicator fields - // - super.appendProperties(builder); + builder.append("Service Name"); + builder.append(_name, 3); + builder.nextLine(); + + // + // Add Communicator fields + // + super.appendProperties(builder); - builder.append("Entry Point"); - builder.append(_entry, 3); - builder.nextLine(); + builder.append("Entry Point"); + builder.append(_entry, 3); + builder.nextLine(); } void writeDescriptor() { - ServiceDescriptor descriptor = getServiceDescriptor(); - descriptor.name = _name.getText().trim(); - descriptor.entry = _entry.getText().trim(); - super.writeDescriptor(descriptor); - } + ServiceDescriptor descriptor = getServiceDescriptor(); + descriptor.name = _name.getText().trim(); + descriptor.entry = _entry.getText().trim(); + super.writeDescriptor(descriptor); + } boolean isSimpleUpdate() { - return getServiceDescriptor().name.equals(_name.getText().trim()); + return getServiceDescriptor().name.equals(_name.getText().trim()); } boolean validate() { - return _mainEditor.check(new String[]{ - "Service Name", _name.getText().trim(), - "Entry Point", _entry.getText().trim()}); + return _mainEditor.check(new String[]{ + "Service Name", _name.getText().trim(), + "Entry Point", _entry.getText().trim()}); } void show(boolean isEditable) { - ServiceDescriptor descriptor = getServiceDescriptor(); - Utils.Resolver detailResolver = _mainEditor.getDetailResolver(); - - isEditable = isEditable && (detailResolver == null); + ServiceDescriptor descriptor = getServiceDescriptor(); + Utils.Resolver detailResolver = _mainEditor.getDetailResolver(); + + isEditable = isEditable && (detailResolver == null); - if(detailResolver != null) - { - _name.setText(detailResolver.find("service")); - } - else - { - _name.setText(descriptor.name); - } - _name.setEditable(isEditable); - - _entry.setText( - Utils.substitute(descriptor.entry, detailResolver)); - _entry.setEditable(isEditable); + if(detailResolver != null) + { + _name.setText(detailResolver.find("service")); + } + else + { + _name.setText(descriptor.name); + } + _name.setEditable(isEditable); + + _entry.setText( + Utils.substitute(descriptor.entry, detailResolver)); + _entry.setEditable(isEditable); - show(descriptor, isEditable); + show(descriptor, isEditable); } private JTextField _name = new JTextField(20); diff --git a/java/src/IceGridGUI/Application/ServiceTemplate.java b/java/src/IceGridGUI/Application/ServiceTemplate.java index a6c757519e3..72b17ec4261 100755 --- a/java/src/IceGridGUI/Application/ServiceTemplate.java +++ b/java/src/IceGridGUI/Application/ServiceTemplate.java @@ -22,35 +22,35 @@ class ServiceTemplate extends Communicator static public TemplateDescriptor copyDescriptor(TemplateDescriptor templateDescriptor) { - TemplateDescriptor copy = (TemplateDescriptor) - templateDescriptor.clone(); + TemplateDescriptor copy = (TemplateDescriptor) + templateDescriptor.clone(); - copy.descriptor = PlainService.copyDescriptor( - (ServiceDescriptor)copy.descriptor); - - return copy; + copy.descriptor = PlainService.copyDescriptor( + (ServiceDescriptor)copy.descriptor); + + return copy; } public Component getTreeCellRendererComponent( - JTree tree, - Object value, - boolean sel, - boolean expanded, - boolean leaf, - int row, - boolean hasFocus) + JTree tree, + Object value, + boolean sel, + boolean expanded, + boolean leaf, + int row, + boolean hasFocus) { - if(_cellRenderer == null) - { - _cellRenderer = new DefaultTreeCellRenderer(); - _cellRenderer.setOpenIcon( - Utils.getIcon("/icons/16x16/service_template.png")); - _cellRenderer.setClosedIcon( - Utils.getIcon("/icons/16x16/service_template.png")); - } - - return _cellRenderer.getTreeCellRendererComponent( - tree, value, sel, expanded, leaf, row, hasFocus); + if(_cellRenderer == null) + { + _cellRenderer = new DefaultTreeCellRenderer(); + _cellRenderer.setOpenIcon( + Utils.getIcon("/icons/16x16/service_template.png")); + _cellRenderer.setClosedIcon( + Utils.getIcon("/icons/16x16/service_template.png")); + } + + return _cellRenderer.getTreeCellRendererComponent( + tree, value, sel, expanded, leaf, row, hasFocus); } @@ -59,205 +59,205 @@ class ServiceTemplate extends Communicator // public boolean[] getAvailableActions() { - boolean[] actions = new boolean[ACTION_COUNT]; - - if(((TreeNode)_parent).getAvailableActions()[PASTE]) - { - actions[PASTE] = true; - } - else - { - Object clipboard = getCoordinator().getClipboard(); - actions[PASTE] = clipboard != null && - (clipboard instanceof AdapterDescriptor - || clipboard instanceof DbEnvDescriptor); - } - - actions[DELETE] = true; - - if(!_ephemeral) - { - actions[COPY] = true; - actions[NEW_ADAPTER] = true; - actions[NEW_DBENV] = true; - } - - return actions; + boolean[] actions = new boolean[ACTION_COUNT]; + + if(((TreeNode)_parent).getAvailableActions()[PASTE]) + { + actions[PASTE] = true; + } + else + { + Object clipboard = getCoordinator().getClipboard(); + actions[PASTE] = clipboard != null && + (clipboard instanceof AdapterDescriptor + || clipboard instanceof DbEnvDescriptor); + } + + actions[DELETE] = true; + + if(!_ephemeral) + { + actions[COPY] = true; + actions[NEW_ADAPTER] = true; + actions[NEW_DBENV] = true; + } + + return actions; } public void copy() { - getCoordinator().setClipboard(copyDescriptor(_templateDescriptor)); - getCoordinator().getActionsForMenu().get(PASTE).setEnabled(true); + getCoordinator().setClipboard(copyDescriptor(_templateDescriptor)); + getCoordinator().getActionsForMenu().get(PASTE).setEnabled(true); } public JPopupMenu getPopupMenu() { - ApplicationActions actions = getCoordinator().getActionsForPopup(); - if(_popup == null) - { - _popup = new JPopupMenu(); - _popup.add(actions.get(NEW_ADAPTER)); - _popup.add(actions.get(NEW_DBENV)); - } - actions.setTarget(this); - return _popup; + ApplicationActions actions = getCoordinator().getActionsForPopup(); + if(_popup == null) + { + _popup = new JPopupMenu(); + _popup.add(actions.get(NEW_ADAPTER)); + _popup.add(actions.get(NEW_DBENV)); + } + actions.setTarget(this); + return _popup; } public Editor getEditor() { - if(_editor == null) - { - _editor = (ServiceTemplateEditor)getRoot().getEditor(ServiceTemplateEditor.class, this); - } - _editor.show(this); - return _editor; + if(_editor == null) + { + _editor = (ServiceTemplateEditor)getRoot().getEditor(ServiceTemplateEditor.class, this); + } + _editor.show(this); + return _editor; } protected Editor createEditor() { - return new ServiceTemplateEditor(); + return new ServiceTemplateEditor(); } ServiceTemplate(boolean brandNew, ServiceTemplates parent, - String name, TemplateDescriptor descriptor) - throws UpdateFailedException + String name, TemplateDescriptor descriptor) + throws UpdateFailedException { - super(parent, name); - _editable = new Editable(brandNew); - _ephemeral = false; - rebuild(descriptor); + super(parent, name); + _editable = new Editable(brandNew); + _ephemeral = false; + rebuild(descriptor); } ServiceTemplate(ServiceTemplates parent, String name, TemplateDescriptor descriptor) { - super(parent, name); - _ephemeral = true; - _editable = null; - _templateDescriptor = descriptor; + super(parent, name); + _ephemeral = true; + _editable = null; + _templateDescriptor = descriptor; } void write(XMLWriter writer) throws java.io.IOException { - if(!_ephemeral) - { - java.util.List attributes = new java.util.LinkedList(); - attributes.add(createAttribute("id", _id)); - writer.writeStartTag("service-template", attributes); - writeParameters(writer, _templateDescriptor.parameters, - _templateDescriptor.parameterDefaults); - - ServiceDescriptor descriptor = (ServiceDescriptor)_templateDescriptor.descriptor; - - writer.writeStartTag("service", PlainService.createAttributes(descriptor)); - - if(descriptor.description.length() > 0) - { - writer.writeElement("description", descriptor.description); - } - - writePropertySet(writer, descriptor.propertySet, descriptor.adapters, descriptor.logs); - writeLogs(writer, descriptor.logs, descriptor.propertySet.properties); - _adapters.write(writer, descriptor.propertySet.properties); - _dbEnvs.write(writer); - writer.writeEndTag("service"); - writer.writeEndTag("service-template"); - } + if(!_ephemeral) + { + java.util.List attributes = new java.util.LinkedList(); + attributes.add(createAttribute("id", _id)); + writer.writeStartTag("service-template", attributes); + writeParameters(writer, _templateDescriptor.parameters, + _templateDescriptor.parameterDefaults); + + ServiceDescriptor descriptor = (ServiceDescriptor)_templateDescriptor.descriptor; + + writer.writeStartTag("service", PlainService.createAttributes(descriptor)); + + if(descriptor.description.length() > 0) + { + writer.writeElement("description", descriptor.description); + } + + writePropertySet(writer, descriptor.propertySet, descriptor.adapters, descriptor.logs); + writeLogs(writer, descriptor.logs, descriptor.propertySet.properties); + _adapters.write(writer, descriptor.propertySet.properties); + _dbEnvs.write(writer); + writer.writeEndTag("service"); + writer.writeEndTag("service-template"); + } } void rebuild(TemplateDescriptor descriptor) - throws UpdateFailedException + throws UpdateFailedException { - _templateDescriptor = descriptor; + _templateDescriptor = descriptor; - _adapters.clear(); - _dbEnvs.clear(); + _adapters.clear(); + _dbEnvs.clear(); - if(!_ephemeral) - { - _adapters.init(_templateDescriptor.descriptor.adapters); - _dbEnvs.init(_templateDescriptor.descriptor.dbEnvs); - } + if(!_ephemeral) + { + _adapters.init(_templateDescriptor.descriptor.adapters); + _dbEnvs.init(_templateDescriptor.descriptor.dbEnvs); + } } void commit() { - _editable.commit(); + _editable.commit(); } public Object getDescriptor() { - return _templateDescriptor; + return _templateDescriptor; } CommunicatorDescriptor getCommunicatorDescriptor() { - return _templateDescriptor.descriptor; + return _templateDescriptor.descriptor; } public boolean isEphemeral() { - return _ephemeral; + return _ephemeral; } public void destroy() { - ServiceTemplates serviceTemplates = (ServiceTemplates)_parent; - - if(_ephemeral) - { - serviceTemplates.removeChild(this); - } - else - { - serviceTemplates.removeDescriptor(_id); - getRoot().removeServiceInstances(_id); - serviceTemplates.removeChild(this); - serviceTemplates.getEditable(). - removeElement(_id, _editable, ServiceTemplate.class); - getRoot().updated(); - } + ServiceTemplates serviceTemplates = (ServiceTemplates)_parent; + + if(_ephemeral) + { + serviceTemplates.removeChild(this); + } + else + { + serviceTemplates.removeDescriptor(_id); + getRoot().removeServiceInstances(_id); + serviceTemplates.removeChild(this); + serviceTemplates.getEditable(). + removeElement(_id, _editable, ServiceTemplate.class); + getRoot().updated(); + } } java.util.List findInstances() { - return getRoot().findServiceInstances(_id); + return getRoot().findServiceInstances(_id); } Editable getEditable() { - return _editable; + return _editable; } Editable getEnclosingEditable() { - return _editable; + return _editable; } public Object saveDescriptor() { - // - // Shallow copy - // - TemplateDescriptor clone = (TemplateDescriptor)_templateDescriptor.clone(); - clone.descriptor = (ServiceDescriptor)_templateDescriptor.descriptor.clone(); - return clone; + // + // Shallow copy + // + TemplateDescriptor clone = (TemplateDescriptor)_templateDescriptor.clone(); + clone.descriptor = (ServiceDescriptor)_templateDescriptor.descriptor.clone(); + return clone; } public void restoreDescriptor(Object savedDescriptor) { - TemplateDescriptor clone = (TemplateDescriptor)savedDescriptor; - // - // Keep the same object - // - _templateDescriptor.parameters = clone.parameters; - - ServiceDescriptor sd = (ServiceDescriptor)_templateDescriptor.descriptor; - ServiceDescriptor csd = (ServiceDescriptor)clone.descriptor; - - sd.propertySet = csd.propertySet; - sd.description = csd.description; - sd.name = csd.name; - sd.entry = csd.entry; + TemplateDescriptor clone = (TemplateDescriptor)savedDescriptor; + // + // Keep the same object + // + _templateDescriptor.parameters = clone.parameters; + + ServiceDescriptor sd = (ServiceDescriptor)_templateDescriptor.descriptor; + ServiceDescriptor csd = (ServiceDescriptor)clone.descriptor; + + sd.propertySet = csd.propertySet; + sd.description = csd.description; + sd.name = csd.name; + sd.entry = csd.entry; } private TemplateDescriptor _templateDescriptor; diff --git a/java/src/IceGridGUI/Application/ServiceTemplateEditor.java b/java/src/IceGridGUI/Application/ServiceTemplateEditor.java index 6db6e77a692..8d37cc803f5 100755 --- a/java/src/IceGridGUI/Application/ServiceTemplateEditor.java +++ b/java/src/IceGridGUI/Application/ServiceTemplateEditor.java @@ -14,50 +14,50 @@ class ServiceTemplateEditor extends TemplateEditor { ServiceTemplateEditor() { - _subEditor = new ServiceSubEditor(this); + _subEditor = new ServiceSubEditor(this); } void writeDescriptor() { - super.writeDescriptor(); - _subEditor.writeDescriptor(); - } + super.writeDescriptor(); + _subEditor.writeDescriptor(); + } boolean isSimpleUpdate() { - return super.isSimpleUpdate() && _subEditor.isSimpleUpdate(); + return super.isSimpleUpdate() && _subEditor.isSimpleUpdate(); } protected void appendProperties(DefaultFormBuilder builder) { - super.appendProperties(builder); - builder.appendSeparator(); - builder.nextLine(); - _subEditor.appendProperties(builder); + super.appendProperties(builder); + builder.appendSeparator(); + builder.nextLine(); + _subEditor.appendProperties(builder); } protected void buildPropertiesPanel() { - super.buildPropertiesPanel(); - _propertiesPanel.setName("Service Template Properties"); + super.buildPropertiesPanel(); + _propertiesPanel.setName("Service Template Properties"); } protected boolean validate() { - return super.validate() && _subEditor.validate(); + return super.validate() && _subEditor.validate(); } void show(ServiceTemplate t) { - detectUpdates(false); - _target = t; - - super.show(); - _subEditor.show(true); + detectUpdates(false); + _target = t; + + super.show(); + _subEditor.show(true); - _applyButton.setEnabled(t.isEphemeral()); - _discardButton.setEnabled(t.isEphemeral()); - detectUpdates(true); + _applyButton.setEnabled(t.isEphemeral()); + _discardButton.setEnabled(t.isEphemeral()); + detectUpdates(true); } private ServiceSubEditor _subEditor; diff --git a/java/src/IceGridGUI/Application/ServiceTemplates.java b/java/src/IceGridGUI/Application/ServiceTemplates.java index a231df74f6a..74bd639ecf3 100755 --- a/java/src/IceGridGUI/Application/ServiceTemplates.java +++ b/java/src/IceGridGUI/Application/ServiceTemplates.java @@ -23,17 +23,17 @@ class ServiceTemplates extends Templates static public java.util.Map copyDescriptors(java.util.Map descriptors) { - java.util.Map copy = new java.util.HashMap(); - java.util.Iterator p = descriptors.entrySet().iterator(); - while(p.hasNext()) - { - java.util.Map.Entry entry = (java.util.Map.Entry)p.next(); - - copy.put(entry.getKey(), - ServiceTemplate.copyDescriptor( - (TemplateDescriptor)entry.getValue())); - } - return copy; + java.util.Map copy = new java.util.HashMap(); + java.util.Iterator p = descriptors.entrySet().iterator(); + while(p.hasNext()) + { + java.util.Map.Entry entry = (java.util.Map.Entry)p.next(); + + copy.put(entry.getKey(), + ServiceTemplate.copyDescriptor( + (TemplateDescriptor)entry.getValue())); + } + return copy; } @@ -42,67 +42,67 @@ class ServiceTemplates extends Templates // public boolean[] getAvailableActions() { - boolean[] actions = new boolean[ACTION_COUNT]; - actions[NEW_TEMPLATE_SERVICE] = true; - - Object clipboard = getCoordinator().getClipboard(); - if(clipboard != null && clipboard instanceof TemplateDescriptor) - { - TemplateDescriptor d = (TemplateDescriptor)clipboard; - actions[PASTE] = d.descriptor instanceof ServiceDescriptor; - } - return actions; + boolean[] actions = new boolean[ACTION_COUNT]; + actions[NEW_TEMPLATE_SERVICE] = true; + + Object clipboard = getCoordinator().getClipboard(); + if(clipboard != null && clipboard instanceof TemplateDescriptor) + { + TemplateDescriptor d = (TemplateDescriptor)clipboard; + actions[PASTE] = d.descriptor instanceof ServiceDescriptor; + } + return actions; } public JPopupMenu getPopupMenu() { - ApplicationActions actions = getCoordinator().getActionsForPopup(); - if(_popup == null) - { - _popup = new JPopupMenu(); - _popup.add(actions.get(NEW_TEMPLATE_SERVICE)); - } - actions.setTarget(this); - return _popup; + ApplicationActions actions = getCoordinator().getActionsForPopup(); + if(_popup == null) + { + _popup = new JPopupMenu(); + _popup.add(actions.get(NEW_TEMPLATE_SERVICE)); + } + actions.setTarget(this); + return _popup; } public void newTemplateService() { - ServiceDescriptor sd = new ServiceDescriptor( - new java.util.LinkedList(), - new PropertySetDescriptor(new String[0], new java.util.LinkedList()), - new java.util.LinkedList(), - new String[0], - "", - "", - ""); - - newServiceTemplate(new TemplateDescriptor(sd, new java.util.LinkedList(), new java.util.TreeMap())); + ServiceDescriptor sd = new ServiceDescriptor( + new java.util.LinkedList(), + new PropertySetDescriptor(new String[0], new java.util.LinkedList()), + new java.util.LinkedList(), + new String[0], + "", + "", + ""); + + newServiceTemplate(new TemplateDescriptor(sd, new java.util.LinkedList(), new java.util.TreeMap())); } public void paste() { - Object descriptor = getCoordinator().getClipboard(); - TemplateDescriptor td = (TemplateDescriptor)descriptor; - newServiceTemplate(td); + Object descriptor = getCoordinator().getClipboard(); + TemplateDescriptor td = (TemplateDescriptor)descriptor; + newServiceTemplate(td); } ServiceTemplates(Root parent, java.util.Map descriptors) - throws UpdateFailedException + throws UpdateFailedException { - super(parent, "Service templates"); - - _descriptors = descriptors; - - java.util.Iterator p = _descriptors.entrySet().iterator(); - - while(p.hasNext()) - { - java.util.Map.Entry entry = (java.util.Map.Entry)p.next(); - insertChild(new ServiceTemplate(false, this, - (String)entry.getKey(), - (TemplateDescriptor)entry.getValue()), - false); - } + super(parent, "Service templates"); + + _descriptors = descriptors; + + java.util.Iterator p = _descriptors.entrySet().iterator(); + + while(p.hasNext()) + { + java.util.Map.Entry entry = (java.util.Map.Entry)p.next(); + insertChild(new ServiceTemplate(false, this, + (String)entry.getKey(), + (TemplateDescriptor)entry.getValue()), + false); + } } // @@ -110,110 +110,110 @@ class ServiceTemplates extends Templates // Utils.Resolver getResolver() { - return null; + return null; } void newServiceTemplate(TemplateDescriptor descriptor) { - String id = makeNewChildId("NewServiceTemplate"); - - ServiceTemplate t = new ServiceTemplate(this, id, descriptor); - try - { - insertChild(t, true); - } - catch(UpdateFailedException e) - { - assert false; - } - getRoot().setSelectedNode(t); + String id = makeNewChildId("NewServiceTemplate"); + + ServiceTemplate t = new ServiceTemplate(this, id, descriptor); + try + { + insertChild(t, true); + } + catch(UpdateFailedException e) + { + assert false; + } + getRoot().setSelectedNode(t); } void tryAdd(String newId, TemplateDescriptor descriptor) - throws UpdateFailedException + throws UpdateFailedException { - insertChild(new ServiceTemplate(true, this, newId, descriptor), - true); - _descriptors.put(newId, descriptor); + insertChild(new ServiceTemplate(true, this, newId, descriptor), + true); + _descriptors.put(newId, descriptor); } java.util.Map getUpdates() { - java.util.Map updates = new java.util.HashMap(); - java.util.Iterator p = _children.iterator(); - while(p.hasNext()) - { - ServiceTemplate t = (ServiceTemplate)p.next(); - if(t.getEditable().isNew() || t.getEditable().isModified()) - { - updates.put(t.getId(), t.getDescriptor()); - } - } - return updates; + java.util.Map updates = new java.util.HashMap(); + java.util.Iterator p = _children.iterator(); + while(p.hasNext()) + { + ServiceTemplate t = (ServiceTemplate)p.next(); + if(t.getEditable().isNew() || t.getEditable().isModified()) + { + updates.put(t.getId(), t.getDescriptor()); + } + } + return updates; } void commit() { - _editable.commit(); - java.util.Iterator p = _children.iterator(); - while(p.hasNext()) - { - ServiceTemplate st = (ServiceTemplate)p.next(); - st.commit(); - } + _editable.commit(); + java.util.Iterator p = _children.iterator(); + while(p.hasNext()) + { + ServiceTemplate st = (ServiceTemplate)p.next(); + st.commit(); + } } void update(java.util.Map descriptors, String[] removeTemplates) - throws UpdateFailedException + throws UpdateFailedException { - // - // Note: _descriptors is updated by Application - // - - // - // One big set of removes - // - removeChildren(removeTemplates); - - // - // One big set of updates, followed by inserts - // - java.util.Vector newChildren = new java.util.Vector(); - java.util.Vector updatedChildren = new java.util.Vector(); - - java.util.Iterator p = descriptors.entrySet().iterator(); - while(p.hasNext()) - { - java.util.Map.Entry entry = (java.util.Map.Entry)p.next(); - String name = (String)entry.getKey(); - TemplateDescriptor templateDescriptor - = (TemplateDescriptor)entry.getValue(); - ServiceTemplate child = (ServiceTemplate)findChild(name); - if(child == null) - { - newChildren.add(new ServiceTemplate(false, this, name, - templateDescriptor)); - } - else - { - child.rebuild(templateDescriptor); - updatedChildren.add(child); - } - } - - childrenChanged(updatedChildren); - insertChildren(newChildren, true); + // + // Note: _descriptors is updated by Application + // + + // + // One big set of removes + // + removeChildren(removeTemplates); + + // + // One big set of updates, followed by inserts + // + java.util.Vector newChildren = new java.util.Vector(); + java.util.Vector updatedChildren = new java.util.Vector(); + + java.util.Iterator p = descriptors.entrySet().iterator(); + while(p.hasNext()) + { + java.util.Map.Entry entry = (java.util.Map.Entry)p.next(); + String name = (String)entry.getKey(); + TemplateDescriptor templateDescriptor + = (TemplateDescriptor)entry.getValue(); + ServiceTemplate child = (ServiceTemplate)findChild(name); + if(child == null) + { + newChildren.add(new ServiceTemplate(false, this, name, + templateDescriptor)); + } + else + { + child.rebuild(templateDescriptor); + updatedChildren.add(child); + } + } + + childrenChanged(updatedChildren); + insertChildren(newChildren, true); } void removeDescriptor(String id) { - _descriptors.remove(id); + _descriptors.remove(id); } Object getDescriptor() { - return _descriptors; + return _descriptors; } private java.util.Map _descriptors; diff --git a/java/src/IceGridGUI/Application/TemplateEditor.java b/java/src/IceGridGUI/Application/TemplateEditor.java index aee3bedaa15..e0557b39170 100755 --- a/java/src/IceGridGUI/Application/TemplateEditor.java +++ b/java/src/IceGridGUI/Application/TemplateEditor.java @@ -27,189 +27,189 @@ class TemplateEditor extends Editor { TemplateEditor() { - _template.getDocument().addDocumentListener(_updateListener); - _template.setToolTipText("Must be unique within the enclosing application"); + _template.getDocument().addDocumentListener(_updateListener); + _template.setToolTipText("Must be unique within the enclosing application"); - _parameters = new ParametersField(this); + _parameters = new ParametersField(this); } TemplateDescriptor getDescriptor() { - return (TemplateDescriptor)_target.getDescriptor(); + return (TemplateDescriptor)_target.getDescriptor(); } Object getSubDescriptor() { - return getDescriptor().descriptor; + return getDescriptor().descriptor; } void writeDescriptor() { - TemplateDescriptor descriptor = getDescriptor(); - java.util.LinkedList parameters = new java.util.LinkedList(); - descriptor.parameterDefaults = _parameters.get(parameters); - descriptor.parameters = parameters; - } + TemplateDescriptor descriptor = getDescriptor(); + java.util.LinkedList parameters = new java.util.LinkedList(); + descriptor.parameterDefaults = _parameters.get(parameters); + descriptor.parameters = parameters; + } boolean isSimpleUpdate() { - TemplateDescriptor descriptor = getDescriptor(); - java.util.List parameters = new java.util.LinkedList(); - java.util.Map defaultValues = _parameters.get(parameters); + TemplateDescriptor descriptor = getDescriptor(); + java.util.List parameters = new java.util.LinkedList(); + java.util.Map defaultValues = _parameters.get(parameters); - return descriptor.parameters.equals(parameters) - && descriptor.parameterDefaults.equals(defaultValues); + return descriptor.parameters.equals(parameters) + && descriptor.parameterDefaults.equals(defaultValues); } protected void appendProperties(DefaultFormBuilder builder) { - builder.append("Template ID"); - builder.append(_template, 3); - builder.nextLine(); - - builder.append("Parameters"); - builder.nextLine(); - builder.append(""); - builder.nextLine(); - builder.append(""); - builder.nextLine(); - builder.append(""); - - builder.nextRow(-6); - JScrollPane scrollPane = new JScrollPane(_parameters); - CellConstraints cc = new CellConstraints(); - builder.add(scrollPane, - cc.xywh(builder.getColumn(), builder.getRow(), 3, 7)); - builder.nextRow(6); - builder.nextLine(); + builder.append("Template ID"); + builder.append(_template, 3); + builder.nextLine(); + + builder.append("Parameters"); + builder.nextLine(); + builder.append(""); + builder.nextLine(); + builder.append(""); + builder.nextLine(); + builder.append(""); + + builder.nextRow(-6); + JScrollPane scrollPane = new JScrollPane(_parameters); + CellConstraints cc = new CellConstraints(); + builder.add(scrollPane, + cc.xywh(builder.getColumn(), builder.getRow(), 3, 7)); + builder.nextRow(6); + builder.nextLine(); } protected boolean validate() { - return check(new String[]{"Template ID", _template.getText().trim()}); + return check(new String[]{"Template ID", _template.getText().trim()}); } void show() { - TemplateDescriptor descriptor = getDescriptor(); - _template.setText(_target.getId()); - _template.setEditable(_target.isEphemeral()); + TemplateDescriptor descriptor = getDescriptor(); + _template.setText(_target.getId()); + _template.setEditable(_target.isEphemeral()); - _parameters.set(descriptor.parameters, descriptor.parameterDefaults); + _parameters.set(descriptor.parameters, descriptor.parameterDefaults); } protected boolean applyUpdate(boolean refresh) { - Root root = _target.getRoot(); - root.disableSelectionListener(); - - try - { - if(_target.isEphemeral()) - { - writeDescriptor(); - TemplateDescriptor descriptor = getDescriptor(); - Templates parent = (Templates)_target.getParent(); - _target.destroy(); // just removes the child - - try - { - parent.tryAdd(_template.getText().trim(), descriptor); - } - catch(UpdateFailedException e) - { - // - // Re-add ephemeral child - // - try - { - parent.insertChild(_target, true); - } - catch(UpdateFailedException die) - { - assert false; - } - root.setSelectedNode(_target); - - JOptionPane.showMessageDialog( - _target.getCoordinator().getMainFrame(), - e.toString(), - "Apply failed", - JOptionPane.ERROR_MESSAGE); - return false; - } - - // - // Success - // - _target = parent.findChildWithDescriptor(descriptor); - root.updated(); - _template.setEditable(false); - if(refresh) - { - root.setSelectedNode(_target); - } - } - else if(isSimpleUpdate()) - { - writeDescriptor(); - ((Communicator)_target).getEnclosingEditable().markModified(); - root.updated(); - - } - else - { - // - // Save to be able to rollback - // - Object savedDescriptor = ((Communicator)_target).saveDescriptor(); - Templates parent = (Templates)_target.getParent(); - writeDescriptor(); - - try - { - parent.tryUpdate((Communicator)_target); - } - catch(UpdateFailedException e) - { - ((Communicator)_target).restoreDescriptor(savedDescriptor); - - JOptionPane.showMessageDialog( - _target.getCoordinator().getMainFrame(), - e.toString(), - "Apply failed", - JOptionPane.ERROR_MESSAGE); - // - // Everything was restored, user must deal with error - // - return false; - } - - // - // Success - // - ((Communicator)_target).getEnclosingEditable().markModified(); - root.updated(); - - _target = parent.findChildWithDescriptor(getDescriptor()); - if(refresh) - { - root.setSelectedNode(_target); - } - } - - if(refresh) - { - root.getCoordinator().getCurrentTab().showNode(_target); - } - _applyButton.setEnabled(false); - _discardButton.setEnabled(false); - return true; - } - finally - { - root.enableSelectionListener(); - } + Root root = _target.getRoot(); + root.disableSelectionListener(); + + try + { + if(_target.isEphemeral()) + { + writeDescriptor(); + TemplateDescriptor descriptor = getDescriptor(); + Templates parent = (Templates)_target.getParent(); + _target.destroy(); // just removes the child + + try + { + parent.tryAdd(_template.getText().trim(), descriptor); + } + catch(UpdateFailedException e) + { + // + // Re-add ephemeral child + // + try + { + parent.insertChild(_target, true); + } + catch(UpdateFailedException die) + { + assert false; + } + root.setSelectedNode(_target); + + JOptionPane.showMessageDialog( + _target.getCoordinator().getMainFrame(), + e.toString(), + "Apply failed", + JOptionPane.ERROR_MESSAGE); + return false; + } + + // + // Success + // + _target = parent.findChildWithDescriptor(descriptor); + root.updated(); + _template.setEditable(false); + if(refresh) + { + root.setSelectedNode(_target); + } + } + else if(isSimpleUpdate()) + { + writeDescriptor(); + ((Communicator)_target).getEnclosingEditable().markModified(); + root.updated(); + + } + else + { + // + // Save to be able to rollback + // + Object savedDescriptor = ((Communicator)_target).saveDescriptor(); + Templates parent = (Templates)_target.getParent(); + writeDescriptor(); + + try + { + parent.tryUpdate((Communicator)_target); + } + catch(UpdateFailedException e) + { + ((Communicator)_target).restoreDescriptor(savedDescriptor); + + JOptionPane.showMessageDialog( + _target.getCoordinator().getMainFrame(), + e.toString(), + "Apply failed", + JOptionPane.ERROR_MESSAGE); + // + // Everything was restored, user must deal with error + // + return false; + } + + // + // Success + // + ((Communicator)_target).getEnclosingEditable().markModified(); + root.updated(); + + _target = parent.findChildWithDescriptor(getDescriptor()); + if(refresh) + { + root.setSelectedNode(_target); + } + } + + if(refresh) + { + root.getCoordinator().getCurrentTab().showNode(_target); + } + _applyButton.setEnabled(false); + _discardButton.setEnabled(false); + return true; + } + finally + { + root.enableSelectionListener(); + } } private JTextField _template = new JTextField(20); diff --git a/java/src/IceGridGUI/Application/Templates.java b/java/src/IceGridGUI/Application/Templates.java index 15b3b652211..4dc842d1bdc 100755 --- a/java/src/IceGridGUI/Application/Templates.java +++ b/java/src/IceGridGUI/Application/Templates.java @@ -16,46 +16,46 @@ import IceGridGUI.*; abstract class Templates extends ListTreeNode { abstract void tryAdd(String newId, TemplateDescriptor descriptor) - throws UpdateFailedException; + throws UpdateFailedException; protected Templates(Root parent, String id) { - super(false, parent, id); + super(false, parent, id); } void tryUpdate(Communicator child) - throws UpdateFailedException + throws UpdateFailedException { - java.util.List instanceList = child.findInstances(); - java.util.List backupList = new java.util.Vector(); + java.util.List instanceList = child.findInstances(); + java.util.List backupList = new java.util.Vector(); - java.util.List editables = new java.util.LinkedList(); + java.util.List editables = new java.util.LinkedList(); - java.util.Iterator p = instanceList.iterator(); - while(p.hasNext()) - { - TemplateInstance instance = (TemplateInstance)p.next(); - - try - { - backupList.add(instance.rebuild(editables)); - } - catch(UpdateFailedException e) - { - for(int i = backupList.size() - 1; i >= 0; --i) - { - instance = (TemplateInstance)instanceList.get(i); - instance.restore(backupList.get(i)); - } - throw e; - } - } - - p = editables.iterator(); - while(p.hasNext()) - { - Editable editable = (Editable)p.next(); - editable.markModified(); - } + java.util.Iterator p = instanceList.iterator(); + while(p.hasNext()) + { + TemplateInstance instance = (TemplateInstance)p.next(); + + try + { + backupList.add(instance.rebuild(editables)); + } + catch(UpdateFailedException e) + { + for(int i = backupList.size() - 1; i >= 0; --i) + { + instance = (TemplateInstance)instanceList.get(i); + instance.restore(backupList.get(i)); + } + throw e; + } + } + + p = editables.iterator(); + while(p.hasNext()) + { + Editable editable = (Editable)p.next(); + editable.markModified(); + } } } diff --git a/java/src/IceGridGUI/Application/TreeNode.java b/java/src/IceGridGUI/Application/TreeNode.java index ec5a2de73fa..8c8d6582b04 100755 --- a/java/src/IceGridGUI/Application/TreeNode.java +++ b/java/src/IceGridGUI/Application/TreeNode.java @@ -30,7 +30,7 @@ public abstract class TreeNode extends TreeNodeBase // public boolean isEphemeral() { - return false; + return false; } // @@ -38,26 +38,26 @@ public abstract class TreeNode extends TreeNodeBase // public void destroy() { - assert false; + assert false; } TreeNode(TreeNode parent, String id) { - super(parent, id); + super(parent, id); } public Root getRoot() { - assert _parent != null; - return ((TreeNode)_parent).getRoot(); + assert _parent != null; + return ((TreeNode)_parent).getRoot(); } TreeNode findChildLike(TreeNode other) { - // - // Default implementation just use id; not always appropriate - // - return (TreeNode)findChild(other.getId()); + // + // Default implementation just use id; not always appropriate + // + return (TreeNode)findChild(other.getId()); } // @@ -65,14 +65,14 @@ public abstract class TreeNode extends TreeNodeBase // Utils.Resolver getResolver() { - if(isEphemeral()) - { - return null; - } - else - { - return ((TreeNode)_parent).getResolver(); - } + if(isEphemeral()) + { + return null; + } + else + { + return ((TreeNode)_parent).getResolver(); + } } // @@ -80,266 +80,266 @@ public abstract class TreeNode extends TreeNodeBase // TreeNode findChildWithDescriptor(Object descriptor) { - Enumeration p = children(); - while(p.hasMoreElements()) - { - TreeNode node = (TreeNode)p.nextElement(); - if(node.getDescriptor() == descriptor) - { - return node; - } - } - return null; + Enumeration p = children(); + while(p.hasMoreElements()) + { + TreeNode node = (TreeNode)p.nextElement(); + if(node.getDescriptor() == descriptor) + { + return node; + } + } + return null; } static String[] createAttribute(String name, String value) { - return new String[]{name, value}; + return new String[]{name, value}; } static void writeVariables(XMLWriter writer, - java.util.Map variables) - throws java.io.IOException + java.util.Map variables) + throws java.io.IOException { - java.util.Iterator p = variables.entrySet().iterator(); - while(p.hasNext()) - { - java.util.Map.Entry entry = (java.util.Map.Entry)p.next(); - - java.util.List attributes = new java.util.LinkedList(); - attributes.add(createAttribute("name", entry.getKey().toString())); - attributes.add(createAttribute("value", entry.getValue().toString())); + java.util.Iterator p = variables.entrySet().iterator(); + while(p.hasNext()) + { + java.util.Map.Entry entry = (java.util.Map.Entry)p.next(); + + java.util.List attributes = new java.util.LinkedList(); + attributes.add(createAttribute("name", entry.getKey().toString())); + attributes.add(createAttribute("value", entry.getValue().toString())); - writer.writeElement("variable", attributes); - } + writer.writeElement("variable", attributes); + } } static void writePropertySet(XMLWriter writer, PropertySetDescriptor psd, - java.util.List adapters, String[] logs) - throws java.io.IOException + java.util.List adapters, String[] logs) + throws java.io.IOException { - writePropertySet(writer, "", "", psd, adapters, logs); + writePropertySet(writer, "", "", psd, adapters, logs); } static void writePropertySet(XMLWriter writer, String id, String idAttrName, - PropertySetDescriptor psd, - java.util.List adapters, String[] logs) - throws java.io.IOException - { - if(id.length() == 0 && psd.references.length == 0 && psd.properties.size() == 0) - { - return; - } - - // - // We don't show the .Endpoint of adapters, - // since they already appear in the Adapter descriptors - // - java.util.Set hiddenPropertyNames = new java.util.HashSet(); - java.util.Set hiddenPropertyValues = new java.util.HashSet(); - - if(adapters != null) - { - java.util.Iterator p = adapters.iterator(); - while(p.hasNext()) - { - AdapterDescriptor ad = (AdapterDescriptor)p.next(); - hiddenPropertyNames.add("Ice.OA." + ad.name + ".Endpoints"); - - java.util.Iterator q = ad.objects.iterator(); - while(q.hasNext()) - { - ObjectDescriptor od = (ObjectDescriptor)q.next(); - hiddenPropertyValues.add(Ice.Util.identityToString(od.id)); - } - q = ad.allocatables.iterator(); - while(q.hasNext()) - { - ObjectDescriptor od = (ObjectDescriptor)q.next(); - hiddenPropertyValues.add(Ice.Util.identityToString(od.id)); - } - } - } - - if(logs != null) - { - for(int i = 0; i < logs.length; ++i) - { - hiddenPropertyValues.add(logs[i]); - } - } - - java.util.List attributes = new java.util.LinkedList(); - if(id.length() > 0) - { - attributes.add(createAttribute(idAttrName, id)); - } - if(psd.references.length == 0 && psd.properties.size() == 0) - { - writer.writeElement("properties", attributes); - } - else - { - writer.writeStartTag("properties", attributes); - - for(int i = 0; i < psd.references.length; ++i) - { - attributes.clear(); - attributes.add(createAttribute("refid", psd.references[i])); - writer.writeElement("properties", attributes); - } - - java.util.Iterator p = psd.properties.iterator(); - while(p.hasNext()) - { - PropertyDescriptor pd = (PropertyDescriptor)p.next(); - if(hiddenPropertyNames.contains(pd.name)) - { - // - // We hide only the first occurence - // - hiddenPropertyNames.remove(pd.name); - } - else if(hiddenPropertyValues.contains(pd.value)) - { - hiddenPropertyValues.remove(pd.value); - } - else - { - attributes.clear(); - attributes.add(createAttribute("name", pd.name)); - attributes.add(createAttribute("value", pd.value)); - writer.writeElement("property", attributes); - } - } - writer.writeEndTag("properties"); - } + PropertySetDescriptor psd, + java.util.List adapters, String[] logs) + throws java.io.IOException + { + if(id.length() == 0 && psd.references.length == 0 && psd.properties.size() == 0) + { + return; + } + + // + // We don't show the .Endpoint of adapters, + // since they already appear in the Adapter descriptors + // + java.util.Set hiddenPropertyNames = new java.util.HashSet(); + java.util.Set hiddenPropertyValues = new java.util.HashSet(); + + if(adapters != null) + { + java.util.Iterator p = adapters.iterator(); + while(p.hasNext()) + { + AdapterDescriptor ad = (AdapterDescriptor)p.next(); + hiddenPropertyNames.add("Ice.OA." + ad.name + ".Endpoints"); + + java.util.Iterator q = ad.objects.iterator(); + while(q.hasNext()) + { + ObjectDescriptor od = (ObjectDescriptor)q.next(); + hiddenPropertyValues.add(Ice.Util.identityToString(od.id)); + } + q = ad.allocatables.iterator(); + while(q.hasNext()) + { + ObjectDescriptor od = (ObjectDescriptor)q.next(); + hiddenPropertyValues.add(Ice.Util.identityToString(od.id)); + } + } + } + + if(logs != null) + { + for(int i = 0; i < logs.length; ++i) + { + hiddenPropertyValues.add(logs[i]); + } + } + + java.util.List attributes = new java.util.LinkedList(); + if(id.length() > 0) + { + attributes.add(createAttribute(idAttrName, id)); + } + if(psd.references.length == 0 && psd.properties.size() == 0) + { + writer.writeElement("properties", attributes); + } + else + { + writer.writeStartTag("properties", attributes); + + for(int i = 0; i < psd.references.length; ++i) + { + attributes.clear(); + attributes.add(createAttribute("refid", psd.references[i])); + writer.writeElement("properties", attributes); + } + + java.util.Iterator p = psd.properties.iterator(); + while(p.hasNext()) + { + PropertyDescriptor pd = (PropertyDescriptor)p.next(); + if(hiddenPropertyNames.contains(pd.name)) + { + // + // We hide only the first occurence + // + hiddenPropertyNames.remove(pd.name); + } + else if(hiddenPropertyValues.contains(pd.value)) + { + hiddenPropertyValues.remove(pd.value); + } + else + { + attributes.clear(); + attributes.add(createAttribute("name", pd.name)); + attributes.add(createAttribute("value", pd.value)); + writer.writeElement("property", attributes); + } + } + writer.writeEndTag("properties"); + } } static void writeLogs(XMLWriter writer, String[] logs, java.util.List properties) - throws java.io.IOException + throws java.io.IOException { - for(int i = 0; i < logs.length; ++i) - { - java.util.List attributes = new java.util.LinkedList(); - attributes.add(createAttribute("path", logs[i])); - String prop = lookupName(logs[i], properties); - if(prop != null) - { - attributes.add(createAttribute("property", prop)); - } - writer.writeElement("log", attributes); - } + for(int i = 0; i < logs.length; ++i) + { + java.util.List attributes = new java.util.LinkedList(); + attributes.add(createAttribute("path", logs[i])); + String prop = lookupName(logs[i], properties); + if(prop != null) + { + attributes.add(createAttribute("property", prop)); + } + writer.writeElement("log", attributes); + } } static String lookupName(String val, java.util.List properties) { - java.util.Iterator p = properties.iterator(); - while(p.hasNext()) - { - PropertyDescriptor pd = (PropertyDescriptor)p.next(); - if(pd.value.equals(val)) - { - return pd.name; - } - } - return null; + java.util.Iterator p = properties.iterator(); + while(p.hasNext()) + { + PropertyDescriptor pd = (PropertyDescriptor)p.next(); + if(pd.value.equals(val)) + { + return pd.name; + } + } + return null; } static void writeDistribution(XMLWriter writer, - DistributionDescriptor descriptor) - throws java.io.IOException - { - if(descriptor.icepatch.length() > 0) - { - java.util.List attributes = new java.util.LinkedList(); - attributes.add(createAttribute("icepatch", descriptor.icepatch)); - - if(descriptor.directories.isEmpty()) - { - writer.writeElement("distrib", attributes); - } - else - { - writer.writeStartTag("distrib", attributes); - java.util.Iterator p = descriptor.directories.iterator(); - while(p.hasNext()) - { - writer.writeElement("directory", p.next().toString()); - } - writer.writeEndTag("distrib"); - } - } + DistributionDescriptor descriptor) + throws java.io.IOException + { + if(descriptor.icepatch.length() > 0) + { + java.util.List attributes = new java.util.LinkedList(); + attributes.add(createAttribute("icepatch", descriptor.icepatch)); + + if(descriptor.directories.isEmpty()) + { + writer.writeElement("distrib", attributes); + } + else + { + writer.writeStartTag("distrib", attributes); + java.util.Iterator p = descriptor.directories.iterator(); + while(p.hasNext()) + { + writer.writeElement("directory", p.next().toString()); + } + writer.writeEndTag("distrib"); + } + } } static void writeObjects(String elt, XMLWriter writer, java.util.List objects, - java.util.List properties) - throws java.io.IOException - { - java.util.Iterator p = objects.iterator(); - while(p.hasNext()) - { - ObjectDescriptor od = (ObjectDescriptor)p.next(); - java.util.List attributes = new java.util.LinkedList(); - String strId = Ice.Util.identityToString(od.id); - attributes.add(createAttribute("identity", strId)); - if(od.type.length() > 0) - { - attributes.add(createAttribute("type", od.type)); - } - if(properties != null) - { - String prop = lookupName(strId, properties); - if(prop != null) - { - attributes.add(createAttribute("property", prop)); - } - } - - writer.writeElement(elt, attributes); - } - } + java.util.List properties) + throws java.io.IOException + { + java.util.Iterator p = objects.iterator(); + while(p.hasNext()) + { + ObjectDescriptor od = (ObjectDescriptor)p.next(); + java.util.List attributes = new java.util.LinkedList(); + String strId = Ice.Util.identityToString(od.id); + attributes.add(createAttribute("identity", strId)); + if(od.type.length() > 0) + { + attributes.add(createAttribute("type", od.type)); + } + if(properties != null) + { + String prop = lookupName(strId, properties); + if(prop != null) + { + attributes.add(createAttribute("property", prop)); + } + } + + writer.writeElement(elt, attributes); + } + } static void writeParameters(XMLWriter writer, java.util.List parameters, - java.util.Map defaultValues) - throws java.io.IOException - { - java.util.Iterator p = new java.util.LinkedHashSet(parameters).iterator(); - while(p.hasNext()) - { - String parameter = (String)p.next(); - String val = (String)defaultValues.get(parameter); - java.util.List attributes = new java.util.LinkedList(); - attributes.add(createAttribute("name", parameter)); - if(val != null) - { - attributes.add(createAttribute("default", val)); - } - writer.writeElement("parameter", attributes); - } + java.util.Map defaultValues) + throws java.io.IOException + { + java.util.Iterator p = new java.util.LinkedHashSet(parameters).iterator(); + while(p.hasNext()) + { + String parameter = (String)p.next(); + String val = (String)defaultValues.get(parameter); + java.util.List attributes = new java.util.LinkedList(); + attributes.add(createAttribute("name", parameter)); + if(val != null) + { + attributes.add(createAttribute("default", val)); + } + writer.writeElement("parameter", attributes); + } } static java.util.LinkedList parameterValuesToAttributes(java.util.Map parameterValues, - java.util.List parameters) - { - java.util.LinkedList result = new java.util.LinkedList(); - - // - // We use a LinkedHashSet to maintain order while eliminating duplicates - // - java.util.Iterator p = new java.util.LinkedHashSet(parameters).iterator(); - while(p.hasNext()) - { - String param = (String)p.next(); - String val = (String)parameterValues.get(param); - if(val != null) - { - result.add(createAttribute(param, val)); - } - } - return result; + java.util.List parameters) + { + java.util.LinkedList result = new java.util.LinkedList(); + + // + // We use a LinkedHashSet to maintain order while eliminating duplicates + // + java.util.Iterator p = new java.util.LinkedHashSet(parameters).iterator(); + while(p.hasNext()) + { + String param = (String)p.next(); + String val = (String)parameterValues.get(param); + if(val != null) + { + result.add(createAttribute(param, val)); + } + } + return result; } // @@ -373,94 +373,94 @@ public abstract class TreeNode extends TreeNodeBase public boolean[] getAvailableActions() { - return new boolean[ACTION_COUNT]; + return new boolean[ACTION_COUNT]; } public void newAdapter() { - assert false; + assert false; } public void newDbEnv() { - assert false; + assert false; } public void newNode() { - assert false; + assert false; } public void newPropertySet() { - assert false; + assert false; } public void newReplicaGroup() { - assert false; + assert false; } public void newServer() { - assert false; + assert false; } public void newServerIceBox() { - assert false; + assert false; } public void newServerFromTemplate() { - assert false; + assert false; } public void newService() { - assert false; + assert false; } public void newServiceFromTemplate() { - assert false; + assert false; } public void newTemplateServer() { - assert false; + assert false; } public void newTemplateServerIceBox() { - assert false; + assert false; } public void newTemplateService() { - assert false; + assert false; } public void copy() { - assert false; + assert false; } public void paste() { - assert false; + assert false; } public void delete() { - boolean enabled = getRoot().isSelectionListenerEnabled(); + boolean enabled = getRoot().isSelectionListenerEnabled(); - if(enabled) - { - getRoot().disableSelectionListener(); - } - destroy(); - getCoordinator().getCurrentTab().showNode(null); - if(enabled) - { - getRoot().enableSelectionListener(); - } + if(enabled) + { + getRoot().disableSelectionListener(); + } + destroy(); + getCoordinator().getCurrentTab().showNode(null); + if(enabled) + { + getRoot().enableSelectionListener(); + } - if(_parent != null) - { - getRoot().setSelectedNode((TreeNode)_parent); - } + if(_parent != null) + { + getRoot().setSelectedNode((TreeNode)_parent); + } } public void moveUp() { - assert false; + assert false; } public void moveDown() { - assert false; + assert false; } } diff --git a/java/src/IceGridGUI/Application/UpdateFailedException.java b/java/src/IceGridGUI/Application/UpdateFailedException.java index 6c79d5c1524..c59d580f7df 100755 --- a/java/src/IceGridGUI/Application/UpdateFailedException.java +++ b/java/src/IceGridGUI/Application/UpdateFailedException.java @@ -12,13 +12,13 @@ public class UpdateFailedException extends Exception { UpdateFailedException(TreeNode parent, String id) { - _parent = parent; - _id = id; + _parent = parent; + _id = id; } public String toString() { - return _parent.getFullId().toString() + " has already a child with '" + _id + "' as ID."; + return _parent.getFullId().toString() + " has already a child with '" + _id + "' as ID."; } private TreeNode _parent; |