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 094be571..1784cb4d 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/components/AbstractCurvedComponent.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/components/AbstractCurvedComponent.java index e3f145d8..e1843d02 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 @@ -9,6 +9,7 @@ import java.awt.Point; import java.awt.geom.CubicCurve2D; import org.diylc.core.ComponentState; +import org.diylc.core.IDrawingObserver; import org.diylc.core.Project; import org.diylc.core.annotations.EditableProperty; import org.diylc.core.measures.Size; @@ -57,8 +58,11 @@ public abstract class AbstractCurvedComponent extends AbstractTransparentComp } @Override - public void draw(Graphics2D g2d, ComponentState componentState, Project project) { + public void draw(Graphics2D g2d, ComponentState componentState, Project project, + IDrawingObserver drawingObserver) { if (componentState == ComponentState.SELECTED || componentState == ComponentState.DRAGGING) { + // Do not track guidelines. + drawingObserver.stopTracking(); g2d.setStroke(new BasicStroke(1, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER, 10f, new float[] { 2f, 3f }, 5f)); g2d.setColor(GUIDELINE_COLOR); @@ -68,6 +72,7 @@ public abstract class AbstractCurvedComponent extends AbstractTransparentComp controlPoints[2].y); g2d.drawLine(controlPoints[2].x, controlPoints[2].y, controlPoints[3].x, controlPoints[3].y); + drawingObserver.startTracking(); } CubicCurve2D curve = new CubicCurve2D.Double(controlPoints[0].x, controlPoints[0].y, controlPoints[1].x, controlPoints[1].y, controlPoints[2].x, controlPoints[2].y, 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 72aaa07a..7095e94f 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 @@ -11,6 +11,7 @@ import java.awt.Rectangle; import java.awt.Shape; import org.diylc.core.ComponentState; +import org.diylc.core.IDrawingObserver; import org.diylc.core.Project; import org.diylc.core.annotations.EditableProperty; import org.diylc.core.measures.Size; @@ -55,7 +56,8 @@ public abstract class AbstractLeadedComponent extends AbstractTransparentComp } @Override - public void draw(Graphics2D g2d, ComponentState componentState, Project project) { + public void draw(Graphics2D g2d, ComponentState componentState, Project project, + IDrawingObserver drawingObserver) { double distance = points[0].distance(points[1]); Shape shape = getBodyShape(); if (shape == null) { @@ -92,6 +94,8 @@ public abstract class AbstractLeadedComponent extends AbstractTransparentComp (int) ((shapeRect.width - distance) / 2 + leadLenght), (int) shapeRect.height / 2); g2d.drawLine((int) (shapeRect.width + distance) / 2, (int) shapeRect.height / 2, (int) ((shapeRect.width + distance) / 2 - leadLenght), (int) shapeRect.height / 2); + // Do not track the label because that area was already covered. + drawingObserver.stopTracking(); // Draw label. g2d.setFont(Constants.LABEL_FONT); g2d diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/IDIYComponent.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/IDIYComponent.java index 7419f262..c6d76b90 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/IDIYComponent.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/IDIYComponent.java @@ -39,7 +39,7 @@ public interface IDIYComponent extends Serializable { public static final int ABOVE_BOARD = 6; public static final int COMPONENT = 7; public static final int ABOVE_COMPONENT = 8; - + public static Color SELECTION_COLOR = Color.red; /** @@ -93,8 +93,10 @@ public interface IDIYComponent extends Serializable { * @param g2d * @param componentState * @param project + * @param drawingObserver */ - void draw(Graphics2D g2d, ComponentState componentState, Project project); + void draw(Graphics2D g2d, ComponentState componentState, Project project, + IDrawingObserver drawingObserver); /** * Draws icon representation of the component. This should not depend on diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/IDrawingObserver.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/IDrawingObserver.java new file mode 100644 index 00000000..8db76e21 --- /dev/null +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/IDrawingObserver.java @@ -0,0 +1,15 @@ +package org.diylc.core; + +/** + * Interface for tracking component drawing process. Components may use it to + * stop or restart tracking. Anything drawn while tracking is stopped will not + * be added to the mouse hot-spot area. + * + * @author Branislav Stojkovic + */ +public interface IDrawingObserver { + + void stopTracking(); + + void startTracking(); +} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/G2DWrapper.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/G2DWrapper.java index b0fcb7ed..333d6d6e 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/G2DWrapper.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/G2DWrapper.java @@ -37,6 +37,8 @@ import java.awt.image.renderable.RenderableImage; import java.text.AttributedCharacterIterator; import java.util.Map; +import org.diylc.core.IDrawingObserver; + /** * {@link Graphics2D} wrapper that keeps track of all drawing actions and * creates an {@link Area} that corresponds to drawn objects. Before each @@ -47,12 +49,13 @@ import java.util.Map; * * @author Branislav Stojkovic */ -class G2DWrapper extends Graphics2D { +class G2DWrapper extends Graphics2D implements IDrawingObserver { public static int LINE_SENSITIVITY_MARGIN = 2; public static int CURVE_SENSITIVITY = 6; private boolean drawingComponent = false; + private boolean trackingAllowed = true; private Graphics2D canvasGraphics; private Stroke originalStroke; @@ -89,6 +92,7 @@ class G2DWrapper extends Graphics2D { originalFont = canvasGraphics.getFont(); currentTx = new AffineTransform(); lastShape = null; + startTracking(); } /** @@ -107,13 +111,23 @@ class G2DWrapper extends Graphics2D { return currentArea; } + @Override + public void startTracking() { + this.trackingAllowed = true; + } + + @Override + public void stopTracking() { + this.trackingAllowed = false; + } + /** * Appends shape interior to the current component area. * * @param s */ private void appendShape(Shape s) { - if (!drawingComponent) { + if (!drawingComponent || !trackingAllowed) { return; } Area area = new Area(s); @@ -129,7 +143,7 @@ class G2DWrapper extends Graphics2D { */ private void appendShapeOutline(Shape s) { // Do not add shape outline if the same shape has been filled recently. - if (!drawingComponent || s.equals(lastShape)) { + if (!drawingComponent || !trackingAllowed || s.equals(lastShape)) { return; } lastShape = s; @@ -235,7 +249,9 @@ class G2DWrapper extends Graphics2D { @Override public void draw(Shape s) { canvasGraphics.draw(s); - appendShapeOutline(s); + if (drawingComponent && trackingAllowed) { + appendShapeOutline(s); + } } @Override @@ -270,19 +286,23 @@ class G2DWrapper extends Graphics2D { @Override public void drawString(String str, int x, int y) { canvasGraphics.drawString(str, x, y); - FontMetrics fontMetrics = canvasGraphics.getFontMetrics(); - Rectangle2D rect = fontMetrics.getStringBounds(str, canvasGraphics); - appendShape(new Rectangle2D.Double(rect.getX() + x, rect.getY() + y, rect.getWidth(), rect - .getHeight())); + if (drawingComponent && trackingAllowed) { + FontMetrics fontMetrics = canvasGraphics.getFontMetrics(); + Rectangle2D rect = fontMetrics.getStringBounds(str, canvasGraphics); + appendShape(new Rectangle2D.Double(rect.getX() + x, rect.getY() + y, rect.getWidth(), + rect.getHeight())); + } } @Override public void drawString(String str, float x, float y) { canvasGraphics.drawString(str, x, y); - FontMetrics fontMetrics = canvasGraphics.getFontMetrics(); - Rectangle2D rect = fontMetrics.getStringBounds(str, canvasGraphics); - appendShape(new Rectangle2D.Double(rect.getX() + x, rect.getY() + y, rect.getWidth(), rect - .getHeight())); + if (drawingComponent && trackingAllowed) { + FontMetrics fontMetrics = canvasGraphics.getFontMetrics(); + Rectangle2D rect = fontMetrics.getStringBounds(str, canvasGraphics); + appendShape(new Rectangle2D.Double(rect.getX() + x, rect.getY() + y, rect.getWidth(), + rect.getHeight())); + } } @Override @@ -508,19 +528,25 @@ class G2DWrapper extends Graphics2D { @Override public void drawLine(int x1, int y1, int x2, int y2) { canvasGraphics.drawLine(x1, y1, x2, y2); - appendShapeOutline(new Line2D.Double(x1, y1, x2, y2)); + if (drawingComponent && trackingAllowed) { + appendShapeOutline(new Line2D.Double(x1, y1, x2, y2)); + } } @Override public void drawOval(int x, int y, int width, int height) { canvasGraphics.drawOval(x, y, width, height); - appendShapeOutline(new Ellipse2D.Double(x, y, width, height)); + if (drawingComponent && trackingAllowed) { + appendShapeOutline(new Ellipse2D.Double(x, y, width, height)); + } } @Override public void drawPolygon(int[] points, int[] points2, int points3) { canvasGraphics.drawPolygon(points, points2, points3); - appendShapeOutline(new Polygon(points, points2, points3)); + if (drawingComponent && trackingAllowed) { + appendShapeOutline(new Polygon(points, points2, points3)); + } } @Override @@ -531,43 +557,57 @@ class G2DWrapper extends Graphics2D { @Override public void drawRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight) { canvasGraphics.drawRoundRect(x, y, width, height, arcWidth, arcHeight); - appendShapeOutline(new RoundRectangle2D.Double(x, y, width, height, arcWidth, arcHeight)); + if (drawingComponent && trackingAllowed) { + appendShapeOutline(new RoundRectangle2D.Double(x, y, width, height, arcWidth, arcHeight)); + } } @Override public void fillArc(int x, int y, int width, int height, int startAngle, int arcAngle) { canvasGraphics.fillArc(x, y, width, height, startAngle, arcAngle); - appendShape(new Arc2D.Double(x, y, width, height, startAngle, arcAngle, Arc2D.PIE)); + if (drawingComponent && trackingAllowed) { + appendShape(new Arc2D.Double(x, y, width, height, startAngle, arcAngle, Arc2D.PIE)); + } } @Override public void fillOval(int x, int y, int width, int height) { canvasGraphics.fillOval(x, y, width, height); - appendShape(new Ellipse2D.Double(x, y, width, height)); + if (drawingComponent && trackingAllowed) { + appendShape(new Ellipse2D.Double(x, y, width, height)); + } } @Override public void fillPolygon(int[] points, int[] points2, int points3) { canvasGraphics.fillPolygon(points, points2, points3); - appendShape(new Polygon(points, points2, points3)); + if (drawingComponent && trackingAllowed) { + appendShape(new Polygon(points, points2, points3)); + } } @Override public void drawRect(int x, int y, int width, int height) { canvasGraphics.drawRect(x, y, width, height); - appendShapeOutline(new Rectangle(x, y, width, height)); + if (drawingComponent && trackingAllowed) { + appendShapeOutline(new Rectangle(x, y, width, height)); + } } @Override public void fillRect(int x, int y, int width, int height) { canvasGraphics.fillRect(x, y, width, height); - appendShape(new Rectangle(x, y, width, height)); + if (drawingComponent && trackingAllowed) { + appendShape(new Rectangle(x, y, width, height)); + } } @Override public void fillRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight) { canvasGraphics.fillRoundRect(x, y, width, height, arcWidth, arcHeight); - appendShape(new RoundRectangle2D.Double(x, y, width, height, arcWidth, arcHeight)); + if (drawingComponent && trackingAllowed) { + appendShape(new RoundRectangle2D.Double(x, y, width, height, arcWidth, arcHeight)); + } } @Override 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 6f9f6195..ed184ecb 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 @@ -365,7 +365,7 @@ public class Presenter implements IPlugInPort { } } // Draw the component through the g2dWrapper. - component.draw(g2dWrapper, state, currentProject); + component.draw(g2dWrapper, state, currentProject, g2dWrapper); componentAreaMap.put(component, g2dWrapper.finishedDrawingComponent()); } // Draw control points. diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/test/org/diylc/components/MockDIYComponent.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/test/org/diylc/components/MockDIYComponent.java index 4d0b4687..3c5cd5fb 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/test/org/diylc/components/MockDIYComponent.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/test/org/diylc/components/MockDIYComponent.java @@ -6,6 +6,7 @@ import java.awt.Point; import org.diylc.core.ComponentState; import org.diylc.core.IDIYComponent; +import org.diylc.core.IDrawingObserver; import org.diylc.core.Project; import org.diylc.core.annotations.ComponentDescriptor; import org.diylc.core.annotations.EditableProperty; @@ -115,7 +116,8 @@ public class MockDIYComponent implements IDIYComponent { } @Override - public void draw(Graphics2D g2d, ComponentState componentState, Project project) { + public void draw(Graphics2D g2d, ComponentState componentState, Project project, + IDrawingObserver drawingObserver) { g2d.setColor(componentState.equals(ComponentState.SELECTED) ? color : color.darker()); g2d.fillRect(leftTopCorner.x, leftTopCorner.y, 200, 50); } 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 3d9bc2db..bf72a54d 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 @@ -9,6 +9,7 @@ import java.awt.Point; import org.diylc.components.AbstractTransparentComponent; import org.diylc.core.ComponentState; +import org.diylc.core.IDrawingObserver; import org.diylc.core.Project; import org.diylc.core.annotations.EditableProperty; import org.diylc.core.measures.Size; @@ -32,7 +33,8 @@ public abstract class AbstractBoard extends AbstractTransparentComponent protected Color borderColor = BORDER_COLOR; @Override - public void draw(Graphics2D g2d, ComponentState componentState, Project project) { + public void draw(Graphics2D g2d, ComponentState componentState, Project project, + IDrawingObserver drawingObserver) { g2d.setStroke(new BasicStroke()); if (componentState != ComponentState.DRAGGING) { Composite oldComposite = g2d.getComposite(); @@ -49,6 +51,9 @@ public abstract class AbstractBoard extends AbstractTransparentComponent || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : borderColor); g2d.drawRect(controlPoints[0].x, controlPoints[0].y, controlPoints[1].x - controlPoints[0].x, controlPoints[1].y - controlPoints[0].y); + // Do not track any changes that follow because the whole board has been + // tracked so far. + drawingObserver.stopTracking(); } @EditableProperty(name = "Color") diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/boards/PerfBoard.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/boards/PerfBoard.java index 8e466c51..89c12e0b 100644 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/boards/PerfBoard.java +++ b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/boards/PerfBoard.java @@ -7,6 +7,7 @@ import java.awt.Point; import org.diylc.core.ComponentState; import org.diylc.core.IDIYComponent; +import org.diylc.core.IDrawingObserver; import org.diylc.core.Project; import org.diylc.core.annotations.ComponentDescriptor; import org.diylc.core.annotations.EditableProperty; @@ -30,9 +31,9 @@ public class PerfBoard extends AbstractBoard { protected Color padColor = PAD_COLOR; @Override - public void draw(Graphics2D g2d, ComponentState componentState, Project project) { - super.draw(g2d, componentState, project); - + public void draw(Graphics2D g2d, ComponentState componentState, Project project, + IDrawingObserver drawingObserver) { + super.draw(g2d, componentState, project, drawingObserver); if (componentState != ComponentState.DRAGGING) { if (alpha < MAX_ALPHA) { g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1f * alpha diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/boards/VeroBoard.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/boards/VeroBoard.java index c90b85be..9861989e 100644 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/boards/VeroBoard.java +++ b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/boards/VeroBoard.java @@ -8,6 +8,7 @@ import java.awt.Point; import org.diylc.core.ComponentState; import org.diylc.core.IDIYComponent; +import org.diylc.core.IDrawingObserver; import org.diylc.core.Project; import org.diylc.core.annotations.ComponentDescriptor; import org.diylc.core.annotations.EditableProperty; @@ -32,8 +33,9 @@ public class VeroBoard extends AbstractBoard { protected Color padColor = PAD_COLOR; @Override - public void draw(Graphics2D g2d, ComponentState componentState, Project project) { - super.draw(g2d, componentState, project); + public void draw(Graphics2D g2d, ComponentState componentState, Project project, + IDrawingObserver drawingObserver) { + super.draw(g2d, componentState, project, drawingObserver); if (componentState != ComponentState.DRAGGING) { Composite oldComposite = g2d.getComposite(); diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/connectivity/SolderPad.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/connectivity/SolderPad.java index 8321a049..66b8ad22 100644 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/connectivity/SolderPad.java +++ b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/connectivity/SolderPad.java @@ -7,6 +7,7 @@ import java.awt.Point; import org.diylc.components.AbstractComponent; import org.diylc.core.ComponentState; import org.diylc.core.IDIYComponent; +import org.diylc.core.IDrawingObserver; import org.diylc.core.Project; import org.diylc.core.annotations.ComponentDescriptor; import org.diylc.core.annotations.EditableProperty; @@ -28,7 +29,8 @@ public class SolderPad extends AbstractComponent { private Point point = new Point(0, 0); @Override - public void draw(Graphics2D g2d, ComponentState componentState, Project project) { + public void draw(Graphics2D g2d, ComponentState componentState, Project project, + IDrawingObserver drawingObserver) { int diameter = getClosestOdd(size.convertToPixels()); int holeDiameter = getClosestOdd(HOLE_SIZE.convertToPixels()); g2d.setColor(componentState == ComponentState.SELECTED @@ -94,7 +96,7 @@ public class SolderPad extends AbstractComponent { public Void getValue() { return null; } - + @Override public void setValue(Void value) { } diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/connectivity/TraceCut.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/connectivity/TraceCut.java index 4fb3c35f..2307c4d2 100644 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/connectivity/TraceCut.java +++ b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/connectivity/TraceCut.java @@ -7,6 +7,7 @@ import java.awt.Graphics2D; import org.diylc.components.AbstractSinglePointComponent; import org.diylc.core.ComponentState; import org.diylc.core.IDIYComponent; +import org.diylc.core.IDrawingObserver; import org.diylc.core.Project; import org.diylc.core.annotations.ComponentDescriptor; import org.diylc.core.annotations.EditableProperty; @@ -28,7 +29,8 @@ public class TraceCut extends AbstractSinglePointComponent { private Color borderColor = BORDER_COLOR; @Override - public void draw(Graphics2D g2d, ComponentState componentState, Project project) { + public void draw(Graphics2D g2d, ComponentState componentState, Project project, + IDrawingObserver drawingObserver) { int size = this.size.convertToPixels() / 2 * 2; int dotDiameter = (size / 3 * 2) / 2 * 2 + 1; g2d.setColor(fillColor); diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/electromechanical/MiniToggleSwitch.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/electromechanical/MiniToggleSwitch.java index 00a60cf6..aff26f03 100644 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/electromechanical/MiniToggleSwitch.java +++ b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/electromechanical/MiniToggleSwitch.java @@ -12,6 +12,7 @@ import java.awt.geom.RoundRectangle2D; import org.diylc.components.AbstractTransparentComponent; import org.diylc.core.ComponentState; import org.diylc.core.IDIYComponent; +import org.diylc.core.IDrawingObserver; import org.diylc.core.Project; import org.diylc.core.annotations.ComponentDescriptor; import org.diylc.core.annotations.EditableProperty; @@ -153,7 +154,8 @@ public class MiniToggleSwitch extends AbstractTransparentComponent { private Point point = new Point(0, 0); @Override - public void draw(Graphics2D g2d, ComponentState componentState, Project project) { + public void draw(Graphics2D g2d, ComponentState componentState, Project project, + IDrawingObserver drawingObserver) { List bom = BomMaker.getInstance().createBom(project.getComponents()); // Cleanup entries that do not have a value set. Iterator iterator = bom.iterator(); diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/misc/ProjectInformation.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/misc/ProjectInformation.java index fcbe87f9..4fe87e63 100644 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/misc/ProjectInformation.java +++ b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/misc/ProjectInformation.java @@ -10,6 +10,7 @@ import java.awt.geom.Rectangle2D; import org.diylc.components.AbstractComponent; import org.diylc.core.ComponentState; import org.diylc.core.IDIYComponent; +import org.diylc.core.IDrawingObserver; import org.diylc.core.Project; import org.diylc.core.annotations.ComponentDescriptor; import org.diylc.core.measures.Size; @@ -28,7 +29,8 @@ public class ProjectInformation extends AbstractComponent { private Point point = new Point(0, 0); @Override - public void draw(Graphics2D g2d, ComponentState componentState, Project project) { + public void draw(Graphics2D g2d, ComponentState componentState, Project project, + IDrawingObserver drawingObserver) { g2d.setFont(Constants.LABEL_FONT); g2d.setColor(componentState == ComponentState.DRAGGING || componentState == ComponentState.SELECTED ? SELECTION_COLOR : COLOR); diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/semiconductors/DIL_IC.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/semiconductors/DIL_IC.java index f0ddad31..edb53cf9 100644 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/semiconductors/DIL_IC.java +++ b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/semiconductors/DIL_IC.java @@ -16,6 +16,7 @@ import org.diylc.common.Orientation; import org.diylc.components.AbstractTransparentComponent; import org.diylc.core.ComponentState; import org.diylc.core.IDIYComponent; +import org.diylc.core.IDrawingObserver; import org.diylc.core.Project; import org.diylc.core.annotations.ComponentDescriptor; import org.diylc.core.annotations.EditableProperty; @@ -44,13 +45,16 @@ public class DIL_IC extends AbstractTransparentComponent { private Size pinSpacing = new Size(0.1d, SizeUnit.in); private Size rowSpacing = new Size(0.3d, SizeUnit.in); private Point[] controlPoints = new Point[] { new Point(0, 0) }; -// new Point(0, pinSpacing.convertToPixels()), -// new Point(0, 2 * pinSpacing.convertToPixels()), -// new Point(0, 3 * pinSpacing.convertToPixels()), -// new Point(3 * pinSpacing.convertToPixels(), 0), -// new Point(3 * pinSpacing.convertToPixels(), pinSpacing.convertToPixels()), -// new Point(3 * pinSpacing.convertToPixels(), 2 * pinSpacing.convertToPixels()), -// new Point(3 * pinSpacing.convertToPixels(), 3 * pinSpacing.convertToPixels()) }; + // new Point(0, pinSpacing.convertToPixels()), + // new Point(0, 2 * pinSpacing.convertToPixels()), + // new Point(0, 3 * pinSpacing.convertToPixels()), + // new Point(3 * pinSpacing.convertToPixels(), 0), + // new Point(3 * pinSpacing.convertToPixels(), + // pinSpacing.convertToPixels()), + // new Point(3 * pinSpacing.convertToPixels(), 2 * + // pinSpacing.convertToPixels()), + // new Point(3 * pinSpacing.convertToPixels(), 3 * + // pinSpacing.convertToPixels()) }; private Shape body; public DIL_IC() { @@ -212,7 +216,8 @@ public class DIL_IC extends AbstractTransparentComponent { } @Override - public void draw(Graphics2D g2d, ComponentState componentState, Project project) { + public void draw(Graphics2D g2d, ComponentState componentState, Project project, + IDrawingObserver drawingObserver) { int pinSize = PIN_SIZE.convertToPixels() / 2 * 2; for (Point point : controlPoints) { g2d.setColor(PIN_COLOR);