diff --git a/diylc/diylc-core/src/org/diylc/common/PCBLayer.java b/diylc/diylc-core/src/org/diylc/common/PCBLayer.java index c5e97460..4b8ffcad 100644 --- a/diylc/diylc-core/src/org/diylc/common/PCBLayer.java +++ b/diylc/diylc-core/src/org/diylc/common/PCBLayer.java @@ -27,9 +27,5 @@ public enum PCBLayer { public String toString() { return name().substring(1); - }; - - public int getId() { - return Integer.parseInt(toString()); - } + }; } diff --git a/diylc/diylc-core/src/org/diylc/core/IDrawingObserver.java b/diylc/diylc-core/src/org/diylc/core/IDrawingObserver.java index 88541a3e..c7e69562 100644 --- a/diylc/diylc-core/src/org/diylc/core/IDrawingObserver.java +++ b/diylc/diylc-core/src/org/diylc/core/IDrawingObserver.java @@ -42,10 +42,9 @@ public interface IDrawingObserver { /** * Notifies the observer that it should start tracking conductive continuity areas. * - * @param layerId id of the layer * @param positive designates if the area should be additive or subtractive */ - void startTrackingContinuityArea(int layerId, boolean positive); + void startTrackingContinuityArea(boolean positive); /** * Notifies the observer that it should stop tracking conductive continuity areas. diff --git a/diylc/diylc-core/src/org/diylc/presenter/ComponentArea.java b/diylc/diylc-core/src/org/diylc/presenter/ComponentArea.java index 85e598a1..c6140807 100644 --- a/diylc/diylc-core/src/org/diylc/presenter/ComponentArea.java +++ b/diylc/diylc-core/src/org/diylc/presenter/ComponentArea.java @@ -32,17 +32,15 @@ public class ComponentArea implements Serializable { private Area outlineArea; private Collection continuityPositiveAreas; private Collection continuityNegativeAreas; - private int layerId; public ComponentArea() { } - public ComponentArea(Area outlineArea, Collection continuityPositiveAreas, Collection continuityNegativeAreas, int layerId) { + public ComponentArea(Area outlineArea, Collection continuityPositiveAreas, Collection continuityNegativeAreas) { super(); this.outlineArea = outlineArea; this.continuityPositiveAreas = continuityPositiveAreas; this.continuityNegativeAreas = continuityNegativeAreas; - this.layerId = layerId; } public Area getOutlineArea() { @@ -56,8 +54,4 @@ public class ComponentArea implements Serializable { public Collection getContinuityNegativeAreas() { return continuityNegativeAreas; } - - public int getLayerId() { - return layerId; - } } diff --git a/diylc/diylc-core/src/org/diylc/presenter/DrawingCache.java b/diylc/diylc-core/src/org/diylc/presenter/DrawingCache.java index ff4c759d..357d8cf2 100644 --- a/diylc/diylc-core/src/org/diylc/presenter/DrawingCache.java +++ b/diylc/diylc-core/src/org/diylc/presenter/DrawingCache.java @@ -134,7 +134,7 @@ public class DrawingCache { stats.getSecond().add(componentEnd - componentStart); // copy over tracking area from the cache, regardless if we rendered or not - g2d.merge(value.getCurrentArea(), value.getContinuityPositiveAreas(), value.getContinuityNegativeAreas(), value.getLayerId()); + g2d.merge(value.getCurrentArea(), value.getContinuityPositiveAreas(), value.getContinuityNegativeAreas()); } else { // no caching, just draw as usual component.draw(g2d, componentState, outlineMode, project, g2d); @@ -264,7 +264,7 @@ public class DrawingCache { // add to the cache value = new CacheValue(component, image, wrapper.getCurrentArea(), wrapper.getContinuityPositiveAreas(), - wrapper.getContinuityNegativeAreas(), wrapper.getLayerId(), componentState, outlineMode, zoom, dx, dy, rect); + wrapper.getContinuityNegativeAreas(), componentState, outlineMode, zoom, dx, dy, rect); imageCache.put(component, new SoftReference(value)); } @@ -283,13 +283,11 @@ public class DrawingCache { int dx; int dy; Rectangle2D cacheBounds; - int layerId; public CacheValue(IDIYComponent component, BufferedImage image, Area currentArea, - Map continuityPositiveAreas, Map continuityNegativeAreas, int layerId, + Map continuityPositiveAreas, Map continuityNegativeAreas, ComponentState state, boolean outlineMode, double zoom, int dx, int dy, Rectangle2D cacheBounds) { super(); - this.layerId = layerId; this.cacheBounds = cacheBounds; // take a copy of the component, so we can check if it changed in the meantime try { @@ -326,10 +324,6 @@ public class DrawingCache { public Map getContinuityNegativeAreas() { return continuityNegativeAreas; } - - public int getLayerId() { - return layerId; - } public ComponentState getState() { return state; diff --git a/diylc/diylc-core/src/org/diylc/presenter/DrawingManager.java b/diylc/diylc-core/src/org/diylc/presenter/DrawingManager.java index 7a3910e8..55c08180 100644 --- a/diylc/diylc-core/src/org/diylc/presenter/DrawingManager.java +++ b/diylc/diylc-core/src/org/diylc/presenter/DrawingManager.java @@ -684,22 +684,23 @@ public class DrawingManager { messageDispatcher.dispatchMessage(EventType.REPAINT); } - public void findContinuityAreaAtPoint(Point2D p) { + public void findContinuityAreaAtPoint(Project project, Point2D p) { if (continuityGraphCache == null) - continuityGraphCache = getContinuityGraph(); + continuityGraphCache = getContinuityGraph(project); currentContinuityAreas = continuityGraphCache.findAreasFor(p); } - public List getContinuityAreas() { + public List getContinuityAreas(Project project) { // Find all individual continuity areas for all components List preliminaryAreas = new ArrayList(); List checkBreakout = new ArrayList(); - for (ComponentArea a : this.componentAreaMap.values()) { + for (IDIYComponent c : project.getComponents()) { + ComponentArea a = getComponentArea(c); + if (a == null || a.getOutlineArea() == null) continue; - Collection positiveAreas = a.getContinuityPositiveAreas(); if (positiveAreas != null) for (Area a1 : positiveAreas) { @@ -732,9 +733,9 @@ public class DrawingManager { return areas; } - public ContinuityGraph getContinuityGraph() { + public ContinuityGraph getContinuityGraph(Project project) { Set connections = new HashSet(); - for (IDIYComponent c : this.componentAreaMap.keySet()) { + for (IDIYComponent c : project.getComponents()) { if (c instanceof IContinuity) { for (int i = 0; i < c.getControlPointCount() - 1; i++) for (int j = i + 1; j < c.getControlPointCount(); j++) @@ -743,13 +744,13 @@ public class DrawingManager { } } - List areas = getContinuityAreas(); + List areas = getContinuityAreas(project); return NetlistBuilder.buildContinuityGraph(areas, connections); } - public List getContinuityAreaProximity(float threshold) { - List continuityAreas = getContinuityAreas(); + public List getContinuityAreaProximity(Project project, float threshold) { + List continuityAreas = getContinuityAreas(project); Stroke s = ObjectCache.getInstance().fetchBasicStroke(threshold - 1); // value eyeballed for // approx good results List expanded = continuityAreas.parallelStream() diff --git a/diylc/diylc-core/src/org/diylc/presenter/G2DWrapper.java b/diylc/diylc-core/src/org/diylc/presenter/G2DWrapper.java index 2b2e995f..3122828e 100644 --- a/diylc/diylc-core/src/org/diylc/presenter/G2DWrapper.java +++ b/diylc/diylc-core/src/org/diylc/presenter/G2DWrapper.java @@ -82,7 +82,6 @@ class G2DWrapper extends Graphics2D implements IDrawingObserver { private boolean drawingComponent = false; private boolean trackingAllowed = true; - private int layerId; private boolean trackingContinuityAllowed = false; private boolean trackingContinuityPositive = true; @@ -104,7 +103,7 @@ class G2DWrapper extends Graphics2D implements IDrawingObserver { private String continuityMarker; private Shape lastShape; - private double zoom; + private double zoom; /** * Creates a wrapper around specified {@link Graphics2D} object. @@ -134,7 +133,6 @@ class G2DWrapper extends Graphics2D implements IDrawingObserver { currentArea = new Area(); continuityPositiveAreas = new HashMap(); continuityNegativeAreas = new HashMap(); - layerId = 0; // trackingStacks.clear(); continuityMarker = null; originalStroke = canvasGraphics.getStroke(); @@ -161,8 +159,7 @@ class G2DWrapper extends Graphics2D implements IDrawingObserver { canvasGraphics.setComposite(originalComposite); canvasGraphics.setFont(originalFont); // Map sorted = sortByComparator(trackingStacks, false); - return new ComponentArea(currentArea, new ArrayList(continuityPositiveAreas.values()), - new ArrayList(continuityNegativeAreas.values()), layerId); + return new ComponentArea(currentArea, new ArrayList(continuityPositiveAreas.values()), new ArrayList(continuityNegativeAreas.values())); } // start - used for caching @@ -179,18 +176,12 @@ class G2DWrapper extends Graphics2D implements IDrawingObserver { return continuityNegativeAreas; } - public int getLayerId() { - return layerId; - } - // end - used for caching - public void merge(Area currentArea, Map continuityPositiveAreas, - Map continuityNegativeAreas, int layerId) { + public void merge(Area currentArea, Map continuityPositiveAreas, Map continuityNegativeAreas) { this.currentArea = currentArea; this.continuityPositiveAreas = continuityPositiveAreas; this.continuityNegativeAreas = continuityNegativeAreas; - this.layerId = layerId; } @Override @@ -204,8 +195,7 @@ class G2DWrapper extends Graphics2D implements IDrawingObserver { } @Override - public void startTrackingContinuityArea(int layerId, boolean positive) { - this.layerId = layerId; + public void startTrackingContinuityArea(boolean positive) { this.trackingContinuityAllowed = true; this.trackingContinuityPositive = positive; } diff --git a/diylc/diylc-core/src/org/diylc/presenter/Presenter.java b/diylc/diylc-core/src/org/diylc/presenter/Presenter.java index d6da258b..481f4d1d 100644 --- a/diylc/diylc-core/src/org/diylc/presenter/Presenter.java +++ b/diylc/diylc-core/src/org/diylc/presenter/Presenter.java @@ -680,7 +680,7 @@ public class Presenter implements IPlugInPort { projectFileManager.notifyFileChange(); } } else if (configManager.readBoolean(HIGHLIGHT_CONTINUITY_AREA, false) || altDown) { - drawingManager.findContinuityAreaAtPoint(scaledPoint); + drawingManager.findContinuityAreaAtPoint(currentProject, scaledPoint); messageDispatcher.dispatchMessage(EventType.REPAINT); } else { List> newSelection = new ArrayList>(selectedComponents); @@ -2809,7 +2809,7 @@ public class Presenter implements IPlugInPort { @Override public List extractNetlists(boolean includeSwitches) throws NetlistException { - List continuityAreas = drawingManager.getContinuityAreas(); + List continuityAreas = drawingManager.getContinuityAreas(currentProject); return NetlistBuilder.extractNetlists(includeSwitches, currentProject, continuityAreas); } @@ -2874,12 +2874,11 @@ public class Presenter implements IPlugInPort { ComponentArea componentArea = drawingManager.getComponentArea(c); areas.put(c, componentArea); } - return new Snapshot(currentProject.clone(), new HashSet>(selectedComponents), areas, - new HashSet(drawingManager.getContinuityAreas())); + return new Snapshot(currentProject.clone(), new HashSet>(selectedComponents), areas, new HashSet(drawingManager.getContinuityAreas(currentProject))); } @Override public List checkContinuityAreaProximity(Size threshold) { - return drawingManager.getContinuityAreaProximity((float)threshold.convertToPixels()); + return drawingManager.getContinuityAreaProximity(this.currentProject, (float)threshold.convertToPixels()); } } diff --git a/diylc/diylc-library/lib/diylc-core.jar b/diylc/diylc-library/lib/diylc-core.jar index 7b577c72..2754ec2f 100644 Binary files a/diylc/diylc-library/lib/diylc-core.jar and b/diylc/diylc-library/lib/diylc-core.jar differ diff --git a/diylc/diylc-library/src/org/diylc/components/AbstractLeadedComponent.java b/diylc/diylc-library/src/org/diylc/components/AbstractLeadedComponent.java index 8eda0b8b..d0019b2d 100644 --- a/diylc/diylc-library/src/org/diylc/components/AbstractLeadedComponent.java +++ b/diylc/diylc-library/src/org/diylc/components/AbstractLeadedComponent.java @@ -110,14 +110,10 @@ public abstract class AbstractLeadedComponent extends AbstractLabeledComponen points[1] = new Point2D.Double(targetSize / 2, 0); } - protected boolean isCopperArea() { + protected boolean IsCopperArea() { return false; } - protected int getLayerId() { - return 0; - } - protected Point2D[] getPoints() { // convert old points to new if (points.length == 2) { @@ -153,7 +149,7 @@ public abstract class AbstractLeadedComponent extends AbstractLabeledComponen Shape shape = getBodyShape(); // If there's no body, just draw the line connecting the ending points. if (shape == null) { - drawLead(g2d, componentState, drawingObserver, isCopperArea()); + drawLead(g2d, componentState, drawingObserver, IsCopperArea()); return; } @@ -419,7 +415,7 @@ public abstract class AbstractLeadedComponent extends AbstractLabeledComponen private void drawLead(Graphics2D g2d, ComponentState componentState, IDrawingObserver observer, boolean isCopperArea) { if (isCopperArea) - observer.startTrackingContinuityArea(getLayerId(), true); + observer.startTrackingContinuityArea(true); float thickness = getLeadThickness(); diff --git a/diylc/diylc-library/src/org/diylc/components/boards/Breadboard.java b/diylc/diylc-library/src/org/diylc/components/boards/Breadboard.java index b36191ae..00104e2e 100644 --- a/diylc/diylc-library/src/org/diylc/components/boards/Breadboard.java +++ b/diylc/diylc-library/src/org/diylc/components/boards/Breadboard.java @@ -195,7 +195,7 @@ public class Breadboard extends AbstractProtoBoard { } // draw transparent connections just to designate connections - drawingObserver.startTrackingContinuityArea(1, true); + drawingObserver.startTrackingContinuityArea(true); Composite oldComposite = g2d.getComposite(); g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.0f)); diff --git a/diylc/diylc-library/src/org/diylc/components/boards/EurorackStripboard.java b/diylc/diylc-library/src/org/diylc/components/boards/EurorackStripboard.java index b34e306c..be101842 100644 --- a/diylc/diylc-library/src/org/diylc/components/boards/EurorackStripboard.java +++ b/diylc/diylc-library/src/org/diylc/components/boards/EurorackStripboard.java @@ -380,7 +380,7 @@ public class EurorackStripboard extends AbstractProtoBoard { int padX = (int) (x0 + (segment.x + i) * spacing); int padY = (int) (y0 + (segment.y + j) * spacing); - drawingObserver.startTrackingContinuityArea(1, true); + drawingObserver.startTrackingContinuityArea(true); drawingObserver.setContinuityMarker(segment.label); g2d.setColor(padColor); @@ -432,7 +432,7 @@ public class EurorackStripboard extends AbstractProtoBoard { int padX = (int) (x0 + potPad.x * spacing); int padY = (int) (y0 + (potPad.y + 8 * i) * spacing); - drawingObserver.startTrackingContinuityArea(1, true); + drawingObserver.startTrackingContinuityArea(true); drawingObserver.setContinuityMarker(potPad.label + i); g2d.setColor(padColor); @@ -483,7 +483,7 @@ public class EurorackStripboard extends AbstractProtoBoard { int padX = (int) (x0 + potPad.x * spacing); int padY = (int) (y0 + potPad.y * spacing); - drawingObserver.startTrackingContinuityArea(1, true); + drawingObserver.startTrackingContinuityArea(true); drawingObserver.setContinuityMarker(potPad.label); g2d.setColor(padColor); @@ -513,7 +513,7 @@ public class EurorackStripboard extends AbstractProtoBoard { int padX = (int) (x0 + (6.5 + i) * spacing); int padY = (int) (y0 + (36 + j) * spacing); - drawingObserver.startTrackingContinuityArea(1, true); + drawingObserver.startTrackingContinuityArea(true); drawingObserver.setContinuityMarker(connectorLabels[i]); g2d.setColor(padColor); @@ -543,7 +543,7 @@ public class EurorackStripboard extends AbstractProtoBoard { int padX = (int) (x0 + (17) * spacing); int padY = (int) (y0 + 35.5 * spacing); - drawingObserver.startTrackingContinuityArea(1, true); + drawingObserver.startTrackingContinuityArea(true); drawingObserver.setContinuityMarker("GND"); g2d.setColor(padColor); diff --git a/diylc/diylc-library/src/org/diylc/components/boards/ProtoBoard.java b/diylc/diylc-library/src/org/diylc/components/boards/ProtoBoard.java index 76f941b1..d34fb7fe 100644 --- a/diylc/diylc-library/src/org/diylc/components/boards/ProtoBoard.java +++ b/diylc/diylc-library/src/org/diylc/components/boards/ProtoBoard.java @@ -140,7 +140,7 @@ public class ProtoBoard extends AbstractProtoBoard { g2d.setColor(traceColor); g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(padSize / 4)); - drawingObserver.startTrackingContinuityArea(1, true); + drawingObserver.startTrackingContinuityArea(true); // draw segment connectors for (int y = 0; y < ROW_COUNT; y++) { @@ -223,7 +223,7 @@ public class ProtoBoard extends AbstractProtoBoard { // draw top mini pad traces g2d.setColor(traceColor); g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(padSize / 4)); - drawingObserver.startTrackingContinuityArea(1, true); + drawingObserver.startTrackingContinuityArea(true); g2d.drawLine((int) (point.getX() + (1 + SEGMENTS_SUM[3] + 0.5) * spacing), (int) (point.getY() + 1 * spacing), (int) (point.getX() + (1 + SEGMENTS_SUM[3] + 0.5) * spacing), (int) (point.getY() + 3.5 * spacing)); g2d.drawLine((int) (point.getX() + (1 + SEGMENTS_SUM[3] + 1.5) * spacing + miniPadSize / 2), (int) (point.getY() + 1 * spacing), @@ -255,7 +255,7 @@ public class ProtoBoard extends AbstractProtoBoard { int padX = (int) (point.getX() + (xOffset + x) * spacing); int padY = (int) (point.getY() + (yOffset + y) * spacing); - drawingObserver.startTrackingContinuityArea(1, true); + drawingObserver.startTrackingContinuityArea(true); drawingObserver.setContinuityMarker("SEGMENT=" + segment + ";ROW=" + y); g2d.setColor(padColor); @@ -295,7 +295,7 @@ public class ProtoBoard extends AbstractProtoBoard { g2d.drawRect((int) (point.getX() + (1 + SEGMENTS_SUM[3]) * spacing), (int) (point.getY() + (yOffset - 2 + y * (ROW_COUNT + 2)) * spacing), (int)(3 * spacing), (int)spacing); - drawingObserver.startTrackingContinuityArea(1, true); + drawingObserver.startTrackingContinuityArea(true); for (int x = 0; x < 3; x++) { int padX = (int) (point.getX() + (1 + SEGMENTS_SUM[3] + 0.5 + x) * spacing); @@ -344,7 +344,7 @@ public class ProtoBoard extends AbstractProtoBoard { g2d.setColor(traceColor); g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(padSize / 4)); - drawingObserver.startTrackingContinuityArea(1, true); + drawingObserver.startTrackingContinuityArea(true); // Draw two horizontal traces in the top-right section g2d.drawLine((int) (point.getX() + width - 4 * spacing), (int) (point.getY() + 0.5 * spacing), (int) (point.getX() + width - (2) * spacing), (int) (point.getY() + 0.5 * spacing)); @@ -403,7 +403,7 @@ public class ProtoBoard extends AbstractProtoBoard { for (int i = 0; i < padXs.length; i++) { int padX = padXs[i]; - drawingObserver.startTrackingContinuityArea(1, true); + drawingObserver.startTrackingContinuityArea(true); if (i == 0 || i == 2 || i == 5) { switch (y) { @@ -473,7 +473,7 @@ public class ProtoBoard extends AbstractProtoBoard { for (int y = 0; y < ROW_COUNT; y++) { g2d.setColor(padColor); - drawingObserver.startTrackingContinuityArea(1, true); + drawingObserver.startTrackingContinuityArea(true); // top row g2d.fillRect((int) (point.getX() + (1 + SEGMENTS_SUM[3] + 0.5) * spacing) + 1, (int) (point.getY() + (yOffset + y - 0.5d) * spacing + 2), miniPadSize, miniPadSize); @@ -492,7 +492,7 @@ public class ProtoBoard extends AbstractProtoBoard { g2d.setColor(undersidePadColor); - drawingObserver.startTrackingContinuityArea(1, true); + drawingObserver.startTrackingContinuityArea(true); // bottom row diff --git a/diylc/diylc-library/src/org/diylc/components/boards/TagStrip.java b/diylc/diylc-library/src/org/diylc/components/boards/TagStrip.java index 9405ac07..7d4f54d1 100644 --- a/diylc/diylc-library/src/org/diylc/components/boards/TagStrip.java +++ b/diylc/diylc-library/src/org/diylc/components/boards/TagStrip.java @@ -302,7 +302,7 @@ public class TagStrip extends AbstractTransparentComponent implements IC g2d.draw(mainArea); g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : TERMINAL_COLOR); - drawingObserver.startTrackingContinuityArea(1, true); + drawingObserver.startTrackingContinuityArea(true); for (int i = 1; i < body.length; i++) g2d.fill(body[i]); drawingObserver.stopTrackingContinuityArea(); diff --git a/diylc/diylc-library/src/org/diylc/components/boards/TerminalStrip.java b/diylc/diylc-library/src/org/diylc/components/boards/TerminalStrip.java index 8d066a7f..713a2814 100644 --- a/diylc/diylc-library/src/org/diylc/components/boards/TerminalStrip.java +++ b/diylc/diylc-library/src/org/diylc/components/boards/TerminalStrip.java @@ -379,7 +379,7 @@ public class TerminalStrip extends AbstractTransparentComponent implemen g2d.draw(mainArea); g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : TERMINAL_COLOR); - drawingObserver.startTrackingContinuityArea(1, true); + drawingObserver.startTrackingContinuityArea(true); for (int i = 1; i < body.length; i++) g2d.fill(body[i]); drawingObserver.stopTrackingContinuityArea(); diff --git a/diylc/diylc-library/src/org/diylc/components/boards/TriPadBoard.java b/diylc/diylc-library/src/org/diylc/components/boards/TriPadBoard.java index fd0add0d..6c3fe623 100644 --- a/diylc/diylc-library/src/org/diylc/components/boards/TriPadBoard.java +++ b/diylc/diylc-library/src/org/diylc/components/boards/TriPadBoard.java @@ -84,7 +84,7 @@ public class TriPadBoard extends AbstractVeroBoard { } g2d.setColor(stripColor); - drawingObserver.startTrackingContinuityArea(1, true); + drawingObserver.startTrackingContinuityArea(true); g2d.fillRect((int)(x + spacing - stripSize / 2), (int)(y - stripSize / 2), (int)(spacing * (spacesToDraw - 1) + stripSize), stripSize); drawingObserver.stopTrackingContinuityArea(); @@ -122,7 +122,7 @@ public class TriPadBoard extends AbstractVeroBoard { } g2d.setColor(stripColor); - drawingObserver.startTrackingContinuityArea(1, true); + drawingObserver.startTrackingContinuityArea(true); g2d.fillRect((int)(x - stripSize / 2), (int)(y + spacing - stripSize / 2), stripSize, (int)(spacing * (spacesToDraw - 1) + stripSize)); drawingObserver.stopTrackingContinuityArea(); diff --git a/diylc/diylc-library/src/org/diylc/components/boards/VeroBoard.java b/diylc/diylc-library/src/org/diylc/components/boards/VeroBoard.java index 7eaec203..5d8cd16c 100644 --- a/diylc/diylc-library/src/org/diylc/components/boards/VeroBoard.java +++ b/diylc/diylc-library/src/org/diylc/components/boards/VeroBoard.java @@ -73,7 +73,7 @@ public class VeroBoard extends AbstractVeroBoard { x = firstPoint.getX(); y += spacing; g2d.setColor(stripColor); - drawingObserver.startTrackingContinuityArea(1, true); + drawingObserver.startTrackingContinuityArea(true); g2d.fillRect((int)(x + spacing / 2), (int)(y - stripSize / 2), (int)(finalSecondPoint.getX() - spacing - x), stripSize); drawingObserver.stopTrackingContinuityArea(); g2d.setColor(stripColor.darker()); @@ -91,7 +91,7 @@ public class VeroBoard extends AbstractVeroBoard { x += spacing; y = firstPoint.getY(); g2d.setColor(stripColor); - drawingObserver.startTrackingContinuityArea(1, true); + drawingObserver.startTrackingContinuityArea(true); g2d.fillRect((int)(x - stripSize / 2), (int)(y + spacing / 2), stripSize, (int)(finalSecondPoint.getY() - spacing - y)); drawingObserver.stopTrackingContinuityArea(); g2d.setColor(stripColor.darker()); diff --git a/diylc/diylc-library/src/org/diylc/components/connectivity/CopperTrace.java b/diylc/diylc-library/src/org/diylc/components/connectivity/CopperTrace.java index f1ea95eb..70cc903c 100644 --- a/diylc/diylc-library/src/org/diylc/components/connectivity/CopperTrace.java +++ b/diylc/diylc-library/src/org/diylc/components/connectivity/CopperTrace.java @@ -158,15 +158,10 @@ public class CopperTrace extends AbstractLeadedComponent { } @Override - protected boolean isCopperArea() { + protected boolean IsCopperArea() { return true; } - @Override - protected int getLayerId() { - return getLayer().getId(); - } - @Override public String getControlPointNodeName(int index) { return null; diff --git a/diylc/diylc-library/src/org/diylc/components/connectivity/CurvedTrace.java b/diylc/diylc-library/src/org/diylc/components/connectivity/CurvedTrace.java index 22a18845..ff3930b1 100644 --- a/diylc/diylc-library/src/org/diylc/components/connectivity/CurvedTrace.java +++ b/diylc/diylc-library/src/org/diylc/components/connectivity/CurvedTrace.java @@ -63,7 +63,7 @@ public class CurvedTrace extends AbstractCurvedComponent { componentState == ComponentState.SELECTED || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : color; g2d.setColor(curveColor); - drawingObserver.startTrackingContinuityArea(getLayer().getId(), true); + drawingObserver.startTrackingContinuityArea(true); g2d.draw(curve); drawingObserver.stopTrackingContinuityArea(); } diff --git a/diylc/diylc-library/src/org/diylc/components/connectivity/Eyelet.java b/diylc/diylc-library/src/org/diylc/components/connectivity/Eyelet.java index 3a80271d..baae3e09 100644 --- a/diylc/diylc-library/src/org/diylc/components/connectivity/Eyelet.java +++ b/diylc/diylc-library/src/org/diylc/components/connectivity/Eyelet.java @@ -72,7 +72,7 @@ public class Eyelet extends AbstractComponent { int holeDiameter = getClosestOdd((int) holeSize.convertToPixels()); g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1f)); g2d.setColor(color); - drawingObserver.startTrackingContinuityArea(1, true); + drawingObserver.startTrackingContinuityArea(true); g2d.fillOval((int)(point.getX() - diameter / 2), (int)(point.getY() - diameter / 2), diameter, diameter); drawingObserver.stopTrackingContinuityArea(); g2d.setColor(componentState == ComponentState.SELECTED || componentState == ComponentState.DRAGGING ? SELECTION_COLOR diff --git a/diylc/diylc-library/src/org/diylc/components/connectivity/GroundFill.java b/diylc/diylc-library/src/org/diylc/components/connectivity/GroundFill.java index b852f04d..5e1f11eb 100644 --- a/diylc/diylc-library/src/org/diylc/components/connectivity/GroundFill.java +++ b/diylc/diylc-library/src/org/diylc/components/connectivity/GroundFill.java @@ -73,7 +73,7 @@ public class GroundFill extends AbstractComponent { xPoints[i] = (int)controlPoints[i].getX(); yPoints[i] = (int)controlPoints[i].getY(); } - drawingObserver.startTrackingContinuityArea(getLayer().getId(), true); + drawingObserver.startTrackingContinuityArea(true); g2d.fillPolygon(xPoints, yPoints, controlPoints.length); drawingObserver.stopTrackingContinuityArea(); // Do not track any changes that follow because the whole board has been diff --git a/diylc/diylc-library/src/org/diylc/components/connectivity/SolderPad.java b/diylc/diylc-library/src/org/diylc/components/connectivity/SolderPad.java index d275c7d0..fb265cdd 100644 --- a/diylc/diylc-library/src/org/diylc/components/connectivity/SolderPad.java +++ b/diylc/diylc-library/src/org/diylc/components/connectivity/SolderPad.java @@ -69,7 +69,7 @@ public class SolderPad extends AbstractComponent { double holeDiameter = getHoleSize().convertToPixels(); g2d.setColor(componentState == ComponentState.SELECTED || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : color); - drawingObserver.startTrackingContinuityArea(getLayer().getId(), true); + drawingObserver.startTrackingContinuityArea(true); if (type == Type.ROUND) { g2d.fill(new Ellipse2D.Double(point.getX() - diameter / 2, point.getY() - diameter / 2, diameter, diameter)); } else if (type == Type.OVAL_HORIZONTAL) { diff --git a/diylc/diylc-library/src/org/diylc/components/connectivity/TraceCut.java b/diylc/diylc-library/src/org/diylc/components/connectivity/TraceCut.java index aa10222d..e9603ccb 100644 --- a/diylc/diylc-library/src/org/diylc/components/connectivity/TraceCut.java +++ b/diylc/diylc-library/src/org/diylc/components/connectivity/TraceCut.java @@ -84,7 +84,7 @@ public class TraceCut extends AbstractComponent { int holeSpacing = getClosestOdd(getHoleSpacing().convertToPixels()); g2d.setColor(componentState == ComponentState.SELECTED || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : getBoardColor()); - drawingObserver.startTrackingContinuityArea(1, false); + drawingObserver.startTrackingContinuityArea(false); if (getOrientation() == OrientationHV.VERTICAL) g2d.fillRect((int)(point.getX() - holeSpacing / 2 - cutWidth / 2), (int)(point.getY() - size / 2 - 1), cutWidth, size + 2); else @@ -93,7 +93,7 @@ public class TraceCut extends AbstractComponent { } else { g2d.setColor(componentState == ComponentState.SELECTED || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : getBoardColor()); - drawingObserver.startTrackingContinuityArea(1, false); + drawingObserver.startTrackingContinuityArea(false); g2d.fillRoundRect((int)(point.getX() - size / 2), (int)(point.getY() - size / 2), size, size, size, size); drawingObserver.stopTrackingContinuityArea(); diff --git a/diylc/diylc-library/src/org/diylc/components/connectivity/Turret.java b/diylc/diylc-library/src/org/diylc/components/connectivity/Turret.java index 41351e4d..ebdc300d 100644 --- a/diylc/diylc-library/src/org/diylc/components/connectivity/Turret.java +++ b/diylc/diylc-library/src/org/diylc/components/connectivity/Turret.java @@ -70,7 +70,7 @@ public class Turret extends AbstractComponent { int holeDiameter = getClosestOdd((int) holeSize.convertToPixels()); g2d.setColor(color); g2d.setStroke(ObjectCache.getInstance().fetchZoomableStroke(1f)); - drawingObserver.startTrackingContinuityArea(1, true); + drawingObserver.startTrackingContinuityArea(true); g2d.fillOval((int)(point.getX() - diameter / 2), (int)(point.getY() - diameter / 2), diameter, diameter); drawingObserver.stopTrackingContinuityArea(); g2d.setColor(componentState == ComponentState.SELECTED || componentState == ComponentState.DRAGGING ? SELECTION_COLOR diff --git a/diylc/diylc-library/src/org/diylc/components/electromechanical/OpenJack1_4.java b/diylc/diylc-library/src/org/diylc/components/electromechanical/OpenJack1_4.java index 2df221f8..e3daae3e 100644 --- a/diylc/diylc-library/src/org/diylc/components/electromechanical/OpenJack1_4.java +++ b/diylc/diylc-library/src/org/diylc/components/electromechanical/OpenJack1_4.java @@ -127,7 +127,7 @@ public class OpenJack1_4 extends AbstractMultiPartComponent { } g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : BASE_COLOR); - drawingObserver.startTrackingContinuityArea(hashCode(), true); + drawingObserver.startTrackingContinuityArea(true); g2d.fill(body[1]); g2d.fill(body[2]); if (body[3] != null) diff --git a/diylc/diylc-library/src/org/diylc/components/electromechanical/OpenJack1_8.java b/diylc/diylc-library/src/org/diylc/components/electromechanical/OpenJack1_8.java index 28bafb7c..e7b08966 100644 --- a/diylc/diylc-library/src/org/diylc/components/electromechanical/OpenJack1_8.java +++ b/diylc/diylc-library/src/org/diylc/components/electromechanical/OpenJack1_8.java @@ -127,7 +127,7 @@ public class OpenJack1_8 extends AbstractMultiPartComponent { } g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : BASE_COLOR); - drawingObserver.startTrackingContinuityArea(hashCode(), true); + drawingObserver.startTrackingContinuityArea(true); g2d.fill(body[1]); g2d.fill(body[2]); if (body[3] != null) diff --git a/diylc/diylc-library/src/org/diylc/components/electromechanical/PilotLampHolder.java b/diylc/diylc-library/src/org/diylc/components/electromechanical/PilotLampHolder.java index 495e41cf..7633bb65 100644 --- a/diylc/diylc-library/src/org/diylc/components/electromechanical/PilotLampHolder.java +++ b/diylc/diylc-library/src/org/diylc/components/electromechanical/PilotLampHolder.java @@ -123,7 +123,7 @@ public class PilotLampHolder extends AbstractMultiPartComponent { } g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : BASE_COLOR); - drawingObserver.startTrackingContinuityArea(hashCode(), true); + drawingObserver.startTrackingContinuityArea(true); g2d.fill(body[3]); g2d.fill(body[4]); diff --git a/diylc/diylc-library/src/org/diylc/components/electromechanical/RCAJack.java b/diylc/diylc-library/src/org/diylc/components/electromechanical/RCAJack.java index 67265198..c8d0d0bb 100644 --- a/diylc/diylc-library/src/org/diylc/components/electromechanical/RCAJack.java +++ b/diylc/diylc-library/src/org/diylc/components/electromechanical/RCAJack.java @@ -114,7 +114,7 @@ public class RCAJack extends AbstractMultiPartComponent { } g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : BASE_COLOR); - drawingObserver.startTrackingContinuityArea(hashCode(), true); + drawingObserver.startTrackingContinuityArea(true); g2d.fill(body[1]); g2d.fill(body[2]); drawingObserver.stopTrackingContinuityArea(); diff --git a/diylc/diylc-library/src/org/diylc/components/electromechanical/RotarySelectorSwitch.java b/diylc/diylc-library/src/org/diylc/components/electromechanical/RotarySelectorSwitch.java index 84188568..4c1e3990 100644 --- a/diylc/diylc-library/src/org/diylc/components/electromechanical/RotarySelectorSwitch.java +++ b/diylc/diylc-library/src/org/diylc/components/electromechanical/RotarySelectorSwitch.java @@ -121,7 +121,7 @@ public class RotarySelectorSwitch extends AbstractMultiPartComponent { } g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : TERMINAL_COLOR); - drawingObserver.startTrackingContinuityArea(hashCode(), true); + drawingObserver.startTrackingContinuityArea(true); for (int i = 2; i < body.length; i++) g2d.fill(body[i]); drawingObserver.stopTrackingContinuityArea(); diff --git a/diylc/diylc-library/src/org/diylc/components/electromechanical/RotarySwitchOpen.java b/diylc/diylc-library/src/org/diylc/components/electromechanical/RotarySwitchOpen.java index 652eaa8e..64f994da 100644 --- a/diylc/diylc-library/src/org/diylc/components/electromechanical/RotarySwitchOpen.java +++ b/diylc/diylc-library/src/org/diylc/components/electromechanical/RotarySwitchOpen.java @@ -350,7 +350,7 @@ public class RotarySwitchOpen extends AbstractAngledComponent implements ISwi g2d.drawOval((int)(p.getX() - padDiameter / 2), (int)(p.getY() - padDiameter / 2), padDiameter, padDiameter); } else { g2d.setColor(PAD_COLOR); - drawingObserver.startTrackingContinuityArea(hashCode(), true); + drawingObserver.startTrackingContinuityArea(true); g2d.fillOval((int)(p.getX() - padDiameter / 2), (int)(p.getY() - padDiameter / 2), padDiameter, padDiameter); drawingObserver.stopTrackingContinuityArea(); g2d.setColor(PAD_COLOR.darker()); diff --git a/diylc/diylc-library/src/org/diylc/components/misc/CommonNode.java b/diylc/diylc-library/src/org/diylc/components/misc/CommonNode.java index a41ff441..d53cc649 100644 --- a/diylc/diylc-library/src/org/diylc/components/misc/CommonNode.java +++ b/diylc/diylc-library/src/org/diylc/components/misc/CommonNode.java @@ -93,7 +93,7 @@ public class CommonNode extends AbstractComponent implements ICommonNode } g2d.setColor(bgColor); - drawingObserver.startTrackingContinuityArea(text.hashCode(), true); + drawingObserver.startTrackingContinuityArea(true); g2d.fill(rect); drawingObserver.stopTrackingContinuityArea(); drawingObserver.stopTracking(); diff --git a/diylc/diylc-library/src/org/diylc/components/passive/PotentiometerPanel.java b/diylc/diylc-library/src/org/diylc/components/passive/PotentiometerPanel.java index 4e837fa7..35f2836c 100644 --- a/diylc/diylc-library/src/org/diylc/components/passive/PotentiometerPanel.java +++ b/diylc/diylc-library/src/org/diylc/components/passive/PotentiometerPanel.java @@ -279,11 +279,11 @@ public class PotentiometerPanel extends AbstractPotentiometer { g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1f * alpha / MAX_ALPHA)); } if (!outlineMode) { -// if (i == 3) -// drawingObserver.startTrackingContinuityArea(true); + if (i == 3) + drawingObserver.startTrackingContinuityArea(true); g2d.fill(shape); -// if (i == 3) -// drawingObserver.stopTrackingContinuityArea(); + if (i == 3) + drawingObserver.stopTrackingContinuityArea(); } g2d.setComposite(oldComposite); Color finalBorderColor; diff --git a/diylc/diylc-library/src/org/diylc/components/tube/Jumbo4PinTubeSocket.java b/diylc/diylc-library/src/org/diylc/components/tube/Jumbo4PinTubeSocket.java index fda937d1..c41191c9 100644 --- a/diylc/diylc-library/src/org/diylc/components/tube/Jumbo4PinTubeSocket.java +++ b/diylc/diylc-library/src/org/diylc/components/tube/Jumbo4PinTubeSocket.java @@ -248,7 +248,7 @@ public class Jumbo4PinTubeSocket extends AbstractAngledComponent { Shape terminalShape = body[1]; g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : getTerminalColor()); - drawingObserver.startTrackingContinuityArea(hashCode(), true); + drawingObserver.startTrackingContinuityArea(true); g2d.fill(terminalShape); drawingObserver.stopTrackingContinuityArea(); diff --git a/diylc/diylc-library/src/org/diylc/components/tube/TubeSocket.java b/diylc/diylc-library/src/org/diylc/components/tube/TubeSocket.java index 2b2b56cb..cc733bb1 100644 --- a/diylc/diylc-library/src/org/diylc/components/tube/TubeSocket.java +++ b/diylc/diylc-library/src/org/diylc/components/tube/TubeSocket.java @@ -287,7 +287,7 @@ public class TubeSocket extends AbstractAngledComponent { } g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : PIN_COLOR); if (getMount() == Mount.CHASSIS) - drawingObserver.startTrackingContinuityArea(hashCode(), true); + drawingObserver.startTrackingContinuityArea(true); g2d.fill(pinShape); drawingObserver.stopTrackingContinuityArea(); if (!outlineMode) { diff --git a/diylc/diylc-swing/lib/diylc-core.jar b/diylc/diylc-swing/lib/diylc-core.jar index 7b577c72..2754ec2f 100644 Binary files a/diylc/diylc-swing/lib/diylc-core.jar and b/diylc/diylc-swing/lib/diylc-core.jar differ diff --git a/diylc/diylc-swing/library/main.jar b/diylc/diylc-swing/library/main.jar index 8c8f48ed..910a532b 100644 Binary files a/diylc/diylc-swing/library/main.jar and b/diylc/diylc-swing/library/main.jar differ