summaryrefslogtreecommitdiff
path: root/java/src/IceGrid/TreeNode/Parent.java
diff options
context:
space:
mode:
authorBernard Normier <bernard@zeroc.com>2005-09-21 22:19:49 +0000
committerBernard Normier <bernard@zeroc.com>2005-09-21 22:19:49 +0000
commitbc07c89bbe7fd2783da0eba80b338c4d259265f8 (patch)
treecdc8e5392ed4f8204ebd92762289366be8099d13 /java/src/IceGrid/TreeNode/Parent.java
parentRemoved unecessary compiler fix (diff)
downloadice-bc07c89bbe7fd2783da0eba80b338c4d259265f8.tar.bz2
ice-bc07c89bbe7fd2783da0eba80b338c4d259265f8.tar.xz
ice-bc07c89bbe7fd2783da0eba80b338c4d259265f8.zip
Added service instance + ability to sort services
Diffstat (limited to 'java/src/IceGrid/TreeNode/Parent.java')
-rwxr-xr-xjava/src/IceGrid/TreeNode/Parent.java116
1 files changed, 90 insertions, 26 deletions
diff --git a/java/src/IceGrid/TreeNode/Parent.java b/java/src/IceGrid/TreeNode/Parent.java
index 717ea75f047..aae8fe13399 100755
--- a/java/src/IceGrid/TreeNode/Parent.java
+++ b/java/src/IceGrid/TreeNode/Parent.java
@@ -43,8 +43,11 @@ class Parent extends CommonBaseI
public void setSelectedItem(Object obj)
{
- _selectedItem = obj;
- fireContentsChanged(this, -1, -1);
+ if(obj != _selectedItem)
+ {
+ _selectedItem = obj;
+ fireContentsChanged(this, -1, -1);
+ }
}
private Object _selectedItem;
@@ -154,44 +157,99 @@ class Parent extends CommonBaseI
void addChild(CommonBase child, boolean fireEvent)
throws DuplicateIdException
{
- //
- // Sorted insert
- //
-
- String id = child.getId();
- int i = 0;
- java.util.Iterator p = _children.iterator();
-
- while(p.hasNext())
+ if(_sortChildren)
{
- CommonBase existingChild = (CommonBase)p.next();
- int cmp = id.compareTo(existingChild.getId());
-
- if(cmp == 0)
+ //
+ // Sorted insert
+ //
+ String id = child.getId();
+ int i = 0;
+ java.util.Iterator p = _children.iterator();
+
+ while(p.hasNext())
+ {
+ CommonBase existingChild = (CommonBase)p.next();
+ int cmp = id.compareTo(existingChild.getId());
+
+ if(cmp == 0)
+ {
+ throw new DuplicateIdException(this, id);
+ }
+ if(cmp < 0)
+ {
+ break; // while
+ }
+ i++;
+ }
+
+ if(i < _children.size())
{
- throw new DuplicateIdException(this, id);
+ _children.add(i, child);
}
- if(cmp < 0)
+ else
+ {
+ _children.add(child);
+ }
+ if(fireEvent)
{
- break; // while
+ fireNodeInsertedEvent(this, child, i);
}
- i++;
- }
-
- if(i < _children.size())
- {
- _children.add(i, child);
}
else
{
+ //
+ // Unsorted insert
+ //
+ String id = child.getId();
+ java.util.Iterator p = _children.iterator();
+ while(p.hasNext())
+ {
+ CommonBase existingChild = (CommonBase)p.next();
+ if(id.equals(existingChild.getId()))
+ {
+ throw new DuplicateIdException(this, id);
+ }
+ }
+
_children.add(child);
- }
+ if(fireEvent)
+ {
+ fireNodeInsertedEvent(this, child, _children.size() - 1);
+ }
+ }
+ }
+
+ void moveChild(int index, boolean up, boolean fireEvent)
+ {
+ assert !_sortChildren;
+
+ Object child = _children.remove(index);
+ assert child != null;
+
if(fireEvent)
{
- fireNodeInsertedEvent(this, child, i);
+ fireNodeRemovedEvent(this, child, index);
+ }
+
+ if(up)
+ {
+ _children.add(index - 1, child);
+ if(fireEvent)
+ {
+ fireNodeInsertedEvent(this, child, index - 1);
+ }
+ }
+ else
+ {
+ _children.add(index + 1, child);
+ if(fireEvent)
+ {
+ fireNodeInsertedEvent(this, child, index + 1);
+ }
}
}
+
void removeChild(CommonBase child)
{
if(_children.remove(child))
@@ -514,7 +572,13 @@ class Parent extends CommonBaseI
_children = (java.util.LinkedList)o._children.clone();
}
}
+
+ protected void sortChildren(boolean val)
+ {
+ _sortChildren = val;
+ }
protected java.util.LinkedList _children = new java.util.LinkedList();
private ChildComparator _childComparator = new ChildComparator();
+ private boolean _sortChildren = true;
}