diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/components/AbstractCurvedComponent.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/components/AbstractCurvedComponent.java index bddb47e1..18bf8a5c 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/components/AbstractCurvedComponent.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/components/AbstractCurvedComponent.java @@ -102,6 +102,9 @@ public abstract class AbstractCurvedComponent extends AbstractTransparentComp @EditableProperty(name = "Point Count") public PointCount getPointCount() { + if (pointCount == null) { + pointCount = PointCount.FOUR; + } return pointCount; } @@ -115,7 +118,7 @@ public abstract class AbstractCurvedComponent extends AbstractTransparentComp @Override public int getControlPointCount() { - switch (pointCount) { + switch (getPointCount()) { case TWO: return 2; case THREE: @@ -139,7 +142,7 @@ public abstract class AbstractCurvedComponent extends AbstractTransparentComp @Override public boolean canControlPointOverlap(int index) { // Only shape control points may overlap. - switch (pointCount) { + switch (getPointCount()) { case TWO: return false; case THREE: @@ -155,7 +158,7 @@ public abstract class AbstractCurvedComponent extends AbstractTransparentComp if (index == 0) { return controlPoints[0]; } - switch (pointCount) { + switch (getPointCount()) { case TWO: switch (index) { case 1: @@ -186,7 +189,7 @@ public abstract class AbstractCurvedComponent extends AbstractTransparentComp if (index == 0) { controlPoints[0].setLocation(point); } else { - switch (pointCount) { + switch (getPointCount()) { case TWO: switch (index) { case 1: diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/components/AbstractLeadedComponent.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/components/AbstractLeadedComponent.java index b7440a64..f6f20b71 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/components/AbstractLeadedComponent.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/components/AbstractLeadedComponent.java @@ -66,9 +66,6 @@ public abstract class AbstractLeadedComponent extends AbstractTransparentComp Shape shape = getBodyShape(); // If there's no body, just draw the line connecting the ending points. if (shape == null) { - if (checkPointsClipped(g2d.getClip())) { - return; - } drawLead(g2d, componentState); } else if (supportsStandingMode() && length.convertToPixels() > points[0].distance(points[1])) { diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/DrawingManager.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/DrawingManager.java index 8cfc3c6d..eeb482cb 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/DrawingManager.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/DrawingManager.java @@ -47,7 +47,7 @@ public class DrawingManager { public static final String ZOOM_KEY = "zoom"; public static final String THEME_KEY = "theme"; - public static boolean DEBUG_COMPONENT_AREAS = false; + public static String DEBUG_COMPONENT_AREAS = "org.diylc.debugComponentAreas"; public static Color GRID_COLOR = new Color(240, 240, 240); public static Color CONTROL_POINT_COLOR = Color.black; @@ -70,11 +70,16 @@ public class DrawingManager { private MessageDispatcher messageDispatcher; + private boolean debugComponentAreas; + public DrawingManager(MessageDispatcher messageDispatcher) { super(); this.messageDispatcher = messageDispatcher; componentAreaMap = new HashMap, Area>(); lastDrawnStateMap = new HashMap, ComponentState>(); + String debugComponentAreasStr = System.getProperty(DEBUG_COMPONENT_AREAS); + debugComponentAreas = debugComponentAreasStr != null + && debugComponentAreasStr.equalsIgnoreCase("true"); Theme theme = (Theme) ConfigurationManager.getInstance().readObject(THEME_KEY, null); if (theme != null) { this.theme = theme; @@ -221,7 +226,7 @@ public class DrawingManager { failedComponents.add(component); } Area area = g2dWrapper.finishedDrawingComponent(); - if (trackArea) { + if (trackArea && area != null && !area.isEmpty()) { componentAreaMap.put(component, area); lastDrawnStateMap.put(component, state); } @@ -319,7 +324,7 @@ public class DrawingManager { } // Draw component area for test - if (DEBUG_COMPONENT_AREAS) { + if (debugComponentAreas) { g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1)); g2d.setColor(Color.red); for (Area area : componentAreaMap.values()) {