From 8ea53b6876f219900f911ced25241b22a6513452 Mon Sep 17 00:00:00 2001 From: bancika Date: Sun, 30 Jan 2011 23:35:07 +0000 Subject: [PATCH] added capacitor symbol --- .../DIYLC/library/main.jar | Bin 80715 -> 82510 bytes .../components/AbstractLeadedComponent.java | 4 +- .../diylc/presenter/ProjectFileManager.java | 4 +- .../DIYLC/update.xml | 4 + .../Library/build.xml | 3 + .../components/passive/CapacitorSymbol.java | 100 ++++++++++++++++++ .../passive/RadialElectrolytic.java | 3 +- 7 files changed, 112 insertions(+), 6 deletions(-) create mode 100644 diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/CapacitorSymbol.java diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/library/main.jar b/ diy-layout-creator --username bancika@gmail.com/DIYLC/library/main.jar index 5a66d344facf62eafb2e729ad521c89870299d20..455d9cf01691162bff26e380845ab0eaa5e3f85c 100644 GIT binary patch delta 3438 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 delta 1596 zcmZ9LZETZO6vyv*p7mv;?bsNrTb=C^CtC)6UAMMdU#4NjES5#%K$wh)2|B~bjK)-q zx=1pN3YI5$6CGkA8itzaDjQpvV3>T+0hOV|peYKQiWn9RW||=0d+x1l^h3`t|NlAX z-h1wIPi@zI^;e#`tyRq{ApAFVD3UT)t7ljU^jEPEL0SIgvAFfg&90mIJn>Q$&(}=g z#u$YLj7bP%9EH0v{tJGUwb$yE0LES=%JpWrF z1p^`dWhp@}{WX z(sE8fJP{XGs%>TwCO_Npolx34GX<#Bbng_&W4(O>BFW7H4!n3&K=+Q%#NKOnJueph zP}^n1^2h)c*0w>r!bgza`@x?kw6w!BfXZ`YwJO5F@g6;bZQ`5};o9V3p?o~$6Uxl_ z4MK_klm)TFOI9(AdwvdzJ}+D@6KlP7WxY`Tz8WaBu+<~8XHT?@>IwPCwELuu9*e?a z>Wo2AdfScT*mk5@4{ifrd*mrI)L@&DcM9P_3ufSdCWN4eJmVdtePh zw+GfDeBpt1ggd+vp2{!gj|E^8<~V|~&nrRLh)N;^Hku!TN_sT} z#dIJ9B@TXFJ)JtkyCy=E+X?Z{dzJh9e&4V4m0PvUxRICK>EJKsmzHbaz5#@EsJCWc z{A7N%nRYgU6-S(G1e-FM&bivbu|@P)Bbd-U&CP#?rCCk0L1~1VnDNB8G%VWciDJ65 zNt%1Px$;ELq}e90V><{lgPfE`zLuRb)7G%8TF1@$Z|0c>`gRy@!^%-^((?<<>tV3s zsW;l|uAEiaC#@r-dclm6KgbFreIUXP%)i7f5!On(@V_w_fifKRd-nHVo@B$zuvXp$ zZBAe0+5E9ArIx6?nZO$J0Rx-!BkVB+7o`6-eKWl$3N}2!s|=KTf6Y0|P`u2=?Q=O1 zpJD|%i5PQIH*!uPO~qg-I)ltnC-gu)4)D;q7+5R$hvI!{c`;ZBnXb5XJF`Za+tn;v qB%4`_RaTUJ^vh-_!OlN&xwj1EU};;cj-8A*3leV$A?h+V8}c9H extends AbstractTransparentComp (int) ((shapeRect.width + distance) / 2 - leadLenght) + leadThickness / 2, (int) shapeRect.height / 2); } - // Do not track the label because that area was already covered. - drawingObserver.stopTracking(); +// Do not track the label because that area was already covered. +// drawingObserver.stopTracking(); // Draw label. g2d.setFont(LABEL_FONT); g2d.setColor(componentState == ComponentState.SELECTED diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/ProjectFileManager.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/ProjectFileManager.java index 8222bdc4..cac31652 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/ProjectFileManager.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/ProjectFileManager.java @@ -27,7 +27,7 @@ import org.diylc.components.connectivity.HookupWire; import org.diylc.components.connectivity.Jumper; import org.diylc.components.connectivity.SolderPad; import org.diylc.components.misc.Label; -import org.diylc.components.passive.ElectrolyticRadial; +import org.diylc.components.passive.RadialElectrolytic; import org.diylc.components.passive.RadialFilmCapacitor; import org.diylc.components.passive.Resistor; import org.diylc.components.semiconductors.DIL_IC; @@ -293,7 +293,7 @@ public class ProjectFileManager { component = capacitor; } else if (nodeName.equalsIgnoreCase("electrolyte")) { LOG.debug("Recognized " + nodeName); - ElectrolyticRadial capacitor = new ElectrolyticRadial(); + RadialElectrolytic capacitor = new RadialElectrolytic(); capacitor.setName(nameAttr); try { capacitor.setValue(Capacitance.parseCapacitance(valueAttr)); diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/update.xml b/ diy-layout-creator --username bancika@gmail.com/DIYLC/update.xml index f2ab8cef..33be1616 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/update.xml +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/update.xml @@ -163,6 +163,10 @@ NEW_FEATURE Added resistor schematic symbol + + NEW_FEATURE + Added capacitor schematic symbol + http://code.google.com/p/diy-layout-creator/downloads/list diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/build.xml b/ diy-layout-creator --username bancika@gmail.com/Library/build.xml index b375dd52..bd2075b4 100644 --- a/ diy-layout-creator --username bancika@gmail.com/Library/build.xml +++ b/ diy-layout-creator --username bancika@gmail.com/Library/build.xml @@ -46,6 +46,9 @@ + + + diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/CapacitorSymbol.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/CapacitorSymbol.java new file mode 100644 index 00000000..a6377108 --- /dev/null +++ b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/CapacitorSymbol.java @@ -0,0 +1,100 @@ +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.Capacitance; +import org.diylc.core.measures.CapacitanceUnit; +import org.diylc.core.measures.Size; +import org.diylc.core.measures.SizeUnit; + +@ComponentDescriptor(name = "Capacitor (schematic symbol)", author = "Branislav Stojkovic", category = "Passive", creationMethod = CreationMethod.POINT_BY_POINT, instanceNamePrefix = "C", description = "", zOrder = IDIYComponent.COMPONENT) +public class CapacitorSymbol extends AbstractSchematicLeadedSymbol { + + private static final long serialVersionUID = 1L; + + 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 Voltage voltage = Voltage._63V; + private boolean polarized = false; + + @EditableProperty + public Capacitance getValue() { + return value; + } + + public void setValue(Capacitance value) { + this.value = value; + } + + @EditableProperty + public Voltage getVoltage() { + return voltage; + } + + public void setVoltage(Voltage voltage) { + this.voltage = voltage; + } + + @EditableProperty + public boolean getPolarized() { + return polarized; + } + + public void setPolarized(boolean polarized) { + this.polarized = polarized; + } + + 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, 13, height / 2); + g2d.drawLine(width - 13, height / 2, width, height / 2); + g2d.setColor(COLOR); + g2d.drawLine(14, height / 2 - 6, 14, height / 2 + 6); + g2d.drawLine(width - 14, height / 2 - 6, width - 14, height / 2 + 6); + } + + @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(); + polyline.moveTo(0, 0); + polyline.lineTo(0, width); + polyline.moveTo(length, 0); + polyline.lineTo(length, width); + return polyline; + } + + @Override + protected void decorateComponentBody(Graphics2D g2d) { + if (polarized) { + // Draw + sign. + g2d.setColor(getBorderColor()); + int plusSize = getClosestOdd(getWidth().convertToPixels() / 4); + int x = -plusSize; + int y = plusSize; + g2d.drawLine(x - plusSize / 2, y, x + plusSize / 2, y); + g2d.drawLine(x, y - plusSize / 2, x, y + plusSize / 2); + } + } +} diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/RadialElectrolytic.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/RadialElectrolytic.java index e6fa8c9e..35ba2d13 100644 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/RadialElectrolytic.java +++ b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/RadialElectrolytic.java @@ -50,7 +50,7 @@ public class RadialElectrolytic extends AbstractLeadedComponent { public void setValue(Capacitance value) { this.value = value; } - + @EditableProperty public Voltage getVoltage() { return voltage; @@ -60,7 +60,6 @@ public class RadialElectrolytic extends AbstractLeadedComponent { this.voltage = voltage; } - public void drawIcon(Graphics2D g2d, int width, int height) { g2d.setColor(BODY_COLOR); int margin = 3;