private String libUri;
private double lengthFactor = 1.0;
+ private String lengthUnit = "m";
public AddComponentAction(InteractiveVtkComposite panel, P3DRootNode root, String libUri) {
super(panel);
this.lengthFactor = lengthFactor;
}
+ public void setLengthUnit(String lengthUnit) {
+ this.lengthUnit = lengthUnit;
+ }
+
public void setComponent(PipelineComponent component) {
this.component = component;
// Set list of already reserved component names
dialog.addUsedNames(ComponentUtils.getPipelineComponentNames(root));
dialog.setLengthFactor(lengthFactor);
+ dialog.setLengthUnit(lengthUnit);
if (dialog.open() == ComponentSelectionDialog.CANCEL)
return;
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();