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;