X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.plant3d%2Fsrc%2Forg%2Fsimantics%2Fplant3d%2Fdialog%2FComponentSelectionDialog.java;h=e5e220af561866364d72a7b6427b8474e1598527;hb=b36ab2ee59b4a66cb6beb483fca3e7d1a5553608;hp=33d5882c2f45f57956a75be9b4b88158a96edce5;hpb=c92f0ce42986722e8b68444a7eb837a8bd882e1a;p=simantics%2F3d.git diff --git a/org.simantics.plant3d/src/org/simantics/plant3d/dialog/ComponentSelectionDialog.java b/org.simantics.plant3d/src/org/simantics/plant3d/dialog/ComponentSelectionDialog.java index 33d5882c..e5e220af 100644 --- a/org.simantics.plant3d/src/org/simantics/plant3d/dialog/ComponentSelectionDialog.java +++ b/org.simantics.plant3d/src/org/simantics/plant3d/dialog/ComponentSelectionDialog.java @@ -225,77 +225,81 @@ public class ComponentSelectionDialog extends Dialog implements ISelectionChange filterAllowed.clear(); Set filterAllowed = new HashSet(); boolean ok = true; - if (selected.isCode())// TODO : instead of disabling the button, we should filter the content. + if (selected == null) { ok = false; + } else if (selected.isCode()) {// TODO : instead of disabling the button, we should filter the content. + ok = false; + } else { + if (selected.isVariable()) { + if (selected.getType() == Type.INLINE) { + filterAllowed.add(PositionType.NEXT); + filterAllowed.add(PositionType.PREVIOUS); + if (inlineSplit) { + lengthText.setEnabled(false); + angleText.setEnabled(false); + ok = false; + + } else { + lengthText.setEnabled(true); + angleText.setEnabled(false); + if (length == null) + ok = false; + } + } else if (selected.getType() == Type.TURN) { + filterAllowed.add(PositionType.NEXT); + filterAllowed.add(PositionType.PREVIOUS); + lengthText.setEnabled(false); + angleText.setEnabled(true); + if (angle == null) + ok = false; + } else { + // this should not happen + lengthText.setEnabled(false); + angleText.setEnabled(false); + } + } else { + lengthText.setEnabled(false); + angleText.setEnabled(false); + } - if (selected.isVariable()) { - if (selected.getType() == Type.INLINE) { + if (selected.isSizeChange()) { filterAllowed.add(PositionType.NEXT); filterAllowed.add(PositionType.PREVIOUS); if (inlineSplit) { - lengthText.setEnabled(false); - angleText.setEnabled(false); + turnRadiusText.setEnabled(false); + diameterText.setEnabled(false); ok = false; - } else { - lengthText.setEnabled(true); - angleText.setEnabled(false); - if (length == null) + turnRadiusText.setEnabled(true); + diameterText.setEnabled(true); + if (diameter == null || turnRadius == null) ok = false; } - } else if (selected.getType() == Type.TURN) { - filterAllowed.add(PositionType.NEXT); - filterAllowed.add(PositionType.PREVIOUS); - lengthText.setEnabled(false); - angleText.setEnabled(true); - if (angle == null) - ok = false; + } else { - // this should not happen - lengthText.setEnabled(false); - angleText.setEnabled(false); - } - } else { - lengthText.setEnabled(false); - angleText.setEnabled(false); - } - if (selected.isSizeChange()) { - filterAllowed.add(PositionType.NEXT); - filterAllowed.add(PositionType.PREVIOUS); - if (inlineSplit) { turnRadiusText.setEnabled(false); diameterText.setEnabled(false); - ok = false; - } else { - turnRadiusText.setEnabled(true); - diameterText.setEnabled(true); - if (diameter == null || turnRadius == null) - ok = false; } - } else { - turnRadiusText.setEnabled(false); - diameterText.setEnabled(false); - } - if (!selected.isSizeChange() && !selected.isVariable()) { - switch (selected.getType()) { - case END: - filterAllowed.add(PositionType.NEXT); - filterAllowed.add(PositionType.PREVIOUS); - break; - case NOZZLE: - case EQUIPMENT: - break; - case INLINE: - filterAllowed.add(PositionType.NEXT); - filterAllowed.add(PositionType.PREVIOUS); - filterAllowed.add(PositionType.SPLIT); - case TURN: - filterAllowed.add(PositionType.NEXT); - filterAllowed.add(PositionType.PREVIOUS); + if (!selected.isSizeChange() && !selected.isVariable()) { + switch (selected.getType()) { + case END: + filterAllowed.add(PositionType.NEXT); + filterAllowed.add(PositionType.PREVIOUS); + break; + case NOZZLE: + case EQUIPMENT: + break; + case INLINE: + filterAllowed.add(PositionType.NEXT); + filterAllowed.add(PositionType.PREVIOUS); + filterAllowed.add(PositionType.SPLIT); + case TURN: + filterAllowed.add(PositionType.NEXT); + filterAllowed.add(PositionType.PREVIOUS); + } } } - for (PositionType t : filterAllowed) { if (allowed.contains(t)) this.filterAllowed.add(t);