diff --git a/diylc/diylc-core/src/main/resources/update.xml b/diylc/diylc-core/src/main/resources/update.xml index a9a78cc96..84997ad8c 100644 --- a/diylc/diylc-core/src/main/resources/update.xml +++ b/diylc/diylc-core/src/main/resources/update.xml @@ -689,6 +689,10 @@ BUG_FIX Opening an older project with a perfboard or another board warned that the file references unknown component properties + + BUG_FIX + Transistors in TO-92, TO-1, TO-126, TO-220 and TO-3 packages drew circles around their pins in outline mode; only the body outline and the label are drawn now + https://github.com/bancika/diy-layout-creator/releases diff --git a/diylc/diylc-library/src/main/java/org/diylc/components/semiconductors/AbstractTransistorPackage.java b/diylc/diylc-library/src/main/java/org/diylc/components/semiconductors/AbstractTransistorPackage.java index 8bfdc2ed1..4b989ee43 100644 --- a/diylc/diylc-library/src/main/java/org/diylc/components/semiconductors/AbstractTransistorPackage.java +++ b/diylc/diylc-library/src/main/java/org/diylc/components/semiconductors/AbstractTransistorPackage.java @@ -254,17 +254,14 @@ public abstract class AbstractTransistorPackage extends AbstractLabeledComponent return new Rectangle2D.Double(minX - margin, minY - margin, maxX - minX + 2 * margin, maxY - minY + 2 * margin); } - // drawn after the body so that pins stay visible whatever its alpha; a null pinColor draws only - // the outline + // drawn after the body so that pins stay visible whatever its alpha protected void drawPins(Graphics2D g2d, int pinSize, Color pinColor, Color pinBorderColor) { g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1f)); for (Point2D point : controlPoints) { Shape pin = new Ellipse2D.Double(point.getX() - pinSize / 2, point.getY() - pinSize / 2, pinSize, pinSize); - if (pinColor != null) { - g2d.setColor(pinColor); - g2d.fill(pin); - } + g2d.setColor(pinColor); + g2d.fill(pin); g2d.setColor(pinBorderColor); g2d.draw(pin); } diff --git a/diylc/diylc-library/src/main/java/org/diylc/components/semiconductors/TransistorTO1.java b/diylc/diylc-library/src/main/java/org/diylc/components/semiconductors/TransistorTO1.java index d41714dd0..b5484b84e 100644 --- a/diylc/diylc-library/src/main/java/org/diylc/components/semiconductors/TransistorTO1.java +++ b/diylc/diylc-library/src/main/java/org/diylc/components/semiconductors/TransistorTO1.java @@ -233,8 +233,9 @@ public class TransistorTO1 extends AbstractTransistorPackage { } g2d.draw(mainArea); - drawPins(g2d, pinSize, outlineMode ? null : PIN_COLOR, - outlineMode ? theme.getOutlineColor() : PIN_BORDER_COLOR); + if (!outlineMode) { + drawPins(g2d, pinSize, PIN_COLOR, PIN_BORDER_COLOR); + } // Draw label. g2d.setFont(project.getFont()); diff --git a/diylc/diylc-library/src/main/java/org/diylc/components/semiconductors/TransistorTO126.java b/diylc/diylc-library/src/main/java/org/diylc/components/semiconductors/TransistorTO126.java index 19d4d9bf6..a84a785c4 100644 --- a/diylc/diylc-library/src/main/java/org/diylc/components/semiconductors/TransistorTO126.java +++ b/diylc/diylc-library/src/main/java/org/diylc/components/semiconductors/TransistorTO126.java @@ -295,8 +295,9 @@ public class TransistorTO126 extends AbstractTransistorPackage { g2d.setComposite(oldComposite); - drawPins(g2d, pinSize, outlineMode ? null : PIN_COLOR, - outlineMode ? theme.getOutlineColor() : PIN_BORDER_COLOR); + if (!outlineMode) { + drawPins(g2d, pinSize, PIN_COLOR, PIN_BORDER_COLOR); + } // Draw label. g2d.setFont(project.getFont()); diff --git a/diylc/diylc-library/src/main/java/org/diylc/components/semiconductors/TransistorTO220.java b/diylc/diylc-library/src/main/java/org/diylc/components/semiconductors/TransistorTO220.java index 915cd7741..43ddcb0ca 100644 --- a/diylc/diylc-library/src/main/java/org/diylc/components/semiconductors/TransistorTO220.java +++ b/diylc/diylc-library/src/main/java/org/diylc/components/semiconductors/TransistorTO220.java @@ -333,8 +333,9 @@ public class TransistorTO220 extends AbstractTransistorPackage { g2d.draw(tabArea); } - drawPins(g2d, pinSize, outlineMode ? null : PIN_COLOR, - outlineMode ? theme.getOutlineColor() : PIN_BORDER_COLOR); + if (!outlineMode) { + drawPins(g2d, pinSize, PIN_COLOR, PIN_BORDER_COLOR); + } // Draw label. g2d.setFont(project.getFont()); diff --git a/diylc/diylc-library/src/main/java/org/diylc/components/semiconductors/TransistorTO3.java b/diylc/diylc-library/src/main/java/org/diylc/components/semiconductors/TransistorTO3.java index 9d5c4b2bb..4043bfe20 100644 --- a/diylc/diylc-library/src/main/java/org/diylc/components/semiconductors/TransistorTO3.java +++ b/diylc/diylc-library/src/main/java/org/diylc/components/semiconductors/TransistorTO3.java @@ -365,16 +365,16 @@ public class TransistorTO3 extends AbstractLabeledComponent // the pins leave through the bottom of the case, so they are drawn over it to stay visible // whatever its alpha - for (int i = 0; i < 2; i++) { - Point2D point = getControlPoint(i); - if (!outlineMode) { + if (!outlineMode) { + for (int i = 0; i < 2; i++) { + Point2D point = getControlPoint(i); g2d.setColor(PIN_COLOR); g2d.fillOval((int) Math.round(point.getX() - pinSize / 2), (int) Math.round(point.getY() - pinSize / 2), pinSize, pinSize); + g2d.setColor(PIN_BORDER_COLOR); + g2d.drawOval((int) Math.round(point.getX() - pinSize / 2), + (int) Math.round(point.getY() - pinSize / 2), pinSize, pinSize); } - g2d.setColor(outlineMode ? theme.getOutlineColor() : PIN_BORDER_COLOR); - g2d.drawOval((int) Math.round(point.getX() - pinSize / 2), - (int) Math.round(point.getY() - pinSize / 2), pinSize, pinSize); } // Draw label. diff --git a/diylc/diylc-library/src/main/java/org/diylc/components/semiconductors/TransistorTO92.java b/diylc/diylc-library/src/main/java/org/diylc/components/semiconductors/TransistorTO92.java index 759ef6fa0..992685ae2 100644 --- a/diylc/diylc-library/src/main/java/org/diylc/components/semiconductors/TransistorTO92.java +++ b/diylc/diylc-library/src/main/java/org/diylc/components/semiconductors/TransistorTO92.java @@ -223,8 +223,9 @@ public class TransistorTO92 extends AbstractTransistorPackage { g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1)); g2d.draw(mainArea); - drawPins(g2d, pinSize, outlineMode ? null : PIN_COLOR, - outlineMode ? theme.getOutlineColor() : PIN_BORDER_COLOR); + if (!outlineMode) { + drawPins(g2d, pinSize, PIN_COLOR, PIN_BORDER_COLOR); + } // Draw label. g2d.setFont(project.getFont());