From e866762b054b64c7e20dd6a9ae69a7cbe48e351e Mon Sep 17 00:00:00 2001 From: bancika Date: Mon, 17 Jan 2011 20:24:29 +0000 Subject: [PATCH] always show control point when creating new component changed board alignment fixed sticking to non-stickable points --- .../DIYLC/library/main.jar | Bin 521321 -> 521312 bytes .../src/org/diylc/presenter/Presenter.java | 31 +++++------------- .../components/boards/AbstractBoard.java | 5 ++- 3 files changed, 11 insertions(+), 25 deletions(-) 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 d035c3c6301632e8ec659f451b0de915cfca8b94..8fc20d2c808ea5de453282c448aad73e93464de8 100644 GIT binary patch delta 2988 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 bEHhsn3S?gaR3VSSV=I6J=iCUu#>VzH+`^sB 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;