diff --git a/diylc/diylc-core/src/org/diylc/presenter/Presenter.java b/diylc/diylc-core/src/org/diylc/presenter/Presenter.java index 092700e4..2cccb1e2 100644 --- a/diylc/diylc-core/src/org/diylc/presenter/Presenter.java +++ b/diylc/diylc-core/src/org/diylc/presenter/Presenter.java @@ -1258,15 +1258,15 @@ public class Presenter implements IPlugInPort { } } -// for (int i = 0; i < controlPoints.length - 1; i++) { -// for (int j = i + 1; j < controlPoints.length; j++) { -// if (controlPoints[i] != null && controlPoints[j] != null && controlPoints[i].equals(controlPoints[j])) { -// // Control points collision detected, cannot make -// // this move. -// return null; -// } -// } -// } + for (int i = 0; i < controlPoints.length - 1; i++) { + for (int j = i + 1; j < controlPoints.length; j++) { + if (controlPoints[i] != null && controlPoints[j] != null && controlPoints[i].equals(controlPoints[j])) { + // Control points collision detected, cannot make + // this move. + return null; + } + } + } } // Update all points to new location. diff --git a/diylc/diylc-library/src/org/diylc/components/Abstract3LegSymbol.java b/diylc/diylc-library/src/org/diylc/components/Abstract3LegSymbol.java index 8e42539a..66ac9c7e 100644 --- a/diylc/diylc-library/src/org/diylc/components/Abstract3LegSymbol.java +++ b/diylc/diylc-library/src/org/diylc/components/Abstract3LegSymbol.java @@ -263,6 +263,11 @@ public abstract class Abstract3LegSymbol extends AbstractComponent { @Override public boolean canPointMoveFreely(int pointIndex) { return pointIndex == 3; + } + + @Override + public boolean canControlPointOverlap(int index) { + return index >= 3; } @EditableProperty diff --git a/diylc/diylc-library/src/org/diylc/components/AbstractLeadedComponent.java b/diylc/diylc-library/src/org/diylc/components/AbstractLeadedComponent.java index cd83e195..30f51840 100644 --- a/diylc/diylc-library/src/org/diylc/components/AbstractLeadedComponent.java +++ b/diylc/diylc-library/src/org/diylc/components/AbstractLeadedComponent.java @@ -536,6 +536,11 @@ public abstract class AbstractLeadedComponent extends AbstractTransparentComp public VisibilityPolicy getControlPointVisibilityPolicy(int index) { return getMoveLabel() || index < 2 ? VisibilityPolicy.ALWAYS : VisibilityPolicy.NEVER; } + + @Override + public boolean canControlPointOverlap(int index) { + return index >= 2; + } @Override public void setControlPoint(Point point, int index) { diff --git a/diylc/diylc-swing/library/main.jar b/diylc/diylc-swing/library/main.jar index 09d41c53..6cb1ec52 100644 Binary files a/diylc/diylc-swing/library/main.jar and b/diylc/diylc-swing/library/main.jar differ