From db173acf770a0c2a73e5f9972aac93e012bd235a Mon Sep 17 00:00:00 2001 From: bancika Date: Tue, 25 Sep 2012 14:45:22 +0000 Subject: [PATCH] inductor symbol allow empty values --- .../diylc-library/lib/diylc-core.jar | Bin 206597 -> 207975 bytes .../passive/AbstractPotentiometer.java | 8 +- .../passive/AxialElectrolyticCapacitor.java | 39 +++--- .../passive/AxialFilmCapacitor.java | 19 +-- .../components/passive/CapacitorSymbol.java | 15 +- .../components/passive/InductorSymbol.java | 130 ++++++++++++++++++ .../passive/RadialCeramicDiskCapacitor.java | 13 +- .../passive/RadialElectrolytic.java | 13 +- .../passive/RadialFilmCapacitor.java | 13 +- .../diylc/components/passive/Resistor.java | 21 +-- .../components/passive/ResistorSymbol.java | 3 +- 11 files changed, 174 insertions(+), 100 deletions(-) create mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/InductorSymbol.java 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 179365a80933ed1a7e00e0b6a8639ef0d48b0a05..b66f5d78aa3326e8028fa967d2d1c9f53eb8d324 100644 GIT binary patch delta 27881 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 delta 26418 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 { @@ -16,7 +15,7 @@ public abstract class AbstractPotentiometer extends protected Point[] controlPoints; - protected Resistance resistance = new Resistance(100d, ResistanceUnit.K); + protected Resistance resistance = null; protected Orientation orientation = Orientation.DEFAULT; protected Taper taper = Taper.LIN; @@ -44,10 +43,11 @@ public abstract class AbstractPotentiometer extends public boolean isControlPointSticky(int index) { return true; } - + @Override public String getValueForDisplay() { - return resistance.toString() + " " + taper.toString(); + return (resistance == null ? "" : resistance.toString()) + " " + + taper.toString(); } @EditableProperty diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/AxialElectrolyticCapacitor.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/AxialElectrolyticCapacitor.java index 733866ea..a857e2d7 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/AxialElectrolyticCapacitor.java +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/AxialElectrolyticCapacitor.java @@ -15,14 +15,13 @@ import org.diylc.core.Theme; import org.diylc.core.annotations.ComponentDescriptor; import org.diylc.core.annotations.EditableProperty; import org.diylc.core.measures.Capacitance; -import org.diylc.core.measures.CapacitanceUnit; import org.diylc.core.measures.Size; import org.diylc.core.measures.SizeUnit; -import org.diylc.core.measures.VoltageUnit; import org.diylc.utils.Constants; @ComponentDescriptor(name = "Electrolytic Capacitor (axial)", author = "Branislav Stojkovic", category = "Passive", creationMethod = CreationMethod.POINT_BY_POINT, instanceNamePrefix = "C", description = "Axial electrolytic capacitor, similar to Sprague Atom, F&T, etc", zOrder = IDIYComponent.COMPONENT) -public class AxialElectrolyticCapacitor extends AbstractLeadedComponent { +public class AxialElectrolyticCapacitor extends + AbstractLeadedComponent { private static final long serialVersionUID = 1L; @@ -33,11 +32,10 @@ public class AxialElectrolyticCapacitor extends AbstractLeadedComponent { @@ -26,18 +24,17 @@ public class AxialFilmCapacitor extends AbstractLeadedComponent { public static Color BODY_COLOR = Color.decode("#FFE303"); public static Color BORDER_COLOR = BODY_COLOR.darker(); - private Capacitance value = new Capacitance(22d, CapacitanceUnit.nF); + private Capacitance value = null; @Deprecated private Voltage voltage = Voltage._63V; - private org.diylc.core.measures.Voltage voltageNew = new org.diylc.core.measures.Voltage(63d, - VoltageUnit.V); + private org.diylc.core.measures.Voltage voltageNew = null; public AxialFilmCapacitor() { super(); this.bodyColor = BODY_COLOR; this.borderColor = BORDER_COLOR; } - + @Override protected boolean supportsStandingMode() { return true; @@ -51,7 +48,7 @@ public class AxialFilmCapacitor extends AbstractLeadedComponent { public void setValue(Capacitance value) { this.value = value; } - + @Deprecated public Voltage getVoltage() { return voltage; @@ -61,7 +58,7 @@ public class AxialFilmCapacitor extends AbstractLeadedComponent { public void setVoltage(Voltage voltage) { this.voltage = voltage; } - + @Override public String getValueForDisplay() { return getValue().toString() + " " + getVoltageNew().toString(); @@ -69,12 +66,6 @@ public class AxialFilmCapacitor extends AbstractLeadedComponent { @EditableProperty(name = "Voltage") public org.diylc.core.measures.Voltage getVoltageNew() { - // Backward comptibility - if (voltageNew == null) { - voltageNew = voltage.convertToNewFormat(); - voltage = null; - // Clear old value, don't need it anymore - } return voltageNew; } diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/CapacitorSymbol.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/CapacitorSymbol.java index 7c7f6d2f..e9fa6721 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/CapacitorSymbol.java +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/CapacitorSymbol.java @@ -10,10 +10,8 @@ import org.diylc.core.IDIYComponent; import org.diylc.core.annotations.ComponentDescriptor; import org.diylc.core.annotations.EditableProperty; import org.diylc.core.measures.Capacitance; -import org.diylc.core.measures.CapacitanceUnit; import org.diylc.core.measures.Size; import org.diylc.core.measures.SizeUnit; -import org.diylc.core.measures.VoltageUnit; @ComponentDescriptor(name = "Capacitor (schematic symbol)", author = "Branislav Stojkovic", category = "Passive", creationMethod = CreationMethod.POINT_BY_POINT, instanceNamePrefix = "C", description = "Capacitor schematic symbol with an optional polarity sign", zOrder = IDIYComponent.COMPONENT) public class CapacitorSymbol extends AbstractSchematicLeadedSymbol { @@ -23,11 +21,10 @@ public class CapacitorSymbol extends AbstractSchematicLeadedSymbol public static Size DEFAULT_LENGTH = new Size(0.05, SizeUnit.in); public static Size DEFAULT_WIDTH = new Size(0.15, SizeUnit.in); - private Capacitance value = new Capacitance(22d, CapacitanceUnit.nF); + private Capacitance value = null; @Deprecated private Voltage voltage = Voltage._63V; - private org.diylc.core.measures.Voltage voltageNew = new org.diylc.core.measures.Voltage(63d, - VoltageUnit.V); + private org.diylc.core.measures.Voltage voltageNew = null; private boolean polarized = false; @EditableProperty @@ -38,7 +35,7 @@ public class CapacitorSymbol extends AbstractSchematicLeadedSymbol public void setValue(Capacitance value) { this.value = value; } - + @Override public String getValueForDisplay() { return getValue().toString() + " " + getVoltageNew().toString(); @@ -56,12 +53,6 @@ public class CapacitorSymbol extends AbstractSchematicLeadedSymbol @EditableProperty(name = "Voltage") public org.diylc.core.measures.Voltage getVoltageNew() { - // Backward compatibility - if (voltageNew == null) { - voltageNew = voltage.convertToNewFormat(); - voltage = null; - // Clear old value, don't need it anymore - } return voltageNew; } diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/InductorSymbol.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/InductorSymbol.java new file mode 100644 index 00000000..166476cd --- /dev/null +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/InductorSymbol.java @@ -0,0 +1,130 @@ +package org.diylc.components.passive; + +import java.awt.Graphics2D; +import java.awt.Shape; +import java.awt.geom.GeneralPath; + +import org.diylc.components.AbstractSchematicLeadedSymbol; +import org.diylc.core.CreationMethod; +import org.diylc.core.IDIYComponent; +import org.diylc.core.annotations.ComponentDescriptor; +import org.diylc.core.annotations.EditableProperty; +import org.diylc.core.measures.Current; +import org.diylc.core.measures.Inductance; +import org.diylc.core.measures.Resistance; +import org.diylc.core.measures.Size; +import org.diylc.core.measures.SizeUnit; + +@ComponentDescriptor(name = "Inductor (schematic symbol)", author = "Branislav Stojkovic", category = "Passive", creationMethod = CreationMethod.POINT_BY_POINT, instanceNamePrefix = "L", description = "Inductor schematic symbol", zOrder = IDIYComponent.COMPONENT) +public class InductorSymbol extends AbstractSchematicLeadedSymbol { + + private static final long serialVersionUID = 1L; + + public static Size DEFAULT_LENGTH = new Size(0.3, SizeUnit.in); + public static Size DEFAULT_WIDTH = new Size(0.08, SizeUnit.in); + + private Inductance value = null; + private Current current = null; + private Resistance resistance = null; + private boolean core = false; + + @EditableProperty + public Inductance getValue() { + return value; + } + + public void setValue(Inductance value) { + this.value = value; + } + + @EditableProperty + public Current getCurrent() { + return current; + } + + public void setCurrent(Current current) { + this.current = current; + } + + @EditableProperty + public Resistance getResistance() { + return resistance; + } + + public void setResistance(Resistance resistance) { + this.resistance = resistance; + } + + @Override + public String getValueForDisplay() { + return getValue().toString() + " " + getCurrent().toString(); + } + + public void drawIcon(Graphics2D g2d, int width, int height) { + g2d.rotate(-Math.PI / 4, width / 2, height / 2); + g2d.setColor(LEAD_COLOR); + g2d.drawLine(0, height / 2, width / 8, height / 2); + g2d.drawLine(width * 7 / 8, height / 2, width, height / 2); + g2d.setColor(COLOR); + + GeneralPath polyline = new GeneralPath(); + polyline.moveTo(width / 8, height / 2); + polyline.curveTo(width / 8, height / 4, width * 3 / 8, height / 4, + width * 3 / 8, height / 2); + polyline.curveTo(width * 3 / 8, height / 4, width * 5 / 8, height / 4, + width * 5 / 8, height / 2); + polyline.curveTo(width * 5 / 8, height / 4, width * 7 / 8, height / 4, + width * 7 / 8, height / 2); + + polyline.moveTo(width / 8, height * 6 / 10); + polyline.lineTo(width * 7 / 8, height * 6 / 10); + polyline.moveTo(width / 8, height * 7 / 10); + polyline.lineTo(width * 7 / 8, height * 7 / 10); + g2d.draw(polyline); + } + + @Override + protected Size getDefaultWidth() { + return DEFAULT_WIDTH; + } + + @Override + protected Size getDefaultLength() { + return DEFAULT_LENGTH; + } + + @Override + protected Shape getBodyShape() { + GeneralPath polyline = new GeneralPath(); + double length = getLength().convertToPixels(); + double width = getWidth().convertToPixels(); + double d = length / 10; + polyline.moveTo(0, width / 2); + polyline.curveTo(0, 0, 2 * d, 0, 2 * d, width / 2); + polyline.curveTo(2 * d, 0, 4 * d, 0, 4 * d, width / 2); + polyline.curveTo(4 * d, 0, 6 * d, 0, 6 * d, width / 2); + polyline.curveTo(6 * d, 0, 8 * d, 0, 8 * d, width / 2); + polyline.curveTo(8 * d, 0, 10 * d, 0, 10 * d, width / 2); + if (core) { + polyline.moveTo(0, width * 3 / 4); + polyline.lineTo(length, width * 3 / 4); + polyline.moveTo(0, width * 7 / 8); + polyline.lineTo(length, width * 7 / 8); + } + return polyline; + } + + @Override + protected boolean useShapeRectAsPosition() { + return false; + } + + @EditableProperty + public boolean getCore() { + return core; + } + + public void setCore(boolean core) { + this.core = core; + } +} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/RadialCeramicDiskCapacitor.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/RadialCeramicDiskCapacitor.java index 3041da50..fd611182 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/RadialCeramicDiskCapacitor.java +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/RadialCeramicDiskCapacitor.java @@ -11,10 +11,8 @@ import org.diylc.core.IDIYComponent; import org.diylc.core.annotations.ComponentDescriptor; import org.diylc.core.annotations.EditableProperty; import org.diylc.core.measures.Capacitance; -import org.diylc.core.measures.CapacitanceUnit; import org.diylc.core.measures.Size; import org.diylc.core.measures.SizeUnit; -import org.diylc.core.measures.VoltageUnit; @ComponentDescriptor(name = "Ceramic Capacitor (radial)", author = "Branislav Stojkovic", category = "Passive", creationMethod = CreationMethod.POINT_BY_POINT, instanceNamePrefix = "C", description = "Standard radial ceramic capacitor", zOrder = IDIYComponent.COMPONENT) public class RadialCeramicDiskCapacitor extends AbstractRadialComponent { @@ -26,11 +24,10 @@ public class RadialCeramicDiskCapacitor extends AbstractRadialComponent { public static Size HEIGHT = new Size(0.4d, SizeUnit.in); public static Size EDGE_RADIUS = new Size(1d, SizeUnit.mm); - private Capacitance value = new Capacitance(1d, CapacitanceUnit.uF); + private Capacitance value = null; @Deprecated private Voltage voltage = Voltage._63V; - private org.diylc.core.measures.Voltage voltageNew = new org.diylc.core.measures.Voltage( - 63d, VoltageUnit.V); + private org.diylc.core.measures.Voltage voltageNew = null; private Color markerColor = MARKER_COLOR; private Color tickColor = TICK_COLOR; @@ -82,12 +79,6 @@ public class RadialElectrolytic extends AbstractRadialComponent { @EditableProperty(name = "Voltage") public org.diylc.core.measures.Voltage getVoltageNew() { - // Backward comptibility - if (voltageNew == null) { - voltageNew = voltage.convertToNewFormat(); - voltage = null; - // Clear old value, don't need it anymore - } return voltageNew; } diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/RadialFilmCapacitor.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/RadialFilmCapacitor.java index 97a1f3c9..e227d25c 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/RadialFilmCapacitor.java +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/RadialFilmCapacitor.java @@ -11,10 +11,8 @@ import org.diylc.core.IDIYComponent; import org.diylc.core.annotations.ComponentDescriptor; import org.diylc.core.annotations.EditableProperty; import org.diylc.core.measures.Capacitance; -import org.diylc.core.measures.CapacitanceUnit; import org.diylc.core.measures.Size; import org.diylc.core.measures.SizeUnit; -import org.diylc.core.measures.VoltageUnit; @ComponentDescriptor(name = "Film Capacitor (radial)", author = "Branislav Stojkovic", category = "Passive", creationMethod = CreationMethod.POINT_BY_POINT, instanceNamePrefix = "C", description = "Radial film capacitor, similar to Sprague Orange Drop", zOrder = IDIYComponent.COMPONENT) public class RadialFilmCapacitor extends AbstractRadialComponent { @@ -26,11 +24,10 @@ public class RadialFilmCapacitor extends AbstractRadialComponent { public static Color BODY_COLOR = Color.decode("#FF8000"); public static Color BORDER_COLOR = BODY_COLOR.darker(); - private Capacitance value = new Capacitance(123d, CapacitanceUnit.nF); + private Capacitance value = null; @Deprecated private Voltage voltage = Voltage._63V; - private org.diylc.core.measures.Voltage voltageNew = new org.diylc.core.measures.Voltage( - 63d, VoltageUnit.V); + private org.diylc.core.measures.Voltage voltageNew = null; public RadialFilmCapacitor() { super(); @@ -64,12 +61,6 @@ public class RadialFilmCapacitor extends AbstractRadialComponent { @EditableProperty(name = "Voltage") public org.diylc.core.measures.Voltage getVoltageNew() { - // Backward comptibility - if (voltageNew == null) { - voltageNew = voltage.convertToNewFormat(); - voltage = null; - // Clear old value, don't need it anymore - } return voltageNew; } 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 b9d3feab..e9f56b05 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 @@ -13,13 +13,11 @@ import org.diylc.core.IDIYComponent; import org.diylc.core.annotations.ComponentDescriptor; import org.diylc.core.annotations.EditableProperty; import org.diylc.core.annotations.PositiveMeasureValidator; -import org.diylc.core.measures.PowerUnit; import org.diylc.core.measures.Resistance; -import org.diylc.core.measures.ResistanceUnit; import org.diylc.core.measures.Size; import org.diylc.core.measures.SizeUnit; -@ComponentDescriptor(name = "Resistor", author = "Branislav Stojkovic", category = "Passive", creationMethod = CreationMethod.POINT_BY_POINT, instanceNamePrefix = "R", description = "", zOrder = IDIYComponent.COMPONENT) +@ComponentDescriptor(name = "Resistor", author = "Branislav Stojkovic", category = "Passive", creationMethod = CreationMethod.POINT_BY_POINT, instanceNamePrefix = "R", description = "Resistor layout symbol", zOrder = IDIYComponent.COMPONENT) public class Resistor extends AbstractLeadedComponent { private static final long serialVersionUID = 1L; @@ -31,11 +29,10 @@ public class Resistor extends AbstractLeadedComponent { public static int BAND_SPACING = 5; public static int FIRST_BAND = 4; - private Resistance value = new Resistance(100d, ResistanceUnit.K); + private Resistance value = null; @Deprecated private Power power = Power.HALF; - private org.diylc.core.measures.Power powerNew = new org.diylc.core.measures.Power(0.5, - PowerUnit.W); + private org.diylc.core.measures.Power powerNew = null; private ResistorColorCode colorCode = ResistorColorCode._5_BAND; public Resistor() { @@ -75,12 +72,6 @@ public class Resistor extends AbstractLeadedComponent { @EditableProperty(name = "Power rating") public org.diylc.core.measures.Power getPowerNew() { - // Backward compatibility - if (powerNew == null) { - powerNew = power.convertToNewFormat(); - // Clear old value, don't need it anymore - power = null; - } return powerNew; } @@ -131,8 +122,8 @@ public class Resistor extends AbstractLeadedComponent { @Override protected void decorateComponentBody(Graphics2D g2d, boolean outlineMode) { - // int width = getWidth().convertToPixels(); - if (colorCode == ResistorColorCode.NONE || outlineMode) { + // int width = getWidth().convertToPixels(); + if (colorCode == ResistorColorCode.NONE || outlineMode || value == null) { return; } int height = getClosestOdd(getWidth().convertToPixels()); @@ -148,6 +139,8 @@ public class Resistor extends AbstractLeadedComponent { @Override protected int getLabelOffset(int bodyWidth, int labelWidth) { + if (value == null) + return 0; Color[] bands = value.getColorCode(colorCode); int bandArea = FIRST_BAND + BAND_SPACING * (bands.length - 1); // Only offset the label if overlaping with the band area. diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/ResistorSymbol.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/ResistorSymbol.java index 0e4eefec..6b3aa1f0 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/ResistorSymbol.java +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/ResistorSymbol.java @@ -11,7 +11,6 @@ import org.diylc.core.annotations.ComponentDescriptor; import org.diylc.core.annotations.EditableProperty; import org.diylc.core.measures.PowerUnit; import org.diylc.core.measures.Resistance; -import org.diylc.core.measures.ResistanceUnit; import org.diylc.core.measures.Size; import org.diylc.core.measures.SizeUnit; @@ -23,7 +22,7 @@ public class ResistorSymbol extends AbstractSchematicLeadedSymbol { public static Size DEFAULT_LENGTH = new Size(0.3, SizeUnit.in); public static Size DEFAULT_WIDTH = new Size(0.08, SizeUnit.in); - private Resistance value = new Resistance(100d, ResistanceUnit.K); + private Resistance value = null; @Deprecated private Power power = Power.HALF; private org.diylc.core.measures.Power powerNew = new org.diylc.core.measures.Power(0.5,