allowed.add(PositionType.NEXT);
}
} else {
- if (component.getNext() == null) {
+ if (component.getNext() == null || component.getControlPoint().isVariableLength()) {
allowed.add(PositionType.NEXT);
}
- if (component.getPrevious() == null) {
+ if (component.getPrevious() == null || component.getControlPoint().isVariableLength()) {
allowed.add(PositionType.PREVIOUS);
}
- if (component instanceof InlineComponent && !component.getControlPoint().isFixedLength()){
+ if (component instanceof InlineComponent && component.getControlPoint().isVariableLength()){
allowed.add(PositionType.SPLIT);
}
}
private Double angle;
private Double rotationAngle;
private Double diameter;
+ private Double thickness;
private Double turnRadius;
@Override
this.angle = dialog.getAngle();
this.rotationAngle = dialog.getRotationAngle();
this.diameter = dialog.getDiameter();
+ this.thickness = dialog.getThickness();
this.turnRadius = dialog.getTurnRadius();
allowed = dialog.filterAllowed();
gizmo.setComponent(component, allowed);
inst.name = name;
inst.angle = angle != null ? MathTools.degToRad(angle) : null;
inst.diameter = diameter;
+ inst.thickness = thickness;
inst.length = length;
inst.turnRadius = turnRadius;
inst.insertPosition = insertPosition;
inst.rotationAngle = rotationAngle;
inst.position = position;
- ComponentUtils.addComponent(root, component, inst);
+ PipelineComponent newComponent = ComponentUtils.addComponent(root, component, inst);
+ componentAdded(newComponent);
} catch (Exception e) {
ExceptionUtils.logAndShowError("Cannot add component", e);
}
}
+ /**
+ * This method does nothing, but can be overridden by a subclass to do additional
+ * post-processing for a newly added component.
+ *
+ * @param newComponent A newly added pipeline component
+ */
+ protected void componentAdded(PipelineComponent newComponent) {
+ // Nothing to do here
+ }
+
public boolean mouseClicked(MouseEvent e) {
if (e.getClickCount() == 1 && e.getButton() == MouseEvent.BUTTON1) {
int type = panel.getPickType();