X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.plant3d%2Fsrc%2Forg%2Fsimantics%2Fplant3d%2Fscenegraph%2FEquipment.java;h=a27e9c50c5bbd01ce359ab108450566541c0d7ac;hb=3d5276c8b4b0ec8f440994f17b20bec34e6cc3fe;hp=27a76067be46d08f8db412f5dc61f2ef2229f170;hpb=1c986f49dd51037e0a189df77a76abce890ae8ae;p=simantics%2F3d.git diff --git a/org.simantics.plant3d/src/org/simantics/plant3d/scenegraph/Equipment.java b/org.simantics.plant3d/src/org/simantics/plant3d/scenegraph/Equipment.java index 27a76067..a27e9c50 100644 --- a/org.simantics.plant3d/src/org/simantics/plant3d/scenegraph/Equipment.java +++ b/org.simantics.plant3d/src/org/simantics/plant3d/scenegraph/Equipment.java @@ -45,8 +45,12 @@ public class Equipment extends P3DParentGeometryNode { @RelatedElementsAdd(Plant3D.URIs.HasNozzle) public void addChild(Nozzle node) { + Collection children = getChild(); + if (numberOfFixedNozzles() > 0 && children.size() >= numberOfFixedNozzles()) + throw new RuntimeException("Equipment has already all fixed nozzles"); + Set ids = new HashSet(); - for (Nozzle n : getChild()) { + for (Nozzle n : children) { ids.add(n.getNozzleId()); } int newId = 0; @@ -80,6 +84,7 @@ public class Equipment extends P3DParentGeometryNode { @CompoundSetPropertyValue(value="parameters") public void setParameterMap(Map parameters) { super.setParameterMap(parameters); + syncNozzles(); } @Override @@ -105,7 +110,7 @@ public class Equipment extends P3DParentGeometryNode { public void syncNozzles() { if (fnp == null) return; - + updateParameters(); int count = fnp.numberOfNozzles(); List currentNozzles = getNodes(); for (int i = 0; i < count; i++) {