diff options
author | Bernard Normier <bernard@zeroc.com> | 2005-10-11 20:57:08 +0000 |
---|---|---|
committer | Bernard Normier <bernard@zeroc.com> | 2005-10-11 20:57:08 +0000 |
commit | 5539f6349dad109a6bdfd7d569bc00cf5415d661 (patch) | |
tree | aac387d9fe4cf411e1037a4b927487411eab71c7 /java/src/IceGrid/TreeNode/Nodes.java | |
parent | Ability to edit/delete/copy etc. nodes (diff) | |
download | ice-5539f6349dad109a6bdfd7d569bc00cf5415d661.tar.bz2 ice-5539f6349dad109a6bdfd7d569bc00cf5415d661.tar.xz ice-5539f6349dad109a6bdfd7d569bc00cf5415d661.zip |
Ability to edit/copy applications
Diffstat (limited to 'java/src/IceGrid/TreeNode/Nodes.java')
-rwxr-xr-x | java/src/IceGrid/TreeNode/Nodes.java | 56 |
1 files changed, 55 insertions, 1 deletions
diff --git a/java/src/IceGrid/TreeNode/Nodes.java b/java/src/IceGrid/TreeNode/Nodes.java index b8a13f325af..fb1f4b73a5e 100755 --- a/java/src/IceGrid/TreeNode/Nodes.java +++ b/java/src/IceGrid/TreeNode/Nodes.java @@ -24,6 +24,22 @@ import IceGrid.ServerState; public class Nodes extends EditableParent
{
+ static public java.util.HashMap
+ copyDescriptors(java.util.Map descriptors)
+ {
+ java.util.HashMap 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];
@@ -61,7 +77,7 @@ public class Nodes extends EditableParent new java.util.TreeMap(),
new java.util.LinkedList(),
new java.util.LinkedList(),
- "1.0"
+ ""
));
}
@@ -119,6 +135,44 @@ public class Nodes extends EditableParent }
}
+ //
+ // Try to rebuild all my children
+ // No-op if it fails
+ //
+ void rebuild() throws UpdateFailedException
+ {
+ 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;
+ }
+ }
+
+ //
+ // Success
+ //
+ p = editables.iterator();
+ while(p.hasNext())
+ {
+ Editable editable = (Editable)p.next();
+ editable.markModified();
+ }
+ }
+
java.util.LinkedList getUpdates()
{
java.util.LinkedList updates = new java.util.LinkedList();
|