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 60c51b4a..7b4aebce 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/update.xml b/ diy-layout-creator --username bancika@gmail.com/DIYLC/update.xml index 3f216920..be6466b9 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/update.xml +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/update.xml @@ -175,6 +175,10 @@ NEW_FEATURE Added capacitor schematic symbol + + NEW_FEATURE + Added eyelet/turret component + http://code.google.com/p/diy-layout-creator/downloads/list diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/boards/EyeletBoard.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/boards/EyeletBoard.java index 59ded63b..4fe5f1a9 100644 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/boards/EyeletBoard.java +++ b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/boards/EyeletBoard.java @@ -22,9 +22,9 @@ public class EyeletBoard extends AbstractBoard { public static Color EYELET_COLOR = Color.decode("#C3E4ED"); - public static Size SPACING = new Size(0.3d, SizeUnit.in); - public static Size EYELET_SIZE = new Size(1/8d, SizeUnit.in); - public static Size HOLE_SIZE = new Size(2d, SizeUnit.mm); + public static Size SPACING = new Size(0.5d, SizeUnit.in); + public static Size EYELET_SIZE = new Size(0.2d, SizeUnit.in); + public static Size HOLE_SIZE = new Size(0.1d, SizeUnit.in); // private Area copperArea; protected Size spacing = SPACING; diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/connectivity/Eyelet.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/connectivity/Eyelet.java new file mode 100644 index 00000000..8a5b4207 --- /dev/null +++ b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/connectivity/Eyelet.java @@ -0,0 +1,136 @@ +package org.diylc.components.connectivity; + +import java.awt.Color; +import java.awt.Graphics2D; +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.VisibilityPolicy; +import org.diylc.core.annotations.ComponentDescriptor; +import org.diylc.core.annotations.EditableProperty; +import org.diylc.core.measures.Size; +import org.diylc.core.measures.SizeUnit; +import org.diylc.utils.Constants; + +@ComponentDescriptor(name = "Eyelet", category = "Connectivity", author = "Branislav Stojkovic", description = "Eyelet or turret terminal", instanceNamePrefix = "Eyelet", stretchable = false, zOrder = IDIYComponent.TRACE + 0.1) +public class Eyelet extends AbstractComponent { + + private static final long serialVersionUID = 1L; + + public static Size SIZE = new Size(0.2d, SizeUnit.in); + public static Size HOLE_SIZE = new Size(0.1d, SizeUnit.in); + public static Color COLOR = Color.decode("#C3E4ED"); + + private Size size = SIZE; + private Size holeSize = HOLE_SIZE; + private Color color = COLOR; + private Point point = new Point(0, 0); + private String value = ""; + + @Override + public void draw(Graphics2D g2d, ComponentState componentState, Project project, + IDrawingObserver drawingObserver) { + int diameter = getClosestOdd(size.convertToPixels()); + int holeDiameter = getClosestOdd(holeSize.convertToPixels()); + g2d.setColor(color); + g2d.fillOval(point.x - diameter / 2, point.y - diameter / 2, diameter, diameter); + g2d.setColor(componentState == ComponentState.SELECTED + || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : color.darker()); + g2d.drawOval(point.x - diameter / 2, point.y - diameter / 2, diameter, diameter); + g2d.setColor(Constants.CANVAS_COLOR); + g2d.fillOval(point.x - holeDiameter / 2, point.y - holeDiameter / 2, holeDiameter, + holeDiameter); + g2d.setColor(componentState == ComponentState.SELECTED + || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : color.darker()); + g2d.drawOval(point.x - holeDiameter / 2, point.y - holeDiameter / 2, holeDiameter, + holeDiameter); + } + + @Override + public void drawIcon(Graphics2D g2d, int width, int height) { + int diameter = getClosestOdd(width / 2); + int holeDiameter = 5; + g2d.setColor(COLOR); + g2d.fillOval((width - diameter) / 2, (height - diameter) / 2, diameter, diameter); + g2d.setColor(COLOR.darker()); + g2d.drawOval((width - diameter) / 2, (height - diameter) / 2, diameter, diameter); + g2d.setColor(Constants.CANVAS_COLOR); + g2d.fillOval((width - holeDiameter) / 2, (height - holeDiameter) / 2, holeDiameter, + holeDiameter); + g2d.setColor(COLOR.darker()); + g2d.drawOval((width - holeDiameter) / 2, (height - holeDiameter) / 2, holeDiameter, + holeDiameter); + } + + @EditableProperty + public Size getSize() { + return size; + } + + public void setSize(Size size) { + this.size = size; + } + + @EditableProperty(name = "Hole size") + public Size getHoleSize() { + return holeSize; + } + + public void setHoleSize(Size holeSize) { + this.holeSize = holeSize; + } + + @Override + public String getName() { + return super.getName(); + } + + @Override + public int getControlPointCount() { + return 1; + } + + @Override + public boolean isControlPointSticky(int index) { + return true; + } + + @Override + public VisibilityPolicy getControlPointVisibilityPolicy(int index) { + return VisibilityPolicy.NEVER; + } + + @Override + public Point getControlPoint(int index) { + return point; + } + + @Override + public void setControlPoint(Point point, int index) { + this.point.setLocation(point); + } + + @EditableProperty(name = "Color") + public Color getColor() { + return color; + } + + public void setColor(Color color) { + this.color = color; + } + + @Override + @EditableProperty + public String getValue() { + return value; + } + + @Override + public void setValue(String value) { + this.value = value; + } +}