diff options
Diffstat (limited to 'java/src/IceGrid/TreeNode/DbEnv.java')
-rwxr-xr-x | java/src/IceGrid/TreeNode/DbEnv.java | 111 |
1 files changed, 110 insertions, 1 deletions
diff --git a/java/src/IceGrid/TreeNode/DbEnv.java b/java/src/IceGrid/TreeNode/DbEnv.java index 66a2da19887..74441e7202a 100755 --- a/java/src/IceGrid/TreeNode/DbEnv.java +++ b/java/src/IceGrid/TreeNode/DbEnv.java @@ -10,6 +10,7 @@ package IceGrid.TreeNode; import IceGrid.DbEnvDescriptor;
import IceGrid.Model;
+import IceGrid.SimpleInternalFrame;
import IceGrid.Utils;
class DbEnv extends Leaf
@@ -19,6 +20,61 @@ class DbEnv extends Leaf return (DbEnvDescriptor)d.clone();
}
+ //
+ // Actions
+ //
+ public boolean[] getAvailableActions()
+ {
+ boolean[] actions = new boolean[ACTION_COUNT];
+ actions[COPY] = true;
+
+ if(_parent.getAvailableActions()[PASTE])
+ {
+ actions[PASTE] = true;
+ }
+ if(isEditable())
+ {
+ actions[DELETE] = true;
+ }
+
+ if(_resolver != null && !_ephemeral)
+ {
+ actions[SUBSTITUTE_VARS] = true;
+ }
+ return actions;
+ }
+
+ public void copy()
+ {
+ _model.setClipboard(copyDescriptor(_descriptor));
+ if(_parent.getAvailableActions()[PASTE])
+ {
+ _model.getActions()[PASTE].setEnabled(true);
+ }
+ }
+ public void paste()
+ {
+ _parent.paste();
+ }
+
+ public void displayProperties()
+ {
+ SimpleInternalFrame propertiesFrame = _model.getPropertiesFrame();
+
+ propertiesFrame.setTitle("Properties for " + _id);
+ if(_editor == null)
+ {
+ _editor = new DbEnvEditor(_model.getMainFrame());
+ }
+
+ _editor.show(this);
+ propertiesFrame.setContent(_editor.getComponent());
+
+ propertiesFrame.validate();
+ propertiesFrame.repaint();
+ }
+
+
public Object getDescriptor()
{
return _descriptor;
@@ -28,15 +84,68 @@ class DbEnv extends Leaf {
return copyDescriptor(_descriptor);
}
-
+
+ public Object saveDescriptor()
+ {
+ return copyDescriptor(_descriptor);
+ }
+
+ public void restoreDescriptor(Object savedDescriptor)
+ {
+ DbEnvDescriptor clone = (DbEnvDescriptor)savedDescriptor;
+ _descriptor.name = clone.name;
+ _descriptor.dbHome = clone.dbHome;
+ _descriptor.properties = clone.properties;
+ }
+
+ public boolean destroy()
+ {
+ return _parent == null ? false :
+ ((ListParent)_parent).destroyChild(this);
+ }
+
+ public boolean isEphemeral()
+ {
+ return _ephemeral;
+ }
+
DbEnv(String dbEnvName, DbEnvDescriptor descriptor,
Utils.Resolver resolver, Model model)
{
super(dbEnvName, model);
+ _ephemeral = false;
_descriptor = descriptor;
_resolver = resolver;
}
+ DbEnv(String dbEnvName, DbEnvDescriptor descriptor, Model model)
+ {
+ super(dbEnvName, model);
+ _ephemeral = true;
+ _descriptor = descriptor;
+ }
+
+ Utils.Resolver getResolver()
+ {
+ return _resolver;
+ }
+
+ boolean isEditable()
+ {
+ if(_parent == null)
+ {
+ return false;
+ }
+ else
+ {
+ return ((DbEnvs)_parent).isEditable();
+ }
+
+ }
+
private DbEnvDescriptor _descriptor;
private Utils.Resolver _resolver;
+ private final boolean _ephemeral;
+
+ static private DbEnvEditor _editor;
}
|