X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.interop.update%2Fsrc%2Forg%2Fsimantics%2Finterop%2Fupdate%2Fmodel%2FUpdateNode.java;fp=org.simantics.interop.update%2Fsrc%2Forg%2Fsimantics%2Finterop%2Fupdate%2Fmodel%2FUpdateNode.java;h=f68f887dca33c98e925862c203dab27926ae5480;hb=88fcf43b9eb2e217b50bf67cee58edaef4637a59;hp=54d6b2ce670bc3f28d4e3fa75e73dc1adaf34522;hpb=b2bf3445afe9519017f07e41da3c6bc2bccedc6f;p=simantics%2Finterop.git diff --git a/org.simantics.interop.update/src/org/simantics/interop/update/model/UpdateNode.java b/org.simantics.interop.update/src/org/simantics/interop/update/model/UpdateNode.java index 54d6b2c..f68f887 100644 --- a/org.simantics.interop.update/src/org/simantics/interop/update/model/UpdateNode.java +++ b/org.simantics.interop.update/src/org/simantics/interop/update/model/UpdateNode.java @@ -1,7 +1,9 @@ package org.simantics.interop.update.model; import java.util.ArrayList; -import java.util.Collection; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; import org.eclipse.jface.resource.ImageDescriptor; import org.simantics.db.ReadGraph; @@ -20,7 +22,7 @@ public class UpdateNode { private boolean visible = true; - private Collection children = new ArrayList(); + private List children; /** * * @param resource old Resource if status is DELETED or EXISTS. @@ -69,11 +71,16 @@ public class UpdateNode { return status; } - public Collection getChildren() { + @SuppressWarnings("unchecked") + public List getChildren() { + if (children == null) + return Collections.EMPTY_LIST; return children; } public void addChild(UpdateNode node) { + if (children == null) + children = new ArrayList(2); children.add(node); node.parent = this; if (op != null && node.op != null) { @@ -83,6 +90,17 @@ public class UpdateNode { } } } + + public void sort() { + if (children == null) + return; + Collections.sort(this.children, new Comparator() { + @Override + public int compare(UpdateNode o1, UpdateNode o2) { + return o1.getLabel().compareTo(o2.getLabel()); + } + }); + } public ImageDescriptor getImage(ReadGraph graph) throws DatabaseException { return null; @@ -122,17 +140,19 @@ public class UpdateNode { if (parent != null && !parent.visible) parent.setVisible(true); } else { - for (UpdateNode n : children) - n.setVisible(false); + if (children != null) + for (UpdateNode n : children) + n.setVisible(false); } } public void setAllVisible(boolean visible) { - this.visible = visible; - if (op != null) - op.visible = visible; - for (UpdateNode n : children) - n.setAllVisible(visible); - } + this.visible = visible; + if (op != null) + op.visible = visible; + if (children != null) + for (UpdateNode n : children) + n.setAllVisible(visible); + } }