]> gerrit.simantics Code Review - simantics/3d.git/blobdiff - org.simantics.plant3d/src/org/simantics/plant3d/scenegraph/P3DParentNode.java
Remove listener calls when property values not updated.
[simantics/3d.git] / org.simantics.plant3d / src / org / simantics / plant3d / scenegraph / P3DParentNode.java
index 2be491834d086e48ca23097bae41cf96c059dda7..d7f6749e53fcb4dacbdd1dc50da03a0f47b40125 100644 (file)
@@ -1,6 +1,7 @@
 package org.simantics.plant3d.scenegraph;
 
 import java.util.HashSet;
+import java.util.Objects;
 import java.util.Set;
 
 import javax.vecmath.Quat4d;
@@ -35,7 +36,7 @@ public abstract class P3DParentNode<T extends IP3DNode> extends ParentNode<T> im
        @RelatedSetValue(Layer0.URIs.HasName)
        @SetPropertyValue(Layer0.URIs.HasName)
        public void setName(String name) {
-               if (name == null)
+               if (name == null || name.equals(this.name))
                        return;
                this.name = name;
                firePropertyChanged(Layer0.URIs.HasName);
@@ -80,6 +81,9 @@ public abstract class P3DParentNode<T extends IP3DNode> extends ParentNode<T> im
        @SetPropertyValue(G3D.URIs.hasOrientation)
        public void setOrientation(Quat4d orientation) {
                assert(orientation != null);
+               if (Objects.equals(this.orientation, orientation))
+                       return;
+               
                this.orientation = orientation;
                
                firePropertyChanged(G3D.URIs.hasOrientation);
@@ -89,6 +93,9 @@ public abstract class P3DParentNode<T extends IP3DNode> extends ParentNode<T> im
        @SetPropertyValue(G3D.URIs.hasPosition)
        public void setPosition(Vector3d position) {
                assert(position != null);
+               if (Objects.equals(this.position, position))
+                       return;
+               
                this.position = position;
                
                firePropertyChanged(G3D.URIs.hasPosition);