From a42592410e986ba0af7e502a8e54082ed2b2bb88 Mon Sep 17 00:00:00 2001 From: bancika Date: Sat, 29 Jan 2011 21:55:51 +0000 Subject: [PATCH] improved electrolytic cap and resistor --- .../DIYLC/config.xml | 17 +--- .../DIYLC/library/main.jar | Bin 72295 -> 72812 bytes .../DIYLC/src/org/diylc/common/Power.java | 5 + .../diylc/swing/gui/editor/BooleanEditor.java | 26 +++++ .../swing/gui/editor/FieldEditorFactory.java | 9 +- .../DIYLC/update.xml | 4 + .../passive/ElectrolyticRadial.java | 96 ++++++++++++++---- .../diylc/components/passive/Resistor.java | 6 ++ 8 files changed, 128 insertions(+), 35 deletions(-) create mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/Power.java create mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/editor/BooleanEditor.java diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/config.xml b/ diy-layout-creator --username bancika@gmail.com/DIYLC/config.xml index 1cfc6249..40587189 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/config.xml +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/config.xml @@ -1,24 +1,15 @@ - lastPath - C:\Documents and Settings\Branislav Stojkovic\Desktop + metric + true zoom 1.0 - metric - true - - - default.org.diylc.components.misc.Label:Color - - 255 - 0 - 0 - 255 - + lastPath + C:\Documents and Settings\Branislav Stojkovic\Desktop showTemplatesAtStartup 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 efdf0fd7f6254f13660b4d1d9a1f6bb5630ec8fa..ef4b3fa99cfb2955a6f4f93d3a9ea75879c3d8e9 100644 GIT binary patch delta 5194 zcmY+Iby!s0_x3qM!ypVbG?Ge52}nvk3?IrGO^*Zy8juvJF@)z!i$Aj89bdNA=&egG3M6$Jsm zwqM7^6<#o+$N@0`gHiyb!59GC1!Enc3dY}n6c{BSGGO$CC;^zNO2{ZNhzK%M2#7^! z3lWG6nh_klm^5%}jU09OAbfbtaN>Z#8$uA)qG%kBB*zFq^vPc0*7}sEaT`8rYT%0P zYOj-nm@=KkWz`lVWFR6RzQtJ>+{184^L4?2D5Q-TY`dx_ybV_-IyMwnlL!`yT-7RKa9;QNV-}s7(S94C%s~N^& zhY-Eqo1_dE`wF%HDv~__ovPEC;mvbLP0Yjn7w4;8+*GLCokx8THqc`u#>gUyyZ5QVY7`4`Bf+AkpS z+jqcM=oiSe+c%qNVNhaL_}q+8-o9*UyIc7)@agkU*~LenbkC6)-xkF`93eExi1&H? zE*y8PR_D>Cmh_@X5Xn5jQ7^|))_1R5giLRfDTOBN$Yro>F)?fp#`%!dRrFPQlNx18B!t^f zo7-!m(p@aPsehlDZI_3tBP8YJQhNOy&wI=!`2y8+dh+H~d&LBisS_VxKeB14D$C*U zy>YIS6dC_qd&9wnDs9=6KyEih!QhFtu@9Mr-K4KUrF_A3#tp#E#DrJtcavj}Bw_xD z3xXj0^?L3O8%;Uigc$erx0QxJ4N^yAKEpk=iXFprn9pR^={y!S15fZOrXnu94{HjAG6!xZ@!9$pr|r>T(lUqW zzAK)2@^%JM6skoym}r?91on+-*LLbV5n7sr(0EMG?e_LM)TXg7sS`f>0R33w6*%L$ zJ8tB!tau<3{S(&i@~ei+MaaXA?2{tAqH2BOZNFuf+vvDqAZsg8_9yw*jyI(Z z{C-dqKuhb`E|J)D)hA!Q9-Dp0=`GB?#f9yO(Djd-o5!$W(Ays+5EZ|gHm%wQbi$Nt zgdQYiJgo9~i(+_}H&43DDf4K0j8!GWWyin705uU;I`oBsLAsB(IHtLBWnJ8-G~eDW zqt^Y^k^Vyub5>o~mypvpM-Rp2@v~Vwv#ldXN`uq#oaK?>Io1};lY>-ubD}g1@4Bbk zjO%e~#h6N_%)iXtK(IBh zSon_|$MR-?ewP&YQ<_C=$zsw_^a{1Uy5^mB&VH;rJ>wkL@~xea$bX1qcRBg6!PG5p zykK{)li8>t&2_4Bsna7qd}rNO46>O?IkFDSABz{u)p*nOZ<^cd@Vq^hqs!`WC(p#n z+7X?1BmI3Q|6D``*sa;Kuf-0zCd{j!h(6<7&O1pC&s-@C*Nam>A$-Qyu58^^#(lxm z8oy_8q0_OuPfRNO;N=5n^ibq8Qu!V-XY)6~suy}4naDjs#4o3gfrSAFv3ZRzC$ZtJ zSP$wy*Z%3adk1l;s;`)}q4fn0L+2BCWESgF(3M}-HwkfK$T|)T1cM}Q$qo$4Tb-81 zl7-J$NaCTCf{r1sxo^m)bm#3u#6koy6Uz~`;&d-RM|D2sEoQD_SmV(w(btb5959*k zrJ&Ux=0Lh@Gtw&!^cS)@J~S6gC@@WVW?j!VN%4Tk4K9s>GnbLd`Q4TOHV>^Yn`(kC zK9SxYx!00r%4<-Z4rJtVNWDHqRNR8(0DcO&c z_^o`pLjXj&7>02j-qU`x9KuY)74$fAG511pyGG(`o^@~s`{H)3YTlUpjnu9w?najc zwYSKiw)PXw@Dpm+h+50`TxkM&n5E)P1!6CtW-J^|6-`X9iwJQ6QVXJQ+4ikr(Gmyn zK-*XgmoECS{m)blt3t;k$S7VLYytJ+=|Jsp5|edo?Ypvf1pxGH^I!@RKNDNBS`~UW z#QL1)5vw~%T6SxIK{SM3l#!4GzIqIFT}k;<<)*aYp+t+g5s zzZ1_(x%weYUlP?z&6!mkUJ%)_(f)ELVN$A@Yc30&&!PHN{bl*rCwu~t@ZjJ0Pf1c; zpmOT<`Hi9HEBlZXvbyJTY->@@0bKRlE&?y%uO!oFpQrMs@@ikpxfp^vUg$#qyhdk~s(M2;w%eH6JFO4zUp`dA#AJ4ao5;}!!k^3h# zo=K-m`H?0|M?BROyKNnce~(#On`)S_Hs=C>yH0kP*Zz5^S&YzCARaKI|d7BP8IQ6 zM$P?U|9|rn2{=Dh0qGpL;e;#m015(Lybb`E%2FBJ6e3$~K|}?PAI7Kdoc_dkc#@QO zcmk+)2m`7-mIUoa4_regnw(m&_%mKYw|2HfSv10U`R;ug_A%3}wNL%Vw;Ia&?va)$ zfpVAY4-s)enh3@;#-3#(2_}ojHNPf;j2>^^Q#Z5Ec4?|vI1ahkX#IEaLC9jVSrQ(H zPo~r2u7At!?`Mk-zJ0osM=~lh|B3HPe@`z;BYV zc(hvt9!nBYiU!Dr`HKWNZM{T#T<-om*B~8T6#!>%PWAuJ&=lF;NhKQ)4p{<=l-3IMyR#*UEyiJN0MUswgCPp-yPS?u(y0y64748*}{$OgKSvMi_&_l`&)KmUavU<9nBEeCz!RM zm^BK%Z`EuR1d7+g=R)!iOb3^G_M7AaRNF9YvwROFR;mjg8qE$@p&GC{vJI)MA_ME& z5Z68^qTwL&4U|mXk8X82-tt4<(EW{IotxsC#?n6=y)iDb$gbsyl;^qT0qHID(bqCp5z!DgYfbttiA>RU|2rw-oHnSUH9JNo8Q+#71uT9Urrnb zja6-X_3P<;LmJIemrGcYZrdS}nWPMB@3{|tPcD6(hWaJyICJ=#IYsK$zb+K)ovFoT zBEQy+XoVk{5(NrXtJXYj$)l50p9acdRv5n^Tgzn5?pF?7 zS>OLK@;w^z`Khsgm?kgnXwk6dO)}LKlwkU(KQu3&27yd0P-za{AdTGUtg%7j?pS6GLv-_y8o7?QQFgLVzGif=cS9>(nDf4}~6EyLrQH<@d z-%U^ZOl$+P8!D||B-0>#nXl875}JxmecKol8mw%?u_$|IL_!Yhu|5D5*!zI~nKd~4 zInH1#GXKoL+_|7#nswi2l1pHamgSzmJ@IB3hFeLkHk5UeGCrzI<3y%~!``?f@T=%| zLQ>*kKCCq9L663|eL3YhPXYsrZF%T#pL6P4*i>p{#&?v~Nm97SN@Y0Q)2xe*ba8oQ zSL}o>Y*)M#f17$osWFOOH(KbSxnAv!FZ_v*_)~&Xo3t=_e4l%&eya6aB<-wflU43$ zo^YITUy$5Q+M`)$j>@cDyNlZMmc+2PQtfMzwsw^9ToAP;?#W(QcZ96RdoqmWFi#df zf+61`_YfD+Jb#jJ`F&r&%zaR)3~ya3qy7`oN?zwUZkSFccHKfFbJki%)8Ji+eh@@* zuJsA;n8`*V3&(IK`AgAKM4-zuAwgI5`Pr#w+{QcVZ3SS{r9%7OljDyjt`@>l$I+~l zyKbusJyu*+>CLonx^DXNv#YF$xO#t!ye}FlfJ`0b73vd<)j9ISdT?PsLB6aOyJ(P^Y%^SAUPx@JIAoA~{ zi4m;*`HU$(VSbrjno?HClW$=K%sM$t8A7@DPIu{U>oaS7PgZuY331|Tere5r-Z&|B z(-`@su$%6w(&zx+#+`aJC;m@68*}OF=uz*a*FQ337CzQR$Sg@8g%5~xwE8fe=3OKy zn;3AIDYY#~lo(YhEf_P7(fAijV>%O>&)0IcIN4KSEA2m8wT0-E{Fsa@ngboRAEaQl z*9R&^S!^rP7xZ^?B82P(b~@PJ+8r9cY(7LbXj+XRA8(VGY_$CeYO^V-L!1lLIGMXe zp;HvvRStb9v#Rmk2L%;-ES1Oicnxh-eXdmyMjb>seS7;J@h)jhj@#Vzn_jR&K;9a? z#uKvvq9A+e;ji9NgJLG@iv6(zKxT+PVD@lEk zuk;S)?i~u-sr0c(CV8r8Nytl$w1(gFNx*W&vpq0>5Mo*MCUHpdbJ^0$*^-2g{};>WE$ZVc~Uo|(}ml}aq%wv3RJ8qE#Q^(LRP z#{BfHySpl@bxfD-`+oa<=j%L}bZfW^`=U^`=G3&nPIR?pSE(~;Z9;it(EVzTnV?g? z+cnjastazwNAs0P)toU%K_g?}G3?VfCsx-0o^@Z`W~_K9GWB%EsNNE*`1 z_JK2<-b7-RSSIEBG|5Q<`TWbqi)NhCP#*3Ag0k?#M@P^ptDE-Metq%y-EUz;7Csj zNaCnN3Mhli@uYwTh*?tLJ_rFazz{?z8Gr!MLk4JqpdknJKsb^EmLNLF0W%ORP{167 zKNK(pG4vn!D6X;>6o4%#uKWkpYk&=yryZ>@>Pf z`T;z=83-Pp)YW~{e4^WqUd#6fCiKrM+ui+M_;GE+T4qi4{QD>6QMk-X|9%V4g58D{ndbO6K(@;24lt< zZP{;cje%X35aQw8{L4tyb!F_Lzv^M09z2ZyGfL^xZL~1_>U?=PD5-q`B_UMI=WFOl zDu4o4l29yhc>5Yy?m8Zx$X_LMzJg{!^bQ=L!5R0)y4C85z_X#?g!q?naTYY*K(Wri z(54LkRkgQ$`ez+9Yf<3g3H@c>!h&XAbRh#k4?e7R2Cysk4V;8pI)S2Lj92~hGlH_# s*8i7-7_Z#%I63?5e=V!Z delta 4763 zcmY+IbyQSq7slt1QbWryG|T{k)XMAugpr#N zfS98EKmsC*z7LOwa1FfHz*R>G!V_tVU;HWo{sR1Goo$}{+ty6UbUr?Z_ zfj8UIUZwysY%+$=YRvn{L4-R!$8UkT2jh|H<$?!Ez(-QB?dpz@k9eEN=)dr$xyE2YF6l1Gd-t*# zCXXNSP3_w)n#uDpe$AS4E`LM|EVnz6=Jq%(pZCR9M&K*vG3+Ldz)u=rGZ6k2zK?K+|*Y(TGH-f?-dGGv(G=}!Nb zmSqoh)azx@XP&EcaIL%Ag90xL4>UN@a%BaHro_Uq!m?eDkGIu*yip`&?D_jb1^u4a z<<@Y;vV;0UG7%#$aE%H|85qA(8U(d^PoW=Bt z^c9S0T|2)?sk&Z5uRKp+An&-rNzR&VshZU*x&ETtHE2D@UbR*4%LZ=xKFo{gyRmxv z*COE6ylJb$i*=~lt~f2}37n60h6y@ef);Sx~~gT^jmZ zYab>^MD_?J5<2V#W1bBU1Zc-qp*7WO-td^)Umr7I6VOt0lCQdQwK2huX)pF`=5(&J zi}$7BP(Os5$+cp~#)9d4jXZOf#9K1~!pBd88ouS(kYWXgaX2YmrFldvPJLK-&Yn1X zIwa`kPFhfptZWdJ*m_!v*m}m5d5Zt=VmpI>dr#l5%aLWM4@DYshEc>$ap;$C3SAg1 zzbA~OR;jxLJ-@m@io9cLu)>QBeK(HfV5qTc3Q`;v%yr5An!J-Al)WvEIS!?3$aU-~ zXY<2FS?{o*b+)=Tzw|LaPp|clEwe4f2nrPYBsMY z@ek{LZkv82#(rHkt23G89qh26TMm9AG1{2ujd}Pqt-S8rqq7i+djbR^75XA1v$7v7 z+9mI&zSs~m!9=kS)|5|$c*CEiiW31W7^bfKfH+Ojk&DVBT}}#t~r;y zgDz;Uyo!|O&3%;QxZkFSE~Q6v`k1nA<)fcVZ85$c==ku-m#$>?P9$OmlMBu1R=$rc zfs~aXRx&^KIY_{$q^>i*IOn^iH74m%yQZlEuzu#^Sf*=@LeD6s+|cHfd+JDEto+=W z9NNjN_!fy9paCQ$*9I3iRo-y*(m1;>l53K7zM~r@PrLKQz@5DuZNgW{Eqkuvg8AC1 z_BOvoy7W7>L9*w_L1rN`rHgzP0oQC#W6td&uWZq`(X-}!!1&Bj2HxfI2o;&!FIz$@ z8~-3XnpH^sp<5Pf*y6(0%LN(TE=6gwJs~L0x85f1mQ}ZWjQV0YKg+K)V8D5wNFaU~9Ha;?D8DcymK|Di{#IW_lFfu-oJkfN> zn#dP_G4RT1oJ{-!HXd6%+hm?)$?7sfpU` zG3yhNnk9+%kDWq9ZL~dOH~sb|C#DWIUp!eri&zr&K1CxQaTlJ?WEXzE zARkTiAwr}oOQao2dd3r5f!Hzhe}+SQpgsuCvCzRSXHv~vOk~Pk%=tV@iB@dMewdCu zQtaLhd)pTiK|;>?Eo{`U=ET9;cHcl(h!sQ!f4qHIhN+Rj)q{ zQIwXH;I~K&7#y)sy(4KlW`aaXI+}Bdh=*7p=+;m|{ql%hskiq{R1q|>OxI}|L*ADJ zu!v78$k;zwOoB;Sdb~!|3w8dKh}&J&bha*0eYNT2OV!_h!|r2MQRv(Y9?OT1ac2`H z&rtKLw>-#H1Q91YXqJnMteBI{8dqbpjg3LQ2 z3p!3EQNs=wqBQodea}kA3fUgf(P7J8AdSqG=UtBH$?nyErllFtTveX2`$#*t zXj*#J^JFciS3gmVZ6{w(Gc z2|0B3c?<{tAy+KFOxHY@r$DNGU+X-b+{!*<*W8;RrYDYoBXM+H9(r0`+sba26Usjv zM~Eu#3pM*>s5h)XAFRvHpp|!ZB7amogg+`DrS~WWndugJTfl-?xs8lixml7}WN%$A z@JryCc5~0jTZKTbIShGVsI}lBRp6^>#$US459b+*my>(nOe&`A_z|N&a+uC#FT);l zEO)RgmVP;`4r-dNAV;5tHEGqk>bU8Ws%MqVE>Kkvw}g~RZl;HH$CbGgJR6KQ&`4O9 z4*Dfyt>Sg0Ljk+tyj2D~ND$`cTB9XnDJkjF@ue;_G9N3JU<$LW6?R~lTt3ZLoH$L2 z`wUCwMTc)IJBbgp6s5Kpr^P4UHcU3;JMnE8)O;0VEWqz5_ZE#R(%Q)FsTsBqz)<*J z@gKjO49l7c6utN1l0WW>KwUDlGBUmU^4r%ziZ)q{$f2#gcR2xJWd&Io*KoYfeoul| zuOgD|p=tKp!4dmQCuFrJ(ndQ&Dq5Wa?{bcvBm;u%%6Ld0**-O$STWiaKW+;xy1DOM zUPApOR`F6@-BJp=mJyw7EzQ4Rm|{rDYPse+B=*t%nMUiqq54zlklC{#f>xxgcm7P< zYud0nYr&q#Uq2c;?tsGA5st0dqbzU<`!?4Cy_JQ7|l&Tk2SyLCt?&lT3$8U<{ z8PJ|G^^vy3-+iU*ePmB%Y>j^TNy}alcUzV(y`U(ZrhxeY`lc`K?PGzvYS_G=bP_3bG_)E+Ww?e+}^g2xuhnY8-vdr-P|+UQ&8@%uL_nf9%HJKQ&xR6 z3foh^^}(d!XnRMAZ;wt_7lw!nxtCiadkyTDy&TwUdqNvdT{qk_C?>k>ZJtFW4o0l~ zia;u?+C2~BV)#xjZ@RO92x~c&2!K?5U^D)v(AWE1*xrx1qA9gdgF@#^-P|me-49#W#Y7lpO}E1=-93qUD;5T z0X^L5%`X(~yH>v;clXQi9I4i2fvgLrr8vR4@^{;7E}mq`rPPq=kA~|=mB|glM^oH= zm?|NYyL#qW&y$p&f^|!%ReuQw;e4eIccIC}IjcSD!e^dwv^C2%o-kpeHcJLEE}K~i zUdtrWg-=0cc5sfpCiN1{xt2qIx^vS1j^t|A&&>Ffs#H4*ek|X{S>m(GE;(utYh#r7 zqvqi(3J<|mLHriubz>-qier9!HvB7*3dq2?kptlQ7*j+JsDOu3%nCUmiYE&NAcdzs z1)vJbDHMPPh-nJoCJ0eVzyL%jC7=$Xn-b6j0iy!+K-{GQEI_nV0j40hpnw?&e<)xA zV(@PWQ~%DwsR0{sartj(&;Zt8Rzd@qgCM2_tUx%>0+t{?(E@HDMCgFKAkzN^F+Fe# z%#7%N*J0^_+h9h<@EaBkfEB*`Muy*es2Bl9Q1oB~?5O@YVq<0*0V7b6y$G-p{K&+_ zGXfkKB_{B<5PT7UgF+TwV9NfFuzV4Kfdaq;3KXyZ6_6aDu@Y7iHcbqHq|fG_{Ekvb82N||_XmE!jefJP!L zppn|@A36rj0$jwmwE6xT?>EqK8g!KV!!hgdzZFo-G7G>6x}D+O+K>OMF<^{X0U8q1 I3!o3=e?C%VzyJUM diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/Power.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/Power.java new file mode 100644 index 00000000..0cc40488 --- /dev/null +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/Power.java @@ -0,0 +1,5 @@ +package org.diylc.common; + +public enum Power { + +} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/editor/BooleanEditor.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/editor/BooleanEditor.java new file mode 100644 index 00000000..15dff82a --- /dev/null +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/editor/BooleanEditor.java @@ -0,0 +1,26 @@ +package org.diylc.swing.gui.editor; + +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; + +import javax.swing.JCheckBox; + +import org.diylc.common.PropertyWrapper; + + +public class BooleanEditor extends JCheckBox { + + private static final long serialVersionUID = 1L; + + public BooleanEditor(final PropertyWrapper property) { + super(); + setSelected((Boolean) property.getValue()); + addActionListener(new ActionListener() { + + @Override + public void actionPerformed(ActionEvent e) { + property.setValue(isSelected()); + } + }); + } +} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/editor/FieldEditorFactory.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/editor/FieldEditorFactory.java index 0e6ac86a..21251dee 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/editor/FieldEditorFactory.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/editor/FieldEditorFactory.java @@ -37,8 +37,13 @@ public class FieldEditorFactory { } if (Byte.class.isAssignableFrom(property.getType()) || byte.class.isAssignableFrom(property.getType())) { - ByteEditor byteEditor = new ByteEditor(property); - return byteEditor; + ByteEditor editor = new ByteEditor(property); + return editor; + } + if (Boolean.class.isAssignableFrom(property.getType()) + || boolean.class.isAssignableFrom(property.getType())) { + BooleanEditor editor = new BooleanEditor(property); + return editor; } LOG.error("Unrecognized parameter type: " + property.getType().getName()); return new JLabel("Unrecognized"); 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 610cce5b..2ab18aea 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/update.xml +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/update.xml @@ -86,6 +86,10 @@ BUG_FIX Curved trace does not show control points + + BUG_FIX + Potentiometer draws wrong at 180 degrees + IMPROVEMENT Resistor can show color bands diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/ElectrolyticRadial.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/ElectrolyticRadial.java index b63d2de4..284f874c 100644 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/ElectrolyticRadial.java +++ b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/ElectrolyticRadial.java @@ -3,8 +3,11 @@ package org.diylc.components.passive; import java.awt.Color; import java.awt.Graphics2D; import java.awt.Shape; +import java.awt.geom.Area; import java.awt.geom.Ellipse2D; +import java.awt.geom.Rectangle2D; +import org.diylc.common.ObjectCache; import org.diylc.components.AbstractLeadedComponent; import org.diylc.core.CreationMethod; import org.diylc.core.IDIYComponent; @@ -21,13 +24,16 @@ public class ElectrolyticRadial extends AbstractLeadedComponent { private static final long serialVersionUID = 1L; public static Size DEFAULT_SIZE = new Size(1d / 2, SizeUnit.in); - public static Color BODY_COLOR = Color.decode("#27408B"); + public static Color BODY_COLOR = Color.decode("#EAADEA"); public static Color BORDER_COLOR = BODY_COLOR.darker(); - public static Color COVER_COLOR = Color.decode("#C3E4ED"); + public static Color MARKER_COLOR = Color.gray;// Color.decode("#C3E4ED"); + public static Color TICK_COLOR = Color.white; private Capacitance value = new Capacitance(1d, CapacitanceUnit.uF); - private Color coverColor = COVER_COLOR; + private Color markerColor = MARKER_COLOR; + private Color tickColor = TICK_COLOR; + private boolean polarized = true; public ElectrolyticRadial() { super(); @@ -46,23 +52,55 @@ public class ElectrolyticRadial extends AbstractLeadedComponent { public void drawIcon(Graphics2D g2d, int width, int height) { g2d.setColor(BODY_COLOR); - g2d.fillOval(6, 6, width - 12, width - 12); + int margin = 3; + Ellipse2D body = new Ellipse2D.Double(margin, margin, getClosestOdd(width - 2 * margin), + getClosestOdd(width - 2 * margin)); + g2d.fill(body); + Area marker = new Area(body); + marker.subtract(new Area(new Rectangle2D.Double(margin, margin, width - 4 * margin, + getClosestOdd(width - 2 * margin)))); + g2d.setColor(MARKER_COLOR); + g2d.fill(marker); + g2d.setColor(TICK_COLOR); + g2d.drawLine(width - 2 * margin, height / 2 - 2, width - 2 * margin, height / 2 + 2); g2d.setColor(BORDER_COLOR); - g2d.drawOval(6, 6, width - 12, width - 12); + g2d.draw(body); + // g2d.setColor(COVER_COLOR.darker()); + // g2d.drawLine(innerMargin + 2, innerMargin + 2, width - innerMargin - + // 2, width - innerMargin + // - 2); + // g2d.drawLine(innerMargin + 2, width - innerMargin - 2, width - + // innerMargin - 2, + // innerMargin + 2); } @Override protected void decorateComponentBody(Graphics2D g2d) { - int totalDiameter = getClosestOdd(getLength().convertToPixels()); - int coverDiameter = getClosestOdd(totalDiameter * 3 / 4); - g2d.setColor(coverColor); - int position = (totalDiameter - coverDiameter) / 2; - g2d.fillOval(position, position, coverDiameter, coverDiameter); - g2d.setColor(coverColor.darker()); - g2d.drawLine(position + coverDiameter / 5, position + coverDiameter / 5, position + 4 - * coverDiameter / 5, position + 4 * coverDiameter / 5); - g2d.drawLine(position + coverDiameter / 5, position + 4 * coverDiameter / 5, position + 4 - * coverDiameter / 5, position + coverDiameter / 5); + if (polarized) { + int totalDiameter = getClosestOdd(getLength().convertToPixels()); + Area area = new Area(getBodyShape()); + area + .subtract(new Area(new Rectangle2D.Double(0, 0, totalDiameter * 0.8, + totalDiameter))); + g2d.setColor(markerColor); + g2d.fill(area); + g2d.setColor(tickColor); + g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(2)); + g2d.drawLine((int) (totalDiameter * 0.9), totalDiameter / 2 + - (int) (totalDiameter * 0.05), (int) (totalDiameter * 0.9), totalDiameter / 2 + + (int) (totalDiameter * 0.05)); + } + // int coverDiameter = getClosestOdd(totalDiameter * 3 / 4); + // g2d.setColor(coverColor); + // int position = (totalDiameter - coverDiameter) / 2; + // g2d.fillOval(position, position, coverDiameter, coverDiameter); + // g2d.setColor(coverColor.darker()); + // g2d.drawLine(position + coverDiameter / 5, position + coverDiameter / + // 5, position + 4 + // * coverDiameter / 5, position + 4 * coverDiameter / 5); + // g2d.drawLine(position + coverDiameter / 5, position + 4 * + // coverDiameter / 5, position + 4 + // * coverDiameter / 5, position + coverDiameter / 5); } @Override @@ -88,13 +126,31 @@ public class ElectrolyticRadial extends AbstractLeadedComponent { return super.getLength(); } - @EditableProperty(name = "Cover") - public Color getCoverColor() { - return coverColor; + @EditableProperty(name = "Marker") + public Color getMarkerColor() { + return markerColor; } - public void setCoverColor(Color coverColor) { - this.coverColor = coverColor; + public void setMarkerColor(Color coverColor) { + this.markerColor = coverColor; + } + + @EditableProperty(name = "Tick") + public Color getTickColor() { + return tickColor; + } + + public void setTickColor(Color tickColor) { + this.tickColor = tickColor; + } + + @EditableProperty(name = "Polarized") + public boolean getPolarized() { + return polarized; + } + + public void setPolarized(boolean polarized) { + this.polarized = polarized; } @Override diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/Resistor.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/Resistor.java index 22043b89..69efcc02 100644 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/Resistor.java +++ b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/Resistor.java @@ -51,6 +51,12 @@ public class Resistor extends AbstractLeadedComponent { g2d.drawLine(0, height / 2, width, height / 2); g2d.setColor(BODY_COLOR); g2d.fillRect(4, height / 2 - 3, width - 8, 6); + g2d.setColor(Color.red); + g2d.drawLine(7, height / 2 - 3, 7, height / 2 + 3); + g2d.setColor(Color.orange); + g2d.drawLine(11, height / 2 - 3, 11, height / 2 + 3); + g2d.setColor(Color.black); + g2d.drawLine(15, height / 2 - 3, 15, height / 2 + 3); g2d.setColor(BORDER_COLOR); g2d.drawRect(4, height / 2 - 3, width - 8, 6); }