diff --git a/diylc/diylc-core/src/org/diylc/components/AbstractLabeledComponent.java b/diylc/diylc-core/src/org/diylc/components/AbstractLabeledComponent.java new file mode 100644 index 00000000..84c0ddc5 --- /dev/null +++ b/diylc/diylc-core/src/org/diylc/components/AbstractLabeledComponent.java @@ -0,0 +1,40 @@ +/* + + DIY Layout Creator (DIYLC). + Copyright (c) 2009-2018 held jointly by the individual authors. + + This file is part of DIYLC. + + DIYLC is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + DIYLC is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with DIYLC. If not, see . + +*/ +package org.diylc.components; + +import org.diylc.core.annotations.EditableProperty; + +public abstract class AbstractLabeledComponent extends AbstractTransparentComponent { + + private static final long serialVersionUID = 1L; + + protected Integer fontSizeOverride; + + @EditableProperty(name = "Font Size Override") + public Integer getFontSizeOverride() { + return fontSizeOverride; + } + + public void setFontSizeOverride(Integer fontSizeOverride) { + this.fontSizeOverride = fontSizeOverride; + } +} diff --git a/diylc/diylc-core/src/org/diylc/presenter/update.xml b/diylc/diylc-core/src/org/diylc/presenter/update.xml index 2649b2a4..53b3449b 100644 --- a/diylc/diylc-core/src/org/diylc/presenter/update.xml +++ b/diylc/diylc-core/src/org/diylc/presenter/update.xml @@ -3345,5 +3345,21 @@ https://github.com/bancika/diy-layout-creator/releases + + + 4 + 13 + 0 + + 2020-12-06 00:00:00.000 CET + + + + NEW_FEATURE + Added 'Font Size Override' property to most components that display text to allow control over font size + + + https://github.com/bancika/diy-layout-creator/releases + diff --git a/diylc/diylc-library/lib/diylc-core.jar b/diylc/diylc-library/lib/diylc-core.jar index fdb8f02f..2833ea14 100644 Binary files a/diylc/diylc-library/lib/diylc-core.jar and b/diylc/diylc-library/lib/diylc-core.jar differ diff --git a/diylc/diylc-library/src/org/diylc/components/AbstractLeadedComponent.java b/diylc/diylc-library/src/org/diylc/components/AbstractLeadedComponent.java index c8575a94..7fc0d59f 100644 --- a/diylc/diylc-library/src/org/diylc/components/AbstractLeadedComponent.java +++ b/diylc/diylc-library/src/org/diylc/components/AbstractLeadedComponent.java @@ -62,7 +62,7 @@ import org.diylc.utils.Constants; * * @author Branislav Stojkovic */ -public abstract class AbstractLeadedComponent extends AbstractTransparentComponent { +public abstract class AbstractLeadedComponent extends AbstractLabeledComponent { private static final long serialVersionUID = 1L; @@ -324,6 +324,11 @@ public abstract class AbstractLeadedComponent extends AbstractTransparentComp // Draw label. g2d.setFont(project.getFont()); + + // Override font size + if (getFontSizeOverride() != null) + g2d.setFont(g2d.getFont().deriveFont(1f * getFontSizeOverride())); + if (useShapeRectAsPosition()) { g2d.translate(shapeRect.getX(), shapeRect.getY()); } diff --git a/diylc/diylc-library/src/org/diylc/components/AbstractMultiPartComponent.java b/diylc/diylc-library/src/org/diylc/components/AbstractMultiPartComponent.java index 5064967e..1f3fc469 100644 --- a/diylc/diylc-library/src/org/diylc/components/AbstractMultiPartComponent.java +++ b/diylc/diylc-library/src/org/diylc/components/AbstractMultiPartComponent.java @@ -10,7 +10,7 @@ import org.diylc.core.IDrawingObserver; import org.diylc.core.Project; -public abstract class AbstractMultiPartComponent extends AbstractTransparentComponent { +public abstract class AbstractMultiPartComponent extends AbstractLabeledComponent { private static final long serialVersionUID = 1L; diff --git a/diylc/diylc-library/src/org/diylc/components/electromechanical/CliffJack1_4.java b/diylc/diylc-library/src/org/diylc/components/electromechanical/CliffJack1_4.java index d0413e8d..627e26ec 100644 --- a/diylc/diylc-library/src/org/diylc/components/electromechanical/CliffJack1_4.java +++ b/diylc/diylc-library/src/org/diylc/components/electromechanical/CliffJack1_4.java @@ -247,7 +247,12 @@ public class CliffJack1_4 extends AbstractMultiPartComponent { : LABEL_COLOR; } g2d.setColor(finalLabelColor); - g2d.setFont(project.getFont()); + g2d.setFont(project.getFont()); + + // Override font size + if (getFontSizeOverride() != null) + g2d.setFont(g2d.getFont().deriveFont(1f * getFontSizeOverride())); + double centerX = (controlPoints[0].getX() + controlPoints[3].getX()) / 2; double centerY = (controlPoints[0].getY() + controlPoints[3].getY()) / 2; StringUtils.drawCenteredText(g2d, name, centerX, centerY, HorizontalAlignment.CENTER, VerticalAlignment.CENTER); diff --git a/diylc/diylc-library/src/org/diylc/components/electromechanical/ClosedJack1_4.java b/diylc/diylc-library/src/org/diylc/components/electromechanical/ClosedJack1_4.java index 1e9dec70..f07bba31 100644 --- a/diylc/diylc-library/src/org/diylc/components/electromechanical/ClosedJack1_4.java +++ b/diylc/diylc-library/src/org/diylc/components/electromechanical/ClosedJack1_4.java @@ -267,7 +267,12 @@ public class ClosedJack1_4 extends AbstractMultiPartComponent { : LABEL_COLOR; } g2d.setColor(finalLabelColor); - g2d.setFont(project.getFont()); + g2d.setFont(project.getFont()); + + // Override font size + if (getFontSizeOverride() != null) + g2d.setFont(g2d.getFont().deriveFont(1f * getFontSizeOverride())); + Rectangle bounds = body[0].getBounds(); double centerX = bounds.getX() + bounds.width / 2; double centerY = bounds.getY() + bounds.height / 2; diff --git a/diylc/diylc-library/src/org/diylc/components/electromechanical/FuseHolderPanel.java b/diylc/diylc-library/src/org/diylc/components/electromechanical/FuseHolderPanel.java index d937ee85..4b3bea06 100644 --- a/diylc/diylc-library/src/org/diylc/components/electromechanical/FuseHolderPanel.java +++ b/diylc/diylc-library/src/org/diylc/components/electromechanical/FuseHolderPanel.java @@ -225,6 +225,11 @@ public class FuseHolderPanel extends AbstractMultiPartComponent { // Draw label. g2d.setFont(project.getFont()); + + // Override font size + if (getFontSizeOverride() != null) + g2d.setFont(g2d.getFont().deriveFont(1f * getFontSizeOverride())); + Color finalLabelColor; if (outlineMode) { finalLabelColor = diff --git a/diylc/diylc-library/src/org/diylc/components/electromechanical/IECSocket.java b/diylc/diylc-library/src/org/diylc/components/electromechanical/IECSocket.java index 82bf7026..6074fa7b 100644 --- a/diylc/diylc-library/src/org/diylc/components/electromechanical/IECSocket.java +++ b/diylc/diylc-library/src/org/diylc/components/electromechanical/IECSocket.java @@ -400,5 +400,11 @@ public class IECSocket extends AbstractMultiPartComponent { int margin = 20; Rectangle2D bounds = getBody()[0].getBounds2D(); return new Rectangle2D.Double(bounds.getX() - margin, bounds.getY() - margin, bounds.getWidth() + 2 * margin, bounds.getHeight() + 2 * margin); + } + + @Deprecated + @Override + public Integer getFontSizeOverride() { + return super.getFontSizeOverride(); } } diff --git a/diylc/diylc-library/src/org/diylc/components/electromechanical/MiniRelay.java b/diylc/diylc-library/src/org/diylc/components/electromechanical/MiniRelay.java index 75730776..7d0ee58c 100644 --- a/diylc/diylc-library/src/org/diylc/components/electromechanical/MiniRelay.java +++ b/diylc/diylc-library/src/org/diylc/components/electromechanical/MiniRelay.java @@ -37,7 +37,7 @@ import org.diylc.common.Display; import org.diylc.common.IPlugInPort; import org.diylc.common.ObjectCache; import org.diylc.common.Orientation; -import org.diylc.components.AbstractTransparentComponent; +import org.diylc.components.AbstractLabeledComponent; import org.diylc.core.ComponentState; import org.diylc.core.IDIYComponent; import org.diylc.core.IDrawingObserver; @@ -55,7 +55,7 @@ import org.diylc.utils.Constants; @ComponentDescriptor(name = "Mini Relay", author = "Branislav Stojkovic", category = "Electro-Mechanical", instanceNamePrefix = "RY", description = "Miniature PCB mount relay, like Omron G5V-1 or G5V-2", zOrder = IDIYComponent.COMPONENT, enableCache = true) -public class MiniRelay extends AbstractTransparentComponent { +public class MiniRelay extends AbstractLabeledComponent { private static final long serialVersionUID = 1L; @@ -341,7 +341,12 @@ public class MiniRelay extends AbstractTransparentComponent { } } // Draw label. - g2d.setFont(project.getFont()); + g2d.setFont(project.getFont()); + + // Override font size + if (getFontSizeOverride() != null) + g2d.setFont(g2d.getFont().deriveFont(1f * getFontSizeOverride())); + Color finalLabelColor; if (outlineMode) { finalLabelColor = diff --git a/diylc/diylc-library/src/org/diylc/components/electromechanical/PlasticDCJack.java b/diylc/diylc-library/src/org/diylc/components/electromechanical/PlasticDCJack.java index 6330abd1..aa97cb97 100644 --- a/diylc/diylc-library/src/org/diylc/components/electromechanical/PlasticDCJack.java +++ b/diylc/diylc-library/src/org/diylc/components/electromechanical/PlasticDCJack.java @@ -182,7 +182,7 @@ public class PlasticDCJack extends AbstractMultiPartComponent { if (!outlineMode && getPolarity() != DCPolarity.NONE) { int spacing = (int) SPACING.convertToPixels(); g2d.setColor(MARKING_COLOR); - g2d.setFont(project.getFont().deriveFont(12f)); + g2d.setFont(project.getFont().deriveFont(12f)); StringUtils.drawCenteredText(g2d, getPolarity() == DCPolarity.CENTER_NEGATIVE ? "+" : "-", controlPoints[0].getX(), controlPoints[0].getY() - spacing * 7 / 16, HorizontalAlignment.CENTER, VerticalAlignment.CENTER); StringUtils.drawCenteredText(g2d, getPolarity() == DCPolarity.CENTER_NEGATIVE ? "_" : "+", controlPoints[2].getX(), @@ -274,5 +274,11 @@ public class PlasticDCJack extends AbstractMultiPartComponent { int margin = 20; Rectangle2D bounds = getBody()[0].getBounds2D(); return new Rectangle2D.Double(bounds.getX() - margin, bounds.getY() - margin, bounds.getWidth() + 2 * margin, bounds.getHeight() + 2 * margin); + } + + @Deprecated + @Override + public Integer getFontSizeOverride() { + return super.getFontSizeOverride(); } } diff --git a/diylc/diylc-library/src/org/diylc/components/electromechanical/RCAJack.java b/diylc/diylc-library/src/org/diylc/components/electromechanical/RCAJack.java index 6ac6a1a9..757a579d 100644 --- a/diylc/diylc-library/src/org/diylc/components/electromechanical/RCAJack.java +++ b/diylc/diylc-library/src/org/diylc/components/electromechanical/RCAJack.java @@ -331,5 +331,11 @@ public class RCAJack extends AbstractMultiPartComponent { int margin = 20; Rectangle2D bounds = getBody()[1].getBounds2D(); return new Rectangle2D.Double(bounds.getX() - margin, bounds.getY() - margin, bounds.getWidth() + 2 * margin, bounds.getHeight() + 2 * margin); + } + + @Deprecated + @Override + public Integer getFontSizeOverride() { + return super.getFontSizeOverride(); } } diff --git a/diylc/diylc-library/src/org/diylc/components/electromechanical/RotarySelectorSwitch.java b/diylc/diylc-library/src/org/diylc/components/electromechanical/RotarySelectorSwitch.java index 3f7a8148..b47ec248 100644 --- a/diylc/diylc-library/src/org/diylc/components/electromechanical/RotarySelectorSwitch.java +++ b/diylc/diylc-library/src/org/diylc/components/electromechanical/RotarySelectorSwitch.java @@ -152,6 +152,11 @@ public class RotarySelectorSwitch extends AbstractMultiPartComponent { if (showLabels) { g2d.setColor(TERMINAL_COLOR.darker()); g2d.setFont(project.getFont().deriveFont(project.getFont().getSize2D() * 0.8f)); + + // Override font size + if (getFontSizeOverride() != null) + g2d.setFont(g2d.getFont().deriveFont(1f * getFontSizeOverride())); + for (int i = 2; i < body.length; i++) { Rectangle2D bounds = body[i].getBounds2D(); double x = (int) ((bounds.getCenterX() + controlPoints[i - 2].getX()) / 2); diff --git a/diylc/diylc-library/src/org/diylc/components/guitar/AbstractGuitarPickup.java b/diylc/diylc-library/src/org/diylc/components/guitar/AbstractGuitarPickup.java index 152b2af9..93a52990 100644 --- a/diylc/diylc-library/src/org/diylc/components/guitar/AbstractGuitarPickup.java +++ b/diylc/diylc-library/src/org/diylc/components/guitar/AbstractGuitarPickup.java @@ -34,7 +34,7 @@ import org.diylc.common.IPlugInPort; import org.diylc.common.Orientation; import org.diylc.common.OrientationHV; import org.diylc.common.VerticalAlignment; -import org.diylc.components.AbstractTransparentComponent; +import org.diylc.components.AbstractLabeledComponent; import org.diylc.core.ComponentState; import org.diylc.core.Project; import org.diylc.core.Theme; @@ -44,7 +44,7 @@ import org.diylc.core.measures.Size; import org.diylc.core.measures.SizeUnit; import org.diylc.utils.Constants; -public abstract class AbstractGuitarPickup extends AbstractTransparentComponent { +public abstract class AbstractGuitarPickup extends AbstractLabeledComponent { private static final long serialVersionUID = 1L; @@ -112,6 +112,11 @@ public abstract class AbstractGuitarPickup extends AbstractTransparentComponent< } g2d.setColor(finalLabelColor); g2d.setFont(project.getFont().deriveFont(Font.BOLD)); + + // Override font size + if (getFontSizeOverride() != null) + g2d.setFont(g2d.getFont().deriveFont(1f * getFontSizeOverride())); + Rectangle bounds = getBody()[0].getBounds(); AffineTransform originalTx = g2d.getTransform(); diff --git a/diylc/diylc-library/src/org/diylc/components/passive/AbstractPotentiometer.java b/diylc/diylc-library/src/org/diylc/components/passive/AbstractPotentiometer.java index c52f99b1..768f9646 100644 --- a/diylc/diylc-library/src/org/diylc/components/passive/AbstractPotentiometer.java +++ b/diylc/diylc-library/src/org/diylc/components/passive/AbstractPotentiometer.java @@ -24,13 +24,13 @@ package org.diylc.components.passive; import java.awt.geom.Point2D; import org.diylc.common.Orientation; -import org.diylc.components.AbstractTransparentComponent; +import org.diylc.components.AbstractLabeledComponent; import org.diylc.core.VisibilityPolicy; import org.diylc.core.annotations.EditableProperty; import org.diylc.core.annotations.PositiveMeasureValidator; import org.diylc.core.measures.Resistance; -public abstract class AbstractPotentiometer extends AbstractTransparentComponent { +public abstract class AbstractPotentiometer extends AbstractLabeledComponent { private static final long serialVersionUID = 1L; diff --git a/diylc/diylc-library/src/org/diylc/components/passive/AudioTransformer.java b/diylc/diylc-library/src/org/diylc/components/passive/AudioTransformer.java index 8e2f3eec..f408754e 100644 --- a/diylc/diylc-library/src/org/diylc/components/passive/AudioTransformer.java +++ b/diylc/diylc-library/src/org/diylc/components/passive/AudioTransformer.java @@ -311,6 +311,10 @@ public class AudioTransformer extends AbstractMultiPartComponent { g2d.setFont(project.getFont()); + // Override font size + if (getFontSizeOverride() != null) + g2d.setFont(g2d.getFont().deriveFont(1f * getFontSizeOverride())); + // Draw winding designations Point2D wPoint = new Point2D.Double((int) (controlPoints[0].getX() + project.getFontSize()), (int) (controlPoints[0].getY() + leadSpacing.convertToPixels())); AffineTransform tx = getTx(); diff --git a/diylc/diylc-library/src/org/diylc/components/passive/MultiSectionCapacitor.java b/diylc/diylc-library/src/org/diylc/components/passive/MultiSectionCapacitor.java index 998b7cd7..a730ba32 100644 --- a/diylc/diylc-library/src/org/diylc/components/passive/MultiSectionCapacitor.java +++ b/diylc/diylc-library/src/org/diylc/components/passive/MultiSectionCapacitor.java @@ -41,7 +41,7 @@ import org.diylc.common.IPlugInPort; import org.diylc.common.ObjectCache; import org.diylc.common.Orientation; import org.diylc.common.VerticalAlignment; -import org.diylc.components.AbstractTransparentComponent; +import org.diylc.components.AbstractLabeledComponent; import org.diylc.core.ComponentState; import org.diylc.core.IDIYComponent; import org.diylc.core.IDrawingObserver; @@ -59,7 +59,7 @@ import org.diylc.utils.Constants; @ComponentDescriptor(name = "Multi-Section Capacitor", author = "Branislav Stojkovic", category = "Passive", instanceNamePrefix = "C", description = "Multi-section vertically mounted electrolytic capacitor, similar to JJ, CE and others", zOrder = IDIYComponent.COMPONENT, keywordPolicy = KeywordPolicy.SHOW_VALUE, enableCache = true) -public class MultiSectionCapacitor extends AbstractTransparentComponent { +public class MultiSectionCapacitor extends AbstractLabeledComponent { private static final long serialVersionUID = 1L; @@ -390,7 +390,12 @@ public class MultiSectionCapacitor extends AbstractTransparentComponent implements ISpiceMapper { +public abstract class AbstractTransistorPackage extends AbstractLabeledComponent implements ISpiceMapper { private static final long serialVersionUID = 1L; diff --git a/diylc/diylc-library/src/org/diylc/components/semiconductors/BridgeRectifier.java b/diylc/diylc-library/src/org/diylc/components/semiconductors/BridgeRectifier.java index e4ab242b..ce155873 100644 --- a/diylc/diylc-library/src/org/diylc/components/semiconductors/BridgeRectifier.java +++ b/diylc/diylc-library/src/org/diylc/components/semiconductors/BridgeRectifier.java @@ -43,8 +43,8 @@ import org.diylc.common.IPlugInPort; import org.diylc.common.ObjectCache; import org.diylc.common.Orientation; import org.diylc.common.VerticalAlignment; +import org.diylc.components.AbstractLabeledComponent; import org.diylc.components.AbstractLeadedComponent.LabelOriantation; -import org.diylc.components.AbstractTransparentComponent; import org.diylc.components.RoundedPolygon; import org.diylc.components.transform.DIL_ICTransformer; import org.diylc.core.ComponentState; @@ -66,7 +66,7 @@ import org.diylc.utils.Constants; instanceNamePrefix = "BR", description = "Few variations of bridge rectifier chips", zOrder = IDIYComponent.COMPONENT, keywordPolicy = KeywordPolicy.SHOW_VALUE, transformer = DIL_ICTransformer.class, enableCache = true) -public class BridgeRectifier extends AbstractTransparentComponent { +public class BridgeRectifier extends AbstractLabeledComponent { private static final long serialVersionUID = 1L; @@ -409,7 +409,12 @@ public class BridgeRectifier extends AbstractTransparentComponent { drawingObserver.stopTracking(); // Draw label. - g2d.setFont(project.getFont()); + g2d.setFont(project.getFont()); + + // Override font size + if (getFontSizeOverride() != null) + g2d.setFont(g2d.getFont().deriveFont(1f * getFontSizeOverride())); + Color finalLabelColor; if (outlineMode) { Theme theme = diff --git a/diylc/diylc-library/src/org/diylc/components/semiconductors/DIL_IC.java b/diylc/diylc-library/src/org/diylc/components/semiconductors/DIL_IC.java index 1767fff9..0b6f33b8 100644 --- a/diylc/diylc-library/src/org/diylc/components/semiconductors/DIL_IC.java +++ b/diylc/diylc-library/src/org/diylc/components/semiconductors/DIL_IC.java @@ -39,7 +39,7 @@ import org.diylc.common.Display; import org.diylc.common.IPlugInPort; import org.diylc.common.ObjectCache; import org.diylc.common.Orientation; -import org.diylc.components.AbstractTransparentComponent; +import org.diylc.components.AbstractLabeledComponent; import org.diylc.components.transform.DIL_ICTransformer; import org.diylc.core.ComponentState; import org.diylc.core.IDIYComponent; @@ -59,7 +59,7 @@ import org.diylc.utils.Constants; instanceNamePrefix = "IC", description = "Dual-in-line package IC", zOrder = IDIYComponent.COMPONENT, keywordPolicy = KeywordPolicy.SHOW_VALUE, transformer = DIL_ICTransformer.class, enableCache = true) -public class DIL_IC extends AbstractTransparentComponent { +public class DIL_IC extends AbstractLabeledComponent { private static final long serialVersionUID = 1L; @@ -359,7 +359,12 @@ public class DIL_IC extends AbstractTransparentComponent { drawingObserver.stopTracking(); // Draw label. - g2d.setFont(project.getFont()); + g2d.setFont(project.getFont()); + + // Override font size + if (getFontSizeOverride() != null) + g2d.setFont(g2d.getFont().deriveFont(1f * getFontSizeOverride())); + Color finalLabelColor; if (outlineMode) { Theme theme = diff --git a/diylc/diylc-library/src/org/diylc/components/semiconductors/TransistorTO1.java b/diylc/diylc-library/src/org/diylc/components/semiconductors/TransistorTO1.java index c4f3a961..78107778 100644 --- a/diylc/diylc-library/src/org/diylc/components/semiconductors/TransistorTO1.java +++ b/diylc/diylc-library/src/org/diylc/components/semiconductors/TransistorTO1.java @@ -202,7 +202,12 @@ public class TransistorTO1 extends AbstractTransistorPackage { g2d.draw(mainArea); // Draw label. - g2d.setFont(project.getFont()); + g2d.setFont(project.getFont()); + + // Override font size + if (getFontSizeOverride() != null) + g2d.setFont(g2d.getFont().deriveFont(1f * getFontSizeOverride())); + Color finalLabelColor; if (outlineMode) { finalLabelColor = diff --git a/diylc/diylc-library/src/org/diylc/components/semiconductors/TransistorTO126.java b/diylc/diylc-library/src/org/diylc/components/semiconductors/TransistorTO126.java index 484b3e67..bc43cb44 100644 --- a/diylc/diylc-library/src/org/diylc/components/semiconductors/TransistorTO126.java +++ b/diylc/diylc-library/src/org/diylc/components/semiconductors/TransistorTO126.java @@ -290,7 +290,12 @@ public class TransistorTO126 extends AbstractTransistorPackage { g2d.setComposite(oldComposite); // Draw label. - g2d.setFont(project.getFont()); + g2d.setFont(project.getFont()); + + // Override font size + if (getFontSizeOverride() != null) + g2d.setFont(g2d.getFont().deriveFont(1f * getFontSizeOverride())); + Color finalLabelColor; if (outlineMode) { finalLabelColor = diff --git a/diylc/diylc-library/src/org/diylc/components/semiconductors/TransistorTO220.java b/diylc/diylc-library/src/org/diylc/components/semiconductors/TransistorTO220.java index c705e23d..3d0568b5 100644 --- a/diylc/diylc-library/src/org/diylc/components/semiconductors/TransistorTO220.java +++ b/diylc/diylc-library/src/org/diylc/components/semiconductors/TransistorTO220.java @@ -327,7 +327,12 @@ public class TransistorTO220 extends AbstractTransistorPackage { } // Draw label. - g2d.setFont(project.getFont()); + g2d.setFont(project.getFont()); + + // Override font size + if (getFontSizeOverride() != null) + g2d.setFont(g2d.getFont().deriveFont(1f * getFontSizeOverride())); + Color finalLabelColor; if (outlineMode) { finalLabelColor = diff --git a/diylc/diylc-library/src/org/diylc/components/semiconductors/TransistorTO3.java b/diylc/diylc-library/src/org/diylc/components/semiconductors/TransistorTO3.java index 015f1065..e8179f76 100644 --- a/diylc/diylc-library/src/org/diylc/components/semiconductors/TransistorTO3.java +++ b/diylc/diylc-library/src/org/diylc/components/semiconductors/TransistorTO3.java @@ -40,7 +40,7 @@ import org.diylc.common.Display; import org.diylc.common.IPlugInPort; import org.diylc.common.ObjectCache; import org.diylc.common.Orientation; -import org.diylc.components.AbstractTransparentComponent; +import org.diylc.components.AbstractLabeledComponent; import org.diylc.core.ComponentState; import org.diylc.core.IDIYComponent; import org.diylc.core.IDrawingObserver; @@ -57,7 +57,7 @@ import org.diylc.utils.Constants; @ComponentDescriptor(name = "Transistor (TO-3)", author = "Branislav Stojkovic", category = "Semiconductors", instanceNamePrefix = "Q", description = "Transistor with large metal body", zOrder = IDIYComponent.COMPONENT, keywordPolicy = KeywordPolicy.SHOW_VALUE, enableCache = true) -public class TransistorTO3 extends AbstractTransparentComponent { +public class TransistorTO3 extends AbstractLabeledComponent { private static final long serialVersionUID = 1L; @@ -269,7 +269,12 @@ public class TransistorTO3 extends AbstractTransparentComponent { g2d.draw(innerArea); // Draw label. - g2d.setFont(project.getFont()); + g2d.setFont(project.getFont()); + + // Override font size + if (getFontSizeOverride() != null) + g2d.setFont(g2d.getFont().deriveFont(1f * getFontSizeOverride())); + Color finalLabelColor; if (outlineMode) { finalLabelColor = diff --git a/diylc/diylc-library/src/org/diylc/components/semiconductors/TransistorTO92.java b/diylc/diylc-library/src/org/diylc/components/semiconductors/TransistorTO92.java index 9a93d367..60a16c6e 100644 --- a/diylc/diylc-library/src/org/diylc/components/semiconductors/TransistorTO92.java +++ b/diylc/diylc-library/src/org/diylc/components/semiconductors/TransistorTO92.java @@ -225,7 +225,12 @@ public class TransistorTO92 extends AbstractTransistorPackage { g2d.draw(mainArea); // Draw label. - g2d.setFont(project.getFont()); + g2d.setFont(project.getFont()); + + // Override font size + if (getFontSizeOverride() != null) + g2d.setFont(g2d.getFont().deriveFont(1f * getFontSizeOverride())); + Color finalLabelColor; if (outlineMode) { Theme theme = diff --git a/diylc/diylc-library/src/org/diylc/components/smd/PassiveSMDComponent.java b/diylc/diylc-library/src/org/diylc/components/smd/PassiveSMDComponent.java index aface52c..9cf60650 100644 --- a/diylc/diylc-library/src/org/diylc/components/smd/PassiveSMDComponent.java +++ b/diylc/diylc-library/src/org/diylc/components/smd/PassiveSMDComponent.java @@ -37,7 +37,7 @@ import org.diylc.common.Display; import org.diylc.common.IPlugInPort; import org.diylc.common.ObjectCache; import org.diylc.common.Orientation; -import org.diylc.components.AbstractTransparentComponent; +import org.diylc.components.AbstractLabeledComponent; import org.diylc.core.ComponentState; import org.diylc.core.IDrawingObserver; import org.diylc.core.Project; @@ -48,7 +48,7 @@ import org.diylc.core.measures.Size; import org.diylc.core.measures.SizeUnit; import org.diylc.utils.Constants; -public abstract class PassiveSMDComponent extends AbstractTransparentComponent { +public abstract class PassiveSMDComponent extends AbstractLabeledComponent { private static final long serialVersionUID = 1L; @@ -290,7 +290,12 @@ public abstract class PassiveSMDComponent extends AbstractTransparentComponen g2d.draw(contactArea); // Draw label. - g2d.setFont(project.getFont()); + g2d.setFont(project.getFont()); + + // Override font size + if (getFontSizeOverride() != null) + g2d.setFont(g2d.getFont().deriveFont(1f * getFontSizeOverride())); + Color finalLabelColor; if (outlineMode) { Theme theme = diff --git a/diylc/diylc-library/src/org/diylc/components/tube/SubminiTube.java b/diylc/diylc-library/src/org/diylc/components/tube/SubminiTube.java index aabd5721..4916969b 100644 --- a/diylc/diylc-library/src/org/diylc/components/tube/SubminiTube.java +++ b/diylc/diylc-library/src/org/diylc/components/tube/SubminiTube.java @@ -36,7 +36,7 @@ import org.diylc.common.Display; import org.diylc.common.IPlugInPort; import org.diylc.common.ObjectCache; import org.diylc.common.Orientation; -import org.diylc.components.AbstractTransparentComponent; +import org.diylc.components.AbstractLabeledComponent; import org.diylc.components.transform.TO220Transformer; import org.diylc.core.ComponentState; import org.diylc.core.IDIYComponent; @@ -55,7 +55,7 @@ import org.diylc.utils.Constants; instanceNamePrefix = "V", description = "Sub-miniature (pencil) vacuum tube", zOrder = IDIYComponent.COMPONENT, keywordPolicy = KeywordPolicy.SHOW_VALUE, transformer = TO220Transformer.class) -public class SubminiTube extends AbstractTransparentComponent { +public class SubminiTube extends AbstractLabeledComponent { private static final long serialVersionUID = 1L; @@ -421,6 +421,11 @@ public class SubminiTube extends AbstractTransparentComponent { // Draw label. g2d.setFont(project.getFont()); + + // Override font size + if (getFontSizeOverride() != null) + g2d.setFont(g2d.getFont().deriveFont(1f * getFontSizeOverride())); + Color finalLabelColor; if (outlineMode) { finalLabelColor = diff --git a/diylc/diylc-swing/lang/Deutsch.txt b/diylc/diylc-swing/lang/Deutsch.txt index 1ef43568..0cc988e1 100644 --- a/diylc/diylc-swing/lang/Deutsch.txt +++ b/diylc/diylc-swing/lang/Deutsch.txt @@ -160,7 +160,8 @@ Folded|Gefaltet Font|Schriftart Font Bold|Fettschrift Font Italic|Kursivschrift -Font Size|Schriftgröße +Font Size|Schriftgröße +Font Size Override|Überschreiben der Schriftgröße Four|Vier Full|Voll Fuse|Sicherung diff --git a/diylc/diylc-swing/lang/English.txt b/diylc/diylc-swing/lang/English.txt index b2734953..0f2a9091 100644 --- a/diylc/diylc-swing/lang/English.txt +++ b/diylc/diylc-swing/lang/English.txt @@ -157,6 +157,7 @@ Font Font Bold Font Italic Font Size +Font Size Override Four Full Fuse diff --git a/diylc/diylc-swing/lang/Español.txt b/diylc/diylc-swing/lang/Español.txt index c12d26ff..5dbf9102 100644 --- a/diylc/diylc-swing/lang/Español.txt +++ b/diylc/diylc-swing/lang/Español.txt @@ -158,6 +158,7 @@ Font|Fuente Font Bold|Negrita Font Italic|Itálica Font Size|Tamaño de fuente +Font Size Override|Anulación del tamaño de fuente Four|Cuatro Full|Lleno Fuse|Fusible diff --git a/diylc/diylc-swing/lang/Français.txt b/diylc/diylc-swing/lang/Français.txt index db3d4c86..01553536 100644 --- a/diylc/diylc-swing/lang/Français.txt +++ b/diylc/diylc-swing/lang/Français.txt @@ -158,6 +158,7 @@ Font|Police Font Bold|Gras Font Italic|Italic Font Size|Taille de police +Font Size Override|Taille de police (re) Four|Quatre Full|Complet Fuse|Fusible diff --git a/diylc/diylc-swing/lang/Italiano.txt b/diylc/diylc-swing/lang/Italiano.txt index 73b513e9..7482784e 100644 --- a/diylc/diylc-swing/lang/Italiano.txt +++ b/diylc/diylc-swing/lang/Italiano.txt @@ -161,6 +161,7 @@ Font|Carattere Font Bold|Carattere grassetto Font Italic|Carattere corsivo Font Size|Dimensione carattere +Font Size Override|Sostituzione dimensione carattere Four|Quattro Full|Pieno Fuse|Fusibile diff --git a/diylc/diylc-swing/lang/Nederlands.txt b/diylc/diylc-swing/lang/Nederlands.txt index 53bfa341..ebaebada 100644 --- a/diylc/diylc-swing/lang/Nederlands.txt +++ b/diylc/diylc-swing/lang/Nederlands.txt @@ -161,6 +161,7 @@ Font|Lettertype Font Bold|Vet lettertype Font Italic|Cursief lettertype Font Size|Tekengrootte +Font Size Override|Tekengrootte overschrijven Four|Vier Full|Vol Fuse|Zekering diff --git a/diylc/diylc-swing/lang/Srpski.txt b/diylc/diylc-swing/lang/Srpski.txt index 83cd80ee..68a7c582 100644 --- a/diylc/diylc-swing/lang/Srpski.txt +++ b/diylc/diylc-swing/lang/Srpski.txt @@ -157,6 +157,7 @@ Font Font Bold Font Italic Font Size|Veličina Fonta +Font Size Override|Veličina Fonta Four|Četiri Full|Puno Fuse|Osigurač diff --git a/diylc/diylc-swing/lib/diylc-core.jar b/diylc/diylc-swing/lib/diylc-core.jar index fdb8f02f..2833ea14 100644 Binary files a/diylc/diylc-swing/lib/diylc-core.jar and b/diylc/diylc-swing/lib/diylc-core.jar differ diff --git a/diylc/diylc-swing/library/main.jar b/diylc/diylc-swing/library/main.jar index c200b8f6..add822c5 100644 Binary files a/diylc/diylc-swing/library/main.jar and b/diylc/diylc-swing/library/main.jar differ diff --git a/diylc/diylc-swing/src/org/diylc/swing/gui/editor/IntEditor.java b/diylc/diylc-swing/src/org/diylc/swing/gui/editor/IntEditor.java index 1345c84d..2422d2bb 100644 --- a/diylc/diylc-swing/src/org/diylc/swing/gui/editor/IntEditor.java +++ b/diylc/diylc-swing/src/org/diylc/swing/gui/editor/IntEditor.java @@ -39,8 +39,9 @@ public class IntEditor extends DoubleTextField { public IntEditor(final PropertyWrapper property) { setLayout(new BorderLayout()); if (property.isReadOnly()) - setEnabled(false); - setValue((double) (Integer) property.getValue()); + setEnabled(false); + if (property.getValue() != null) + setValue((double) (Integer) property.getValue()); addPropertyChangeListener(DoubleTextField.VALUE_PROPERTY, new PropertyChangeListener() { @Override diff --git a/diylc/diylc-swing/src/org/diylc/swing/gui/editor/PropertyEditorDialog.java b/diylc/diylc-swing/src/org/diylc/swing/gui/editor/PropertyEditorDialog.java index 8cae8ba4..9eef28a5 100644 --- a/diylc/diylc-swing/src/org/diylc/swing/gui/editor/PropertyEditorDialog.java +++ b/diylc/diylc-swing/src/org/diylc/swing/gui/editor/PropertyEditorDialog.java @@ -142,45 +142,49 @@ public class PropertyEditorDialog extends ButtonDialog { gbc.weightx = 1; gbc.insets = new Insets(2, 2, 2, 2); - Component editor = FieldEditorFactory.createFieldEditor(property); - editor.addKeyListener(new KeyAdapter() { + try { + Component editor = FieldEditorFactory.createFieldEditor(property); + editor.addKeyListener(new KeyAdapter() { + + @Override + public void keyPressed(KeyEvent e) { + if (e.getKeyCode() == KeyEvent.VK_ENTER) { + getButton(OK).doClick(); + } else if (e.getKeyCode() == KeyEvent.VK_ESCAPE) { + getButton(CANCEL).doClick(); + } + } + }); + editorPanel.add(editor, gbc); - @Override - public void keyPressed(KeyEvent e) { - if (e.getKeyCode() == KeyEvent.VK_ENTER) { - getButton(OK).doClick(); - } else if (e.getKeyCode() == KeyEvent.VK_ESCAPE) { - getButton(CANCEL).doClick(); + if (property.isDefaultable()) { + gbc.gridx = 2; + gbc.fill = GridBagConstraints.NONE; + gbc.weightx = 0; + + if (saveDefaults && !property.isReadOnly()) { + editorPanel.add(createDefaultCheckBox(property), gbc); } } - }); - editorPanel.add(editor, gbc); - - if (property.isDefaultable()) { - gbc.gridx = 2; - gbc.fill = GridBagConstraints.NONE; - gbc.weightx = 0; - - if (saveDefaults && !property.isReadOnly()) { - editorPanel.add(createDefaultCheckBox(property), gbc); - } - } - - if (property.getName().equalsIgnoreCase("value")) { - componentToFocus = editor; - } - - // Make value field focused - try { - if (componentToFocus == null - && property.getGetter().getName().equalsIgnoreCase("getValue")) { + + if (property.getName().equalsIgnoreCase("value")) { componentToFocus = editor; } - } catch (Exception e1) { - LOG.warn("Could not determine editor component to focus", e1); + + // Make value field focused + try { + if (componentToFocus == null + && property.getGetter().getName().equalsIgnoreCase("getValue")) { + componentToFocus = editor; + } + } catch (Exception e1) { + LOG.warn("Could not determine editor component to focus", e1); + } + + gbc.gridy++; + } catch (Exception e) { + LOG.error("Error creating editor for " + property.getName(), e); } - - gbc.gridy++; } return editorPanel;