From 1cd086672ff075a4bceffc2616c3f124177b85d7 Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Tue, 21 Aug 2012 14:33:54 +0000 Subject: [PATCH] Introduce path in TreeParent so that equals makes more sense git-svn-id: https://svn.argeo.org/commons/trunk@5525 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- .../java/org/argeo/eclipse/ui/TreeParent.java | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/base/runtime/org.argeo.eclipse.ui/src/main/java/org/argeo/eclipse/ui/TreeParent.java b/base/runtime/org.argeo.eclipse.ui/src/main/java/org/argeo/eclipse/ui/TreeParent.java index 26bdbe615..09f8b2b2b 100644 --- a/base/runtime/org.argeo.eclipse.ui/src/main/java/org/argeo/eclipse/ui/TreeParent.java +++ b/base/runtime/org.argeo.eclipse.ui/src/main/java/org/argeo/eclipse/ui/TreeParent.java @@ -25,6 +25,12 @@ public class TreeParent { private List children; + /** + * Unique id within the context of a tree display. If set, equals() and + * hashCode() methods will be based on it + */ + private String path = null; + /** False until at least one child has been added, then true until cleared */ private boolean loaded = false; @@ -105,6 +111,10 @@ public class TreeParent { public void setParent(TreeParent parent) { this.parent = parent; + if (parent != null && parent.path != null) + this.path = parent.path + '/' + name; + else + this.path = '/' + name; } public TreeParent getParent() { @@ -121,12 +131,18 @@ public class TreeParent { @Override public int hashCode() { - return name.hashCode(); + if (path != null) + return path.hashCode(); + else + return name.hashCode(); } @Override public boolean equals(Object obj) { - return name.equals(obj.toString()); + if (path != null && obj instanceof TreeParent) + return path.equals(((TreeParent) obj).path); + else + return name.equals(obj.toString()); } } -- 2.30.2