]> gerrit.simantics Code Review - simantics/3d.git/blobdiff - org.simantics.g3d/src/org/simantics/g3d/scenegraph/structural/StructuralParentNode.java
Remove listener calls when property values not updated.
[simantics/3d.git] / org.simantics.g3d / src / org / simantics / g3d / scenegraph / structural / StructuralParentNode.java
index d5e41a5cf482c5d7ec55544bccde135882d2b4eb..032ba98169981d6673c9ac6b50c1ae5e394ced85 100644 (file)
@@ -1,3 +1,14 @@
+/*******************************************************************************\r
+ * Copyright (c) 2012, 2013 Association for Decentralized Information Management in\r
+ * 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.g3d.scenegraph.structural;\r
 \r
 import java.util.ArrayList;\r
@@ -27,7 +38,7 @@ public abstract class StructuralParentNode<T extends IStructuralNode> extends Pa
        @RelatedSetValue(Layer0.URIs.HasName)\r
        @SetPropertyValue(Layer0.URIs.HasName)\r
        public void setName(String name) {\r
-               if (name == null)\r
+               if (name == null || name.equals(this.name))\r
                        return;\r
                this.name = name;\r
                firePropertyChanged(Layer0.URIs.HasName);\r
@@ -69,12 +80,12 @@ public abstract class StructuralParentNode<T extends IStructuralNode> extends Pa
                ctx = object;\r
        }\r
        \r
-    private List<IStructuralNode> publisher = new ArrayList<IStructuralNode>(1);\r
+       private List<IStructuralNode> publisher = new ArrayList<IStructuralNode>(1);\r
        \r
        @Override\r
        public void addPublishedBy(IStructuralNode node) {\r
-               publisher.add(node);\r
-               firePropertyChanged(G3D.URIs.publishes);\r
+               if (publisher.add(node))\r
+                       firePropertyChanged(G3D.URIs.publishes);\r
        }\r
        \r
        @Override\r