From 8e5d28aec9368c29acec858e9d748ed2ed5eb397 Mon Sep 17 00:00:00 2001 From: Andrew Branson Date: Tue, 9 Sep 2014 12:14:01 +0200 Subject: Support move to using UUIDs and ItemPaths as Item identifiers instead of ints. --- src/main/java/com/c2kernel/gui/tree/Node.java | 13 +++++---- .../java/com/c2kernel/gui/tree/NodeCollection.java | 31 +++++++++------------- .../java/com/c2kernel/gui/tree/NodeContext.java | 2 +- src/main/java/com/c2kernel/gui/tree/NodeItem.java | 6 ++--- .../com/c2kernel/gui/tree/NodeTransferHandler.java | 2 +- 5 files changed, 25 insertions(+), 29 deletions(-) (limited to 'src/main/java/com/c2kernel/gui/tree') diff --git a/src/main/java/com/c2kernel/gui/tree/Node.java b/src/main/java/com/c2kernel/gui/tree/Node.java index 62e9d19..eb4ebb2 100644 --- a/src/main/java/com/c2kernel/gui/tree/Node.java +++ b/src/main/java/com/c2kernel/gui/tree/Node.java @@ -13,9 +13,10 @@ import javax.swing.tree.DefaultMutableTreeNode; import com.c2kernel.common.ObjectNotFoundException; import com.c2kernel.gui.DynamicTreeBuilder; -import com.c2kernel.gui.ItemTabManager; import com.c2kernel.gui.ImageLoader; +import com.c2kernel.gui.ItemTabManager; import com.c2kernel.lookup.AgentPath; +import com.c2kernel.lookup.ItemPath; import com.c2kernel.lookup.Path; import com.c2kernel.process.Gateway; import com.c2kernel.utils.Language; @@ -26,7 +27,7 @@ public abstract class Node implements Runnable { protected Path binding; protected DefaultMutableTreeNode treeNode; protected String name; // domain key - protected int sysKey; // target item + protected ItemPath itemPath; // target item // attributes protected String type = ""; protected String toolTip = null; @@ -52,7 +53,9 @@ public abstract class Node implements Runnable { public Node(Path path, ItemTabManager desktop) { this.binding = path; this.desktop = desktop; - this.sysKey = path.getSysKey(); + try { + this.itemPath = path.getItemPath(); + } catch (ObjectNotFoundException e) { } // get the name of this node (last path element) String[] pathComponents = path.getPath(); if (pathComponents.length > 0) @@ -68,7 +71,7 @@ public abstract class Node implements Runnable { public Node newNode(Path path) { try { - if (path.getEntity() instanceof AgentPath) + if (path.getItemPath() instanceof AgentPath) return new NodeAgent(path, desktop); else return new NodeItem(path, desktop); @@ -184,7 +187,7 @@ public abstract class Node implements Runnable { // Getters and Setters - public int getSysKey() { return sysKey; } + public ItemPath getItemPath() { return itemPath; } // public void setSysKey( int sysKey ) { this.sysKey = sysKey; } public String getName() { return name; } diff --git a/src/main/java/com/c2kernel/gui/tree/NodeCollection.java b/src/main/java/com/c2kernel/gui/tree/NodeCollection.java index 3d624ee..7cd66b5 100644 --- a/src/main/java/com/c2kernel/gui/tree/NodeCollection.java +++ b/src/main/java/com/c2kernel/gui/tree/NodeCollection.java @@ -13,7 +13,6 @@ import com.c2kernel.entity.proxy.MemberSubscription; import com.c2kernel.entity.proxy.ProxyObserver; import com.c2kernel.gui.ItemTabManager; import com.c2kernel.gui.MainFrame; -import com.c2kernel.lookup.InvalidItemPathException; import com.c2kernel.lookup.ItemPath; import com.c2kernel.lookup.Path; import com.c2kernel.persistency.ClusterStorage; @@ -31,7 +30,7 @@ public class NodeCollection extends Node implements ProxyObserver currentPaths = new ArrayList(); // add any missing paths for (CollectionMember newMember : newMembers) { - if (!oldMembers.contains(newMember) && newMember.getSystemKey()>-1) - try - { - ItemPath itemPath = new ItemPath(newMember.getSystemKey()); - currentPaths.add(itemPath); - NodeItem newMemberNode = new NodeItem(itemPath, desktop); - newMemberNode.setCollection(contents, newMember.getID(), parent); - newMemberNode.setToolTip(getPropertyToolTip(newMember.getProperties())); - add(newMemberNode); - } - catch (InvalidItemPathException ex) - { - Logger.error("NodeCollection::loadChildren() " + ex.toString()); - } + ItemPath itemPath = newMember.getItemPath(); + if (!oldMembers.contains(newMember) && itemPath != null) { + currentPaths.add(itemPath); + NodeItem newMemberNode = new NodeItem(itemPath, desktop); + newMemberNode.setCollection(contents, newMember.getID(), parent); + newMemberNode.setToolTip(getPropertyToolTip(newMember.getProperties())); + add(newMemberNode); + } } // remove those no longer present for (Path childPath : childNodes.keySet()) { @@ -104,9 +97,9 @@ public class NodeCollection extends Node implements ProxyObserver - System key is "+this.sysKey); + this.itemPath = path.getItemPath(); + Logger.msg(2,"NodeEntity. - System key is "+this.itemPath); // Name should be the alias if present String alias = myItem.getName(); @@ -66,7 +66,7 @@ public class NodeItem extends Node implements Transferable { iconString = iconString.toLowerCase(); this.setIcon(iconString); } catch (ObjectNotFoundException e1) { - this.sysKey = -1; + this.itemPath = null; this.type="Error"; this.name="Entity not found"; this.setIcon("error"); diff --git a/src/main/java/com/c2kernel/gui/tree/NodeTransferHandler.java b/src/main/java/com/c2kernel/gui/tree/NodeTransferHandler.java index 3918b1c..56e61bd 100644 --- a/src/main/java/com/c2kernel/gui/tree/NodeTransferHandler.java +++ b/src/main/java/com/c2kernel/gui/tree/NodeTransferHandler.java @@ -44,7 +44,7 @@ public class NodeTransferHandler extends TransferHandler { NodeItem source; try { source = (NodeItem)support.getTransferable().getTransferData(NodeItem.dataFlavor); - return collNode.addMember(source.getSysKey()); + return collNode.addMember(source.getItemPath()); } catch (Exception e) { Logger.error(e); return false; -- cgit v1.2.3