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); } }