X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.plant3d%2Fsrc%2Forg%2Fsimantics%2Fplant3d%2Fscenegraph%2FPipelineComponent.java;h=7726b203005611c05b89a739b634617018f79295;hb=ba83a8b8c95b94a035d20e458880beec68b9c450;hp=b052bae435d2a25d8061e29881717b007656f237;hpb=1ca09aa9bae3ea1e3382ceff0a2a09427f173286;p=simantics%2F3d.git diff --git a/org.simantics.plant3d/src/org/simantics/plant3d/scenegraph/PipelineComponent.java b/org.simantics.plant3d/src/org/simantics/plant3d/scenegraph/PipelineComponent.java index b052bae4..7726b203 100644 --- a/org.simantics.plant3d/src/org/simantics/plant3d/scenegraph/PipelineComponent.java +++ b/org.simantics.plant3d/src/org/simantics/plant3d/scenegraph/PipelineComponent.java @@ -129,6 +129,12 @@ public abstract class PipelineComponent extends GeometryNode { } setParameterMap(parameters); } + + public void setParameter(String name, Object value) { + Map parameters = new HashMap<>(getParameterMap()); + parameters.put(name, value); + setParameterMap(parameters); + } public abstract void setType(String typeURI) throws Exception; @@ -139,8 +145,10 @@ public abstract class PipelineComponent extends GeometryNode { @RelatedSetObj(Plant3D.URIs.HasNext) public void setNext(PipelineComponent comp) { - if (next == comp) + if (next == comp) { + syncNext(); return; + } if (this.next != null) this.next._removeRef(this); _setNext(comp); @@ -164,8 +172,10 @@ public abstract class PipelineComponent extends GeometryNode { @RelatedSetObj(Plant3D.URIs.HasPrevious) public void setPrevious(PipelineComponent comp) { - if (previous == comp) + if (previous == comp) { + syncPrevious(); return; + } if (this.previous != null) this.previous._removeRef(this); _setPrevious(comp); @@ -190,8 +200,10 @@ public abstract class PipelineComponent extends GeometryNode { @RelatedSetObj(Plant3D.URIs.HasBranch0) public void setBranch0(PipelineComponent comp) { - if (branch0 == comp) + if (branch0 == comp) { + syncBranch0(); return; + } if (this.branch0 != null) this.branch0._removeRef(this); this.branch0 = comp; @@ -299,7 +311,7 @@ public abstract class PipelineComponent extends GeometryNode { } boolean syncnext = false; - private void syncNext() { + protected void syncNext() { if (syncnext) return; syncnext = _syncNext(); @@ -338,7 +350,7 @@ public abstract class PipelineComponent extends GeometryNode { } boolean syncprev = false; - private void syncPrevious() { + protected void syncPrevious() { if (syncprev) return; syncprev = _syncPrevious(); @@ -375,7 +387,7 @@ public abstract class PipelineComponent extends GeometryNode { } boolean syncbr0 = false; - private void syncBranch0() { + protected void syncBranch0() { if (syncbr0) return; syncbr0 = _syncBranch0(); @@ -449,6 +461,7 @@ public abstract class PipelineComponent extends GeometryNode { if (pcp != null && pcp.getPipelineComponent() != null) { pcp.remove(); } + setPipeRun(null); super.remove(); } @@ -458,6 +471,7 @@ public abstract class PipelineComponent extends GeometryNode { if (pcp != null && pcp.getPipelineComponent() != null) { pcp.removeAndSplit(); } + setPipeRun(null); super.remove(); }