import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
+import java.util.Objects;
import javax.vecmath.Quat4d;
import javax.vecmath.Tuple3d;
PipeControlPoint pcp = getControlPoint();
// Second check is needed, when remove process is initiated from control point.
if (pcp != null && pcp.getPipelineComponent() != null) {
+ if (pcp.isSizeChange()) {
+ mergeWithAlternative();
+ }
+
pcp.remove();
}
+
setPipeRun(null);
super.remove();
}
+
+ private void mergeWithAlternative() {
+ PipeRun run = getPipeRun();
+ PipeRun alternative = getAlternativePipeRun();
+ if (alternative != null) {
+ // Move components from alternative pipe run to main run
+ PipelineComponent p = getNext();
+ while (p != null && p.getPipeRun() == alternative) {
+ if (p.getParent() == alternative) {
+ p.deattach(); // For components
+ run.addChild(p);
+ }
+ else {
+ p.setPipeRun(run); // For nozzles
+ }
+
+ p.updateParameters();
+ PipingRules.requestUpdate(p.getControlPoint());
+
+ p = p.getNext();
+ }
+
+ setAlternativePipeRun(run);
+
+ if (alternative.getChild().isEmpty())
+ alternative.remove();
+ }
+ }
public void removeAndSplit() {
PipeControlPoint pcp = getControlPoint();
* @param error
*/
public void setError(String error) {
- if (this.error == null) {
- if (error == null)
- return;
- } else if (this.error.equals(error))
+ if (Objects.equals(this.error, error))
return;
- this.error = error;
+ this.error = error;
firePropertyChanged("error");
}
}