From f2a814e41ce3ff5a26d0e6bcb55a0ca70442c623 Mon Sep 17 00:00:00 2001 From: bancika Date: Thu, 15 Mar 2012 00:56:20 +0000 Subject: [PATCH] added cliff style jack --- .../diylc/components/AbstractComponent.java | 1 + .../diylc-library/lib/diylc-core.jar | Bin 196158 -> 196216 bytes .../electromechanical/CliffJack.java | 307 ++++++++++++++++++ .../electromechanical/JackType.java | 11 + .../electromechanical/MiniToggleSwitch.java | 24 +- .../diylc/components/misc/GroundSymbol.java | 2 +- .../semiconductors/BJTPolarity.java | 14 +- .../semiconductors/FETPolarity.java | 14 +- .../diylc-swing/lib/diylc-core.jar | Bin 196158 -> 196216 bytes .../diylc-swing/library/main.jar | Bin 150206 -> 157028 bytes .../diylc-swing/update.xml | 4 + 11 files changed, 341 insertions(+), 36 deletions(-) create mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/electromechanical/CliffJack.java create mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/electromechanical/JackType.java diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/components/AbstractComponent.java b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/components/AbstractComponent.java index 72204793..258ebe8b 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/components/AbstractComponent.java +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/components/AbstractComponent.java @@ -32,6 +32,7 @@ public abstract class AbstractComponent implements IDIYComponent { public static Color LABEL_COLOR = Color.black; public static Color LABEL_COLOR_SELECTED = Color.red; public static Font LABEL_FONT = new Font("Tahoma", Font.PLAIN, 14); + public static Color METAL_COLOR = Color.decode("#236B8E"); @EditableProperty(defaultable = false) @Override 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 ff5ace7a425e8b34407c4c28a3ec17b6ed60d080..f0005f9a32246b5a47f70f1da6276768de50497a 100644 GIT binary patch delta 8891 zcmZWu30RF=7e3!UiAIg*G!IfL4ZSAkdpbG^rc)1&lHTa6YG1>Ew%eysa`K7a1Ym^AM@0 z<{HeP%x1=us1Rz>N`)0>mCUzVAF_c|21^(T_j= z2%D-tRpW=3Yg}JNMz!QpiTosWpOb$Ut0ipPtfLfQ?1$4FJjV`nI5fT=KdN%ZjEqH} z@4deooBVi6)_t4Cc7FS#za#&SHt=o^9mJ?bc@*Y_N~+d`GZ)yz9Z6m#|U#)+~I3l zY+vmEdPw~I8acB$>-U7`1@B0$lzHwoaQVKR{ko^)?)20CzF*gSQ*@p7cE^IcVFr&r ztPjtL)w}HywKzU_^dvjc-a&engDxMBdK(oSs4?rgVRQZM=2{7B@tl*;Qau zK62NnXtTtyK;_9PbuYJS`Hfj>H8@x&W{9A{$L@u&DK`6L1mCSsL`s(NQ7&O5$! z;3;?G@k3wjNnft>*26q;oZ2_V5!Sj58mr8W4b^id$G*EVu!qy21-HyDl{l_iy{+%! z{qvs`Jq^8n;!uS8<>N7nVvJOj3|`g@S#$XCg@`TDXB;ZyhQ*B=u&XLye~62F{$n{0 zdv)IftEVTX)`xHVOR3+zuq%4=^YbIUd>x8y6YCzhT|czdc*5Aghx?U=sbcSVJ+n5M zb=q?s&W<~jR@LIyc(Qm)dxGC}K}E7|zJ>hQNg0!aJU#X{wD{Rr4w|^PZNnCmDcg=V zw5sjK8;;br%I}_fHgUs^`*myFN1aY+uqhwpIrqe{5Fg&A;dS~OE-39Xz+t9?UR>RO z<%{LXo5c~TBMy}Qak*N1cVxyLRFUF!TQ*puMYd4hK62=W8>Tf&Z;Z;6TQ8LCosFt; zdOA93w5S#;e9=1A>x;%Qxi5ON_nbqS*;A2C&61eWw};w$g!lR)sFq95jane{*P}g# zTIpL0920wVMtLDu#m?;8^JOb8MTdo)|M%_L2X%A(yrUnK6`-`5zmrlD)2y3EJpU%s zxuZWy8<=vn$9VC{2V1YZ4N5e2Z}_Wb5)(V<-tq5i&%RViAO7^=;j_JBC;5fvUCR&2 zJna6mXnmvKiLti1f8O#m>$|uiX+xXJnDO_gbzMB#&%ngrBVb&q+Fdhu=Ak=MZ|1Apf4$F*?tEqC zlwe~jT6KTQt4%{5X{P0*&MGSq3^z>sFyobbeA~3J*lJxlTan_l!S!1do(t1Y2JAJ~ z&j^xxHPB;OPWqX`9?waFkK{{dU;ve+iTA*G&Y95X>JE(d;Zl-lv z&5gPGk%tsjhrhX1r*eJa29@6R`={(Z5>fj2V5wth@^if$fQ;aF?t^)qBt0AI=&Wwn#8JO+IFYi`%RTIlJQ3%r12<%#ifa zkyGtuyfZj?!hpHgyaLBHeT{F^nJxHZYU8|W+0R~jn|J5<8`v3i>E+DZoMW^*bdIAz zgI)H#IJYC80)%V$yiqY;Qu_Od$FfP>`O)0^peb7m#*#}bj_*Dw%KRp0qaR2aN)G!aCb7GGy+ zMD|OH37ul_Kx*LjfjA@~&jXM)4V!XG5BKrFeQzQc?QY0|Gk`j(SQbyA-ILWDUPVJ-2Gn2CE z0X_N4gkkgH3uiG;WIJCIhm|8ak!SKo5p1Nut!cSE?1+ubkSdGsxiYbov}oyq@ggAIh4;ik@Qg;73K3(Oe<+`c zJ9CywkGz<6+O7LOj2p#NCNaKz6T)Xy4pdGH)p9kTr}VO=!%BFZsQIicfpFU_GPDS7NJ;kIqOK0}5w+d?;k<(}a47 zFK%MIX)a6{GlI+)vCD48RgM&UdmNKRweCllJ#=g~g$B{0Z&>C9KIrWs66>RXh_tf0}XZuGO(fM~thLTHN@++oZp z>7IMcc`A*}W1i57p6faMEH}}~RP1VjK8$^ zVM1xlbF*H~-wJkNw8mAfP~(6yW*4<}kQ`moCmCQ(RaiG+mAAovR12dj_oPERGq8>|{m@_mPrIJF)dhl39 zCzZW~*-4FIZgVq#_9tc=#Tq-9U@A@Nf{9R$^Zqe5)j5A~y3ZwquwgJ7yoh_6m0p)YEsF%%}EEOIRr zKbnQos7F))oJ7QK=R6chvGyR;W=F6$7=6|!Qr%Vbgley)BWo(XxsHaD4PV^v7J>!H z=F*XcdgV|Xe8TjoPQr~qb$;SAN|2v=oD$O(RhoGPJ^WByWz zCK9g+k2oRW5t{bPEfy;jamh|ELb~WLN1XKt8Hsi~^%m`P?1__$kRsu@!D@Fp{nQ%b zVI@e>2rA-yRmCoCgB*{iqru}1WZxFJ{}RF@U4EJ?<1s}@jhGAKTdF*J^LPu5e>L~< zV9gEj-C|@+Ov^hzdB(%q>DiOVv;Rp8zX{>*rV~?9^K@P8^q5Q0>oKJG!k=m?{dKSh zBu|JojDEhh6dZ>!Jf4{pQI9$J(PK22SZ!S>82t_`*yG7W%F1xAh?#4O$2|c)b{8*m z6JpTI8y$CGFgJmBnPG6k;1lbWImpieGdcwBaL*`eb zIas3v*^%u24KzQq5g4MNnMyI8SuBcK+z;=70U<+mxCH4kL0DWuA8K$5{EdbMW2L9a zoKU5y4Bepv@y2dFayZ0~o-~nY|;1@;=@ZvJmhq&!#(fZ9SYJl_0kOk>%dr9K$$I#Jwm_*W@ zZQX*6E07MhE=R_Mz_%O-lp_f$x)h^;M?d2x?OUIa8)u+mfjxdDxf1i!Tob!jaPw`- z^MT?y5c4(EOuE;nchZ=9o*{WcPXbSS27xE+?N%9)%!9m^&YJ}+8Ngy9RXg|ntf?WE zKz^jm(XKzt10lc1FoXI@nZCwG72G_SRsm7=#&c0BkO7IE!lEmVbfYvalECprt2}1| zYXh)aNwIpI{6G6~&yj#o&3O(~?Wc%J)N)FmOamH()kG)#)X3m>;6pP1?{odvx$lFG zUvLZL@+x(QxloCRPzmX|{|T>n!7bme(_7@{L$+0rt%X#!hf`>_)h`e^S@4e+kj}U( zB1WQ)Z7Y!;IVvVp0%)1Vf+E8#IjjGlbW#@sh@mCL|2Ug4-LFLIgy{v#)R05KOI1h~ zt5qRwqOqw0jZVRTn!ul$&8)_y@TbPehz)r`x25C}gv*E4M=GRe@lQ)xELV+$#Qdt> zf%Oegrdnu1Df1a6thvaiL>5o0hDpkjcjz~$833_1+oY`5mV>nhK2**1=VCSFR!~8} znrf~qoh-PmiGbEMuufRc|86(G*2qu-mO6Mt4Hvy${LivHh@1^gM=JXHHXL4yH1M?= z*n@x+7u7(d10CH4%|MDEse?6z2kce7MYVM z=V~F!RvxyiL+bc>E!Xu{7FFX@)c7S*C$XOdtnXC7 z9k_O>v#z=r*C9>vRdSI| zNuNEGnjUQ6I_T041g^s=3YSm;AsDZB)TIubtDs5m0?(YV%WD|=M^20^wr=E#?brw` zZLX|J6NfY+9gGi!2ih1aE^4=$$(jr z22I+u6Fa{~)+EaE*AV4{59_Lj&q8hlz0IN{Cb6gnZiWAm*xi?3h%J4@@0~(RVE=~O zW;WlL=K31U*fL1h@Wym%TIA2j;O%b^xy#~1Zy?}v|8CXq3!|2`IJJyg_`ijtQTHu4 zvunoYEvVM5>{c0*Z13K zjf7js|6Qej?Qp?KN}|=w%?I0NAgM{D9foHEeKJeJSkxhjq8FRFGqR9HcPCR6o(=@$ zb9l{3Nt+3D!~mM~@vNLeP2JujBa-pr_du}v3Pt1J!#4=KRx?->iz&K83?1os&z%$9 zPYy8AO{A)MC!N~ED+FbkCIOZY85E6{Ku6dbon_IkOo~2}AU#t5?so}DS$aaOxI<0N zTeywHxdjMr-lOR97VZd$iMI_s2F~pLM0ybf=TXzN7Oub#SpwIG6ooepT44QFKxY?G z6y7rE_OeafM{68Vj`}UHx+m21U@Mo`1(sl58AaidgHF`8ixDR2;G7CgdL0`)r>3TD zNJy$avJD7SswoPO9~6ydQLmR2z1D`b$)qmdZ{67+hQJJ(ba%hw);8`4)%yUh0S(j@ z-bQFfJ?;s#w!sx>D>Uh;UiyZb7QA7Ue>);Bv1D;g)S~7mS@(0wZ`~Uup{D)XxsH(i z`(qnL-?lOGcvCyKnqt_kea9!Ny57!>Q!$Hbe5I(|S4IIVe&iff?6aznU; zMeBc1^zcV+HH@jO7S4wBrvH|rB_9`mgnvb6r{#Cn_pU4pXyKc(s3&&##04Aw2~>Xa zR0VH2n#Qn3oV~qgCzQhiP=pbXp0TkC2!|-Z;s1zbU>_-}Scb!jShWKQvD#-ibXe5( zGoV4rEUJV55h5iVqKtasO`kch7*;P<`9J+_70`Elbil(4OEaMZ zX#D!IG=?~)1IB_ylUVdG3lKqn^(4sk*%_)Q_~E1+@qYSB252%Xsu zEN!fTn!b!fvR&BRgL_H=uOVsLO16Q z1nLjhN9hgnY5+A&4nV5Em19AP5AF+Y8BlO(x9hn08+YxQYf&D4#g50bT>a|?X*|E1 zTMm!zgwI$u`DvYyp&*W`l;dFbvB{H~$fmcN$3whONK^WwLM06sb;9>1OYnmwXh>%P z_~(@_cyAoi#f`967t5W|tr8N4Lx3`q@YOD4W6YL5{z0Tf6)tH@;6`pDReG~K2+Q3; QeX;p>q$0ciKIFptAN-2)X8-^I delta 8625 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 diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/electromechanical/CliffJack.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/electromechanical/CliffJack.java new file mode 100644 index 00000000..f2cfe985 --- /dev/null +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/electromechanical/CliffJack.java @@ -0,0 +1,307 @@ +package org.diylc.components.electromechanical; + +import java.awt.AlphaComposite; +import java.awt.Color; +import java.awt.Composite; +import java.awt.Graphics2D; +import java.awt.Point; +import java.awt.Rectangle; +import java.awt.Shape; +import java.awt.geom.AffineTransform; +import java.awt.geom.Area; +import java.awt.geom.Ellipse2D; +import java.awt.geom.RoundRectangle2D; + +import org.diylc.appframework.miscutils.ConfigurationManager; +import org.diylc.common.HorizontalAlignment; +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.core.ComponentState; +import org.diylc.core.IDIYComponent; +import org.diylc.core.IDrawingObserver; +import org.diylc.core.Project; +import org.diylc.core.Theme; +import org.diylc.core.VisibilityPolicy; +import org.diylc.core.annotations.ComponentDescriptor; +import org.diylc.core.annotations.EditableProperty; +import org.diylc.core.measures.Size; +import org.diylc.core.measures.SizeUnit; +import org.diylc.utils.Constants; + +@ComponentDescriptor(name = "Cliff 1/4\" Jack", category = "Electromechanical", author = "Branislav Stojkovic", description = "Cliff-style enclosed panel mount 1/4\" phono jack", stretchable = false, zOrder = IDIYComponent.COMPONENT, instanceNamePrefix = "J") +public class CliffJack extends AbstractTransparentComponent { + + private static final long serialVersionUID = 1L; + + private static Size SPACING = new Size(0.3d, SizeUnit.in); + private static Size PIN_WIDTH = new Size(0.1d, SizeUnit.in); + private static Size PIN_THICKNESS = new Size(0.02d, SizeUnit.in); + private static Color BODY_COLOR = Color.decode("#555555"); + private static Color NUT_COLOR = Color.decode("#999999"); + private static Color BORDER_COLOR = Color.black; + private static Color LABEL_COLOR = Color.lightGray; + private static Size BODY_WIDTH = new Size(0.8d, SizeUnit.in); + private static Size BODY_LENGTH = new Size(1d, SizeUnit.in); + private static Size TAIL_LENGTH = new Size(0.1d, SizeUnit.in); + + private Point[] controlPoints = new Point[] { new Point(0, 0) }; + private JackType type = JackType.MONO; + private Orientation orientation = Orientation.DEFAULT; + private Shape[] body; + private String value = ""; + + public CliffJack() { + super(); + updateControlPoints(); + } + + private void updateControlPoints() { + // invalidate body shape + body = null; + int x = controlPoints[0].x; + int y = controlPoints[0].y; + int spacing = (int) SPACING.convertToPixels(); + controlPoints = new Point[type == JackType.STEREO ? 6 : 4]; + + controlPoints[0] = new Point(x, y); + controlPoints[1] = new Point(x, y + 2 * spacing); + controlPoints[2] = new Point(x + 2 * spacing, y); + controlPoints[3] = new Point(x + 2 * spacing, y + 2 * spacing); + if (type == JackType.STEREO) { + controlPoints[4] = new Point(x + spacing, y); + controlPoints[5] = new Point(x + spacing, y + 2 * spacing); + } + + // Apply rotation if necessary + double angle = getAngle(); + if (angle != 0) { + AffineTransform rotation = AffineTransform.getRotateInstance(angle, x, y); + for (int i = 1; i < controlPoints.length; i++) { + rotation.transform(controlPoints[i], controlPoints[i]); + } + } + } + + private double getAngle() { + // Apply rotation if necessary + double angle; + switch (orientation) { + case _90: + angle = Math.PI / 2; + break; + case _180: + angle = Math.PI; + break; + case _270: + angle = Math.PI * 3 / 2; + break; + default: + angle = 0; + } + + return angle; + } + + public Shape[] getBody() { + if (body == null) { + body = new Shape[5]; + + // Create body. + int bodyLength = (int) BODY_LENGTH.convertToPixels(); + int bodyWidth = (int) BODY_WIDTH.convertToPixels(); + int centerX = (controlPoints[0].x + controlPoints[3].x) / 2; + int centerY = (controlPoints[0].y + controlPoints[3].y) / 2; + body[0] = new Rectangle(centerX - bodyLength / 2, centerY - bodyWidth / 2, bodyLength, + bodyWidth); + + int tailLength = (int) TAIL_LENGTH.convertToPixels(); + body[1] = new RoundRectangle2D.Double(centerX - bodyLength / 2 - tailLength, centerY + - bodyWidth / 4, tailLength * 2, bodyWidth / 2, tailLength, tailLength); + Area tailArea = new Area(body[1]); + tailArea.subtract(new Area(body[0])); + body[1] = tailArea; + + body[2] = new Rectangle(centerX + bodyLength / 2, centerY - bodyWidth / 4, tailLength, + bodyWidth / 2); + + body[3] = new Rectangle(centerX + bodyLength / 2 + tailLength, centerY - bodyWidth / 4, + tailLength, bodyWidth / 2); + tailArea = new Area(body[3]); + int radius = bodyLength / 2 + tailLength * 2; + tailArea.intersect(new Area(new Ellipse2D.Double(centerX - radius, centerY - radius, + radius * 2, radius * 2))); + body[3] = tailArea; + + // Apply rotation if necessary + double angle = getAngle(); + if (angle != 0) { + AffineTransform rotation = AffineTransform.getRotateInstance(angle, centerX, + centerY); + for (int i = 0; i < body.length; i++) { + if (body[i] != null) { + Area area = new Area(body[i]); + area.transform(rotation); + body[i] = area; + } + } + } + + // Create pins. + Area pins = new Area(); + + int pinWidth = (int) PIN_WIDTH.convertToPixels(); + int pinThickness = (int) PIN_THICKNESS.convertToPixels(); + for (int i = 0; i < getControlPointCount(); i++) { + Point point = getControlPoint(i); + Rectangle pin; + if (orientation == Orientation.DEFAULT || orientation == Orientation._180) { + pin = new Rectangle(point.x - pinWidth / 2, point.y - pinThickness / 2, + pinWidth, pinThickness); + } else { + pin = new Rectangle(point.x - pinThickness / 2, point.y - pinWidth / 2, + pinThickness, pinWidth); + } + pins.add(new Area(pin)); + } + + body[4] = pins; + } + return body; + } + + @Override + public void draw(Graphics2D g2d, ComponentState componentState, boolean outlineMode, + Project project, IDrawingObserver drawingObserver) { + Shape[] body = getBody(); + + // Rectangle bounds = body.getBounds(); + + g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1)); + if (componentState != ComponentState.DRAGGING) { + Composite oldComposite = g2d.getComposite(); + if (alpha < MAX_ALPHA) { + g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1f * alpha + / MAX_ALPHA)); + } + g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : BODY_COLOR); + // GradientPaint gradient; + // if (orientation == Orientation.DEFAULT || orientation == + // Orientation._180) { + // gradient = new GradientPaint(bounds.x, bounds.y, BORDER_COLOR, + // bounds.x, bounds.y + // + bounds.height / 2, BODY_COLOR, true); + // } else { + // gradient = new GradientPaint(bounds.x, bounds.y, BORDER_COLOR, + // bounds.x + // + bounds.width / 2, bounds.y, BODY_COLOR, true); + // } + // Paint oldPaint = g2d.getPaint(); + // g2d.setPaint(gradient); + for (int i = 0; i < body.length - 1; i++) { + // Nut is brighter colored. + if (i == body.length - 2) + g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : NUT_COLOR); + g2d.fill(body[i]); + } + // g2d.setPaint(oldPaint); + g2d.setComposite(oldComposite); + } + g2d.setColor(componentState == ComponentState.SELECTED + || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : BORDER_COLOR); + for (int i = 0; i < body.length - 1; i++) { + g2d.draw(body[i]); + } + + // Pins are the last piece. + Shape pins = body[body.length - 1]; + g2d.setColor(METAL_COLOR); + g2d.fill(pins); + g2d.setColor(METAL_COLOR.darker()); + g2d.draw(pins); + + Color finalLabelColor; + if (outlineMode) { + Theme theme = (Theme) ConfigurationManager.getInstance().readObject( + IPlugInPort.THEME_KEY, Constants.DEFAULT_THEME); + finalLabelColor = componentState == ComponentState.SELECTED + || componentState == ComponentState.DRAGGING ? LABEL_COLOR_SELECTED : theme + .getOutlineColor(); + } else { + finalLabelColor = componentState == ComponentState.SELECTED + || componentState == ComponentState.DRAGGING ? LABEL_COLOR_SELECTED + : LABEL_COLOR; + } + g2d.setColor(finalLabelColor); + g2d.setFont(LABEL_FONT); + int centerX = (controlPoints[0].x + controlPoints[3].x) / 2; + int centerY = (controlPoints[0].y + controlPoints[3].y) / 2; + drawCenteredText(g2d, name, centerX, centerY, HorizontalAlignment.CENTER, + VerticalAlignment.CENTER); + } + + @Override + public void drawIcon(Graphics2D g2d, int width, int height) { + // TODO Auto-generated method stub + + } + + @Override + public int getControlPointCount() { + return controlPoints.length; + } + + @Override + public Point getControlPoint(int index) { + return controlPoints[index]; + } + + @Override + public void setControlPoint(Point point, int index) { + controlPoints[index] = point; + updateControlPoints(); + } + + @Override + public boolean isControlPointSticky(int index) { + return true; + } + + @Override + public VisibilityPolicy getControlPointVisibilityPolicy(int index) { + return VisibilityPolicy.NEVER; + } + + @EditableProperty + @Override + public String getValue() { + return value; + } + + @Override + public void setValue(String value) { + this.value = value; + } + + @EditableProperty + public JackType getType() { + return type; + } + + public void setType(JackType type) { + this.type = type; + updateControlPoints(); + } + + @EditableProperty + public Orientation getOrientation() { + return orientation; + } + + public void setOrientation(Orientation orientation) { + this.orientation = orientation; + updateControlPoints(); + } +} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/electromechanical/JackType.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/electromechanical/JackType.java new file mode 100644 index 00000000..babf975a --- /dev/null +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/electromechanical/JackType.java @@ -0,0 +1,11 @@ +package org.diylc.components.electromechanical; + +public enum JackType { + + MONO, STEREO; + + @Override + public String toString() { + return name().substring(0, 1) + name().substring(1).toLowerCase(); + } +} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/electromechanical/MiniToggleSwitch.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/electromechanical/MiniToggleSwitch.java index a0be8427..1efdac51 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/electromechanical/MiniToggleSwitch.java +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/electromechanical/MiniToggleSwitch.java @@ -33,12 +33,11 @@ public class MiniToggleSwitch extends AbstractTransparentComponent { private static final long serialVersionUID = 1L; public static Color COLOR = Color.black; - public static Size SIZE = new Size(0.1d, SizeUnit.in); + public static Size SIZE = new Size(0.15d, SizeUnit.in); private Point point = new Point(0, 0); private Color color = COLOR; diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/BJTPolarity.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/BJTPolarity.java index e0274896..15590148 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/BJTPolarity.java +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/BJTPolarity.java @@ -2,20 +2,10 @@ package org.diylc.components.semiconductors; public enum BJTPolarity { - NPN("NPN"), PNP("PNP"); - - private String title; - - private BJTPolarity(String title) { - this.title = title; - } - - public String getTitle() { - return title; - } + NPN, PNP; @Override public String toString() { - return title; + return name(); } } diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/FETPolarity.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/FETPolarity.java index 3cb4543b..f5cc48bb 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/FETPolarity.java +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/FETPolarity.java @@ -2,20 +2,10 @@ package org.diylc.components.semiconductors; public enum FETPolarity { - NEGATIVE("Negative"), POSITIVE("Positive"); - - private String title; - - private FETPolarity(String title) { - this.title = title; - } - - public String getTitle() { - return title; - } + NEGATIVE, POSITIVE; @Override public String toString() { - return title; + return name().substring(0, 1) + name().substring(1).toLowerCase(); } } diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/lib/diylc-core.jar b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/lib/diylc-core.jar index ff5ace7a425e8b34407c4c28a3ec17b6ed60d080..f0005f9a32246b5a47f70f1da6276768de50497a 100644 GIT binary patch delta 8891 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 QeX;p>q$0ciKIFptAN-2)X8-^I delta 8625 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 diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/library/main.jar b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/library/main.jar index fbd499472444692a8024333c6a6754941feb51ec..24ec671ef38ad3c52ae30d7b7be551c5473edd48 100644 GIT binary patch delta 18347 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 a)ns55DJw9H7#Ko;Fk6m+;jtUgYz6@Ax)E{! delta 11810 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 V0byfn0yF_)RIs0_9I#dZ{|AgrUseDB diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/update.xml b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/update.xml index efd6dd8e..f59e579b 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/update.xml +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/update.xml @@ -530,6 +530,10 @@ 2012-03-09 20:00:00.000 CET + + NEW_FEATURE + Cliff-style closed 1/4" jack + NEW_FEATURE Ground Symbol