mirror of
https://github.com/bancika/diy-layout-creator
synced 2026-11-11 01:32:08 +10:00
Added connector dot component
Zero-sized holes on pads
This commit is contained in:
+111
@@ -0,0 +1,111 @@
|
|||||||
|
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.BomPolicy;
|
||||||
|
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 = "Dot", category = "Connectivity", author = "Branislav Stojkovic", description = "Connector dot", instanceNamePrefix = "Dot", stretchable = false, zOrder = IDIYComponent.COMPONENT, bomPolicy = BomPolicy.NEVER_SHOW, autoEdit = false)
|
||||||
|
public class Dot extends AbstractComponent<Void> {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
public static Size SIZE = new Size(1d, SizeUnit.mm);
|
||||||
|
public static Color COLOR = Color.black;
|
||||||
|
|
||||||
|
private Size size = SIZE;
|
||||||
|
private Color color = COLOR;
|
||||||
|
private Point point = new Point(0, 0);
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void draw(Graphics2D g2d, ComponentState componentState,
|
||||||
|
boolean outlineMode, Project project,
|
||||||
|
IDrawingObserver drawingObserver) {
|
||||||
|
if (checkPointsClipped(g2d.getClip())) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
int diameter = getClosestOdd((int) getSize().convertToPixels());
|
||||||
|
g2d.setColor(componentState == ComponentState.SELECTED
|
||||||
|
|| componentState == ComponentState.DRAGGING ? SELECTION_COLOR
|
||||||
|
: color);
|
||||||
|
g2d.fillOval(point.x - diameter / 2, point.y - diameter / 2, diameter,
|
||||||
|
diameter);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void drawIcon(Graphics2D g2d, int width, int height) {
|
||||||
|
int diameter = 7 * width / 32;
|
||||||
|
g2d.setColor(COLOR);
|
||||||
|
g2d.fillOval((width - diameter) / 2, (height - diameter) / 2, diameter,
|
||||||
|
diameter);
|
||||||
|
}
|
||||||
|
|
||||||
|
@EditableProperty
|
||||||
|
public Size getSize() {
|
||||||
|
return size;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSize(Size size) {
|
||||||
|
this.size = size;
|
||||||
|
}
|
||||||
|
|
||||||
|
@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
|
||||||
|
public Void getValue() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setValue(Void value) {
|
||||||
|
}
|
||||||
|
}
|
||||||
+21
-14
@@ -18,7 +18,7 @@ import org.diylc.core.measures.Size;
|
|||||||
import org.diylc.core.measures.SizeUnit;
|
import org.diylc.core.measures.SizeUnit;
|
||||||
import org.diylc.utils.Constants;
|
import org.diylc.utils.Constants;
|
||||||
|
|
||||||
@ComponentDescriptor(name = "Solder Pad", category = "Connectivity", author = "Branislav Stojkovic", description = "test", instanceNamePrefix = "Pad", stretchable = false, zOrder = IDIYComponent.TRACE + 0.1, bomPolicy = BomPolicy.NEVER_SHOW, autoEdit = false)
|
@ComponentDescriptor(name = "Solder Pad", category = "Connectivity", author = "Branislav Stojkovic", description = "Copper solder pad, round or square", instanceNamePrefix = "Pad", stretchable = false, zOrder = IDIYComponent.TRACE + 0.1, bomPolicy = BomPolicy.NEVER_SHOW, autoEdit = false)
|
||||||
public class SolderPad extends AbstractComponent<Void> {
|
public class SolderPad extends AbstractComponent<Void> {
|
||||||
|
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
@@ -35,23 +35,29 @@ public class SolderPad extends AbstractComponent<Void> {
|
|||||||
private PCBLayer layer = PCBLayer._1;
|
private PCBLayer layer = PCBLayer._1;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void draw(Graphics2D g2d, ComponentState componentState, boolean outlineMode,
|
public void draw(Graphics2D g2d, ComponentState componentState,
|
||||||
Project project, IDrawingObserver drawingObserver) {
|
boolean outlineMode, Project project,
|
||||||
|
IDrawingObserver drawingObserver) {
|
||||||
if (checkPointsClipped(g2d.getClip())) {
|
if (checkPointsClipped(g2d.getClip())) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
int diameter = getClosestOdd((int) getSize().convertToPixels());
|
int diameter = getClosestOdd((int) getSize().convertToPixels());
|
||||||
int holeDiameter = getClosestOdd((int) getHoleSize().convertToPixels());
|
int holeDiameter = getClosestOdd((int) getHoleSize().convertToPixels());
|
||||||
g2d.setColor(componentState == ComponentState.SELECTED
|
g2d.setColor(componentState == ComponentState.SELECTED
|
||||||
|| componentState == ComponentState.DRAGGING ? SELECTION_COLOR : color);
|
|| componentState == ComponentState.DRAGGING ? SELECTION_COLOR
|
||||||
|
: color);
|
||||||
if (type == Type.ROUND) {
|
if (type == Type.ROUND) {
|
||||||
g2d.fillOval(point.x - diameter / 2, point.y - diameter / 2, diameter, diameter);
|
g2d.fillOval(point.x - diameter / 2, point.y - diameter / 2,
|
||||||
|
diameter, diameter);
|
||||||
} else {
|
} else {
|
||||||
g2d.fillRect(point.x - diameter / 2, point.y - diameter / 2, diameter, diameter);
|
g2d.fillRect(point.x - diameter / 2, point.y - diameter / 2,
|
||||||
|
diameter, diameter);
|
||||||
|
}
|
||||||
|
if (getHoleSize().getValue() > 0) {
|
||||||
|
g2d.setColor(Constants.CANVAS_COLOR);
|
||||||
|
g2d.fillOval(point.x - holeDiameter / 2,
|
||||||
|
point.y - holeDiameter / 2, holeDiameter, holeDiameter);
|
||||||
}
|
}
|
||||||
g2d.setColor(Constants.CANVAS_COLOR);
|
|
||||||
g2d.fillOval(point.x - holeDiameter / 2, point.y - holeDiameter / 2, holeDiameter,
|
|
||||||
holeDiameter);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -59,10 +65,11 @@ public class SolderPad extends AbstractComponent<Void> {
|
|||||||
int diameter = getClosestOdd(width / 2);
|
int diameter = getClosestOdd(width / 2);
|
||||||
int holeDiameter = 5;
|
int holeDiameter = 5;
|
||||||
g2d.setColor(COLOR);
|
g2d.setColor(COLOR);
|
||||||
g2d.fillOval((width - diameter) / 2, (height - diameter) / 2, diameter, diameter);
|
g2d.fillOval((width - diameter) / 2, (height - diameter) / 2, diameter,
|
||||||
|
diameter);
|
||||||
g2d.setColor(Constants.CANVAS_COLOR);
|
g2d.setColor(Constants.CANVAS_COLOR);
|
||||||
g2d.fillOval((width - holeDiameter) / 2, (height - holeDiameter) / 2, holeDiameter,
|
g2d.fillOval((width - holeDiameter) / 2, (height - holeDiameter) / 2,
|
||||||
holeDiameter);
|
holeDiameter, holeDiameter);
|
||||||
}
|
}
|
||||||
|
|
||||||
@EditableProperty
|
@EditableProperty
|
||||||
@@ -85,7 +92,7 @@ public class SolderPad extends AbstractComponent<Void> {
|
|||||||
public void setHoleSize(Size holeSize) {
|
public void setHoleSize(Size holeSize) {
|
||||||
this.holeSize = holeSize;
|
this.holeSize = holeSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
@EditableProperty
|
@EditableProperty
|
||||||
public PCBLayer getLayer() {
|
public PCBLayer getLayer() {
|
||||||
if (layer == null) {
|
if (layer == null) {
|
||||||
@@ -93,7 +100,7 @@ public class SolderPad extends AbstractComponent<Void> {
|
|||||||
}
|
}
|
||||||
return layer;
|
return layer;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setLayer(PCBLayer layer) {
|
public void setLayer(PCBLayer layer) {
|
||||||
this.layer = layer;
|
this.layer = layer;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user