import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
+import org.simantics.Simantics;
+import org.simantics.db.Session;
import org.simantics.db.exception.DatabaseException;
import org.simantics.plant3d.Activator;
import org.simantics.plant3d.ontology.Plant3D;
// Input for new PipeRun
private Double diameter;
+ private Double thickness;
private Double turnRadius;
private Text diameterText;
+ private Text thicknessText;
private Text turnRadiusText;
// Position selection
}
protected List<Item> getItems(Class<?> c, String libUri) throws DatabaseException {
+ Session session = Simantics.getSession();
if (InlineComponent.class.equals(c)) {
- return P3DUtil.getInlines(libUri);
+ return P3DUtil.getInlines(session, libUri);
} else if (TurnComponent.class.equals(c)) {
- return P3DUtil.getTurns(libUri);
+ return P3DUtil.getTurns(session, libUri);
} else if (EndComponent.class.equals(c)) {
- return P3DUtil.getEnds(libUri);
+ return P3DUtil.getEnds(session, libUri);
} else {
return null;
}
label.setText("Diameter");
diameterText = new Text(composite, SWT.SINGLE | SWT.BORDER);
label = new Label(composite, SWT.NONE);
- label.setText("Turn Radius");
+ label.setText("Wall thickness");
+ thicknessText = new Text(composite, SWT.SINGLE | SWT.BORDER);
+ label = new Label(composite, SWT.NONE);
+ label.setText("Turn radius");
turnRadiusText = new Text(composite, SWT.SINGLE | SWT.BORDER);
lengthText.setEnabled(false);
rotationAngleText.setEnabled(false);
turnRadiusText.setEnabled(false);
diameterText.setEnabled(false);
+ thicknessText.setEnabled(false);
nameText.addKeyListener(new KeyAdapter() {
@Override
validate();
}
});
+
+ thicknessText.addKeyListener(new KeyAdapter() {
+ @Override
+ public void keyReleased(KeyEvent e) {
+ try {
+ thickness = Double.parseDouble(thicknessText.getText()) / lengthFactor;
+ } catch (NumberFormatException err) {
+ thickness = null;
+ }
+ validate();
+ }
+ });
turnRadiusText.addKeyListener(new KeyAdapter() {
@Override
horizFillData.applyTo(angleText);
horizFillData.applyTo(rotationAngleText);
horizFillData.applyTo(diameterText);
+ horizFillData.applyTo(thicknessText);
horizFillData.applyTo(turnRadiusText);
if (!allowed.contains(PositionType.NEXT) && !allowed.contains(PositionType.PREVIOUS)) {
if (selected.isSizeChange()) {
turnRadiusText.setEnabled(true);
diameterText.setEnabled(true);
- if (diameter == null || turnRadius == null)
+ thicknessText.setEnabled(true);
+ if (diameter == null || turnRadius == null || thickness == null)
ok = false;
} else {
turnRadiusText.setEnabled(false);
return lenghtAdjustable;
}
+ public Double getThickness() {
+ return thickness;
+ }
+
}