From 5e4034b5cba89460a62fa958fc78c2b85acb3d5f Mon Sep 17 00:00:00 2001 From: Andrew Branson Date: Tue, 7 Oct 2014 09:18:33 +0200 Subject: Repackage to org.cristalise --- .../java/org/cristalise/gui/tree/NodeContext.java | 66 ++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 src/main/java/org/cristalise/gui/tree/NodeContext.java (limited to 'src/main/java/org/cristalise/gui/tree/NodeContext.java') diff --git a/src/main/java/org/cristalise/gui/tree/NodeContext.java b/src/main/java/org/cristalise/gui/tree/NodeContext.java new file mode 100644 index 0000000..97252c7 --- /dev/null +++ b/src/main/java/org/cristalise/gui/tree/NodeContext.java @@ -0,0 +1,66 @@ +package org.cristalise.gui.tree; + +import java.util.Iterator; + +import org.cristalise.gui.ItemTabManager; +import org.cristalise.kernel.entity.proxy.DomainPathSubscriber; +import org.cristalise.kernel.lookup.DomainPath; +import org.cristalise.kernel.lookup.Path; +import org.cristalise.kernel.process.Gateway; +import org.cristalise.kernel.utils.Logger; + + + +public class NodeContext extends Node implements DomainPathSubscriber { + Iterator children; + + public NodeContext(Path path, ItemTabManager desktop) { + super(path, desktop); + this.itemPath = null; + createTreeNode(); + this.makeExpandable(); + this.type = "Cristal Context"; + } + + + @Override + public void loadChildren() { + if (children == null) { + Gateway.getProxyManager().subscribeTree(this, (DomainPath)binding); + children = Gateway.getLookup().getChildren(binding); + } + + int batch = 75; + while (children.hasNext() && batch > 0) { + Path newPath = children.next(); + if (newPath == null) break; + Logger.msg(2, "Subscription.run() - new node: " + newPath ); + add( newNode(newPath)); + batch--; + } + end(children.hasNext()); + } + + @Override + public void pathAdded(DomainPath path) { + add(newNode(path)); + } + + @Override + public void refresh() { + children = null; + super.refresh(); + } + @Override + public void pathRemoved(DomainPath path) { + remove(path); + } + +} + + + + + + + -- cgit v1.2.3