From 8b0af57c35b43da7a680819cb685dec6295d4604 Mon Sep 17 00:00:00 2001 From: bancika Date: Wed, 28 Dec 2016 13:58:32 +0100 Subject: [PATCH] tree improvements perfboard improvements trace cut improvements --- .../diylc/components/AbstractComponent.java | 1 + diylc/diylc-library/lib/diylc-core.jar | Bin 230177 -> 230206 bytes .../components/boards/AbstractBoard.java | 2 +- .../diylc/components/boards/TriPadBoard.java | 13 ++-- .../diylc/components/boards/VeroBoard.java | 25 ++++--- .../components/connectivity/TraceCut.java | 63 ++++++++++++------ diylc/diylc-swing/lib/diylc-core.jar | Bin 230177 -> 230206 bytes diylc/diylc-swing/library/main.jar | Bin 352941 -> 353151 bytes .../diylc/swing/plugins/tree/TreePanel.java | 17 +++-- diylc/diylc-swing/update.xml | 14 +++- 10 files changed, 90 insertions(+), 45 deletions(-) diff --git a/diylc/diylc-core/src/org/diylc/components/AbstractComponent.java b/diylc/diylc-core/src/org/diylc/components/AbstractComponent.java index c799d1f3..5126a647 100644 --- a/diylc/diylc-core/src/org/diylc/components/AbstractComponent.java +++ b/diylc/diylc-core/src/org/diylc/components/AbstractComponent.java @@ -42,6 +42,7 @@ public abstract class AbstractComponent implements IDIYComponent { public static Color LABEL_COLOR_SELECTED = Color.red; public static Font LABEL_FONT = new Font("Tahoma", Font.PLAIN, 14); public static Color METAL_COLOR = Color.decode("#236B8E"); + public static Color COPPER_COLOR = Color.decode("#DA8A67"); @EditableProperty(defaultable = false) @Override diff --git a/diylc/diylc-library/lib/diylc-core.jar b/diylc/diylc-library/lib/diylc-core.jar index f7d7dba7b2ac7e7d88f442a8d50d2f3947b73ae5..27fcca1aeb28e9bdd1fa699a6122f31b40614e8c 100644 GIT binary patch delta 11034 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 delta 10839 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 diff --git a/diylc/diylc-library/src/org/diylc/components/boards/AbstractBoard.java b/diylc/diylc-library/src/org/diylc/components/boards/AbstractBoard.java index 2fb5f8a8..e2651a25 100644 --- a/diylc/diylc-library/src/org/diylc/components/boards/AbstractBoard.java +++ b/diylc/diylc-library/src/org/diylc/components/boards/AbstractBoard.java @@ -79,7 +79,7 @@ public abstract class AbstractBoard extends AbstractTransparentComponent t = 1; while (p.x < secondPoint.x - spacing) { p.x += spacing; - super.drawCenteredText(g2d, getCoordinateLabel(t++), p.x, p.y - 2, HorizontalAlignment.CENTER, + super.drawCenteredText(g2d, Integer.toString(t++), p.x, p.y - 2, HorizontalAlignment.CENTER, VerticalAlignment.TOP); } } diff --git a/diylc/diylc-library/src/org/diylc/components/boards/TriPadBoard.java b/diylc/diylc-library/src/org/diylc/components/boards/TriPadBoard.java index c2ba28cc..83c38db2 100644 --- a/diylc/diylc-library/src/org/diylc/components/boards/TriPadBoard.java +++ b/diylc/diylc-library/src/org/diylc/components/boards/TriPadBoard.java @@ -26,8 +26,7 @@ import org.diylc.utils.Constants; public class TriPadBoard extends AbstractBoard { private static final long serialVersionUID = 1L; - - public static Color STRIP_COLOR = Color.decode("#DA8A67"); + public static Color BORDER_COLOR = BOARD_COLOR.darker(); public static Size SPACING = new Size(0.1d, SizeUnit.in); @@ -37,7 +36,7 @@ public class TriPadBoard extends AbstractBoard { protected int stripSpan = 3; // determines how many holes are covered by a // strip protected Size spacing = SPACING; - protected Color stripColor = STRIP_COLOR; + protected Color stripColor = COPPER_COLOR; protected OrientationHV orientation = OrientationHV.HORIZONTAL; @Override @@ -132,6 +131,8 @@ public class TriPadBoard extends AbstractBoard { } } g2d.setComposite(oldComposite); + + super.drawCoordinates(g2d, spacing); } } @@ -174,10 +175,10 @@ public class TriPadBoard extends AbstractBoard { final int verticalIndent = verticalSpacing / 2; for (int row = 0; row < 5; row++) { - g2d.setColor(STRIP_COLOR); + g2d.setColor(COPPER_COLOR); g2d.fillRect(0, row * verticalSpacing + 2, horizontalIndent / 2 + horizontalSpacing, verticalSpacing - 1); - g2d.setColor(STRIP_COLOR); + g2d.setColor(COPPER_COLOR); g2d.fillRect(horizontalSpacing + 2, row * verticalSpacing + 2, horizontalSpacing * 3 - 1, verticalSpacing - 1); g2d.fillRect(horizontalSpacing * 4 + 2, row * verticalSpacing + 2, horizontalIndent / 2 + horizontalSpacing, @@ -191,7 +192,7 @@ public class TriPadBoard extends AbstractBoard { int x = (horizontalSpacing * col) + horizontalIndent; g2d.setColor(Constants.CANVAS_COLOR); g2d.fillOval(x, y, 2, 2); - g2d.setColor(STRIP_COLOR.darker()); + g2d.setColor(COPPER_COLOR.darker()); g2d.drawOval(x, y, 2, 2); } } diff --git a/diylc/diylc-library/src/org/diylc/components/boards/VeroBoard.java b/diylc/diylc-library/src/org/diylc/components/boards/VeroBoard.java index 8edcf940..d0e69eaf 100644 --- a/diylc/diylc-library/src/org/diylc/components/boards/VeroBoard.java +++ b/diylc/diylc-library/src/org/diylc/components/boards/VeroBoard.java @@ -28,7 +28,6 @@ public class VeroBoard extends AbstractBoard { private static final long serialVersionUID = 1L; - public static Color STRIP_COLOR = Color.decode("#DA8A67"); public static Color BORDER_COLOR = BOARD_COLOR.darker(); public static Size SPACING = new Size(0.1d, SizeUnit.in); @@ -36,7 +35,7 @@ public class VeroBoard extends AbstractBoard { public static Size HOLE_SIZE = new Size(0.7d, SizeUnit.mm); protected Size spacing = SPACING; - protected Color stripColor = STRIP_COLOR; + protected Color stripColor = COPPER_COLOR; protected OrientationHV orientation = OrientationHV.HORIZONTAL; @Override @@ -127,19 +126,27 @@ public class VeroBoard extends AbstractBoard { public void drawIcon(Graphics2D g2d, int width, int height) { int factor = 32 / width; g2d.setColor(BOARD_COLOR); - g2d.fillRect(2 / factor, 2 / factor, width - 4 / factor, height - 4 / factor); + g2d.fillRect(0, 2 / factor, width - 1, height - 4 / factor); g2d.setColor(BORDER_COLOR); - g2d.drawRect(2 / factor, 2 / factor, width - 4 / factor, height - 4 / factor); - g2d.setColor(STRIP_COLOR); - g2d.fillRect(4 / factor, width / 4, width - 8 / factor, width / 2); - g2d.setColor(STRIP_COLOR.darker()); - g2d.drawRect(4 / factor, width / 4, width - 8 / factor, width / 2); + g2d.drawRect(0, 2 / factor, width - 1, height - 4 / factor); + g2d.setColor(COPPER_COLOR); + g2d.fillRect(1 / factor, width / 4, width - 2 / factor, width / 2); + g2d.setColor(COPPER_COLOR.darker()); + g2d.drawRect(1 / factor, width / 4, width - 2 / factor, width / 2); + + g2d.setColor(COPPER_COLOR); + g2d.fillRect(1 / factor, 2 / factor, width - 2 / factor, 3 / factor); + g2d.fillRect(1 / factor, height - 5 / factor, width - 2 / factor, 3 / factor); + g2d.setColor(COPPER_COLOR.darker()); + g2d.drawRect(1 / factor, 2 / factor, width - 2 / factor, 3 / factor); + g2d.drawRect(1 / factor, height - 5 / factor, width - 2 / factor, 3 / factor); + g2d.setColor(Constants.CANVAS_COLOR); g2d.fillOval(width / 3 - 2 / factor, width / 2 - 2 / factor, getClosestOdd(5.0 / factor), getClosestOdd(5.0 / factor)); g2d.fillOval(2 * width / 3 - 2 / factor, width / 2 - 2 / factor, getClosestOdd(5.0 / factor), getClosestOdd(5.0 / factor)); - g2d.setColor(STRIP_COLOR.darker()); + g2d.setColor(COPPER_COLOR.darker()); g2d.drawOval(width / 3 - 2 / factor, width / 2 - 2 / factor, getClosestOdd(5.0 / factor), getClosestOdd(5.0 / factor)); g2d.drawOval(2 * width / 3 - 2 / factor, width / 2 - 2 / factor, getClosestOdd(5.0 / factor), diff --git a/diylc/diylc-library/src/org/diylc/components/connectivity/TraceCut.java b/diylc/diylc-library/src/org/diylc/components/connectivity/TraceCut.java index 74fc0d11..ce98ab3c 100644 --- a/diylc/diylc-library/src/org/diylc/components/connectivity/TraceCut.java +++ b/diylc/diylc-library/src/org/diylc/components/connectivity/TraceCut.java @@ -4,7 +4,6 @@ import java.awt.Color; import java.awt.Graphics2D; import java.awt.Point; -import org.diylc.common.ObjectCache; import org.diylc.components.AbstractComponent; import org.diylc.components.boards.AbstractBoard; import org.diylc.components.boards.VeroBoard; @@ -18,6 +17,7 @@ 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 = "Trace Cut", category = "Connectivity", author = "Branislav Stojkovic", description = "Designates the place where a trace on the vero board needs to be cut", instanceNamePrefix = "Cut", @@ -26,14 +26,16 @@ public class TraceCut extends AbstractComponent { private static final long serialVersionUID = 1L; - public static Size SIZE = new Size(0.07d, SizeUnit.in); + public static Size SIZE = new Size(0.08d, SizeUnit.in); public static Size CUT_WIDTH = new Size(0.5d, SizeUnit.mm); public static Color FILL_COLOR = Color.white; public static Color BORDER_COLOR = Color.red; - public static Color SELECTION_COLOR = Color.blue; + public static Color SELECTION_COLOR = Color.red; + public static Size HOLE_SIZE = new Size(0.7d, SizeUnit.mm); private Size size = SIZE; private Color fillColor = FILL_COLOR; + @Deprecated private Color borderColor = BORDER_COLOR; private Color boardColor = AbstractBoard.BOARD_COLOR; private Boolean cutBetweenHoles = false; @@ -55,27 +57,49 @@ public class TraceCut extends AbstractComponent { : boardColor); g2d.fillRect(point.x - holeSpacing / 2 - cutWidth / 2, point.y - size / 2 - 1, cutWidth, size + 2); } else { - int dotDiameter = size - 6; - g2d.setColor(fillColor); - g2d.fillRect(point.x - size / 2, point.y - size / 2, size, size); g2d.setColor(componentState == ComponentState.SELECTED || componentState == ComponentState.DRAGGING ? SELECTION_COLOR - : borderColor); - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1)); - g2d.drawRect(point.x - size / 2, point.y - size / 2, size, size); - g2d.fillOval(point.x - dotDiameter / 2, point.y - dotDiameter / 2, dotDiameter, dotDiameter); + : boardColor); + g2d.fillRoundRect(point.x - size / 2, point.y - size / 2, size, size, size, size); + + g2d.setColor(Constants.CANVAS_COLOR); + int holeSize = getClosestOdd((int) HOLE_SIZE.convertToPixels()); + g2d.fillOval(point.x - holeSize / 2, point.y - holeSize / 2, holeSize, holeSize); + g2d.setColor(boardColor.darker()); + g2d.drawOval(point.x - holeSize / 2, point.y - holeSize / 2, holeSize, holeSize); } } @Override public void drawIcon(Graphics2D g2d, int width, int height) { - int size = 16; - int dotDiameter = size / 4 * 2; - g2d.setColor(FILL_COLOR); - g2d.fillRect((width - size) / 2, (height - size) / 2, size, size); - g2d.setColor(BORDER_COLOR); - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1)); - g2d.drawRect((width - size) / 2, (height - size) / 2, size, size); - g2d.fillOval((width - dotDiameter) / 2, (height - dotDiameter) / 2, dotDiameter, dotDiameter); + int factor = 32 / width; + g2d.setColor(AbstractBoard.BOARD_COLOR); + g2d.fillRect(0, 2 / factor, width - 1, height - 4 / factor); + g2d.setColor(AbstractBoard.BORDER_COLOR); + g2d.drawRect(0, 2 / factor, width - 1, height - 4 / factor); + g2d.setColor(COPPER_COLOR); + g2d.fillRect(1 / factor, width / 3, width - 2 / factor, getClosestOdd(width / 3) + 1); + g2d.setColor(COPPER_COLOR.darker()); + g2d.drawRect(1 / factor, width / 3, width - 2 / factor, getClosestOdd(width / 3) + 1); + + g2d.setColor(AbstractBoard.BOARD_COLOR); + g2d.fillRoundRect(width / 3, width / 3, getClosestOdd(width / 3) + 2, getClosestOdd(width / 3) + 2, width / 3, + width / 3); + + g2d.setColor(COPPER_COLOR); + g2d.fillRect(1 / factor, 2 / factor, width - 2 / factor, 4 / factor); + g2d.fillRect(1 / factor, height - 6 / factor, width - 2 / factor, 4 / factor); + g2d.setColor(COPPER_COLOR.darker()); + g2d.drawRect(1 / factor, 2 / factor, width - 2 / factor, 4 / factor); + g2d.drawRect(1 / factor, height - 6 / factor, width - 2 / factor, 4 / factor); + + g2d.setColor(Constants.CANVAS_COLOR); + g2d.fillOval(width / 6 - 1, width / 2 - 1, getClosestOdd(3.0 / factor), getClosestOdd(3.0 / factor)); + g2d.fillOval(width / 2 - 1, width / 2 - 1, getClosestOdd(3.0 / factor), getClosestOdd(3.0 / factor)); + g2d.fillOval(5 * width / 6 - 1, width / 2 - 1, getClosestOdd(3.0 / factor), getClosestOdd(3.0 / factor)); + g2d.setColor(COPPER_COLOR.darker()); + g2d.drawOval(width / 6 - 1, width / 2 - 1, getClosestOdd(3.0 / factor), getClosestOdd(3.0 / factor)); + g2d.drawOval(width / 2 - 1, width / 2 - 1, getClosestOdd(3.0 / factor), getClosestOdd(3.0 / factor)); + g2d.drawOval(5 * width / 6 - 1, width / 2 - 1, getClosestOdd(3.0 / factor), getClosestOdd(3.0 / factor)); } @Override @@ -129,11 +153,12 @@ public class TraceCut extends AbstractComponent { this.fillColor = fillColor; } - @EditableProperty(name = "Border") + @Deprecated public Color getBorderColor() { return borderColor; } + @Deprecated public void setBorderColor(Color borderColor) { this.borderColor = borderColor; } diff --git a/diylc/diylc-swing/lib/diylc-core.jar b/diylc/diylc-swing/lib/diylc-core.jar index f7d7dba7b2ac7e7d88f442a8d50d2f3947b73ae5..27fcca1aeb28e9bdd1fa699a6122f31b40614e8c 100644 GIT binary patch delta 11034 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 delta 10839 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 diff --git a/diylc/diylc-swing/library/main.jar b/diylc/diylc-swing/library/main.jar index d393bb235a51fe3a7c35ec04254a8acec4290448..c36d11a9edc77930f790f93323d5ebf5c5ad35ac 100644 GIT binary patch delta 23862 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 Ee?ezJod5s; delta 23676 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 Mini humbucker pickup added as a variation of Humbucker pickup + + IMPROVEMENT + X-axis coordinates for all perfboards are now numberical + + + IMPROVEMENT + Improved trace cut rendering to look more natural + IMPROVEMENT Improved guitar pickup look @@ -1481,7 +1489,11 @@ BUG_FIX Fixed broken links in the Help menu - + + + BUG_FIX + TriPad board didn't show coordinate labels even when configured to do so + https://github.com/bancika/diy-layout-creator/releases