diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/library/main.jar b/ diy-layout-creator --username bancika@gmail.com/DIYLC/library/main.jar index d035c3c6..8fc20d2c 100644 Binary files a/ diy-layout-creator --username bancika@gmail.com/DIYLC/library/main.jar and b/ diy-layout-creator --username bancika@gmail.com/DIYLC/library/main.jar differ diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/Presenter.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/Presenter.java index bc0eb03c..2dc798b7 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/Presenter.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/Presenter.java @@ -39,7 +39,6 @@ import org.diylc.common.IComponentFiler; import org.diylc.common.IPlugIn; import org.diylc.common.IPlugInPort; import org.diylc.common.PropertyWrapper; -import org.diylc.core.CreationMethod; import org.diylc.core.IDIYComponent; import org.diylc.core.Project; import org.diylc.core.measures.SizeUnit; @@ -425,9 +424,7 @@ public class Presenter implements IPlugInPort { public void mouseMoved(Point point, boolean ctrlDown, boolean shiftDown, boolean altDown) { Map, Set> components = new HashMap, Set>(); Point scaledPoint = scalePoint(point); - if (componentSlot != null - && (componentSlot.getCreationMethod() == CreationMethod.POINT_BY_POINT || !componentSlot - .isStretchable())) { + if (componentSlot != null) { potentialControlPoint = scaledPoint; snapPointToGrid(potentialControlPoint); messageDispatcher.dispatchMessage(EventType.REPAINT); @@ -586,12 +583,14 @@ public class Presenter implements IPlugInPort { } for (Integer j : entry.getValue()) { Point firstPoint = component.getControlPoint(i); - Point secondPoint = entry.getKey().getControlPoint(j); - // If they are close enough we can consider them - // matched. - if (firstPoint.distance(secondPoint) < ProjectPainter.CONTROL_POINT_SIZE) { - componentMatches = true; - break; + if (entry.getKey().isControlPointSticky(j)) { + Point secondPoint = entry.getKey().getControlPoint(j); + // If they are close enough we can consider them + // matched. + if (firstPoint.distance(secondPoint) < ProjectPainter.CONTROL_POINT_SIZE) { + componentMatches = true; + break; + } } } } @@ -1149,16 +1148,4 @@ public class Presenter implements IPlugInPort { return point == null ? null : new Point((int) (point.x / zoomLevel), (int) (point.y / zoomLevel)); } - - /** - * @param component - * @return true if control points should be rendered for the specified - * component. - */ - private boolean shouldShowControlPointsFor(IDIYComponent component) { - if (findAllGroupedComponents(component).size() > 1) { - return false; - } - return true; - } } diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/boards/AbstractBoard.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/boards/AbstractBoard.java index 51706ef5..43631b6c 100644 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/boards/AbstractBoard.java +++ b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/boards/AbstractBoard.java @@ -26,9 +26,8 @@ public abstract class AbstractBoard extends AbstractTransparentComponent public static Size DEFAULT_HEIGHT = new Size(1d, SizeUnit.in); protected String value; - protected Point[] controlPoints = new Point[] { - new Point(-DEFAULT_WIDTH.convertToPixels() / 2, -DEFAULT_HEIGHT.convertToPixels() / 2), - new Point(DEFAULT_WIDTH.convertToPixels() / 2, DEFAULT_HEIGHT.convertToPixels() / 2) }; + protected Point[] controlPoints = new Point[] { new Point(0, 0), + new Point(DEFAULT_WIDTH.convertToPixels(), DEFAULT_HEIGHT.convertToPixels()) }; protected Color boardColor = BOARD_COLOR; protected Color borderColor = BORDER_COLOR;