-/*******************************************************************************\r
- * Copyright (c) 2007, 2010 Association for Decentralized Information Management\r
- * in Industry THTH ry.\r
- * All rights reserved. This program and the accompanying materials\r
- * are made available under the terms of the Eclipse Public License v1.0\r
- * which accompanies this distribution, and is available at\r
- * http://www.eclipse.org/legal/epl-v10.html\r
- *\r
- * Contributors:\r
- * VTT Technical Research Centre of Finland - initial API and implementation\r
- *******************************************************************************/\r
-package org.simantics.scenegraph.ui;\r
-\r
-import java.lang.ref.WeakReference;\r
-\r
-import org.simantics.scenegraph.INode;\r
-\r
-/**\r
- * @author Tuukka Lehtonen\r
- */\r
-class NodeProxy {\r
-\r
- WeakReference<INode> ref;\r
- String id;\r
-\r
- NodeProxy(INode n) {\r
- this(n, null);\r
- }\r
-\r
- NodeProxy(INode n, String id) {\r
- this.ref = new WeakReference<INode>(n);\r
- this.id = id;\r
- }\r
-\r
- INode getNode() {\r
- return ref.get();\r
- }\r
-\r
- @Override\r
- public String toString() {\r
- StringBuilder sb = new StringBuilder();\r
- INode n = getNode();\r
- if (id != null) {\r
- sb.append("[");\r
- sb.append(id);\r
- sb.append("] ");\r
- }\r
- if (n == null) {\r
- sb.append("(collected)");\r
- } else {\r
- sb.append(n.getSimpleClassName());\r
- }\r
- return sb.toString();\r
- }\r
-\r
- public String getTypeName() {\r
- INode n = getNode();\r
- return n == null ? "-" : n.getSimpleClassName();\r
- }\r
-\r
- public String getInternalId() {\r
- INode n = getNode();\r
- if (n == null)\r
- return "-";\r
- return n.getId().toString();\r
- }\r
-\r
- public String getId() {\r
- return id;\r
- }\r
-\r
- @Override\r
- public int hashCode() {\r
- final int prime = 31;\r
- int result = 1;\r
- result = prime * result + ((id == null) ? 0 : id.hashCode());\r
- INode node = getNode();\r
- result = prime * result + ((node == null) ? 0 : node.hashCode());\r
- return result;\r
- }\r
-\r
- @Override\r
- public boolean equals(Object obj) {\r
- if (this == obj)\r
- return true;\r
- if (obj == null)\r
- return false;\r
- if (getClass() != obj.getClass())\r
- return false;\r
- NodeProxy other = (NodeProxy) obj;\r
- if (id == null) {\r
- if (other.id != null)\r
- return false;\r
- } else if (!id.equals(other.id))\r
- return false;\r
-\r
- INode node = getNode();\r
- INode otherNode = other.getNode();\r
- if (node == null || otherNode == null)\r
- // Collected nodes are never equal to any other node\r
- return false;\r
-\r
- return node.equals(otherNode);\r
- }\r
-\r
+/*******************************************************************************
+ * Copyright (c) 2007, 2010 Association for Decentralized Information Management
+ * in Industry THTH ry.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * VTT Technical Research Centre of Finland - initial API and implementation
+ *******************************************************************************/
+package org.simantics.scenegraph.ui;
+
+import java.lang.ref.WeakReference;
+
+import org.simantics.scenegraph.INode;
+
+/**
+ * @author Tuukka Lehtonen
+ */
+class NodeProxy {
+
+ WeakReference<INode> ref;
+ String id;
+
+ NodeProxy(INode n) {
+ this(n, null);
+ }
+
+ NodeProxy(INode n, String id) {
+ this.ref = new WeakReference<INode>(n);
+ this.id = id;
+ }
+
+ INode getNode() {
+ return ref.get();
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ INode n = getNode();
+ if (id != null) {
+ sb.append("[");
+ sb.append(id);
+ sb.append("] ");
+ }
+ if (n == null) {
+ sb.append("(collected)");
+ } else {
+ sb.append(n.getSimpleClassName());
+ }
+ return sb.toString();
+ }
+
+ public String getTypeName() {
+ INode n = getNode();
+ return n == null ? "-" : n.getSimpleClassName();
+ }
+
+ public String getInternalId() {
+ INode n = getNode();
+ if (n == null)
+ return "-";
+ return Long.toString(n.getId());
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((id == null) ? 0 : id.hashCode());
+ INode node = getNode();
+ result = prime * result + ((node == null) ? 0 : node.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ NodeProxy other = (NodeProxy) obj;
+ if (id == null) {
+ if (other.id != null)
+ return false;
+ } else if (!id.equals(other.id))
+ return false;
+
+ INode node = getNode();
+ INode otherNode = other.getNode();
+ if (node == null || otherNode == null)
+ // Collected nodes are never equal to any other node
+ return false;
+
+ return node.equals(otherNode);
+ }
+
}
\ No newline at end of file