summaryrefslogtreecommitdiff
path: root/java/src/IceGrid/TreeNode/ServerTemplate.java
diff options
context:
space:
mode:
authorBernard Normier <bernard@zeroc.com>2005-10-06 17:34:18 +0000
committerBernard Normier <bernard@zeroc.com>2005-10-06 17:34:18 +0000
commit4b778b024a8bec68daf136e27338f78666e6d797 (patch)
tree2c856710ccaac00198c5010bf49fea8d4f791aca /java/src/IceGrid/TreeNode/ServerTemplate.java
parentFixed Windows compile error (diff)
downloadice-4b778b024a8bec68daf136e27338f78666e6d797.tar.bz2
ice-4b778b024a8bec68daf136e27338f78666e6d797.tar.xz
ice-4b778b024a8bec68daf136e27338f78666e6d797.zip
Refactored toolbars/menubars
Diffstat (limited to 'java/src/IceGrid/TreeNode/ServerTemplate.java')
-rwxr-xr-xjava/src/IceGrid/TreeNode/ServerTemplate.java243
1 files changed, 180 insertions, 63 deletions
diff --git a/java/src/IceGrid/TreeNode/ServerTemplate.java b/java/src/IceGrid/TreeNode/ServerTemplate.java
index d442607cf70..49a4ca1f4c9 100755
--- a/java/src/IceGrid/TreeNode/ServerTemplate.java
+++ b/java/src/IceGrid/TreeNode/ServerTemplate.java
@@ -31,6 +31,7 @@ import com.jgoodies.forms.factories.Borders;
import com.jgoodies.forms.layout.FormLayout;
import IceGrid.SimpleInternalFrame;
+import IceGrid.Actions;
import IceGrid.IceBoxDescriptor;
import IceGrid.Model;
import IceGrid.ServerDescriptor;
@@ -43,8 +44,31 @@ import IceGrid.Utils;
class ServerTemplate extends EditableParent
{
+ static public TemplateDescriptor
+ copyDescriptor(TemplateDescriptor templateDescriptor)
+ {
+ TemplateDescriptor copy = (TemplateDescriptor)
+ templateDescriptor.clone();
+
+ copy.descriptor = Server.copyDescriptor(
+ (ServerDescriptor)copy.descriptor);
+ return copy;
+ }
+
+ public Actions getActions()
+ {
+ if(_actions == null)
+ {
+ _actions = new ServerTemplateActions(_model);
+ }
+ _actions.reset(this);
+ return _actions;
+ }
+
public void displayProperties()
{
+ _model.setActions(getActions());
+
SimpleInternalFrame propertiesFrame = _model.getPropertiesFrame();
propertiesFrame.setTitle("Properties for " + _id);
@@ -54,12 +78,101 @@ class ServerTemplate extends EditableParent
}
_editor.show(this);
propertiesFrame.setContent(_editor.getComponent());
- propertiesFrame.validate();
- propertiesFrame.repaint();
+
+ _model.getMainFrame().validate();
+ _model.getMainFrame().repaint();
+ }
+
+ public boolean destroy()
+ {
+ ServerTemplates serverTemplates = (ServerTemplates)_parent;
+
+ if(serverTemplates != null && _ephemeral)
+ {
+ serverTemplates.removeChild(this, true);
+ return true;
+ }
+ else if(serverTemplates != null && _model.canUpdate())
+ {
+ serverTemplates.removeDescriptor(_id);
+ getApplication().removeServerInstances(_id);
+ serverTemplates.removeElement(this, true);
+ return true;
+ }
+ else
+ {
+ return false;
+ }
}
+ public boolean isEphemeral()
+ {
+ return _ephemeral;
+ }
+
+ public java.util.List findAllInstances(CommonBase child)
+ {
+ java.util.List result = super.findAllInstances(child);
+
+ java.util.List serverInstances =
+ getApplication().findServerInstances(_id);
+
+ java.util.Iterator p = serverInstances.iterator();
+ while(p.hasNext())
+ {
+ Server server = (Server)p.next();
+ result.addAll(server.findChildrenWithType(child.getClass()));
+ }
+
+ return result;
+ }
+
+ public PropertiesHolder getPropertiesHolder()
+ {
+ return _propertiesHolder;
+ }
+
+ public String toString()
+ {
+ if(_ephemeral)
+ {
+ return super.toString();
+ }
+ else
+ {
+ return templateLabel(_id, _templateDescriptor.parameters);
+ }
+ }
+
+ public Object getDescriptor()
+ {
+ return _templateDescriptor;
+ }
+
+
+ public Object saveDescriptor()
+ {
+ //
+ // 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;
+
+ Server.shallowRestore((ServerDescriptor)clone.descriptor,
+ (ServerDescriptor)_templateDescriptor.descriptor);
+ }
+
+ //
// Application is needed to lookup service templates
//
ServerTemplate(boolean brandNew, String name, TemplateDescriptor descriptor,
@@ -67,12 +180,31 @@ class ServerTemplate extends EditableParent
throws UpdateFailedException
{
super(brandNew, name, application.getModel());
+ _ephemeral = false;
rebuild(descriptor, application);
}
+ ServerTemplate(String name, TemplateDescriptor descriptor,
+ Application application)
+ {
+ super(true, name, application.getModel());
+ _ephemeral = true;
+ try
+ {
+ rebuild(descriptor, application);
+ }
+ catch(UpdateFailedException e)
+ {
+ assert false;
+ }
+ }
+
ServerTemplate(ServerTemplate o)
{
super(o, true);
+ assert o._ephemeral == false;
+ _ephemeral = false;
+
_templateDescriptor = o._templateDescriptor;
_iceBoxDescriptor = o._iceBoxDescriptor;
_services = o._services;
@@ -82,6 +214,18 @@ class ServerTemplate extends EditableParent
_propertiesHolder = o._propertiesHolder;
}
+ java.util.List findServiceInstances(String template)
+ {
+ if(_services != null)
+ {
+ return _services.findServiceInstances(template);
+ }
+ else
+ {
+ return new java.util.LinkedList();
+ }
+ }
+
void rebuild(TemplateDescriptor descriptor, Application application)
throws UpdateFailedException
{
@@ -93,31 +237,40 @@ class ServerTemplate extends EditableParent
// Fix-up parameters order
//
java.util.Collections.sort(_templateDescriptor.parameters);
-
- if(_templateDescriptor.descriptor instanceof IceBoxDescriptor)
- {
- _iceBoxDescriptor = (IceBoxDescriptor)_templateDescriptor.descriptor;
-
- _services = new Services(_iceBoxDescriptor.services, true, null,
- application);
- addChild(_services);
- assert _templateDescriptor.descriptor.dbEnvs.size() == 0;
+ if(_ephemeral)
+ {
+ _adapters = null;
_dbEnvs = null;
+ _services = null;
}
else
- {
- _services = null;
- _iceBoxDescriptor = null;
-
- _dbEnvs = new DbEnvs(_templateDescriptor.descriptor.dbEnvs, true,
- null, _model);
- addChild(_dbEnvs);
+ {
+ if(_templateDescriptor.descriptor instanceof IceBoxDescriptor)
+ {
+ _iceBoxDescriptor = (IceBoxDescriptor)_templateDescriptor.descriptor;
+
+ _services = new Services(_iceBoxDescriptor.services, true, null,
+ application);
+ addChild(_services);
+
+ assert _templateDescriptor.descriptor.dbEnvs.size() == 0;
+ _dbEnvs = null;
+ }
+ else
+ {
+ _services = null;
+ _iceBoxDescriptor = null;
+
+ _dbEnvs = new DbEnvs(_templateDescriptor.descriptor.dbEnvs, true,
+ null, _model);
+ addChild(_dbEnvs);
+ }
+
+ _adapters = new Adapters(_templateDescriptor.descriptor.adapters, true,
+ _services != null, null, _model);
+ addChild(_adapters);
}
-
- _adapters = new Adapters(_templateDescriptor.descriptor.adapters, true,
- _services != null, null, _model);
- addChild(_adapters);
}
void removeServiceInstances(String template)
@@ -128,50 +281,12 @@ class ServerTemplate extends EditableParent
}
}
- public java.util.List findAllInstances(CommonBase child)
- {
- java.util.List result = super.findAllInstances(child);
-
- java.util.List serverInstances =
- getApplication().findServerInstances(_id);
-
- java.util.Iterator p = serverInstances.iterator();
- while(p.hasNext())
- {
- Server server = (Server)p.next();
- result.addAll(server.findChildrenWithType(child.getClass()));
- }
- return result;
- }
-
- java.util.List findServiceInstances(String template)
+ TemplateDescriptor copy()
{
- if(_services != null)
- {
- return _services.findServiceInstances(template);
- }
- else
- {
- return new java.util.LinkedList();
- }
- }
-
-
- public PropertiesHolder getPropertiesHolder()
- {
- return _propertiesHolder;
+ return copyDescriptor(_templateDescriptor);
}
- public String toString()
- {
- return templateLabel(_id, _templateDescriptor.parameters);
- }
-
- public Object getDescriptor()
- {
- return _templateDescriptor;
- }
private TemplateDescriptor _templateDescriptor;
private IceBoxDescriptor _iceBoxDescriptor;
@@ -181,6 +296,8 @@ class ServerTemplate extends EditableParent
private DbEnvs _dbEnvs;
private PropertiesHolder _propertiesHolder;
+ private final boolean _ephemeral;
static private ServerTemplateEditor _editor;
+ static private ServerTemplateActions _actions;
}