]> gerrit.simantics Code Review - simantics/3d.git/blobdiff - org.simantics.plant3d/src/org/simantics/plant3d/scenegraph/PipelineComponent.java
Tag user modifiable length
[simantics/3d.git] / org.simantics.plant3d / src / org / simantics / plant3d / scenegraph / PipelineComponent.java
index 735916db6df2b31a0bae9bf7c880ce29c4d95194..61e48585336fb7749ba30c021fd42f549f40a027 100644 (file)
@@ -78,9 +78,16 @@ public abstract class PipelineComponent extends GeometryNode {
                        return;
                this.alternativePipeRun = pipeRun;
                if (getControlPoint().isDualInline()) {
-                       PipeControlPoint sub = getControlPoint().getSubPoint().get(0);
-                       if (sub.getParent() != this.alternativePipeRun)
-                               this.alternativePipeRun.addChild(sub);
+                       PipeControlPoint sub = getControlPoint().getDualSub();
+                       if (sub.getParent() != this.alternativePipeRun) {
+                           if (this.alternativePipeRun != null) {
+                              this.alternativePipeRun.addChild(sub);
+                           } else if (sub.getPipeRun() != null) {
+                               // FIXME : how to handle child point without proper run?
+                               sub.getPipeRun().remChild(sub);
+                           }
+                       }
+                               
                }
                firePropertyChanged(Plant3D.URIs.HasAlternativePipeRun);
        }
@@ -122,6 +129,12 @@ public abstract class PipelineComponent extends GeometryNode {
         }
         setParameterMap(parameters);
     }
+    
+    public void setParameter(String name, Object value) {
+        Map<String, Object> parameters = new HashMap<>(getParameterMap());
+        parameters.put(name, value);
+        setParameterMap(parameters);
+    }
        
        public abstract void setType(String typeURI) throws Exception;
        
@@ -221,8 +234,8 @@ public abstract class PipelineComponent extends GeometryNode {
        
        private PipeControlPoint getBranchPoint() {
                PipeControlPoint branchPoint;
-               if (getControlPoint().getSubPoint().size() > 0) {
-                       branchPoint = getControlPoint().getSubPoint().get(0);
+               if (getControlPoint().getChildPoints().size() > 0) {
+                       branchPoint = getControlPoint().getChildPoints().get(0);
                } else {
                        if (branch0.getPipeRun() == null)
                                return null;
@@ -243,27 +256,27 @@ public abstract class PipelineComponent extends GeometryNode {
                if (pcp.getNext() != nextPCP) {
                        pcp.setNext(nextPCP);
                }
-               if (pcp.isDualInline()) {
-                       PipeControlPoint sub = pcp.getSubPoint().get(0);
-                       if (sub.getNext() != nextPCP)
-                               sub.setNext(nextPCP);
-               }
+//             if (pcp.isDualInline()) {
+//                     PipeControlPoint sub = pcp.getChildPoints().get(0);
+//                     if (sub.getNext() != nextPCP)
+//                             sub.setNext(nextPCP);
+//             }
                return true;
        }
        
        private boolean  _connectPrev(PipeControlPoint pcp, PipeControlPoint prevPCP) {
                if (prevPCP == null)
                        return false;
-               if (prevPCP.isDualInline())
-                       prevPCP = prevPCP.getSubPoint().get(0);
+//             if (prevPCP.isDualInline())
+//                     prevPCP = prevPCP.getChildPoints().get(0);
                if (pcp.getPrevious() != prevPCP) {
                        pcp.setPrevious(prevPCP);
                }
-               if (pcp.isDualInline()) {
-                       PipeControlPoint sub = pcp.getSubPoint().get(0);
-                       if (sub.getPrevious() != prevPCP)
-                               sub.setPrevious(prevPCP);
-               }
+//             if (pcp.isDualInline()) {
+//                     PipeControlPoint sub = pcp.getChildPoints().get(0);
+//                     if (sub.getPrevious() != prevPCP)
+//                             sub.setPrevious(prevPCP);
+//             }
                return true;
        }
        
@@ -401,7 +414,7 @@ public abstract class PipelineComponent extends GeometryNode {
                                        return false;
                                }
                                
-                       } else if (getControlPoint().getSubPoint().size() > 0) { // TODO : this may cause problems? (Removes branch point, before branch has been set?)
+                       } else if (getControlPoint().getChildPoints().size() > 0) { // TODO : this may cause problems? (Removes branch point, before branch has been set?)
                                //getControlPoint().getSubPoint().get(0).remove();
                                //getControlPoint().children.clear();
                                return true;
@@ -428,7 +441,7 @@ public abstract class PipelineComponent extends GeometryNode {
        }
        
        public Map<String,Object> updateParameterMap() {
-               return Collections.EMPTY_MAP;
+               return Collections.emptyMap();
        }
        
        public abstract String getType();