]> gerrit.simantics Code Review - simantics/3d.git/blobdiff - org.simantics.plant3d/src/org/simantics/plant3d/scenegraph/Nozzle.java
Processing DB changes could leave control points unsynchronized
[simantics/3d.git] / org.simantics.plant3d / src / org / simantics / plant3d / scenegraph / Nozzle.java
index 9c4ad6f6ce280d46df3ce31d0b1c383f31e39841..cbdecc1c09ea2250c4464c003220d3825e3097ea 100644 (file)
@@ -53,15 +53,31 @@ public class Nozzle extends PipelineComponent {
                firePropertyChanged(Plant3D.URIs.HasNozzleId);
        }
        
+       private boolean fixed = false;
+       
+       @RelatedGetValue(Plant3D.URIs.IsFixedNozzle)
+       @GetPropertyValue(name="Fixed", value=Plant3D.URIs.IsFixedNozzle, tabId="Default")
+       public boolean isFixed() {
+               return fixed;
+       }
+       
+       @RelatedSetValue(Plant3D.URIs.IsFixedNozzle)
+       public void setFixed(boolean fixed) {
+               if (fixed == this.fixed)
+                       return;
+               this.fixed = fixed;
+               firePropertyChanged(Plant3D.URIs.IsFixedNozzle);
+       }
+       
        private void _createCP() throws Exception{
                if (controlPoint != null)
                        return;
-               if (getPipeRun() != null) {
-                       controlPoint = ControlPointFactory.create(this);
-                       // TODO : these should not be needed.
-                       controlPoint.setDeletable(false);
-                       controlPoint.setFixed(true);
-               }
+               controlPoint = ControlPointFactory.create(this);
+               // TODO : these should not be needed.
+               controlPoint.setDeletable(false);
+               controlPoint.setFixed(true);
+               syncNext();
+        syncPrevious();
        }
        
        @RelatedSetObj(Plant3D.URIs.HasPipeRun)
@@ -118,7 +134,7 @@ public class Nozzle extends PipelineComponent {
                
                PipeRun pipeRun = getPipeRun();
                if (pipeRun != null) {
-                       map.put("length", pipeRun.getPipeDiameter() * 2.0);
+                       //map.put("length", pipeRun.getPipeDiameter() * 2.0);
                        map.put("radius", pipeRun.getPipeDiameter() * 0.5);
                }
                return map;