PositionType insertPosition = inst.insertPosition;
boolean lengthAdjustable = false;
if (newComponent instanceof InlineComponent) {
- lengthAdjustable = ((InlineComponent)newComponent).isVariableLength();
+ lengthAdjustable = ((InlineComponent)newComponent).isVariableLength() || ((InlineComponent)newComponent).isModifialble();
}
boolean insertAdjustable = false;
if (component instanceof InlineComponent) {
newComponent.setName(name);
pipeRun.addChild(newComponent);
- // TODO: these options are not stored into DB. Should they?!
- if (newComponent instanceof InlineComponent && ((InlineComponent)newComponent).isVariableLength()) {
- newPcp.setLength(inst.length);
- } else if (newComponent instanceof TurnComponent && ((TurnComponent)newComponent).isVariableAngle()) {
- newPcp.setTurnAngle(inst.angle);
+
+ if (newComponent instanceof InlineComponent) {
+ InlineComponent inlineComponent = (InlineComponent)newComponent;
+ if (inlineComponent.isVariableLength()|| inlineComponent.isModifialble()) {
+ newPcp.setLength(inst.length);
+ newComponent.setParameter("length", inst.length);
+ }
+ } else if (newComponent instanceof TurnComponent) {
+ TurnComponent turnComponent = (TurnComponent)newComponent;
+ if (turnComponent.isVariableAngle()) {
+ newPcp.setTurnAngle(inst.angle);
+ newComponent.setParameter("turnAngle", inst.angle);
+ }
}
newComponent.updateParameters();
requiresReverse = true;
}
PipeRun other = endCP.getPipeRun();
- boolean mergeRuns = other == null ? true : pipeRun.equalSpecs(other);
+ boolean mergeRuns = other == null ? true : pipeRun.canMerge(other);
if (requiresReverse) {
// Pipe line must be traversible with next/previous relations without direction change.
PipingRules.reverse(other);
}
+
if (mergeRuns) {
// Runs have compatible specs and must be merged
if (other != null && pipeRun != other)
- PipingRules.merge(pipeRun, other);
+ pipeRun.merge(other);
else if (other == null) {
if (!(endTo instanceof Nozzle)) {
pipeRun.addChild(endTo);