mirror of
https://github.com/bancika/diy-layout-creator
synced 2026-11-10 09:12:09 +10:00
add terminal labels to pickups
This commit is contained in:
@@ -283,6 +283,6 @@ public abstract class AbstractComponent<T> implements IDIYComponent<T> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getControlPointNodeName(int index) {
|
public String getControlPointNodeName(int index) {
|
||||||
return Integer.toString(index);
|
return Integer.toString(index + 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -60,6 +60,8 @@ public class HumbuckerPickup extends AbstractTransparentComponent<String> {
|
|||||||
|
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
private static final int TERMINAL_FONT_SIZE = 11;
|
||||||
|
|
||||||
private static Color BASE_COLOR = Color.lightGray;
|
private static Color BASE_COLOR = Color.lightGray;
|
||||||
private static Color BOBIN_COLOR1 = Color.decode("#EAE3C6");
|
private static Color BOBIN_COLOR1 = Color.decode("#EAE3C6");
|
||||||
private static Color BOBIN_COLOR2 = Color.black;
|
private static Color BOBIN_COLOR2 = Color.black;
|
||||||
@@ -203,6 +205,35 @@ public class HumbuckerPickup extends AbstractTransparentComponent<String> {
|
|||||||
Rectangle bounds = body[0].getBounds();
|
Rectangle bounds = body[0].getBounds();
|
||||||
drawCenteredText(g2d, value, bounds.x + bounds.width / 2, bounds.y + bounds.height / 2, HorizontalAlignment.CENTER,
|
drawCenteredText(g2d, value, bounds.x + bounds.width / 2, bounds.y + bounds.height / 2, HorizontalAlignment.CENTER,
|
||||||
VerticalAlignment.CENTER);
|
VerticalAlignment.CENTER);
|
||||||
|
|
||||||
|
// terminal labels
|
||||||
|
Point[] points = getControlPoints();
|
||||||
|
g2d.setColor(finalBorderColor);
|
||||||
|
|
||||||
|
g2d.setFont(project.getFont().deriveFont(TERMINAL_FONT_SIZE * 1f));
|
||||||
|
int dx = 0;
|
||||||
|
int dy = 0;
|
||||||
|
switch (orientation) {
|
||||||
|
case DEFAULT:
|
||||||
|
dx = (int) (TERMINAL_FONT_SIZE * 0.8);
|
||||||
|
dy = 0;
|
||||||
|
break;
|
||||||
|
case _90:
|
||||||
|
dx = 0;
|
||||||
|
dy = (int) (TERMINAL_FONT_SIZE * 0.8);
|
||||||
|
break;
|
||||||
|
case _180:
|
||||||
|
dx = -(int) (TERMINAL_FONT_SIZE * 0.8);
|
||||||
|
dy = 0;
|
||||||
|
break;
|
||||||
|
case _270:
|
||||||
|
dx = 0;
|
||||||
|
dy = -(int) (TERMINAL_FONT_SIZE * 0.8);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
drawCenteredText(g2d, "N", (points[0].x + points[1].x) / 2 + dx, (points[0].y + points[1].y) / 2 + dy, HorizontalAlignment.CENTER, VerticalAlignment.CENTER);
|
||||||
|
drawCenteredText(g2d, "S", (points[2].x + points[3].x) / 2 + dx, (points[2].y + points[3].y) / 2 + dy, HorizontalAlignment.CENTER, VerticalAlignment.CENTER);
|
||||||
}
|
}
|
||||||
|
|
||||||
private Point[] getControlPoints() {
|
private Point[] getControlPoints() {
|
||||||
|
|||||||
@@ -61,7 +61,9 @@ import org.diylc.utils.Constants;
|
|||||||
keywordPolicy = KeywordPolicy.SHOW_TAG, keywordTag = "Guitar Wiring Diagram")
|
keywordPolicy = KeywordPolicy.SHOW_TAG, keywordTag = "Guitar Wiring Diagram")
|
||||||
public class SingleCoilPickup extends AbstractTransparentComponent<String> {
|
public class SingleCoilPickup extends AbstractTransparentComponent<String> {
|
||||||
|
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
private static final int TERMINAL_FONT_SIZE = 11;
|
||||||
|
|
||||||
private static Color BODY_COLOR = Color.white;
|
private static Color BODY_COLOR = Color.white;
|
||||||
private static Color BASE_COLOR = Color.gray;
|
private static Color BASE_COLOR = Color.gray;
|
||||||
@@ -232,7 +234,40 @@ public class SingleCoilPickup extends AbstractTransparentComponent<String> {
|
|||||||
g2d.setFont(project.getFont());
|
g2d.setFont(project.getFont());
|
||||||
Rectangle bounds = body[3].getBounds();
|
Rectangle bounds = body[3].getBounds();
|
||||||
drawCenteredText(g2d, value, bounds.x + bounds.width / 2, bounds.y + bounds.height / 2, HorizontalAlignment.CENTER,
|
drawCenteredText(g2d, value, bounds.x + bounds.width / 2, bounds.y + bounds.height / 2, HorizontalAlignment.CENTER,
|
||||||
VerticalAlignment.CENTER);
|
VerticalAlignment.CENTER);
|
||||||
|
|
||||||
|
// terminal labels
|
||||||
|
Point[] points = getControlPoints();
|
||||||
|
g2d.setColor(finalBorderColor);
|
||||||
|
|
||||||
|
g2d.setFont(project.getFont().deriveFont(TERMINAL_FONT_SIZE * 1f));
|
||||||
|
int dx = 0;
|
||||||
|
int dy = 0;
|
||||||
|
switch (orientation) {
|
||||||
|
case DEFAULT:
|
||||||
|
dx = 0;
|
||||||
|
dy = -TERMINAL_FONT_SIZE;
|
||||||
|
break;
|
||||||
|
case _90:
|
||||||
|
dx = TERMINAL_FONT_SIZE;
|
||||||
|
dy = 0;
|
||||||
|
break;
|
||||||
|
case _180:
|
||||||
|
dx = 0;
|
||||||
|
dy = TERMINAL_FONT_SIZE;
|
||||||
|
break;
|
||||||
|
case _270:
|
||||||
|
dx = -TERMINAL_FONT_SIZE;
|
||||||
|
dy = 0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (getPolarity() == Polarity.North || getPolarity() == Polarity.South) {
|
||||||
|
drawCenteredText(g2d, getPolarity().name().substring(0, 1), (points[1].x + points[2].x) / 2 + dx, (points[1].y + points[2].y) / 2 + dy, HorizontalAlignment.CENTER,
|
||||||
|
VerticalAlignment.CENTER);
|
||||||
|
} else {
|
||||||
|
drawCenteredText(g2d, "N", (points[0].x + points[1].x) / 2 + dx, (points[0].y + points[1].y) / 2 + dy, HorizontalAlignment.CENTER, VerticalAlignment.CENTER);
|
||||||
|
drawCenteredText(g2d, "S", (points[2].x + points[3].x) / 2 + dx, (points[2].y + points[3].y) / 2 + dy, HorizontalAlignment.CENTER, VerticalAlignment.CENTER);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("incomplete-switch")
|
@SuppressWarnings("incomplete-switch")
|
||||||
@@ -377,7 +412,7 @@ public class SingleCoilPickup extends AbstractTransparentComponent<String> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
body[1] = new Area();
|
body[1] = new Area();
|
||||||
double lugHole = getClosestOdd(lugDiameter / 2);
|
double lugHole = getClosestOdd(lugDiameter * 0.4);
|
||||||
for (int i = getPolarity() == Polarity.Humbucking ? 0 : 1; i < (getPolarity() == Polarity.Humbucking ? 4 : 3); i++) {
|
for (int i = getPolarity() == Polarity.Humbucking ? 0 : 1; i < (getPolarity() == Polarity.Humbucking ? 4 : 3); i++) {
|
||||||
Point p = points[i];
|
Point p = points[i];
|
||||||
((Area)body[1]).add(new Area(new Ellipse2D.Double(p.x - lugDiameter / 2, p.y - lugDiameter / 2, lugDiameter, lugDiameter)));
|
((Area)body[1]).add(new Area(new Ellipse2D.Double(p.x - lugDiameter / 2, p.y - lugDiameter / 2, lugDiameter, lugDiameter)));
|
||||||
|
|||||||
Binary file not shown.
Reference in New Issue
Block a user