mirror of
https://github.com/bancika/diy-layout-creator
synced 2026-11-10 01:02:08 +10:00
76 lines
2.0 KiB
Java
76 lines
2.0 KiB
Java
package org.diylc.components.connectivity;
|
|
|
|
import java.awt.Color;
|
|
import java.awt.Graphics2D;
|
|
import java.awt.geom.CubicCurve2D;
|
|
|
|
import org.diylc.common.ObjectCache;
|
|
import org.diylc.components.AbstractCurvedComponent;
|
|
import org.diylc.core.ComponentState;
|
|
import org.diylc.core.IDIYComponent;
|
|
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;
|
|
|
|
@ComponentDescriptor(name = "Curved Trace", author = "Branislav Stojkovic", category = "Connectivity", instanceNamePrefix = "Trace", description = "Curved copper trace with two control points", zOrder = IDIYComponent.TRACE)
|
|
public class CurvedTrace extends AbstractCurvedComponent<Void> {
|
|
|
|
private static final long serialVersionUID = 1L;
|
|
|
|
public static Color COLOR = Color.black;
|
|
public static Size SIZE = new Size(1d, SizeUnit.mm);
|
|
|
|
protected Size size = SIZE;
|
|
|
|
@Override
|
|
protected Color getDefaultColor() {
|
|
return COLOR;
|
|
}
|
|
|
|
@Override
|
|
protected void drawCurve(CubicCurve2D curve, Graphics2D g2d, ComponentState componentState) {
|
|
int thickness = size.convertToPixels();
|
|
g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(thickness));
|
|
g2d.setColor(componentState == ComponentState.SELECTED
|
|
|| componentState == ComponentState.DRAGGING ? SELECTION_COLOR : color);
|
|
g2d.draw(curve);
|
|
}
|
|
|
|
@Override
|
|
public VisibilityPolicy getControlPointVisibilityPolicy(int index) {
|
|
return VisibilityPolicy.NEVER;
|
|
}
|
|
|
|
@EditableProperty(name = "Width")
|
|
public Size getSize() {
|
|
return size;
|
|
}
|
|
|
|
public void setSize(Size size) {
|
|
this.size = size;
|
|
}
|
|
|
|
@Deprecated
|
|
@Override
|
|
public Void getValue() {
|
|
return null;
|
|
}
|
|
|
|
@Override
|
|
public void setValue(Void value) {
|
|
}
|
|
|
|
@Deprecated
|
|
@Override
|
|
public Byte getAlpha() {
|
|
return super.getAlpha();
|
|
}
|
|
|
|
@Override
|
|
public void setAlpha(Byte alpha) {
|
|
super.setAlpha(alpha);
|
|
}
|
|
}
|