From 74c7007b234a57b448c0adc7b08f4610b3e48b6b Mon Sep 17 00:00:00 2001 From: bancika Date: Tue, 4 Jan 2011 22:47:41 +0000 Subject: [PATCH] added capacitor --- .../DIYLC/library/main.jar | Bin 6118 -> 8262 bytes .../AbstractLeadedDIYComponent.java | 11 ++- .../org/diylc/components/Capacitor.java | 71 ++++++++++++++++++ .../org/diylc/components/Resistor.java | 12 ++- .../diylc/plugins/statusbar/StatusBar.java | 46 +++++------- .../diylc/presenter/ComparatorFactory.java | 37 +++++++++ 6 files changed, 144 insertions(+), 33 deletions(-) create mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/src.library/org/diylc/components/Capacitor.java create mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/ComparatorFactory.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 51152b34ec827038cc7ad4afe31c45a08d894826..1caccdcaa9fd997a35d102f2afd6bc2649aab378 100644 GIT binary patch delta 5787 zcmZ9QbyO7avd3vqSwNblgr!p&Bz4K9L0IYTX6ah#TDns}xZ( zuHO6ZyZ61{oHO(LoilUh_t$6Ue76J#6^M1zaq%dzi2fLEXBx2u&gJ_wH#PXZ08<01 z-yXslBO2z*qMEoh;jMN~>7|TBI2BH%vl@`dSy53Z$kPfz5y6blT3gY15^lKnjpa0{ z>bXiHB8GW%va@}Rt68}c*98*F+K;3U>2dD5jx_DnjD@~kc^}DMt-yW?)@Oyf{xQ*xd6OfbQ5o0^F*~3GRUiR$cTmgCQ zGL||}2s8+1NM%$Z85qP-ATC@Qb|xH&FaX8m(Xy=63XN(kRb^ElW|U9-GAHcSUaE&O zi{b6Q#veULJBegH^1n!UF{6=pDTR~O;1-EfEWqo2?ZsdmB57`ExHB)xr@;S^l>K5+ zTpo|wX-bFJfzvrR8g9(2Rk@W;Z}>W^n&AAQ%X89IwpJISb;@+Z_JkCtqU8FjDmNX7 zS*?}$Zu$IJ=5zrgqwoyw4;?+Tp@eChC%1!btOPpoB;29hq#k^Ojjj|uJCgc`#RCso zx2OsmO0my=ZTCZ%4T(glLQ>ntZ8R{|;~7r4wC{!7ZY#$eEvLFC-B zxy?{SO?!HQizq{+4Q^q>{1h(1{C<>`3c^aZpjARD*~ECw5h?q_!t+1$7;x@0GRF(D*D{Im%>aB^2YAUVQ8?v)vdq7 ze-I&5aPt(j2nX3KueNUA<&`4Zm%|F)wrDZKZY5*mDldPkoD1!k0Bt`7CJaUb>7XVj zUQ}^*GB=$C6#+9|pabu~b*IqS9-{{QuV*tq7USqfeH5RJHkkKV?IEX^#Ay{6P;z85 zD|8bssxJ@gCWh&`d|@V|LT!K_O$H@a37y81xkAeC;cZDL&aB)Z?@R@g&yu@*0Gsyb zJ=!%S^x8D>zK-|NJC-`j!{pCaGM@rLN55FVMp-32>75)!D%n2TpE|bhtRUEEUx^(} z$WUA|LZOfSc%Xh`mFqsCTc{tG!%sNOEf z&`-6t3!9nz*ewSWblcR^xu9y&T3DwKxsHpW_oCqSHJyGQ4i$UMIvt{c8gGx@%gsvb zj+fjt5es>iCSniyvFiu$U)6F7Q_ic`nH&EEU!Tk7^?El}XO@1#1i1S2VZ*_^Tv&}D zr~Gi$~otc0qiyWMshLvJz)MZir$mjc54S6VTsxg6vmq7^RtwI&~R zDp@1}b{siW3qnpFj6;~JL;S@LN(J%rt-Z9j0{4)k1^H^TOh+y0_O7OuRyQZT!qhiC z?#AdZ!D?{-)()2v>2(>lK#hR`l&*fnhu3i(;05I>{nX29AE3p}!h5sPzJ=Ek{19&r z<~x}uWe&=={&Zwax)_SD>2RDwT3re%;isK8PWt)p6Z)!OQEbfA7msDqecd^dMhjSP zaEfZqB^YTj`LSPUD1Sw^=W|(CJvXnq_mSvvSAA(iMeiPj4JWa5oKSYk!){i{CW+f5 zD;p#su3kYr`ONSgB+OjS|7;B`_B{;Ph=ZN%nmG@a9A#Wu^gbV^)`Ta)zNFn&1L^;G z&=3K{rR;g-J*dmtFQC)cl&#peI=Av`kF}OfKQ8J+VPtNkHY0KsQvG)qnK;NpgBPll ziCm?0Rkdc^@{;TqOpvVB!^=p?hTF$l-%O1H$s8DZgxeNVFc)=5^MlmBg9|gl;iY0! zpj77$){jk}$b9!sIDPT9+@;BvvcFbt(m4rou6G!NGV(_961Z@QTg*EDKkeiJ@%&kC)Q!U)d5+2eM5}D(Re8;;`L_AHt!*zH6kpF(jN&(+$>Ja6PKsxN&R_C5h$k)xN<<(qN=u_bO zQ>Q8p50amo@Lh#4-&79MbQFj|E49^<b(@q9m% zhh98%)T7q!QLKl@$Xal;<(CQOS3Lxk+Vc9=Sp18_7D(1zL9u-ZXv|xT#{%M7eC;N2GdeIJYq3y);_X^Gl$6`;~%6_(zIZ-9`o9p|EzgNJzF*_dx%n>lPqT=V11wc~w69qEGO_g``ykUl40y;eyUJjqa_O&6M&R)_k^ zi`r$wd6dSe+2cM(b02g5S{h%44fBh%*UAoW^3jTwRBy<@^3tcaJu!lx^6G{4PAnW1 z319F-;Tu=}xOYABRaPd3$p;B^Z*L#m72iWQd%Jc7Y}JA+GpKZVeoyWVPzwx+3xSY1 z4ugMgeqxiRFg({J0p#}=F$}IVU4kb+kCfm6cEILtZ`;okar*{zu-UYWEKo+} zA$~io)^*ZjOO3~W;^!^6O0Q_%R_jQrL)UDREFh$_n(>oqp+@ZaH>Ue~+NUA9<3{l4 zAnoLgBQ;!}(9>tX%-Om8bxVo%Nlk6F+lTuOdOKDx_5pIZ9+-_?@jH;Kn8uM5y>Ka#X_4X@F4mmN{9IKHb3CyfNLPJ=LEN@VP zQEK)5*oBFv)3<&4gT#qa&wwrXiT!M*Glf5$j(>D6k2(b^5NVdG{0sSAwfSC%Z&s5D(qtHYW*M{FBJWx@!&>`KtuBek0scu%s&-z}Nk3L1q4NA%;>nI;xJ|BkF+IEa z3=Fo^=0W^Lz&}ct-+PD(DV8xyw^%@oZbo8)VlY%m&PDHf?}UDoq##HpH>*4*w$68i zVm_Z1m_3m(*oZOlZ!gFv_Ycf3g^gRfvibYE=CfqyO?`K_=RBpr_kQ)!j*pJpW=Y-d zp!Og&JUfqT8x$=D*m}$W4{W564@L=B)NSLp@bImfSvw|iCJ>j_o2@_Gw_ofq$Xpw} zyS^EiitT#X3Gu3Fs*N$w+VKnR{v@`Kav@G*H%f`ek1_L-P4k$8yxYJcQSwY(>oH_< z;DP{Ry`oB$UJ%D3>&xb}hMFGS0+U%L$hyhOr6}RzQ8Zxogab>ss&l4?%JnIQygxT^ zs-zT@kde8)28&#p)|FL050;IXog1!_u2>_U(Boov*GsEWDFEl4GFWBJ#t$AsIKPX! zf*mM5R5=~a&m!~m^+KM4X`ax1IPF{CxLB6)uLOLGE#>qm=+}u1fE+<+!Mu&b*86df zz?fhm**>Vd%su!i!@vtXDBTYWSIiYRVLp*x63cIL8RC2~L?_~iKPK_6N(CSpR>dLe zV{_3d`hp(`h(JTaW*Q4Jk?Jzut^cNGRF=^H**D2o#uhkq3vAI zO=NlBZb)x6wCk;ck7Xh&A#all%6WlsUN!x#IrZa{$u6NGCIGf(~9?A;B)wEn4!qCxgB?h z$uE4Ciz)pB<_)C9IL8e|SF-F6Y`35+1oX`6AK=eK7(efD?$H-C?UEAy-o1UzF&$q#2PzDDSz3Iyt8rKPQgG(ZeYhZ)6MOc{QxDw5$d=91^qG>M zrtVWcJ7P0-K9?L&FR2?^)FwyW3Zi~}nVI(6%Y)}jhZS7GC-=W3l53qM3B|vo^2F9J zmu;x+d;Gc&OYfZTVmbYz&9BeCJx%0HD|qlZB+2uBSF$zsnQYzIjG z_AlFT@NU==`4~S&zQ=OOj>u6ul>B<;?q4r`Np>WL!?CTw(^LND1Ic1|U@p%XNoG%$ zA0hR2O_u0rHJ%nhge&;Ut4wGqTyrD_XOm1(1g-e`V5buK&hw`cx>Okr({!sFcb$bN zA!!Ph7cB9Sf&Fvux`&#+KatKLJy`<>Ty1xPCJjPb!?$5vV25mA_EOXe&7*hg`W3f% z*3)4>E~VP8AJAB=^U_#s(9?WdFHYRMo*1~gekztc&GF-*{Oeo!zt|1XVf?6vkA)@k z01N9slEG~Un;h2PL-bFNg~gU}NKFd|TX|a9IQe*Z3)r|?!C?Q*W?C|Q-iz>SNMCxX zqY{1MGn_wg#ytENoDm!%J7ZC?q4Ebm-?c6$)HTjyzW+}6o!(d+>_9{ds<=s&hHVvg zP5%6SG067t?+~oBcjjO{7VJ_OgO+)=O-5+^K@cBmBzdoJCen=tFAJ z$F5wpN$qs#QcTJmGjp>?Skg-@T($Ue{| z?{C>3?|w6X`S5&Il}IqdX68-0J@s6xfti38zKR!urIm+VxT|l9N`0v1!g$2+yi72P zg1D`X}9gcR>(+Q#Tho8`gWP<(6~ z7Z@tG9LjyLDB?5T$YO;$4dGDKbwY%nBHeOJ%t%!&#?F1xg_0EPurO1jBye}?AbFx?(bgY+=r4=TB@Hdy~FrjTU!d=W+ghQm00 z_hsINHr$pqny|m(b*3_R;I6c4NBEk1Z@P~YwE*z1qKtU+0*&H&`c%p=@|8=;6+4`#^m#3{ z$O%qjp|NS>SQ4Vov;_Vx^~SkQ@WXAS?g>45?h~G`r%zF1qj?|y)q+lqs_{I3LhO|A zMYdOtWZ#Fa(+E3{R8M6XgN;G?SSqw|qKe3EaEo{FgCiX)D-*cYss}@2U^tS?!TwP( zX64?R3NVw#K5M(Ha~;pFI&VQU^)QqA2d8t8%d=c+vIDdCag=xEpad zwJgN^l5ADzURA(gZm$V>0Gt|DE-Tp5*Q8MONO#9*yNxXjH76+6Q$l%pfaP3+jcM8r zmVCC{w`W;)N9WI~7Zl?<0f}TLr5F3p&hJPhhIAERmfc>IR@u++m277aUr!S-t(t~5?Iv5|!sWcNltJi#u7l_p zq`&7?AbKqbJqmDBPjbz;K!N~nqmM(;e5|J?lN2x1rybWH{t-2=H+Ing$)*3H-VK^!eGLEQeGMs2w zAMO0%`G1oh^gmetSCFLmoA^Y}4(0^=U%2b2|EI^_aq#y8|L)KBf6CFcf6Lkb-*C`T U$0zukhX2PZu(7Zbnf|{10q~>m;{X5v delta 3648 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 S00aO808;?~0DTq!0000@yz4vw diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src.library/org/diylc/components/AbstractLeadedDIYComponent.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src.library/org/diylc/components/AbstractLeadedDIYComponent.java index 8338abcb..5e88d562 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src.library/org/diylc/components/AbstractLeadedDIYComponent.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src.library/org/diylc/components/AbstractLeadedDIYComponent.java @@ -31,6 +31,7 @@ public abstract class AbstractLeadedDIYComponent implements IDIYComponent { public static Color LEAD_COLOR = Color.black; public static Color LABEL_COLOR = Color.black; + public static Color LABEL_COLOR_SELECTED = Color.red; public static Font LABEL_FONT = new Font("Tahoma", Font.BOLD, 11); protected Size width; @@ -98,13 +99,17 @@ public abstract class AbstractLeadedDIYComponent implements IDIYComponent { (point1.y + point2.y - shapeRect.height) / 2); g2d.rotate(theta, shapeRect.width / 2, shapeRect.height / 2); // Draw body. - g2d.setColor(getBodyColor()); - g2d.fill(shape); + if (componentState != ComponentState.DRAGGING) { + g2d.setColor(getBodyColor()); + g2d.fill(shape); + } g2d.setColor(getBorderColor()); g2d.draw(shape); // Draw label. g2d.setFont(LABEL_FONT); - g2d.setColor(LABEL_COLOR); + g2d + .setColor(componentState == ComponentState.SELECTED ? LABEL_COLOR_SELECTED + : LABEL_COLOR); FontMetrics fontMetrics = g2d.getFontMetrics(g2d.getFont()); java.awt.geom.Rectangle2D textRect = fontMetrics.getStringBounds(getComponentName(), g2d); g2d.drawString(getComponentName(), (int) (shapeRect.width - textRect.getWidth()) / 2, diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src.library/org/diylc/components/Capacitor.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src.library/org/diylc/components/Capacitor.java new file mode 100644 index 00000000..5b3130d6 --- /dev/null +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src.library/org/diylc/components/Capacitor.java @@ -0,0 +1,71 @@ +package org.diylc.components; + +import java.awt.Color; +import java.awt.Graphics2D; +import java.awt.Shape; +import java.awt.geom.Rectangle2D; + +import org.diylc.core.annotations.ComponentDescriptor; +import org.diylc.core.annotations.ComponentValue; +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 = "Axial Film Capacitor", author = "bancika", category = "Passive", instanceNamePrefix = "C", desciption = "test") +public class Capacitor extends AbstractLeadedDIYComponent { + + private static final long serialVersionUID = 1L; + + public static Size DEFAULT_WIDTH = new Size(1d / 2, SizeUnit.in); + public static Size DEFAULT_HEIGHT = new Size(1d / 8, SizeUnit.in); + public static Color BODY_COLOR = Color.decode("#FFE303"); + public static Color BORDER_COLOR = Color.decode("#B8860B"); + + private Capacitance value = new Capacitance(123d, CapacitanceUnit.nF); + + public Capacitor() { + super(); + } + + @ComponentValue + @EditableProperty + public Capacitance getValue() { + return value; + } + + public void setValue(Capacitance value) { + this.value = value; + } + + public void drawIcon(Graphics2D g2d, int width, int height) { + g2d.drawString("C", 10, 10); + } + + @Override + protected Size getDefaultHeight() { + return DEFAULT_HEIGHT; + } + + @Override + protected Size getDefaultWidth() { + return DEFAULT_WIDTH; + } + + @Override + protected Color getBodyColor() { + return BODY_COLOR; + } + + @Override + protected Color getBorderColor() { + return BORDER_COLOR; + } + + @Override + protected Shape getComponentShape() { + return new Rectangle2D.Double(0f, 0f, getWidth().convertToPixels(), getHeight() + .convertToPixels()); + } +} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src.library/org/diylc/components/Resistor.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src.library/org/diylc/components/Resistor.java index 166c1aed..87a233cc 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src.library/org/diylc/components/Resistor.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src.library/org/diylc/components/Resistor.java @@ -6,6 +6,7 @@ import java.awt.Shape; import java.awt.geom.Rectangle2D; import org.diylc.core.annotations.ComponentDescriptor; +import org.diylc.core.annotations.ComponentValue; import org.diylc.core.annotations.EditableProperty; import org.diylc.core.measures.Resistance; import org.diylc.core.measures.ResistanceUnit; @@ -22,15 +23,20 @@ public class Resistor extends AbstractLeadedDIYComponent { public static Color BODY_COLOR = Color.decode("#82CFFD"); public static Color BORDER_COLOR = Color.decode("#5D92B1"); - private Resistance r = new Resistance(123d, ResistanceUnit.K); + private Resistance value = new Resistance(123d, ResistanceUnit.K); public Resistor() { super(); } + @ComponentValue @EditableProperty - public Resistance getR() { - return r; + public Resistance getValue() { + return value; + } + + public void setValue(Resistance value) { + this.value = value; } public void drawIcon(Graphics2D g2d, int width, int height) { diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/plugins/statusbar/StatusBar.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/plugins/statusbar/StatusBar.java index eb75e671..427efe84 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/plugins/statusbar/StatusBar.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/plugins/statusbar/StatusBar.java @@ -6,6 +6,7 @@ import java.awt.GridBagLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.ArrayList; +import java.util.Collections; import java.util.EnumSet; import java.util.List; import java.util.Map; @@ -23,6 +24,7 @@ import org.diylc.common.EventType; import org.diylc.common.IPlugIn; import org.diylc.common.IPlugInPort; import org.diylc.core.IDIYComponent; +import org.diylc.presenter.ComparatorFactory; import org.diylc.presenter.ComponentProcessor; import com.diyfever.gui.MemoryBar; @@ -166,6 +168,8 @@ public class StatusBar extends JPanel implements IPlugIn { case AVAILABLE_CTRL_POINTS_CHANGED: componentsUnderCursor = new ArrayList( ((Map) params[0]).keySet()); + Collections.sort(componentsUnderCursor, ComparatorFactory.getInstance() + .getComponentNameComparator()); refreshStatusText(); break; } @@ -176,34 +180,22 @@ public class StatusBar extends JPanel implements IPlugIn { if ((componentsUnderCursor == null) || (componentsUnderCursor.isEmpty())) { getStatusLabel().setText(""); } else { - // String formattedNames = ""; - // int n = 1; - // for (IDIYComponent component : componentsUnderCursor) { - // if (n > 1) { - // formattedNames += ", "; - // } - // formattedNames += - // ComponentProcessor.getInstance().extractBomName(component);// - // + - // // " (" - // // + - // // n++ - // // + - // // ")"; - // } - if (componentsUnderCursor.size() == 1) { - getStatusLabel().setText( - "Drag \"" - + ComponentProcessor.getInstance().extractComponentName( - componentsUnderCursor.get(0)) + "\""); - } else { - getStatusLabel().setText( - "Hold CTRL key to drag all " - + componentsUnderCursor.size() - + " components under the cursor or drag only \"" - + ComponentProcessor.getInstance().extractComponentName( - componentsUnderCursor.get(0)) + "\""); + String formattedNames = ""; + int n = 1; + for (IDIYComponent component : componentsUnderCursor) { + if (n > 1) { + formattedNames += ", "; + } + formattedNames += ComponentProcessor.getInstance().extractComponentName( + component);// + // + + // " (" + // + + n++; + // + + // ")"; } + getStatusLabel().setText("Drag " + formattedNames + ""); } } else { getStatusLabel().setText( diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/ComparatorFactory.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/ComparatorFactory.java new file mode 100644 index 00000000..f1b23abb --- /dev/null +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/ComparatorFactory.java @@ -0,0 +1,37 @@ +package org.diylc.presenter; + +import java.util.Comparator; + +import org.diylc.core.IDIYComponent; + +public class ComparatorFactory { + + private static ComparatorFactory instance; + + private Comparator componentNameComparator; + + public static ComparatorFactory getInstance() { + if (instance == null) { + instance = new ComparatorFactory(); + } + return instance; + } + + public Comparator getComponentNameComparator() { + if (componentNameComparator == null) { + componentNameComparator = new Comparator() { + + @Override + public int compare(IDIYComponent o1, IDIYComponent o2) { + String name1 = ComponentProcessor.getInstance().extractComponentName(o1); + String name2 = ComponentProcessor.getInstance().extractComponentName(o2); + if (name1 == null || name2 == null) { + return 0; + } + return name1.compareToIgnoreCase(name2); + } + }; + } + return componentNameComparator; + } +}