From 8294caa8bac9b125ad6a1f9cc3b1a274e9191314 Mon Sep 17 00:00:00 2001 From: bancika Date: Sat, 11 Feb 2012 14:07:05 +0000 Subject: [PATCH] Smarter resistor labels; try not to overlap label with bands --- .../diylc-core/build.xml | 6 ++++++ .../diylc/components/AbstractComponent.java | 2 +- .../components/AbstractLeadedComponent.java | 13 ++++++++++--- .../src/org/diylc/presenter/Presenter.java | 2 +- .../diylc-library/lib/diylc-core.jar | Bin 188882 -> 188942 bytes .../diylc/components/passive/Resistor.java | 18 +++++++++++++++--- .../diylc-swing/lib/diylc-core.jar | Bin 188871 -> 188944 bytes .../diylc-swing/library/main.jar | Bin 123489 -> 123679 bytes .../diylc-swing/update.xml | 4 ++++ 9 files changed, 37 insertions(+), 8 deletions(-) diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/build.xml b/ diy-layout-creator --username bancika@gmail.com/diylc-core/build.xml index 8d056c3c..bcafc476 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/build.xml +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-core/build.xml @@ -62,6 +62,12 @@ + + + + + + diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/components/AbstractComponent.java b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/components/AbstractComponent.java index d632f39d..72204793 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/components/AbstractComponent.java +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/components/AbstractComponent.java @@ -31,7 +31,7 @@ public abstract class AbstractComponent implements IDIYComponent { public static Color SELECTION_COLOR = Color.red; public static Color LABEL_COLOR = Color.black; public static Color LABEL_COLOR_SELECTED = Color.red; - public static Font LABEL_FONT = new Font("Tahoma", Font.PLAIN, 13); + public static Font LABEL_FONT = new Font("Tahoma", Font.PLAIN, 14); @EditableProperty(defaultable = false) @Override diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/components/AbstractLeadedComponent.java b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/components/AbstractLeadedComponent.java index 4bd6c150..e67a87e4 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/components/AbstractLeadedComponent.java +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/components/AbstractLeadedComponent.java @@ -195,13 +195,16 @@ public abstract class AbstractLeadedComponent extends AbstractTransparentComp g2d.setColor(finalLabelColor); FontMetrics fontMetrics = g2d.getFontMetrics(); String label = display == Display.NAME ? getName() : getValue().toString(); + Rectangle2D textRect = fontMetrics.getStringBounds(label, g2d); + // Don't offset in outline mode. + int offset = outlineMode ? 0 : getLabelOffset((int) shapeRect.getWidth(), (int) textRect.getWidth()); // Adjust label angle if needed to make sure that it's readable. if ((theta >= Math.PI / 2 && theta <= Math.PI) || (theta < -Math.PI / 2 && theta > -Math.PI)) { g2d.rotate(Math.PI, shapeRect.width / 2, shapeRect.height / 2); - } - Rectangle2D textRect = fontMetrics.getStringBounds(label, g2d); - g2d.drawString(label, (int) (shapeRect.width - textRect.getWidth()) / 2, + offset = -offset; + } + g2d.drawString(label, (int) (shapeRect.width - textRect.getWidth()) / 2 + offset, calculateLabelYCoordinate(shapeRect, textRect, fontMetrics)); g2d.setTransform(oldTransform); } @@ -237,6 +240,10 @@ public abstract class AbstractLeadedComponent extends AbstractTransparentComp protected boolean supportsStandingMode() { return false; } + + protected int getLabelOffset(int bodyWidth, int labelWidth) { + return 0; + } /** * @return default component length. diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/presenter/Presenter.java b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/presenter/Presenter.java index 6bb48992..c35599a1 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/presenter/Presenter.java +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/presenter/Presenter.java @@ -55,7 +55,7 @@ public class Presenter implements IPlugInPort { private static final Logger LOG = Logger.getLogger(Presenter.class); - public static final VersionNumber CURRENT_VERSION = new VersionNumber(3, 1, 0); + public static final VersionNumber CURRENT_VERSION = new VersionNumber(3, 2, 0); public static final String DEFAULTS_KEY_PREFIX = "default."; public static final List> EMPTY_SELECTION = Collections.emptyList(); diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/lib/diylc-core.jar b/ diy-layout-creator --username bancika@gmail.com/diylc-library/lib/diylc-core.jar index 689f2bdf7853f45226782acfd8163f0d6b94ecb8..28a8fbf67f2bb8e4241585345db2fe4a47c91011 100644 GIT binary patch delta 13681 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 OJ_$2XoX-L&k^CQ5@l25b diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/Resistor.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/Resistor.java index 3f105d6b..67986e8b 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/Resistor.java +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/Resistor.java @@ -27,6 +27,8 @@ public class Resistor extends AbstractLeadedComponent { public static Size DEFAULT_HEIGHT = new Size(1d / 8, SizeUnit.in); public static Color BODY_COLOR = Color.decode("#82CFFD"); public static Color BORDER_COLOR = BODY_COLOR.darker(); + public static int BAND_SPACING = 5; + public static int FIRST_BAND = 4; private Resistance value = new Resistance(123d, ResistanceUnit.K); private Power power = Power.HALF; @@ -37,7 +39,7 @@ public class Resistor extends AbstractLeadedComponent { this.bodyColor = BODY_COLOR; this.borderColor = BORDER_COLOR; } - + @Override protected boolean supportsStandingMode() { return true; @@ -110,12 +112,22 @@ public class Resistor extends AbstractLeadedComponent { } int height = getClosestOdd(getWidth().convertToPixels()); Color[] bands = value.getColorCode(colorCode); - int x = 4; + int x = FIRST_BAND; g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(2)); for (int i = 0; i < bands.length; i++) { g2d.setColor(bands[i]); g2d.drawLine(x, 1, x, height - 1); - x += 5; + x += BAND_SPACING; } } + + @Override + protected int getLabelOffset(int bodyWidth, int labelWidth) { + Color[] bands = value.getColorCode(colorCode); + int bandArea = FIRST_BAND + BAND_SPACING * (bands.length - 1); + // Only offset the label if overlaping with the band area. + if (labelWidth > bodyWidth - 2 * bandArea) + return bandArea / 2; + return 0; + } } diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/lib/diylc-core.jar b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/lib/diylc-core.jar index 03e86d695bf3ddb82bc48b90dafdfb00c88a629f..340ac1e15fe2433b320577d5f410f8209818d21d 100644 GIT binary patch delta 11021 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 MX%h%H^MO9$f6LA~XaE2J delta 11034 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 SRV7K#nE^ZulrIsb+W!HM-M&=- delta 4335 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 Q5lb-(IH){20Wtai0M9X1x&QzG diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/update.xml b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/update.xml index 30919a48..b0f96ae4 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/update.xml +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/update.xml @@ -426,6 +426,10 @@ NEW_FEATURE Perfboards can show hole coordinates + + IMPROVEMENT + Smarter resistor labels; try not to overlap label with bands + http://code.google.com/p/diy-layout-creator/downloads/list