]> gerrit.simantics Code Review - simantics/3d.git/blobdiff - org.simantics.plant3d/src/org/simantics/plant3d/scenegraph/Equipment.java
Preliminary example of creating pipes with elbow coordinates
[simantics/3d.git] / org.simantics.plant3d / src / org / simantics / plant3d / scenegraph / Equipment.java
index 27a76067be46d08f8db412f5dc61f2ef2229f170..a27e9c50c5bbd01ce359ab108450566541c0d7ac 100644 (file)
@@ -45,8 +45,12 @@ public class Equipment extends P3DParentGeometryNode<Nozzle> {
        
        @RelatedElementsAdd(Plant3D.URIs.HasNozzle)
        public void addChild(Nozzle node) {
+           Collection<Nozzle> children = getChild();
+           if (numberOfFixedNozzles() > 0 && children.size() >= numberOfFixedNozzles())
+               throw new RuntimeException("Equipment has already all fixed nozzles");
+           
                Set<Integer> ids = new HashSet<Integer>();
-               for (Nozzle n : getChild()) {
+               for (Nozzle n : children) {
                        ids.add(n.getNozzleId());
                }
                int newId = 0;
@@ -80,6 +84,7 @@ public class Equipment extends P3DParentGeometryNode<Nozzle> {
        @CompoundSetPropertyValue(value="parameters")
        public void setParameterMap(Map<String, Object> parameters) {
                super.setParameterMap(parameters);
+               syncNozzles();
        }
        
        @Override
@@ -105,7 +110,7 @@ public class Equipment extends P3DParentGeometryNode<Nozzle> {
        public void syncNozzles() {
            if (fnp == null)
                return;
-           
+           updateParameters();
         int count = fnp.numberOfNozzles();
         List<Nozzle> currentNozzles = getNodes();
         for (int i = 0; i < count; i++) {