swingx-1.6.2-sources/0000755000175000017500000000000011534506031014412 5ustar drazzibdrazzibswingx-1.6.2-sources/docs/0000755000175000017500000000000011534506031015342 5ustar drazzibdrazzibswingx-1.6.2-sources/docs/swinglabs.css0000644000175000017500000001353210446047742020063 0ustar drazzibdrazzib/* Document : swinglabs Created on : October 11, 2005, 10:10 AM Author : rb156199 Description: Purpose of the stylesheet follows. */ /* TODO customize this sample style Syntax recommendation http://www.w3.org/TR/REC-CSS2/ */ body { background-color: #F8C04B; background-image: url(./images/background.png); background-repeat: repeat-x; margin: 0px 0px 0px 0px; } a { color: #3470D0; text-decoration: none; } a:visited { color: #F37700; } a:hover { text-decoration: underline; } /*====================================================*/ /* CONTAINER */ /*====================================================*/ #container { width: 742px; margin-left: auto; margin-right: auto; background-image: url(./images/shadow.png); background-repeat: repeat-y; } #stitch-hack { background-image: url(./images/stitch.png); background-repeat: no-repeat; background-position: 0px 89px; } /*====================================================*/ /* HEADER */ /*====================================================*/ #banner { height: 89px; width: 742px; background-image: url(./images/banner.png); background-repeat: repeat-x; } /*====================================================*/ /* MENU */ /*====================================================*/ #menu { width: 714px; margin-left: 14px; margin-right: 9px; padding-left: 0px; padding-right: 0px; height: 19px; text-align: left; background-image: url(./images/menu-background.png); background-repeat: repeat-x; } #menu a { vertical-align: top; font-family: Verdana, Arial, sans-serif; font-size: small; text-decoration: none; color: white; padding-left: 4px; padding-right: 4px; padding-bottom: 4px; } #menu a:hover { text-decoration: none; background-image: url(./images/menu-background-hover.png); background-repeat: repeat-x; } /*====================================================*/ /* CONTENT */ /*====================================================*/ #content { color: black; background-color: #FFFFFF; font-family: Verdana, Arial, sans-serif; font-size: small; width: 684px; margin-left: 14px; margin-right: 14px; padding-bottom: 25px; padding-left: 15px; padding-right: 15px; } #content p { text-align: justify; } #content h2 { margin-top: 0px; font-variant: small-caps; font-weight: bold; font-size: large; } #content span.arrow-left { background-image: url(./images/arrow-left.png); background-repeat: no-repeat; background-position: right; padding-right: 50px; } #content span.arrow-right { background-image: url(./images/arrow-right.png); background-repeat: no-repeat; padding-left: 50px; } #content h2.left { text-align: left; } #content h2.right { text-align: right; } div.section { padding-top: 25px; clear: left; } /*====================================================*/ /* NEWS ITEMS */ /*====================================================*/ #newsimg { float: left; } #news-title { font-size: small; } /*====================================================*/ /* CORE PROJECTS */ /*====================================================*/ .title-row { margin-top: -10px; } .first-col { padding-right: 5px; } .second-col { padding-left: 5px; } .odd-row { background: #E0E0E0; valign: top; } .even-row { valign: top; } /*====================================================*/ /* BOXES */ /*====================================================*/ #box { background-image: url(./images/box-background.png); background-repeat: repeat-y; width: 240px; color: white; float: right; margin-left: 15px; margin-right: -8px; } #box-2 { background-image: url(./images/box-background.png); background-repeat: repeat-y; width: 240px; color: white; float: left; margin-right: 15px; margin-left: -8px; } div.box-top { background-image: url(./images/box-top.png); background-repeat: no-repeat; background-position: top; padding-top: 8px; } div.box-content { background-image: url(./images/box-bottom.png); background-repeat: no-repeat; background-position: bottom; padding-top: 10px; padding-bottom: 18px; padding-left: 16px; padding-right: 8px; } div.title { font-size: large; font-variant: small-caps; font-weight: bold; padding-left: 16px; padding-right: 8px; } div.subtitle { padding-left: 16px; padding-right: 8px; font-weight: bold; font-size: normal; } /*====================================================*/ /* FOOTER */ /*====================================================*/ #footer { background-image: url(./images/footer.png); background-repeat: repeat-x; height: 51px; width: 740px; } /*====================================================*/ /* MISCELLANEOUS */ /*====================================================*/ .code { background-color: #FFFFCC; padding: 10px; border: 1px solid #000000; margin: 10px; font-family: "Courier New", Courier, mono; } /*====================================================*/ /* SCREENSHOTS */ /*====================================================*/ .screenshot-caption { clear: left; } /*====================================================*/ /* STORE */ /*====================================================*/ span.component-title { font-weight: bold; font-size: normal; } span.description-title { font-size: small; } img.component-icon { float: left; margin-right: 6px; } span.components-links { margin-left: 38px; } p.component { padding-bottom: 12px; } img.component-small-icon { margin-right: 3px; vertical-align: bottom; } #catalog { margin-bottom: 6px; } #selected-components { padding-left: 8px; padding-right: 8px; margin-right: 8px; margin-bottom: 8px; overflow: auto; height: 216px; border: 2px solid #FFFFFF; } #download-buttons { text-align: right; margin-right: 8px; }swingx-1.6.2-sources/docs/README.html0000644000175000017500000001065610446047742017207 0ustar drazzibdrazzib Readme - SwingLabs SwingX Project - http://swingx.dev.java.net

SwingX is a library of components and utilities extending the Java Swing library; read more at our website, http://swingx.dev.java.net, and Wiki page, http://wiki.java.net/bin/view/Javadesktop/SwingLabsSwingX

Getting the Latest Source

Download the latest release from our CVS repository; full instructions are at https://swingx.dev.java.net/servlets/ProjectSource. But you can check out using the generic account "guest", with these settings

            cvs -d :pserver:guest@cvs.dev.java.net:/cvs login
                        
followed by
            cvs -d :pserver:guest@cvs.dev.java.net:/cvs checkout swingx 
                        

Building the Source

SwingX relies on Ant and Ant build files for controlling compilation, building docs, testing, etc. You can use our Ant build scripts or use your own--some IDEs make this easy to do.

To compile from the command line, you'll need to have Apache Ant installed; see http://ant.apache.org.

IMPORTANT: our default task in Ant also runs our unit tests, which are written using jUnit. You need to have Ant be aware of jUnit before compiling SwingX. We can't help you with this--it's an Ant configuration issue.

If jUnit is not properly configured, you may get an error like this:

            BUILD FAILED
            c:\swingx\nbproject\build-impl.xml:407: Following error occured while executing this line
            c:\\swingx\nbproject\build-impl.xml:127: Could not create task or type of type: junit.

            Ant could not find the task or a class this task relies upon.
                        

Suggestions:

  • for Ant 1.5.x and previous, make sure optional.jar is in your ANT_HOME\lib directory.
  • for Ant 1.6.x and above, make sure ant-junit.jar is in your ANT_HOME\lib directory, and that jUnit.jar is either in that directory as well OR listed on your CLASSPATH.
You can build SwingX by going to the command line and typing

            ant
                        
That should be it--this will test and build swingx.jar in the dist directory.

swingx-1.6.2-sources/docs/images/0000755000175000017500000000000011534506031016607 5ustar drazzibdrazzibswingx-1.6.2-sources/docs/images/shadow.png0000644000175000017500000000550610446047742020622 0ustar drazzibdrazzibPNG  IHDRGk@ pHYs   MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3gAMA|Q cHRMz%u0`:o_FcIDATx0E'S!PqDveVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3gAMA|Q cHRMz%u0`:o_F:IDATxbhXLbc?߿L?cf 4Y"IENDB`swingx-1.6.2-sources/docs/images/stitch.png0000644000175000017500000001223510446047742020630 0ustar drazzibdrazzibPNG  IHDRfT pHYs   MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3gAMA|Q cHRMz%u0`:o_F IDATxM%WЈ[Y-'vJ$da] _nL xPOWߍ%#"~׈_ok9s=/8"E/_"GD~߾VqEx=8?G"ZF}b^5̈|+L:Wy-Z||a%qOk'eu⹅C[5fuGֹ9y6[,Y29<71Okt]a/׎ؖb* a^pbO$A|\u8*Yp?E{ΞQHPw33>"~_h3ne<,/wg?P]׀"ցy U_67?d[ Ȩ'_)Ƥ(s 9^WZ28yf,5S<H:<@M[Ɉ8#8eHl73yP&#f?<\[2p d2쵖c9| 8+썕?^/U3'ByFsX_%Y.SNɷي 59|Mg8jzlEseϜyKbM,pK最XQi?\q#`7s-?,2|1/:YqZ^>15yJ02zeK?Z%C-nǢsJbG3KpO7@su3G|LDXzQJns=ph^5S1%|kkH?HOx.P%^&d,Nf(F'VֳEZۈ p'o?91Ng۷|V{l|uk91׃:-*9y?ϥB5|%k_\?C_g7U>3ڙ_=rtkrZʉ9<#^Z9K.yBZ/k96Cyn?6qճ|#wr><טB[D:$v0Ywgl̈zQeip33v?9`h[(4j+wf.ߺ 1Vna~ 9pu-U1'kjv\8Z/@ jM?1p% 97֗2#Ύ\$a#rπm,۝v2xSYr{#%[@36{Cx?:_r?கs+9iy3uI#C5Cq|'/n. <{ޮ6[+-!ZsxtjO%8sx; fZ~ԾVַ m]컄3"h gfS!E[\wTr+ΝBmlmnyJ0eBy8~ڨD eCp?缿Y={,TD皡,Dc6hQk|ss3*߽G-q/Ȩ1zX{Y+m6TMDr˅p~N?eϼm"pC5sg"b[ z$zr2vkјƲWYGcܓ|K_C듕k`\\BycK\s-h\9W~vs1e{a^*-p@TZb`9 ` 9`9 /`HOIENDB`swingx-1.6.2-sources/docs/images/banner.png0000644000175000017500000012450010446047742020576 0ustar drazzibdrazzibPNG  IHDRYr pHYs   MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3gAMA|Q cHRMz%u0`:o_F]IDATxi$Wu&{c=+k.0$!!U,6x `0c1 30`6mlUlBZV]{F~̬̈'+խw}{s O%ڽvkw۽vkwuqEᔠ޽R_'>K~,::+Oǻo}cg2Y3KX47t@Z<'(,y?/Ind1Dȓָq TҬHrt?˘y)Gk}fe{H"'zرs%I쒰ٲR#=2L>"|LF׮L~r~QdeͭQ!K)QgpۑL9q1b_$Մwa+K1Y/Yaz.%"LF=4 7X *5 Kj*g1`T9'4K^I@,@f#́Fa^ *,Hē߳;Pg H}s-xpȁ݁%Ԁ a-SWG)O6b.›HxhĒ  QFLr`K,i9W1w,Cу΢H kG&LCHHlz'*%@I|%Cb3oC8G 6<}i:9Ȉ;d̜gJȄ> wbzC=hYtM辔:I 2VšaX.ÖbL6)d;2 ta&5 =@iQNjv{/#28X>YErh>c)cLffq3RZYu͢HIpq olL ,fсo}^+L@"'In%e14ux]ck`IH2b2:k%A,a1k; d1F7CN_5dha!#AFMs!& R>Gdz,u. BB c$ő<<2Y%)$'y"H@0"#Y7 @QT02] &c}:tKDεB3{ٻ0ˁu4s`h}^&y #Xs7xYUfQghxX(dK=8` ='K$Og9@D6$iI c$,D BSxoq)51!;$CG1.x4ųac(A k2Lz(?tF d]|H"/luF<@!JMK1eh0¥BîۑŻXxS MB 't ,l (4>Xs& T-CAcаw2{TC຀d q?E9( :,nԛ?G0>Ι#daIggxiݔF3dIqGU2mMK8Lb [nrPDL10:͑v% $ \R#@},c4[Clv IdMQF/6LF]IKntA ӁQЁaBC6 '!{F8P50wi{QH[Z&衡Z8#a4Ԑ6aQ֑xIaT((tZt4MgHq{-/-XF]:/Кf:&,E{om:\ꌁ8P!A#sYϪ7-.x2)N c=0G6Yԫ#yXXAa4߳THaiGx ʶ47]j8}a>#eLDFk,L1hBb"GG p 6!THtpx#j0&5czR JRg 1X=j02:}LBD"fN8=n½d5dHq=4sQF]7˄{+IʭLdP($Ag[ܾ#H&г]u4 AM`d:0^N6~Di?wr?ZF0*t"(z~&#HAYc$)c!sSw!xNzlt`1:RGk[dž'8HX:8pM=;*m"_ ZK$YE%h2GxH~!5qdU56Ⰻ[I x3df*GlI)bŀ@dR^ E*x} a P==Y:W`a1bH=潌 fF˘MWIK 52e!&/="t#C2 y'*bXZw:5 8dDc>ϒ 垎`%dQ2ܺ4oLp&vՠ%11,ipEXAOǤ0 #)igtdL*8IU^+)c&FR !%{3qIpVk\OݿGi8nE_WŃøTyڱb} I*b&PqCZcɘx Lhd1Eb@];s'ɫF8#w1"9rƭsl,fhcH8/2b_"Jt#ctX|19Pka(f,|_9g,K):X50V2~N[gpsʼFI?eE?v3D@ 1G%ˍ/5gr6ў,Ye13TxIe[")#IGLǍdKؠAki-rڍ79`уM!tRı1  F`bk21F(.W`-I? Yو?%"-Ij-d#EG4'S\VR&_ED= Q}AyNd#V+b۸$X3Fml>p1Côq$+bXQD8n1S I}ZZKCE^ ! ˆV؃Χ 9b 恋k'/ʤuF#Gw&io%-̑oFOX-=ʻG36"lĤ#{6ߒ6UG)}y~7f&=/egeF;at3hڒ0&}سg*@q ItAk's>bgLIcGՄ2t$K@ IΚ-$ YPty2~2#ɸg Y~Wd S}Kp!)9R҉i*!ƑP%h\jo'ib-%f&'O,|,'qSe&EzW6NBJ2LSz,m9Ĕf'/qUzO +]>쑢AF7I(D:'gѱq)N c&eNx`p!h'/ɭIA87Fޱ9EeYHڰIR^bƜ'I`7* HKefHb tlbX>7Q4Ln2i#hB`]oۨ~WLRo Q,& N8YxԵ7֐`NʭΤfzb672Rj'@dTT"zp#442\hu +.PL7Ù&q$_`> PPfD>+N$U K\JY 38H9g-ݍ,n]SwФ۟4_$J>^ڼVHax-#Ϣ'i 5Z!C\Cd†SƝC}X"&w1}>@L`#>Pl IX*_C\A<؛g288T-8_MT52jxCHͼ}odԤasǜ,X3|E+b< Tx,·?3e 얦(:d)1i YM ,\ Ta!0(c@PU gѬLhpc 8CU/DGh-sЧ_b:'TITZAG!Ҁ@,%yb؄q  !s<;eQ%Ia %Ȥtz$h1 z aq\jOqqR9gݡ=D5„n_F3 ϺL:P }&1"#9[Vd v-=˒y vP1-NbFܫq^ټ㪠&%Q\7F^9MH#>maHO꙾O<2҈Jߠ#  ȳgMKXRƳa~ӕI8i~&m A¢3CW%EyH[ƍE WR_ǓukaT(!ariqY[>ёB{_Q98R$Pcj!G$ MV սN&ji$  q$KN.2]cXg@ɬH7^=kxH7qcԘ@9o3= x`dջ ^j$i\#=)Kl\.d` `nj8?P YW~3`LsDa{^{^o}'m[~<=\].@͘yf\MjgfӰ=] c}_Yg?~'{^{^ ZU(G 9 Pl;=\fd5?+=,y0RqOWwš{^{^{^꟠sˠwf]F좑56}<Ƈ@pg{ǡ+o+%<vV v}A;{^{^i8B0 X۶aY c Wiƣ08`vYtm҇2"=uL`XK~t| {3]-}V Fj[[[&j&6|߇rw^{^{^bA˲8,  uL 6mb{ApNlo j-IsɰդϡPkƌ1 pZy .G- 2=/>9 R4c3r)6yz- ωð^HRpبƌ3jl,QkI򘕳͎$Y)U\:yApdldX[ :2l9[T*a||(d20 =7o6>fh[ E%Q TQ^{'\jd/ t:VX^^Ɖ'V 152jm{@Ǘ݃\b0w1:ڧٜE X)@9%󮻌z6 /E{1 'I}? @BΎOti H`t2@妡ECx`e24Z1\z6fðޖyͺѡAahyts<ާY[B*(jr'16yl^$qN24f1cPkMI^c9e$Pu9IKY ‚!8F96Vb: K9Qp,nui Jcy'j@Zg TI`l(Pk1(p=A%!%Z 2{Fe0Q>LpN㘚8rLӌaFЀ%9y?H4~;l+^t C'YjX\\<Wԩj̡]X-O@m~ fvqO&G P)rڳ\gr,)j{;iHtYN X`9S!~@35n=tƞvLҚ)XcznTX) jDjdПw9MȠZ(2Q,f8:$H:̻ tL(CƦHd( ˛4o O3j- - dQB:,T[yL8Z:观rV-Z :0]k>yN8@e0L9Cp`,"RܘVCǬz䓒0ئ:7 u^o=qsSarrl6"q?rhs!| w;a)0_N. _(^!Pjy?qYԚDS|+ sB*mħh %gt&>- ʹҏ5Kjfl> g,@Ak) 8.觲ƶ@?ěk!ͱѠ.VՖ$A9X`mOH1du: l۲ʜ، 8r,m4o0eӁV@ڋk5:* TyLIy?)OeL }eC'0z'NøÝQkscԠ\)@<g1hu PW>?=[SeAkч3 @ч[Yi?cԀ V>9G~j?E`VcL`dtTi SަPR/e9kt_ql6c1+i]&DGJ*ƌ3`vO=cuҔ/--ciGjƹ˒ǽNW ޛtzAFԀ; l{tޱTP+w<z9bTƖdot5"~jAUR3-OǬQYB2t޶R~%KJ^`e' JME=KdAޖu0W,0r K9Hg[ [Hcl%Yؠ.觎ٞN@0j3JGޙd40 LMMq0y2rO-4n<6PpK|epc`gW[EL}PtEܱ0G*|Ԛ]-.6ݽ(tY,>fAyOeKYSˑsgmrr.a"/0!퍦`) _H{#g /mAފZj3ٕYz~`ۋmJi1ɗ)4LI[y013~ FvL|uum_G,SʧKϸTQ`di2<˻PmJJKs" d Ef 2yz)6Uj@:Kt3Ag-`} :3zjY[T9@eۢ΁RcF@?j@ZO|,CZ~.)7]_nS}ҟk3.p3-,,A1S H ^ ܰOSuj^"@3)<XδAi<ޛ^tA=hI.#"@ OSgGwyGI?Ej6gmEzzEdp,2z FkU:?SWY?h鹥r>*g9IŌJ H ;EF1k|b^hu&80]R*Sm,PmtIա3 :)+qx#C*5mn=>}c7av_27a"aJ+8Ә% 9\y/5OngZGʨ]kd4{N?O 1 He᧟4񍻽'-/m&wlO>:`kVu{)LC'EgڠдAAv<:s6(6{.Jz<pRM6d6ҏQmdПs8j- 2*cPp9T$*IU ⳎJ He32V螁,oz9w97=2/e9Vk>ޛj)Z$V RA|)!w#Y0]!&C+u gJAskU:SéSE@ܧ]8S%8n9ZT\.˲ 5y/@ rV p l;bP4,d`O˘=Ah*pb?@#;GoyaM?|YPӳo"&Jx^\yJTtV46tZ D)UV͆򧟲g@bF4?^jn$HI]0HYt߫A ҆GNXqly*V~Pl(PkdDAl<N*[EYrĵ?IQS齩n†򧁕*]޳b` 7͎hGJ ;LD=C+  ~eP(^Xk[ T## d< NvU4.F{8jsw~]@eL0^ko}/ncڰ8W1ȶZ5n)HtAH'OJ] ̻Hjtp 5bN>M>Pz{CЋBmzO JI[.Q*L @ ]Kj O+cti)\^j2;٤^?ʟZߛ9*`0M~1 )Tqj&T?)*NN8F# 8]^ʪʟG鞁KxAG/T_I*'։L?SA+[tCm$bmO#Y?FӁit0)_*AXs KY ,}FRn3p~םnL>~(ڔ_'ʧ /=ݑ+gg`Le2O9sW]}Yӥ_?aܶq_ ?=Y9MAേhGEwn1Hў1H0?9 RevI^y2@!zEyB9*?-!Af ߵTIAc<ᵓ@ᮥ=iBMۤҖX4`rFz@{+ ZtYΪ@*Xr@2[t@?=(4c3 *.{ʟy /EOW4Vg )*Eu 퀬W?AJNsj<\\B@?N o`~aϸ &=-T :A9ǣt7.gh  A<ٳ1]S`.%~"G{8_GQp89Uq m*w};{DB|HXa^>r.nxh!@qϓf<-4&ZB(u><)2tiC-vuh4AiH٥񃔕??tAR*ȓZe< [tot=y/ȳə`\G:9GeWT :A&Si6jtVt}HnѥycJc Pr|2U?rς~PA%BR H2s_xUⳎBONӲ\7? l)*ʟDw@`}6ܧ]9dpݜ(f8.xAb[IRt3f&|n@mnEx.nk㜩wo/m0Vn`\R1߆תS_CedLy[npsj[BJ"S33p9fN* <|i++rnɰEO΂BXۢ^PF ?Q6xA~:E'Q`IyNևPAZ^$N>;f`eA ޻ޒX`dK\g 8==XNQ97Z]*AU[C=)K57<6(); \z~Y!Cx&M~\X~̃Z&L؅i0a]_ |vV.`ay@ew;S`Pџ$w/3mѠN"tP6(tEvjc 1Ci>^ ۦԃWsAm;)+*6頿Q"SUХ"ʟZʟUzZ7AʟtGΡKKzA˛"@a,/O W}lh`AE5/RTXN1A|)+T "ϻ Iro`~C.4[6pb#WS1I{MUn@%N3eupdEaA`L} 0ep 0̘;1U FT$<> Y2s 0]@'33>i;̀{o'nnWў_ՓM|sj???sg,|#pYΝ0S6PmxX?|S:sg,<UG&rvoپ_c#G7! gD4w=A'. aP|A1#QRTlT9S`U੩KY%\IUaipL rXW?6' O Tg9VGQATP?ސ^O>|,'` GWhbF 0^nD9'phMW&?+37vqtyS8;Зa}9o,v.IÑA:_|E߽gtVٛvto]Mw97l==&|>/"gODlZBpN#>%`+7vM_Pqc-_:Ab;~eLU2K8ڶ6 |w'c(562jP3.9Lt@C;iw<#B%1s]$v\|kx%2xX,Ykup#M \s{Z.q]GQmy~E_ZV3w|EeuFK+E~އ t8~'>%`LoL@?ϙx#^W]Zp戅$L! ϛu[/տ[S h` ϛq%y<پ3g=> ;i7nɀ4M% ~e.Z %/` ߹Fd n ~Ú,Ι(d xSys (TP'7GJBZƗ;y{c7?o{X/减3_ Pȹ>|Gqv,mS|0y;c⃿5yg{ >󽍓zW]97l?_\5W .~뛵J1MP(c%fjaݢAʟmn%OrgT?m|L-'N[Sp%٬+r Tt_p\)+*GER9RTT6 Ua(пLtU 'HWTn& RSdVR T33*KҏBFkqT=5tU:蟫XX(db9S1ޙ1v ZM 8Rb%A21}'7OsÆῼ ؟b")x ]^M 㖻#n|$RxYPkD?wqn0^|4jß&׃q{x_'يgoUgp94/ß\X`]IG>m|/;q(P.eV}^ 6^$]RlV۸`A9[>ڗTng"@.J Nׇsu> M%堶wLv$ $pV5R  `6TWE86\%堂bFcPuBɕ?E'O@dU]SU #cs2@E蠿X萌kTdyK*L^P??+t釪&ϡbyK4o %)@q߸M ب]B!>[a7iKoRKje/9z9~8 N"0TEmkp׻.9;Kwqu-C ?p"fp?.=a{l0\rNܹ> Οٯ~^}c;(%'koB>Nlno(>7cl%sߋRgc@wW[Fm}I]I={fR&,e:^q6N/p|-=I|7G̔9˧v|߻8.+)*"D/``  @6t#@8lѦK?\+}V' ^ Oϧ36G UH`t@?#KKTONn5:/e6jt?3٠J@Ig9VGǠUbF\ڠK?,36G֦K9Fg+yRM:)XALYI?? \dр9VKE9ǤKE@1qpE[d?S6qtM)? ȡ]Ag)yWl߱ JTINNqh ^{>%llI~/ޟNl0g/=k.p||꺡czAE>C0n -!gL_%|o>-Go/%P9Kў3 H}*8m۔18{T{=])e36G #;gmhr{?P=}T1`/ǵx&GX1 %X̹RF`u#k*9%S3Pm1 4ڒܧc9ڧF)eD;YĚGQʊ4cT{(()eT)x'<ҺanL%XX`l c0S6 E JCsypdCCŌ6iDģ mޘ9L\h3$A ➡,=Z] 5LdwOcqVnRO_s+~;z[wYc9 K{v_~ԹÚ?; f8qv=Νxxuϛ˿`:}y[Ef}v0"7p}z`7Z@x,m~>Idφ x$`)ߍÓ[s'E$6nįq 3.fHO\_\T_~~a TΕ~p?n~3.=?0x>u%_J?zC&Sf+x.9W]' y3d'S \rS3*%̰af'.=WooVaS k-50Ob3E7򵷂i.̂0 ᵛe|3_5y lT VMw> U] x˞ٹqL-/ \YBC`J$Nl8vA|Oȱi+.JiB:w̔A;K\g'=ȓ13*VOWO[ :9[M49W齩cP̪TʟY%BF{T9MQW6UJK!r,%P ,oA%/E\תy̦J* 5dQyp' 3H,4WtIk_p'KK6G)'pd&pL+-Һ4̘kmZOXXREA3]kH%IY=0!n0(ya?fVvEkç<oxw^4۝ Ϸie}^0\Rők;~|ˣ`k߻ɃuPNYHMef0bg3toDѧ#W1:A@wafqFxNi/ -Oڇ ,cDss.2|\[/)ae!^skog\z~/>ƃ -5;͑?\}!|? ^y h0D P?3EP(gPXG3ePh+w-U'MPs]KIEcXJ*BeS÷RجӃ<ӃB҇o<W7t_ T>y T KʟyZ xz*2swUj@*W? ޱT>p*+m A4xAɢ*.جӳLL٘(*\ܗs*5 /fr.'Yc,g[SEGP6犹_\3&-nI|5⃺sC&4,vj`ELvt!4:Ut+8-oǯg?Ƨo- N _š4}@ J-*D9M!#'֟o O&rǫ]AήőwM6D҆ k7+[,!3eU\sLu}8~r>`8F~tA?ď XƶTO:;~ 9cyC/-WK,iaOUk%F~l(te`\s -on][BskZr9.>uZ q. ,{4*p_[^4 7 op¿lwLgd9||k!;BթqTLwԮf`sҏD #Y}^8_X.3N9+du.M0Bm7G~9Ho 0߅wkvoh )|5|k]@Rp*SԒf'i( 8M#]&^f.0#~ѭIQg 4tП' s*IY֦W $]vЫQBxi@cr8j;kԀ7m/g1Q4oQ?sI|ga5><O=7wf <AL)tC,5SBu@$0rݽ=ϸTxEoE JS3Mau:BO)wP"S0sW]:+6GKgQ**w\S~%!?_r~nPTXrl)w>p![[nUP(x^I?(c0QPҏQtVL Ԛ5>w/"@Uj~ozoC0~(yp|F齩,xJ+.u)MC?NQ҆cbai㽧baAV[%VeADр)}9g 0<||3%[a.YY@FGCa &8~Y!koYyys!=iPě~t̀T;FO=a3|;aZ20A~(E^~AwKf\tg&N)( Ns-;Obߗ`#Sj￿b Fl{VahýAiBw٥C'8T]8M5?ܞKi"@[uz~od)JVݣ~ך~ʟaHR,P1#sx%U2gVep6O+cvm=iOM;< L3 ƀ6V:COzWoYQk嗗֟Xh,@tلf<9džPĮ|\1暜˒Cyd0㰚zkdDCYCTį~0`Vݏ;%0c!ngI{qY(`tckp٩ ZS]`hT4`8]. ãBw&JCx͕+߽O2#=9CˇLfyxK̭4 >W̓Wf/Rr .s0ʤrbݍO̎)'}e|U8ZFGᶳc&~ic-بyh||'c61U2pt[b@A+p|;K}3y8>*z b-bߑw9JC͡uF6>~*^q<9޻ \huwm SUTMX8BAMXXkwѕ?{UdHºO/r)b/rͫ䀝\MwN jfv*6dH[kpgϟw*eR~\Rp_mLfn{*rv٧]ʒ&+K 6.$o.)LaB+y33雛%K՟vp `܀5:/߆_|W=IHg M 8r8)#$U)]Zb ̽)y2F]m%ҽ z F`1-hљ{sA>}ۣó@ Ko= NM5kuww옉6Οs`JIӓ!X#3^o@WEaiVCoT>* ` y1b=o9\wFJ,krˁ2˽s`[{{o # <f&ڞ dq۫bl&Wh(eqVXG>ng _ikcΟSv6hTM;fgl`rD|)Ҫ޽w?ѐNf s7}Wᆴ5}b \4#u̯qEE|fEH^~~_#'}hhuQX1gCt?Zs9KI/'yxs'q]8p?PGU,5k%U-,Ý{2po2`XYxI+Uԛ5߾|&o7 +QA *2]g2 ?pZC KSQ2zngI7T\?2GEʟ"UϴAyWɑY:u M/+ರց`,?wnwp @Ja\469'916::{*5oPぶ"2?!+EKK/}ͺ}}+ ~x(h`khϞ~ɮp,8W̪|Vڤ3Yw@2r^SIo-:DZʟyW]wUs5s`h^R)J^e^ѥͻz(PYß>C3e <ǝɟy}$rk߼sUyA$V0x/(`j]H)`Z6T^p2y9pV7hO9>|l4خɸnp]ސ{?Zۂ[0>=s)#zzOi 9饳x+\7DKEt::{_ҥ8|mVwF3|l z=-2d}FM/ï=o֑w.ܛ!}St^ pM/uw#uwp < UXů#} <67= i*vBOg4A=&(6UQOJ^2T']mgSU#Qm1U+6/}7DOyw>J?^Xمso{0`끜0XJ?4af›^2_ruxݢ3q~e~C`Ueεj'bxp`m5|dw;}}h>s gX@M/Uhu1sd|E!Eu fݏegRVaTd^[9]\+OlzNGe wFu^11)%MXzXD|;S5G] OgQ`@|0J߆ @. ,?#>½.^7@v 1%Uį\ӈ݃ 7{4n ?FLY!<- o\ƛ^2ep7k8cn\e77 LIfWTWTM_r\3&AH%MP(O[B zPhg;:^gڠP?gRA|/ȓ -SLjo q;"{o?DbVU"f )d8WT;ׇ'CxѥD':[7TqD\Ǎn[x^ڕZlQ-^_^v^WߴCOI$ S%`~[9QbwN6Ȕ%w=М _shE gBF1:6~d\/`. ZlG;zׁu\~~{-^j!$.;/BF;ꮥ~p+ɲcm` Clyq攃խNr:Gv(#At&O=tҠkcw}* [꧟T ՎPnﳐY_~ }*?gy?O?zϧpI̛͗[ 6 G3/ś_:K ΄EԷqlsK){m\~ɯO_sMb5.;()B9Cg 1౗c-bP($SݟGAiB[G< iBA!Qm}[(d{k{ x3ci<-ܧ@%V_p66CAXꛖYi68TJbF@p`yc8aePȈ@W)%.R7.ꛖ~ Qm;nѭob~W\Q6rO;??|s! ɢ+.ϝHl/UvA ]zoZ\+h옉խnM|*ci{lh"'ڱ( [xKxޓsO[Ϲqh_=z1 yb ry-zfXC׮D`롉[ɰw—\<%\}r>!TrpH8A"412՛>_yѓ,@n:]m.0 fe aqe|oo HCMp+(JwkxBz<ƥ, |Q7|L>+b 3f`gс#w ;ġ==yʟƏ!SA)<V OBmo:("(5y6]ޛ:YGvOY[@BbN e بyZW}z-/õz"6>i߼s yWĮ7p|鲅xl}~e[ z2a{s1VhnPfgߔ\o~k}q?ƕ9Q|^ԗ*\}2yT &_z8vZJ^øv p{Gտ<y?~ |mJHoGqˁDOMIa\}rgȠCc"@>_ދ?e-|e}a{}=߷ Ɵs%-3Me/X?#W{~qC\̘V'>N|9o.߿I-O/{zπxǧ^6>|L.e 3h1 [o5]J}bOV|H6倮b ַg>y.OgM T 7|_1߽m?/㻷= GeCIN8,e,߹QENƻ ~{?|.$2U ||o"WtLUYt'})g WAzgd(]Q G bFD)FDtrsh]Ǫ]fs Wbҷ܁Jw|CCcEAF΍=6>6ig,:+m̯½ 7L"@'~h28]r@xsCLn{ǝsS] n8Qg#!@jn1& 0aA%81 bp#uyx87lzAyoo]`‚]ڇg8V~Kb?)&|dQepajnNeJ\)8ǏUxrÆ#K;~gM?z"0ƁF4Z}܁Vo}84w}.0*2e^qfS{_LJ>s>)pQ}-ht=6ctϙ:;) )??ǯ'`_!_ ߏ/Gj1Ɂ9%SL%X=eK9iCy%Z/3aτpJ\R*ԍwƵ: |8cnph~?:p?:p_]VVqN`)2s *Q [䜁3eە??U >HTAcq>=c.’ʹ?Fip2ivAFIB[5 GƞwBt_5|r YT? Rbmf]η)2)=celX>~@ϖvAM7g2X#% 2\Jf9ՆGZ'A9gIrr|^詘5^ KyFc"@i@O-,S1`vV g+666̘F+ Ϛ,YI6 &WZsTXB@)+pxEESKM(8SǬ3o.|'_ y Xk2\%&`.KY2=U?gf`66W0w pw>p |~'9-dT%80f '崠|crNQg5O\8EssÅYW77t6c`7-Cex-0hB%91.NB VVS U0+}]7mpƣ9nlUᷫ]Fk}YXOMA8E;n`B<}PhХ"F7ȓj0DȔ)+'5(TpӠr`Wl 9JMYG3sЌ]C6ky4M>Tsw mɕ?K9#6hll%򛉢CMsLGOŬR91Q2:pnsY]*Tf;QO-0߽cgr`he/bwԷLrn>`t){ Mp+]g` "3nЊ6ph6<n8=v28Y"6l0sإP^ &,p .=@v{@@BJhMua)Hwݧ 4 zI 2(TyZě됃BTA)ە?=2؂gLz'+doI\򛜣h*: Ļ6mp>\UXhP1c`eV`aN{O-l6RF+ K PQW9gsQ5`Mu+]R[7pt'K[13옍kmR= T6V¾ ύۨ7},-c6:~@ɒ3$yV &2#L-jη)Y4'{= X3n1_x$.7q= N8x{6ȞP;L02cjf:3z1,p0 %0,`)Pg\$>G?ȓGa@@XՍzWPGi@<=OY3HUTAA OJgm+I 27 2vL0ٔ?lVOm#k*n@yMzfuMƌEzOo.c>Zr 5^֗ p9ò=;x-7ԂQ{<-SOcP(cBY`T<=A-mPj&Hd69 Ȭi0&'ZUS+yD1Pm9-:/e 4WTr+` g8YkX*cRZ &7:4JV:bla=XSe V:]r'oypdgYZ*8@cUG i1LI km9be, t<',ks\J;]b0h E mrtfMbj15џju3U$N3LT∣KtepZlP5@#D}ksLlZh֥ep왰qt9Ҙa.~1 xwO{M|?o8c_D5; ) U3bs]QA9뺶>>w<ւBeʟiBKKTPh OҒ~Ph3EPJlӳ :JIQ%jz.lV7k OᎩ@? _ݢe 1C!.ȳ7QƬZmAȱ`Srbրϻ- >c YZ*:*8"ي6wEO gf#{fnOZM,H,/LNևs&r#'9Q)Xx[3lBc-i,w+ksx9xeI3& 3s}84— N37M{bi (O۞ z tW ^ }Fejs=@)#T`699K/(gloW UHϗu 2u触[tm%YK ƵD*ПsU{*/e UiL 5^됳,l=:/-ObGcyR32N1^"?T9Z3im,>пwF*6퀜-gz̆ $DтeЃB&rC6_KYR])O p#7{nKĖ6dO^efVyf~[3lH;R!?E{tAis.SpF xtqU@J2x a -Cy+yB? zl ^PhEׇ$ȳKTc*J2Ϲ53cqdmzmr36ZʟC9gbeMU:,ZبATBI/4QdCjSNeYM̻Dik LL^Nm̯ppbE&\,ocoF#-Gic<3d*PʟL*!tIa@E-n~߂AwaL"PEvAןڽp~Oz{Ji@69:^g dq'īP: `d4S(3dz0 T^ʟM,I϶'hу<? U%-N{"@ DXu:-,mAdf 6֪|3c6|SeUse6f](ٮ$Qd}x!c1pp&% "@3c6.7E&[mƌ3)tƔjG$WGǍpC qA%7 6dٮJ90Y9{W#J= #ePi  e*rNBOWf^Ph;EO̽kTA- ]OT^pFfUOzfp,~*Pګՠz^3Х"'=K!cs`XE2"@Ti)ȬiZXS_Uƀيvʟ[ufl4>Vic0YL)@:/e $c L,\hʟgN_i,Lzbn>`pce#KwK?j?yWZP&(TZzbPh2S N_PN2F:}eSAm 4[|%j2;tHxt}xVҏ4?`N,cqrfR-; \sN_OƀJV-Ԛi+Vi)gv+ޖq|^HUwmrHWhJ\hl91wYhr61/]OC02s_)p,GArޤWt&9^KWS"y 풟uzc1(4 otA*c+(APh 6Hʙ$gEgs@iA~xت'5=kqX&=mrdlAfMC1)@9ob-EJA齩`hڠf'xBr^OjbyfA[30籕?+6N9`iM:XKQhnAfl}:U2 7%KT JsdYux {^WzPL- )Zbʟm?MfF@/d"(hxG $-5w0ltE}8 i ak OXk9L1ƀ1 !A!kak#1>RZhoA& q pcaZӀ%J?2cG9Z8~E3! Nkƌ3ɲ-r,TR<Seu[DoDAg+R64 >-mXG9 rl @Ύm)%Zm3l6R34ebF/!:&Hc&8G>kc8 yޕ .x+4[D)GE}-@اŜ*Hq Cjc:xy o4f!011azcV`vG7R"6A'|otGZX1 c7s.skRX%K119Q?\%퍦)oz ݽJ8g8k8 {'p5q̘`e=a `)B.H>IENDB`swingx-1.6.2-sources/docs/images/footer.png0000644000175000017500000003106110446047742020626 0ustar drazzibdrazzibPNG  IHDR4^ pHYs   MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3gAMA|Q cHRMz%u0`:o_F'NIDATxy|UU՝N!u8^`Q0ettqwT`t#^YqA8(qF eQ!@0'޻?j`'sN9z\xt&I q PDD ,+_AAA[3-Ȳ p2xdXxX-<y`HTEatuu!CEi  ; Άn :\/NF8vjjjp1aj  ;nQTT{a[DQ{MÚK@AA1$a'u~jE^^Zh p8Z  #20C^^V

1ΝK0\<^+><o?mh[;:O{gS|񽇿<.+^}{X>W D=o{Z s.Eiô@yY{oOG ۄ2'f/>nմxP Oqunj(-r`u'e'JPٗ!h*ޢU<oijxN+<%~<6OE}QS_͕K$4$R4 z|yXCxUTJ<6ՋW ļGQ^ܼ HECcYŠX85jf>fx Ko@C[ eN|yq]V<M_NeԆHZQ_iץ˜X PZМI1u縱|o`S cKf cJYDO؝5A9Pnonoc6 s1Ю{ 1 ԷưPP iX2kVV7ˊXqCnN5A,yޗv ̉gmƤNC"%`X;k7хSAHu 7х5AdL>'7뮴(SKCVP}~> UX8?faDV?̛2=oe>|֥]+A@inl+n(о9PX8?0YXSW8 8c~Kt ]<oڭm==[(׏Qm[Y%bT]Vd;<+<3d;.\Vb̻ͨ|;k|ˊI3.Ly19u|6oUO|YTPa:_%ٖϺ&+C}k ϼیSÓg5=o Eڸ{%HbbرH&Z;5H 1ա5uKG`,lOo8olaS| W+:qNWO9n~ 7=ъ7tŔ2 mFak+ޮ&Z)/}Ђ7Ž?QvWoj{q(%չ$fż.}9ny0c끯%]كG.u6lǡ2 e9q(!JtbӞΔ_Ր%wWkl~ s{d{v侹̽Ѕ{_7I;|l3+MVˢި?T۵ZxXyPlvvᎿ$~+*RZ,G/ڭ-~ևFԧtvY?CU`ΠC&[[ tglZ&{֧B(3oӉS{z_w lxd1T"Y{4fUmN/lj9vki_8y].B0 GH摮n o9rN Q IIpb<F֫b7 Ib(6HG#$a_] l6hG:c@L_ޏ?^Q6̛J)۰M2Ɖ3[˘˰iBQ cpդs6TK?ە+70'6c!5?)clGG @2Ɖ/vwwwb^?&$1L>lj7LHê4⯛[ )I EؼSP62Y6v6GJ Q8i~~Su0Q6mU`POVԷ0(`Cjnǩܼ1'f5񎀘bN`y#֌-t5wK[PQٮ՝@HgZmrG H!ק9}ua|"ݝp: εP+o۪͟Fz2Ӯ#hKS tld&)m6 ,]w7_@$B&վ}al?K7z= F; &AEQ8ОmGR46x(iqKr ہ8粒TlkgqMKq3yz=yj**PQ٪tptm<Qu0[ch@,6ݣ}HUO~#^ /niiQQن`̐zlG}k4%P\p:TTq@yɋM{:pCvY0e70|-̚¢iP 7Y~|gǸ,\=)Pl;gRː@)[~7}Sn݆)] :s?|(I:y8}9I"hR$IBL\tn՞RƻpcѴھ绯._K㊳8QHxs}jmɔoT$gqmZ<`.Gg0=R˰qw;fxlxlk_|]Xmw}۶?6n_ qѹ9Z[F'ظ . /_:3p;l\>c<֓gվKRȏzXn}i|Zh %1ԃFuھ۔1N7Σ3(⋣xlʄ̴> vwnQ{kT??n5Sk6t\uꂸ9S4d;.d[ާ(qc c]5+Yq Igϒꋣ-~\-cN8 )fv2y0~Շ_X~1:͟_wz!]N}G-7_#3L/ w"V ^+fʢśs9$;g;Ӑ5o'du%,[S']eU8r7]Y[> osK(@A~f Fïzƶf/w蚍ǵ]9^4ek3þ n-w/ljRqEc;__ C1Dkh,0;tQ0ƶf[#,[s$%7 Lrl{v!{~oZ2}X]{Ų5r_JI~\*OReR)=-~ʘlM-j~:5#Xv'joEEYUŭnԲ `ٚ!/qc^?:NRUSӗۦIX8n8*W~oAþ@J)їM{_]]*KD%""a]8ad˕bVXC:,lc~Ńp1fjǚWkwGgPCQeA|2 g*L !hƤ1.w.FO) z߰f p8_%  3B16M-?I)G}q2d3xdXyX91XeDQY "p] !a\fb|/V 8r8'  1C1BSQ u»w=슎Y[s\,hۚ pDUX$p غ ]vWJ.ήL!8r+/AAę%yP;b(Pܻp_l]N ’!ZZH8Օ1YEY\b@9X-V({%rx+_G{XXa<8y  3TIxbF̹z)>Uv6wzdU ƘCYCo z7ח,G:gJ~@b "ñ#0ܙ)?*s.P,Eː8'  $M.ţ#q Mޒÿ_ \ v*o?6c(&8ss׵U"҃BA .:ߴQIc/&) s8 m!  j\[G ; 4"C-'ڭpx8lV V^Q*:Q(hEЭ"Jʚ1 -p\+ňs-X,.׶W=CpApBflǝ<AA7B30I#cAvVfJ?W?=V6ڽĮ,L,q%Y+a-I/~ s$qQB,./?8 +[DD(?] wp$__ @pf  G:AAqE8&q01 ) B!E:1bp&necau 5Ñ!!& LyQ9\ֺi*Γ汸X!R}I4}oج%aPFTbeQ%Dy+i^4 e[Üi?6ƛEX!G%D-qCťW`(ą  8"8&7} + ,m(W)ZeQ+{{-̓Ź(Ry4& HL1Q~YT.gAaYB8]0V[&8AAqډEho͇h< k p V 'i_Yar1?(1WO 1XTP6U`w,۽Uh9$Ƭ'ę :ro1#AZ58í,,՗83,<22dr''qL^gx@8XbkG<.!0Q ,2hUY5%gtGo0 L΂Y-, r )(07 sH9/"p9d(E4AsO4 qFtcL|M=@Fa \"ϕc{S~RK' gNp4ns)#|b(q=>Us,/<,"4([fAA7IbD/lAR<'{]h ߭u+j4IB&YNzqqB[@qQPVrх+rԗ?M8TĩmhT7׷zQ |"]!W@W0O@" .1 1N㒤6[" ;Z04,{xiG}UE6ayZӵ8 B\'Uex$r]d x&J)rN"2 KU~>E|=|=b)>A68YM: AWC\ph,_C$ tu<8%TK"pi^( ? o(  (t !}1' i}ي-KAn潿 v g`'{ҵ4yC Ih^0qmiH_eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3gAMA|Q cHRMz%u0`:o_FIDATxڔAnD1C~5Rw=o<=BO ll'~ +aZukfFVn+XQ{5ұީz7Jum_?ap4Xݳg 9 bvcys X%9 org.sonatype.oss oss-parent 4 4.0.0 org.swinglabs swingx-project pom SwingX 1.6.2-SNAPSHOT http://www.swinglabs.org/ Lesser General Public License (LGPL) http://www.gnu.org/copyleft/lesser.html Bugzilla https://swingx.dev.java.net/issues/ scm:svn:https://swingx.dev.java.net/svn/swingx/trunk scm:svn:https://swingx.dev.java.net/svn/swingx/trunk https://swingx.dev.java.net/source/browse/swingx/trunk Contains extensions to the Swing GUI toolkit, including new and enhanced components that provide functionality commonly required by rich client applications. org.apache.maven.plugins maven-compiler-plugin 1.6 1.6 commons-collections commons-collections 3.2.1 test commons-lang commons-lang 2.4 test junit junit 4.8.1 jar test com.jhlabs filters 2.0.235 jar test swinglabs-snapshots http://oss.sonatype.org/content/repositories/swinglabs-snapshots/ false true swinglabs-releases http://oss.sonatype.org/content/repositories/swinglabs-releases/ true false jmd.sf.net http://jmd.sf.net/m2repository true swingx-core swingx-beaninfo swingx-1.6.2-sources/swingx-beaninfo/0000755000175000017500000000000011534506031017510 5ustar drazzibdrazzibswingx-1.6.2-sources/swingx-beaninfo/pom.xml0000644000175000017500000000233411435756277021052 0ustar drazzibdrazzib swingx-project org.swinglabs 1.6.2-SNAPSHOT ../pom.xml 4.0.0 swingx-beaninfo jar SwingX Beaninfo org.apache.maven.plugins maven-jar-plugin maven-compiler-plugin 1.5 1.5 true true org.swinglabs swingx-core 1.6.2-SNAPSHOT swingx-1.6.2-sources/swingx-beaninfo/src/0000755000175000017500000000000011445661416020311 5ustar drazzibdrazzibswingx-1.6.2-sources/swingx-beaninfo/src/main/0000755000175000017500000000000011445661420021230 5ustar drazzibdrazzibswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/0000755000175000017500000000000011445661420023242 5ustar drazzibdrazzibswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/0000755000175000017500000000000011445661420024031 5ustar drazzibdrazzibswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/0000755000175000017500000000000011445661420025654 5ustar drazzibdrazzibswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/0000755000175000017500000000000011445661420027173 5ustar drazzibdrazzibswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/editors/0000755000175000017500000000000011534506031030637 5ustar drazzibdrazzib././@LongLink0000000000000000000000000000015100000000000011562 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/editors/newHighlighter24.gifswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/editors/newHighlighter240000644000175000017500000000231411435756603033714 0ustar drazzibdrazzibPNG  IHDRw=bKGD pHYs  tIME(YIDATxڵMlTU޼鴝2R>UQB@\h4n(CЅpCB5jbbܙ5TH. t!*b0BZ Bfyo޼b杹=g֚,>sq#hBW}|| h7k u!! &1 ֺ@o?0tV/ׯzS\>}wqhHM+2X4eq0C_%3F@pVb"jAg34$1BUI$a$M&hjP.&VewS@ rAw7%'XYr"YH P;rDMUi#,Hͣ B:5::ٶm ?6G`i̐h mʢ*SD9EӍ ;xZfu {!-a#@ZX]O$Zؖ6=6nX{潏ƦNLcHcitNpK;q}{6vltյw [L#I4IIaivۅm߁;,n??1Xh}k>l/*ӃT9r avߏy7!ZHX%I|5|ޭ{>hcq0g|2u"7Nrfݛf~:sțy_|spҌVShTY⨂nq:SK+7*~vlbS?4ZsChB`mY&;7RYΎLM~O|u *ֲqeJ@cCƏ<ĵ_N|nK7:"s'2qen#'}'3 dbbүV>" m? 6k;K2%S&V M\IENDB`swingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/editors/PaintPicker.form0000644000175000017500000001147111435756603033755 0ustar drazzibdrazzib

swingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/editors/ImagePicker.form0000644000175000017500000000456411435756603033731 0ustar drazzibdrazzib
././@LongLink0000000000000000000000000000014700000000000011567 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/editors/newHighlighter.gifswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/editors/newHighlighter.g0000644000175000017500000000146111435756603033775 0ustar drazzibdrazzibPNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbT?W`~tzF @ d> @LȆw *V1,m6_ ~a _}E&6^ ϯwIX(L,VOx8>VA%\"Az{;'#+8UqdgR @ A>Cbw35> 1 6&n'fo!SvIENDB`././@LongLink0000000000000000000000000000014600000000000011566 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/editors/ShapeChooser.formswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/editors/ShapeChooser.for0000644000175000017500000000350611435756603033752 0ustar drazzibdrazzib
././@LongLink0000000000000000000000000000015200000000000011563 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/editors/deleteHighlighter.gifswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/editors/deleteHighlighte0000644000175000017500000000017511435756603034040 0ustar drazzibdrazzibGIF89a̙fff333!,Bhn$>d5fB02m7\7@̷C u@0sROU8vU$;swingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/0000755000175000017500000000000011534506031031200 5ustar drazzibdrazzib././@LongLink0000000000000000000000000000015100000000000011562 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXGraph32-mono.pngswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXGraph32-mono0000644000175000017500000000104310406366204033542 0ustar drazzibdrazzibPNG  IHDR s pHYs  gAMA|Q cHRMz%u0`:o_FIDATxڤ?HPy DtuqRAAts)bqqsE.:g)(*E[ںxmI~ݗw+bg. +4pr2[ ? _Ç3]wh AyYBJ,=$$ ^1C|uXXcol~y+D5$)3 !#(QF1&X#n1NC`a%W6xfmjArQ.zFP$Faݩ;;B8:nSUܷ$V%4_!MwIBUVzPׂS@dS[^#z`'XQC57s:QvT\Dܤ"nR!OoGJIENDB`././@LongLink0000000000000000000000000000015500000000000011566 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXHyperlink16-mono.pngswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXHyperlink16-0000644000175000017500000000100210406366204033552 0ustar drazzibdrazzibPNG  IHDR7 pHYs  gAMA|Q cHRMz%u0`:o_FxIDATxLK[q_ȇ54*"آP CAĀR'tppUſ@7]JU" Y% Z % 4~߫{=]M;x#f#.U LI=yM&|l׸\ w֟ >>BKZ@N)m4xqM}D <2\q!O b}JVWA7S*(U7}I2lj;whSBSFIENDB`././@LongLink0000000000000000000000000000015000000000000011561 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXErrorPane16.pngswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXErrorPane16.0000644000175000017500000000220210726321017033504 0ustar drazzibdrazzibPNG  IHDR(-SPLTEٻ珋vtsspqfefeղݧkijj~edNNUTԗݨYV\[zypp``[[ZYOO::<;Ɍ׻^\CC]]qqCC 23TU77&%76݄33;;ЂvvkkľllRO¼MJ ''jhxy''rsfd#!'(iikk `[ wwww  kGE υbA>0,ml謬vv~^IF^Y ccjknomnc rieş#"XWkk llɷ\\{N('örn .. -. }O kebý`]wP UJGʿok#!vaJ_VS¨{POc$#YQEK;9{u2tRNS@f pHYs  ~IDAT  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijhklmnopqrstuvwxyz{|}~66fkn֭IENDB`././@LongLink0000000000000000000000000000016300000000000011565 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXCollapsiblePane32-mono.pngswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXCollapsibleP0000644000175000017500000000130510406366204033740 0ustar drazzibdrazzibPNG  IHDR s pHYs  gAMA|Q cHRMz%u0`:o_F;IDATxڜnAklGIB A" "R 4< t $$'H$_w(nnt?76t,4%޳v7t@wgcRdŹ,Qnn-q@YFSYgB!K2U+7a’aM[71Ooll::^8vI5z" hEHC:8W7Bo#@o8R?!P(KS9l:7J[pL9)L*o,^N99 <>?xM J )898N@Ax[Yc ^cnxO)+F hnQV*3p]V!0 _{V+a^0b4_AN<ܾ*wHb%)o0{U\dଞH> 6@hZnQ0 ީH 9Hx xx z{(sΝ6VMOs/lx0b[YpoD%.PIENDB`././@LongLink0000000000000000000000000000016300000000000011565 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXCollapsiblePane16-mono.pngswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXCollapsibleP0000644000175000017500000000061610406366204033744 0ustar drazzibdrazzibPNG  IHDR7 pHYs  gAMA|Q cHRMz%u0`:o_FIDATxl1N[A>HxDBԹ52'"GM"\6%w#KvRx`f5ͷiU!mˬ%ak;trμV t\eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3gAMA|Q cHRMz%u0`:o_FPLTEJꁊ~2ɚn{Su2:ntRNS#]IDATxڄ D_8Q+w8lq=8eI:e~u-:6[9cn=k"Lg'8@FJ&\*@dP05=wXx` hKbPQ hs_z70JXP 5E)ӓT3LHo e{倥)raMRQ!"{sT@G"PuԖa~)J9a6Jf.d&U;Qyq]n3OQIENDB`././@LongLink0000000000000000000000000000015600000000000011567 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXImagePanel32-mono.pngswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXImagePanel320000644000175000017500000000174210406366204033543 0ustar drazzibdrazzibPNG  IHDR s pHYs  gAMA|Q cHRMz%u0`:o_FXIDATxڜMUe{B[D!~4R}Т$,HDXDЪUA !hv-jBG!3pq;sϹmqϽs̸y_'sc 6K;4 _j۬v&=IwlykyFFeN[sc҈uAR qɈʳ%PC,vpʚJ..@0P-+9;eg=e/ܥp^DZkc~2bWA@wT˰p Y7/CC(꾵f[}[p/T]GV[:]$j!xvo79)a{hjhhhgn>}dK^saL uuuoL^#^x-D*yUCځY;vZkSq~EϹ`VKKTM=woZ))?y6V 2J:#xMM[4}Z"'3ewvԓt)˛AK-d< rYGpXKKˌ_5M2冺z/NSL3eZrW݉3](o2DI$ a994l̄ 5}rWn6)7&7l]}h1e^6&\s]_.rdbj"7nRuݮYvd2\-/wYHKa 6NZXk4i..VM-ҳR5iy㓞(xp_'SK )FvsK-QSob|$Xua>`$Xe_E_>zYIENDB`././@LongLink0000000000000000000000000000016500000000000011567 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXTaskPaneContainer32-mono.pngswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXTaskPaneCont0000644000175000017500000000737310406366204033734 0ustar drazzibdrazzibPNG  IHDR D pHYs   MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3gAMA|Q cHRMz%u0`:o_FPLTE333NNN\\\ntRNS@fIDATxڤn0 DiUv;UR >8aCHπV [d2f %6g3DݗPx g]1P9fpcN;/`)*ud(u'l' ]u.m9((ї~cknuo &(wq"w)٬\!rO\HRۦ?5ó^-Q0[fDk\SK5aZ[Lrp Y 7 U,IENDB`swingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXPanel16.png0000644000175000017500000000557110406366204033371 0ustar drazzibdrazzibPNG  IHDRa pHYs   MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3gAMA|Q cHRMz%u0`:o_FIDATx̓ B1 EϫqQ7orvjlp0KMCY"r~QDMl~Rڔ?]㪠?ap%0u_͂2)*(QRJm[AUY,WGv@ xTy\TIENDB`swingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXGraph32.png0000644000175000017500000000651710406366204033372 0ustar drazzibdrazzibPNG  IHDR szz pHYs   OiCCPPhotoshop ICC profilexڝSgTS=BKKoR RB&*! J!QEEȠQ, !{kּ> H3Q5 B.@ $pd!s#~<<+"x M0B\t8K@zB@F&S`cbP-`'{[! eDh;VEX0fK9-0IWfH  0Q){`##xFW<+*x<$9E[-qWW.(I+6aa@.y24x6_-"bbϫp@t~,/;m%h^ uf@Wp~<5j>{-]cK'Xto(hw?G%fIq^D$.Tʳ?D*A, `6B$BB dr`)B(Ͱ*`/@4Qhp.U=pa( Aa!ڈbX#!H$ ɈQ"K5H1RT UH=r9\F;2G1Q= C7F dt1r=6Ыhڏ>C03l0.B8, c˱" VcϱwE 6wB aAHXLXNH $4 7 Q'"K&b21XH,#/{C7$C2'ITFnR#,4H#dk9, +ȅ3![ b@qS(RjJ4e2AURݨT5ZBRQ4u9̓IKhhitݕNWGw Ljg(gwLӋT071oUX**| J&*/Tު UUT^S}FU3S ԖUPSSg;goT?~YYLOCQ_ cx,!k u5&|v*=9C3J3WRf?qtN (~))4L1e\kXHQG6EYAJ'\'GgSSݧ M=:.kDwn^Loy}/TmG X $ <5qo</QC]@Caaᄑ.ȽJtq]zۯ6iܟ4)Y3sCQ? 0k߬~OCOg#/c/Wװwa>>r><72Y_7ȷOo_C#dz%gA[z|!?:eAAA!h쐭!ΑiP~aa~ 'W?pX15wCsDDDޛg1O9-J5*>.j<74?.fYXXIlK9.*6nl {/]py.,:@LN8A*%w% yg"/6шC\*NH*Mz쑼5y$3,幄'L Lݛ:v m2=:1qB!Mggfvˬen/kY- BTZ(*geWf͉9+̳ې7ᒶKW-X潬j9(xoʿܔĹdff-[n ڴ VE/(ۻCɾUUMfeI?m]Nmq#׹=TR+Gw- 6 U#pDy  :v{vg/jBFS[b[O>zG499?rCd&ˮ/~јѡ򗓿m|x31^VwwO| (hSЧc3-gAMA|Q cHRMz%u0`:o_FjIDATxė_HSQǿqҹ?,J!"EDO!Q>AEDS=%=ְ+h+Z܃l޹ӛԜ}<~~sl%d€c ēyizub\%ezm@ʕ쵈ɱ6={ϿBF}50N[@=rЍs'fѫ 1=ŸcލvU\ͺ g˷1.L4 Y³,"Ic!X UDEC29l^AVV+tw`iDo:v5-n7xG n_,`Qss$1oGI2UJ5K q#VI8tu*H8mU(̺x(H.D^[ _(azƋTVe*Sð4kiă]&\<5=od`G"Sв]A(bn!VU^a.~<}DŽBP$o+1wPy1跶xCjb"FC~ ~@&-7IENDB`././@LongLink0000000000000000000000000000015000000000000011561 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXHyperlink16.pngswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXHyperlink16.0000644000175000017500000000670010406366204033565 0ustar drazzibdrazzibPNG  IHDRa pHYs   MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3gAMA|Q cHRMz%u0`:o_FIDATxl{hSw&6ӴGSN R:MZ|ieC((:Ad "XP3ђ> $xz9qK_ss)%Ŋe9Qus+I͢JiLZcr J+}TX)FJz+m;ky򗊉,@|%_6Y)12TFh&5kTz&k|Ld2:h Y*#۝ Z|w9G,24:qp18īUgH.Pv[>Hpr#Cr`̀3#n K~H~nb!l]rBs F6Vܺ+8ϻk$ i5d=Y|@쥆nfe#20# BE{mYJE2?WnBE(*O n!ڝu>hJ ;1{fZ=Gbٳ 5Crv'OL9v096+d`Sη]"~%6Wmj=ۦ8N#M8wDC?ܷL$x.XP[7!?ڝNqQ6D]cb s@˖~/~?lBþ=H)3L[5YGoi{eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3gAMA|Q cHRMz%u0`:o_FIDATxڜ1J173Q'Y\XXx< v[xd*(Db'k$E88&sJ3moFr]/N ֤G[ lmkutڔL~FX-|7cloGٟ8C4kmI+8<>m5EQ$UU_TxL!dU9xrx@^@X*u]Bݽzv#k.PIENDB`././@LongLink0000000000000000000000000000015600000000000011567 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXCollapsiblePane32.pngswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXCollapsibleP0000644000175000017500000000662110406366204033746 0ustar drazzibdrazzibPNG  IHDR szz pHYs   MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3gAMA|Q cHRMz%u0`:o_FIDATxĖNQi;- P\T%g炅B@H4рiD&F#D n1y;…Q[J 3.d* 5N2͹g|{E9lLaY:.Jxte;-yu[aWoZZC( !Km-6% yضc a)) ,#>NQ)ȃ%Pn7* r[ρSn@ Fww@8f`ht@K44M:[m^^-RaqCR2ŀIRݝdd|R /o0 'EG2M:IzR]Z,BF'tD/[[HYb'=qF!~|px 7}g' B Kd NAss3J) è!Qnll$Q.w*[L4M%vk*x<@.qVӳJ$DsJ)qU~#s>bڇ\( o>bJ:%p]D":4i*=̀ׯ^+z%˲hkk;ǦibY1t27",]~<=IENDB`././@LongLink0000000000000000000000000000014700000000000011567 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXTaskPane32.pngswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXTaskPane32.p0000644000175000017500000000662110406366204033506 0ustar drazzibdrazzibPNG  IHDR szz pHYs   MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3gAMA|Q cHRMz%u0`:o_FIDATxĖNQi;- P\T%g炅B@H4рiD&F#D n1y;…Q[J 3.d* 5N2͹g|{E9lLaY:.Jxte;-yu[aWoZZC( !Km-6% yضc a)) ,#>NQ)ȃ%Pn7* r[ρSn@ Fww@8f`ht@K44M:[m^^-RaqCR2ŀIRݝdd|R /o0 'EG2M:IzR]Z,BF'tD/[[HYb'=qF!~|px 7}g' B Kd NAss3J) è!Qnll$Q.w*[L4M%vk*x<@.qVӳJ$DsJ)qU~#s>bڇ\( o>bJ:%p]D":4i*=̀ׯ^+z%˲hkk;ǦibY1t27",]~<=IENDB`swingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXFrame32.png0000644000175000017500000000076510732240035033355 0ustar drazzibdrazzibPNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbWDpkEܚr;47M`ܸ}q mJeD"3aLyO'>phOI%kʩzś;#p'U[Q{-ǘ ~߇_:rlZ 1z;y9qb [7_}R2HEElmQ/Olsڌf5JfmKU mÕo:mFYlsG* zU=on'${w(dJSMgUVQvCIm%[k%k5*#yk~U2y"Ӧ]7kAUIdmPzU-A"xY>].J]2>" uT!kb*$*K$t3M%U }*hqc>#u2yEER n%hiT}zNkc2H*fwt}]Iu Hά\GѫrB;Ք*XX"MG;SSڷ,n5 *ʮYgĀD1gRTst%*Vk[]]] vGFJ]lr좲,R2n:5AA{ĝt'.Hewy nh.x]1OL_qKyMeXPYumw;?rH}aO|c˜?~h8*7_5srӏ{ĔW̃^zʌwmp#4/xa3ʥɛChwxո_zF>HDb5uY{_j&_i v_3гZN:0c.ɽK++cų^5 朱ZGs/~!2J;~]^xqŻnNɡ*1\/ ѧX_]~&VG2nщ'B2 ;dP+UW[%C|U2eIENDB`././@LongLink0000000000000000000000000000015600000000000011567 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXImagePanel16-mono.pngswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXImagePanel160000644000175000017500000000071610406366204033545 0ustar drazzibdrazzibPNG  IHDR7 pHYs  gAMA|Q cHRMz%u0`:o_FDIDATxTѽkTQ߽{7 X B6O@FSk[.M ;*`gE"AA߾;Xpsf3'=I z70Lj!9X];'$ׄ\dEo˖}Y1UJM2Rt`c{x4,dU9M:t!nԘ4~,hb'>ǓMlGĽFqqq_[_8։obd/g]t5gnxnnnj753BUBs{dd$Ś]Wͬ{i-Z*WN\PE1B WVVtJ1h7#E8IENDB`././@LongLink0000000000000000000000000000016500000000000011567 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXTaskPaneContainer16-mono.pngswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXTaskPaneCont0000644000175000017500000000713310406366204033726 0ustar drazzibdrazzibPNG  IHDR(-S pHYs   MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3gAMA|Q cHRMz%u0`:o_FPLTENNNztRNS@f_IDATx|A0 C41,`JF?uaT4GmXmT I|^mL~I `4GJN:rIENDB`././@LongLink0000000000000000000000000000014700000000000011567 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXTaskPane16.pngswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXTaskPane16.p0000644000175000017500000000623310406366204033507 0ustar drazzibdrazzibPNG  IHDRa pHYs   MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3gAMA|Q cHRMz%u0`:o_FIDATxڜ=kTA{wDָ` \ `!XBZ/2 6z3 wf~I9pfԽ7 V/6ɕZyILlQ`!@syk--"ae!@Eܢ~\Q4d?1h$IxbCD{v}(JjCH)st=ZopΕ!a?;L( ڝmZgJMQ3 aށs(N qE18s~,xr/{{|}G8ZL5ƘPi4cZw B,S'J)$9j5$)i%bs0 !'OK;iJ߾b^l61\ vG4@RJ?VIENDB`././@LongLink0000000000000000000000000000015000000000000011561 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXTreeTable32.pngswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXTreeTable32.0000644000175000017500000000671610406366204033474 0ustar drazzibdrazzibPNG  IHDR szz pHYs   MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3gAMA|Q cHRMz%u0`:o_FIDATxėOHac[A+tX<D| |́D"ކ6#jErٍ%RbSbH@΄ܷؼ Qqfkő0^RTxN!gUEc, bQ@\(܇ɖC=>heQX)rn%Pl;v^9@=q|=Pg IENDB`././@LongLink0000000000000000000000000000015600000000000011567 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXDatePicker32-mono.pngswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXDatePicker320000644000175000017500000000156610406366204033560 0ustar drazzibdrazzibPNG  IHDR s pHYs  gAMA|Q cHRMz%u0`:o_FIDATxڜ?h]Uy}I ZmLP:VtE).E-AXNqbN.Q)E%-."]BCiX%9{yz.{߿GR?:3 ifAɓoc};Q6:M.:ahL H^gd+.|7^>uצ{lpg;9'.M.z6hQ ="vuY|fr^ix$Kf$t-ICfy"*  Y/YɎz6j yCƊqB7.?ɸiF#odAve ZseWL会s6< \ p)k9e6U/:o >c51KY)YuVOKzJs}" [k# dByؗ 7IՉm sYSʹYrNj2Xz 6UXm.XeVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3gAMA|Q cHRMz%u0`:o_F[IDATx;N1EO2g :V@Cn()-TT!v'~PIzz88?xM J )898N@Ax[Yc ^cnxO)+F hnQV*3p]V!0 _{V+a^0b4_AN<ܾ*wHb%)o0{U\dଞH> 6@hZnQ0 ީH 9Hx xx z{(sΝ6VMOs/lx0b[YpoD%.PIENDB`swingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXGraph16.png0000644000175000017500000000624410406366204033371 0ustar drazzibdrazzibPNG  IHDRa pHYs   OiCCPPhotoshop ICC profilexڝSgTS=BKKoR RB&*! J!QEEȠQ, !{kּ> H3Q5 B.@ $pd!s#~<<+"x M0B\t8K@zB@F&S`cbP-`'{[! eDh;VEX0fK9-0IWfH  0Q){`##xFW<+*x<$9E[-qWW.(I+6aa@.y24x6_-"bbϫp@t~,/;m%h^ uf@Wp~<5j>{-]cK'Xto(hw?G%fIq^D$.Tʳ?D*A, `6B$BB dr`)B(Ͱ*`/@4Qhp.U=pa( Aa!ڈbX#!H$ ɈQ"K5H1RT UH=r9\F;2G1Q= C7F dt1r=6Ыhڏ>C03l0.B8, c˱" VcϱwE 6wB aAHXLXNH $4 7 Q'"K&b21XH,#/{C7$C2'ITFnR#,4H#dk9, +ȅ3![ b@qS(RjJ4e2AURݨT5ZBRQ4u9̓IKhhitݕNWGw Ljg(gwLӋT071oUX**| J&*/Tު UUT^S}FU3S ԖUPSSg;goT?~YYLOCQ_ cx,!k u5&|v*=9C3J3WRf?qtN (~))4L1e\kXHQG6EYAJ'\'GgSSݧ M=:.kDwn^Loy}/TmG X $ <5qo</QC]@Caaᄑ.ȽJtq]zۯ6iܟ4)Y3sCQ? 0k߬~OCOg#/c/Wװwa>>r><72Y_7ȷOo_C#dz%gA[z|!?:eAAA!h쐭!ΑiP~aa~ 'W?pX15wCsDDDޛg1O9-J5*>.j<74?.fYXXIlK9.*6nl {/]py.,:@LN8A*%w% yg"/6шC\*NH*Mz쑼5y$3,幄'L Lݛ:v m2=:1qB!Mggfvˬen/kY- BTZ(*geWf͉9+̳ې7ᒶKW-X潬j9(xoʿܔĹdff-[n ڴ VE/(ۻCɾUUMfeI?m]Nmq#׹=TR+Gw- 6 U#pDy  :v{vg/jBFS[b[O>zG499?rCd&ˮ/~јѡ򗓿m|x31^VwwO| (hSЧc3-gAMA|Q cHRMz%u0`:o_FIDATxڔMkQ`B-ҍ .\s Bn] ".?6R\".BQ$&{''g=faN "ғ}_V|ߟpk$7K4}]4)i/=ѓwY]:SAok@7dtoz51L9hES."uÕ iVK Y)?mX,ܤzLIDrs.geZma_=͹EP=[,QT~D{LL#L4MI4? h}ytPIbV-^f̥IENDB`././@LongLink0000000000000000000000000000015100000000000011562 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXDatePicker16.pngswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXDatePicker160000644000175000017500000000624610406366204033562 0ustar drazzibdrazzibPNG  IHDRa pHYs   MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3gAMA|Q cHRMz%u0`:o_FIDATxڤkQd % u?@NUS[? R'AQŪJmuu1`t˛? Br9qѨp/wx/\ *[~E73sT|I,RtPU<Lz=Tv[8͢*1l ^gaq%,+_X["|V˼zSesJ% D"&Us\}D߽xqHTa@U6m['xʾ03°~ kƎafofմC ΍X CC!ǎ8f@by/ߖȾ9s=g|-$9r jdT,:gq('H?un;dR{0N6`<~;)9IENDB`././@LongLink0000000000000000000000000000015100000000000011562 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXFrame16-mono.pngswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXFrame16-mono0000644000175000017500000000026210732240035033532 0ustar drazzibdrazzibPNG  IHDR: pHYs  ~dIDAT!0'=+*?HIfpK%Y6.Y&>LZwwoVaR |G7q&~:{!" Ygc.gl/zƆIENDB`././@LongLink0000000000000000000000000000015000000000000011561 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXTreeTable16.pngswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXTreeTable16.0000644000175000017500000000620210406366204033464 0ustar drazzibdrazzibPNG  IHDRa pHYs   MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3gAMA|Q cHRMz%u0`:o_FIDATxڤjSA/HSp)Bƴ1%F -)b}?.\4hI w\&7)t0|3w[mofkM?~f$)ᣪnIBƽt{+/֐p8H7zI 6?ws9 ɪ̈̌[-Lش65VgXs*kutw[qSZze4c= g+֗}l28`>iVL -~(/ntoDI⍅gx| bD$w~Ksm17o%(Kxӹ3Lc[+&@R00sq`š8+Y'$ܕ X8IENDB`././@LongLink0000000000000000000000000000015100000000000011562 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXGraph16-mono.pngswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXGraph16-mono0000644000175000017500000000064510406366204033553 0ustar drazzibdrazzibPNG  IHDR7 pHYs  gAMA|Q cHRMz%u0`:o_FIDATx\?nSAF<&'J%@t4Ű$6@A٢&N> ?4gts-ʸeNr2nBgr3hP[ZkKuZpjn'"$g$Yf$Ye>>???@@@AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLLMMMNNNOOOPPPQQQRRRSSSTTTUUUVVVWWWXXXYYYZZZ[[[\\\]]]^^^___```aaabbbcccdddeeefffggghhhiiijjjkkklllmmmnnnooopppqqqrrrssstttuuuvvvwwwxxxyyyzzz{{{|||}}}~~~]}tRNSJ pHYs  ~VIDATc@H R&"D/B. ]t!4'0/_x2(`nDhYv(wNG-fIENDB`././@LongLink0000000000000000000000000000015000000000000011561 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXHyperlink32.pngswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXHyperlink32.0000644000175000017500000001153710406366204033567 0ustar drazzibdrazzibPNG  IHDR szz pHYs   MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3gAMA|Q cHRMz%u0`:o_F|IDATxڤ{pT޻w_y@@BHceѴJ;TQkթSjڎթ̴:>PDZ@*$$A%O6nv$T=3ߜ;w!iO&hJbWZ^<\tySĂUGL۾-- ~eع+ūMnUkYDMw|i~l{8K뙐? H"Dʠ`9&[5׭rw@x|5?`ĥ8v-@bh-!v~ @΢+r93 k~1}Y/qqJBv*² 'a{+ge1sshKBg"}s(3=6u s$ A*sb _qs3/`-;:ٖ"lAJ{tJX8I8< D (ieLB\xې!h8M<mP>sDKI9\ ًz#$;>qSM iX2fn}}`/Q@z_Sc@X#킳h ?HIJIMG>~d<̩6ڀqp=qm!iuQMXJA;Є8v6 $Y g6yr#n)GGA)Qvc'->w= }9B*5A$v63lޔ+I ݵlǑn>;Y^#AB/P)V9$~I-h@|Ryhl3Y9 ]C8^K 1Q-o2NK"5@0I&=^za#gi¤kOEQɃ莉_Zd 7]3v]g;C-{E1NiK 12I,OOR@Nv"]g !%)%JĘ2J8i~>r)E=Ͳ,4]{7wuMSq]wj(ض6GB}쮣pޕKɄbl۞ߓxnɄb>V> Ćp4p]y {Id(xWaX-X>t{54iƲ|=y<7}Vl~cK)L _5{ދ=lt `I)k4Bx?R=z'IENDB`././@LongLink0000000000000000000000000000015000000000000011561 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXErrorPane32.pngswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXErrorPane32.0000644000175000017500000000351210726321017033507 0ustar drazzibdrazzibPNG  IHDR DPLTE|JL"$BDDB>nl̒DNLĔ64 jl"$dbdܦb\$RPRT64z|rlz|dNLL64¼l"$jlBD .,tvl RPZ\24BDBD,.,:<rt 24ľbd$d^\ *,LNL T"$lnlܼrt^\NL ^\JDܖrttbaRTd^\ \\<64;<}|;<Զll DFD,*,.,vlrttZ\4܊̜~|tVT ^\|t\2,44"$.,,|vtL lVTJL:<vt64fd., &$ܚVT\BtRNS= pHYs  ~DIDAT8]y\ qPb)"+Uu$w5-,r3uKukcdu)KcI~~=sŃfs_^ORJ<{[upxywDrtbfFN= KgϟFՁ{dX˗?"5jo|{qEE᜘|aSrP'"EbmJڏVk|X5XhhsW)rVVVRR@!<;+ +=4M?MM=e ^5ͻ sn$,yiWeH c˚>Mh xO fo%"^) d00ŷsBYTh"SJdó[R>( F­ S1pX [@5BT* 6"9,f( ̝"Q&1)Y,r ǁ#SJ_p0qvm,̆F8Ųa`[F!)ǤՍq<.`Y~`AFH1hO w5.)"OQ$IޛO} ũ`$"4z@,0v,#`=NQ {dd,_ CpeyHgT`Zfls&A샂eaIcl񌒩jBCKZ9%g F Ļ:5F%qڊ)z'wf؆4K(7K>ii>Oy~xۭꮏwZ槵4  ffIENDB`././@LongLink0000000000000000000000000000015600000000000011567 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXCollapsiblePane16.pngswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXCollapsibleP0000644000175000017500000000623310406366204033745 0ustar drazzibdrazzibPNG  IHDRa pHYs   MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3gAMA|Q cHRMz%u0`:o_FIDATxڜ=kTA{wDָ` \ `!XBZ/2 6z3 wf~I9pfԽ7 V/6ɕZyILlQ`!@syk--"ae!@Eܢ~\Q4d?1h$IxbCD{v}(JjCH)st=ZopΕ!a?;L( ڝmZgJMQ3 aށs(N qE18s~,xr/{{|}G8ZL5ƘPi4cZw B,S'J)$9j5$)i%bs0 !'OK;iJ߾b^l61\ vG4@RJ?VIENDB`././@LongLink0000000000000000000000000000015100000000000011562 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXImagePanel16.pngswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXImagePanel160000644000175000017500000000653110406366204033546 0ustar drazzibdrazzibPNG  IHDRa pHYs   MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3gAMA|Q cHRMz%u0`:o_FvIDATxڤKhg\LSRhWEP6% M(6 VPTTЋ6mM(H{Uq#H HP9IN7Ec@Jf3 m ;aSxT'qL43* 56\)lJ9$!Q4l΂x UZWe0!k68h8o 3 |^IENDB`././@LongLink0000000000000000000000000000015000000000000011561 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXBusyLabel16.pngswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXBusyLabel16.0000644000175000017500000000206610725777325033521 0ustar drazzibdrazzibPNG  IHDR(-SPLTEȰ442220ļĚyxt[YW \[Y222EEDĘGFE111ONMRPMPNKQONZYVûŴ}|zihhgffiih|{yòƿƻþXtRNS@f pHYs  ~IDATc`F&f(`ec`d`   D%$edEE*jZ: z =F&&f@.-dJ N.`\E</P/+L˫5'8$4,fKDdTtLl.aqAvvº3p&0$'<~I F xIENDB`swingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXPanel32.png0000644000175000017500000000562110406366204033363 0ustar drazzibdrazzibPNG  IHDR szz pHYs   MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3gAMA|Q cHRMz%u0`:o_FIDATx1 B1D_4 vi- l,眴H51!09|SG׷mxW\k+T9|xig 4)>T#U_]U-EQqյ;{ZTr( v%@QSPlYѓC_`͍)=3U_"-a\G-Y/ i᠍s:9hO?IZH$_ws;IENDB`././@LongLink0000000000000000000000000000015700000000000011570 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXTitledPanel32-mono.pngswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXTitledPanel30000644000175000017500000000106610406366204033663 0ustar drazzibdrazzibPNG  IHDR s pHYs  gAMA|Q cHRMz%u0`:o_FIDATxڜMn0 FT.荺!z{WbE%Tc)rlD޶)µܴğ8FWq5dz Og8؃3 yvٰ1(lG6tb[;TibVl2dp0Hb(aK7BѮD zZ~ctuYy48-jL$awN_HG ZDO+Oaon"xCXpkGt?ģFe9FځlTLBmlbGJwCS %|!qa/VʜAN&:YsudĊ*M!#LRJ%ő644Ju!_8Gn7/ 1<39'ܯ,IENDB`././@LongLink0000000000000000000000000000016000000000000011562 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXTaskPaneContainer16.pngswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXTaskPaneCont0000644000175000017500000000714510406366204033731 0ustar drazzibdrazzibPNG  IHDR(-S pHYs   MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3gAMA|Q cHRMz%u0`:o_FPLTEJꄠSuMtRNSރYbIDATx\A1CB_7J.E3_۴R{𕨃APa0vWp9-6HXIם]=2L!%N)Wh!IENDB`././@LongLink0000000000000000000000000000015500000000000011566 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/DropShadowBorder16.pngswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/DropShadowBord0000644000175000017500000000223310730526372034013 0ustar drazzibdrazzibPNG  IHDR(-SPLTE  !!!"""###$$$%%%&&&'''((()))***+++,,,---...///000111222333444555666777888999:::;;;<<<===>>>???@@@AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLLMMMNNNOOOPPPQQQRRRSSSTTTUUUVVVWWWXXXYYYZZZ[[[\\\]]]^^^___```aaabbbcccdddeeefffggghhhiiijjjkkklllmmmnnnooopppqqqrrrssstttuuuvvvwwwxxxyyyzzz{{{|||}}}~~~]}tRNSJ pHYs  ~dIDATϡ EQA & DE OZIH`ap~Ai$ry &* m]T.v:׽OYIENDB`././@LongLink0000000000000000000000000000015700000000000011570 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXTitledPanel16-mono.pngswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXTitledPanel10000644000175000017500000000051610406366204033660 0ustar drazzibdrazzibPNG  IHDR7 pHYs  gAMA|Q cHRMz%u0`:o_FIDATxt90EHFPQPp!Z8 R% AP`'4fqO-(}(6#5+`XZR8G:&TH͑S>8Ԁ\7](y+ $ڛ9sǐ 8@2T>2@\C.JQO0tQOI17fߔ^S,oM IENDB`././@LongLink0000000000000000000000000000015100000000000011562 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXFrame32-mono.pngswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXFrame32-mono0000644000175000017500000000034210732240035033527 0ustar drazzibdrazzibPNG  IHDR V%( pHYs  ~IDAT8 A D-?ZJJ{92VrIL aC&@Ľ&*ـ3 U[LeF&~ 2͹ƋG&Vj.0Cqv;t?ڇ2w Y~mhvqBfx7IENDB`././@LongLink0000000000000000000000000000015100000000000011562 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXPanel16-mono.pngswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXPanel16-mono0000644000175000017500000000045210406366204033545 0ustar drazzibdrazzibPNG  IHDR7 pHYs  gAMA|Q cHRMz%u0`:o_FIDATxtA 1 E_ƀubgn+^A6.@K  U3 vj@rBc0?ʼ`@' hiG! 뭃!Iӕ߿^5dI"a-ZB'Md(\>Ejrml2N ,IENDB`././@LongLink0000000000000000000000000000015000000000000011561 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXBusyLabel32.pngswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXBusyLabel32.0000644000175000017500000000215510725777325033516 0ustar drazzibdrazzibPNG  IHDR DPLTEȢrqn\ZX000^]Zž222Ŗ887Ęę=<<ȹllk```kkjƳƺßhtRNS@f pHYs  ~IDAT8V0BM,,Q,c1!$p4k{g&2Y"}"m._8]po9XQ4 Jx2 DGB4sY"жw/[Qjy(3xFc}2FT$ ^mRB=pV\-hv8=&IENDB`swingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXLabel32.png0000644000175000017500000000147410726555047033357 0ustar drazzibdrazzibPNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@bb`@pЀ; 4w@ %)\͛HR2 XGFR2 XKF2 X'1S)?P$"2Nv̀GW/_<((c:5&| s ?Pt&|{W//Q 馷oU3`޿aŒ1,o߼M/a=H}xnpBbSϼ}t@Lfa8ۦ-;z y~ػ7ohd9Y`sA6 !Tu}jXy_X hK TW(vhzt2# H篝 ?~|?Ȟag`Xr>!Q j]n5\ W@Laal&A q)>Ԅ&K"jߟ (,E F'|$~߿{Wo5B A~f6B@ Ezd5Aۯ ۱? 珟բ9{g@gIȔe9T1'!5K@*h@pЀ; 4w@  F ;IENDB`././@LongLink0000000000000000000000000000015100000000000011562 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXPanel32-mono.pngswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXPanel32-mono0000644000175000017500000000102610406366204033541 0ustar drazzibdrazzibPNG  IHDR s pHYs  gAMA|Q cHRMz%u0`:o_FIDATxڜ=R1 ?m_9}\x*^ ?]Ol0ݬ̺SPH򆀮וUkE z [ZbA m-*kIɑYxgkո҅/ 2bHP|1aBvKLLɤd ,+k!e^t\I& b>w 9 Xћ`o>>???@@@AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLLMMMNNNOOOPPPQQQRRRSSSTTTUUUVVVWWWXXXYYYZZZ[[[\\\]]]^^^___```aaabbbcccdddeeefffggghhhiiijjjkkklllmmmnnnooopppqqqrrrssstttuuuvvvwwwxxxyyyzzz{{{|||}}}~~~]}tRNSJ pHYs  ~IDAT81 0=0\P0!]/T%OIX 1p ?PgeR . \$K#H2pn J#WX k}F0 DWG u. cu1M5Pmo|rŕ~|IENDB`swingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXButton32.png0000644000175000017500000000127410726043005033573 0ustar drazzibdrazzibPNG  IHDR szzgAMA7tEXtSoftwareAdobe ImageReadyqe<NIDATxb?@bb`@pЀ; 4 wi7@%-)v@l5o+@ ?4 @, 30! X t_>z̰iN8ӝA^N̞A ?{ @,oiϟ@CePԁ q޲m3: Ȇ~ƪ&A7fDP=@10@ ܻ"aN ۶nP 0/vtfضe{| jQ ! @l?#ޠQPepvgرy \;, 3եV 1cfa)/@rq`JB. . @?Rh7@|)ဟ? P1>@h4w@ h`$zAIENDB`././@LongLink0000000000000000000000000000015500000000000011566 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXErrorPane32-mono.pngswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXErrorPane32-0000644000175000017500000000353310726321017033511 0ustar drazzibdrazzibPNG  IHDR DPLTE  !!!"""###$$$%%%&&&'''((()))***+++,,,---...///000111222333444555666777888999:::;;;<<<===>>>???@@@AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLLMMMNNNOOOPPPQQQRRRSSSTTTUUUVVVWWWXXXYYYZZZ[[[\\\]]]^^^___```aaabbbcccdddeeefffggghhhiiijjjkkklllmmmnnnooopppqqqrrrssstttuuuvvvwwwxxxyyyzzz{{{|||}}}~~~]}tRNS pHYs  ~#IDAT8]_Hq|j2:6n7ہSi.֔a^tqA -E GHQFb{ ܃=DADP>\3˱gdw?{'ibY5/>3 YU6^ f ڒ1=ܿh!n%M7VV cnnZ̦r˲0d&y=e4-jim@XIڤ˧x<.')5Tz"5M;@gg?!˱H@AB,i[ZDA[ث[HG=DTEz Hz-M+ &ɲY/ڂ ᱉X"6OYF<#HO`8C_hj'>kW? =o\9 oA縁~ z^O;[D'JA^p<U㘟} y`Xx4Er%x,N7|p3 v$Ia)WW>шS]aݗKo؂.`덍<w0>RqfIoo >D4|ӏ)M̜ i*.h$ ԓEeq+\ HxB:$'P;~L`@@Ÿ==nR jsN}1JR^opm8zpJgwsο˻pVWg=QYYމy0C:o%IENDB`././@LongLink0000000000000000000000000000015100000000000011562 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXDatePicker32.pngswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXDatePicker320000644000175000017500000000743210406366204033556 0ustar drazzibdrazzibPNG  IHDR szz pHYs   MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3gAMA|Q cHRMz%u0`:o_F7IDATxڼ_L[u?PLY۲ &f58b4<,3K8QUfp2F/?S#it.> _d!)^m{i0Nr{=;{νH)1ˉFNDh %^J )] Dץ`_K@s뿘X8TF{;=D[{mmef_<fm% ~ FCEflV)%KKK9w1 p a ŷP[UJI8FJɩn^E3vXˇh40DQQOk$;QeuAl65/fc5K*DBGFF6-)t|1,bnWs !-Po|c4TWp'f5ֵ`%i:?ßa:>B3!}WV%"c΂YY<};uسH! \J@ +H!W -qv] Ku'hfdt@ S+mÉU@fVtb6nH)injdNЀ"?oi$7WVp yp -!#FFǹMԼPn?Wpxp!`pCgn.ɇ}_Gp8 >/u),\ kJB>_13>{k`onZp8̥DKzY~4 {@utrxbuKjNf?#Gۓ:\?f-"LF oSS3MͿsw;w ˞T5 P|GKJx)W.hxek`-8 WJ@}.Mhri㘯Al!) eZǤJJӀn?UR7zF[)XQ&-ETPg(v74X~~~<';F0dԇ2^zZoa9tv9dvz2O5`8}63nbp5)J 莁H({3BJ61Z|.L P2lLls،&Cx TFI``)kAdt.bv*Фrbߒ* J\$+''|| ;+nAFbg3H/-/X!GLm^Ē= Z}lӔF.Yr -BHw~UB3eG %KE.YqY32LEE඲+`>N>͍ NH-O#?4+-RɵɀCVZec Z0TPg9Eiٌ p-qoI|(IENDB`././@LongLink0000000000000000000000000000015100000000000011562 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXImagePanel32.pngswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXImagePanel320000644000175000017500000001044510406366204033543 0ustar drazzibdrazzibPNG  IHDR szz pHYs   MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3gAMA|Q cHRMz%u0`:o_FBIDATxėL?p :+DKEhv~t-qm۲:%f]fْMR34.6n:֚vt(8-L쏋jI''9~ysuj]>^]۽oGI1 hm ܶcP綷$ D ڸ~&f̯&cC)p@cbj#xeu,*M˄& ֣,^Rɂ҅,(]vⴶ%n Lzڛ m^n=ML)H+XAJG% VL8$ c*?n,amBK3Ѡ -4Bv# qz2ξ^?) ffWSOK H!%+zD \wQdoz bG;B;y? x)ĄwoPÃth9Xb-*֋QnH7NNFEY/),W{Q{ m,8w>v"$LHQ3v#Ei#i'sļn{`W'] ss?穟!l ó9ȱ};8jH}kM|Y9uz?\BCh'x!, -/!i8_1=||m%}v&ƍaF^t\FXIlvKbJ4bTW bC3D n'ho9Sx0"ƀ`Thhldoro˖ScA-ʩ?^;}ޛqaF\; ba8 M?D(2H?ߍ+Ȫ`b.׀Z!(1E([NeI)-?Dy^%)G[y$?o`oq>ғI!* Nx#qc\q;g{~d\ӝ\MQV =A?YtIo\#3'KJƨPCӔ=J,B~yw8o nfȀ)FIRY]7}֌L`}#}vQgr$r4Cx|71 -$8f9+d4l_&Hk,hhZ7u%dYXI3;̀X\ 674jmI@6XE 5eIENDB`swingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXButton16.png0000644000175000017500000000076210726043005033576 0ustar drazzibdrazzibPNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% (D=u. J_8tϜ X_76WĠ>q:Ce~&ǏfP/@ˏ` v1x8;2hh3ܸqWPTb TsE60Ճ߿>}  ar ze ^ (ׯ_ ~O8A( vڕK`6aA V-cxB=P/@1#3ÿl]0gJ'Ar6q0G3^,@iye3JȊƕ3z˗/'L0'ǀ? F |dOHin 3@i?HIENDB`././@LongLink0000000000000000000000000000015500000000000011566 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/DropShadowBorder32.pngswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/DropShadowBord0000644000175000017500000000225510730526372034017 0ustar drazzibdrazzibPNG  IHDR DPLTE  !!!"""###$$$%%%&&&'''((()))***+++,,,---...///000111222333444555666777888999:::;;;<<<===>>>???@@@AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLLMMMNNNOOOPPPQQQRRRSSSTTTUUUVVVWWWXXXYYYZZZ[[[\\\]]]^^^___```aaabbbcccdddeeefffggghhhiiijjjkkklllmmmnnnooopppqqqrrrssstttuuuvvvwwwxxxyyyzzz{{{|||}}}~~~]}tRNSJ pHYs  ~vIDAT8ӡ EQ>}A QQFG2U69IP\ô3#1&],H# H΅eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3gAMA|Q cHRMz%u0`:o_FIDATx-s@c*RG]!* H$ HZGe;Cg<\pKDE΁˹- 䃐 v&=#"Ti+DFD0@0@D; `U"r6B|E 0u~M>|c,(҆VI oA.shmkm(A*kښ7 arZL+ǞoFJ' @9$LNBϡ8@ؖ u 7:nIqi98m$8(3VtJJ̻:귝L׊DҊhO=' IYdIR|J.qz+oi-B"AhxId-kuuS/oW| Pv.H%e?bxr(^IENDB`././@LongLink0000000000000000000000000000015500000000000011566 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXErrorPane16-mono.pngswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXErrorPane16-0000644000175000017500000000252310726321017033511 0ustar drazzibdrazzibPNG  IHDR(-SPLTE  !!!"""###$$$%%%&&&'''((()))***+++,,,---...///000111222333444555666777888999:::;;;<<<===>>>???@@@AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLLMMMNNNOOOPPPQQQRRRSSSTTTUUUVVVWWWXXXYYYZZZ[[[\\\]]]^^^___```aaabbbcccdddeeefffggghhhiiijjjkkklllmmmnnnooopppqqqrrrssstttuuuvvvwwwxxxyyyzzz{{{|||}}}~~~]}tRNS pHYs  ~IDATé϶Ϸto‰{wbY\ixoccms̐QFO[Okw^e[OGIZRUTKEA=hIHKEHE??;8QHACAHG<:5/JX9w/%3ʆ86S:1219Q1%!fu4++--+*'$L}@,('&$ 'Xț\6(%'?{х[~QIENDB`././@LongLink0000000000000000000000000000015500000000000011566 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXTreeTable16-mono.pngswingx-1.6.2-sources/swingx-beaninfo/src/main/resources/org/jdesktop/swingx/resources/JXTreeTable16-0000644000175000017500000000056510406366204033471 0ustar drazzibdrazzibPNG  IHDR7 pHYs  gAMA|Q cHRMz%u0`:o_FIDATxd1JCAȫ$!HxDBԹ52'"GM"\6%w#KvRx`f5ͷiU!mˬ%ak;trμV t\ */ public class JXGraphBeanInfo extends BeanInfoSupport { public JXGraphBeanInfo() { super(JXGraph.class); } @Override protected void initialize() { setCategory("Graph View", "majorX", "majorY", "minorCountX", "minorCountY", "origin", "view"); setCategory("Graph Appearance", "axisColor", "axisPainted", "backgroundPainted", "gridPainted", "majorGridColor", "minorGridColor", "textPainted"); setCategory("Graph Input", "inputEnabled"); setPropertyEditor(Point2DPropertyEditor.class, "origin"); setPropertyEditor(Rectangle2DPropertyEditor.class, "view"); setDisplayName("vertical lines spacing", "majorX"); setDisplayName("horizontal lines spacing", "majorY"); setDisplayName("sub-vertical lines count", "minorCountX"); setDisplayName("sub-horizontal lines count", "minorCountY"); setDisplayName("major grid lines color", "majorGridColor"); setDisplayName("minor grid lines color", "minorGridColor"); } } ././@LongLink0000000000000000000000000000015100000000000011562 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/JXFormattedTextFieldBeanInfo.javaswingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/JXFormattedTextFieldBeanInfo.0000644000175000017500000000026711323133151033500 0ustar drazzibdrazzibpackage org.jdesktop.swingx; public class JXFormattedTextFieldBeanInfo extends JXPromptBeanInfo { public JXFormattedTextFieldBeanInfo() { super(JXFormattedTextField.class); } } swingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/editors/0000755000175000017500000000000011534506031027546 5ustar drazzibdrazzib././@LongLink0000000000000000000000000000016300000000000011565 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/editors/EnumerationValuePropertyEditor.javaswingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/editors/EnumerationValuePrope0000644000175000017500000000502711245712667034003 0ustar drazzibdrazzib/* * EnumerationValuePropertyEditor.java * * Created on March 28, 2006, 3:49 PM * * To change this template, choose Tools | Template Manager * and open the template in the editor. */ package org.jdesktop.swingx.editors; import java.beans.PropertyEditorSupport; import java.util.HashMap; import java.util.Map; import org.jdesktop.swingx.EnumerationValue; /** * * @author Richard */ public abstract class EnumerationValuePropertyEditor extends PropertyEditorSupport { private String[] tags; private Map values = new HashMap(); private EnumerationValue defaultValue; /** Creates a new instance of EnumerationValuePropertyEditor */ public EnumerationValuePropertyEditor(EnumerationValue defaultEnum, EnumerationValue... enums) { this.defaultValue = defaultEnum; for (EnumerationValue v : enums) { values.put(v.getValue(), v); } tags = new String[enums.length]; int index = 0; for (EnumerationValue v : enums) { tags[index++] = v.getName(); } } @Override public String getJavaInitializationString() { EnumerationValue value = values.get(getValue()); if (value == null) { return defaultValue == null ? "null" : defaultValue.getJavaInitializationString(); } else { return value.getJavaInitializationString(); } } @Override public String[] getTags() { return tags; } @Override public String getAsText() { EnumerationValue value = values.get(getValue()); if (value == null) { return defaultValue == null ? null : defaultValue.getName(); } else { return value.getName(); } } @Override public void setAsText(String text) throws IllegalArgumentException { EnumerationValue v = getValueByName(text); if (v == null) { //hmmmm, try again but trim text if (text != null) { v = getValueByName(text.trim()); } } if (v == null) { v = defaultValue; } setValue(v == null ? null : v.getValue()); } private EnumerationValue getValueByName(String name) { for (EnumerationValue v : values.values()) { String n = v == null ? null : v.getName(); if (n == name || (n != null && n.equalsIgnoreCase(name))) { return v; } } return null; } } swingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/editors/ImageEditor.java0000644000175000017500000000354011245712667032621 0ustar drazzibdrazzib/* * ImageEditor.java * * Created on July 21, 2006, 1:35 AM * * To change this template, choose Tools | Template Manager * and open the template in the editor. */ package org.jdesktop.swingx.editors; import java.awt.Component; import java.awt.Graphics; import java.awt.Image; import java.awt.Rectangle; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.beans.PropertyEditorSupport; /** * * @author joshy */ public class ImageEditor extends PropertyEditorSupport { Image image = null; ImagePicker picker = new ImagePicker(); /** Creates a new instance of ImageEditor */ public ImageEditor() { picker.imageView.addPropertyChangeListener("image",new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent propertyChangeEvent) { image = picker.imageView.getImage(); firePropertyChange(); } }); } @Override public Image getValue() { return image; } @Override public void setValue(Object object) { image = (Image)object; super.setValue(image); picker.imageView.setImage(image); } @Override public void setAsText(String text) throws IllegalArgumentException { // do nothing right now } @Override public String getAsText() { return "an Image"; } @Override public void paintValue(Graphics graphics, Rectangle r) { graphics.drawImage(image, (int)r.getX(), (int)r.getY(), (int)r.getWidth(), (int)r.getHeight(), null); } @Override public boolean isPaintable() { return true; } @Override public boolean supportsCustomEditor() { return true; } @Override public Component getCustomEditor() { return picker; } } ././@LongLink0000000000000000000000000000015100000000000011562 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/editors/InsetsPropertyEditor.javaswingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/editors/InsetsPropertyEditor.0000644000175000017500000000256411245712667033754 0ustar drazzibdrazzib/* * InsetsPropertyEditor.java * * Created on July 20, 2006, 12:16 PM * * To change this template, choose Tools | Template Manager * and open the template in the editor. */ package org.jdesktop.swingx.editors; import java.awt.Insets; import java.beans.PropertyEditorSupport; /** * * @author joshy */ public class InsetsPropertyEditor extends PropertyEditorSupport { /** Creates a new instance of InsetsPropertyEditor */ public InsetsPropertyEditor() { } @Override public Insets getValue() { return (Insets)super.getValue(); } @Override public void setAsText(String text) { String originalParam = text; try { Insets val = (Insets)PropertyEditorUtil.createValueFromString( text, 4, Insets.class, int.class); setValue(val); } catch (Exception e) { throw new IllegalArgumentException("The input value " + originalParam + " is not formatted correctly. Please " + "try something of the form [top,left,bottom,right] or [top , left , bottom , right] or [top left bottom right]", e); } } @Override public String getAsText() { Insets val = getValue(); return val == null ? "[]" : "[" + val.top + ", " + val.left + ", " + val.bottom + ", " + val.right + "]"; } } ././@LongLink0000000000000000000000000000015000000000000011561 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/editors/ShapePropertyEditor.javaswingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/editors/ShapePropertyEditor.j0000644000175000017500000000302611245712667033713 0ustar drazzibdrazzib/* * ShapePropertyEditor.java * * Created on August 23, 2006, 10:17 PM * * To change this template, choose Tools | Template Manager * and open the template in the editor. */ package org.jdesktop.swingx.editors; import java.awt.Component; import java.awt.Rectangle; import java.awt.Shape; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.geom.Ellipse2D; import java.beans.PropertyEditorSupport; /** * * @author joshy */ public class ShapePropertyEditor extends PropertyEditorSupport { ShapeChooser chooser; /** Creates a new instance of ShapePropertyEditor */ public ShapePropertyEditor() { chooser = new ShapeChooser(); chooser.shapeCombo.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent actionEvent) { if(chooser.shapeCombo.getSelectedItem().equals("Square")) { setValue(new Rectangle(0,0,100,100)); } else { setValue(new Ellipse2D.Double(0,0,100,100)); } } }); } @Override public Shape getValue() { return (Shape)super.getValue(); } @Override public void setValue(Object value) { super.setValue(value); } @Override public boolean isPaintable() { return true; } @Override public boolean supportsCustomEditor() { return true; } @Override public Component getCustomEditor() { return chooser; } } ././@LongLink0000000000000000000000000000015300000000000011564 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/editors/Painter2PropertyEditor.javaswingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/editors/Painter2PropertyEdito0000644000175000017500000000650711245712667033734 0ustar drazzibdrazzib/* * Painter2PropertyEditor.java * * Created on August 2, 2006, 8:27 AM * * To change this template, choose Tools | Template Manager * and open the template in the editor. */ package org.jdesktop.swingx.editors; import java.awt.Color; import java.awt.Component; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.beans.PropertyEditorSupport; import java.io.File; import java.io.PrintWriter; import java.io.StringWriter; import javax.swing.JFileChooser; import javax.swing.JOptionPane; import org.jdesktop.swingx.URLPainter; import org.jdesktop.swingx.painter.MattePainter; import org.jdesktop.swingx.painter.Painter; /** * * @author joshy */ public class Painter2PropertyEditor extends PropertyEditorSupport { Painter painter = new MattePainter(Color.BLUE); JFileChooser picker; void log(String str) { //JOptionPane.showMessageDialog(picker,str); System.out.println(str); } /** Creates a new instance of Painter2PropertyEditor */ public Painter2PropertyEditor() { picker = new JFileChooser(); picker.setApproveButtonText("Load Painter"); picker.setMultiSelectionEnabled(false); picker.setSelectedFile(new File("/Users/joshy/projects/current/AB5k/src/java/ab5k/desklet/")); picker.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent actionEvent) { try { File file = picker.getSelectedFile(); painter = new URLPainter(file); //painter = PainterUtil.loadPainter(file); firePropertyChange(); log("loaded the painter: " + painter); } catch (Throwable ex) { //System.out.println("error loading the painter: " + ex.getMessage()); //ex.printStackTrace(); StringWriter wrt = new StringWriter(); ex.printStackTrace(new PrintWriter(wrt)); JOptionPane.showMessageDialog(picker,ex.getMessage() + " " + wrt.toString());// + painter.getClass().getName()); } } }); } @Override public Painter getValue() { return painter; } @Override public void setValue(Object object) { log("setting: " + object); painter = (Painter)object; super.setValue(object); } @Override public void setAsText(String text) throws IllegalArgumentException { // u.p("setting as text: " + text); log("setting as text: " + text); } @Override public String getAsText() { if(painter instanceof URLPainter) { return ((URLPainter)painter).getURL().toString(); } if(painter != null) { return painter.getClass().getName(); } else { return "null!!"; } } @Override public String getJavaInitializationString() { URLPainter painter = (URLPainter)getValue(); return painter == null ? "null" : "new org.jdesktop.swingx.painter.FilePainter(\""+ painter.getURL().toString()+"\")"; } @Override public boolean supportsCustomEditor() { return true; } @Override public Component getCustomEditor() { return picker; } } swingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/editors/ShapeChooser.java0000644000175000017500000000247310576107431033010 0ustar drazzibdrazzib/* * ShapeChooser.java * * Created on August 23, 2006, 10:19 PM */ package org.jdesktop.swingx.editors; /** * * @author joshy */ public class ShapeChooser extends javax.swing.JPanel { /** Creates new form ShapeChooser */ public ShapeChooser() { initComponents(); } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ // //GEN-BEGIN:initComponents private void initComponents() { java.awt.GridBagConstraints gridBagConstraints; shapeCombo = new javax.swing.JComboBox(); setLayout(new java.awt.GridBagLayout()); shapeCombo.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Square", "Circle" })); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.weightx = 10.0; gridBagConstraints.weighty = 10.0; add(shapeCombo, gridBagConstraints); }// //GEN-END:initComponents // Variables declaration - do not modify//GEN-BEGIN:variables public javax.swing.JComboBox shapeCombo; // End of variables declaration//GEN-END:variables } ././@LongLink0000000000000000000000000000014700000000000011567 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/editors/EnumPropertyEditor.javaswingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/editors/EnumPropertyEditor.ja0000644000175000017500000000270611245712667033724 0ustar drazzibdrazzib/* * EnumPropertyEditor.java * * Created on August 18, 2006, 10:43 AM * * To change this template, choose Tools | Template Manager * and open the template in the editor. */ package org.jdesktop.swingx.editors; import java.beans.PropertyEditorSupport; import java.util.ArrayList; import java.util.EnumSet; import java.util.List; /** * * @author joshy */ public class EnumPropertyEditor> extends PropertyEditorSupport { private Class en; private EnumSet set; /** Creates a new instance of EnumPropertyEditor */ public EnumPropertyEditor(Class en) { this.en = en; set = EnumSet.allOf(en); } @Override public String[] getTags() { List strs = new ArrayList(); for(E e : set) { strs.add(e.toString()); } return strs.toArray(new String[0]); } @Override public String getAsText() { return getValue().toString(); } @Override public void setAsText(String text) throws IllegalArgumentException { // u.p("setting as text: " + text); Enum e = Enum.valueOf(en, text); setValue(e); } @Override public String getJavaInitializationString() { //org.jdesktop.stuff.Stuff.InsideEnum.VALUE; // the '$' must be converted to '.' to deal with public inner classes return new String(en.getName()+"."+getAsText()).replace("$","."); } } ././@LongLink0000000000000000000000000000015600000000000011567 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/editors/Rectangle2DPropertyEditor.javaswingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/editors/Rectangle2DPropertyEd0000644000175000017500000000647511245712667033632 0ustar drazzibdrazzib/* * $Id: Rectangle2DPropertyEditor.java 3475 2009-08-28 08:30:47Z kleopatra $ * * Copyright 2004 Sun Microsystems, Inc., 4150 Network Circle, * Santa Clara, California 95054, U.S.A. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ package org.jdesktop.swingx.editors; import java.awt.geom.Rectangle2D; import java.beans.PropertyEditorSupport; /** * * @author rbair */ public class Rectangle2DPropertyEditor extends PropertyEditorSupport { /** Creates a new instance of Rectangle2DPropertyEditor */ public Rectangle2DPropertyEditor() { } @Override public Rectangle2D getValue() { return (Rectangle2D.Double)super.getValue(); } @Override public String getJavaInitializationString() { Rectangle2D rect = getValue(); return rect == null ? "null" : "new java.awt.geom.Rectangle2D.Double(" + rect.getX() + ", " + rect.getY() + ", " + rect.getWidth() + ", " + rect.getHeight() + ")"; } @Override public void setAsText(String text) throws IllegalArgumentException { String originalParam = text; try { Rectangle2D val = (Rectangle2D)PropertyEditorUtil.createValueFromString( text, 4, Rectangle2D.Double.class, double.class); setValue(val); } catch (Exception e) { throw new IllegalArgumentException("The input value " + originalParam + " is not formatted correctly. Please " + "try something of the form [x,y,w,h] or [x , y , w , h] or [x y w h]", e); } } @Override public String getAsText() { Rectangle2D rect = getValue(); return rect == null ? "[]" : "[" + rect.getX() + ", " + rect.getY() + ", " + rect.getWidth() + ", " + rect.getHeight() + "]"; } public static void main(String... args) { test("[1.5,1.2,10,35]"); test("1.5,1.2,10,35]"); test("[1.5,1.2,10,35"); test("[ 1.5 , 1.2 ,10,35]"); test(" 1.5 , 1.2 ,10,35]"); test("[ 1.5 , 1.2,10,35"); test("1.5,1.2,10,35"); test(" 1.5 , 1.2 10 35"); test("1.5 1.2, 10 35"); test(""); test("null"); test("[]"); test("[ ]"); test("[1.5 1.2 10 35]"); } private static void test(String input) { System.out.print("Input '" + input + "'"); try { Rectangle2DPropertyEditor ed = new Rectangle2DPropertyEditor(); ed.setAsText(input); Rectangle2D rect = ed.getValue(); System.out.println(" succeeded: " + rect); } catch (Exception e) { System.out.println(" failed: " + e.getMessage()); } } } ././@LongLink0000000000000000000000000000015000000000000011561 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/editors/PaintPropertyEditor.javaswingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/editors/PaintPropertyEditor.j0000644000175000017500000001202211245712667033722 0ustar drazzibdrazzib/* * PainterPropertyEditor.java * * Created on March 21, 2006, 11:26 AM * * To change this template, choose Tools | Template Manager * and open the template in the editor. */ package org.jdesktop.swingx.editors; import java.awt.Color; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Paint; import java.awt.Rectangle; import java.beans.PropertyEditorSupport; import java.util.HashMap; import java.util.Map; /** * Two parts to this property editor. The first part is a simple dropdown. * The second part is a complicated UI for constructing multiple "layers" of * various different Painters, including gradient paints. * * @author Richard */ public class PaintPropertyEditor extends PropertyEditorSupport { private static Map DEFAULT_PAINTS = new HashMap(); static { //add the default paints DEFAULT_PAINTS.put(Color.BLACK, "Black"); DEFAULT_PAINTS.put(Color.BLUE, "Blue"); DEFAULT_PAINTS.put(Color.CYAN, "Cyan"); DEFAULT_PAINTS.put(Color.DARK_GRAY, "Dark Gray"); DEFAULT_PAINTS.put(Color.GRAY, "Gray"); DEFAULT_PAINTS.put(Color.GREEN, "Green"); DEFAULT_PAINTS.put(Color.LIGHT_GRAY, "Light Gray"); DEFAULT_PAINTS.put(Color.MAGENTA, "Magenta"); DEFAULT_PAINTS.put(Color.ORANGE, "Orange"); DEFAULT_PAINTS.put(Color.PINK, "Pink"); DEFAULT_PAINTS.put(Color.RED, "Red"); DEFAULT_PAINTS.put(Color.WHITE, "White"); DEFAULT_PAINTS.put(Color.YELLOW, "Yellow"); DEFAULT_PAINTS.put(new Color(1f, 1f, 1f, 0f), "Transparent"); // DEFAULT_PAINTS.put( // BasicGradientPainter.WHITE_TO_CONTROL_HORZONTAL, "White->Control (horizontal)"); // DEFAULT_PAINTS.put( // BasicGradientPainter.WHITE_TO_CONTROL_VERTICAL, "White->Control (vertical)"); /* josh: this should be replaced with matte painters DEFAULT_PAINTS.put( BasicGradientPainter.AERITH, "Aerith"); DEFAULT_PAINTS.put( BasicGradientPainter.BLUE_EXPERIENCE, "Blue Experience"); DEFAULT_PAINTS.put( BasicGradientPainter.GRAY, "Gray Gradient"); DEFAULT_PAINTS.put( BasicGradientPainter.MAC_OSX, "Mac OSX"); DEFAULT_PAINTS.put( BasicGradientPainter.MAC_OSX_SELECTED, "Max OSX Selected"); DEFAULT_PAINTS.put( BasicGradientPainter.NIGHT_GRAY, "Night Gray"); DEFAULT_PAINTS.put( BasicGradientPainter.NIGHT_GRAY_LIGHT, "Night Gray Light"); DEFAULT_PAINTS.put( BasicGradientPainter.RED_XP, "Red XP"); DEFAULT_PAINTS.put( LinearGradientPainter.BLACK_STAR, "Black Star"); DEFAULT_PAINTS.put( LinearGradientPainter.ORANGE_DELIGHT, "Orange Delight");*/ } /** Creates a new instance of PainterPropertyEditor */ public PaintPropertyEditor() { } @Override public String[] getTags() { String[] names = DEFAULT_PAINTS.values().toArray(new String[0]); String[] results = new String[names.length+1]; results[0] = ""; System.arraycopy(names, 0, results, 1, names.length); return results; } @Override public Paint getValue() { return (Paint)super.getValue(); } @Override public String getJavaInitializationString() { Paint paint = getValue(); //TODO!!! return paint == null ? "null" : "org.jdesktop.swingx.painter.gradient.LinearGradientPainter.BLACK_STAR"; } @Override public void setAsText(String text) throws IllegalArgumentException { if (text == null || text.trim().equals("") || text.trim().equalsIgnoreCase("none") || text.trim().equalsIgnoreCase("") || text.trim().equalsIgnoreCase("[none]")) { setValue(null); return; } if (text.trim().equalsIgnoreCase("")) { //do nothing } for (Map.Entry entry : DEFAULT_PAINTS.entrySet()) { if (entry.getValue().equalsIgnoreCase(text)) { setValue(entry.getKey()); return; } } throw new IllegalArgumentException("The input value " + text + " does" + " not match one of the names of the standard paints"); } @Override public String getAsText() { Paint p = getValue(); if (p == null) { return null; } else if (DEFAULT_PAINTS.containsKey(p)) { return DEFAULT_PAINTS.get(p); } else { return ""; } } @Override public void paintValue(Graphics gfx, Rectangle box) { Paint p = getValue(); if (p == null) { //do nothing -- in the future draw the checkerboard or something } else { ((Graphics2D)gfx).setPaint(p); gfx.fillRect(box.x, box.y, box.width, box.height); } } @Override public boolean isPaintable() { return true; } } swingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/editors/ImagePicker.java0000644000175000017500000000335710576057422032613 0ustar drazzibdrazzib/* * ImagePicker.java * * Created on July 21, 2006, 1:42 AM */ package org.jdesktop.swingx.editors; /** * * @author joshy */ public class ImagePicker extends javax.swing.JPanel { /** Creates new form ImagePicker */ public ImagePicker() { initComponents(); } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ // //GEN-BEGIN:initComponents private void initComponents() { java.awt.GridBagConstraints gridBagConstraints; imageView = new org.jdesktop.swingx.JXImageView(); jButton1 = new javax.swing.JButton(); setLayout(new java.awt.GridBagLayout()); imageView.setLayout(new java.awt.GridBagLayout()); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.weightx = 10.0; gridBagConstraints.weighty = 10.0; add(imageView, gridBagConstraints); jButton1.setAction(imageView.getOpenAction()); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTHWEST; add(jButton1, gridBagConstraints); }// //GEN-END:initComponents // Variables declaration - do not modify//GEN-BEGIN:variables public org.jdesktop.swingx.JXImageView imageView; private javax.swing.JButton jButton1; // End of variables declaration//GEN-END:variables } swingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/editors/ImageURLEditor.java0000644000175000017500000000361711245712667033211 0ustar drazzibdrazzibpackage org.jdesktop.swingx.editors; import java.awt.Component; import java.awt.Graphics; import java.awt.Image; import java.awt.Rectangle; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.beans.PropertyEditorSupport; /** * * @author joshy */ public class ImageURLEditor extends PropertyEditorSupport { Image image = null; String imageURL = null; ImagePicker picker = new ImagePicker(); /** Creates a new instance of ImageEditor */ public ImageURLEditor() { picker.imageView.addPropertyChangeListener("image",new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent propertyChangeEvent) { image = picker.imageView.getImage(); if(picker.imageView.getImageURL() != null) { imageURL = picker.imageView.getImageURL().toString(); } firePropertyChange(); } }); } @Override public String getValue() { return imageURL; } @Override public void setValue(Object object) { imageURL = (String)object; super.setValue(imageURL); picker.imageView.setImage(image); } @Override public void setAsText(String text) throws IllegalArgumentException { // do nothing right now } @Override public String getAsText() { return imageURL; } @Override public void paintValue(Graphics graphics, Rectangle r) { //graphics.drawImage(image, (int)r.getX(), (int)r.getY(), // (int)r.getWidth(), (int)r.getHeight(), null); } @Override public boolean isPaintable() { return false; } @Override public boolean supportsCustomEditor() { return true; } @Override public Component getCustomEditor() { return picker; } } swingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/editors/PaintPicker.java0000644000175000017500000001632611215256671032642 0ustar drazzibdrazzib/* * PaintPicker.java * * Created on July 19, 2006, 7:13 PM */ package org.jdesktop.swingx.editors; import java.awt.Color; import java.awt.Component; import java.awt.LinearGradientPaint; import java.awt.MultipleGradientPaint; import java.awt.Paint; import java.awt.Rectangle; import java.awt.geom.Point2D; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import javax.swing.JComponent; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import org.jdesktop.swingx.JXGradientChooser; import org.jdesktop.swingx.color.ColorUtil; import org.jdesktop.swingx.color.EyeDropperColorChooserPanel; /** * * @author joshy */ public class PaintPicker extends javax.swing.JPanel { Component lastPickerUsed = null; Paint selectedPaint = Color.PINK; JXGradientChooser gradientPicker; /** Creates new form PaintPicker */ public PaintPicker() { initComponents(); // set up the color picker lastPickerUsed = colorPicker; colorPicker.addChooserPanel(new EyeDropperColorChooserPanel()); ColorListener colorListener = new ColorListener(); colorPicker.getSelectionModel().addChangeListener(colorListener); alphaSlider.addChangeListener(colorListener); // set up the gradient picker gradientPicker = new JXGradientChooser(); tabbedPane.addTab("Gradient",gradientPicker); gradientPicker.addPropertyChangeListener("gradient",new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent propertyChangeEvent) { lastPickerUsed = gradientPicker; setPaint(gradientPicker.getGradient()); } }); // update when the tabs change tabbedPane.getModel().addChangeListener(new ChangeListener() { public void stateChanged(ChangeEvent changeEvent) { lastPickerUsed = tabbedPane.getSelectedComponent(); Paint old = selectedPaint; if(lastPickerUsed == colorPickerParent) { selectedPaint = colorPicker.getSelectionModel().getSelectedColor(); } if(lastPickerUsed == gradientPicker) { selectedPaint = gradientPicker.getGradient(); } firePropertyChange("paint",old,selectedPaint); } }); } public Paint getPaint() { return selectedPaint; } public void addPicker(JComponent comp, String title) { tabbedPane.addTab(title,comp); } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ // //GEN-BEGIN:initComponents private void initComponents() { java.awt.GridBagConstraints gridBagConstraints; tabbedPane = new javax.swing.JTabbedPane(); colorPickerParent = new javax.swing.JPanel(); colorPicker = new javax.swing.JColorChooser(); jLabel1 = new javax.swing.JLabel(); alphaSlider = new javax.swing.JSlider(); setLayout(new java.awt.GridBagLayout()); colorPickerParent.setLayout(new java.awt.GridBagLayout()); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridwidth = 2; gridBagConstraints.weightx = 10.0; gridBagConstraints.weighty = 10.0; colorPickerParent.add(colorPicker, gridBagConstraints); jLabel1.setText("Alpha:"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; colorPickerParent.add(jLabel1, gridBagConstraints); alphaSlider.setMaximum(255); alphaSlider.setValue(255); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 1; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; colorPickerParent.add(alphaSlider, gridBagConstraints); tabbedPane.addTab("Color", colorPickerParent); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.weightx = 10.0; gridBagConstraints.weighty = 10.0; add(tabbedPane, gridBagConstraints); }// //GEN-END:initComponents public void setPaint(Paint paint) { if(paint == selectedPaint) { return; } Paint old = selectedPaint; selectedPaint = paint; if(paint instanceof Color) { tabbedPane.setSelectedComponent(colorPickerParent); colorPicker.setColor((Color)paint); alphaSlider.setValue(((Color)paint).getAlpha()); } if(paint instanceof MultipleGradientPaint) { tabbedPane.setSelectedComponent(gradientPicker); gradientPicker.setGradient((MultipleGradientPaint)paint); } firePropertyChange("paint", old, selectedPaint); } // return a paint suitable for display in a property sheet preview Paint getDisplayPaint(Rectangle box) { if(getPaint() instanceof MultipleGradientPaint) { return getFlatGradient(gradientPicker, box.getWidth()); } return getPaint(); } /** * Creates a flat version of the current gradient. This is a linear gradient * from 0.0 to length,0. This gradient is suitable for drawing previews of * the real gradient. * * @param length * @return a gradient Paint with values between 0.0 and length */ private MultipleGradientPaint getFlatGradient(JXGradientChooser chooser, double length) { MultipleGradientPaint gp = chooser.getGradient(); // set up the data for the gradient float[] fractions = gp.getFractions(); Color[] colors = gp.getColors(); // fill in the gradient Point2D start = new Point2D.Float(0, 0); Point2D end = new Point2D.Float((float) length, 0); MultipleGradientPaint paint = new LinearGradientPaint( (float) start.getX(), (float) start.getY(), (float) end.getX(), (float) end.getY(), fractions, colors); return paint; } // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JSlider alphaSlider; public javax.swing.JColorChooser colorPicker; private javax.swing.JPanel colorPickerParent; private javax.swing.JLabel jLabel1; private javax.swing.JTabbedPane tabbedPane; // End of variables declaration//GEN-END:variables private class ColorListener implements ChangeListener { public void stateChanged(ChangeEvent e) { lastPickerUsed = colorPicker; Paint old = selectedPaint; selectedPaint = ColorUtil.setAlpha(colorPicker.getSelectionModel().getSelectedColor(), alphaSlider.getValue()); firePropertyChange("paint", old, selectedPaint); } } } ././@LongLink0000000000000000000000000000015000000000000011561 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/editors/PointPropertyEditor.javaswingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/editors/PointPropertyEditor.j0000644000175000017500000000432411245712667033746 0ustar drazzibdrazzib/* * $Id: PointPropertyEditor.java 3475 2009-08-28 08:30:47Z kleopatra $ * * Copyright 2004 Sun Microsystems, Inc., 4150 Network Circle, * Santa Clara, California 95054, U.S.A. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ package org.jdesktop.swingx.editors; import java.awt.Point; import java.beans.PropertyEditorSupport; /** * * @author rbair */ public class PointPropertyEditor extends PropertyEditorSupport { /** Creates a new instance of Point2DPropertyEditor */ public PointPropertyEditor() { } @Override public Point getValue() { return (Point)super.getValue(); } @Override public String getJavaInitializationString() { Point point = getValue(); return point == null ? "null" : "new java.awt.Point(" + point.getX() + ", " + point.getY() + ")"; } @Override public void setAsText(String text) throws IllegalArgumentException { String originalParam = text; try { Point val = (Point)PropertyEditorUtil.createValueFromString( text, 2, Point.class, int.class); setValue(val); } catch (Exception e) { throw new IllegalArgumentException("The input value " + originalParam + " is not formatted correctly. Please " + "try something of the form [x,y] or [x , y] or [x y]", e); } } @Override public String getAsText() { Point point = getValue(); return point == null ? "[]" : "[" + point.x + ", " + point.y + "]"; } } swingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/editors/PainterUtil.java0000644000175000017500000004010611245712667032667 0ustar drazzibdrazzib/* * PainterUtil.java * * Created on July 20, 2006, 1:18 PM * * To change this template, choose Tools | Template Manager * and open the template in the editor. */ package org.jdesktop.swingx.editors; import java.awt.GradientPaint; import java.awt.Graphics2D; import java.awt.Insets; import java.awt.LinearGradientPaint; import java.awt.RadialGradientPaint; import java.awt.RenderingHints; import java.awt.geom.AffineTransform; import java.awt.geom.Arc2D; import java.awt.geom.Area; import java.awt.geom.CubicCurve2D; import java.awt.geom.Ellipse2D; import java.awt.geom.GeneralPath; import java.awt.geom.Line2D; import java.awt.geom.Point2D; import java.awt.geom.QuadCurve2D; import java.awt.geom.Rectangle2D; import java.awt.geom.RoundRectangle2D; import java.awt.image.BufferedImage; import java.beans.BeanInfo; import java.beans.DefaultPersistenceDelegate; import java.beans.Encoder; import java.beans.ExceptionListener; import java.beans.Expression; import java.beans.Introspector; import java.beans.PersistenceDelegate; import java.beans.PropertyDescriptor; import java.beans.Statement; import java.beans.XMLDecoder; import java.beans.XMLEncoder; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.lang.reflect.Field; import java.lang.reflect.Modifier; import java.net.MalformedURLException; import java.net.URL; import javax.imageio.ImageIO; import javax.swing.JComponent; import org.jdesktop.swingx.JXButton; import org.jdesktop.swingx.JXLabel; import org.jdesktop.swingx.JXPanel; import org.jdesktop.swingx.editors.PainterPropertyEditor.AffineTransformDelegate; import org.jdesktop.swingx.editors.PainterPropertyEditor.Arc2DDelegate; import org.jdesktop.swingx.editors.PainterPropertyEditor.AreaDelegate; import org.jdesktop.swingx.editors.PainterPropertyEditor.CubicCurve2DDelegate; import org.jdesktop.swingx.editors.PainterPropertyEditor.Ellipse2DDelegate; import org.jdesktop.swingx.editors.PainterPropertyEditor.GeneralPathDelegate; import org.jdesktop.swingx.editors.PainterPropertyEditor.GradientPaintDelegate; import org.jdesktop.swingx.editors.PainterPropertyEditor.InsetsDelegate; import org.jdesktop.swingx.editors.PainterPropertyEditor.Line2DDelegate; import org.jdesktop.swingx.editors.PainterPropertyEditor.LinearGradientPaintDelegate; import org.jdesktop.swingx.editors.PainterPropertyEditor.Point2DDelegate; import org.jdesktop.swingx.editors.PainterPropertyEditor.QuadCurve2DDelegate; import org.jdesktop.swingx.editors.PainterPropertyEditor.RadialGradientPaintDelegate; import org.jdesktop.swingx.editors.PainterPropertyEditor.Rectangle2DDelegate; import org.jdesktop.swingx.editors.PainterPropertyEditor.RoundRectangle2DDelegate; import org.jdesktop.swingx.painter.AbstractLayoutPainter; import org.jdesktop.swingx.painter.AbstractPainter; import org.jdesktop.swingx.painter.CompoundPainter; import org.jdesktop.swingx.painter.ImagePainter; import org.jdesktop.swingx.painter.Painter; import org.jdesktop.swingx.painter.RectanglePainter; /** * * @author joshy */ public class PainterUtil { /** Creates a new instance of PainterUtil */ private PainterUtil() { } /* public static void main(String[] args) throws Exception { ImagePainter ip = new ImagePainter(); ip.setImageString("file:/Users/joshy/Pictures/cooltikis.jpg"); File outfile = new File("/Users/joshy/Desktop/test.xml"); outfile.createNewFile(); p("outfile = " + outfile.getAbsolutePath()); p("exists = " + outfile.exists()); savePainterToFile(ip, outfile, outfile.getParentFile().toURL()); p("---------"); ip = (ImagePainter)loadPainter(outfile); p("image = " + ip.getImage()); ip = (ImagePainter)loadPainter(outfile.toURL()); p("image = " + ip.getImage()); p("=================="); }*/ public static Painter loadPainter(File file) throws FileNotFoundException, MalformedURLException, IOException { return loadPainter(file.toURI().toURL(), file.toURI().toURL()); } private static Painter loadPainter(final URL in, URL baseURL) throws FileNotFoundException, IOException { Thread.currentThread().setContextClassLoader(PainterUtil.class.getClassLoader()); XMLDecoder dec = new XMLDecoder(in.openStream()); // p("creating a persistence owner with the base url: " + baseURL); dec.setOwner(new PersistenceOwner(baseURL)); dec.setExceptionListener(new ExceptionListener() { public void exceptionThrown(Exception ex) { System.out.println(ex.getMessage()); ex.printStackTrace(); } }); Object obj = dec.readObject(); return (Painter)obj; } public static Painter loadPainter(URL url) throws IOException { return loadPainter(url,url); } static public void savePainterToFile(Painter compoundPainter, File file) throws IOException { savePainterToFile(compoundPainter,file,file.getParentFile().toURI().toURL()); } static public void savePainterToFile(Painter compoundPainter, File file, URL baseURL) throws IOException { //System.setErr(null); // u.p("writing out to: " + file.getCanonicalPath()); setTransient(ImagePainter.class, "image"); setTransient(ImagePainter.class, "imageString"); //setTransient(CompoundPainter.class,"antialiasing"); //setTransient(AbstractPainter.class,"antialiasing"); //setTransient(AbstractPainter.class,"renderingHints"); //setPropertyDelegate(); XMLEncoder e = new XMLEncoder(new FileOutputStream(file)); e.setOwner(new PersistenceOwner(baseURL)); //p("owner = " + e.getOwner()); //e.setOwner(compoundPainter); // serialize the enums //e.setPersistenceDelegate(AbstractPainter.Antialiasing.class, new TypeSafeEnumPersistenceDelegate()); e.setPersistenceDelegate(AbstractPainter.Interpolation.class, new TypeSafeEnumPersistenceDelegate()); // e.setPersistenceDelegate(AbstractPainter.FractionalMetrics.class, new TypeSafeEnumPersistenceDelegate()); e.setPersistenceDelegate(RectanglePainter.Style.class, new TypeSafeEnumPersistenceDelegate()); e.setPersistenceDelegate(AbstractLayoutPainter.HorizontalAlignment.class, new TypeSafeEnumPersistenceDelegate()); e.setPersistenceDelegate(AbstractLayoutPainter.VerticalAlignment.class, new TypeSafeEnumPersistenceDelegate()); e.setPersistenceDelegate(AbstractPainter.class, new AbstractPainterDelegate()); e.setPersistenceDelegate(ImagePainter.class, new ImagePainterDelegate()); e.setPersistenceDelegate(RenderingHints.class, new RenderingHintsDelegate()); e.setPersistenceDelegate(GradientPaint.class, new GradientPaintDelegate()); e.setPersistenceDelegate(Arc2D.Float.class, new Arc2DDelegate()); e.setPersistenceDelegate(Arc2D.Double.class, new Arc2DDelegate()); e.setPersistenceDelegate(CubicCurve2D.Float.class, new CubicCurve2DDelegate()); e.setPersistenceDelegate(CubicCurve2D.Double.class, new CubicCurve2DDelegate()); e.setPersistenceDelegate(Ellipse2D.Float.class, new Ellipse2DDelegate()); e.setPersistenceDelegate(Ellipse2D.Double.class, new Ellipse2DDelegate()); e.setPersistenceDelegate(Line2D.Float.class, new Line2DDelegate()); e.setPersistenceDelegate(Line2D.Double.class, new Line2DDelegate()); e.setPersistenceDelegate(Point2D.Float.class, new Point2DDelegate()); e.setPersistenceDelegate(Point2D.Double.class, new Point2DDelegate()); e.setPersistenceDelegate(QuadCurve2D.Float.class, new QuadCurve2DDelegate()); e.setPersistenceDelegate(QuadCurve2D.Double.class, new QuadCurve2DDelegate()); e.setPersistenceDelegate(Rectangle2D.Float.class, new Rectangle2DDelegate()); e.setPersistenceDelegate(Rectangle2D.Double.class, new Rectangle2DDelegate()); e.setPersistenceDelegate(RoundRectangle2D.Float.class, new RoundRectangle2DDelegate()); e.setPersistenceDelegate(RoundRectangle2D.Double.class, new RoundRectangle2DDelegate()); e.setPersistenceDelegate(Area.class, new AreaDelegate()); e.setPersistenceDelegate(GeneralPath.class, new GeneralPathDelegate()); e.setPersistenceDelegate(AffineTransform.class, new AffineTransformDelegate()); e.setPersistenceDelegate(RadialGradientPaint.class, new RadialGradientPaintDelegate()); e.setPersistenceDelegate(LinearGradientPaint.class, new LinearGradientPaintDelegate()); e.setPersistenceDelegate(Insets.class, new InsetsDelegate()); e.writeObject(compoundPainter); e.close(); } //private static void setPropertyDelegate(Class clazz, String property, ) private static void setTransient(Class clazz, String property) { try { BeanInfo info = Introspector.getBeanInfo(clazz); PropertyDescriptor[] propertyDescriptors = info.getPropertyDescriptors(); for (int i = 0; i < propertyDescriptors.length; ++i) { PropertyDescriptor pd = propertyDescriptors[i]; if (pd.getName().equals(property)) { pd.setValue("transient", Boolean.TRUE); //u.p(pd.attributeNames()); } } } catch (Exception ex) { //u.p(ex); } } static class TypeSafeEnumPersistenceDelegate extends PersistenceDelegate { @Override protected boolean mutatesTo( Object oldInstance, Object newInstance ) { return oldInstance == newInstance; } @Override protected Expression instantiate( Object oldInstance, Encoder out ) { Class type = oldInstance.getClass(); if ( !Modifier.isPublic( type.getModifiers() ) ) throw new IllegalArgumentException( "Could not instantiate instance of non-public class: " + oldInstance ); for ( Field field : type.getFields() ) { int mod = field.getModifiers(); if ( Modifier.isPublic( mod ) && Modifier.isStatic( mod ) && Modifier.isFinal( mod ) && ( type == field.getDeclaringClass() ) ) { try { if ( oldInstance == field.get( null ) ) return new Expression( oldInstance, field, "get", new Object[]{null} ); } catch ( IllegalAccessException exception ) { throw new IllegalArgumentException( "Could not get value of the field: " + field, exception ); } } } throw new IllegalArgumentException( "Could not instantiate value: " + oldInstance ); } } public static final class RenderingHintsDelegate extends PersistenceDelegate { @Override protected Expression instantiate(Object oldInstance, Encoder out) { //u.p("rh inst"); // give it a constructor w/ null as the argument return new Expression(oldInstance, oldInstance.getClass(), "new", new Object[] { null }); } @Override protected void initialize(Class type, Object oldInstance, Object newInstance, Encoder out) { //u.p("rh init "); RenderingHints rh = (RenderingHints)oldInstance; out.writeStatement(new Statement(oldInstance, "put", new Object[] {RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON})); //u.p("done"); } } public static final class AbstractPainterDelegate extends DefaultPersistenceDelegate { @Override protected void initialize(Class type, Object oldInstance, Object newInstance, Encoder out) { // p("ap delegate called"); super.initialize(type, oldInstance, newInstance, out); } } public static final class ImagePainterDelegate extends DefaultPersistenceDelegate { @Override protected void initialize(Class type, Object oldInstance, Object newInstance, Encoder out) { // p("image painter delegate called"); super.initialize(type, oldInstance, newInstance, out); //p("old instance = " + oldInstance); //p("owner = " + ((XMLEncoder)out).getOwner()); PersistenceOwner owner = (PersistenceOwner)((XMLEncoder)out).getOwner(); ImagePainter ip = (ImagePainter)oldInstance; // p("need to convert string: " + ip.getImageString()); String s = owner.toXMLURL(ip.getImageString()); // p("converted to: " + s); //out.writeExpression(new Expression(oldInstance,owner,"fromXMLURL",new Object[]{ip.getImageString()})); //out.writeStatement(new Statement(owner,"fromXMLURL",new Object[]{ip.getImageString()})); //out.writeStatement(new Statement(oldInstance,"setImageString",new Object[]{ //new Expression(oldInstance,owner,"fromXMLURL",new Object[]{ip.getImageString()}) //})); out.writeStatement(new Statement(oldInstance,"setResolver",new Object[]{owner})); out.writeStatement(new Statement(oldInstance,"setImageString",new Object[]{s})); } } public static void savePainterToImage(JComponent testPanel, CompoundPainter compoundPainter, File file) throws IOException { BufferedImage img = new BufferedImage(testPanel.getWidth(),testPanel.getHeight(), BufferedImage.TYPE_INT_ARGB); Graphics2D g = img.createGraphics(); setBGP(testPanel,compoundPainter); testPanel.paint(g); ImageIO.write(img,"png",file); } public static void setBGP(JComponent comp, Painter painter) { if(comp instanceof JXPanel) { ((JXPanel)comp).setBackgroundPainter(painter); } if(comp instanceof JXButton) { ((JXButton)comp).setBackgroundPainter(painter); } } public static void setFGP(JComponent comp, Painter painter) { if(comp instanceof JXLabel) { ((JXLabel)comp).setForegroundPainter(painter); } if(comp instanceof JXButton) { ((JXButton)comp).setForegroundPainter(painter); } } public static Painter getFGP(JComponent comp) { if(comp instanceof JXLabel) { return ((JXLabel)comp).getForegroundPainter(); } if(comp instanceof JXButton) { return ((JXButton)comp).getForegroundPainter(); } return null; } public static Painter getBGP(JComponent comp) { if(comp instanceof JXPanel) { return ((JXPanel)comp).getBackgroundPainter(); } if(comp instanceof JXButton) { return ((JXButton)comp).getBackgroundPainter(); } return null; } public static class PersistenceOwner { private URL baseURL; public PersistenceOwner(URL baseURL) { this.baseURL = baseURL; } public URL getBaseURL() { return baseURL; } public String toXMLURL(String url) { // p("========"); // p("in toXMLURL()"); // p("base url = " + baseURL); // p("url to convert = " + url); //trim off the beginning if the url is relative to the base if(url.startsWith(baseURL.toString())) { // p("it's a valid substring!!!!!!!!!!!!"); url = url.substring(baseURL.toString().length()); // p("subsstring = " + url); } // p("final url = " + url); // p("========"); return url; } public String fromXMLURL(String url) throws MalformedURLException { /*p("========"); p("in fromXMLURL()"); p("base url = " + baseURL); p("url to convert: " + url);*/ String s = new URL(baseURL,url).toString(); // p("returning: " + s); // p("========"); return s; } } } ././@LongLink0000000000000000000000000000015400000000000011565 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/editors/RectanglePropertyEditor.javaswingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/editors/RectanglePropertyEdit0000644000175000017500000000330611245712667033767 0ustar drazzibdrazzib/* * RectanglePropertyEditor.java * * Created on August 16, 2006, 12:13 AM * * To change this template, choose Tools | Template Manager * and open the template in the editor. */ package org.jdesktop.swingx.editors; import java.awt.Rectangle; import java.beans.PropertyEditorSupport; /** * * @author joshy */ public class RectanglePropertyEditor extends PropertyEditorSupport { /** Creates a new instance of Rectangle2DPropertyEditor */ public RectanglePropertyEditor() { } @Override public Rectangle getValue() { return (Rectangle)super.getValue(); } @Override public String getJavaInitializationString() { Rectangle rect = getValue(); return rect == null ? "null" : "new java.awt.Rectangle(" + rect.getX() + ", " + rect.getY() + ", " + rect.getWidth() + ", " + rect.getHeight() + ")"; } @Override public void setAsText(String text) throws IllegalArgumentException { String originalParam = text; try { Rectangle val = (Rectangle)PropertyEditorUtil.createValueFromString(text, 4, Rectangle.class, int.class); setValue(val); } catch (Throwable e) { System.out.println(e.getMessage()); e.printStackTrace(); throw new IllegalArgumentException("The input value " + originalParam + " is not formatted correctly. Please " + "try something of the form [x,y,w,h] or [x , y , w , h] or [x y w h]", e); } } @Override public String getAsText() { Rectangle rect = getValue(); return rect == null ? "[]" : "[" + rect.x + ", " + rect.y + ", " + rect.width + ", " + rect.height + "]"; } } ././@LongLink0000000000000000000000000000015200000000000011563 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/editors/Point2DPropertyEditor.javaswingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/editors/Point2DPropertyEditor0000644000175000017500000000630111245712667033701 0ustar drazzibdrazzib/* * $Id: Point2DPropertyEditor.java 3475 2009-08-28 08:30:47Z kleopatra $ * * Copyright 2004 Sun Microsystems, Inc., 4150 Network Circle, * Santa Clara, California 95054, U.S.A. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ package org.jdesktop.swingx.editors; import java.awt.geom.Point2D; import java.beans.PropertyEditorSupport; /** * * @author rbair */ public class Point2DPropertyEditor extends PropertyEditorSupport { /** Creates a new instance of Point2DPropertyEditor */ public Point2DPropertyEditor() { } @Override public Point2D getValue() { return (Point2D)super.getValue(); } @Override public String getJavaInitializationString() { Point2D point = getValue(); return point == null ? "null" : "new java.awt.geom.Point2D.Double(" + point.getX() + ", " + point.getY() + ")"; } @Override public void setAsText(String text) throws IllegalArgumentException { String originalParam = text; try { Point2D val = (Point2D)PropertyEditorUtil.createValueFromString( text, 2, Point2D.Double.class, double.class); setValue(val); } catch (Exception e) { System.out.println(e.getMessage()); e.printStackTrace(); throw new IllegalArgumentException("The input value " + originalParam + " is not formatted correctly. Please " + "try something of the form [x,y] or [x , y] or [x y]", e); } } @Override public String getAsText() { Point2D point = getValue(); return point == null ? "[]" : "[" + point.getX() + ", " + point.getY() + "]"; } public static void main(String... args) { test("[1.5,1.2]"); test("1.5,1.2]"); test("[1.5,1.2"); test("[ 1.5 , 1.2 ]"); test(" 1.5 , 1.2 ]"); test("[ 1.5 , 1.2"); test("1.5,1.2"); test(" 1.5 , 1.2 "); test("1.5 1.2"); test(""); test("null"); test("[]"); test("[ ]"); test("[1.5 1.2]"); } private static void test(String input) { System.out.print("Input '" + input + "'"); try { Point2DPropertyEditor ed = new Point2DPropertyEditor(); ed.setAsText(input); Point2D point = ed.getValue(); System.out.println(" succeeded: " + point); } catch (Exception e) { System.out.println(" failed: " + e.getMessage()); } } } ././@LongLink0000000000000000000000000000015100000000000011562 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/editors/Paint2PropertyEditor.javaswingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/editors/Paint2PropertyEditor.0000644000175000017500000000402711245712667033640 0ustar drazzibdrazzibpackage org.jdesktop.swingx.editors; import java.awt.Color; import java.awt.Component; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Paint; import java.awt.Rectangle; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.beans.PropertyEditorSupport; /** * * @author joshy */ public class Paint2PropertyEditor extends PropertyEditorSupport { Paint paint = new Color(0,128,255); PaintPicker picker = new PaintPicker(); /** Creates a new instance of Paint2PropertyEditor */ public Paint2PropertyEditor() { picker.addPropertyChangeListener("paint",new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent propertyChangeEvent) { paint = picker.getPaint(); firePropertyChange(); } }); } @Override public Paint getValue() { return paint; } @Override public void setValue(Object object) { paint = (Paint)object; picker.setPaint(paint); super.setValue(object); } @Override public String getJavaInitializationString() { Paint paint = getValue(); //TODO!!! return paint == null ? "null" : "org.jdesktop.swingx.painter.gradient.LinearGradientPainter.BLACK_STAR"; } @Override public void setAsText(String text) throws IllegalArgumentException { // do nothing right now } @Override public String getAsText() { return "PainterText"; } @Override public void paintValue(Graphics g, Rectangle box) { Graphics2D g2 = (Graphics2D)g; //picker.setPaint(getValue()); g2.setPaint(picker.getDisplayPaint(box)); g2.fill(box); } @Override public boolean isPaintable() { return true; } @Override public boolean supportsCustomEditor() { return true; } @Override public Component getCustomEditor() { return picker; } } ././@LongLink0000000000000000000000000000015200000000000011563 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/editors/PainterPropertyEditor.javaswingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/editors/PainterPropertyEditor0000644000175000017500000003770711245712667034042 0ustar drazzibdrazzib/* * PainterPropertyEditor.java * * Created on March 21, 2006, 11:26 AM * * To change this template, choose Tools | Template Manager * and open the template in the editor. */ package org.jdesktop.swingx.editors; import java.awt.Color; import java.awt.GradientPaint; import java.awt.Insets; import java.awt.LinearGradientPaint; import java.awt.RadialGradientPaint; import java.awt.MultipleGradientPaint.ColorSpaceType; import java.awt.geom.AffineTransform; import java.awt.geom.Arc2D; import java.awt.geom.Area; import java.awt.geom.CubicCurve2D; import java.awt.geom.Ellipse2D; import java.awt.geom.GeneralPath; import java.awt.geom.Line2D; import java.awt.geom.PathIterator; import java.awt.geom.Point2D; import java.awt.geom.QuadCurve2D; import java.awt.geom.Rectangle2D; import java.awt.geom.RoundRectangle2D; import java.beans.DefaultPersistenceDelegate; import java.beans.Encoder; import java.beans.Expression; import java.beans.PersistenceDelegate; import java.beans.PropertyEditorSupport; import java.beans.Statement; import java.beans.XMLEncoder; import java.io.ByteArrayOutputStream; import org.jdesktop.swingx.painter.Painter; /** * Two parts to this property editor. The first part is a simple dropdown. * The second part is a complicated UI for constructing multiple "layers" of * various different Painters, including gradient painters. * * @author Richard */ public class PainterPropertyEditor extends PropertyEditorSupport { /** Creates a new instance of PainterPropertyEditor */ public PainterPropertyEditor() { } @Override public Painter getValue() { return (Painter)super.getValue(); } @Override public String getJavaInitializationString() { Painter painter = getValue(); //TODO!!! return painter == null ? "null" : "new org.jdesktop.swingx.painter.CheckerboardPainter()"; } public static void main(String... args) { ByteArrayOutputStream baos = new ByteArrayOutputStream(300); XMLEncoder e = new XMLEncoder(baos); e.setPersistenceDelegate(GradientPaint.class, new GradientPaintDelegate()); e.setPersistenceDelegate(Arc2D.Float.class, new Arc2DDelegate()); e.setPersistenceDelegate(Arc2D.Double.class, new Arc2DDelegate()); e.setPersistenceDelegate(CubicCurve2D.Float.class, new CubicCurve2DDelegate()); e.setPersistenceDelegate(CubicCurve2D.Double.class, new CubicCurve2DDelegate()); e.setPersistenceDelegate(Ellipse2D.Float.class, new Ellipse2DDelegate()); e.setPersistenceDelegate(Ellipse2D.Double.class, new Ellipse2DDelegate()); e.setPersistenceDelegate(Line2D.Float.class, new Line2DDelegate()); e.setPersistenceDelegate(Line2D.Double.class, new Line2DDelegate()); e.setPersistenceDelegate(Point2D.Float.class, new Point2DDelegate()); e.setPersistenceDelegate(Point2D.Double.class, new Point2DDelegate()); e.setPersistenceDelegate(QuadCurve2D.Float.class, new QuadCurve2DDelegate()); e.setPersistenceDelegate(QuadCurve2D.Double.class, new QuadCurve2DDelegate()); e.setPersistenceDelegate(Rectangle2D.Float.class, new Rectangle2DDelegate()); e.setPersistenceDelegate(Rectangle2D.Double.class, new Rectangle2DDelegate()); e.setPersistenceDelegate(RoundRectangle2D.Float.class, new RoundRectangle2DDelegate()); e.setPersistenceDelegate(RoundRectangle2D.Double.class, new RoundRectangle2DDelegate()); e.setPersistenceDelegate(Area.class, new AreaDelegate()); e.setPersistenceDelegate(GeneralPath.class, new GeneralPathDelegate()); e.setPersistenceDelegate(AffineTransform.class, new AffineTransformDelegate()); e.setPersistenceDelegate(RadialGradientPaint.class, new RadialGradientPaintDelegate()); e.setPersistenceDelegate(LinearGradientPaint.class, new LinearGradientPaintDelegate()); e.setPersistenceDelegate(Insets.class, new InsetsDelegate()); /* Area a = new Area(new RoundRectangle2D.Double(20, 20, 50, 50, 4, 4)); a.add(new Area(new Ellipse2D.Double(10, 10, 100, 20))); TextPainter textPainter = new TextPainter("Yo dude"); textPainter.setFillPaint(Color.WHITE); e.writeObject(new CompoundPainter( new MattePainter(), new CheckerboardPainter(), new MattePainter(Color.BLACK), //new BasicGradientPainter(BasicGradientPainter.RED_XP), //new LinearGradientPainter(LinearGradientPainter.BLACK_PERSPECTIVE), new MattePainter(new RadialGradientPaint( new Point2D.Double(.5, .5), .2f, new float[] {0f, .5f, 1f}, new Color[] {Color.BLACK,Color.WHITE,Color.RED})), new ShapePainter(a), new PinstripePainter(), textPainter, new GlossPainter() // new IconPainter(), // new ImagePainter(), )); e.close(); System.out.println(baos.toString()); XMLDecoder d = new XMLDecoder(new ByteArrayInputStream(baos.toByteArray())); Painter p = (Painter)d.readObject(); JFrame frame = new JFrame("Yo momma"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JXPanel panel = new JXPanel(); panel.setBackgroundPainter(p); frame.add(panel); frame.setSize(800,600); frame.setVisible(true); */ RadialGradientPaint rp = new RadialGradientPaint(new Point2D.Double(0.5,0.5), .2f, new float[] {0f, .5f, 1f}, new Color[] {Color.BLACK, Color.WHITE, Color.RED} ); baos = new ByteArrayOutputStream(300); e = new XMLEncoder(baos); TestStuff ts = new TestStuff(); //ts.setStr("asdfasdf"); ts.str = "asdfasdf"; System.out.println("db = " + ts.getDb()); ts.setDb(new Point2D.Double(1.0,1.0)); ts.setIns(new Insets(5,5,5,5)); System.out.println("db = " + ts.getDb()); e.writeObject(ts); e.close(); System.out.println("more stuff"); System.out.println(baos.toString()); if(new Point2D.Double(0,0).equals(new Point2D.Double(1,1))) { System.out.println("they are equal"); } else { System.out.println("they are not equal"); } } public static final class TestStuff { public Point2D.Double db = null;// = new Point2D.Double(5,5); public TestStuff() { } public TestStuff(Point2D.Double db, String str) { setDb(db); setStr(str); } public void setDb(Point2D.Double db) { this.db = db; } public Point2D.Double getDb() { //new Exception().printStackTrace(); return this.db; } public String str = "asdf"; public void setStr(String str) { this.str = str; } public String getStr() { return this.str; } private Insets ins = null; public Insets getIns() { return ins; } public void setIns(Insets ins) { this.ins = ins; } } public static final class GradientPaintDelegate extends DefaultPersistenceDelegate { public GradientPaintDelegate() { super(new String[] {"point1", "color1", "point2", "color2"}); } } public static final class LinearGradientPaintDelegate extends DefaultPersistenceDelegate { public LinearGradientPaintDelegate() { super(new String[] {"startPoint", "endPoint", "fractions", "colors"}); //these 3 not yet supported. The problem is the //colorspace. I haven't figured out how to transfer that one yet //, "cycleMethod", "colorSpace", "transform"}); } @Override protected Expression instantiate(Object oldInstance, Encoder out) { ColorSpaceType e = ((LinearGradientPaint)oldInstance).getColorSpace(); Expression retValue; retValue = super.instantiate(oldInstance, out); return retValue; } } public static final class RadialGradientPaintDelegate extends DefaultPersistenceDelegate { public RadialGradientPaintDelegate() { super(new String[] {"centerPoint", "radius", "focusPoint", "fractions", "colors"}); //these 3 not yet supported. The problem is the //colorspace. I haven't figured out how to transfer that one yet //, "cycleMethod", "colorSpace", "transform"}); } } public static final class Arc2DDelegate extends DefaultPersistenceDelegate { public Arc2DDelegate() { super(new String[] {"x", "y", "width", "height", "angleStart", "angleExtent", "arcType"}); } } public static final class CubicCurve2DDelegate extends DefaultPersistenceDelegate { public CubicCurve2DDelegate() { super(new String[] {"x1", "y1", "ctrlX1", "ctrlY1", "ctrlX2", "ctrlY2", "x2", "y2"}); } } public static final class Ellipse2DDelegate extends DefaultPersistenceDelegate { public Ellipse2DDelegate() { super(new String[] {"x", "y", "width", "height"}); } } public static final class Line2DDelegate extends DefaultPersistenceDelegate { public Line2DDelegate() { super(new String[] {"x1", "y1", "x2", "y2"}); } } public static final class Point2DDelegate extends DefaultPersistenceDelegate { public Point2DDelegate() { super(new String[] {"x", "y"}); }/* protected Expression instantiate(Object oldInstance, Encoder out) { Point2D pt = (Point2D)oldInstance; Object[] constructorArgs = new Object[]{ pt.getX(), pt.getY() }; return new Expression(new Point2D.Double(-1,-1), oldInstance.getClass(), "new", constructorArgs); } */ /* protected void initialize(Class type, Object oldInstance, Object newInstance, Encoder out) { super.initialize(type,oldInstance,newInstance,out); System.out.println("initialize called: " + type + " " + oldInstance + " " + newInstance + " " + out); }*/ } public static final class QuadCurve2DDelegate extends DefaultPersistenceDelegate { public QuadCurve2DDelegate() { super(new String[] {"x1", "y1", "ctrlX", "ctrlY", "x2", "y2"}); } } public static final class Rectangle2DDelegate extends DefaultPersistenceDelegate { public Rectangle2DDelegate() { super(new String[] {"x", "y", "width", "height"}); } } public static final class InsetsDelegate extends DefaultPersistenceDelegate { public InsetsDelegate() { super(new String[] {"top", "left", "bottom", "right"}); } @Override protected Expression instantiate(Object oldInstance, Encoder out) { Insets ins = (Insets)oldInstance; return new Expression(oldInstance, oldInstance.getClass(), "new", new Object[]{ ins.top, ins.left, ins.bottom, ins.right }); } } public static final class RoundRectangle2DDelegate extends DefaultPersistenceDelegate { public RoundRectangle2DDelegate() { super(new String[] {"x", "y", "width", "height", "arcWidth", "arcHeight"}); } } public static final class AreaDelegate extends PersistenceDelegate { @Override protected Expression instantiate(Object oldInstance, Encoder out) { Area a = (Area)oldInstance; //use the default constructor AffineTransform tx = new AffineTransform(); PathIterator itr = a.getPathIterator(tx); GeneralPath path = new GeneralPath(); out.writeExpression(new Expression(path, GeneralPath.class, "new", new Object[0])); while (!itr.isDone()) { float[] segment = new float[6]; //must use floats because lineTo etc use floats int pathType = itr.currentSegment(segment); switch (pathType) { case PathIterator.SEG_CLOSE: out.writeStatement(new Statement(path, "closePath", new Object[0])); break; case PathIterator.SEG_CUBICTO: out.writeStatement(new Statement(path, "curveTo", new Object[] {segment[0], segment[1], segment[2], segment[3], segment[4], segment[5]})); break; case PathIterator.SEG_LINETO: out.writeStatement(new Statement(path, "lineTo", new Object[] {segment[0], segment[1]})); break; case PathIterator.SEG_MOVETO: out.writeStatement(new Statement(path, "moveTo", new Object[] {segment[0], segment[1]})); break; case PathIterator.SEG_QUADTO: out.writeStatement(new Statement(path, "quadTo", new Object[] {segment[0], segment[1], segment[2], segment[3]})); break; } itr.next(); } return new Expression(a, Area.class, "new", new Object[] {path}); } } public static final class AffineTransformDelegate extends DefaultPersistenceDelegate { public AffineTransformDelegate() { super(new String[] {"scaleX", "shearY", "shearX", "scaleY", "translateX", "translateY"}); } } public static final class GeneralPathDelegate extends PersistenceDelegate { @Override protected Expression instantiate(Object oldInstance, Encoder out) { return new Expression(oldInstance, GeneralPath.class, "new", new Object[0]); } @Override protected void initialize(Class type, Object oldInstance, Object newInstance, Encoder out) { GeneralPath a = (GeneralPath)oldInstance; AffineTransform tx = new AffineTransform(); PathIterator itr = a.getPathIterator(tx); out.writeStatement(new Statement(a, "setWindingRule", new Object[] {a.getWindingRule()})); while (!itr.isDone()) { float[] segment = new float[6]; //must use floats because lineTo etc use floats int pathType = itr.currentSegment(segment); switch (pathType) { case PathIterator.SEG_CLOSE: out.writeStatement(new Statement(a, "closePath", new Object[0])); break; case PathIterator.SEG_CUBICTO: out.writeStatement(new Statement(a, "curveTo", new Object[] {segment[0], segment[1], segment[2], segment[3], segment[4], segment[5]})); break; case PathIterator.SEG_LINETO: out.writeStatement(new Statement(a, "lineTo", new Object[] {segment[0], segment[1]})); break; case PathIterator.SEG_MOVETO: out.writeStatement(new Statement(a, "moveTo", new Object[] {segment[0], segment[1]})); break; case PathIterator.SEG_QUADTO: out.writeStatement(new Statement(a, "quadTo", new Object[] {segment[0], segment[1], segment[2], segment[3]})); break; } itr.next(); } } } // public static final class PaintDelegate extends PersistenceDelegate { // protected Expression instantiate(Object oldInstance, Encoder out) { // if (oldInstance instanceof GradientPaint) { // // } // } // } } ././@LongLink0000000000000000000000000000015400000000000011565 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/editors/DimensionPropertyEditor.javaswingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/editors/DimensionPropertyEdit0000644000175000017500000000306711245712667034014 0ustar drazzibdrazzib/* * DimensionPropertyEditor.java * * Created on August 16, 2006, 12:18 AM * * To change this template, choose Tools | Template Manager * and open the template in the editor. */ package org.jdesktop.swingx.editors; import java.awt.Dimension; import java.beans.PropertyEditorSupport; /** * * @author joshy */ public class DimensionPropertyEditor extends PropertyEditorSupport { public DimensionPropertyEditor() { } @Override public Dimension getValue() { return (Dimension)super.getValue(); } @Override public String getJavaInitializationString() { Dimension point = getValue(); return point == null ? "null" : "new java.awt.Dimension(" + point.width + ", " + point.height + ")"; } @Override public void setAsText(String text) throws IllegalArgumentException { String originalParam = text; try { Dimension val = (Dimension)PropertyEditorUtil.createValueFromString( text, 2, Dimension.class, int.class); setValue(val); } catch (Exception ex) { System.out.println(ex.getMessage()); ex.printStackTrace(); throw new IllegalArgumentException("The input value " + originalParam + " is not formatted correctly. Please " + "try something of the form [w,h] or [w , h] or [w h]", ex); } } @Override public String getAsText() { Dimension dim = getValue(); return dim == null ? "[]" : "[" + dim.width + ", " + dim.height + "]"; } } ././@LongLink0000000000000000000000000000014700000000000011567 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/editors/PropertyEditorUtil.javaswingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/editors/PropertyEditorUtil.ja0000644000175000017500000000431710576050430033722 0ustar drazzibdrazzib/* * PropertyEditorUtil.java * * Created on August 16, 2006, 7:09 PM * * To change this template, choose Tools | Template Manager * and open the template in the editor. */ package org.jdesktop.swingx.editors; import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; /** * * @author joshy */ public class PropertyEditorUtil { //the text could be in many different formats. All of the supported formats are as follows: //(where x and y are doubles of some form) //[x,y] //[x y] //x,y] //[x,y //[ x , y ] or any other arbitrary whitespace // x , y ] or any other arbitrary whitespace //[ x , y or any other arbitrary whitespace //x,y // x , y (or any other arbitrary whitespace) //x y // (empty space) //null //[] //[ ] //any other value throws an IllegalArgumentException public static Object createValueFromString(String text, int count, Class objectClass, Class paramClass) throws NoSuchMethodException, InstantiationException, IllegalAccessException, InvocationTargetException { // strip all extra whitespace text = text.replaceAll("[\\[|,| |\\]]"," "); text = text.replaceAll("\\s+"," "); text = text.trim(); // u.p("text = " + text); if (text == null || text.equals("") || text.equals("null")) { return null; } // split by spaces String[] strs = text.split(" "); // u.p("split:"); // u.p(strs); // u.p("len = " + strs.length); if(strs.length != count) { return null; } Object[] params = new Object[count]; Class[] paramClasses = new Class[count]; for(int i=0; iinitialize method. * * @author rbair, Jan Stola */ public abstract class BeanInfoSupport extends SimpleBeanInfo { private static Logger LOG = Logger.getLogger(BeanInfoSupport.class.getName()); /** * Indicates whether I am introspecting state for the give class. This * helps prevent infinite loops */ private static Map, Boolean> introspectingState = new HashMap, Boolean>(); /** * The class of the bean that this BeanInfoSupport is for */ private Class beanClass; /** * @see BeanInfo */ private int defaultPropertyIndex = -1; /** * @see BeanInfo */ private int defaultEventIndex = -1; /** * The 16x16 color icon */ private Image iconColor16 = null; /** * The 32x32 color icon */ private Image iconColor32 = null; /** * The 16x16 monochrome icon */ private Image iconMono16 = null; /** * The 32x32 monochrome icon */ private Image iconMono32 = null; /** * A reference to the icon. This String must be of a form that * ImageIO can use to locate and load the icon image */ private String iconNameC16 = null; /** * A reference to the icon. This String must be of a form that * ImageIO can use to locate and load the icon image */ private String iconNameC32 = null; /** * A reference to the icon. This String must be of a form that * ImageIO can use to locate and load the icon image */ private String iconNameM16 = null; /** * A reference to the icon. This String must be of a form that * ImageIO can use to locate and load the icon image */ private String iconNameM32 = null; private BeanDescriptor beanDescriptor; private Map properties = new TreeMap(); private Map events = new TreeMap(); private Map methods = new TreeMap(); /** * Creates a new instance of BeanInfoSupport. * * @param beanClass class of the bean. */ public BeanInfoSupport(Class beanClass) { this.beanClass = beanClass; if (!isIntrospecting()) { introspectingState.put(beanClass, Boolean.TRUE); try { Class superClass = beanClass.getSuperclass(); while (superClass != null) { Introspector.flushFromCaches(superClass); superClass = superClass.getSuperclass(); } BeanInfo info = Introspector.getBeanInfo(beanClass); beanDescriptor = info.getBeanDescriptor(); if (beanDescriptor != null) { Class customizerClass = getCustomizerClass(); beanDescriptor = new BeanDescriptor(beanDescriptor.getBeanClass(), customizerClass == null ? beanDescriptor.getCustomizerClass() : customizerClass); } else { beanDescriptor = new BeanDescriptor(beanClass, getCustomizerClass()); } for (PropertyDescriptor pd : info.getPropertyDescriptors()) { properties.put(pd.getName(), pd); } for (EventSetDescriptor esd : info.getEventSetDescriptors()) { events.put(esd.getName(), esd); } for (MethodDescriptor md : info.getMethodDescriptors()) { methods.put(md.getName(), md); } defaultPropertyIndex = info.getDefaultPropertyIndex(); defaultEventIndex = info.getDefaultEventIndex(); iconColor16 = loadStandardImage(info, BeanInfo.ICON_COLOR_16x16); iconColor32 = loadStandardImage(info, BeanInfo.ICON_COLOR_32x32); iconMono16 = loadStandardImage(info, BeanInfo.ICON_MONO_16x16); iconMono32 = loadStandardImage(info, BeanInfo.ICON_MONO_32x32); } catch (Exception e) { e.printStackTrace(); } introspectingState.put(beanClass, Boolean.FALSE); initialize(); } } private boolean isIntrospecting() { Boolean b = introspectingState.get(beanClass); return b == null ? false : b.booleanValue(); } /** * attempts to load a png icon from the * resource directory beneath beaninfo, named like: * JXTaskPaneContainer16.png * JXTaskPaneContainer16-mono.png * JXTaskPaneContainer32.png * JXTaskPaneContainer32-mono.png * * if any of the icons is missing, an attempt is made to * get an icon via introspection. If that fails, the icon * will be set to placeholder16.png or one of the derivitives */ private Image loadStandardImage(BeanInfo info, int size) { String s = ""; switch (size) { case BeanInfo.ICON_COLOR_16x16: s = "16"; break; case BeanInfo.ICON_COLOR_32x32: s = "32"; break; case BeanInfo.ICON_MONO_16x16: s = "16-mono"; break; case BeanInfo.ICON_MONO_32x32: s = "32-mono"; break; } String iconName = beanClass.getSimpleName() + s + ".png"; Image image = null; try { image = loadImage("resources/" + iconName); } catch (Exception e) { LOG.info("No icon named " + iconName + " was found"); } return image; } @Override public Image loadImage(final String resourceName) { URL url = getClass().getResource(resourceName); return (url == null) ? null : new ImageIcon(url).getImage(); } /** * Called by the constructor during the proper time so that subclasses * can override the settings/values for the various beaninfo properties. * For example, you could call setDisplayName("Foo Name", "foo") to change * the foo properties display name */ protected abstract void initialize(); /** * Override this method if you want to return a custom customizer class * for the bean * * @return null. */ protected Class getCustomizerClass() { return null; } //------------------------------------ Methods for mutating the BeanInfo /** * Specify the name/url/path to the small 16x16 color icon * * @param name name of the icon. */ protected void setSmallColorIconName(String name) { iconNameC16 = name; } /** * Specify the name/url/path to the 32x32 color icon * * @param name name of the icon. */ protected void setColorIconName(String name) { iconNameC32 = name; } /** * Specify the name/url/path to the small 16x16 monochrome icon * * @param name name of the icon. */ protected void setSmallMonoIconName(String name) { iconNameM16 = name; } /** * Specify the name/url/path to the 32x32 monochrome icon * * @param name name of the icon. */ protected void setMonoIconName(String name) { iconNameM32 = name; } /** * Changes the display name of the given named property. Property names * are always listed last to allow for varargs * * @param displayName display name of the property. * @param propertyName name of the property. */ protected void setDisplayName(String displayName, String propertyName) { PropertyDescriptor pd = properties.get(propertyName); if (pd != null) { pd.setDisplayName(displayName); } else { LOG.log(Level.WARNING, "Failed to set display name for property '" + propertyName + "'. No such property was found"); } } /** * Sets the given named properties to be "hidden". * * @param hidden determines whether the properties should be marked as hidden or not. * @param propertyNames name of properties. * @see PropertyDescriptor */ protected void setHidden(boolean hidden, String... propertyNames) { for (String propertyName : propertyNames) { PropertyDescriptor pd = properties.get(propertyName); if (pd != null) { pd.setHidden(hidden); } else { LOG.log(Level.WARNING, "Failed to set hidden attribute for property '" + propertyName + "'. No such property was found"); } } } protected void setExpert(boolean expert, String... propertyNames) { for (String propertyName : propertyNames) { PropertyDescriptor pd = properties.get(propertyName); if (pd != null) { pd.setExpert(expert); } else { LOG.log(Level.WARNING, "Failed to set expert attribute for property '" + propertyName + "'. No such property was found"); } } } protected void setPreferred(boolean preferred, String... propertyNames) { for (String propertyName : propertyNames) { PropertyDescriptor pd = properties.get(propertyName); if (pd != null) { pd.setPreferred(preferred); } else { LOG.log(Level.WARNING, "Failed to set preferred attribute for property '" + propertyName + "'. No such property was found"); } } } protected void setBound(boolean bound, String... propertyNames) { for (String propertyName : propertyNames) { PropertyDescriptor pd = properties.get(propertyName); if (pd != null) { pd.setBound(bound); } else { LOG.log(Level.WARNING, "Failed to set bound attribute for property '" + propertyName + "'. No such property was found"); } } } protected void setConstrained(boolean constrained, String... propertyNames) { for (String propertyName : propertyNames) { PropertyDescriptor pd = properties.get(propertyName); if (pd != null) { pd.setConstrained(constrained); } else { LOG.log(Level.WARNING, "Failed to set constrained attribute for property '" + propertyName + "'. No such property was found"); } } } protected void setCategory(String categoryName, String... propertyNames) { for (String propertyName : propertyNames) { PropertyDescriptor pd = properties.get(propertyName); if (pd != null) { pd.setValue("category", categoryName); } else { LOG.log(Level.WARNING, "Failed to set category for property '" + propertyName + "'. No such property was found"); } } } protected void setPropertyEditor(Class editorClass, String... propertyNames) { for (String propertyName : propertyNames) { PropertyDescriptor pd = properties.get(propertyName); if (pd != null) { pd.setPropertyEditorClass(editorClass); } else { LOG.log(Level.WARNING, "Failed to set property editor for property '" + propertyName + "'. No such property was found"); } } } protected void setEnumerationValues(EnumerationValue[] values, String... propertyNames) { if (values == null) { return; } Object[] enumValues = new Object[values.length * 3]; int index = 0; for (EnumerationValue ev : values) { enumValues[index++] = ev.getName(); enumValues[index++] = ev.getValue(); enumValues[index++] = ev.getJavaInitializationString(); } for (String propertyName : propertyNames) { PropertyDescriptor pd = properties.get(propertyName); if (pd != null) { pd.setValue("enumerationValues", enumValues); } else { LOG.log(Level.WARNING, "Failed to set enumeration values for property '" + propertyName + "'. No such property was found"); } } } //----------------------------------------------------- BeanInfo methods /** * Gets the bean's BeanDescriptors. * * @return BeanDescriptor describing the editable * properties of this bean. May return null if the * information should be obtained by automatic analysis. */ @Override public BeanDescriptor getBeanDescriptor() { return isIntrospecting() ? null : beanDescriptor; } /** * Gets the bean's PropertyDescriptors. * * @return An array of PropertyDescriptors describing the editable * properties supported by this bean. May return null if the * information should be obtained by automatic analysis. *

* If a property is indexed, then its entry in the result array will * belong to the IndexedPropertyDescriptor subclass of PropertyDescriptor. * A client of getPropertyDescriptors can use "instanceof" to check * if a given PropertyDescriptor is an IndexedPropertyDescriptor. */ @Override public PropertyDescriptor[] getPropertyDescriptors() { return isIntrospecting() ? null : properties.values().toArray(new PropertyDescriptor[0]); } /** * Gets the bean's EventSetDescriptors. * * @return An array of EventSetDescriptors describing the kinds of * events fired by this bean. May return null if the information * should be obtained by automatic analysis. */ @Override public EventSetDescriptor[] getEventSetDescriptors() { return isIntrospecting() ? null : events.values().toArray(new EventSetDescriptor[0]); } /** * Gets the bean's MethodDescriptors. * * @return An array of MethodDescriptors describing the methods * implemented by this bean. May return null if the information * should be obtained by automatic analysis. */ @Override public MethodDescriptor[] getMethodDescriptors() { return isIntrospecting() ? null : methods.values().toArray(new MethodDescriptor[0]); } /** * A bean may have a "default" property that is the property that will * mostly commonly be initially chosen for update by human's who are * customizing the bean. * @return Index of default property in the PropertyDescriptor array * returned by getPropertyDescriptors. *

Returns -1 if there is no default property. */ @Override public int getDefaultPropertyIndex() { return isIntrospecting() ? -1 : defaultPropertyIndex; } /** * A bean may have a "default" event that is the event that will * mostly commonly be used by human's when using the bean. * @return Index of default event in the EventSetDescriptor array * returned by getEventSetDescriptors. *

Returns -1 if there is no default event. */ @Override public int getDefaultEventIndex() { return isIntrospecting() ? -1 : defaultEventIndex; } /** * This method returns an image object that can be used to * represent the bean in toolboxes, toolbars, etc. Icon images * will typically be GIFs, but may in future include other formats. *

* Beans aren't required to provide icons and may return null from * this method. *

* There are four possible flavors of icons (16x16 color, * 32x32 color, 16x16 mono, 32x32 mono). If a bean choses to only * support a single icon we recommend supporting 16x16 color. *

* We recommend that icons have a "transparent" background * so they can be rendered onto an existing background. * * @param iconKind The kind of icon requested. This should be * one of the constant values ICON_COLOR_16x16, ICON_COLOR_32x32, * ICON_MONO_16x16, or ICON_MONO_32x32. * @return An image object representing the requested icon. May * return null if no suitable icon is available. */ @Override public java.awt.Image getIcon(int iconKind) { switch ( iconKind ) { case ICON_COLOR_16x16: return getImage(iconNameC16, iconColor16); case ICON_COLOR_32x32: return getImage(iconNameC32, iconColor32); case ICON_MONO_16x16: return getImage(iconNameM16, iconMono16); case ICON_MONO_32x32: return getImage(iconNameM32, iconMono32); default: return null; } } private java.awt.Image getImage(String name, java.awt.Image img) { if (img == null) { if (name != null) { img = loadImage(name); } } return img; } } swingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/URLPainter.java0000644000175000017500000000536111421341401030723 0ustar drazzibdrazzib/* * $Id: URLPainter.java 3733 2010-07-20 15:38:41Z kschaefe $ * * Copyright 2006 Sun Microsystems, Inc., 4150 Network Circle, * Santa Clara, California 95054, U.S.A. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ package org.jdesktop.swingx; import java.awt.Graphics2D; import java.io.File; import java.net.MalformedURLException; import java.net.URL; import org.jdesktop.swingx.editors.PainterUtil; import org.jdesktop.swingx.painter.CompoundPainter; import org.jdesktop.swingx.painter.Painter; /** * * @author joshy */ public class URLPainter extends CompoundPainter { URL url; /** * Creates a new instance of URLPainter */ public URLPainter() { this.url = null; } public URLPainter(URL url) { this.url = url; } public URLPainter(File file) { try { this.url = file.toURI().toURL(); } catch (MalformedURLException exception) { exception.printStackTrace(); this.url = null; } } public URLPainter(String url) { try { this.url = new URL(url); } catch (MalformedURLException ex) { ex.printStackTrace(); this.url = null; } } public URLPainter(Class baseClass, String resource) { url = baseClass.getResource(resource); } public void setURL(URL url) { URL old = this.url; this.url = url; firePropertyChange("file", old, this.url); } public URL getURL() { return this.url; } private boolean loaded = false; private void load() { try { Painter painter = PainterUtil.loadPainter(url); this.setPainters(painter); loaded = true; } catch (Exception ex) { ex.printStackTrace(); } } @Override protected void doPaint(Graphics2D g, Object component, int width, int height) { if(!loaded) { load(); } super.doPaint(g, component, width, height); } } swingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/JXImagePanelBeanInfo.java0000644000175000017500000000233611245712667032627 0ustar drazzibdrazzib/* * $Id: JXImagePanelBeanInfo.java 3475 2009-08-28 08:30:47Z kleopatra $ * * Copyright 2004 Sun Microsystems, Inc., 4150 Network Circle, * Santa Clara, California 95054, U.S.A. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ package org.jdesktop.swingx; /** * * @author rbair */ public class JXImagePanelBeanInfo extends BeanInfoSupport { public JXImagePanelBeanInfo() { super(JXImagePanel.class); } @Override protected void initialize() { setPreferred(true, "editable"); } } swingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/JXFrameBeanInfo.java0000644000175000017500000000331511245712667031655 0ustar drazzibdrazzib/* * $Id: JXFrameBeanInfo.java 3475 2009-08-28 08:30:47Z kleopatra $ * * Copyright 2004 Sun Microsystems, Inc., 4150 Network Circle, * Santa Clara, California 95054, U.S.A. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ package org.jdesktop.swingx; import org.jdesktop.swingx.editors.EnumPropertyEditor; /** * BeanInfo class for JXFrame. * * @author rbair, Jan Stola */ public class JXFrameBeanInfo extends BeanInfoSupport { public JXFrameBeanInfo() { super(JXFrame.class); } @Override protected void initialize() { setPreferred(true, "cancelButton", "defaultButton"); setPreferred(true, "startPosition"); setPropertyEditor(StartPositionPropertyEditor.class, "startPosition"); setHidden(true, "statusBar", "toolBar"); } public static final class StartPositionPropertyEditor extends EnumPropertyEditor { public StartPositionPropertyEditor() { super(JXFrame.StartPosition.class); } } } swingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/JXSearchPanelBeanInfo.java0000644000175000017500000000067211245712667033013 0ustar drazzibdrazzibpackage org.jdesktop.swingx; import java.beans.BeanDescriptor; /** * BeanInfo class for JXSearchPanel. * * @author Jan Stola */ public class JXSearchPanelBeanInfo extends BeanInfoSupport { public JXSearchPanelBeanInfo() { super(JXSearchPanel.class); } @Override protected void initialize() { BeanDescriptor bd = getBeanDescriptor(); bd.setValue("isContainer", Boolean.FALSE); } } ././@LongLink0000000000000000000000000000014600000000000011566 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/JXTitledSeparatorBeanInfo.javaswingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/JXTitledSeparatorBeanInfo.jav0000644000175000017500000000465011245712667033573 0ustar drazzibdrazzib/* * $Id: JXTitledSeparatorBeanInfo.java 3475 2009-08-28 08:30:47Z kleopatra $ * * Copyright 2004 Sun Microsystems, Inc., 4150 Network Circle, * Santa Clara, California 95054, U.S.A. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ package org.jdesktop.swingx; import java.beans.BeanDescriptor; import javax.swing.SwingConstants; /** * BeanInfo class for JXTitledSeparator. * * @author rbair, Jan Stola */ public class JXTitledSeparatorBeanInfo extends BeanInfoSupport { public JXTitledSeparatorBeanInfo() { super(JXTitledSeparator.class); } @Override protected void initialize() { String iconName = "resources/" + JXTitledSeparator.class.getSimpleName(); setSmallMonoIconName(iconName + "16.png"); setMonoIconName(iconName + "32.png"); BeanDescriptor bd = getBeanDescriptor(); bd.setValue("isContainer", Boolean.FALSE); setPreferred(true, "icon", "title", "horizontalAlignment", "horizontalTextPosition"); setPreferred(false, "alpha", "inheritAlpha"); setPreferred(false, "background", "backgroundPainter"); setPreferred(false, "border", "opaque"); setEnumerationValues(new EnumerationValue[] { new EnumerationValue("Center", SwingConstants.CENTER, "SwingConstants.CENTER"), new EnumerationValue("Leading", SwingConstants.LEADING, "SwingConstants.LEADING"), new EnumerationValue("Left", SwingConstants.LEFT, "SwingConstants.LEFT"), new EnumerationValue("Right", SwingConstants.RIGHT, "SwingConstants.RIGHT"), new EnumerationValue("Trailing", SwingConstants.TRAILING, "SwingConstants.TRAILING") }, "horizontalAlignment", "horizontalTextPosition"); } } swingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/JXListBeanInfo.java0000644000175000017500000000251511245712667031537 0ustar drazzibdrazzib/* * $Id: JXListBeanInfo.java 3475 2009-08-28 08:30:47Z kleopatra $ * * Copyright 2004 Sun Microsystems, Inc., 4150 Network Circle, * Santa Clara, California 95054, U.S.A. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ package org.jdesktop.swingx; /** * * @author rbair */ public class JXListBeanInfo extends BeanInfoSupport { /** Creates a new instance of JXListBeanInfo */ public JXListBeanInfo() { super(JXList.class); } @Override protected void initialize() { setPreferred(true, "highlighters"); // setPropertyEditor(HighlighterPropertyEditor.class, "highlighters"); } } swingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/JXRadioGroupBeanInfo.java0000644000175000017500000000226611245712667032702 0ustar drazzibdrazzib/* * $Id: JXRadioGroupBeanInfo.java 3475 2009-08-28 08:30:47Z kleopatra $ * * Copyright 2004 Sun Microsystems, Inc., 4150 Network Circle, * Santa Clara, California 95054, U.S.A. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ package org.jdesktop.swingx; /** * * @author rbair */ public class JXRadioGroupBeanInfo extends BeanInfoSupport { public JXRadioGroupBeanInfo() { super(JXRadioGroup.class); } @Override protected void initialize() { } } swingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/JXMultiSplitPaneBeanInfo.java0000644000175000017500000000341011336015671033521 0ustar drazzibdrazzib/* * $Id: JXMultiSplitPaneBeanInfo.java 3611 2010-02-14 15:50:17Z luano $ * * Copyright 2006 Sun Microsystems, Inc., 4150 Network Circle, * Santa Clara, California 95054, U.S.A. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ package org.jdesktop.swingx; import java.beans.BeanDescriptor; /** * Bean info for {@link org.jdesktop.swingx.JXMultiSplitPane} component. * * @author Hans Muller */ public class JXMultiSplitPaneBeanInfo extends BeanInfoSupport { public JXMultiSplitPaneBeanInfo() { super(JXMultiSplitPane.class); } // model, dividerSize, continuousLayout, dividerPainter @Override protected void initialize() { BeanDescriptor bd = getBeanDescriptor(); bd.setName("JXMultiSplitPanee"); bd.setShortDescription("JXMultiSplitPane is a container with multiple areas divided by splitters."); bd.setValue("isContainer", Boolean.TRUE); setCategory("MultiSplitPane Layout, Appearance", "model", "dividerSize", "continuousLayout", "dividerPainter"); } } swingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/painter/0000755000175000017500000000000011534506031027537 5ustar drazzibdrazzib././@LongLink0000000000000000000000000000015500000000000011566 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/painter/RectanglePainterBeanInfo.javaswingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/painter/RectanglePainterBeanI0000644000175000017500000000076511245712667033635 0ustar drazzibdrazzibpackage org.jdesktop.swingx.painter; import org.jdesktop.swingx.BeanInfoSupport; /** * BeanInfo of RectanglePainter. * * @author joshy, Jan Stola */ public class RectanglePainterBeanInfo extends BeanInfoSupport { /** Creates a new instance of RectanglePainterBeanInfo */ public RectanglePainterBeanInfo() { super(RectanglePainter.class); } @Override protected void initialize() { setPreferred(true, "roundHeight", "roundWidth", "rounded"); } } ././@LongLink0000000000000000000000000000015100000000000011562 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/painter/MattePainterBeanInfo.javaswingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/painter/MattePainterBeanInfo.0000644000175000017500000000070611245712667033557 0ustar drazzibdrazzibpackage org.jdesktop.swingx.painter; import org.jdesktop.swingx.BeanInfoSupport; /** * BeanInfo of MattePainter. * * @author joshy, Jan Stola */ public class MattePainterBeanInfo extends BeanInfoSupport { /** Creates a new instance of MattePainterBeanInfo */ public MattePainterBeanInfo() { super(MattePainter.class); } @Override protected void initialize() { setPreferred(true, "fillPaint"); } } ././@LongLink0000000000000000000000000000015000000000000011561 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/painter/TextPainterBeanInfo.javaswingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/painter/TextPainterBeanInfo.j0000644000175000017500000000071011245712667033576 0ustar drazzibdrazzibpackage org.jdesktop.swingx.painter; import org.jdesktop.swingx.BeanInfoSupport; /** * BeanInfo of TextPainter. * * @author joshy, Jan Stola */ public class TextPainterBeanInfo extends BeanInfoSupport { /** Creates a new instance of TextPainterBeanInfo */ public TextPainterBeanInfo() { super(TextPainter.class); } @Override protected void initialize() { setPreferred(true, "font", "text"); } } ././@LongLink0000000000000000000000000000015400000000000011565 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/painter/CompoundPainterBeanInfo.javaswingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/painter/CompoundPainterBeanIn0000644000175000017500000000072111245712667033663 0ustar drazzibdrazzibpackage org.jdesktop.swingx.painter; import org.jdesktop.swingx.BeanInfoSupport; /** * BeanInfo of CompoundPainter. * * @author Richard, Jan Stola */ public class CompoundPainterBeanInfo extends BeanInfoSupport { /** Creates a new instance of CompoundPainterBeanInfo */ public CompoundPainterBeanInfo() { super(CompoundPainter.class); } @Override protected void initialize() { setPreferred(true, "painters"); } } ././@LongLink0000000000000000000000000000015100000000000011562 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/painter/AlphaPainterBeanInfo.javaswingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/painter/AlphaPainterBeanInfo.0000644000175000017500000000060111245712667033524 0ustar drazzibdrazzibpackage org.jdesktop.swingx.painter; import org.jdesktop.swingx.BeanInfoSupport; /** * BeanInfo of AlphaPainter. * * @author Jan Stola */ public class AlphaPainterBeanInfo extends BeanInfoSupport { public AlphaPainterBeanInfo() { super(AlphaPainter.class); } @Override protected void initialize() { setPreferred(true, "alpha"); } } ././@LongLink0000000000000000000000000000015100000000000011562 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/painter/ImagePainterBeanInfo.javaswingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/painter/ImagePainterBeanInfo.0000644000175000017500000000203211245712667033521 0ustar drazzibdrazzibpackage org.jdesktop.swingx.painter; import org.jdesktop.swingx.BeanInfoSupport; import org.jdesktop.swingx.editors.EnumPropertyEditor; import org.jdesktop.swingx.editors.ImageEditor; import org.jdesktop.swingx.editors.ImageURLEditor; /** * BeanInfo of ImagePainter. * * @author joshy, Jan Stola */ public class ImagePainterBeanInfo extends BeanInfoSupport { /** Creates a new instance of ImagePainterBeanInfo */ public ImagePainterBeanInfo() { super(ImagePainter.class); } @Override protected void initialize() { setPropertyEditor(ImageEditor.class,"image"); setPropertyEditor(ImageURLEditor.class,"imageString"); setPropertyEditor(ScaleTypePropertyEditor.class, "scaleType"); setPreferred(true, "image", "imageString", "scaleType", "scaleToFit"); } public static final class ScaleTypePropertyEditor extends EnumPropertyEditor { public ScaleTypePropertyEditor() { super(ImagePainter.ScaleType.class); } } } ././@LongLink0000000000000000000000000000016000000000000011562 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/painter/CheckerboardPainterBeanInfo.javaswingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/painter/CheckerboardPainterBe0000644000175000017500000000121311245712667033642 0ustar drazzibdrazzibpackage org.jdesktop.swingx.painter; import org.jdesktop.swingx.BeanInfoSupport; import org.jdesktop.swingx.editors.PaintPropertyEditor; /** * BeanInfo of CheckerboardPainter. * * @author Richard, Jan Stola */ public class CheckerboardPainterBeanInfo extends BeanInfoSupport { /** Creates a new instance of CheckerboardPainterBeanInfo */ public CheckerboardPainterBeanInfo() { super(CheckerboardPainter.class); } @Override protected void initialize() { setPreferred(true, "darkPaint", "lightPaint", "squareSize"); setPropertyEditor(PaintPropertyEditor.class, "darkPaint", "lightPaint"); } } ././@LongLink0000000000000000000000000000016000000000000011562 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/painter/AbstractAreaPainterBeanInfo.javaswingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/painter/AbstractAreaPainterBe0000644000175000017500000000164311245712667033631 0ustar drazzibdrazzibpackage org.jdesktop.swingx.painter; import org.jdesktop.swingx.BeanInfoSupport; import org.jdesktop.swingx.editors.EnumPropertyEditor; import org.jdesktop.swingx.editors.Paint2PropertyEditor; /** * BeanInfo of AbstractAreaPainter. * * @author Jan Stola */ public class AbstractAreaPainterBeanInfo extends BeanInfoSupport { public AbstractAreaPainterBeanInfo() { super(AbstractAreaPainter.class); } public AbstractAreaPainterBeanInfo(Class clazz) { super(clazz); } @Override protected void initialize() { setPropertyEditor(StylePropertyEditor.class, "style"); setPropertyEditor(Paint2PropertyEditor.class, "fillPaint", "borderPaint"); } public static final class StylePropertyEditor extends EnumPropertyEditor { public StylePropertyEditor() { super(AbstractAreaPainter.Style.class); } } } ././@LongLink0000000000000000000000000000016200000000000011564 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/painter/AbstractLayoutPainterBeanInfo.javaswingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/painter/AbstractLayoutPainter0000644000175000017500000000232611245712667033766 0ustar drazzibdrazzibpackage org.jdesktop.swingx.painter; import org.jdesktop.swingx.BeanInfoSupport; import org.jdesktop.swingx.editors.EnumPropertyEditor; /** * BeanInfo of AbstractLayoutPainter. * * @author Jan Stola */ public class AbstractLayoutPainterBeanInfo extends BeanInfoSupport { public AbstractLayoutPainterBeanInfo() { super(AbstractLayoutPainter.class); } public AbstractLayoutPainterBeanInfo(Class clazz) { super(clazz); } @Override protected void initialize() { setPropertyEditor(HorizontalAlignmentPropertyEditor.class, "horizontalAlignment"); setPropertyEditor(VerticalAlignmentPropertyEditor.class, "verticalAlignment"); } public static final class HorizontalAlignmentPropertyEditor extends EnumPropertyEditor { public HorizontalAlignmentPropertyEditor() { super(AbstractLayoutPainter.HorizontalAlignment.class); } } public static final class VerticalAlignmentPropertyEditor extends EnumPropertyEditor { public VerticalAlignmentPropertyEditor() { super(AbstractLayoutPainter.VerticalAlignment.class); } } } ././@LongLink0000000000000000000000000000015400000000000011565 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/painter/AbstractPainterBeanInfo.javaswingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/painter/AbstractPainterBeanIn0000644000175000017500000000230311245712667033640 0ustar drazzibdrazzibpackage org.jdesktop.swingx.painter; import org.jdesktop.swingx.BeanInfoSupport; import org.jdesktop.swingx.editors.EnumPropertyEditor; /** * BeanInfo of AbstractPainter. * * @author Richard, Jan Stola */ public class AbstractPainterBeanInfo extends BeanInfoSupport { /** Creates a new instance of BackgroundPainterBeanInfo */ public AbstractPainterBeanInfo() { super(AbstractPainter.class); } public AbstractPainterBeanInfo(Class clazz) { super(clazz); } @Override protected void initialize() { setHidden(true, "class", "propertyChangeListeners", "vetoableChangeListeners", "filters"); setPropertyEditor(InterpolationPropertyEditor.class, "interpolation"); //move some items into "Appearance" and some into "Behavior" //setCategory("Rendering Hints", "antialiasing", "fractionalMetrics", "interpolation"); setExpert(true, "antialiasing","cacheable","interpolation"); } public static final class InterpolationPropertyEditor extends EnumPropertyEditor { public InterpolationPropertyEditor() { super(AbstractPainter.Interpolation.class); } } } ././@LongLink0000000000000000000000000000015500000000000011566 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/painter/PinstripePainterBeanInfo.javaswingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/painter/PinstripePainterBeanI0000644000175000017500000000112511245712667033675 0ustar drazzibdrazzibpackage org.jdesktop.swingx.painter; import org.jdesktop.swingx.BeanInfoSupport; import org.jdesktop.swingx.editors.Paint2PropertyEditor; /** * BeanInfo of PinstripePainter. * * @author Richard */ public class PinstripePainterBeanInfo extends BeanInfoSupport { /** Creates a new instance of PinstripePainterBeanInfo */ public PinstripePainterBeanInfo() { super(PinstripePainter.class); } @Override protected void initialize() { setPreferred(true, "angle", "spacing", "paint"); setPropertyEditor(Paint2PropertyEditor.class, "paint"); } } swingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/painter/effects/0000755000175000017500000000000011534506031031156 5ustar drazzibdrazzib././@LongLink0000000000000000000000000000016500000000000011567 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/painter/effects/NeonBorderEffectBeanInfo.javaswingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/painter/effects/NeonBorderEff0000644000175000017500000000230011245712667033567 0ustar drazzibdrazzib/* * NeonBorderEffectBeanInfo.java * * Created on October 30, 2006, 1:14 AM * * To change this template, choose Tools | Template Manager * and open the template in the editor. */ package org.jdesktop.swingx.painter.effects; import org.jdesktop.swingx.editors.EnumPropertyEditor; import org.jdesktop.swingx.editors.Paint2PropertyEditor; import org.jdesktop.swingx.painter.AbstractPainterBeanInfo; /** * * @author joshy */ public class NeonBorderEffectBeanInfo extends AbstractPainterBeanInfo { /** Creates a new instance of NeonBorderEffectBeanInfo */ public NeonBorderEffectBeanInfo() { super(NeonBorderEffect.class); } @Override protected void initialize() { super.initialize(); setPropertyEditor(Paint2PropertyEditor.class, "edgeColor", "centerColor", "brushColor"); //setPropertyEditor(InsetsPropertyEditor.class,"insets"); setPropertyEditor(BorderPositionPropertyEditor.class,"borderPosition"); } public static final class BorderPositionPropertyEditor extends EnumPropertyEditor { public BorderPositionPropertyEditor() { super(NeonBorderEffect.BorderPosition.class); } } } ././@LongLink0000000000000000000000000000016700000000000011571 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/painter/effects/AbstractPathEffectBeanInfo.javaswingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/painter/effects/AbstractPathE0000644000175000017500000000134711245712667033610 0ustar drazzibdrazzib/* * ShapeEffectBeanInfo.java * * Created on August 23, 2006, 4:54 PM * * To change this template, choose Tools | Template Manager * and open the template in the editor. */ package org.jdesktop.swingx.painter.effects; import org.jdesktop.swingx.BeanInfoSupport; import org.jdesktop.swingx.editors.Paint2PropertyEditor; /** * * @author joshy */ public class AbstractPathEffectBeanInfo extends BeanInfoSupport { /** Creates a new instance of ShapeEffectBeanInfo */ public AbstractPathEffectBeanInfo() { super(AbstractAreaEffect.class); } @Override protected void initialize() { setHidden(true, "class"); setPropertyEditor(Paint2PropertyEditor.class, "brushColor"); } } ././@LongLink0000000000000000000000000000015100000000000011562 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/painter/ShapePainterBeanInfo.javaswingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/painter/ShapePainterBeanInfo.0000644000175000017500000000107111245712667033541 0ustar drazzibdrazzibpackage org.jdesktop.swingx.painter; import org.jdesktop.swingx.BeanInfoSupport; import org.jdesktop.swingx.editors.ShapePropertyEditor; /** * BeanInfo of ShapePainter. * * @author joshy, Jan Stola */ public class ShapePainterBeanInfo extends BeanInfoSupport { /** Creates a new instance of ShapePainterBeanInfo */ public ShapePainterBeanInfo() { super(ShapePainter.class); } @Override protected void initialize() { setPropertyEditor(ShapePropertyEditor.class, "shape"); setPreferred(true, "shape"); } } ././@LongLink0000000000000000000000000000015100000000000011562 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/painter/GlossPainterBeanInfo.javaswingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/painter/GlossPainterBeanInfo.0000644000175000017500000000156311245712667033576 0ustar drazzibdrazzibpackage org.jdesktop.swingx.painter; import org.jdesktop.swingx.BeanInfoSupport; import org.jdesktop.swingx.editors.EnumPropertyEditor; import org.jdesktop.swingx.editors.Paint2PropertyEditor; /** * BeanInfo of GlossPainter. * * @author joshy */ public class GlossPainterBeanInfo extends BeanInfoSupport { /** Creates a new instance of GlossPainterBeanInfo */ public GlossPainterBeanInfo() { super(GlossPainter.class); } @Override protected void initialize() { setPropertyEditor(Paint2PropertyEditor.class,"paint"); setPropertyEditor(GlossPositionPropertyEditor.class, "position"); } public static final class GlossPositionPropertyEditor extends EnumPropertyEditor { public GlossPositionPropertyEditor() { super(GlossPainter.GlossPosition.class); } } } ././@LongLink0000000000000000000000000000014600000000000011566 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/JXCollapsiblePaneBeanInfo.javaswingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/JXCollapsiblePaneBeanInfo.jav0000644000175000017500000000416511245712667033523 0ustar drazzibdrazzib/* * $Id: JXCollapsiblePaneBeanInfo.java 3475 2009-08-28 08:30:47Z kleopatra $ * * Copyright 2004 Sun Microsystems, Inc., 4150 Network Circle, * Santa Clara, California 95054, U.S.A. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ package org.jdesktop.swingx; import java.beans.BeanDescriptor; import org.jdesktop.swingx.editors.EnumPropertyEditor; /** * BeanInfo class for JXCollapsiblePane. * * @author Jan Stola */ public class JXCollapsiblePaneBeanInfo extends BeanInfoSupport { /** Constructor for the JXCollapsiblePaneBeanInfo object */ public JXCollapsiblePaneBeanInfo() { super(JXCollapsiblePane.class); } @Override protected void initialize() { BeanDescriptor bd = getBeanDescriptor(); bd.setName("JXCollapsiblePane"); bd.setShortDescription("A pane which hides its content with an animation."); bd.setValue("isContainer", Boolean.TRUE); bd.setValue("containerDelegate", "getContentPane"); setPreferred(true, "animated", "collapsed", "orientation", "direction"); setBound(true, "animated", "collapsed", "orientation", "direction"); setPropertyEditor(DirectionPropertyEditor.class, "direction"); } public static final class DirectionPropertyEditor extends EnumPropertyEditor { public DirectionPropertyEditor() { super(JXCollapsiblePane.Direction.class); } } } ././@LongLink0000000000000000000000000000015000000000000011561 Lustar rootrootswingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/JXTaskPaneContainerBeanInfo.javaswingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/JXTaskPaneContainerBeanInfo.j0000644000175000017500000000314211245712667033502 0ustar drazzibdrazzib/* * $Id: JXTaskPaneContainerBeanInfo.java 3475 2009-08-28 08:30:47Z kleopatra $ * * Copyright 2004 Sun Microsystems, Inc., 4150 Network Circle, * Santa Clara, California 95054, U.S.A. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ package org.jdesktop.swingx; import java.beans.BeanDescriptor; /** * BeanInfo class for JXTaskPaneContainer. */ public class JXTaskPaneContainerBeanInfo extends BeanInfoSupport { /** Constructor for the JXTaskPaneContainerBeanInfo object */ public JXTaskPaneContainerBeanInfo() { super(JXTaskPaneContainer.class); } @Override protected void initialize() { BeanDescriptor bd = getBeanDescriptor(); // setup bean descriptor in constructor. bd.setName("JXTaskPaneContainer"); bd.setShortDescription("A component that contains JXTaskPanes."); bd.setValue("isContainer", Boolean.TRUE); } } swingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/JXTreeBeanInfo.java0000644000175000017500000000223611245712667031523 0ustar drazzibdrazzib/* * $Id: JXTreeBeanInfo.java 3475 2009-08-28 08:30:47Z kleopatra $ * * Copyright 2004 Sun Microsystems, Inc., 4150 Network Circle, * Santa Clara, California 95054, U.S.A. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ package org.jdesktop.swingx; /** * * @author rbair */ public class JXTreeBeanInfo extends BeanInfoSupport { public JXTreeBeanInfo() { super(JXTree.class); } @Override protected void initialize() { } } swingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/JXTaskPaneBeanInfo.java0000644000175000017500000000364511245712667032337 0ustar drazzibdrazzib/* * $Id: JXTaskPaneBeanInfo.java 3475 2009-08-28 08:30:47Z kleopatra $ * * Copyright 2004 Sun Microsystems, Inc., 4150 Network Circle, * Santa Clara, California 95054, U.S.A. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ package org.jdesktop.swingx; import java.beans.BeanDescriptor; /** * BeanInfo class for JXTaskPane. * * @author rbair, Jan Stola */ public class JXTaskPaneBeanInfo extends BeanInfoSupport { /** Constructor for the JXTaskPaneBeanInfo object */ public JXTaskPaneBeanInfo() { super(JXTaskPane.class); } @Override protected void initialize() { BeanDescriptor bd = getBeanDescriptor(); // setup bean descriptor in constructor. bd.setName("JXTaskPane"); bd.setShortDescription("JXTaskPane is a container for tasks and other arbitrary components."); bd.setValue("isContainer", Boolean.TRUE); bd.setValue("containerDelegate", "getContentPane"); setPreferred(true, "title", "icon", "special"); setPreferred(true, "animated", "scrollOnExpand", "collapsed", "font"); setBound(true, "title", "icon", "special", "scrollOnExpand", "collapsed"); setPreferred(false, "border"); } }swingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/JXTextFieldBeanInfo.java0000644000175000017500000000044511323133151032472 0ustar drazzibdrazzibpackage org.jdesktop.swingx; public class JXTextFieldBeanInfo extends JXPromptBeanInfo { public JXTextFieldBeanInfo() { this(JXTextField.class); } protected JXTextFieldBeanInfo(Class beanClass) { super(beanClass); setPreferred(true, "outerMargin"); } } swingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/HorizontalLayoutBeanInfo.java0000644000175000017500000000054511245712667033712 0ustar drazzibdrazzibpackage org.jdesktop.swingx; /** * BeanInfo class for HorizontalLayout. * * @author Jan Stola */ public class HorizontalLayoutBeanInfo extends BeanInfoSupport { public HorizontalLayoutBeanInfo() { super(HorizontalLayout.class); } @Override protected void initialize() { setHidden(true, "class"); } } swingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/JXImageViewBeanInfo.java0000644000175000017500000000116611245712667032502 0ustar drazzibdrazzib/* * JXImageViewBeanInfo.java * * Created on May 3, 2007, 5:20:50 PM * * To change this template, choose Tools | Template Manager * and open the template in the editor. */ package org.jdesktop.swingx; /** * * @author joshy */ public class JXImageViewBeanInfo extends BeanInfoSupport{ public JXImageViewBeanInfo() { super(JXImageView.class); } @Override protected void initialize() { setPreferred(true, "icon"); setPreferred(true, "dragEnabled"); setPreferred(true, "imageString"); setPreferred(true, "imageURL"); setPreferred(true, "image"); } } swingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/JXPromptBeanInfo.java0000644000175000017500000000261011323133151032057 0ustar drazzibdrazzibpackage org.jdesktop.swingx; import java.awt.Font; import javax.swing.text.JTextComponent; import org.jdesktop.swingx.prompt.PromptSupport.FocusBehavior; public abstract class JXPromptBeanInfo extends BeanInfoSupport { protected JXPromptBeanInfo(Class beanClass) { super(beanClass); } protected void initialize() { setPreferred(true, "prompt", "promptForeground", "promptBackground", "focusBehavior", "promptFontStyle"); setEnumerationValues(new EnumerationValue[] { new EnumerationValue("Default", null, "null"), new EnumerationValue("Plain", Font.PLAIN, "java.awt.Font.PLAIN"), new EnumerationValue("Bold", Font.BOLD, "java.awt.Font.BOLD"), new EnumerationValue("Italic", Font.ITALIC, "java.awt.Font.ITALIC"), new EnumerationValue("Bold & Italic", Font.BOLD | Font.ITALIC, "java.awt.Font.BOLD | java.awt.Font.ITALIC") }, "promptFontStyle"); setEnumerationValues(new EnumerationValue[] { new EnumerationValue("Show", FocusBehavior.SHOW_PROMPT, "org.jdesktop.xwingx.prompt.PromptSupport.FocusBehavior.SHOW_PROMPT"), new EnumerationValue("Hide", FocusBehavior.HIDE_PROMPT, "org.jdesktop.swingx.prompt.PromptSupport.FocusBehavior.HIDE_PROMPT"), new EnumerationValue("Highlight", FocusBehavior.HIGHLIGHT_PROMPT, "org.jdesktop.swingx.prompt.PromptSupport.FocusBehavior.HIGHLIGHT_PROMPT"), }, "focusBehavior"); } } swingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/JXHeaderBeanInfo.java0000644000175000017500000000377711245712667032027 0ustar drazzibdrazzib/* * $Id: JXHeaderBeanInfo.java 3475 2009-08-28 08:30:47Z kleopatra $ * * Copyright 2004 Sun Microsystems, Inc., 4150 Network Circle, * Santa Clara, California 95054, U.S.A. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ package org.jdesktop.swingx; import java.beans.BeanDescriptor; import org.jdesktop.swingx.editors.EnumPropertyEditor; /** * BeanInfo class for JXHeader. * * @author rbair, Jan Stola */ public class JXHeaderBeanInfo extends BeanInfoSupport { public JXHeaderBeanInfo() { super(JXHeader.class); } @Override protected void initialize() { BeanDescriptor bd = getBeanDescriptor(); bd.setValue("isContainer", Boolean.FALSE); setPreferred(true, "title", "titleFont", "titleForeground"); setPreferred(true, "description", "descriptionFont", "descriptionForeground"); setPreferred(true, "icon", "iconPosition"); setPreferred(false, "alpha", "background", "backgroundPainter", "border", "inheritAlpha", "opaque", "font"); setPropertyEditor(IconPositionPropertyEditor.class, "iconPosition"); } public static final class IconPositionPropertyEditor extends EnumPropertyEditor { public IconPositionPropertyEditor() { super(JXHeader.IconPosition.class); } } } swingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/VerticalLayoutBeanInfo.java0000644000175000017500000000053511245712667033331 0ustar drazzibdrazzibpackage org.jdesktop.swingx; /** * BeanInfo class for VerticalLayout. * * @author Jan Stola */ public class VerticalLayoutBeanInfo extends BeanInfoSupport { public VerticalLayoutBeanInfo() { super(VerticalLayout.class); } @Override protected void initialize() { setHidden(true, "class"); } } swingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/JXHyperlinkBeanInfo.java0000644000175000017500000000254211245712667032571 0ustar drazzibdrazzib/* * $Id: JXHyperlinkBeanInfo.java 3475 2009-08-28 08:30:47Z kleopatra $ * * Copyright 2004 Sun Microsystems, Inc., 4150 Network Circle, * Santa Clara, California 95054, U.S.A. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ package org.jdesktop.swingx; /** * BeanInfo class for JXHyperlink. * * @author rbair, Jan Stola */ public class JXHyperlinkBeanInfo extends BeanInfoSupport { public JXHyperlinkBeanInfo() { super(JXHyperlink.class); } @Override protected void initialize() { setPreferred(true, "clickedColor", "unclickedColor"); setPreferred(false, "background", "foreground", "border"); } } swingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/JXTableBeanInfo.java0000644000175000017500000000224211245712667031650 0ustar drazzibdrazzib/* * $Id: JXTableBeanInfo.java 3475 2009-08-28 08:30:47Z kleopatra $ * * Copyright 2004 Sun Microsystems, Inc., 4150 Network Circle, * Santa Clara, California 95054, U.S.A. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ package org.jdesktop.swingx; /** * * @author rbair */ public class JXTableBeanInfo extends BeanInfoSupport { public JXTableBeanInfo() { super(JXTable.class); } @Override protected void initialize() { } } swingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/JXLabelBeanInfo.java0000644000175000017500000000116111245712667031637 0ustar drazzibdrazzibpackage org.jdesktop.swingx; /** * BeanInfo class for JXLabel. * * @author Jan Stola */ public class JXLabelBeanInfo extends BeanInfoSupport { public JXLabelBeanInfo() { super(JXLabel.class); } @Override protected void initialize() { String iconName = "resources/" + JXLabel.class.getSimpleName(); setSmallMonoIconName(iconName + "16.png"); setMonoIconName(iconName + "32.png"); setPreferred(true, "foregroundPainter", "backgroundPainter"); setPreferred(true, "lineWrap", "maxLineSpan"); setPreferred(true, "textRotation"); } } swingx-1.6.2-sources/swingx-beaninfo/src/main/java/org/jdesktop/swingx/JXSearchFieldBeanInfo.java0000644000175000017500000000212211323133151032745 0ustar drazzibdrazzibpackage org.jdesktop.swingx; import org.jdesktop.swingx.JXSearchField.LayoutStyle; import org.jdesktop.swingx.JXSearchField.SearchMode; public class JXSearchFieldBeanInfo extends JXTextFieldBeanInfo { public JXSearchFieldBeanInfo() { super(JXSearchField.class); } protected void initialize() { super.initialize(); setPreferred(true, "layoutStyle", "searchMode", "instantSearchDelay", "findPopupMenu", "useNativeSearchFieldIfPossible", "recentSearchesSaveKey"); setEnumerationValues( new EnumerationValue[] { new EnumerationValue("Mac", LayoutStyle.MAC, "org.jdesktop.swingx.JXSearchField.LayoutStyle.MAC"), new EnumerationValue("Vista", LayoutStyle.VISTA, "org.jdesktop.swingx.JXSearchField.LayoutStyle.VISTA") }, "layoutStyle"); setEnumerationValues( new EnumerationValue[] { new EnumerationValue("Instant", SearchMode.INSTANT, "org.jdesktop.swingx.JXSearchField.SearchMode.INSTANT"), new EnumerationValue("Regular", SearchMode.REGULAR, "org.jdesktop.swingx.JXSearchField.SearchMode.REGULAR") }, "searchMode"); } } swingx-1.6.2-sources/swingx-beaninfo/src/test/0000755000175000017500000000000011445661416021270 5ustar drazzibdrazzibswingx-1.6.2-sources/swingx-beaninfo/src/test/resources/0000755000175000017500000000000011445661416023302 5ustar drazzibdrazzibswingx-1.6.2-sources/swingx-beaninfo/src/test/java/0000755000175000017500000000000011445661416022211 5ustar drazzibdrazzibswingx-1.6.2-sources/build.xml0000644000175000017500000001437711043157425016253 0ustar drazzibdrazzib Builds, tests, and runs the project swingx. org/jdesktop/swingx/JXCollapsiblePane.class org/jdesktop/swingx/JXDatePicker.class org/jdesktop/swingx/JXHyperlink.class org/jdesktop/swingx/JXGraph.class org/jdesktop/swingx/JXPanel.class org/jdesktop/swingx/JXTaskPaneContainer.class org/jdesktop/swingx/JXTreeTable.class org/jdesktop/swingx/JXTitledPanel.class org/jdesktop/swingx/JXEditorPane.class org/jdesktop/swingx/JXErrorPane.class org/jdesktop/swingx/JXList.class org/jdesktop/swingx/JXImagePanel.class org/jdesktop/swingx/JXHeader.class org/jdesktop/swingx/JXTable.class org/jdesktop/swingx/JXTree.class org/jdesktop/swingx/JXTipOfTheDay.class org/jdesktop/swingx/JXRadioGroup.class org/jdesktop/swingx/JXTitledSeparator.class org/jdesktop/swingx/JXFindBar.class org/jdesktop/swingx/JXFindPanel.class org/jdesktop/swingx/JXFrame.class org/jdesktop/swingx/JXGlassBox.class org/jdesktop/swingx/JXGradientChooser.class org/jdesktop/swingx/JXLoginDialog.class org/jdesktop/swingx/JXLoginPane.class org/jdesktop/swingx/JXMonthView.class org/jdesktop/swingx/JXMultiSplitPane.class org/jdesktop/swingx/JXMultiThumbSlider.class org/jdesktop/swingx/JXRootPane.class org/jdesktop/swingx/JXSearchPanel.class org/jdesktop/swingx/JXStatusBar.class org/jdesktop/swingx/JXTaskPane.class org/jdesktop/swingx/auth/DefaultUserNameStore.class org/jdesktop/swingx/auth/JAASLoginService.class org/jdesktop/swingx/auth/JDBCLoginService.class org/jdesktop/swingx/border/DropShadowBorder.class org/jdesktop/swingx/painter/AlphaPainter.class org/jdesktop/swingx/painter/CheckerboardPainter.class org/jdesktop/swingx/painter/CompoundPainter.class org/jdesktop/swingx/painter/GlossPainter.class org/jdesktop/swingx/painter/ImagePainter.class org/jdesktop/swingx/painter/MattePainter.class org/jdesktop/swingx/painter/PinstripePainter.class org/jdesktop/swingx/painter/RectanglePainter.class org/jdesktop/swingx/painter/ShapePainter.class org/jdesktop/swingx/painter/TextPainter.class swingx-1.6.2-sources/swingx.iml0000644000175000017500000000327310532626766016460 0ustar drazzibdrazzib swingx-1.6.2-sources/.DS_Store0000644000175000017500000001400411445665012016102 0ustar drazzibdrazzibBud1%  @ @ @ @ E%DSDB` @ @ @swingx-1.6.2-sources/swinglabs-build-impl.xml0000644000175000017500000003266611272101362021173 0ustar drazzibdrazzib ${build.branch} ${RELEASE_DSTAMP_LONG} ${projectname} Using custom javadoc target: core src: ${javadoc.core.src} core external: ${javadoc.core.linkexternal} core packagelist: ${javadoc.core.packagelist} importing to CVS... swingx-1.6.2-sources/checkstyle.xml0000644000175000017500000002546611075217620017312 0ustar drazzibdrazzib swingx-1.6.2-sources/COPYING0000644000175000017500000006456510571067571015500 0ustar drazzibdrazzibCopyright (c) 2005-2006 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, California 95054, U.S.A. All rights reserved. Use is subject to license terms below. Sun, Sun Microsystems and the Sun logo are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries. Notice: This product is covered by U.S. export control laws and may be subject to the export or import laws in other countries. These laws may restrict the fields of use for this software and may require you to secure government authorization. GNU LESSER GENERAL PUBLIC LICENSE Version 2.1, February 1999 Copyright (C) 1991, 1999 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. [This is the first released version of the Lesser GPL. It also counts as the successor of the GNU Library Public License, version 2, hence the version number 2.1.] Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This license, the Lesser General Public License, applies to some specially designated software packages--typically libraries--of the Free Software Foundation and other authors who decide to use it. You can use it too, but we suggest you first think carefully about whether this license or the ordinary General Public License is the better strategy to use in any particular case, based on the explanations below. When we speak of free software, we are referring to freedom of use, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish); that you receive source code or can get it if you want it; that you can change the software and use pieces of it in new free programs; and that you are informed that you can do these things. To protect your rights, we need to make restrictions that forbid distributors to deny you these rights or to ask you to surrender these rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library or if you modify it. For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link other code with the library, you must provide complete object files to the recipients, so that they can relink them with the library after making changes to the library and recompiling it. And you must show them these terms so they know their rights. We protect your rights with a two-step method: (1) we copyright the library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library. To protect each distributor, we want to make it very clear that there is no warranty for the free library. Also, if the library is modified by someone else and passed on, the recipients should know that what they have is not the original version, so that the original author's reputation will not be affected by problems that might be introduced by others. Finally, software patents pose a constant threat to the existence of any free program. We wish to make sure that a company cannot effectively restrict the users of a free program by obtaining a restrictive license from a patent holder. Therefore, we insist that any patent license obtained for a version of the library must be consistent with the full freedom of use specified in this license. Most GNU software, including some libraries, is covered by the ordinary GNU General Public License. This license, the GNU Lesser General Public License, applies to certain designated libraries, and is quite different from the ordinary General Public License. We use this license for certain libraries in order to permit linking those libraries into non-free programs. When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom. The Lesser General Public License permits more lax criteria for linking other code with the library. We call this license the "Lesser" General Public License because it does Less to protect the user's freedom than the ordinary General Public License. It also provides other free software developers Less of an advantage over competing non-free programs. These disadvantages are the reason we use the ordinary General Public License for many libraries. However, the Lesser license provides advantages in certain special circumstances. For example, on rare occasions, there may be a special need to encourage the widest possible use of a certain library, so that it becomes a de-facto standard. To achieve this, non-free programs must be allowed to use the library. A more frequent case is that a free library does the same job as widely used non-free libraries. In this case, there is little to gain by limiting the free library to free software only, so we use the Lesser General Public License. In other cases, permission to use a particular library in non-free programs enables a greater number of people to use a large body of free software. For example, permission to use the GNU C Library in non-free programs enables many more people to use the whole GNU operating system, as well as its variant, the GNU/Linux operating system. Although the Lesser General Public License is Less protective of the users' freedom, it does ensure that the user of a program that is linked with the Library has the freedom and the wherewithal to run that program using a modified version of the Library. The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, whereas the latter must be combined with the library in order to run. GNU LESSER GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any software library or other program which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Lesser General Public License (also called "this License"). Each licensee is addressed as "you". A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables. The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".) "Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library. Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does. 1. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) The modified work must itself be a software library. b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change. c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License. d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful. (For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library. In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices. Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy. This option is useful when you wish to copy part of the code of the Library into a program that is not a library. 4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange. If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code. 5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables. When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law. If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.) Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. 6. As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications. You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things: a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.) b) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with. c) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution. d) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. e) Verify that the user has already received a copy of these materials or that you have already sent this user a copy. For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the materials to be distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute. 7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above. b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it. 10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties with this License. 11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 13. The Free Software Foundation may publish revised and/or new versions of the Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. 14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Libraries If you develop a new library, and you want it to be of the greatest possible use to the public, we recommend making it free software that everyone can redistribute and change. You can do so by permitting redistribution under these terms (or, alternatively, under the terms of the ordinary General Public License). To apply these terms, attach the following notices to the library. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Also add information on how to contact you by electronic and paper mail. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the library, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the library `Frob' (a library for tweaking knobs) written by James Random Hacker. , 1 April 1990 Ty Coon, President of Vice swingx-1.6.2-sources/styles/0000755000175000017500000000000011534506031015735 5ustar drazzibdrazzibswingx-1.6.2-sources/styles/eclipse_formatter_jw.xml0000644000175000017500000006706310707646723022720 0ustar drazzibdrazzib swingx-1.6.2-sources/header.regex0000644000175000017500000000177211075221226016705 0ustar drazzibdrazzib^/\*\s*$ ^ \* \$.*\s*$ ^ \*\s*$ ^ \* Copyright 20\d\d Sun Microsystems, Inc\., 4150 Network Circle,\s*$ ^ \* Santa Clara, California 95054, U\.S\.A\. All rights reserved\.\s*$ ^ \*\s*$ ^ \* This library is free software; you can redistribute it and/or\s*$ ^ \* modify it under the terms of the GNU Lesser General Public\s*$ ^ \* License as published by the Free Software Foundation; either\s*$ ^ \* version 2\.1 of the License, or \(at your option\) any later version\.\s*$ ^ \*\s*$ ^ \* This library is distributed in the hope that it will be useful,\s*$ ^ \* but WITHOUT ANY WARRANTY; without even the implied warranty of\s*$ ^ \* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE\. See the GNU\s*$ ^ \* Lesser General Public License for more details\.\s*$ ^ \*\s*$ ^ \* You should have received a copy of the GNU Lesser General Public\s*$ ^ \* License along with this library; if not, write to the Free Software\s*$ ^ \* Foundation, Inc\., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA\s*$ ^ \*/\s*$ swingx-1.6.2-sources/swingx-unused/0000755000175000017500000000000011534506031017232 5ustar drazzibdrazzibswingx-1.6.2-sources/swingx-unused/pom.xml0000644000175000017500000000160411436021722020550 0ustar drazzibdrazzib swingx-project org.swinglabs 1.6.2-SNAPSHOT ../pom.xml 4.0.0 swingx-unused jar SwingX Unused Code that was removed from the codebase. It lives on here in a pseudo-stable form. org.swinglabs swingx-core 1.6.2-SNAPSHOT swingx-1.6.2-sources/swingx-unused/src/0000755000175000017500000000000011445661367020040 5ustar drazzibdrazzibswingx-1.6.2-sources/swingx-unused/src/main/0000755000175000017500000000000011445661370020756 5ustar drazzibdrazzibswingx-1.6.2-sources/swingx-unused/src/main/resources/0000755000175000017500000000000011445661370022770 5ustar drazzibdrazzibswingx-1.6.2-sources/swingx-unused/src/main/java/0000755000175000017500000000000011445661367021705 5ustar drazzibdrazzibswingx-1.6.2-sources/swingx-unused/src/main/java/org/0000755000175000017500000000000011445661367022474 5ustar drazzibdrazzibswingx-1.6.2-sources/swingx-unused/src/main/java/org/jdesktop/0000755000175000017500000000000011445661367024317 5ustar drazzibdrazzibswingx-1.6.2-sources/swingx-unused/src/main/java/org/jdesktop/swingx/0000755000175000017500000000000011534506031025617 5ustar drazzibdrazzibswingx-1.6.2-sources/swingx-unused/src/main/java/org/jdesktop/swingx/event/0000755000175000017500000000000011534506031026740 5ustar drazzibdrazzibswingx-1.6.2-sources/swingx-unused/src/main/java/org/jdesktop/swingx/event/MessageSource.java0000644000175000017500000000345711034305341032355 0ustar drazzibdrazzib/* * $Id: MessageSource.java 2977 2008-07-07 03:17:53Z kschaefe $ * * Copyright 2004 Sun Microsystems, Inc., 4150 Network Circle, * Santa Clara, California 95054, U.S.A. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ package org.jdesktop.swingx.event; /** * Interface for MessageListener registrations methods and indicates that the * implementation class is a source of MessageEvents. * MessageListeners which are interested in MessageEvents from this class can * register themselves as listeners. * * @see MessageEvent * @see MessageListener * @author Mark Davidson */ public interface MessageSource { /** * Register the MessageListener. * * @param l the listener to register */ void addMessageListener(MessageListener l); /** * Unregister the MessageListener from the MessageSource. * * @param l the listener to unregister */ void removeMessageListener(MessageListener l); /** * Returns an array of listeners. * * @return an non null array of MessageListeners. */ MessageListener[] getMessageListeners(); } swingx-1.6.2-sources/swingx-unused/src/main/java/org/jdesktop/swingx/event/MessageListener.java0000644000175000017500000000355411034305341032700 0ustar drazzibdrazzib/* * $Id: MessageListener.java 2977 2008-07-07 03:17:53Z kschaefe $ * * Copyright 2004 Sun Microsystems, Inc., 4150 Network Circle, * Santa Clara, California 95054, U.S.A. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ package org.jdesktop.swingx.event; /** * The listener interface for recieving message events. * The class interested in handling {@link MessageEvent}s should implement * this interface. The complementary interface would be {@link MessageSource} * * @see MessageEvent * @see MessageSource * @author Mark Davidson */ public interface MessageListener extends java.util.EventListener { /** * Invoked to send a message to a listener. The {@link MessageEvent} * is qualified depending on context. It may represent a simple * transient messages to be passed to the ui or it could * represent a serious exception which has occured during * processing. *

* The implementation of this interface should come up * with a consistent policy to reflect the business logic * of the application. * * @param evt an object which describes the message */ void message(MessageEvent evt); } swingx-1.6.2-sources/swingx-unused/src/main/java/org/jdesktop/swingx/event/ProgressSource.java0000644000175000017500000000350111034305341032563 0ustar drazzibdrazzib/* * $Id: ProgressSource.java 2977 2008-07-07 03:17:53Z kschaefe $ * * Copyright 2004 Sun Microsystems, Inc., 4150 Network Circle, * Santa Clara, California 95054, U.S.A. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ package org.jdesktop.swingx.event; /** * Interface for ProgressListener registrations methods and indicates that the * implementation class is a source of ProgressEvents. * ProgressListeners which are interested in ProgressEvents from this class can * register themselves as listeners. * * @see ProgressEvent * @see ProgressListener * @author Mark Davidson */ public interface ProgressSource { /** * Register the ProgressListener. * * @param l the listener to register */ void addProgressListener(ProgressListener l); /** * Unregister the ProgressListener from the ProgressSource. * * @param l the listener to unregister */ void removeProgressListener(ProgressListener l); /** * Returns an array of listeners. * * @return an non null array of ProgressListeners. */ ProgressListener[] getProgressListeners(); } swingx-1.6.2-sources/swingx-unused/src/main/java/org/jdesktop/swingx/event/MessageEvent.java0000644000175000017500000000776411034305341032203 0ustar drazzibdrazzib/* * $Id: MessageEvent.java 2977 2008-07-07 03:17:53Z kschaefe $ * * Copyright 2004 Sun Microsystems, Inc., 4150 Network Circle, * Santa Clara, California 95054, U.S.A. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ package org.jdesktop.swingx.event; import java.util.EventObject; import java.util.logging.Level; /** * Represents a message passed from a MessageSource. This class contains * properties which indicate the level of the message, a string which represents * the user visible message text and an indication of when the message * occured. *

* The message could represent text messages and exceptions. If this message * represents an exception then the value of {@link #getThrowable} will be * non null. Messages are categorized using the * {@link java.util.logging.Level } constants. *

*/ public class MessageEvent extends EventObject { private Object value; private long when; private Level level = Level.INFO; // XXX This is only defined so that subclasses can get access to // EventObject(Object) public MessageEvent(Object source) { super(source); } /** * Create a Level.INFO message. */ public MessageEvent(Object source, Object message) { this(source, message, Level.INFO); } public MessageEvent(Object source, Object value, Level level) { this(source, value, level, 0L); } /** * Constructs a MessageEvent * * @param source the object that originated the event * @param value an object which represents the contents of the event * @param level indicate the level of the event * @param when timestamp of the message */ public MessageEvent(Object source, Object value, Level level, long when) { super(source); this.value = value; this.level = level; this.when = when; } /** * Returns the value as a String message. If the value represents an * exception, then the message from the exception is returned. * * @return the value as a String or the empty string if the value is null */ public String getMessage() { if (value != null) { Throwable t = getThrowable(); if (t != null) { return t.getMessage(); } else { return value.toString(); } } else { return ""; } } /** * Returns the value as a Throwable. * * @return the exception passed as a value or null if it is not an exception */ public Throwable getThrowable() { if (value != null && value instanceof Throwable) { return (Throwable)value; } return null; } /** * Returns the contents of the message. This level is based on the * context of the message. */ public Object getValue() { return value; } /** * Time in milliseconds when the event occured. */ public long getWhen() { return when; } /** * Returns the level of message. This method will always return a valid * value. The default is set to Level.INFO. * * @return the level of the message */ public Level getLevel() { if (level == null) { level = Level.INFO; } return level; } public String toString() { String message = "value=" + getMessage(); message += ", level=" + getLevel(); message += ", when=" + getWhen(); return message; } } swingx-1.6.2-sources/swingx-unused/src/main/java/org/jdesktop/swingx/event/ProgressListener.java0000644000175000017500000000367311034305341033122 0ustar drazzibdrazzib/* * $Id: ProgressListener.java 2977 2008-07-07 03:17:53Z kschaefe $ * * Copyright 2004 Sun Microsystems, Inc., 4150 Network Circle, * Santa Clara, California 95054, U.S.A. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ package org.jdesktop.swingx.event; /** * The listener interface for recieving progress events. * The class interested in handling {@link ProgressEvent}s should implement * this interface. The complementary interface would be {@link MessageSource} * * @see ProgressEvent * @see MessageSource * @author Mark Davidson */ public interface ProgressListener extends java.util.EventListener { /** * Indicates the start of a long operation. The ProgressEvent * will indicate if this is a determinate or indeterminate operation. * * @param evt an object which describes the event */ void progressStarted(ProgressEvent evt); /** * Indicates that the operation has stopped. */ void progressEnded(ProgressEvent evt); /** * Invoked when an increment of progress is sent. This may not be * sent if an indeterminate progress has started. * * @param evt an object which describes the event */ void progressIncremented(ProgressEvent evt); } swingx-1.6.2-sources/swingx-unused/src/main/java/org/jdesktop/swingx/event/SelectionListener.java0000644000175000017500000000244311034305341033235 0ustar drazzibdrazzib/* * $Id: SelectionListener.java 2977 2008-07-07 03:17:53Z kschaefe $ * * Copyright 2004 Sun Microsystems, Inc., 4150 Network Circle, * Santa Clara, California 95054, U.S.A. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ package org.jdesktop.swingx.event; import javax.swing.event.ListSelectionEvent; import javax.swing.event.TreeSelectionEvent; /** * Listener for receiving global selection change notifications. * @author Amy Fowler * @version 1.0 */ public interface SelectionListener { void valueChanged(ListSelectionEvent e); void valueChanged(TreeSelectionEvent e); } swingx-1.6.2-sources/swingx-unused/src/main/java/org/jdesktop/swingx/event/MessageSourceSupport.java0000644000175000017500000001553411034305341033751 0ustar drazzibdrazzib/* * $Id: MessageSourceSupport.java 2977 2008-07-07 03:17:53Z kschaefe $ * * Copyright 2004 Sun Microsystems, Inc., 4150 Network Circle, * Santa Clara, California 95054, U.S.A. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ package org.jdesktop.swingx.event; import java.util.logging.Level; import javax.swing.event.EventListenerList; /** * A helper class which is an implementation of a message source and a progress * source. This class manages the listener list and has convenience methods to * fire MessageEvents and ProgressEvents. * * @see MessageEvent * @see MessageSource * @see ProgressEvent * @see ProgressSource * @author Mark Davidson */ public class MessageSourceSupport implements MessageSource, ProgressSource { private EventListenerList listeners; private Object source; /** * Creates an MessageSource instance using the source object as the source * of events. */ public MessageSourceSupport(Object source) { if (source == null) { throw new IllegalArgumentException("source Object cannot be null"); } this.source = source; this.listeners = new EventListenerList(); } public void addMessageListener(MessageListener l) { if (l != null) { listeners.add(MessageListener.class, l); } } public void removeMessageListener(MessageListener l) { if (l != null) { listeners.remove(MessageListener.class, l); } } public MessageListener[] getMessageListeners() { return (MessageListener[]) listeners .getListeners(MessageListener.class); } // Perhaps the ProgressListener interface should be defined public void addProgressListener(ProgressListener l) { if (l != null) { listeners.add(ProgressListener.class, l); } } public void removeProgressListener(ProgressListener l) { if (l != null) { listeners.remove(ProgressListener.class, l); } } public ProgressListener[] getProgressListeners() { return (ProgressListener[]) listeners .getListeners(ProgressListener.class); } /** * Indicates that a long operation is staring. For a determinite progress * operation, the minimum value should be less than the maximum value. For * inderminate operations, set minimum equal to maximum. * * @param minimum the minimum value of the progress operation * @param maximum the maximum value of the progress operation */ public void fireProgressStarted(int minimum, int maximum) { fireProgressStarted(new ProgressEvent(source, minimum, maximum)); } /** * Indicates that an increment of progress has occured. * * @param progress total value of the progress operation. This value should * be between the minimum and maximum values */ public void fireProgressIncremented(int progress) { fireProgressIncremented(new ProgressEvent(source, progress)); } /** * Indicates that a progress operation has completed */ public void fireProgressEnded() { fireProgressEnded(new ProgressEvent(source)); } /** * Create a SEVERE MessageEvent which represents an Exception. *

* NOTE: This will create an event which is by default at Level.SEVERE * * @see java.util.logging.Level */ public void fireException(Throwable t) { fireMessage(new MessageEvent(source, t, Level.SEVERE)); } /** * Send a Level.INFO, non-timestamped message to the list of listeners. * * @param message a string of text to send */ public void fireMessage(String message) { fireMessage(message, Level.INFO); } /** * Send a non-timestamped message to the list of listeners. * * @param value the contents of the message * @param level the level of message. */ public void fireMessage(Object value, Level level) { fireMessage(value, level, 0L); } /** * Send a message to the list of listeners with a timestamp. * * @param value the contents of the message * @param level the level of message * @param when timestamp of when this event occured */ public void fireMessage(Object value, Level level, long when) { fireMessage(new MessageEvent(source, value, level, when)); } /** * Send the MessageEvent to the list of listeners. * * @param evt a non-null MessageEvent. */ public void fireMessage(MessageEvent evt) { if (evt == null) { throw new IllegalArgumentException("the event should not be null"); } MessageListener[] ls = getMessageListeners(); for (int i = 0; i < ls.length; i++) { ls[i].message(evt); } } /** * Send the ProgessEvent to the list of listeners. * * @param evt a non-null ProgressEvent */ public void fireProgressIncremented(ProgressEvent evt) { if (evt == null) { throw new IllegalArgumentException("the event should not be null"); } ProgressListener[] ls = getProgressListeners(); for (int i = 0; i < ls.length; i++) { ls[i].progressIncremented(evt); } } /** * Send the ProgessEvent to the list of listeners. * * @param evt a non-null ProgressEvent */ public void fireProgressStarted(ProgressEvent evt) { if (evt == null) { throw new IllegalArgumentException("the event should not be null"); } ProgressListener[] ls = getProgressListeners(); for (int i = 0; i < ls.length; i++) { ls[i].progressStarted(evt); } } /** * Send the ProgessEvent to the list of listeners. * * @param evt a non-null ProgressEvent */ public void fireProgressEnded(ProgressEvent evt) { if (evt == null) { throw new IllegalArgumentException("the event should not be null"); } ProgressListener[] ls = getProgressListeners(); for (int i = 0; i < ls.length; i++) { ls[i].progressEnded(evt); } } } swingx-1.6.2-sources/swingx-unused/src/main/java/org/jdesktop/swingx/event/ProgressEvent.java0000644000175000017500000000560011034305341032406 0ustar drazzibdrazzib/* * $Id: ProgressEvent.java 2977 2008-07-07 03:17:53Z kschaefe $ * * Copyright 2004 Sun Microsystems, Inc., 4150 Network Circle, * Santa Clara, California 95054, U.S.A. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ package org.jdesktop.swingx.event; /** * A MessageEvent that represents the cycle of a long running operation. * Use the constructors to indicate the stage of the operation. * * @author Mark Davidson */ public class ProgressEvent extends MessageEvent { private int minimum; private int maximum; private int progress; private boolean indeterminate = true; /** * Constructs an indeterminate progress event. */ public ProgressEvent(Object source) { super(source); } /** * Constructs a progress event used to indicate an increment of progress. * * @param source the object which orignated the event * @param progress the value between min and max which indicates * the progression of the operation. */ public ProgressEvent(Object source, int progress) { super(source); this.progress = progress; setIndeterminate(false); } /** * Constructs a ProgressEvent which indicates the beginning of a long operation. * For a determinite progress operation, the minimum value should be less than * the maximum value. For indterminate operations, set minimum equal to maximum. * * @param source the object which orignated the event * @param min the minimum value of the progress operation * @param max the maximum value of the progress operation */ public ProgressEvent(Object source, int min, int max) { super(source); setMaximum(max); setMinimum(min); setIndeterminate(max == min); } private void setMaximum(int max) { this.maximum = max; } public int getMaximum() { return maximum; } private void setMinimum(int min) { this.minimum = min; } public int getMinimum() { return minimum; } private void setIndeterminate(boolean indeterminate) { this.indeterminate = indeterminate; } public boolean isIndeterminate() { return indeterminate; } public int getProgress() { return progress; } } swingx-1.6.2-sources/swingx-unused/src/main/java/org/jdesktop/swingx/plaf/0000755000175000017500000000000011534506031026541 5ustar drazzibdrazzibswingx-1.6.2-sources/swingx-unused/src/main/java/org/jdesktop/swingx/plaf/ContextMenuAuxTextUI.java0000644000175000017500000000711711025706365033453 0ustar drazzibdrazzib/* * $Id: ContextMenuAuxTextUI.java 2951 2008-06-17 10:07:49Z kleopatra $ * * Copyright 2004 Sun Microsystems, Inc., 4150 Network Circle, * Santa Clara, California 95054, U.S.A. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ package org.jdesktop.swingx.plaf; import java.awt.Graphics; import java.awt.Point; import java.awt.Rectangle; import java.awt.event.MouseListener; import javax.swing.JComponent; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.TextUI; import javax.swing.text.BadLocationException; import javax.swing.text.EditorKit; import javax.swing.text.JTextComponent; import javax.swing.text.View; import javax.swing.text.Position.Bias; /** * @author Jeanette Winzenburg */ public class ContextMenuAuxTextUI extends TextUI { private MouseListener mouseHandler; public static ComponentUI createUI(JComponent c) { return new ContextMenuAuxTextUI(); } public void installUI(JComponent comp) { comp.addMouseListener(getMouseListener()); } public void uninstallUI(JComponent comp) { comp.removeMouseListener(getMouseListener()); } private MouseListener getMouseListener() { if (mouseHandler == null) { mouseHandler = createPopupHandler(); } return mouseHandler; } private MouseListener createPopupHandler() { return new ContextMenuHandler(createContextSource()); } private ContextMenuSource createContextSource() { return new TextContextMenuSource(); } public void update(Graphics g, JComponent c) { } public Rectangle modelToView(JTextComponent t, int pos) throws BadLocationException { // TODO Auto-generated method stub return null; } public Rectangle modelToView(JTextComponent t, int pos, Bias bias) throws BadLocationException { // TODO Auto-generated method stub return null; } public int viewToModel(JTextComponent t, Point pt) { // TODO Auto-generated method stub return 0; } public int viewToModel(JTextComponent t, Point pt, Bias[] biasReturn) { // TODO Auto-generated method stub return 0; } public int getNextVisualPositionFrom(JTextComponent t, int pos, Bias b, int direction, Bias[] biasRet) throws BadLocationException { // TODO Auto-generated method stub return 0; } public void damageRange(JTextComponent t, int p0, int p1) { // TODO Auto-generated method stub } public void damageRange(JTextComponent t, int p0, int p1, Bias firstBias, Bias secondBias) { // TODO Auto-generated method stub } public EditorKit getEditorKit(JTextComponent t) { // TODO Auto-generated method stub return null; } public View getRootView(JTextComponent t) { // TODO Auto-generated method stub return null; } } ././@LongLink0000000000000000000000000000015100000000000011562 Lustar rootrootswingx-1.6.2-sources/swingx-unused/src/main/java/org/jdesktop/swingx/plaf/ContextMenuAuxScrollBarUI.javaswingx-1.6.2-sources/swingx-unused/src/main/java/org/jdesktop/swingx/plaf/ContextMenuAuxScrollBarUI.0000644000175000017500000000457711025706365033557 0ustar drazzibdrazzib/* * $Id: ContextMenuAuxScrollBarUI.java 2951 2008-06-17 10:07:49Z kleopatra $ * * Copyright 2004 Sun Microsystems, Inc., 4150 Network Circle, * Santa Clara, California 95054, U.S.A. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ package org.jdesktop.swingx.plaf; import java.awt.Graphics; import java.awt.event.MouseListener; import javax.swing.JComponent; import javax.swing.JScrollBar; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.ScrollBarUI; /** * @author Jeanette Winzenburg */ public class ContextMenuAuxScrollBarUI extends ScrollBarUI { private MouseListener mouseHandler; private JScrollBar scrollBar; public static ComponentUI createUI(JComponent c) { return new ContextMenuAuxScrollBarUI(); } // PENDING: need to listen to orientation changes // public void installUI(JComponent comp) { this.scrollBar = (JScrollBar) comp; comp.addMouseListener(getMouseListener()); } // PENDING: need to cleanup references - // DelegateAction holds a reference to the comp! public void uninstallUI(JComponent comp) { comp.removeMouseListener(getMouseListener()); this.scrollBar = null; } private MouseListener getMouseListener() { if (mouseHandler == null) { mouseHandler = createPopupHandler(); } return mouseHandler; } private MouseListener createPopupHandler() { return new ContextMenuHandler(createContextSource()); } private ContextMenuSource createContextSource() { return new ScrollBarContextMenuSource(scrollBar.getOrientation()); } public void update(Graphics g, JComponent c) { } } swingx-1.6.2-sources/swingx-unused/src/main/java/org/jdesktop/swingx/plaf/ContextMenuHandler.java0000644000175000017500000000777111025706365033176 0ustar drazzibdrazzib/* * $Id: ContextMenuHandler.java 2951 2008-06-17 10:07:49Z kleopatra $ * * Copyright 2004 Sun Microsystems, Inc., 4150 Network Circle, * Santa Clara, California 95054, U.S.A. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ package org.jdesktop.swingx.plaf; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import javax.swing.ActionMap; import javax.swing.JComponent; import javax.swing.JPopupMenu; import javax.swing.SwingUtilities; /** * Responsible for showing the default PopupMenu. * * @author Jeanette Winzenburg */ public class ContextMenuHandler extends MouseAdapter { private ActionMap actionMap; private ContextMenuSource contextMenuSource; private JPopupMenu popup; /** * creates a context handler for TextContextMenuSource. * */ public ContextMenuHandler() { this(null); } /** * creates a context handler for the given ContextMenuSource. * Defaults to TextContextMenuSource if source == null. * * @param source */ public ContextMenuHandler(ContextMenuSource source) { contextMenuSource = source; } // --------------------- MouseListener public void mousePressed(MouseEvent e) { maybeShowContext(e); } public void mouseReleased(MouseEvent e) { maybeShowContext(e); } private void maybeShowContext(final MouseEvent e) { if (!e.isPopupTrigger() || !e.getComponent().isEnabled()) return; if (e.getComponent().hasFocus()) { showContextPopup(e); } else { ((JComponent) e.getComponent()).grabFocus(); SwingUtilities.invokeLater(new Runnable() { public void run() { showContextPopup(e); } }); } } private void showContextPopup(MouseEvent e) { showContextPopup((JComponent) e.getComponent(), e.getX(), e .getY()); } private void showContextPopup(JComponent component, int x, int y) { JPopupMenu popup = getPopupMenu(component, true); popup.show(component, x, y); } /** * @param component * @return */ private JPopupMenu getPopupMenu(JComponent component, boolean synchEnabled) { if (popup == null) { popup = new JPopupMenu(); ActionMap map = getActionMap(component); String[] keys = getContextMenuSource().getKeys(); for (int i = 0; i < keys.length; i++) { if (keys[i] != null) { popup.add(map.get(keys[i])); } else { popup.addSeparator(); } } } if (synchEnabled) { getContextMenuSource().updateActionEnabled(component, actionMap); } return popup; } private ActionMap getActionMap(JComponent component) { if (actionMap == null) { actionMap = getContextMenuSource().createActionMap(component); } else { // todo: replace actions with components? } return actionMap; } private ContextMenuSource getContextMenuSource() { if (contextMenuSource == null) { contextMenuSource = new TextContextMenuSource(); } return contextMenuSource; } } swingx-1.6.2-sources/swingx-unused/src/main/java/org/jdesktop/swingx/plaf/ContextMenuSource.java0000644000175000017500000000723611025706365033055 0ustar drazzibdrazzib/* * $Id: ContextMenuSource.java 2951 2008-06-17 10:07:49Z kleopatra $ * * Copyright 2004 Sun Microsystems, Inc., 4150 Network Circle, * Santa Clara, California 95054, U.S.A. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ package org.jdesktop.swingx.plaf; import java.awt.event.ActionEvent; import java.util.HashMap; import java.util.Map; import javax.swing.AbstractAction; import javax.swing.Action; import javax.swing.ActionMap; import javax.swing.JComponent; import javax.swing.UIManager; /** * @author Jeanette Winzenburg */ public abstract class ContextMenuSource { private Map names; public abstract String[] getKeys(); public String getName(String actionKey) { return getNames().get(actionKey); } public abstract void updateActionEnabled(JComponent component, ActionMap map); /** * returns an ActionMap for usage in default context menus. * @param component * @return an ActionMap for usage in default context menus */ public ActionMap createActionMap(JComponent component) { ActionMap map = new ActionMap(); String[] keys = getKeys(); for (int i = 0; i < keys.length; i++) { if (keys[i] != null) { Action action = createDelegateAction(component, keys[i]); if (action != null) { map.put(keys[i], action); } } } return map; } protected Map getNames() { if (names == null) { names = new HashMap(); initNames(names); } return names; } protected String getValue(String key, String defaultValue) { String value = UIManager.getString(getResourcePrefix() + key); return value != null ? value : defaultValue; } protected abstract void initNames(Map names); protected abstract String getResourcePrefix(); protected Action createDelegateAction(JComponent component, String actionKey) { Action action = component.getActionMap().get(actionKey); if (action != null) { return new DelegateAction(getName(actionKey), action, component); } return null; } public static class DelegateAction extends AbstractAction { private Action delegatee; private JComponent target; public DelegateAction(String name, Action delegatee, JComponent target) { super(name); this.delegatee = delegatee; this.target = target; } public void actionPerformed(ActionEvent e) { delegatee.actionPerformed(createActionEvent(e)); } private ActionEvent createActionEvent(ActionEvent e) { if (target != null) { return new ActionEvent(target, e.getID(), e.getActionCommand(), e.getWhen(), e.getModifiers()); } return e; } } } swingx-1.6.2-sources/swingx-unused/src/main/java/org/jdesktop/swingx/plaf/ContextMenuAuxLF.java0000644000175000017500000000636411025706365032575 0ustar drazzibdrazzib/* * $Id: ContextMenuAuxLF.java 2951 2008-06-17 10:07:49Z kleopatra $ * * Copyright 2004 Sun Microsystems, Inc., 4150 Network Circle, * Santa Clara, California 95054, U.S.A. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ package org.jdesktop.swingx.plaf; import javax.swing.LookAndFeel; import javax.swing.UIDefaults; /** * Support for context dependent popup menus. * * It's meant to be used as a auxiliary LF on top of main LF: * *

 
 *  
 *  UIManager.addAuxiliaryLookAndFeel(new ContextMenuAuxLF());
 *  
 *  
* * There are core-issues involved, which might or might not * impair its usefulness, for details please see a thread in * the SwingLabs forum:

* * * Experimental: default context menus for textcomponents/scrollbars * * * * @author Jeanette Winzenburg */ public class ContextMenuAuxLF extends LookAndFeel { private UIDefaults myDefaults; public String getName() { return "ContextMenuAuxLF"; } public String getID() { return getName(); } public String getDescription() { return "Auxiliary LF to Support Context Dependent Popups"; } public boolean isNativeLookAndFeel() { return false; } public boolean isSupportedLookAndFeel() { return true; } public UIDefaults getDefaults() { if (myDefaults == null) { initDefaults(); } return myDefaults; } private void initDefaults() { myDefaults = new MyUIDefaults(); Object[] mydefaults = { "TextFieldUI", "org.jdesktop.swingx.plaf.ContextMenuAuxTextUI", "EditorPaneUI", "org.jdesktop.swingx.plaf.ContextMenuAuxTextUI", "PasswordFieldUI", "org.jdesktop.swingx.plaf.ContextMenuAuxTextUI", "TextAreaUI", "org.jdesktop.swingx.plaf.ContextMenuAuxTextUI", "TextPaneUI", "org.jdesktop.swingx.plaf.ContextMenuAuxTextUI", "ScrollBarUI", "org.jdesktop.swingx.plaf.ContextMenuAuxScrollBarUI", }; myDefaults.putDefaults(mydefaults); } /** * UIDefaults without error msg. * */ private static class MyUIDefaults extends UIDefaults { /** * Overridden to do nothing. * There will be many errors because this is incomplete as * of component types by design * */ @Override protected void getUIError(String msg) { } } } swingx-1.6.2-sources/swingx-unused/src/main/java/org/jdesktop/swingx/plaf/ContextLAFCheck.java0000644000175000017500000000353211334742676032333 0ustar drazzibdrazzib/* * $Id$ * * Copyright 2009 Sun Microsystems, Inc., 4150 Network Circle, * Santa Clara, California 95054, U.S.A. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA * */ package org.jdesktop.swingx.plaf; import java.util.logging.Logger; import javax.swing.JTextField; import javax.swing.LookAndFeel; import javax.swing.UIManager; import org.jdesktop.swingx.InteractiveTestCase; public class ContextLAFCheck extends InteractiveTestCase { @SuppressWarnings("unused") private static final Logger LOG = Logger.getLogger(ContextLAFCheck.class .getName()); public static void main(String[] args) { ContextLAFCheck test = new ContextLAFCheck(); UIManager.addAuxiliaryLookAndFeel(new ContextMenuAuxLF()); try { test.runInteractiveTests(); } catch (Exception e) { e.printStackTrace(); } } public void interactiveContextMenu() { JTextField field = new JTextField(); LOG.info("text ui " + field.getUI()); LOG.info("" + UIManager.getLookAndFeel()); LookAndFeel lf; } } swingx-1.6.2-sources/swingx-unused/src/main/java/org/jdesktop/swingx/plaf/TextContextMenuSource.java0000644000175000017500000000651711025706365033723 0ustar drazzibdrazzib/* * $Id: TextContextMenuSource.java 2951 2008-06-17 10:07:49Z kleopatra $ * * Copyright 2004 Sun Microsystems, Inc., 4150 Network Circle, * Santa Clara, California 95054, U.S.A. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ package org.jdesktop.swingx.plaf; import java.util.Map; import javax.swing.ActionMap; import javax.swing.JComponent; import javax.swing.JPasswordField; import javax.swing.text.DefaultEditorKit; import javax.swing.text.JTextComponent; /** * @author Jeanette Winzenburg */ public class TextContextMenuSource extends ContextMenuSource{ String UNDO = "Undo"; String CUT = "Cut"; String COPY = "Copy"; String PASTE = "Paste"; String DELETE = "Delete"; String SELECT_ALL = "Select All"; String[] keys = { DefaultEditorKit.cutAction, DefaultEditorKit.copyAction, DefaultEditorKit.pasteAction, DefaultEditorKit.deleteNextCharAction, null, // separator DefaultEditorKit.selectAllAction }; String[] defaultValues = { CUT, COPY, PASTE, DELETE, null, SELECT_ALL, }; public String[] getKeys() { return keys; } public void updateActionEnabled(JComponent component, ActionMap map) { if (!(component instanceof JTextComponent)) return; JTextComponent textComponent = (JTextComponent) component; boolean selectedText = textComponent.getSelectionEnd() - textComponent.getSelectionStart() > 0; boolean containsText = textComponent.getDocument().getLength() > 0; boolean editable = textComponent.isEditable(); boolean copyProtected = (textComponent instanceof JPasswordField); boolean dataOnClipboard = textComponent.getToolkit() .getSystemClipboard().getContents(null) != null; map.get(DefaultEditorKit.cutAction).setEnabled( !copyProtected && editable && selectedText); map.get(DefaultEditorKit.copyAction).setEnabled( !copyProtected && selectedText); map.get(DefaultEditorKit.pasteAction).setEnabled( editable && dataOnClipboard); map.get(DefaultEditorKit.deleteNextCharAction).setEnabled( editable && selectedText); map.get(DefaultEditorKit.selectAllAction).setEnabled(containsText); } protected void initNames(Map names) { for (int i = 0; i < keys.length; i++) { if (keys[i] != null) { names.put(keys[i], getValue(keys[i], defaultValues[i])); } } } /** * @return resource prefix */ protected String getResourcePrefix() { return "DefaultEditorKit."; } } ././@LongLink0000000000000000000000000000015200000000000011563 Lustar rootrootswingx-1.6.2-sources/swingx-unused/src/main/java/org/jdesktop/swingx/plaf/ScrollBarContextMenuSource.javaswingx-1.6.2-sources/swingx-unused/src/main/java/org/jdesktop/swingx/plaf/ScrollBarContextMenuSource0000644000175000017500000000544411025706365033740 0ustar drazzibdrazzib/* * $Id: ScrollBarContextMenuSource.java 2951 2008-06-17 10:07:49Z kleopatra $ * * Copyright 2004 Sun Microsystems, Inc., 4150 Network Circle, * Santa Clara, California 95054, U.S.A. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ package org.jdesktop.swingx.plaf; import java.util.Map; import javax.swing.ActionMap; import javax.swing.JComponent; import javax.swing.JScrollBar; /** * @author Jeanette Winzenburg */ public class ScrollBarContextMenuSource extends ContextMenuSource { String[] keys = { /*null, null, need to add scrollHere!*/ "minScroll", "maxScroll", null, "negativeUnitIncrement", "positiveUnitIncrement", null, "negativeBlockIncrement", "positiveBlockIncrement", }; String[] defaultValuesVertical = { "Top", "Bottom", null, "Scroll Up", "Scroll Down", null, "Page Up", "Page Down", }; String[] defaultValuesHorizontal = { "Left Edge", "Right Edge", null, "Scroll Left", "Scroll Right", null, "Page Left", "Page Right", }; private int orientation; public ScrollBarContextMenuSource(int orientation) { this.orientation = orientation; } public String[] getKeys() { // TODO Auto-generated method stub return keys; } public void updateActionEnabled(JComponent component, ActionMap map) { // TODO Auto-generated method stub } protected void initNames(Map names) { for (int i = 0; i < keys.length; i++) { if (keys[i] != null) { names.put(keys[i], getValue(keys[i], orientation == JScrollBar.VERTICAL ? defaultValuesVertical[i] : defaultValuesHorizontal[i])); } } } protected String getResourcePrefix() { return "JScrollBar." + getOrientationToken(); } private String getOrientationToken() { return orientation == JScrollBar.VERTICAL ? "vertical." : "horizontal."; } } swingx-1.6.2-sources/swingx-unused/src/main/java/org/jdesktop/swingx/hyperlink/0000755000175000017500000000000011534506031027624 5ustar drazzibdrazzibswingx-1.6.2-sources/swingx-unused/src/main/java/org/jdesktop/swingx/hyperlink/LinkRenderer.java0000644000175000017500000002745111044076732033072 0ustar drazzibdrazzib/* * $Id: LinkRenderer.java 2998 2008-07-30 14:42:34Z kleopatra $ * * Copyright 2004 Sun Microsystems, Inc., 4150 Network Circle, * Santa Clara, California 95054, U.S.A. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ package org.jdesktop.swingx.hyperlink; import org.jdesktop.swingx.JXHyperlink; import org.jdesktop.swingx.rollover.RolloverProducer; import org.jdesktop.swingx.rollover.RolloverRenderer; import javax.swing.*; import javax.swing.border.Border; import javax.swing.border.EmptyBorder; import javax.swing.table.TableCellEditor; import javax.swing.table.TableCellRenderer; import javax.swing.tree.TreeCellRenderer; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; /** * A Renderer/Editor for "Links".

* * The renderer is configured with a LinkAction. * It's mostly up to the developer to guarantee that the all * values which are passed into the getXXRendererComponent(...) are * compatible with T: she can provide a runtime class to check against. * If it isn't the renderer will configure the * action with a null target.

* * It's recommended to not use the given Action anywhere else in code, * as it is updated on each getXXRendererComponent() call which might * lead to undesirable side-effects.

* * Internally uses JXHyperlink for both CellRenderer and CellEditor * It's recommended to not reuse the same instance for both functions.

* * PENDING: make renderer respect selected cell state. * * PENDING: TreeCellRenderer has several issues * - no icons * - usual background highlighter issues * * @author Jeanette Winzenburg * * @deprecated (pre-0.9.3) (pre-0.9.2) as renderer (the editor part is not yet handled), * use the SwingX DefaultXXRenderer configured with a * {@link org.jdesktop.swingx.renderer.HyperlinkProvider} instead * Will not be removed before the editor part is handled as well. * Changed my mind - it's not recommended to mis-use the editability for * to introduce link behaviour. Just in case someone still does, moved to * waitingroom. */ @Deprecated public class LinkRenderer extends AbstractCellEditor implements TableCellRenderer, TableCellEditor, ListCellRenderer, TreeCellRenderer, RolloverRenderer { private static final Border noFocusBorder = new EmptyBorder(1, 1, 1, 1); private JXHyperlink linkButton; private LinkAction linkAction; protected Class targetClass; /** * Instantiate a LinkRenderer with null LinkAction and null * targetClass. * */ public LinkRenderer() { this(null, null); } /** * Instantiate a LinkRenderer with the LinkAction to use with * target values. * * @param linkAction the action that acts on values. */ public LinkRenderer(LinkAction linkAction) { this(linkAction, null); } /** * Instantiate a LinkRenderer with a LinkAction to use with * target values and the type of values the action can cope with.

* * It's up to developers to take care of matching types. * * @param linkAction the action that acts on values. * @param targetClass the type of values the action can handle. */ public LinkRenderer(LinkAction linkAction, Class targetClass) { linkButton = createHyperlink(); linkButton.addActionListener(createEditorActionListener()); setLinkAction(linkAction, targetClass); } /** * Sets the class the action is supposed to handle.

* * PENDING: make sense to set independently of LinkAction? * * @param targetClass the type of values the action can handle. */ public void setTargetClass(Class targetClass) { this.targetClass = targetClass; } /** * Sets the LinkAction for handling the values.

* * The action is assumed to be able to cope with any type, that is * this method is equivalent to setLinkAction(linkAction, null). * * @param linkAction */ public void setLinkAction(LinkAction linkAction) { setLinkAction(linkAction, null); } /** * Sets the LinkAction for handling the values and the * class the action can handle.

* * PENDING: in the general case this is not independent of the * targetClass. Need api to set them combined? * * @param linkAction */ @SuppressWarnings("unchecked") public void setLinkAction(LinkAction linkAction, Class targetClass) { if (linkAction == null) { linkAction = createDefaultLinkAction(); } setTargetClass(targetClass); this.linkAction = linkAction; linkButton.setAction(linkAction); } /** * decides if the given target is acceptable for setTarget. *

* * target == null is acceptable for all types. * targetClass == null is the same as Object.class * * @param target the target to set. * @return true if setTarget can cope with the object, * false otherwise. * */ public boolean isTargetable(Object target) { // we accept everything if (targetClass == null) return true; if (target == null) return true; return targetClass.isAssignableFrom(target.getClass()); } /** * creates and returns the hyperlink component used for rendering * the value and activating the action on the target value. * * @return the hyperlink renderer component. */ protected JXHyperlink createHyperlink() { return new JXHyperlink() { @Override public void updateUI() { super.updateUI(); setBorderPainted(true); setOpaque(true); } }; } /** * default action - does nothing... except showing the target. * * @return a default LinkAction for showing the target. */ protected LinkAction createDefaultLinkAction() { return new LinkAction(null) { public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub } }; } //----------------------- Implement RolloverRenderer public boolean isEnabled() { return true; } public void doClick() { linkButton.doClick(); } //---------------------- Implement ListCellRenderer public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { if ((value != null) && !isTargetable(value)) { value = null; } linkAction.setTarget(value); if (list != null) { Point p = (Point) list .getClientProperty(RolloverProducer.ROLLOVER_KEY); if (/*cellHasFocus ||*/ (p != null && (p.y >= 0) && (p.y == index))) { linkButton.getModel().setRollover(true); } else { linkButton.getModel().setRollover(false); } updateSelectionColors(list, isSelected); updateFocusBorder(cellHasFocus); } return linkButton; } private void updateSelectionColors(JList table, boolean isSelected) { if (isSelected) { // linkButton.setForeground(table.getSelectionForeground()); linkButton.setBackground(table.getSelectionBackground()); } else { // linkButton.setForeground(table.getForeground()); linkButton.setBackground(table.getBackground()); } } //------------------------ TableCellRenderer public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { if ((value != null) && !isTargetable(value)) { value = null; } linkAction.setTarget(value); if (table != null) { Point p = (Point) table .getClientProperty(RolloverProducer.ROLLOVER_KEY); if (/*hasFocus || */(p != null && (p.x >= 0) && (p.x == column) && (p.y == row))) { linkButton.getModel().setRollover(true); } else { linkButton.getModel().setRollover(false); } updateSelectionColors(table, isSelected); updateFocusBorder(hasFocus); } return linkButton; } private void updateSelectionColors(JTable table, boolean isSelected) { if (isSelected) { // linkButton.setForeground(table.getSelectionForeground()); linkButton.setBackground(table.getSelectionBackground()); } else { // linkButton.setForeground(table.getForeground()); linkButton.setBackground(table.getBackground()); } } private void updateFocusBorder(boolean hasFocus) { if (hasFocus) { linkButton.setBorder(UIManager.getBorder("Table.focusCellHighlightBorder")); } else { linkButton.setBorder(noFocusBorder); } } //-------------------------- TableCellEditor public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) { linkAction.setTarget(value); linkButton.getModel().setRollover(true); updateSelectionColors(table, isSelected); return linkButton; } public Object getCellEditorValue() { return linkAction.getTarget(); } @Override protected void fireEditingStopped() { fireEditingCanceled(); } private ActionListener createEditorActionListener() { return new ActionListener() { public void actionPerformed(ActionEvent e) { cancelCellEditing(); } }; } //----------------------- treeCellRenderer public Component getTreeCellRendererComponent(JTree tree, Object value, boolean isSelected, boolean expanded, boolean leaf, int row, boolean hasFocus) { if ((value != null) && !isTargetable(value)) { value = null; } linkAction.setTarget(value); if (tree != null) { Point p = (Point) tree .getClientProperty(RolloverProducer.ROLLOVER_KEY); if (/*cellHasFocus ||*/ (p != null && (p.y >= 0) && (p.y == row))) { linkButton.getModel().setRollover(true); } else { linkButton.getModel().setRollover(false); } updateSelectionColors(tree, isSelected); updateFocusBorder(hasFocus); } return linkButton; } private void updateSelectionColors(JTree tree, boolean isSelected) { if (isSelected) { // linkButton.setForeground(table.getSelectionForeground()); linkButton.setBackground(UIManager.getColor("Tree.selectionBackground")); } else { // linkButton.setForeground(table.getForeground()); linkButton.setBackground(tree.getBackground()); } } } swingx-1.6.2-sources/swingx-unused/src/main/java/org/jdesktop/swingx/MouseMessagingHandler.java0000644000175000017500000001221611034305341032704 0ustar drazzibdrazzib/* * $Id: MouseMessagingHandler.java 2977 2008-07-07 03:17:53Z kschaefe $ * * Copyright 2004 Sun Microsystems, Inc., 4150 Network Circle, * Santa Clara, California 95054, U.S.A. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ package org.jdesktop.swingx; import java.awt.Component; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.util.logging.Level; import javax.swing.AbstractButton; import javax.swing.Action; import javax.swing.MenuElement; import org.jdesktop.swingx.event.MessageEvent; import org.jdesktop.swingx.event.MessageListener; import org.jdesktop.swingx.event.MessageSource; /** * Mouse handler which listens to mouse entered events on action based components * and send the value of the LONG_DESCRIPTION as a transient message * to the MessageListener and the listeners registered to the MessageSource. *

* Components can be registered using the register methods. For example, to * register all the components of a toolbar and all menu items in a menu bar * to send mouse over messages to a status bar: *

 *    handler = new MouseMessagingHandler(this, statusBar);
 *    if (toolBar != null) {
 *        handler.registerListeners(toolBar.getComponents());
 *    }
 *    if (menuBar != null) {
 *	  handler.registerListeners(menuBar.getSubElements());
 *    }
 * 
* * @author Mark Davidson */ public class MouseMessagingHandler extends MouseAdapter { private Object source; private MessageSource messageSource; private MessageListener messageListener; /** * @param source the source of the MesageEvents * @param messageSource messages will be sent to these listeners */ public MouseMessagingHandler(Object source, MessageSource messageSource) { setSource(source); setMessageSource(messageSource); } /** * @param source the source of the MesageEvents * @param messageListener messages will be sent to this listener */ public MouseMessagingHandler(Object source, MessageListener messageListener) { setSource(source); setMessageListener(messageListener); } /** * Set the source object of the MessageEvents. */ public void setSource(Object source) { this.source = source; } public void setMessageSource(MessageSource source) { this.messageSource = source; } public void setMessageListener(MessageListener listener) { this.messageListener = listener; } public void mouseExited(MouseEvent evt) { fireMessage(""); } /** * Takes the LONG_DESCRIPTION of the Action based components * and sends them to the Status bar */ public void mouseEntered(MouseEvent evt) { if (evt.getSource()instanceof AbstractButton) { AbstractButton button = (AbstractButton) evt.getSource(); Action action = button.getAction(); if (action != null) { fireMessage((String)action.getValue(Action.LONG_DESCRIPTION)); } } } /** * Helper method to recursively register all MenuElements with * this messaging handler. */ public void registerListeners(MenuElement[] elements) { for (int i = 0; i < elements.length; i++) { if (elements[i] instanceof AbstractButton) { ((AbstractButton)elements[i]).addMouseListener(this); } registerListeners(elements[i].getSubElements()); } } public void unregisterListeners(MenuElement[] elements) { for (int i = 0; i < elements.length; i++) { if (elements[i] instanceof AbstractButton) { ((AbstractButton)elements[i]).removeMouseListener(this); } unregisterListeners(elements[i].getSubElements()); } } /** * Helper method to register all components with this message handler */ public void registerListeners(Component[] components) { for (int i = 0; i < components.length; i++) { if (components[i] instanceof AbstractButton) { components[i].addMouseListener(this); } } } public void unregisterListeners(Component[] components) { for (int i = 0; i < components.length; i++) { if (components[i] instanceof AbstractButton) { components[i].removeMouseListener(this); } } } private void fireMessage(String message) { MessageEvent evt = new MessageEvent(source, message, Level.FINE); if (messageListener != null) { messageListener.message(evt); } if (messageSource != null) { MessageListener[] ls = messageSource.getMessageListeners(); for (int i = 0; i < ls.length; i++) { ls[i].message(evt); } } } } swingx-1.6.2-sources/swingx-unused/src/main/java/org/jdesktop/swingx/util/0000755000175000017500000000000011534506031026574 5ustar drazzibdrazzibswingx-1.6.2-sources/swingx-unused/src/main/java/org/jdesktop/swingx/util/MailTransportProxy.java0000644000175000017500000000333311034545674033315 0ustar drazzibdrazzib/* * $Id: MailTransportProxy.java 2981 2008-07-08 02:06:52Z kschaefe $ * * Copyright 2004 Sun Microsystems, Inc., 4150 Network Circle, * Santa Clara, California 95054, U.S.A. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ package org.jdesktop.swingx.util; import java.util.List; /** * This is a proxy interface to allow usage of the JDIC mail transport for error logging * without adding dependencies on the JDIC itself. * * @author Alexander Zuev * @version 1.0 */ public interface MailTransportProxy { /** * Compose and send message * @param toAddr List of addresses to whom to send this message * @param ccAddr List of addresses to whom to carbon-copy this message * @param subject Message subject * @param body Message main text * @param attach Path to files that needs to be send in attachment with this message */ public void mailMessage(List toAddr, List ccAddr, String subject, String body, List attach) throws Error; } swingx-1.6.2-sources/swingx-unused/src/test/0000755000175000017500000000000011445661367021017 5ustar drazzibdrazzibswingx-1.6.2-sources/swingx-unused/src/test/resources/0000755000175000017500000000000011445661367023031 5ustar drazzibdrazzibswingx-1.6.2-sources/swingx-unused/src/test/java/0000755000175000017500000000000011445661366021737 5ustar drazzibdrazzibswingx-1.6.2-sources/swingx-unused/src/test/java/org/0000755000175000017500000000000011445661366022526 5ustar drazzibdrazzibswingx-1.6.2-sources/swingx-unused/src/test/java/org/jdesktop/0000755000175000017500000000000011445661366024351 5ustar drazzibdrazzibswingx-1.6.2-sources/swingx-unused/src/test/java/org/jdesktop/swingx/0000755000175000017500000000000011534506031025652 5ustar drazzibdrazzibswingx-1.6.2-sources/swingx-unused/src/test/java/org/jdesktop/swingx/event/0000755000175000017500000000000011534506031026773 5ustar drazzibdrazzibswingx-1.6.2-sources/swingx-unused/src/test/java/org/jdesktop/swingx/event/MessageTest.java0000644000175000017500000001601211034305341032056 0ustar drazzibdrazzib/* * $Id: MessageTest.java 2977 2008-07-07 03:17:53Z kschaefe $ * * Copyright 2004 Sun Microsystems, Inc., 4150 Network Circle, * Santa Clara, California 95054, U.S.A. All rights reserved. */ package org.jdesktop.swingx.event; import java.util.logging.Level; import junit.framework.TestCase; /** * implementation of the MessageSourceSupport class. * A JUnit test case for the Message event set. Mostly this tests the */ public class MessageTest extends TestCase { private MListener[] listeners; private PListener[] plisteners; private static final int COUNT = 10; protected void setUp() { listeners = new MListener[COUNT]; plisteners = new PListener[COUNT]; for (int i = 0; i < COUNT; i++) { listeners[i] = new MListener(); plisteners[i] = new PListener(); } } protected void tearDown() { for (int i = 0; i < COUNT; i++) { listeners[i] = null; plisteners[i] = null; } listeners = null; plisteners = null; } public void testMessageRegistration() { MessageSource source = new MessageSourceSupport(this); MessageListener[] ls = source.getMessageListeners(); assertNotNull(ls); assertEquals("Number of listeners not 0", 0, ls.length); // test add and remove methods. // Add listeners. Ensure that they have been added for (int i = 0; i < listeners.length; i++) { source.addMessageListener(listeners[i]); } ls = source.getMessageListeners(); assertEquals(listeners.length, ls.length); // Remove all listenters. for (int i = 0; i < listeners.length; i++) { source.removeMessageListener(listeners[i]); } ls = source.getMessageListeners(); assertEquals(0, ls.length); // test to ensure that null adds and removes have no effect. for (int i = 0; i < COUNT; i++) { source.addMessageListener(null); ls = source.getMessageListeners(); assertEquals(0, ls.length); } // repopulate the message source. for (int i = 0; i < listeners.length; i++) { source.addMessageListener(listeners[i]); } for (int i = 0; i < COUNT; i++) { source.removeMessageListener(null); ls = source.getMessageListeners(); assertEquals(listeners.length, ls.length); } } /** * Test to ensure that messages are dispatched correctly. */ public void testMessageDispatch() { MessageSourceSupport source = new MessageSourceSupport(this); for (int i = 0; i < listeners.length; i++) { source.addMessageListener(listeners[i]); } // Test data. String message = "This is a simple message"; Level level = Level.INFO; long when = System.currentTimeMillis(); MessageEvent evt = null; // Simple test to ensure that all listeners get the same event. source.fireMessage(message); for (int i = 0; i < listeners.length; i++) { evt = listeners[i].getLastEvent(); assertNotNull(evt); assertEquals(message, evt.getMessage()); } source.fireMessage(message, level); for (int i = 0; i < listeners.length; i++) { evt = listeners[i].getLastEvent(); assertNotNull(evt); assertEquals(message, evt.getMessage()); assertEquals(level, evt.getLevel()); } source.fireMessage(message, level, when); for (int i = 0; i < listeners.length; i++) { evt = listeners[i].getLastEvent(); assertNotNull(evt); assertEquals(message, evt.getMessage()); assertEquals(level, evt.getLevel()); assertEquals(when, evt.getWhen()); } evt = new MessageEvent(this, message, level, when); source.fireMessage(evt); for (int i = 0; i < listeners.length; i++) { assertEquals(evt, listeners[i].getLastEvent()); } } /** * Tests the exception passing mechanism. */ public void testExceptions() { MessageSourceSupport source = new MessageSourceSupport(this); for (int i = 0; i < listeners.length; i++) { source.addMessageListener(listeners[i]); } Exception ex = new Exception("This is a message"); MessageEvent evt = null; source.fireException(ex); for (int i = 0; i < listeners.length; i++) { evt = listeners[i].getLastEvent(); assertNotNull(evt); // The event message should be the exception message. assertEquals(ex.getMessage(), evt.getMessage()); // By default, exceptions should be Level.SEVERE assertEquals(Level.SEVERE, evt.getLevel()); } } /** * Test to ensure that progress messages are correctly propagated. */ public void testDeterminteProgress() { MessageSourceSupport source = new MessageSourceSupport(this); ProgressEvent evt = null; // Add listeners. for (int i = 0; i < plisteners.length; i++) { source.addProgressListener(plisteners[i]); } // This is a determinate progress operation source.fireProgressStarted(0, 100); for (int i = 0; i < plisteners.length; i++) { evt = plisteners[i].getLastEvent(); assertFalse(evt.isIndeterminate()); assertTrue(plisteners[i].begin); assertFalse(plisteners[i].end); } source.fireProgressIncremented(50); for (int i = 0; i < plisteners.length; i++) { evt = plisteners[i].getLastEvent(); assertFalse(evt.isIndeterminate()); assertFalse(plisteners[i].begin); assertFalse(plisteners[i].end); } source.fireProgressEnded(); for (int i = 0; i < plisteners.length; i++) { evt = plisteners[i].getLastEvent(); assertTrue(evt.isIndeterminate()); assertFalse(plisteners[i].begin); assertTrue(plisteners[i].end); } } public void testIndeterminteProgress() { MessageSourceSupport source = new MessageSourceSupport(this); ProgressEvent evt = null; // Add listeners. for (int i = 0; i < plisteners.length; i++) { source.addProgressListener(plisteners[i]); } // This is a determinate progress operation source.fireProgressStarted(0, 0); for (int i = 0; i < plisteners.length; i++) { evt = plisteners[i].getLastEvent(); assertTrue(evt.isIndeterminate()); assertTrue(plisteners[i].begin); assertFalse(plisteners[i].end); } } /** * A listener of MessageEvents. */ private class MListener implements MessageListener { private MessageEvent evt; public void message(MessageEvent evt) { this.evt = evt; } public void exception(MessageEvent evt) { this.evt = evt; } public MessageEvent getLastEvent() { return evt; } } private class PListener implements ProgressListener { private ProgressEvent evt; public boolean begin = false; public boolean end = false; public void progressStarted(ProgressEvent e) { this.evt = e; begin = true; end = false; } public void progressIncremented(ProgressEvent e) { this.evt = e; begin = false; end = false; } public void progressEnded(ProgressEvent e) { this.evt = e; begin = false; end = true; } public void exception(ProgressEvent e) { /**@todo what should we do here? */ } public ProgressEvent getLastEvent() { return evt; } } } swingx-1.6.2-sources/swingx-unused/src/test/java/org/jdesktop/swingx/RootPaneMessagingTest.java0000644000175000017500000003116011034305341032737 0ustar drazzibdrazzib/* * $Id: RootPaneMessagingTest.java 2977 2008-07-07 03:17:53Z kschaefe $ * * Copyright 2004 Sun Microsystems, Inc., 4150 Network Circle, * Santa Clara, California 95054, U.S.A. All rights reserved. */ package org.jdesktop.swingx; import java.awt.Component; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.util.Timer; import java.util.TimerTask; import javax.swing.AbstractAction; import javax.swing.Action; import javax.swing.BorderFactory; import javax.swing.JButton; import javax.swing.JLabel; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JPanel; import javax.swing.JToolBar; import junit.framework.TestCase; import org.jdesktop.swingx.event.MessageListener; import org.jdesktop.swingx.event.MessageSource; import org.jdesktop.swingx.event.MessageSourceSupport; import org.jdesktop.swingx.event.ProgressListener; import org.jdesktop.swingx.event.ProgressSource; /** * There are several commented out portions of this file. They should be moved * or changed once a "status bean" is implemented that provides the functionality * originally envisioned for the JXRootPane/JXStatusBar coupling */ public class RootPaneMessagingTest extends TestCase { private Action[] actions; private TestComponent[] comps; private static final int HEAD = 0; private static final int BODY = 1; private static final int ARMS = 2; private static final int LEGS = 3; @Override protected void setUp() { actions = new Action[4]; actions[0] = new TestAction("New", 'N', "Create a new item"); actions[1] = new TestAction("Open", 'O', "Opens an item"); actions[2] = new TestAction("Save", 'S', "Saves an item"); actions[3] = new TestAction("Exit", 'X', "Exits the application"); comps = new TestComponent[4]; comps[0] = new TestComponent("Head"); comps[1] = new TestComponent("Body"); comps[2] = new TestComponent("Arms"); comps[3] = new TestComponent("Legs"); } @Override protected void tearDown() { for (int i = 0; i < actions.length; i++) { actions[i] = null; comps[i] = null; } actions = null; comps = null; } /** * Simple test to ensure that components are added/removed * and registered/unregistered correctly. */ public void testComponentRegistration() { JXRootPane rootPane = new JXRootPane(); JXStatusBar statusBar = new JXStatusBar(); rootPane.setStatusBar(statusBar); for (int i = 0; i < comps.length; i++) { rootPane.getContentPane().add(comps[i]); } Component[] cs = rootPane.getContentPane().getComponents(); assertEquals(cs.length, comps.length); // // Ensure that messages are passed to the // // status bar. The PERSISTENT message is sent to the // // trailing message location. // for (int i = 0; i < comps.length; i++) { // TestComponent comp = comps[i]; // comp.sendMessage(); // assertEquals(comp.getMessage(), statusBar.getTrailingMessage()); // } // // Remove all components. for (int i = 0; i < comps.length; i++) { rootPane.getContentPane().remove(comps[i]); } cs = rootPane.getContentPane().getComponents(); assertEquals(cs.length, 0); // // Ensure that the status bar has been unregistered. // statusBar.setTrailingMessage(""); // for (int i = 0; i < comps.length; i++) { // TestComponent comp = comps[i]; // comp.sendMessage(); // assertEquals("", statusBar.getTrailingMessage()); // } } /** * Test to ensure that all MessageSources in a containment hierarchy * are registered. */ public void testAggregateContainerRegistration() { // Create an aggregate. comps[HEAD].add(comps[BODY]); comps[BODY].add(comps[ARMS]); comps[BODY].add(comps[LEGS]); JXRootPane rootPane = new JXRootPane(); JXStatusBar statusBar = new JXStatusBar(); rootPane.setStatusBar(statusBar); rootPane.getContentPane().add(comps[HEAD]); Component[] cs = rootPane.getContentPane().getComponents(); assertEquals(1, cs.length); // // The status bar should get all messages send to all // // components. // for (int i = 0; i < comps.length; i++) { // TestComponent comp = comps[i]; // comp.sendMessage(); // assertEquals(comp.getMessage(), statusBar.getTrailingMessage()); // } // Remove the head. There shouldn't be any components. rootPane.getContentPane().remove(comps[HEAD]); cs = rootPane.getContentPane().getComponents(); assertEquals(0, cs.length); // // Ensure that the status bar has been unregistered. // statusBar.setTrailingMessage(""); // for (int i = 0; i < comps.length; i++) { // TestComponent comp = comps[i]; // comp.sendMessage(); // assertEquals("", statusBar.getTrailingMessage()); // } } /** * A test to ensure that the status bar is correctly registered with * existing components and will be unregistered when removed. */ public void testStatusBar() { JXRootPane rootPane = new JXRootPane(); for (int i = 0; i < comps.length; i++) { rootPane.add(comps[i]); } JXStatusBar statusBar = new JXStatusBar(); rootPane.setStatusBar(statusBar); // // The status bar should get all messages send to all // // components. // for (int i = 0; i < comps.length; i++) { // TestComponent comp = comps[i]; // comp.sendMessage(); // assertEquals(comp.getMessage(), statusBar.getTrailingMessage()); // } // Change the status bar. Reset the old status bar. It shouldn't get // any messages. rootPane.setStatusBar(new JXStatusBar()); assertNotSame(statusBar, rootPane.getStatusBar()); // // Ensure that the status bar has been unregistered. // statusBar.setTrailingMessage(""); // for (int i = 0; i < comps.length; i++) { // TestComponent comp = comps[i]; // comp.sendMessage(); // assertEquals("", statusBar.getTrailingMessage()); // } } /** * Given a root pane with a status bar, a toolbar with components * should get mouse listeners added to the components when added. */ public void testToolBar() { JXRootPane rootPane = new JXRootPane(); rootPane.setStatusBar(new JXStatusBar()); JToolBar toolBar = new JToolBar(); for (int i = 0; i < actions.length; i++) { toolBar.add(actions[i]); } // set the baseline number of mouse listeners Component[] comps = toolBar.getComponents(); int[] original = new int[comps.length]; for (int i = 0; i < comps.length; i++) { MouseListener[] listeners = comps[i].getMouseListeners(); original[i] = listeners.length; } // Add the toolbar and mouse listeners should be registered rootPane.setToolBar(toolBar); comps = toolBar.getComponents(); // for (int i = 0; i < comps.length; i++) { // MouseListener[] listeners = comps[i].getMouseListeners(); // assertEquals(original[i] + 1, listeners.length); // } // the toolbar is replaces. MouseListeners should be unregistered rootPane.setToolBar(new JToolBar()); comps = toolBar.getComponents(); for (int i = 0; i < comps.length; i++) { MouseListener[] listeners = comps[i].getMouseListeners(); assertEquals(original[i], listeners.length); } } public void testMenuBar() { JXRootPane rootPane = new JXRootPane(); rootPane.setStatusBar(new JXStatusBar()); JMenuBar menuBar = new JMenuBar(); JMenu menu = new JMenu("File"); for (int i = 0; i < actions.length; i++) { menu.add(actions[i]); } menuBar.add(menu); // set the baseline number of mouse listeners Component[] comps = menu.getComponents(); int[] original = new int[comps.length]; for (int i = 0; i < comps.length; i++) { MouseListener[] listeners = comps[i].getMouseListeners(); original[i] = listeners.length; } // Add the toolbar and mouse listeners should be registered rootPane.setJMenuBar(menuBar); comps = menu.getComponents(); for (int i = 0; i < comps.length; i++) { MouseListener[] listeners = comps[i].getMouseListeners(); assertEquals(original[i] + 1, listeners.length); } // the toolbar is replaces. MouseListeners should be unregistered rootPane.setJMenuBar(new JMenuBar()); for (int i = 0; i < comps.length; i++) { MouseListener[] listeners = comps[i].getMouseListeners(); original[i] = listeners.length; } } public static void main(String[] args) { Action[] actions = new Action[4]; actions[0] = new TestAction("New", 'N', "Create a new item"); actions[1] = new TestAction("Open", 'O', "Opens an item"); actions[2] = new TestAction("Save", 'S', "Saves an item"); actions[3] = new TestAction("Exit", 'X', "Exits the application"); JToolBar toolBar = new JToolBar(); JMenuBar menuBar = new JMenuBar(); JMenu menu = new JMenu("File"); for (int i = 0; i < actions.length; i++) { toolBar.add(actions[i]); menu.add(actions[i]); } menuBar.add(menu); JXRootPane rootPane = new JXRootPane(); Component[] comps = new Component[4]; comps[0] = new TestComponent("Head"); comps[1] = new TestComponent("Body"); comps[2] = new TestComponent("Arms"); comps[3] = new TestComponent("Legs"); rootPane.setStatusBar(new JXStatusBar()); rootPane.setToolBar(toolBar); rootPane.setJMenuBar(menuBar); for (int i = 0; i < comps.length; i++) { rootPane.add(comps[i]); } rootPane.add(new ProgressComponent()); JXFrame frame = new JXFrame(); frame.setRootPane(rootPane); frame.setVisible(true); } /** * A simple action which can be used for creating components. */ public static class TestAction extends AbstractAction { public TestAction(String name, int mnemonic, String description) { super(name); putValue(Action.MNEMONIC_KEY, new Integer(mnemonic)); putValue(Action.LONG_DESCRIPTION, description); } public void actionPerformed(ActionEvent evt) {} } /** * A panel with some buttons to fire progress messages. */ public static class ProgressComponent extends TestComponent implements ActionListener { private JButton start, stop, progress; public ProgressComponent() { super(); } @Override protected void initUI() { setBorder(BorderFactory.createTitledBorder("Progress Messages")); start = new JButton("Start"); start.addActionListener(this); stop = new JButton("Stop"); stop.addActionListener(this); progress = new JButton("Progress"); progress.addActionListener(this); add(start); add(stop); add(progress); } public void actionPerformed(ActionEvent evt) { Object source = evt.getSource(); if (source == start) { support.fireProgressStarted(0,0); } else if (source == stop) { support.fireProgressEnded(); } else if (source == progress) { doLongOperation(); } } /** * Demonstrates how to use the progress bar feature. */ private void doLongOperation() { final int start = 0; final int stop = 100; // Initialized the progress start. support.fireProgressStarted(start, stop); final Timer timer = new Timer(); TimerTask task = new TimerTask() { int progress = start; @Override public void run() { progress += 10; if (progress > stop) { support.fireProgressEnded(); timer.cancel(); } else { support.fireProgressIncremented(progress); } } }; timer.schedule(task, 250L, 250L); } } /** * A test component which is a source of messages. */ public static class TestComponent extends JPanel implements MessageSource, ProgressSource { protected MessageSourceSupport support; private JLabel label; private String text; public TestComponent(String text) { support = new MessageSourceSupport(this); addMouseListener(new MouseHandler()); this.text = text; initUI(); } public TestComponent() { this("TestComponent"); } protected void initUI() { label = new JLabel(text); add(label); } public void addMessageListener(MessageListener l) { support.addMessageListener(l); } public void removeMessageListener(MessageListener l) { support.removeMessageListener(l); } public MessageListener[] getMessageListeners() { return support.getMessageListeners(); } public void addProgressListener(ProgressListener l) { support.addProgressListener(l); } public void removeProgressListener(ProgressListener l) { support.removeProgressListener(l); } public ProgressListener[] getProgressListeners() { return support.getProgressListeners(); } // Returns a message identifying this component. public String getMessage() { return "I'm a " + text; } // Sends a persistent message to the any listeners. public void sendMessage() { support.fireMessage(getMessage()); } private class MouseHandler extends MouseAdapter { @Override public void mouseEntered(MouseEvent evt) { sendMessage(); } } } } swingx-1.6.2-sources/manifest.mf0000644000175000017500000000625411043157041016551 0ustar drazzibdrazzibManifest-Version: 1.0 X-COMMENT: Main-Class will be added automatically by build Name: org/jdesktop/swingx/JXCollapsiblePane.class Java-Bean: True Name: org/jdesktop/swingx/JXDatePicker.class Java-Bean: True Name: org/jdesktop/swingx/JXDialog.class Java-Bean: False Name: org/jdesktop/swingx/JXEditorPane.class Java-Bean: True Name: org/jdesktop/swingx/JXFindBar.class Java-Bean: True Name: org/jdesktop/swingx/JXFindPanel.class Java-Bean: True Name: org/jdesktop/swingx/JXFrame.class Java-Bean: True Name: org/jdesktop/swingx/JXGlassBox.class Java-Bean: True Name: org/jdesktop/swingx/JXGradientChooser.class Java-Bean: True Name: org/jdesktop/swingx/JXGraph.class Java-Bean: True Name: org/jdesktop/swingx/JXHeader.class Java-Bean: True Name: org/jdesktop/swingx/JXHyperlink.class Java-Bean: True Name: org/jdesktop/swingx/JXImagePanel.class Java-Bean: True Name: org/jdesktop/swingx/JXList.class Java-Bean: True Name: org/jdesktop/swingx/JXLoginDialog.class Java-Bean: True Name: org/jdesktop/swingx/JXLoginPane.class Java-Bean: True Name: org/jdesktop/swingx/JXMonthView.class Java-Bean: True Name: org/jdesktop/swingx/JXMultiSplitPane.class Java-Bean: True Name: org/jdesktop/swingx/JXMultiThumbSlider.class Java-Bean: True Name: org/jdesktop/swingx/JXPanel.class Java-Bean: True Name: org/jdesktop/swingx/JXRadioGroup.class Java-Bean: True Name: org/jdesktop/swingx/JXRootPane.class Java-Bean: True Name: org/jdesktop/swingx/JXSearchPanel.class Java-Bean: True Name: org/jdesktop/swingx/JXStatusBar.class Java-Bean: True Name: org/jdesktop/swingx/JXTable.class Java-Bean: True Name: org/jdesktop/swingx/JXTaskPane.class Java-Bean: True Name: org/jdesktop/swingx/JXTaskPaneContainer.class Java-Bean: True Name: org/jdesktop/swingx/JXTipOfTheDay.class Java-Bean: True Name: org/jdesktop/swingx/JXTitledPanel.class Java-Bean: True Name: org/jdesktop/swingx/JXTitledSeparator.class Java-Bean: True Name: org/jdesktop/swingx/JXTree.class Java-Bean: True Name: org/jdesktop/swingx/JXBusyLabel.class Java-Bean: True Name: org/jdesktop/swingx/JXLabel.class Java-Bean: True Name: org/jdesktop/swingx/JXTreeTable.class Java-Bean: True Name: org/jdesktop/swingx/auth/DefaultUserNameStore.class Java-Bean: True Name: org/jdesktop/swingx/auth/JAASLoginService.class Java-Bean: True Name: org/jdesktop/swingx/auth/JDBCLoginService.class Java-Bean: True Name: org/jdesktop/swingx/border/DropShadowBorder.class Java-Bean: True Name: org/jdesktop/swingx/border/MatteBorderExt.class Java-Bean: False Name: org/jdesktop/swingx/painter/AlphaPainter.class Java-Bean: True Name: org/jdesktop/swingx/painter/CheckerboardPainter.class Java-Bean: True Name: org/jdesktop/swingx/painter/CompoundPainter.class Java-Bean: True Name: org/jdesktop/swingx/painter/GlossPainter.class Java-Bean: True Name: org/jdesktop/swingx/painter/ImagePainter.class Java-Bean: True Name: org/jdesktop/swingx/painter/MattePainter.class Java-Bean: True Name: org/jdesktop/swingx/painter/PinstripePainter.class Java-Bean: True Name: org/jdesktop/swingx/painter/RectanglePainter.class Java-Bean: True Name: org/jdesktop/swingx/painter/ShapePainter.class Java-Bean: True Name: org/jdesktop/swingx/painter/TextPainter.class Java-Bean: True swingx-1.6.2-sources/nbproject/0000755000175000017500000000000011534506031016400 5ustar drazzibdrazzibswingx-1.6.2-sources/nbproject/project.properties0000644000175000017500000001174611141346227022200 0ustar drazzibdrazzib########################################################## # General Build Related Directories # ########################################################## # This directory is removed when the project is cleaned: build.dir=build build.generated.dir=${build.dir}/generated build.classes.dir=${build.dir}/classes build.beaninfo.classes.dir=${build.dir}/beaninfo/classes build.test.classes.dir=${build.dir}/test/classes build.test.results.dir=${build.dir}/test/results # This directory is removed when the project is cleaned: dist.dir=dist dist.jar=${dist.dir}/swingx.jar dist.beaninfo.jar=${dist.dir}/swingx-beaninfo.jar dist.javadoc.dir=${dist.dir}/javadoc ########################h################################## # Source and test directories # ########################################################## java.dir=${file.reference.src-java} # Property libs.swing-layout.classpath is set here just to make sharing of project simpler. # The library definition has always preference over this property. libs.swing-layout.classpath=../../../../../Applications/NetBeans 6.app/Contents/Resources/NetBeans/platform7/modules/ext/swing-layout-1.0.1.jar src.beaninfo.dir=src/beaninfo src.demo.dir=src/demo test.test.dir=src/test ########################################################## # Library references # ########################################################## file.reference.jmock-1.1.0RC1.jar=lib/jmock-1.1.0RC1.jar file.reference.MultipleGradientPaint.jar=lib/optional/MultipleGradientPaint.jar file.reference.src-java=src/java file.reference.src-test=src/test file.reference.swing-worker.jar=lib/optional/swing-worker.jar file.reference.Filters.jar=lib/optional/Filters.jar file.reference.commons.lang.jar=lib/build-only/commons-lang-2.4.jar file.reference.commons.collections.jar=lib/build-only/commons-collections-3.2.1.jar ########################################################## # Build, test, debug, etc Classpaths # ########################################################## debug.classpath=\ ${run.classpath} debug.test.classpath=\ ${run.test.classpath} javac.classpath=\ ${file.reference.MultipleGradientPaint.jar}:\ ${file.reference.swing-worker.jar}:\ ${file.reference.Filters.jar} javac.test.classpath=\ ${javac.classpath}:\ ${build.classes.dir}:\ ${libs.junit.classpath}:\ ${file.reference.jmock-1.1.0RC1.jar}:\ ${file.reference.commons.collections.jar}:\ ${file.reference.commons.lang.jar} run.classpath=\ ${javac.classpath}:\ ${build.classes.dir} run.test.classpath=\ ${javac.test.classpath}:\ ${build.test.classes.dir}:\ ${file.reference.commons.collections.jar}:\ ${file.reference.commons.lang.jar} javadoc.srcpath=\ ${src.beaninfo.dir}:\ ${java.dir}:\ ${javadoc.core.src} ########################################################## # General Properties and Command Switches # ########################################################## ##### # Build Related Properties ##### build.classes.excludes=**/*.java,**/*.form # Only compile against the classpath explicitly listed here: build.sysclasspath=ignore jar.compress=true manifest.file=manifest.mf meta.inf.dir=${src.dir}/META-INF platform.active=default_platform ##### # Javac Options ##### # Space-separated list of extra javac options javac.compilerargs= javac.deprecation=false javac.source=1.5 javac.target=1.5 ##### # Javadoc Options ##### javadoc.additionalparam= javadoc.author=false javadoc.encoding= javadoc.noindex=false javadoc.nonavbar=false javadoc.notree=false javadoc.private=false javadoc.splitindex=true javadoc.use=true javadoc.version=false javadoc.verbose=false javadoc.windowtitle=SwingLabs JavaDoc javadoc.compress=true ##### # Properties for a "main class" and running that class. # These are generally not used in SwingX ##### main.class=org.jdesktop.swingx.painter.demo.PainterDemoSet application.args= # Space-separated list of JVM arguments used when running the project # (you may also define separate properties like run-sys-prop.name=value instead of -Dname=value # or test-sys-prop.name=value to set system properties for unit tests): run.jvmargs= ########################################################## # Properties for the swinglabs-build-impl ANT script # ########################################################## # directory that contains emma.jar and emma_ant.jar emma.dir=lib/build-only emma.report.srcpath=\ ${src.beaninfo.dir}:\ ${java.dir} # directory to place the built bundles dist.bundles.dir=${dist.dir}/bundles # scratch directory to use for building the bundles build.bundles.dir=${build.dir}/bundles # Colon separated list of directories to include as the "docs" (readme, etc) for the bundle bundles.doc.dir=docs # The name of the project, used when creating the bundles projectname=swingx # Info for updating the posted.txt file posted.txt= build.branch=MAIN # Location of the demo-taglet jar file demo.taglet.jar=lib/build-only/demo-taglet.jar swingx-1.6.2-sources/nbproject/genfiles.properties0000644000175000017500000000067710576050430022326 0ustar drazzibdrazzibbuild.xml.data.CRC32=f1851f45 build.xml.script.CRC32=58c7d933 build.xml.stylesheet.CRC32=e2435cb5 # This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml. # Do not edit this file. You may delete it but then the IDE will never regenerate such files for you. nbproject/build-impl.xml.data.CRC32=5747d8ab nbproject/build-impl.xml.script.CRC32=d3f68530 nbproject/build-impl.xml.stylesheet.CRC32=61d6088b swingx-1.6.2-sources/nbproject/build-impl.xml0000644000175000017500000006567011043157425021202 0ustar drazzibdrazzib Must set src.beaninfo.dir Must set java.dir Must set test.test.dir Must set build.dir Must set dist.dir Must set build.classes.dir Must set dist.javadoc.dir Must set build.test.classes.dir Must set build.test.results.dir Must set build.classes.excludes Must set dist.jar Must select some files in the IDE or set javac.includes To run this application from the command line without Ant, try: java -cp "${run.classpath.with.dist.jar}" ${main.class} To run this application from the command line without Ant, try: java -jar "${dist.jar.resolved}" Must select one file in the IDE or set run.class Must select one file in the IDE or set debug.class Must set fix.includes Must select some files in the IDE or set javac.includes Some tests failed; see details above. Must select some files in the IDE or set test.includes Some tests failed; see details above. Must select one file in the IDE or set test.class Must select one file in the IDE or set applet.url Must select one file in the IDE or set applet.url swingx-1.6.2-sources/nbproject/project.xml0000644000175000017500000000126210576050430020573 0ustar drazzibdrazzib org.netbeans.modules.java.j2seproject swingx 1.6.5 swingx-1.6.2-sources/nbproject/.cvsignore0000644000175000017500000000001010406654137020377 0ustar drazzibdrazzibprivate swingx-1.6.2-sources/README0000644000175000017500000000371510340400014015264 0ustar drazzibdrazzibReadme - SwingLabs SwingX Project - http://swingx.dev.java.net SwingX is a library of components and utilities extending the Java Swing library; read more at our website, http://swingx.dev.java.net, and Wiki page, http://wiki.java.net/bin/view/Javadesktop/SwingLabsSwingX Getting the Latest Source ========================= 1) Check out the lastest code Download the latest release from our CVS repository; full instructions are at https://swingx.dev.java.net/servlets/ProjectSource but you can check out using the generic account "guest", with these settings cvs -d :pserver:guest@cvs.dev.java.net:/cvs login followed by cvs -d :pserver:guest@cvs.dev.java.net:/cvs checkout swingx Building the Source =================== SwingX relies on Ant and Ant build files for controlling compilation, building docs, testing, etc. You can use our Ant build scripts or use your own--some IDEs make this easy to do. To compile from the command line, you'll need to have Apache Ant installed; see http://ant.apache.org. IMPORTANT: our default task in Ant also runs our unit tests, which are written using jUnit. You need to have Ant be aware of jUnit *before* compiling SwingX. We can't help you with this--it's an Ant configuration issue. If jUnit is not properly configured, you may get an error like this: BUILD FAILED c:\swingx\nbproject\build-impl.xml:407: Following error occured while executing this line c:\\swingx\nbproject\build-impl.xml:127: Could not create task or type of type: junit. Ant could not find the task or a class this task relies upon. Suggestions: - for Ant 1.5.x and previous, make sure optional.jar is in your ANT_HOME\lib directory. - for Ant 1.6.x and above, make sure ant-junit.jar is in your ANT_HOME\lib directory, and that jUnit.jar is either in that directory as well OR listed on your CLASSPATH. You can build SwingX by going to the command line and typing ant That should be it--this will test and build swingx.jar in the dist directory. swingx-1.6.2-sources/swingx-core/0000755000175000017500000000000011534506031016657 5ustar drazzibdrazzibswingx-1.6.2-sources/swingx-core/pom.xml0000644000175000017500000000732711435772530020216 0ustar drazzibdrazzib org.swinglabs swingx-project 1.6.2-SNAPSHOT ../pom.xml 4.0.0 swingx-core jar SwingX Core com.jhlabs filters jar test junit junit jar test commons-collections commons-collections jar test commons-lang commons-lang jar test maven-compiler-plugin true true org.apache.maven.plugins maven-surefire-plugin true **/*Test.java always org.codehaus.mojo emma-maven-plugin 1.0-alpha-2 true instrument net.sf.jmd maven-crap4j-plugin 0.1.1-SNAPSHOT ${basedir} lib/build-only/crap4j target/site/crap4j-reports lib site crap4j crap4jAnt org.apache.maven.plugins maven-jar-plugin test-jar swingx-1.6.2-sources/swingx-core/src/0000755000175000017500000000000011445661445017462 5ustar drazzibdrazzibswingx-1.6.2-sources/swingx-core/src/main/0000755000175000017500000000000011445661467020412 5ustar drazzibdrazzibswingx-1.6.2-sources/swingx-core/src/main/resources/0000755000175000017500000000000011445661467022424 5ustar drazzibdrazzibswingx-1.6.2-sources/swingx-core/src/main/resources/org/0000755000175000017500000000000011445661467023213 5ustar drazzibdrazzibswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/0000755000175000017500000000000011445661467025036 5ustar drazzibdrazzibswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/0000755000175000017500000000000011445661472026351 5ustar drazzibdrazzibswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/0000755000175000017500000000000011445661471027272 5ustar drazzibdrazzibswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/linux/0000755000175000017500000000000011445661467030436 5ustar drazzibdrazzibswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/linux/resources/0000755000175000017500000000000011534506031032430 5ustar drazzibdrazzib././@LongLink0000000000000000000000000000015300000000000011564 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/linux/resources/combo-gtk.pngswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/linux/resources/combo-g0000644000175000017500000000553010715067005033704 0ustar drazzibdrazzibPNG  IHDR |d}h pHYs   MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3gAMA|Q cHRMz%u0`:o_FuIDATx|1 @DrXlMX[ .l<9ʂߺR(6!x|I51D9dfH)}!=f&dɴ;kPhtIRK>[uQA{Tιҹ1_6oڽIENDB`swingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/0000755000175000017500000000000011445661467030360 5ustar drazzibdrazzibswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/0000755000175000017500000000000011534506031032352 5ustar drazzibdrazzib././@LongLink0000000000000000000000000000016500000000000011567 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/LoginPane_it.propertiesswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/LoginPa0000644000175000017500000000224211056055571033635 0ustar drazzibdrazzib# Strings used by JXLoginDialog and JXLoginPanel JXLoginPane.okString=OK JXLoginPane.okString.mnemonic=O JXLoginPane.cancelString=Annulla JXLoginPane.cancelString.mnemonic=C JXLoginPane.stopString=Stop Login JXLoginPane.stopString.mnemonic=S JXLoginPane.promptString=Immetti il tuo Nome Utente e Password JXLoginPane.serverString=Server JXLoginPane.nameString=Nome Utente JXLoginPane.loginString=Login JXLoginPane.bannerString=Identificativo Utente JXLoginPane.titleString=Identificativo Utente JXLoginPane.passwordString=Password JXLoginPane.rememberUserString=Ricordami JXLoginPane.rememberPasswordString=Ricorda la Password JXLoginPane.loggingInString=Attendere, autenticazione in corso.... JXLoginPane.failedString=Login fallito; nome utente/password non validi. JXLoginPane.enterUserNamePassword=Immetti il tuo Nome Utente e Password JXLoginPane.pleaseWait=Attendere, autenticazione in corso.... JXLoginPane.cancelWait=Annullamento login, attendere.... JXLoginPane.cancelLogin=Stop login JXLoginPane.errorMessage=Autenticazione fallita

\ Controlla il tuo Nome Utente/Password. Controlla che Bloc-Maiusc \ non sia attivo. ././@LongLink0000000000000000000000000000016500000000000011567 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/ErrorPane_nl.propertiesswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/ErrorPa0000644000175000017500000000046710722472162033663 0ustar drazzibdrazzib# # JXErrorPanel properties # JXErrorPane.details_expand_text=Details >> JXErrorPane.details_contract_text=Details << JXErrorPane.ok_button_text=Sluiten JXErrorPane.fatal_button_text=Sluit Applicatie JXErrorPane.report_button_text=Rapporteer Fout JXErrorPane.copy_to_clipboard_button_text=Kopieer naar klembord ././@LongLink0000000000000000000000000000016500000000000011567 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/LoginPane_pl.propertiesswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/LoginPa0000644000175000017500000000250611075726742033646 0ustar drazzibdrazzib# Strings used by JXLoginDialog and JXLoginPane JXLoginPane.okString=OK JXLoginPane.okString.mnemonic=O JXLoginPane.cancelString=Anuluj JXLoginPane.cancelString.mnemonic=A JXLoginPane.stopString=Przerwij Logowanie JXLoginPane.stopString.mnemonic=P JXLoginPane.promptString= Podaj nazw\u0119 u\u017Cytkownika oraz has\u0142o JXLoginPane.serverString=Serwer JXLoginPane.nameString=Nazwa u\u017Cytkownika JXLoginPane.loginString=Logowanie JXLoginPane.bannerString=Logowanie JXLoginPane.titleString=Logowanie JXLoginPane.passwordString=Has\u0142o JXLoginPane.rememberUserString=Zapami\u0119taj mnie JXLoginPane.rememberPasswordString=Zapami\u0119taj has\u0142o JXLoginPane.loggingInString=Prosz\u0119 czeka\u0107, trwa logowanie... JXLoginPane.failedString=Nieudane logowanie; nieprawid\u0142owa nazwa u\u017Cytkownika lub has\u0142o. JXLoginPane.enterUserNamePassword=Podaj nazw\u0119 u\u017Cytkownika oraz has\u0142o JXLoginPane.pleaseWait=Prosz\u0119 czeka\u0107, trwa logowanie... JXLoginPane.cancelWait=Anulowanie logowania, prosz\u0119 czeka\u0107... JXLoginPane.cancelLogin=Anuluj logowanie JXLoginPane.errorMessage=Nieudane logowanie

Sprawd\u017A nazw\u0119 u\u017Cytkownika oraz has\u0142o. Sprawd\u017A czy Caps Lock jest
wcisni\u0119ty. JXLoginPane.capsOnWarning=Uwaga: CapsLock jest aktywny! ././@LongLink0000000000000000000000000000016700000000000011571 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/SearchField_de.propertiesswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/SearchF0000644000175000017500000000027111323133151033603 0ustar drazzibdrazzibSearchField.prompt=Suchen SearchField.recentsMenuTitle=Letzte Sucheintege SearchField.clearRecentsText=Letzte Sucheintrge Lschen SearchField.noRecentsText=Keine letzten Sucheintrge ././@LongLink0000000000000000000000000000016200000000000011564 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/swingx_fr.propertiesswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/swingx_0000644000175000017500000000351510715067005033762 0ustar drazzibdrazzib# default properties for swingx # JXSearchPanel # @author: Florent Garin Search.matchCase=Respecter la casse Search.contains=contenant Search.equals=gale Search.endsWith=se terminant par Search.startsWith=commenant par Search.wrapSearch=Recherche circulaire Search.backwardsSearch=Vers le haut Search.match=Rechercher Search.close=Fermer Search.findNext=Suivant Search.findPrevious=Prcdent Search.searchFieldLabel=Rechercher Search.searchFieldLabel.mnemonic=R Search.searchTitle=Rechercher Search.notFoundBackground=FF6666 Search.notFoundForeground=000000 XDialog.close=Fermer XDialog.cancel=Annuler XDialog.execute=OK # default properties for swingx # JXTable column control entries # JXTable.column.horizontalScroll=Dfilement horizontal JXTable.column.packAll=Compacter toutes les colonnes JXTable.column.packSelected=Compacter la colonne slectionne # # default actions in context menues for TextComponents # DefaultEditorKit.cut-to-clipboard=Couper DefaultEditorKit.copy-to-clipboard=Copier DefaultEditorKit.paste-from-clipboard=Coller DefaultEditorKit.delete-next=Supprimer DefaultEditorKit.select-all=Tout slectionner # # default actions for context menue for ScrollBars # JScrollBar.vertical.minScroll=Haut JScrollBar.vertical.maxScroll=Bas JScrollBar.vertical.negativeUnitIncrement=Dfilement vers le haut JScrollBar.vertical.negativeBlockIncrement=Page prcdente JScrollBar.vertical.positiveUnitIncrement=Dfilement vers le bas JScrollBar.vertical.positiveBlockIncrement=Page suivante JScrollBar.horizontal.minScroll=Ct gauche JScrollBar.horizontal.maxScroll=Ct droit JScrollBar.horizontal.negativeUnitIncrement=Dfilement vers la gauche JScrollBar.horizontal.negativeBlockIncrement=Page vers la gauche JScrollBar.horizontal.positiveUnitIncrement=Dfilement vers la droite JScrollBar.horizontal.positiveBlockIncrement=Page vers la droite ././@LongLink0000000000000000000000000000015600000000000011567 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/search_popup.gifswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/search_0000644000175000017500000000105411323133151033674 0ustar drazzibdrazzibGIF89a]GGGLLLWWWXXX```ttt~~~ýü! ,#   %OK2) '!X@47:0ID5=BGE Q69CNRP82>JSVUL<3?MTYF#$1"+;GPA./*1& (/ H,- @;././@LongLink0000000000000000000000000000016500000000000011567 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/LoginPane_nl.propertiesswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/LoginPa0000644000175000017500000000230511056055571033635 0ustar drazzibdrazzib# Strings used by JXLoginDialog and JXLoginPane JXLoginPane.okString=OK JXLoginPane.okString.mnemonic=O JXLoginPane.cancelString=Annuleren JXLoginPane.cancelString.mnemonic=A JXLoginPane.stopString=Stop Login JXLoginPane.stopString.mnemonic=S JXLoginPane.promptString=Voer uw gebruikersnaam en wachtwoord in JXLoginPane.serverString=Server JXLoginPane.nameString=Gebruikersnaam JXLoginPane.loginString=Login JXLoginPane.bannerString=Login JXLoginPane.titleString=Login JXLoginPane.passwordString=Wachtwoord JXLoginPane.rememberUserString=Onthouden JXLoginPane.rememberPasswordString=Onthoud wachtwoord JXLoginPane.loggingInString=Even geduld, er wordt nu ingelogd... JXLoginPane.failedString=Inloggen mislukt; ongeldige gebruikersnaam/wachtwoord combinatie. JXLoginPane.enterUserNamePassword=Voer uw gebruikersnaam en wachtwoord in JXLoginPane.pleaseWait=Even geduld, er wordt nu ingelogd... JXLoginPane.cancelWait=Login wordt geannuleerd, even geduld... JXLoginPane.cancelLogin=Stop login JXLoginPane.errorMessage=Kan niet inloggen

\ Controleer uw gebruikersnaam en wachtwoord. Controleer of Caps Lock aan \ staat. JXLoginPane.capsOnWarning=CapsLock staat AAN! ././@LongLink0000000000000000000000000000016600000000000011570 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/DatePicker_cs.propertiesswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/DatePic0000644000175000017500000000043310715067005033611 0ustar drazzibdrazzib# # Text, formatting for JXDatePicker # JXDatePicker.linkFormat=Dnes je {0,date, d. MMMM yyyy} JXDatePicker.longFormat=EEE d.MM.yyyy #czech grammar vs application admits more variants to use JXDatePicker.mediumFormat=d.M.yyyy JXDatePicker.shortFormat=d.M. JXDatePicker.numColumns=10 ././@LongLink0000000000000000000000000000016500000000000011567 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/LoginPane_fr.propertiesswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/LoginPa0000644000175000017500000000242711056055571033642 0ustar drazzibdrazzib# Strings used by JXLoginDialog and JXLoginPanel JXLoginPane.okString=OK JXLoginPane.okString.mnemonic='O' JXLoginPane.cancelString=Annuler JXLoginPane.cancelString.mnemonic='A' JXLoginPane.stopString=Interrompre JXLoginPane.stopString.mnemonic='I' JXLoginPane.promptString=Entrez votre login et mot de passe JXLoginPane.serverString=Serveur JXLoginPane.nameString=Nom JXLoginPane.loginString=Identifiant JXLoginPane.bannerString=Identifiant JXLoginPane.titleString=Identifiant JXLoginPane.passwordString=Mot de passe JXLoginPane.rememberUserString=Se souvenir de moi JXLoginPane.rememberPasswordString=Se souvenir du mot de passe JXLoginPane.loggingInString=Veuillez patienter, authentification en cours.... JXLoginPane.failedString=\u00C9ched d'authentification. Identifiant ou mot de passe invalide. JXLoginPane.enterUserNamePassword=Entrez votre identifiant et mot de pass JXLoginPane.pleaseWait=Veuillez patienter, authentification en cours.... JXLoginPane.cancelWait=Annulation de la connexion, veuillez patienter.... JXLoginPane.cancelLogin=Interrompre JXLoginPane.errorMessage=\u00C9chec d'authentification

\ V\u00E9rifiez votre identifiant et votre mot de passe. \ V\u00E9rifiez que la touche Verrouill. Maj. est d\u00E9sactiv\u00E9e. ././@LongLink0000000000000000000000000000016200000000000011564 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/swingx_es.propertiesswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/swingx_0000644000175000017500000000351310715067005033760 0ustar drazzibdrazzib# spanish properties for swingx # JXSearchPanel # @author: Diego Gil (dags in jdesktop) Search.matchCase=Coincidencia de may\u00fasculas/min\u00fasculas Search.contains=contiene Search.equals=igual Search.endsWith=termina con Search.startsWith=empieza con Search.wrapSearch=B\u00fasqueda Circular Search.backwardsSearch=Hacia Atr\u00e1s Search.match=Buscar Search.close=Cerrar Search.findNext=Buscar Siguiente Search.findPrevious=Buscar Anterior Search.searchFieldLabel=Buscar Search.searchFieldLabel.mnemonic=B Search.searchTitle=Buscar XDialog.close=Cerrar XDialog.cancel=Cancelar XDialog.execute=Aceptar # default properties for swingx # JXTable column control entries # JXTable.column.horizontalScroll=Desplazamiento Horizontal JXTable.column.packAll=Compactar Todas las Columnas JXTable.column.packSelected=Compactar la Columna Seleccionada # # default actions in context menues for TextComponents # DefaultEditorKit.cut-to-clipboard=Cortar DefaultEditorKit.copy-to-clipboard=Copiar DefaultEditorKit.paste-from-clipboard=Pegar DefaultEditorKit.delete-next=Eliminar DefaultEditorKit.select-all=Seleccionar Todo # # default actions for context menue for ScrollBars # JScrollBar.vertical.minScroll=Arriba JScrollBar.vertical.maxScroll=Abajo JScrollBar.vertical.negativeUnitIncrement=Desplazar hacia Arriba JScrollBar.vertical.negativeBlockIncrement=P\u00e1gina Arriba JScrollBar.vertical.positiveUnitIncrement=Desplazar hacia Abajo JScrollBar.vertical.positiveBlockIncrement=P\u00e1gina Abajo JScrollBar.horizontal.minScroll=Borde Izquierdo JScrollBar.horizontal.maxScroll=Borde Derecho JScrollBar.horizontal.negativeUnitIncrement=Desplazar a la Izquierda JScrollBar.horizontal.negativeBlockIncrement=P\u00e1gina Izquierda JScrollBar.horizontal.positiveUnitIncrement=Desplazar a la Derecha JScrollBar.horizontal.positiveBlockIncrement=P\u00e1gina Derecha ././@LongLink0000000000000000000000000000016200000000000011564 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/swingx_nl.propertiesswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/swingx_0000644000175000017500000000334510722472162033765 0ustar drazzibdrazzib# default properties for swingx # JXSearchPanel Search.matchCase=Hoofdlettergevoelig Search.contains=bevat Search.equals=gelijk aan Search.endsWith=eindigd met Search.startsWith=begint met Search.wrapSearch=Herhaaldelijk Doorzoeken Search.backwardsSearch=Achterwaarts Zoeken Search.match=Zoeken Search.close=Sluiten Search.findNext=Vind Volgende Search.findPrevious=Vind Vorige Search.searchFieldLabel=Zoek Search.searchFieldLabel.mnemonic=F Search.searchTitle=Zoeken Search.notFoundBackground=FF6666 Search.notFoundForeground=000000 XDialog.close=Sluiten XDialog.cancel=Annuleren XDialog.execute=OK # default properties for swingx # JXTable column control entries # JXTable.column.horizontalScroll=Horizontaal Scrollen JXTable.column.packAll=Pack Alle Kolommen JXTable.column.packSelected=Pack Geselecteerde Kolom # # default actions in context menues for TextComponents # DefaultEditorKit.cut-to-clipboard=Knippen DefaultEditorKit.copy-to-clipboard=Kopieeren DefaultEditorKit.paste-from-clipboard=Plakken DefaultEditorKit.delete-next=Verwijderen DefaultEditorKit.select-all=Selecteer alles # # default actions for context menus for ScrollBars # JScrollBar.vertical.minScroll=Boven JScrollBar.vertical.maxScroll=Onder JScrollBar.vertical.negativeUnitIncrement=Scroll Up JScrollBar.vertical.negativeBlockIncrement=Page Up JScrollBar.vertical.positiveUnitIncrement=Scroll Down JScrollBar.vertical.positiveBlockIncrement=Page Down JScrollBar.horizontal.minScroll=Linker kantlijn JScrollBar.horizontal.maxScroll=Rechter kantlijn JScrollBar.horizontal.negativeUnitIncrement=Scroll Links JScrollBar.horizontal.negativeBlockIncrement=Page Links JScrollBar.horizontal.positiveUnitIncrement=Scroll Rechts JScrollBar.horizontal.positiveBlockIncrement=Page Rechts ././@LongLink0000000000000000000000000000016600000000000011570 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/DatePicker_de.propertiesswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/DatePic0000644000175000017500000000034710715067005033615 0ustar drazzibdrazzib# # Text, formatting for JXDatePicker # JXDatePicker.linkFormat=Heute ist der{0,date, dd. MMMM yyyy} JXDatePicker.longFormat=dd.MM.yyyy JXDatePicker.mediumFormat=dd.MM.yyyy JXDatePicker.shortFormat=dd.MM JXDatePicker.numColumns=10 ././@LongLink0000000000000000000000000000016500000000000011567 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/ErrorPane_sv.propertiesswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/ErrorPa0000644000175000017500000000047510715067005033660 0ustar drazzibdrazzib# # JXErrorPanel properties # JXErrorPane.details_expand_text=Detaljer >> JXErrorPane.details_contract_text=Detaljer << JXErrorPane.ok_button_text=St\u00E4ng JXErrorPane.fatal_button_text=Avsluta applikation JXErrorPane.report_button_text=Rapportera fel JXErrorPane.copy_to_clipboard_button_text=Kopiera till Urklipp ././@LongLink0000000000000000000000000000016700000000000011571 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/TipOfTheDay_it.propertiesswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/TipOfTh0000644000175000017500000000040010705430172033605 0ustar drazzibdrazzibTipOfTheDay.dialogTitle=Consiglio del Giorno TipOfTheDay.didYouKnowText=Lo sapevi che... TipOfTheDay.showOnStartupText=Visualizza Consigli all'Avvio TipOfTheDay.previousTipText=< Precedente TipOfTheDay.nextTipText=Successivo > TipOfTheDay.closeText=Chiudi ././@LongLink0000000000000000000000000000015200000000000011563 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/month-up.pngswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/month-u0000644000175000017500000000610310715067005033667 0ustar drazzibdrazzibPNG  IHDR pHYs  iCCPPhotoshop ICC profilexڭy< r&!)DƑi9*0cf(e!}CV9Vֶ&T[tl:ti;c{<~߿>}|>z4"@@\TF i"U9+/xw ܰfDo84, ƐcQ82H t9l.@0f 9Eĉ3'jV\ 'P8!`Fаp:\콷4 (uz ?{ЫDۑ JeBh1dx m&N4u3f9vqusc{xzy˜b̟`EQQ./:&6d .^(JKI˖'L*5mUF5kfen sr6n۲?[m߾c]ݻ/`aс:\\rHcǏ(;yS+k=swߟ;ÅRWw7oݾݻiϞ| J*jZÆ39hq}lg4mg7ɜ `Ely H*uUzՙkfeen s6mݜGS@SqteeUuͷg ?/W_~:{Mki{޼{AeUuMau GcL7;| l&Mlg?3Z`kA^ y,?UTzO} "=cuf暵=qPqlFþ} MfAES W5h$s_zAʎ@Y L/r7zKP hmG@4(AjЄ0 tNp\ ґ2Cjp D.QL#*LTR*+4ьhtZ4:J" Rz!C6TUTשڨV^ai_T{v0ưzW-K?mi~9FFG0hdjl8kM%:/LJ locھqJCcSӼO^6b,Mgo\\1ܟztxu͑εe `EBDŽ#,(]ذ،m։W,y&/&/_^1b%'<-xUIluZ,^xm[VֶڝwI&IaxAC̒O䗿H=VڲvWw$=w|vg7oݺT:_ԇ]>>u={cwSV$@*W*Ukjhj oK7%G!H}ެ~UIYٽnm6N92_]?LVʁ>Ǧ՗$9.K#Si~,^u&s6%H/)h- /j_mYSp>M'[*@Ew+OG.賉yʽ]n>՛=9jwoSڽ]N9ʔq&}ݟR>J9bpk蘰9'Hg~"_06I`}>V%MAkax~Q#+w>_^_tݧatCgxOWw$= _"ߙxe'/2p$R{hPK- N|s0I<ch7mpIYA "6h>M^ax@dpy; }D1/>z~$)#  ne0_ @1 `#tC)Hr! H\ O<$B O!F x0p</ a$?CWC<=$ֶ'}{v!IQ=+=O~1bֈb$ w](k{Ʃe@Hy˥X)U$ a(Q[ѽ96Vt;[[ Vȣ@gAMA cHRMmsMvћ3v ou=IDATxڔKhTWwfQ063yաX!(BIMD5jh)* ! -&Q FE`"Z/Pw^bL·>QN8t )}=b13ڷ^*mJV2/ۮGFF}__Ye7;uvXˢP0ւC^Bp #`Ecsĉ8UU,DW" J J u{'f): FPZњ]kum=z'dr BXlUQϗn1Y|9rx'uy3;(:3|[LSW3xm[c Jg?rViA̻>a2Jwqő0D¼QD `܍iNz xKMC-˛hYtFg#PADb1'.L*-go'ZaKtg&*Z*+YGu|ٺ5)^*Xc(wEF?@Z>YѰx"W3O3;4 b1$ŰcmTF *7 %BCz2ޱ,O2Diunl2 _qvצm4V\mDjni'W~?EkFe;PmSX,V `I0_c⃜9b64IENDB`././@LongLink0000000000000000000000000000016700000000000011571 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/TipOfTheDay_de.propertiesswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/TipOfTh0000644000175000017500000000040010303110212033565 0ustar drazzibdrazzibTipOfTheDay.dialogTitle=Tipp des Tages TipOfTheDay.didYouKnowText=Wussten Sie schon...? TipOfTheDay.showOnStartupText=Tipps beim Start anzeigen TipOfTheDay.previousTipText=< Zur\u00fcck TipOfTheDay.nextTipText=Weiter > TipOfTheDay.closeText=Schlie\u00dfen ././@LongLink0000000000000000000000000000016500000000000011567 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/ErrorPane_it.propertiesswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/ErrorPa0000644000175000017500000000047310715067005033656 0ustar drazzibdrazzib# # JXErrorPanel properties # JXErrorPane.details_expand_text=Dettagli >> JXErrorPane.details_contract_text=Dettagli << JXErrorPane.ok_button_text=Chiudi JXErrorPane.fatal_button_text=Esci dall'Applicazione JXErrorPane.report_button_text=Segnala Errore JXErrorPane.copy_to_clipboard_button_text=Copia negli Appunti ././@LongLink0000000000000000000000000000016200000000000011564 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/swingx_da.propertiesswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/swingx_0000644000175000017500000000336310715067005033763 0ustar drazzibdrazzib# default properties for swingx # JXSearchPanel Search.matchCase=Forskel p\u00e5 sm\u00e5/store bogstaver Search.contains=indeholder Search.equals=passer med Search.endsWith=ender med Search.startsWith=starter med Search.wrapSearch=Ombryd s\u00f8gning Search.backwardsSearch=Tilbage Search.match=Find Search.close=Luk Search.findNext=Find N\u00e6ste Search.findPrevious=Find Forrige Search.searchFieldLabel=Find Search.searchFieldLabel.mnemonic=F Search.searchTitle=Find Search.notFoundBackground=FF6666 Search.notFoundForeground=000000 XDialog.close=Luk XDialog.cancel=Annuller XDialog.execute=OK # default properties for swingx # JXTable column control entries # JXTable.column.horizontalScroll=Vandret Scroll JXTable.column.packAll=Tilpas alle kolonner JXTable.column.packSelected=Tilpas markerede kolonner # # default actions in context menues for TextComponents # DefaultEditorKit.cut-to-clipboard=Klip DefaultEditorKit.copy-to-clipboard=Kopier DefaultEditorKit.paste-from-clipboard=Inds\u00e6t DefaultEditorKit.delete-next=Slet DefaultEditorKit.select-all=Marker alt # # default actions for context menus for ScrollBars # JScrollBar.vertical.minScroll=Top JScrollBar.vertical.maxScroll=Bund JScrollBar.vertical.negativeUnitIncrement=Scroll op JScrollBar.vertical.negativeBlockIncrement=Side op JScrollBar.vertical.positiveUnitIncrement=Scroll ned JScrollBar.vertical.positiveBlockIncrement=Side ned JScrollBar.horizontal.minScroll=Venstre hj\u00f8rne JScrollBar.horizontal.maxScroll=H\u00f8jre hj\u00f8rne JScrollBar.horizontal.negativeUnitIncrement=Scroll til venstre JScrollBar.horizontal.negativeBlockIncrement=Side til venstre JScrollBar.horizontal.positiveUnitIncrement=Scroll til h\u00f8jre JScrollBar.horizontal.positiveBlockIncrement=Side til h\u00f8jre ././@LongLink0000000000000000000000000000016200000000000011564 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/ErrorPane.propertiesswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/ErrorPa0000644000175000017500000000045610715067005033657 0ustar drazzibdrazzib# # JXErrorPanel properties # JXErrorPane.details_expand_text=Details >> JXErrorPane.details_contract_text=Details << JXErrorPane.ok_button_text=Close JXErrorPane.fatal_button_text=Exit Application JXErrorPane.report_button_text=Report Error JXErrorPane.copy_to_clipboard_button_text=Copy to Clipboard ././@LongLink0000000000000000000000000000016700000000000011571 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/TipOfTheDay_pl.propertiesswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/TipOfTh0000644000175000017500000000036611075726742033634 0ustar drazzibdrazzibTipOfTheDay.dialogTitle=Porada dnia TipOfTheDay.didYouKnowText=Czy wiesz \u017Ce... TipOfTheDay.showOnStartupText=Pokazuj porady przy uruchomieniu TipOfTheDay.previousTipText=< Wstecz TipOfTheDay.nextTipText=Dalej > TipOfTheDay.closeText=Zamknij ././@LongLink0000000000000000000000000000014700000000000011567 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/clear.gifswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/clear.g0000644000175000017500000000200211323133151033575 0ustar drazzibdrazzibGIF89a%M{%O&O'O}'Q,T(U,U/U0V1W3Y,]3\6\-_.`9^:^5_3b9a9b6d=c0f1f?d?g=jBj@mDl6qArJrDuLt?x:y@xNv<~V~XAADecdhhijknlmosĀsɂtuȂtvvwyz}{|}Հցׂ؃׃لڅۆ܇݈މߊጴ⍵㘳ҏ呹璺蔼꡺֗۶! ,@ | 1`pbe # K-W@q 6؂J)M!RdG2 >iL%;tcE 07hĘq7H8`E 66Y  5 PЀ iƂ_0ysAq !YĜ10 A:!Lװc>/r "' ;././@LongLink0000000000000000000000000000016700000000000011571 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/TipOfTheDay_sv.propertiesswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/TipOfTh0000644000175000017500000000035310712377435033626 0ustar drazzibdrazzibTipOfTheDay.dialogTitle=Dagens tips TipOfTheDay.didYouKnowText=Visste du... TipOfTheDay.showOnStartupText=Visa tips vid start TipOfTheDay.previousTipText=< Tillbaka TipOfTheDay.nextTipText=N\u00E4sta > TipOfTheDay.closeText=St\u00E4ng ././@LongLink0000000000000000000000000000016600000000000011570 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/DatePicker_da.propertiesswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/DatePic0000644000175000017500000000064110715067005033612 0ustar drazzibdrazzib# # Text, formatting for JXDatePicker # # Note: Danish official date formating allows for both a traditional # and the ISO version. Since de-facto is to use the traditional # that's what JXDatePicker will use default. # JXDatePicker.linkFormat=Dags dato {0,date, dd MMMM yyyy} JXDatePicker.longFormat=EEE dd-MM-yyyy JXDatePicker.mediumFormat=dd-MM-yyyy JXDatePicker.shortFormat=dd/MM JXDatePicker.numColumns=10 ././@LongLink0000000000000000000000000000016000000000000011562 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/clear_rollover.gifswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/clear_r0000644000175000017500000000200111323133151033670 0ustar drazzibdrazzibGIF89a.a0c0e1g4g8h9i5k:jNo fu\u00E9 posible autenticar.

Compruebe su nombre de usuario y clave. Compruebe si el bloqueo de may\u00FAsculas est\u00E1 activado. JXLoginPane.failedString=Fall\u00F3 la conexi\u00F3n; la combinaci\u00F3n de nombre de usuario/clave es inv\u00E1lida. JXLoginPane.pleaseWait=Espere por favor... JXLoginPane.promptString=Ingrese su nombre de usuario y contrase\u00F1a JXLoginPane.serverString=Servidor JXLoginPane.stopString=Detener conexi\u00F3n JXLoginPane.stopString.mnemonic=D JXLoginPane.titleString=Conectar ././@LongLink0000000000000000000000000000015700000000000011570 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/swingx.propertiesswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/swingx.0000644000175000017500000000325111102654604033674 0ustar drazzibdrazzib# default properties for swingx # JXSearchPanel Search.matchCase=Case sensitive Search.contains=contains Search.equals=equals Search.endsWith=ends with Search.startsWith=begins with Search.wrapSearch=Wrap Search Search.backwardsSearch=Backward Search.match=Find Search.close=Close Search.findNext=Find Next Search.findPrevious=Find Previous Search.searchFieldLabel=Find Search.searchFieldLabel.mnemonic=F Search.searchTitle=Find Search.notFound=Value not found Search.notFoundBackground=FF6666 Search.notFoundForeground=000000 XDialog.close=Close XDialog.cancel=Cancel XDialog.execute=OK # default properties for swingx # JXTable column control entries # JXTable.column.horizontalScroll=Horizontal Scroll JXTable.column.packAll=Pack All Columns JXTable.column.packSelected=Pack Selected Column # # default actions in context menues for TextComponents # DefaultEditorKit.cut-to-clipboard=Cut DefaultEditorKit.copy-to-clipboard=Copy DefaultEditorKit.paste-from-clipboard=Paste DefaultEditorKit.delete-next=Delete DefaultEditorKit.select-all=Select All # # default actions for context menus for ScrollBars # JScrollBar.vertical.minScroll=Top JScrollBar.vertical.maxScroll=Bottom JScrollBar.vertical.negativeUnitIncrement=Scroll Up JScrollBar.vertical.negativeBlockIncrement=Page Up JScrollBar.vertical.positiveUnitIncrement=Scroll Down JScrollBar.vertical.positiveBlockIncrement=Page Down JScrollBar.horizontal.minScroll=Left Edge JScrollBar.horizontal.maxScroll=Right Edge JScrollBar.horizontal.negativeUnitIncrement=Scroll Left JScrollBar.horizontal.negativeBlockIncrement=Page Left JScrollBar.horizontal.positiveUnitIncrement=Scroll Right JScrollBar.horizontal.positiveBlockIncrement=Page Right ././@LongLink0000000000000000000000000000016200000000000011564 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/LoginPane.propertiesswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/LoginPa0000644000175000017500000000220711056055571033636 0ustar drazzibdrazzib# Strings used by JXLoginDialog and JXLoginPane JXLoginPane.okString=OK JXLoginPane.okString.mnemonic=O JXLoginPane.cancelString=Cancel JXLoginPane.cancelString.mnemonic=C JXLoginPane.stopString=Stop Login JXLoginPane.stopString.mnemonic=S JXLoginPane.promptString=Enter your user name and password JXLoginPane.serverString=Server JXLoginPane.nameString=User Name JXLoginPane.loginString=Login JXLoginPane.bannerString=Login JXLoginPane.titleString=Login JXLoginPane.passwordString=Password JXLoginPane.rememberUserString=Remember Me JXLoginPane.rememberPasswordString=Remember Password JXLoginPane.loggingInString=Please wait, logging in... JXLoginPane.failedString=Login failed; invalid user name/password combination. JXLoginPane.enterUserNamePassword=Enter your user name and password JXLoginPane.pleaseWait=Please wait, logging in... JXLoginPane.cancelWait=Canceling login, please wait... JXLoginPane.cancelLogin=Stop login JXLoginPane.errorMessage=Couldn't log in

\ Check your user name and password. Check to see if \ Caps Lock is turned on. JXLoginPane.capsOnWarning=CapsLock seems to be ON! ././@LongLink0000000000000000000000000000016500000000000011567 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/LoginPane_cs.propertiesswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/LoginPa0000644000175000017500000000323711056055571033642 0ustar drazzibdrazzib#Czech resource bundle created by Vity (vitywap@seznam.cz) 08/2007 # Strings used by JXLoginDialog and JXLoginPanel JXLoginPane.okString=OK JXLoginPane.okString.mnemonic=O JXLoginPane.cancelString=Storno JXLoginPane.cancelString.mnemonic=S JXLoginPane.stopString=P\u0159eru\u0161it p\u0159ihla\u0161ov\u00e1n\u00ed JXLoginPane.stopString.mnemonic=P JXLoginPane.promptString=Zadejte sv\u00e9 u\u017eivatelsk\u00e9 jm\u00e9no a heslo JXLoginPane.serverString=Server JXLoginPane.nameString=U\u017eivatelsk\u00e9 Jm\u00e9no JXLoginPane.loginString=P\u0159ihl\u00e1sit JXLoginPane.bannerString=P\u0159ihl\u00e1\u0161en\u00ed JXLoginPane.titleString=P\u0159ihl\u00e1\u0161en\u00ed JXLoginPane.passwordString=Heslo JXLoginPane.rememberUserString=Zapamatovat JXLoginPane.rememberPasswordString=Zapamatovat Heslo JXLoginPane.loggingInString=Pros\u00edm \u010dekejte, prob\u00edh\u00e1 p\u0159ihla\u0161ov\u00e1n\u00ed.... JXLoginPane.failedString=P\u0159ihla\u0161ov\u00e1n\u00ed selhalo; \u0161patn\u00e9 u\u017eivatelsk\u00e9 jm\u00e9no nebo heslo. JXLoginPane.enterUserNamePassword=Zadejte sv\u00e9 u\u017eivatelsk\u00e9 jm\u00e9no a heslo JXLoginPane.pleaseWait=Pros\u00edm \u010dekejte, prob\u00edh\u00e1 p\u0159ihla\u0161ov\u00e1n\u00ed.... JXLoginPane.cancelWait=Ukon\u010den\u00ed p\u0159ihla\u0161ov\u00e1n\u00ed, pros\u00edm \u010dekejte.... JXLoginPane.cancelLogin=P\u0159eru\u0161it p\u0159ihla\u0161ov\u00e1n\u00ed JXLoginPane.errorMessage=Nepoda\u0159ilo se p\u0159ihl\u00e1sit.

\ Pros\u00edm ov\u011b\u0159te sv\u00e9 u\u017eivatelsk\u00e9 jm\u00e9no a heslo. \ P\u0159\u00edpadn\u011b zkontrolujte nen\u00ed-li zapnuta kl\u00e1vesa Caps Lock. ././@LongLink0000000000000000000000000000016700000000000011571 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/TipOfTheDay_es.propertiesswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/TipOfTh0000644000175000017500000000040310323445532033612 0ustar drazzibdrazzibTipOfTheDay.dialogTitle=Sugerencia del D\u00eda TipOfTheDay.didYouKnowText=Sab\u00edas que ... TipOfTheDay.showOnStartupText=Mostrar sugerencias al inicio TipOfTheDay.previousTipText=< Anterior TipOfTheDay.nextTipText=Siguiente > TipOfTheDay.closeText=Cerrar ././@LongLink0000000000000000000000000000016500000000000011567 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/ErrorPane_fr.propertiesswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/ErrorPa0000644000175000017500000000050410715067005033651 0ustar drazzibdrazzib# # JXErrorPanel properties # JXErrorPane.details_expand_text=Dtails >> JXErrorPane.details_contract_text=Dtails << JXErrorPane.ok_button_text=Fermer JXErrorPane.fatal_button_text=Quitter l'application JXErrorPane.report_button_text=Rapport d'erreur JXErrorPane.copy_to_clipboard_button_text=Copier dans le presse-papiers ././@LongLink0000000000000000000000000000017100000000000011564 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/DatePicker_pt_BR.propertiesswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/DatePic0000644000175000017500000000035110715067005033610 0ustar drazzibdrazzib# # Text, formatting for JXDatePicker # JXDatePicker.linkFormat=Hoje \u00E9 {0,date, dd MMMM yyyy} JXDatePicker.longFormat=EEE dd/MM/yyyy JXDatePicker.mediumFormat=dd/MM/yyyy JXDatePicker.shortFormat=dd/MM JXDatePicker.numColumns=10 ././@LongLink0000000000000000000000000000016700000000000011571 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/TipOfTheDay_cs.propertiesswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/TipOfTh0000644000175000017500000000054010664746357033635 0ustar drazzibdrazzib#Czech resource bundle created by Vity (vitywap@seznam.cz) 08/2007 TipOfTheDay.dialogTitle=Tip dne TipOfTheDay.didYouKnowText=V\u011bd\u011bli jste, \u017ee... TipOfTheDay.showOnStartupText=Zobrazovat tipy p\u0159i startu TipOfTheDay.previousTipText=< P\u0159edchoz\u00ed TipOfTheDay.nextTipText=Dal\u0161\u00ed > TipOfTheDay.closeText=Zav\u0159\u00edt././@LongLink0000000000000000000000000000015700000000000011570 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/clear_pressed.gifswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/clear_p0000644000175000017500000000201011323133151033666 0ustar drazzibdrazzibGIF89a.\/]0^ 1_ 2` 3a 4b 5c6d7e8f8d9g9h:h;il?m?l?n@nAoBpBmCqCpDrDqEsFtFuGu Hv!Iw!Jz"Jx$Ju$Jv"K{#Ky#L|$Lz&Lw$M}%M{'My(Ny%O(O{*Oz'T.S(U(U/V0V1W3X2Y4Y,]2]-_.`5_1`3b0f1f9g;i=o6q?q=v=v:y<~eAAlnDpux~ƅɡĢţƤťǦǥʧɩʧΪ̨̬ӫЭͬѮάխְӱدܳ! ,UY  8 ,La  TipOfTheDay.closeText=Sluiten ././@LongLink0000000000000000000000000000015400000000000011565 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/month-down.pngswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/month-d0000644000175000017500000000610210715067005033645 0ustar drazzibdrazzibPNG  IHDR pHYs  iCCPPhotoshop ICC profilexڭy< r&!)DƑi9*0cf(e!}CV9Vֶ&T[tl:ti;c{<~߿>}|>z4"@@\TF i"U9+/xw ܰfDo84, ƐcQ82H t9l.@0f 9Eĉ3'jV\ 'P8!`Fаp:\콷4 (uz ?{ЫDۑ JeBh1dx m&N4u3f9vqusc{xzy˜b̟`EQQ./:&6d .^(JKI˖'L*5mUF5kfen sr6n۲?[m߾c]ݻ/`aс:\\rHcǏ(;yS+k=swߟ;ÅRWw7oݾݻiϞ| J*jZÆ39hq}lg4mg7ɜ `Ely H*uUzՙkfeen s6mݜGS@SqteeUuͷg ?/W_~:{Mki{޼{AeUuMau GcL7;| l&Mlg?3Z`kA^ y,?UTzO} "=cuf暵=qPqlFþ} MfAES W5h$s_zAʎ@Y L/r7zKP hmG@4(AjЄ0 tNp\ ґ2Cjp D.QL#*LTR*+4ьhtZ4:J" Rz!C6TUTשڨV^ai_T{v0ưzW-K?mi~9FFG0hdjl8kM%:/LJ locھqJCcSӼO^6b,Mgo\\1ܟztxu͑εe `EBDŽ#,(]ذ،m։W,y&/&/_^1b%'<-xUIluZ,^xm[VֶڝwI&IaxAC̒O䗿H=VڲvWw$=w|vg7oݺT:_ԇ]>>u={cwSV$@*W*Ukjhj oK7%G!H}ެ~UIYٽnm6N92_]?LVʁ>Ǧ՗$9.K#Si~,^u&s6%H/)h- /j_mYSp>M'[*@Ew+OG.賉yʽ]n>՛=9jwoSڽ]N9ʔq&}ݟR>J9bpk蘰9'Hg~"_06I`}>V%MAkax~Q#+w>_^_tݧatCgxOWw$= _"ߙxe'/2p$R{hPK- N|s0I<ch7mpIYA "6h>M^ax@dpy; }D1/>z~$)#  ne0_ @1 `#tC)Hr! H\ O<$B O!F x0p</ a$?CWC<=$ֶ'}{v!IQ=+=O~1bֈb$ w](k{Ʃe@Hy˥X)U$ a(Q[ѽ96Vt;[[ Vȣ@gAMA cHRMmsMvћ3v ou=IDATxڔ]hW;3쨛Ոq[AhժCi6~$(m$dPAP7%"--h"CM'E>hAnv73wν}f5 n.s{9s c xs|m1cghE"]2]?jڳG`=Z+I$ؽse8{ <7EA)$m$DkDr̝v V%h(%S:|E[{]{`4wR|bs绹t<g~mHVYSE461p`` W Gӕdܵ kU4HҙhPZʵ?9y1|OYZ_K8mPԵ9ۦy|&7=Pnz! xIϢX("oiM \-|Vl|_$J޿O rcT*yuw[7Vg`E1?/⣒3N2Mс({֥IENDB`././@LongLink0000000000000000000000000000016500000000000011567 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/swingx_pt_BR.propertiesswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/swingx_0000644000175000017500000000352410715067005033762 0ustar drazzibdrazzib# default properties for swingx # JXSearchPanel Search.matchCase=Diferenciar Mai\u00FAscula/Min\u00FAscula Search.contains=Cont\u00E9m Search.equals=Igual Search.endsWith=Come\u00E7a com Search.startsWith=Termina com Search.wrapSearch=Circular Search.backwardsSearch=Pesquisa para Tr\u00E1s Search.match=Localizar Search.close=Fechar Search.findNext=Localizar Pr\u00F3xima Search.findPrevious=Localizar Anterior Search.searchFieldLabel=Localizar Search.searchFieldLabel.mnemonic=F Search.searchTitle=Localizar Search.notFoundBackground=FF6666 Search.notFoundForeground=000000 XDialog.close=Fechar XDialog.cancel=Cancelar XDialog.execute=OK # default properties for swingx # JXTable column control entries # JXTable.column.horizontalScroll=Rolagem Horizontal JXTable.column.packAll=Reduzir Todas as Colunas JXTable.column.packSelected=Reduzir Colunas Selecionadas # # default actions in context menues for TextComponents # DefaultEditorKit.cut-to-clipboard=Recortar DefaultEditorKit.copy-to-clipboard=Copiar DefaultEditorKit.paste-from-clipboard=Colar DefaultEditorKit.delete-next=Excluir DefaultEditorKit.select-all=Selecionar Tudo # # default actions for context menus for ScrollBars # JScrollBar.vertical.minScroll=In\u00EDcio JScrollBar.vertical.maxScroll=Fim JScrollBar.vertical.negativeUnitIncrement=Rolar para Cima JScrollBar.vertical.negativeBlockIncrement=P\u00E1gina Anterior JScrollBar.vertical.positiveUnitIncrement=Rolar para Baixo JScrollBar.vertical.positiveBlockIncrement=Pr\u00F3xima P\u00E1gina JScrollBar.horizontal.minScroll=Limite Esquerdo JScrollBar.horizontal.maxScroll=Limite Direito JScrollBar.horizontal.negativeUnitIncrement=Rolar para Esquerda JScrollBar.horizontal.negativeBlockIncrement=P\u00E1gina Esquerda JScrollBar.horizontal.positiveUnitIncrement=Rolar para Direita JScrollBar.horizontal.positiveBlockIncrement=P\u00E1gina Direita ././@LongLink0000000000000000000000000000015700000000000011570 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/TipOfTheDay24.gifswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/TipOfTh0000644000175000017500000000134610303110212033577 0ustar drazzibdrazzibGIF89aqqrr}}||nnqR[ -./:4;:ABIIQQUVVbclz}~؆ڍޟߢffQggUssattcii]wwmxxtllk̨úɱ !M,MLK/-)&0*,*(%!LL0.25("L*39;+$  /,5<;5,'-*2*ƈ)(ՈL&%("#'>=>$0a;q!:Rs 6bLxP,. lnS|M0PP&L~0M@)rM9 1ǛK%fZ֯`7!OCopyright 2000 by Sun Microsystems, Inc. All Rights Reserved. JLF GR Ver 1.0 ;././@LongLink0000000000000000000000000000016600000000000011570 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/DatePicker_it.propertiesswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/DatePic0000644000175000017500000000035410715067005033613 0ustar drazzibdrazzib# # Text, formatting for JXDatePicker # JXDatePicker.linkFormat=Oggi \u00E8 il {0,date, dd MMMM yyyy} JXDatePicker.longFormat=EEE dd/MM/yyyy JXDatePicker.mediumFormat=dd/MM/yyyy JXDatePicker.shortFormat=dd/MM JXDatePicker.numColumns=10 ././@LongLink0000000000000000000000000000016200000000000011564 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/swingx_sv.propertiesswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/swingx_0000644000175000017500000000351710715067005033764 0ustar drazzibdrazzib# default properties for swingx # JXSearchPanel Search.matchCase=Matcha gemener/VERSALER Search.contains=inneh\u00E5ller Search.equals=lika med Search.endsWith=slutar med Search.startsWith=b\u00F6rjar med Search.wrapSearch=S\u00F6k runt Search.backwardsSearch=Bak\u00E5t Search.match=S\u00F6k Search.close=St\u00E4ng Search.findNext=S\u00F6k n\u00E4sta Search.findPrevious=S\u00F6k tidigare Search.searchFieldLabel=S\u00F6k Search.searchFieldLabel.mnemonic=k Search.searchTitle=S\u00F6k Search.notFoundBackground=FF6666 Search.notFoundForeground=000000 XDialog.close=St\u00E4ng XDialog.cancel=Avbryt XDialog.execute=OK # default properties for swingx # JXTable column control entries # JXTable.column.horizontalScroll=Horizontell rullning JXTable.column.packAll=Anpassa kolumnbredd JXTable.column.packSelected=Anpassa valda kolumners bredd # # default actions in context menues for TextComponents # DefaultEditorKit.cut-to-clipboard=Klipp ut DefaultEditorKit.copy-to-clipboard=Kopiera DefaultEditorKit.paste-from-clipboard=Klistra in DefaultEditorKit.delete-next=Radera DefaultEditorKit.select-all=Markera allt # # default actions for context menus for ScrollBars # JScrollBar.vertical.minScroll=\u00D6verkant JScrollBar.vertical.maxScroll=Nederkant JScrollBar.vertical.negativeUnitIncrement=Rulla upp\u00E5t JScrollBar.vertical.negativeBlockIncrement=En sida upp JScrollBar.vertical.positiveUnitIncrement=Rulla ned\u00E5t JScrollBar.vertical.positiveBlockIncrement=En sida ned JScrollBar.horizontal.minScroll=V\u00E4nsterkant JScrollBar.horizontal.maxScroll=H\u00F6gerkant JScrollBar.horizontal.negativeUnitIncrement=Rulla \u00E5t v\u00E4nster JScrollBar.horizontal.negativeBlockIncrement=En sida \u00E5t v\u00E4nster JScrollBar.horizontal.positiveUnitIncrement=Rulla \u00E5t h\u00F6ger JScrollBar.horizontal.positiveBlockIncrement=En sida \u00E5t h\u00F6ger ././@LongLink0000000000000000000000000000016300000000000011565 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/DatePicker.propertiesswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/DatePic0000644000175000017500000000062011121744320033601 0ustar drazzibdrazzib# # Text, formatting for JXDatePicker # JXDatePicker.linkFormat=Today is {0,date} # Issue #945-swingx: force a default fallback here not the right thing to # for locales which do not have a properties file. In that case the # language defaults provide a better fit #JXDatePicker.longFormat=EEE MM/dd/yyyy #JXDatePicker.mediumFormat=MM/dd/yy #JXDatePicker.shortFormat=MM/dd JXDatePicker.numColumns=10 ././@LongLink0000000000000000000000000000016200000000000011564 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/swingx_pl.propertiesswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/swingx_0000644000175000017500000000365211075726742033776 0ustar drazzibdrazzib# default properties for swingx # JXSearchPanel Search.matchCase=Uwzgl\u0119dniaj wielko\u015B\u0107 liter Search.contains=zawieraj\u0105ce Search.equals=r\u00F3wne Search.endsWith=ko\u0144cz\u0105ce si\u0119 na Search.startsWith=zaczynaj\u0105ce si\u0119 od Search.wrapSearch=Zawi\u0144 wyszukiwanie Search.backwardsSearch=Poszukiwanie w ty\u0142 Search.match=Szukaj Search.close=Zamknij Search.findNext=Szukaj nast\u0119pnego Search.findPrevious=Szukaj poprzedniego Search.searchFieldLabel=Szukaj Search.searchFieldLabel.mnemonic=S Search.searchTitle=Szukaj Search.notFoundBackground=FF6666 Search.notFoundForeground=000000 XDialog.close=Zamknij XDialog.cancel=Anuluj XDialog.execute=OK # default properties for swingx # JXTable column control entries # JXTable.column.horizontalScroll=Przewijanie poziome JXTable.column.packAll=Upakuj wszystkie kolumny JXTable.column.packSelected=Upakuj wybrane kolumny # # default actions in context menues for TextComponents # DefaultEditorKit.cut-to-clipboard=Wytnij DefaultEditorKit.copy-to-clipboard=Kopiuj DefaultEditorKit.paste-from-clipboard=Wklej DefaultEditorKit.delete-next=Usu\u0144 DefaultEditorKit.select-all=Zaznacz wszystko # # default actions for context menus for ScrollBars # JScrollBar.vertical.minScroll=G\u00F3ra JScrollBar.vertical.maxScroll=D\u00F3\u0142 JScrollBar.vertical.negativeUnitIncrement=Przewi\u0144 w g\u00F3r\u0119 JScrollBar.vertical.negativeBlockIncrement=Strona w g\u00F3r\u0119 JScrollBar.vertical.positiveUnitIncrement=Przewi\u0144 w d\u00F3\u0142 JScrollBar.vertical.positiveBlockIncrement=Strona w d\u00F3\u0142 JScrollBar.horizontal.minScroll=Lewa kraw\u0119d\u017A JScrollBar.horizontal.maxScroll=Prawa kraw\u0119d\u017A JScrollBar.horizontal.negativeUnitIncrement=Przewi\u0144 w lewo JScrollBar.horizontal.negativeBlockIncrement=Strona w lewo JScrollBar.horizontal.positiveUnitIncrement=Przewi\u0144 w prawo JScrollBar.horizontal.positiveBlockIncrement=Strona w prawo ././@LongLink0000000000000000000000000000016600000000000011570 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/DatePicker_es.propertiesswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/DatePic0000644000175000017500000000013610715067005033611 0ustar drazzibdrazzib# # Text, formatting for JXDatePicker # JXDatePicker.linkFormat=Hoy es {0,date, dd MMMM yyyy} ././@LongLink0000000000000000000000000000016700000000000011571 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/TipOfTheDay_fr.propertiesswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/TipOfTh0000644000175000017500000000040010303110212033565 0ustar drazzibdrazzibTipOfTheDay.dialogTitle=Astuce du Jour TipOfTheDay.didYouKnowText=Le saviez-vous... TipOfTheDay.showOnStartupText=Afficher au d\u00e9marrage TipOfTheDay.previousTipText=< Pr\u00e9c\u00e9dente TipOfTheDay.nextTipText=Suivante > TipOfTheDay.closeText=Fermer ././@LongLink0000000000000000000000000000016500000000000011567 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/ErrorPane_da.propertiesswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/ErrorPa0000644000175000017500000000046510715067005033657 0ustar drazzibdrazzib# # JXErrorPanel properties # JXErrorPane.details_expand_text=Detaljer >> JXErrorPane.details_contract_text=Detaljer << JXErrorPane.ok_button_text=Luk JXErrorPane.fatal_button_text=Afslut program JXErrorPane.report_button_text=Rapporter fejl JXErrorPane.copy_to_clipboard_button_text=Kopier til udklipsholder ././@LongLink0000000000000000000000000000016500000000000011567 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/LoginPane_de.propertiesswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/LoginPa0000644000175000017500000000246611056055571033645 0ustar drazzibdrazzib# Strings used by JXLoginDialog and JXLoginPane JXLoginPane.okString=Ok JXLoginPane.okString.mnemonic=O JXLoginPane.cancelString=Abbrechen JXLoginPane.cancelString.mnemonic=A JXLoginPane.stopString=Anmeldung abbrechen JXLoginPane.stopString.mnemonic=A JXLoginPane.promptString=Bitte geben Sie Ihren Benutzernamen und Ihr Passwort ein JXLoginPane.serverString=Server JXLoginPane.nameString=Benutzername JXLoginPane.loginString=Anmelden JXLoginPane.bannerString=Anmeldung JXLoginPane.titleString=Anmeldung JXLoginPane.passwordString=Passwort JXLoginPane.rememberUserString=Benutzernamen merken JXLoginPane.rememberPasswordString=Passwort merken JXLoginPane.loggingInString=Bitte warten, Sie werden angemeldet... JXLoginPane.failedString=Anmeldung fehlgeschlagen; Der Benutzername mit diesem Passwort ist ung\u00FCltig. JXLoginPane.enterUserNamePassword=Bitte geben Sie Ihren Benutzernamen und Ihr Passwort ein JXLoginPane.pleaseWait=Bitte warten, Sie werden angemeldet... JXLoginPane.cancelWait=Anmeldung wird abgebrochen, bitte warten... JXLoginPane.cancelLogin=Anmeldung abbrechen JXLoginPane.errorMessage=Anmeldung fehlgeschlagen

\ Bitte pr\u00FCfen Sie den Benutzernamen und das Passwort. JXLoginPane.capsOnWarning=Achtung: Die Hochstelltaste ('CapsLock') ist aktiv ! ././@LongLink0000000000000000000000000000017000000000000011563 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/ErrorPane_pt_BR.propertiesswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/ErrorPa0000644000175000017500000000053010715067005033650 0ustar drazzibdrazzib# # JXErrorPanel properties # JXErrorPane.details_expand_text=Detalhes >> JXErrorPane.details_contract_text=Detalhes << JXErrorPane.ok_button_text=Fechar JXErrorPane.fatal_button_text=Sair da Aplica\u00E7\u00E3o JXErrorPane.report_button_text=Reportar Erro JXErrorPane.copy_to_clipboard_button_text=Copia para a \u00E1rea de Transfer\u00EAncia ././@LongLink0000000000000000000000000000015100000000000011562 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/error16.pngswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/error160000644000175000017500000000677610715067005033620 0ustar drazzibdrazzibPNG  IHDRa pHYs   MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3gAMA|Q cHRMz%u0`:o_FIDATx4Ohwy6OpMXv:+&:=`E/nw]Q AQa0cvJ] 0]lW5鿧Imby~~}}>RAa¶-H<~Rm+k1++0`9Te}v@N+=LGǁ'˥@J"mu>hypq(`s'O*gNmvw&'rk5"0x`q1FƱL۟56~L&tgCCT)CpU)퓰lLQ%;8ȇWIx> JXErrorPane.details_contract_text=Detaily << JXErrorPane.ok_button_text=Zav\u0159\u00edt JXErrorPane.fatal_button_text=Ukon\u010dit Aplikaci JXErrorPane.report_button_text=Ozn\u00e1mit Chybu JXErrorPane.copy_to_clipboard_button_text=Zkop\u00edrovat do Schr\u00e1nky ././@LongLink0000000000000000000000000000017200000000000011565 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/TipOfTheDay_pt_BR.propertiesswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/TipOfTh0000644000175000017500000000036410676776335033643 0ustar drazzibdrazzibTipOfTheDay.dialogTitle=Dica do Dia TipOfTheDay.didYouKnowText=Voc\u00EA sabia... TipOfTheDay.showOnStartupText=Mostrar dicas ao iniciar TipOfTheDay.previousTipText=< Anterior TipOfTheDay.nextTipText=Pr\u00F3xima > TipOfTheDay.closeText=Fechar ././@LongLink0000000000000000000000000000016600000000000011570 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/DatePicker_nl.propertiesswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/DatePic0000644000175000017500000000036110722472162033613 0ustar drazzibdrazzib# # Text, formatting for JXDatePicker # JXDatePicker.linkFormat=Vandaag is het {0,date, dd MMMM yyyy} JXDatePicker.longFormat=EEE yyyy-MM-dd JXDatePicker.mediumFormat=yyyy-MM-dd JXDatePicker.shortFormat=yyyy-MM-dd JXDatePicker.numColumns=10 ././@LongLink0000000000000000000000000000016500000000000011567 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/ErrorPane_pl.propertiesswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/ErrorPa0000644000175000017500000000053111075726742033663 0ustar drazzibdrazzib# # JXErrorPanel properties # JXErrorPane.details_expand_text=Szczeg\u00F3\u0142y >> JXErrorPane.details_contract_text=Szczeg\u00F3\u0142y << JXErrorPane.ok_button_text=Zamknij JXErrorPane.fatal_button_text=Zako\u0144cz aplikacje JXErrorPane.report_button_text=Raportuj b\u0142\u0105d JXErrorPane.copy_to_clipboard_button_text=Kopiuj do schowka ././@LongLink0000000000000000000000000000016400000000000011566 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/TipOfTheDay.propertiesswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/TipOfTh0000644000175000017500000000034310303110212033573 0ustar drazzibdrazzibTipOfTheDay.dialogTitle=Tip of the Day TipOfTheDay.didYouKnowText=Did you know... TipOfTheDay.showOnStartupText=Show tips on startup TipOfTheDay.previousTipText=< Back TipOfTheDay.nextTipText=Next > TipOfTheDay.closeText=Close ././@LongLink0000000000000000000000000000017100000000000011564 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/DatePicker_pl_PL.propertiesswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/DatePic0000644000175000017500000000035011075726742033621 0ustar drazzibdrazzib# # Text, formatting for JXDatePicker # JXDatePicker.linkFormat=Dzisiaj jest {0,date, dd MMMM yyyy} JXDatePicker.longFormat=EEE dd.MM.yyyy JXDatePicker.mediumFormat=dd.MM.yy JXDatePicker.shortFormat=MM/dd JXDatePicker.numColumns=10 ././@LongLink0000000000000000000000000000016600000000000011570 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/DatePicker_fr.propertiesswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/DatePic0000644000175000017500000000037210732220576033616 0ustar drazzibdrazzib# # Text, formatting for JXDatePicker # JXDatePicker.linkFormat=Aujourd''hui, nous sommes le {0,date, dd MMMM yyyy} JXDatePicker.longFormat=EEE dd/MM/yyyy JXDatePicker.mediumFormat=dd/MM/yyyy JXDatePicker.shortFormat=dd/MM JXDatePicker.numColumns=10 ././@LongLink0000000000000000000000000000015000000000000011561 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/search.gifswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/search.0000644000175000017500000000104311323133151033611 0ustar drazzibdrazzibGIF89a [GGGLLLWWWXXX```ttt~~~ýü! , X"UY $MI0' V>258. GB3;@EC O47ALPN60> JXErrorPane.details_contract_text=Detalles << JXErrorPane.ok_button_text=Cerrar JXErrorPane.fatal_button_text=Salir de la aplicaci\u00F3n JXErrorPane.report_button_text=Reportar error JXErrorPane.copy_to_clipboard_button_text=Copiar al portapapeles ././@LongLink0000000000000000000000000000016500000000000011567 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/LoginPane_sv.propertiesswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/LoginPa0000644000175000017500000000253111056055571033636 0ustar drazzibdrazzib# Strings used by JXLoginDialog and JXLoginPanel JXLoginPane.okString=OK JXLoginPane.okString.mnemonic=O JXLoginPane.cancelString=Avbryt JXLoginPane.cancelString.mnemonic=v JXLoginPane.stopString=Avbryt inloggning JXLoginPane.stopString.mnemonic=v JXLoginPane.promptString=Ange ditt anv\u00E4ndarnamn och l\u00F6senord JXLoginPane.serverString=Server JXLoginPane.nameString=Anv\u00E4ndarnamn JXLoginPane.loginString=Inloggning JXLoginPane.bannerString=Inloggning JXLoginPane.titleString=Inloggning JXLoginPane.passwordString=L\u00F6senord JXLoginPane.rememberUserString=Kom ih\u00E5g mig JXLoginPane.rememberPasswordString=Kom ih\u00E5g l\u00F6senord JXLoginPane.loggingInString=Var god v\u00E4nta, inloggning p\u00E5g\u00E5r.... JXLoginPane.failedString=Inloggningen misslyckades; felaktig kombination av anv\u00E4ndarnamn/l\u00F6senord. JXLoginPane.enterUserNamePassword=Ange ditt anv\u00E4ndarnamn och l\u00F6senord JXLoginPane.pleaseWait=Var god v\u00E4nta, inloggning p\u00E5g\u00E5r.... JXLoginPane.cancelWait=Avbryter inloggningen, var god v\u00E4nta.... JXLoginPane.cancelLogin=Avbryt inloggning JXLoginPane.errorMessage=Inloggningen misslyckades

\ Kontrollera ditt anv\u00E4ndarnamn och l\u00F6senord. Kontrollera om Caps Lock \ \u00E4r aktiverat. JXLoginPane.capsOnWarning=Caps Lock \u00E4r aktiverat././@LongLink0000000000000000000000000000016500000000000011567 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/ErrorPane_de.propertiesswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/ErrorPa0000644000175000017500000000050110715067005033646 0ustar drazzibdrazzib# # JXErrorPanel properties # JXErrorPane.details_expand_text=Details >> JXErrorPane.details_contract_text=Details << JXErrorPane.ok_button_text=Schliessen JXErrorPane.fatal_button_text=Anwendung beenden JXErrorPane.report_button_text=Fehler berichten JXErrorPane.copy_to_clipboard_button_text=In Zwischenablage kopieren ././@LongLink0000000000000000000000000000017100000000000011564 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/DatePicker_en_GB.propertiesswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/DatePic0000644000175000017500000000035210732245350033611 0ustar drazzibdrazzib# # Text, formatting for JXDatePicker # # JXDatePicker.linkFormat=Today is {0,date, dd MMMM yyyy} JXDatePicker.longFormat=EEE dd/MM/yyyy JXDatePicker.mediumFormat=dd/MM/yyyy JXDatePicker.shortFormat=dd/MM JXDatePicker.numColumns=10 ././@LongLink0000000000000000000000000000017100000000000011564 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/DatePicker_en_US.propertiesswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/DatePic0000644000175000017500000000034410732772504033620 0ustar drazzibdrazzib# # Text, formatting for JXDatePicker # JXDatePicker.linkFormat=Today is {0,date, dd MMMM yyyy} JXDatePicker.longFormat=EEE MM/dd/yyyy JXDatePicker.mediumFormat=MM/dd/yy JXDatePicker.shortFormat=MM/dd JXDatePicker.numColumns=10 ././@LongLink0000000000000000000000000000016200000000000011564 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/swingx_it.propertiesswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/swingx_0000644000175000017500000000337110715067005033762 0ustar drazzibdrazzib# default properties for swingx # JXSearchPanel Search.matchCase=Maiuscole/Minuscole Search.contains=contiene Search.equals=uguale Search.endsWith=termina per Search.startsWith=inizia con Search.wrapSearch=Ricomincia dall'Inizio Search.backwardsSearch=Indietro Search.match=Trova Search.close=Chiudi Search.findNext=Trova Prossimo Search.findPrevious=Trova Precedente Search.searchFieldLabel=Trova Search.searchFieldLabel.mnemonic=F Search.searchTitle=Trova Search.notFoundBackground=FF6666 Search.notFoundForeground=000000 XDialog.close=Chiudi XDialog.cancel=Annulla XDialog.execute=OK # default properties for swingx # JXTable column control entries # JXTable.column.horizontalScroll=Muovi in Orizzontale JXTable.column.packAll=Auto-dimensiona Colonne JXTable.column.packSelected=Auto-dimensiona Colonna Selezionata # # default actions in context menues for TextComponents # DefaultEditorKit.cut-to-clipboard=Taglia DefaultEditorKit.copy-to-clipboard=Copia DefaultEditorKit.paste-from-clipboard=Incolla DefaultEditorKit.delete-next=Cancella DefaultEditorKit.select-all=Seleziona Tutto # # default actions for context menus for ScrollBars # JScrollBar.vertical.minScroll=Inizio JScrollBar.vertical.maxScroll=Fine JScrollBar.vertical.negativeUnitIncrement=Sposta Su JScrollBar.vertical.negativeBlockIncrement=Pagina Su JScrollBar.vertical.positiveUnitIncrement=Sposta Gi\u00F9 JScrollBar.vertical.positiveBlockIncrement=Sposta Gi\u00F9 JScrollBar.horizontal.minScroll=Bordo Sinistro JScrollBar.horizontal.maxScroll=Bordo Destro JScrollBar.horizontal.negativeUnitIncrement=Sposta a Sinistra JScrollBar.horizontal.negativeBlockIncrement=Pagina a Sinistra JScrollBar.horizontal.positiveUnitIncrement=Sposta a Destra JScrollBar.horizontal.positiveBlockIncrement=Pagina a Destra ././@LongLink0000000000000000000000000000017000000000000011563 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/LoginPane_pt_BR.propertiesswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/LoginPa0000644000175000017500000000230411056055571033634 0ustar drazzibdrazzib# Strings used by JXLoginDialog and JXLoginPanel JXLoginPane.okString=OK JXLoginPane.okString.mnemonic='O' JXLoginPane.cancelString=Cancelar JXLoginPane.cancelString.mnemonic='C' JXLoginPane.stopString=Interromper Autentica\u00E7\u00E3o JXLoginPane.stopString.mnemonic=P JXLoginPane.promptString=Informe seu usu\u00E1rio e senha JXLoginPane.serverString=Servidor JXLoginPane.nameString=Usu\u00E1rio JXLoginPane.loginString=Ok JXLoginPane.bannerString=Autentica\u00E7\u00E3o JXLoginPane.titleString=Autentica\u00E7\u00E3o JXLoginPane.passwordString=Senha JXLoginPane.rememberUserString=Lembrar usu\u00E1rio JXLoginPane.rememberPasswordString=Lembrar senha JXLoginPane.loggingInString=Aguarde, autenticando... JXLoginPane.failedString=Autentica\u00E7\u00E3o falhou; combina\u00E7\u00E3o usu\u00E1rio/senha inv\u00E1lida. JXLoginPane.enterUserNamePassword=Informe seu usu\u00E1rio e senha JXLoginPane.pleaseWait=Aguarde, autenticando... JXLoginPane.cancelWait=Aguarde, cancelando autentica\u00E7\u00E3o... JXLoginPane.cancelLogin=Parar autentica\u00E7\u00E3o JXLoginPane.errorMessage=N\u00E3o foi poss\u00edvel autenticar.

Confira usu\u00E1rio e senha e verifique se Caps Lock est\u00E1 ativado. ././@LongLink0000000000000000000000000000016400000000000011566 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/SearchField.propertiesswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/SearchF0000644000175000017500000000024711323133151033606 0ustar drazzibdrazzibSearchField.prompt=Search SearchField.recentsMenuTitle=Recent Searches SearchField.clearRecentsText=Clear Recent Searches SearchField.noRecentsText=No Recent Searches ././@LongLink0000000000000000000000000000016600000000000011570 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/DatePicker_sv.propertiesswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/basic/resources/DatePic0000644000175000017500000000035210715067005033611 0ustar drazzibdrazzib# # Text, formatting for JXDatePicker # JXDatePicker.linkFormat=Idag \u00E4r {0,date, yyyy MMMM dd} JXDatePicker.longFormat=EEE yyyy/MM/dd JXDatePicker.mediumFormat=yyyy/MM/dd JXDatePicker.shortFormat=MM/dd JXDatePicker.numColumns=10 swingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/windows/0000755000175000017500000000000011445661471030764 5ustar drazzibdrazzibswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/windows/resources/0000755000175000017500000000000011534506031032763 5ustar drazzibdrazzib././@LongLink0000000000000000000000000000017100000000000011564 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/windows/resources/search_popup_rollover.gifswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/windows/resources/searc0000644000175000017500000000055311323133151034001 0ustar drazzibdrazzibGIF87a%(((<,@D,I@i:2*dp`4ƣX𸥣PHPܰ"(Ha(((  ( ( SP!;././@LongLink0000000000000000000000000000017100000000000011564 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/windows/resources/TipOfTheDay_it.propertiesswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/windows/resources/TipOf0000644000175000017500000000013610705430172033730 0ustar drazzibdrazzibTipOfTheDay.previousTipText=Consiglio Precedente TipOfTheDay.nextTipText=Consiglio Successivo ././@LongLink0000000000000000000000000000017100000000000011564 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/windows/resources/silver-statusbar-left.pngswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/windows/resources/silve0000644000175000017500000000033710772053667034052 0ustar drazzibdrazzibPNG  IHDR%NtEXtCreation Time ԏ;tIME  ; pHYs  ~]IDATxԱ 0 DQ@Px o ءf_ O\13SUk@=A9'm$^z}V"؜,zc ރzo°[IENDB`././@LongLink0000000000000000000000000000017100000000000011564 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/windows/resources/TipOfTheDay_de.propertiesswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/windows/resources/TipOf0000644000175000017500000000012710303110212033710 0ustar drazzibdrazzibTipOfTheDay.previousTipText=Vorheriger Tipp TipOfTheDay.nextTipText=N\u00e4chster Tipp ././@LongLink0000000000000000000000000000017300000000000011566 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/windows/resources/silver-statusbar-middle.pngswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/windows/resources/silve0000644000175000017500000000030410772053667034044 0ustar drazzibdrazzibPNG  IHDREXtEXtCreation Time ԏ;tIME  \\% pHYs  ~BIDATx}ʱ 0 DQ$ P}A7_0 UIȯ%eUDD|^q,*JIENDB`././@LongLink0000000000000000000000000000017100000000000011564 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/windows/resources/TipOfTheDay_pl.propertiesswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/windows/resources/TipOf0000644000175000017500000000013311075726742033741 0ustar drazzibdrazzibTipOfTheDay.previousTipText=Poprzednia porada TipOfTheDay.nextTipText=Nast\u0119pna porada ././@LongLink0000000000000000000000000000015100000000000011562 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/windows/resources/clear.gifswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/windows/resources/clear0000644000175000017500000000033611323133151033771 0ustar drazzibdrazzibGIF89a#Lz'Z+h/uSm3|~dЁņψ֊! ,['dihlp,b4؇5H[dX~@aJD!PD(%&.2p9؅`<VH&Re.>4!;././@LongLink0000000000000000000000000000017100000000000011564 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/windows/resources/TipOfTheDay_sv.propertiesswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/windows/resources/TipOf0000644000175000017500000000013110713370142033722 0ustar drazzibdrazzibTipOfTheDay.previousTipText=Freg\u00E5ende tips TipOfTheDay.nextTipText=N\u00E4sta tips ././@LongLink0000000000000000000000000000016200000000000011564 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/windows/resources/clear_rollover.gifswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/windows/resources/clear0000644000175000017500000000127511323133151033774 0ustar drazzibdrazzibGIF87aN#Lz'Z+h/uSm3<|~dЁņψ֊ۦ,M< ;*G()+  +)(GD<( ,8AD>h00!B !L"p1EA6Ȝ)S$&8@@ A@(,FpaF3QԃիV-`PB ,`C hӪ]VE#9"ȝK9߿!PdÈ+~`@ ;././@LongLink0000000000000000000000000000016200000000000011564 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/windows/resources/search_pressed.gifswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/windows/resources/searc0000644000175000017500000000221111323133151033772 0ustar drazzibdrazzibGIF87a >j*N6Y1[,b7e=e8g8kj>l7qAnBnCn7xJu6S~_xU6WYZW]^`NehnkV^^`\uɄykhЁΕ҆}ЀьՂёĈ͆ҕԉѕֈԊѐ͌Չ֌ԋ՗؏Ԋ׎֒ҋْӎב֔ԏْٖؐՎݖّ֕ݒܞӒߘړߞפݤ݁ݞڕآדܔԛٖܙޜ, $@ DW#JH"C3fPc+\tjՊ"GERYJFeVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3gAMA|Q cHRMz%u0`:o_F.IDATxtA 0 Lgw$YlAM/)ʴIENDB`././@LongLink0000000000000000000000000000017100000000000011564 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/windows/resources/TipOfTheDay_es.propertiesswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/windows/resources/TipOf0000644000175000017500000000013510323445532033731 0ustar drazzibdrazzibTipOfTheDay.previousTipText=Sugerencia Anterior TipOfTheDay.nextTipText=Siguiente Sugerencia ././@LongLink0000000000000000000000000000017100000000000011564 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/windows/resources/TipOfTheDay_cs.propertiesswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/windows/resources/TipOf0000644000175000017500000000025610664746357033756 0ustar drazzibdrazzib#Czech resource bundle created by Vity (vitywap@seznam.cz) 08/2007 TipOfTheDay.previousTipText=P\u0159edchoz\u00ed Tip TipOfTheDay.nextTipText=N\u00e1sleduj\u00edc\u00ed Tip ././@LongLink0000000000000000000000000000016100000000000011563 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/windows/resources/clear_pressed.gifswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/windows/resources/clear0000644000175000017500000000122411323133151033766 0ustar drazzibdrazzibGIF87aX#Lz'Z,b+h/uSm3ZxSUWYZ]]_himno|~dЁ}ІπтёĈֆ҈ԌՊێ֑֐ٕؓ,*(*FEPWULFLUWPV#TLT#VRSRB%<@KK@:=?II?=AO'"tb" -8QQ82j@$9T(e F BXr&G|qɐ0-Ϟ2lЈ" 2~`CPJʂQ+jʵk F4Kٳ&;././@LongLink0000000000000000000000000000017100000000000011564 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/windows/resources/TipOfTheDay_nl.propertiesswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/windows/resources/TipOf0000644000175000017500000000011410722472162033730 0ustar drazzibdrazzibTipOfTheDay.previousTipText=Vorige Tip TipOfTheDay.nextTipText=Volgende Tip ././@LongLink0000000000000000000000000000017200000000000011565 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/windows/resources/silver-statusbar-right.pngswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/windows/resources/silve0000644000175000017500000000056210772053667034052 0ustar drazzibdrazzibPNG  IHDR9IDATݒNAƿ[FLQ@=!v, NJm? Ǯz@o W33uz"R|~w/C[L#tJjej;vjGex.9d5o*Ij<vr`2`礔j  z|݈*kh0fCc^{-U̦O-[{mڈA3>kEuJ@Ӻ8$ZmA",VlH*IENDB`././@LongLink0000000000000000000000000000016300000000000011565 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/windows/resources/statusbar-right.pngswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/windows/resources/statu0000644000175000017500000000617210506563470034064 0ustar drazzibdrazzibPNG  IHDR pHYs   MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3gAMA|Q cHRMz%u0`:o_FIDATxԓJ[QsɍFPWJS  J,lRu+tS/7g\sDWj3go1 0YV^9v:Jj%H5ZsuRPQUb$FA&7Ls̛%[؆a8Iɷyւ=)ٕd ϰ<<eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3gAMA|Q cHRMz%u0`:o_FMIDATx|ı 0/K&BURX&zQkkEl#'E29xn4@ * i'bIENDB`././@LongLink0000000000000000000000000000016200000000000011564 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/windows/resources/statusbar-left.pngswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/windows/resources/statu0000644000175000017500000000620010506563470034054 0ustar drazzibdrazzibPNG  IHDR%GpU pHYs   MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3gAMA|Q cHRMz%u0`:o_FIDATxVKR0 }*b2t",8 WLXNǎÊPّ>~|}rG\ 4Aҷ }$4a4WP,bi%CD:x?[6 IL |Mk;H)8v c3uu|#IENDB`././@LongLink0000000000000000000000000000017000000000000011563 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/windows/resources/search_popup_pressed.gifswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/windows/resources/searc0000644000175000017500000000034411323133151033777 0ustar drazzibdrazzibGIF87a(((,b6k_{fNjjswzbkπqыʒ˖̚͡,i (h H84ʹQ N"bh wK3 e6*s-n( \xl>E`>b2|nxlmvoqd}w!;././@LongLink0000000000000000000000000000015200000000000011563 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/windows/resources/search.gifswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/windows/resources/searc0000644000175000017500000000114111323133151033773 0ustar drazzibdrazzibGIF89aP >j*N1[<]7e8g8kCi?kAl7qAnCpFq7xIr6Sz6dWv|bmmnjy~Ԍϒѣ֝أڤܹݲ޴! ,ONNOOK3*+5LNO<BJ/-J0JFDE:MN# ,DJJD%òM$)DLLF".H4?FH; =LM9  (DN8 'FJN7dP# Śdc@ JB Bp *zD#=Y9dbʜIP ;././@LongLink0000000000000000000000000000015700000000000011570 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/windows/resources/tipoftheday.pngswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/windows/resources/tipof0000644000175000017500000000224010303110212034006 0ustar drazzibdrazzibPNG  IHDR ^8tIME7u pHYs  ~gAMA a/IDATxڭV]hUff7I7vc7şmKKk])!X *ZDD V_EDڷTED"TT"bbjjlc7i7f$MCV3ٝٝ;;;(ݹ{w9=wBB$TY%LYc@H#ܯ ϐcs6/OP߮DH0W@֬Gӵ#!Ao)Rݐy\+](b1("+B=s>]b HqaNFcG6hZU|3tŒ0:逬L-@,j-4mXͣdg^D5BAT)4(mPP] $h g,n, З5IvXRDaVVpw5BCϧ'  eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3gAMA|Q cHRMz%u0`:o_FIDATxT10C# !22 UJ:F"Ի Qz,,;|}H ,cz #h/GSlNMb lw $r9"1a%PM1 ^ b:k_c4IENDB`swingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/macosx/0000755000175000017500000000000011445661471030564 5ustar drazzibdrazzibswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/macosx/resources/0000755000175000017500000000000011534506031032563 5ustar drazzibdrazzib././@LongLink0000000000000000000000000000016600000000000011570 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/macosx/resources/ErrorPane_nl.propertiesswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/macosx/resources/ErrorP0000644000175000017500000000031210722472162033720 0ustar drazzibdrazzib# # JXErrorPanel properties # JXErrorPane.report_button_text=Verstuur Rapport JXErrorPane.ok_button_text=Niet versturen JXErrorPane.details_expand_text=Details JXErrorPane.details_contract_text=Details ././@LongLink0000000000000000000000000000016600000000000011570 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/macosx/resources/ErrorPane_sv.propertiesswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/macosx/resources/ErrorP0000644000175000017500000000031510715067005033721 0ustar drazzibdrazzib# # JXErrorPanel properties # JXErrorPane.report_button_text=S\u00E4nd rapport JXErrorPane.ok_button_text=S\u00E4nd inte JXErrorPane.details_expand_text=Detaljer JXErrorPane.details_contract_text=Detaljer ././@LongLink0000000000000000000000000000016600000000000011570 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/macosx/resources/ErrorPane_it.propertiesswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/macosx/resources/ErrorP0000644000175000017500000000031010715067005033714 0ustar drazzibdrazzib# # JXErrorPanel properties # JXErrorPane.report_button_text=Invia Resoconto JXErrorPane.ok_button_text=Non Inviare JXErrorPane.details_expand_text=Dettagli JXErrorPane.details_contract_text=Dettagli ././@LongLink0000000000000000000000000000015400000000000011565 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/macosx/resources/combo-osx.pngswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/macosx/resources/combo-0000644000175000017500000000544210715067005033672 0ustar drazzibdrazzibPNG  IHDR pHYs   MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3gAMA|Q cHRMz%u0`:o_F?IDATxl 0Ѓ5v5qcH<7tdppSίJBl1= 1tweIENDB`././@LongLink0000000000000000000000000000016300000000000011565 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/macosx/resources/ErrorPane.propertiesswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/macosx/resources/ErrorP0000644000175000017500000000030110715067005033714 0ustar drazzibdrazzib# # JXErrorPanel properties # JXErrorPane.report_button_text=Send Report JXErrorPane.ok_button_text=Don't Send JXErrorPane.details_expand_text=Details JXErrorPane.details_contract_text=Details ././@LongLink0000000000000000000000000000016600000000000011570 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/macosx/resources/ErrorPane_fr.propertiesswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/macosx/resources/ErrorP0000644000175000017500000000031410715067005033720 0ustar drazzibdrazzib# # JXErrorPanel properties # JXErrorPane.report_button_text=Envoyer le rapport JXErrorPane.ok_button_text=Ne pas envoyer JXErrorPane.details_expand_text=Dtails JXErrorPane.details_contract_text=Dtails ././@LongLink0000000000000000000000000000015100000000000011562 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/macosx/resources/search.pngswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/macosx/resources/search0000644000175000017500000000051311323133151033745 0ustar drazzibdrazzibPNG  IHDR Vu\ pHYs  IDAT(MѽJQo]cTT Nl|&ZJe'hce(D_$l4Y ;0̽Μ3w&Q6EgxUz$c'2q` [N)l6Rt$b'vt2Rhw#x+B7XS#bx7 F-]clqyת-cX 3A8J <&ą`hb CXb7'8zpU,ᡜoc7<{Om># IENDB`././@LongLink0000000000000000000000000000016000000000000011562 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/macosx/resources/clear_pressed.pngswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/macosx/resources/clear_0000644000175000017500000000063411323133151033731 0ustar drazzibdrazzibPNG  IHDRH-bKGD pHYs  tIME 19)IDATxڝJP4!CAl`; %(}1Oy8(A8t%S).m=?8p`z- ,|GqCoi^ٱ7v (~@ebqR;{^q! !Ni\(ެrFND`4De3un܉=BmOgϕ+`i,?HJi;G^^VO6GF?ܳwjr,r%'IENDB`././@LongLink0000000000000000000000000000015700000000000011570 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/macosx/resources/search_popup.pngswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/macosx/resources/search0000644000175000017500000000167211323133151033754 0ustar drazzibdrazzibPNG  IHDR %VbKGD pHYs  tIME +GIDATx<@5#`O/CALA99%%S_RT71/$; #e2+MK:oIENDB`././@LongLink0000000000000000000000000000016600000000000011570 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/macosx/resources/ErrorPane_da.propertiesswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/macosx/resources/ErrorP0000644000175000017500000000030510715067005033720 0ustar drazzibdrazzib# # JXErrorPanel properties # JXErrorPane.report_button_text=Afsend rapport JXErrorPane.ok_button_text=Send ikke JXErrorPane.details_expand_text=Detaljer JXErrorPane.details_contract_text=Detaljer ././@LongLink0000000000000000000000000000017100000000000011564 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/macosx/resources/ErrorPane_pt_BR.propertiesswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/macosx/resources/ErrorP0000644000175000017500000000032010715067005033715 0ustar drazzibdrazzib# # JXErrorPanel properties # JXErrorPane.report_button_text=Envia Relat\u00F3rio JXErrorPane.ok_button_text=N\u00E3o Envia JXErrorPane.details_expand_text=Detalhes JXErrorPane.details_contract_text=Detalhes ././@LongLink0000000000000000000000000000016100000000000011563 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/macosx/resources/clear_rollover.pngswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/plaf/macosx/resources/clear_0000644000175000017500000000050611323133151033727 0ustar drazzibdrazzibPNG  IHDRH- pHYs  IDAT(ҡNCAJ!T`$uMV1j-BU[`H%E,Fmɞ+߫K\~a_?!|lT^)H.mV=Vj4/W<㜽m,U=+IǏ''_}rj7]\wh 2s7EV& Wc<9qmLuO"3wteЗ[Fԝqנ/OGׯCz}tdCgj)^!cgy H|s^PK]dJ-_Vn@?iKaȭ͔Go]ٮP]0IENDB`././@LongLink0000000000000000000000000000015700000000000011570 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/color/EyeDropperColorChooserPanel.formswingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/color/EyeDropperColorChooser0000644000175000017500000001751211435757636034027 0ustar drazzibdrazzib
swingx-1.6.2-sources/swingx-core/src/main/resources/org/jdesktop/swingx/color/colorwell.png0000644000175000017500000000132511435757636032207 0ustar drazzibdrazzibPNG  IHDRX)>y pHYs  gAMA|Q cHRMz%u0`:o_FKIDATxZ0 } M* dL5̎ !OvPR ׮+fSf_ Wme 6s3馔ڶ,t:u]WUa)%"BPUM)hbJu^u]H4UURՔ3sDd":Can@Y3>گ?_Ed@4OBь(/\fQx{pjz- #R,pՌPm'Dd{7`fUUṶ] #ʔb%?dEX@L)`;IUf1CmT-3q @"w15fa٦`9b 7 g=e/Qlv4GW(s[V(Oor~c,] GNYDȇ/}AKӖR9O:釯+ˌ. *<y|-|TM)&y5[YE]ag1ƶmC?/c-j"ݮ80zu G䆉IENDB`swingx-1.6.2-sources/swingx-core/src/main/javadoc/0000755000175000017500000000000011445661467022021 5ustar drazzibdrazzibswingx-1.6.2-sources/swingx-core/src/main/javadoc/org/0000755000175000017500000000000011445661467022610 5ustar drazzibdrazzibswingx-1.6.2-sources/swingx-core/src/main/javadoc/org/jdesktop/0000755000175000017500000000000011445661467024433 5ustar drazzibdrazzibswingx-1.6.2-sources/swingx-core/src/main/javadoc/org/jdesktop/swingx/0000755000175000017500000000000011445661467025752 5ustar drazzibdrazzibswingx-1.6.2-sources/swingx-core/src/main/javadoc/org/jdesktop/swingx/autocomplete/0000755000175000017500000000000011445661467030453 5ustar drazzibdrazzibswingx-1.6.2-sources/swingx-core/src/main/javadoc/org/jdesktop/swingx/autocomplete/doc-files/0000755000175000017500000000000011534506031032300 5ustar drazzibdrazzib././@LongLink0000000000000000000000000000015100000000000011562 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/javadoc/org/jdesktop/swingx/autocomplete/doc-files/example.gifswingx-1.6.2-sources/swingx-core/src/main/javadoc/org/jdesktop/swingx/autocomplete/doc-files/example0000644000175000017500000001235710252261530033664 0ustar drazzibdrazzibGIF89aIIHIcec1#g[,IH*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗,ȜI͛8sɳϙ- JQ0']ʴ)QNJ* Xjʵׯ`ÊK6dӪ]˶-WIKn[#˷/V,` 5|VĎ_2 29-敚;儡Ildհ۸sͻucmvȓ+O>ƗKN=x"WνuvO'_+hO/J_Jhq^ r zT߄f@&a!*ш$xa~)hb^,ዧ(~4bdwz)DiH&HZ#vXTViK:I`)fxcZ\6gE 4Ph18ms*Du޹oD'zviBm+6ʧvJW(j)ƹ`EY˱ZtnXj:BI~\*&+&G쭮 _-;[ TkfA{,AۖyyD涋KYSnQkvlѻG%ELk~Enqoj|Ƽ*:'_|!*/?Cw42o%7k՜ϻ,+*<,v8@L B/|;;3GHSWdX{jS4sӸU,{o]Qع.~ tmq/ڍUUt;v{ܹN+[uq[[yD_+lcnzC^|R.2g.ķwNS螖7:}5nc;~}`H@Pr},Vٻ9w)u}K7Dlз>~qKwbk oy?00^U< `* cW4v$i .',bHx=' ) ?H%pL Bx+$մ g@9Q{VuC%$/d=)Nq&~$5Pܣ9F+>wk c%&:vcV&I0ŶDҖdJErxh !˄ЋdH`>V!o9W @$&Mnf2IλDhȺ~"g<;YKzMմC;ޱCgKϠk [):S- 'Hzscȱ2?9k@t.jShB̲cEin:EMdS ze_V1@٣r^O}^Y89f_s'IǣbD3N/X~lL\ :;ndp|d$ٲ1q) Md|[VNl7cXl%x+f>soR(H>pq7W5YؕnXg8:0|Ίgh`rJ# &ԨNWVհu\SV_Za4ihk/*>duЎMj[ζkY(MWϷ[#ѹmȭ;FD$;jyzx"=|gw(<O-o@*N-l1<yFع[8r'V͝ݗs<򒈜&9Gߨ5m #LB=9Jn,{Ȟ_1[ut^ǥhQ>p8>Y0#<)k>R; E_gW֣m4۞_Hoܻ\YyzӬ|HL_>O.D|@tџrO{Q aD}S Abj`}gyw (H} hgmhH~w ȀǁX zH~ׂ &  Af /1g)8r[G>H~g{ηN`b8dXfxhe7W}Yz[8]؆o{ HVj|؇~lxux}w(yFheG>*H{L8nXX]Xk{HX08؊~ hTPBR}IxhP ؉ 8(07CX~ΈЍXhбhl0xOxF!Gvh{hw~g}a(}^8 ٍw{YXL("鏅 Y׏z:y{09+zzC36jAyГ0є8e;)9o('Uhb(p (fzGhzjYxHɐחl9sɇptɘ8 'F)}ɕіAɡxw18w{I| k@o yAxyf{?iiy Y~yI)Q霳y ɖFsYi94)f8wYIPӘ3)9I|z($9کiy:xߙ"aI1u$Z&z(jy&JmY z 0z**Ii{& w =J2u48;ZOZHjhآW[ѝ:GM7gv )prJ0w9J90rZrS Y ~JvzLzpɧpZIL8)jjjJ:gYZUzlqnZzڧuZY:iC*Zz #wyIZ:*Z{wo܋mbFͳ=]d]ح Jn*~^7&ߴ\F-.N.".ɢ^ܰ>׭뽞뾎\벾x>vm^v67m.y{؆-fyInԀ>jzv\ת]F>{#]Z.ov^v^~ ?3] wats ?y;#yNNa ? -v˚n02._-BFH? ?8>'5QOO N`o\F!샎3b/^EطeqnHɎu~(/{L}ۅ_>$pQ=;swingx-1.6.2-sources/swingx-core/src/main/java/0000755000175000017500000000000011445661445021327 5ustar drazzibdrazzibswingx-1.6.2-sources/swingx-core/src/main/java/org/0000755000175000017500000000000011445661445022116 5ustar drazzibdrazzibswingx-1.6.2-sources/swingx-core/src/main/java/org/jdesktop/0000755000175000017500000000000011445661467023745 5ustar drazzibdrazzibswingx-1.6.2-sources/swingx-core/src/main/java/org/jdesktop/swingx/0000755000175000017500000000000011534506031025244 5ustar drazzibdrazzibswingx-1.6.2-sources/swingx-core/src/main/java/org/jdesktop/swingx/JXBusyLabel.java0000644000175000017500000002672311252322774030254 0ustar drazzibdrazzib/* * $Id: JXBusyLabel.java 3502 2009-09-11 01:21:00Z kschaefe $ * * Copyright 2004 Sun Microsystems, Inc., 4150 Network Circle, * Santa Clara, California 95054, U.S.A. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ package org.jdesktop.swingx; import java.awt.Dimension; import java.awt.Rectangle; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JLabel; import javax.swing.Timer; import javax.swing.plaf.LabelUI; import org.jdesktop.swingx.icon.PainterIcon; import org.jdesktop.swingx.painter.BusyPainter; import org.jdesktop.swingx.plaf.BusyLabelAddon; import org.jdesktop.swingx.plaf.BusyLabelUI; import org.jdesktop.swingx.plaf.LookAndFeelAddons; /** *

A simple circular animation, useful for denoting an action is taking * place that may take an unknown length of time to complete. Similar to an * indeterminant JProgressBar, but with a different look.

* *

For example: *


 *     JXFrame frame = new JXFrame("test", true);
 *     JXBusyLabel label = new JXBusyLabel();
 *     frame.add(label);
 *     //...
 *     label.setBusy(true);
 * 

* Another more complicated example: *

 * JXBusyLabel label = new JXBusyLabel(new Dimension(100,84));
 * BusyPainter painter = new BusyPainter(
 * new Rectangle2D.Float(0, 0,13.500001f,1),
 * new RoundRectangle2D.Float(12.5f,12.5f,59.0f,59.0f,10,10));
 * painter.setTrailLength(5);
 * painter.setPoints(31);
 * painter.setFrame(1);
 * label.setPreferredSize(new Dimension(100,84));
 * label.setIcon(new EmptyIcon(100,84));
 * label.setBusyPainter(painter);
 *
* * Another example: *

 *     JXBusyLabel label = new MyBusyLabel(new Dimension(100, 84));
 * 
* * where MyBusyLabel is:
*

 * public class MyBusyLabel extends JXBusyLabel {
 *     public MyBusyLabel(Dimension prefSize) {
 *         super(prefSize);
 *     }
 *     
 *     protected BusyLabel createBusyLabel(Dimension dim) {
 *         BusyPainter painter = new BusyPainter(
 *         new Rectangle2D.Float(0, 0,13.500001f,1),
 *         new RoundRectangle2D.Float(12.5f,12.5f,59.0f,59.0f,10,10));
 *         painter.setTrailLength(5);
 *         painter.setPoints(31);
 *         painter.setFrame(1);
 *         
 *         return painter;
 *     }
 * }
 * 
* * @author rbair * @author joshy * @author rah003 * @author headw01 */ public class JXBusyLabel extends JLabel { private static final long serialVersionUID = 5979268460848257147L; private BusyPainter busyPainter; private Timer busy; private int delay; /** Status flag to save/restore status of timer when moving component between containers. */ private boolean wasBusyOnNotify = false; /** * UI Class ID */ public final static String uiClassID = "BusyLabelUI"; /** * Direction is used to set the initial direction in which the * animation starts. * * @see JXBusyLabel#setDirection(org.jdesktop.swingx.JXBusyLabel.Direction) */ public static enum Direction { /** * cycle proceeds forward */ RIGHT, /** cycle proceeds backward */ LEFT, }; /** * Sets direction of rotation. Direction.RIGHT is the default * value. Direction is taken from the very top point so Direction.RIGHT enables rotation clockwise. * @param dir Direction of rotation. */ public void setDirection(Direction dir) { direction = dir; getBusyPainter().setDirection(dir); } private Direction direction; /** * Creates a default JXLoginPane instance */ static { LookAndFeelAddons.contribute(new BusyLabelAddon()); } { // Initialize the delay from the UI class. BusyLabelUI ui = (BusyLabelUI)getUI(); if (ui != null) { delay = ui.getDelay(); } } /** Creates a new instance of JXBusyLabel initialized to circular shape in bounds of 26 by 26 points.*/ public JXBusyLabel() { this(null); } /** * Creates a new instance of JXBusyLabel initialized to the arbitrary size and using default circular progress indicator. * @param dim Preferred size of the label. */ public JXBusyLabel(Dimension dim) { super(); this.setPreferredSize(dim); // Initialize the BusyPainter. getBusyPainter(); } /** * Initialize the BusyPainter and (this) JXBusyLabel with the given * preferred size. This method is called automatically when the * BusyPainter is set/changed. * * @param dim The new Preferred Size for the BusyLabel. * * @see #getBusyPainter() * @see #setBusyPainter(BusyPainter) */ protected void initPainter(Dimension dim) { BusyPainter busyPainter = getBusyPainter(); // headw01 // TODO: Should we force the busyPainter to NOT be cached? // I think we probably should, otherwise the UI will never // be updated after the first paint. if (null != busyPainter) { busyPainter.setCacheable(false); } PainterIcon icon = new PainterIcon(dim); icon.setPainter(busyPainter); this.setIcon(icon); } /** * Create and return a BusyPpainter to use for the Label. This may * be overridden to return any painter you like. By default, this * method uses the UI (BusyLabelUI)to create a BusyPainter. * @param dim Painter size. * * @see #getUI() */ protected BusyPainter createBusyPainter(Dimension dim) { BusyPainter busyPainter = null; BusyLabelUI ui = (BusyLabelUI)getUI(); if (ui != null) { busyPainter = ui.getBusyPainter(dim); } return busyPainter; } /** *

Gets whether this JXBusyLabel is busy. If busy, then * the JXBusyLabel instance will indicate that it is busy, * generally by animating some state.

* * @return true if this instance is busy */ public boolean isBusy() { return busy != null; } /** *

Sets whether this JXBusyLabel instance should consider * itself busy. A busy component may indicate that it is busy via animation, * or some other means.

* * @param busy whether this JXBusyLabel instance should * consider itself busy */ public void setBusy(boolean busy) { boolean old = isBusy(); if (!old && busy) { startAnimation(); firePropertyChange("busy", old, isBusy()); } else if (old && !busy) { stopAnimation(); firePropertyChange("busy", old, isBusy()); } } private void startAnimation() { if(busy != null) { stopAnimation(); } busy = new Timer(delay, new ActionListener() { BusyPainter busyPainter = getBusyPainter(); int frame = busyPainter.getPoints(); public void actionPerformed(ActionEvent e) { frame = (frame+1)%busyPainter.getPoints(); busyPainter.setFrame(direction == Direction.LEFT ? busyPainter.getPoints() - frame : frame); frameChanged(); } }); busy.start(); } private void stopAnimation() { if (busy != null) { busy.stop(); getBusyPainter().setFrame(-1); repaint(); busy = null; } } @Override public void removeNotify() { // fix for #698 wasBusyOnNotify = isBusy(); // fix for #626 stopAnimation(); super.removeNotify(); } @Override public void addNotify() { super.addNotify(); // fix for #698 if (wasBusyOnNotify) { // fix for #626 startAnimation(); } } protected void frameChanged() { repaint(); } /** * Returns the current BusyPainter. If no BusyPainter is currently * set on this BusyLabel, the {@link #createBusyPainter(Dimension)} * method is called to create one. Afterwards, * {@link #initPainter(Dimension)} is called to update the BusyLabel * with the created BusyPainter. * * @return the busyPainter * * @see #createBusyPainter(Dimension) * @see #initPainter(Dimension) */ public final BusyPainter getBusyPainter() { if (null == busyPainter) { Dimension prefSize = getPreferredSize(); busyPainter = createBusyPainter((prefSize.width == 0 && prefSize.height == 0 && !isPreferredSizeSet()) ? null : prefSize); if (null != busyPainter) { if (!isPreferredSizeSet() && (null == prefSize || prefSize.width == 0 || prefSize.height == 0)) { Rectangle rt = busyPainter.getTrajectory().getBounds(); Rectangle rp = busyPainter.getPointShape().getBounds(); int max = Math.max(rp.width, rp.height); prefSize = new Dimension(rt.width + max, rt.height + max); } initPainter(prefSize); } } return busyPainter; } /** * @param busyPainter the busyPainter to set */ public final void setBusyPainter(BusyPainter busyPainter) { this.busyPainter = busyPainter; initPainter(new Dimension(getIcon().getIconWidth(), getIcon().getIconHeight())); } /** * @return the delay */ public int getDelay() { return delay; } /** * @param delay the delay to set */ public void setDelay(int delay) { int old = getDelay(); this.delay = delay; if (old != getDelay()) { if (busy != null && busy.isRunning()) { busy.setDelay(getDelay()); } firePropertyChange("delay", old, getDelay()); } } //------------------------------------------------------------- UI Logic /** * Notification from the UIManager that the L&F has changed. * Replaces the current UI object with the latest version from the * UIManager. * * @see javax.swing.JComponent#updateUI */ @Override public void updateUI() { setUI((LabelUI) LookAndFeelAddons.getUI(this, BusyLabelUI.class)); } /** * Returns the name of the L&F class that renders this component. * * @return the string {@link #uiClassID} * @see javax.swing.JComponent#getUIClassID * @see javax.swing.UIDefaults#getUI */ @Override public String getUIClassID() { return uiClassID; } } swingx-1.6.2-sources/swingx-core/src/main/java/org/jdesktop/swingx/JXDialog.java0000644000175000017500000003065211245712667027573 0ustar drazzibdrazzib/* * $Id: JXDialog.java 3475 2009-08-28 08:30:47Z kleopatra $ * * Copyright 2004 Sun Microsystems, Inc., 4150 Network Circle, * Santa Clara, California 95054, U.S.A. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ package org.jdesktop.swingx; import java.awt.Dialog; import java.awt.Dimension; import java.awt.Frame; import java.util.Locale; import javax.swing.Action; import javax.swing.BorderFactory; import javax.swing.Box; import javax.swing.BoxLayout; import javax.swing.JButton; import javax.swing.JComponent; import javax.swing.JDialog; import javax.swing.JPanel; import javax.swing.JToolBar; import javax.swing.plaf.basic.BasicOptionPaneUI; import org.jdesktop.swingx.action.BoundAction; import org.jdesktop.swingx.plaf.LookAndFeelAddons; import org.jdesktop.swingx.plaf.UIManagerExt; /** * First cut for enhanced Dialog. The idea is to have a pluggable content * from which the dialog auto-configures all its "dialogueness". * *
    *
  • accepts a content and configures itself from content's properties - * replaces the execute action from the appropriate action in content's action map (if any) * and set's its title from the content's name. *
  • registers stand-in actions for close/execute with the dialog's RootPane *
  • registers keyStrokes for esc/enter to trigger the close/execute actions *
  • takes care of building the button panel using the close/execute actions. *
* *
    *
  • TODO: add link to forum discussion, wiki summary? *
  • PENDING: add support for vetoing the close. *
  • PENDING: add complete set of constructors *
  • PENDING: add windowListener to delegate to close action *
* * @author Jeanette Winzenburg * @author Karl Schaefer */ public class JXDialog extends JDialog { static { // Hack to enforce loading of SwingX framework ResourceBundle LookAndFeelAddons.getAddon(); } public static final String EXECUTE_ACTION_COMMAND = "execute"; public static final String CLOSE_ACTION_COMMAND = "close"; public static final String UIPREFIX = "XDialog."; protected JComponent content; /** * Creates a non-modal dialog with the given component as * content and without specified owner. A shared, hidden frame will be * set as the owner of the dialog. *

* @param content the component to show and to auto-configure from. */ public JXDialog(JComponent content) { super(); setContent(content); } /** * Creates a non-modal dialog with the given component as content and the * specified Frame as owner. *

* @param frame the owner * @param content the component to show and to auto-configure from. */ public JXDialog(Frame frame, JComponent content) { super(frame); setContent(content); } /** * Creates a non-modal dialog with the given component as content and the * specified Dialog as owner. *

* @param dialog the owner * @param content the component to show and to auto-configure from. */ public JXDialog(Dialog dialog, JComponent content) { super(dialog); setContent(content); } /** * {@inheritDoc} */ @Override protected JXRootPane createRootPane() { return new JXRootPane(); } /** * {@inheritDoc} */ @Override public JXRootPane getRootPane() { return (JXRootPane) super.getRootPane(); } /** * Sets the status bar property on the underlying {@code JXRootPane}. * * @param statusBar * the {@code JXStatusBar} which is to be the status bar * @see #getStatusBar() * @see JXRootPane#setStatusBar(JXStatusBar) */ public void setStatusBar(JXStatusBar statusBar) { getRootPane().setStatusBar(statusBar); } /** * Returns the value of the status bar property from the underlying * {@code JXRootPane}. * * @return the {@code JXStatusBar} which is the current status bar * @see #setStatusBar(JXStatusBar) * @see JXRootPane#getStatusBar() */ public JXStatusBar getStatusBar() { return getRootPane().getStatusBar(); } /** * Sets the tool bar property on the underlying {@code JXRootPane}. * * @param toolBar * the {@code JToolBar} which is to be the tool bar * @see #getToolBar() * @see JXRootPane#setToolBar(JToolBar) */ public void setToolBar(JToolBar toolBar) { getRootPane().setToolBar(toolBar); } /** * Returns the value of the tool bar property from the underlying * {@code JXRootPane}. * * @return the {@code JToolBar} which is the current tool bar * @see #setToolBar(JToolBar) * @see JXRootPane#getToolBar() */ public JToolBar getToolBar() { return getRootPane().getToolBar(); } /** * PENDING: widen access - this could be public to make the content really * pluggable? * * @param content */ private void setContent(JComponent content) { if (this.content != null) { throw new IllegalStateException("content must not be set more than once"); } initActions(); Action contentCloseAction = content.getActionMap().get(CLOSE_ACTION_COMMAND); if (contentCloseAction != null) { putAction(CLOSE_ACTION_COMMAND, contentCloseAction); } Action contentExecuteAction = content.getActionMap().get(EXECUTE_ACTION_COMMAND); if (contentExecuteAction != null) { putAction(EXECUTE_ACTION_COMMAND, contentExecuteAction); } this.content = content; build(); setTitleFromContent(); } /** * Infers and sets this dialog's title from the the content. * Does nothing if content is null. * * Here: uses the content's name as title. */ protected void setTitleFromContent() { if (content == null) return; setTitle(content.getName()); } /** * pre: content != null. * */ private void build() { JComponent contentBox = new Box(BoxLayout.PAGE_AXIS); contentBox.add(content); JComponent buttonPanel = createButtonPanel(); contentBox.add(buttonPanel); contentBox.setBorder(BorderFactory.createEmptyBorder(14, 14, 14, 14)); // content.applyComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT); // fieldPanel.setAlignmentX(); // buttonPanel.setAlignmentX(Component.RIGHT_ALIGNMENT); add(contentBox); } /** * {@inheritDoc} * * Overridden to check if content is available.

* PENDING: doesn't make sense - the content is immutable and guaranteed * to be not null. */ @Override public void setVisible(boolean visible) { if (content == null) throw new IllegalStateException("content must be built before showing the dialog"); super.setVisible(visible); } //------------------------ dynamic locale support /** * {@inheritDoc}

* * Overridden to set the content's Locale and then updated * this dialog's internal state.

* * */ @Override public void setLocale(Locale l) { /* * NOTE: this is called from super's constructor as one of the * first methods (prior to setting the rootPane!). So back out * */ if (content != null) { content.setLocale(l); updateLocaleState(l); } super.setLocale(l); } /** * Updates this dialog's locale-dependent state. * * Here: updates title and actions. *

* * * @see #setLocale(Locale) */ protected void updateLocaleState(Locale locale) { setTitleFromContent(); for (Object key : getRootPane().getActionMap().allKeys()) { if (key instanceof String) { Action contentAction = content.getActionMap().get(key); Action rootPaneAction = getAction(key); if ((!rootPaneAction.equals(contentAction))) { String keyString = getUIString((String) key, locale); if (!key.equals(keyString)) { rootPaneAction.putValue(Action.NAME, keyString); } } } } } /** * The callback method executed when closing the dialog.

* Here: calls dispose. * */ public void doClose() { dispose(); } private void initActions() { Action defaultAction = createCloseAction(); putAction(CLOSE_ACTION_COMMAND, defaultAction); putAction(EXECUTE_ACTION_COMMAND, defaultAction); } private Action createCloseAction() { String actionName = getUIString(CLOSE_ACTION_COMMAND); BoundAction action = new BoundAction(actionName, CLOSE_ACTION_COMMAND); action.registerCallback(this, "doClose"); return action; } /** * create the dialog button controls. * * * @return panel containing button controls */ protected JComponent createButtonPanel() { // PENDING: this is a hack until we have a dedicated ButtonPanel! JPanel panel = new JPanel(new BasicOptionPaneUI.ButtonAreaLayout(true, 6)) { @Override public Dimension getMaximumSize() { return getPreferredSize(); } }; panel.setBorder(BorderFactory.createEmptyBorder(9, 0, 0, 0)); Action executeAction = getAction(EXECUTE_ACTION_COMMAND); Action closeAction = getAction(CLOSE_ACTION_COMMAND); JButton defaultButton = new JButton(executeAction); panel.add(defaultButton); getRootPane().setDefaultButton(defaultButton); if (executeAction != closeAction) { JButton b = new JButton(closeAction); panel.add(b); getRootPane().setCancelButton(b); } return panel; } /** * convenience wrapper to access rootPane's actionMap. * @param key * @param action */ private void putAction(Object key, Action action) { getRootPane().getActionMap().put(key, action); } /** * convenience wrapper to access rootPane's actionMap. * * @param key * @return root pane's ActionMap */ private Action getAction(Object key) { return getRootPane().getActionMap().get(key); } /** * Returns a potentially localized value from the UIManager. The given key * is prefixed by this component|s UIPREFIX before doing the * lookup. The lookup respects this table's current locale * property. Returns the key, if no value is found. * * @param key the bare key to look up in the UIManager. * @return the value mapped to UIPREFIX + key or key if no value is found. */ protected String getUIString(String key) { return getUIString(key, getLocale()); } /** * Returns a potentially localized value from the UIManager for the * given locale. The given key * is prefixed by this component's UIPREFIX before doing the * lookup. Returns the key, if no value is found. * * @param key the bare key to look up in the UIManager. * @param locale the locale use for lookup * @return the value mapped to UIPREFIX + key in the given locale, * or key if no value is found. */ protected String getUIString(String key, Locale locale) { String text = UIManagerExt.getString(UIPREFIX + key, locale); return text != null ? text : key; } } swingx-1.6.2-sources/swingx-core/src/main/java/org/jdesktop/swingx/table/0000755000175000017500000000000011534506031026333 5ustar drazzibdrazzibswingx-1.6.2-sources/swingx-core/src/main/java/org/jdesktop/swingx/table/package-info.java0000644000175000017500000000225411127413144031525 0ustar drazzibdrazzib/* * $Id: package-info.java 3167 2009-01-02 13:28:04Z rah003 $ * * Copyright 2009 Sun Microsystems, Inc., 4150 Network Circle, * Santa Clara, California 95054, U.S.A. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA * */ /**Contains API required by the extended JTable component, JXTable.

Package Specification

Related Documentation

*/ package org.jdesktop.swingx.table;swingx-1.6.2-sources/swingx-core/src/main/java/org/jdesktop/swingx/table/ColumnFactory.java0000644000175000017500000004304511274763553032010 0ustar drazzibdrazzib/* * $Id: ColumnFactory.java 3554 2009-11-06 09:07:55Z kleopatra $ * * Copyright 2004 Sun Microsystems, Inc., 4150 Network Circle, * Santa Clara, California 95054, U.S.A. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ package org.jdesktop.swingx.table; import java.awt.Component; import javax.swing.table.JTableHeader; import javax.swing.table.TableCellRenderer; import javax.swing.table.TableModel; import org.jdesktop.swingx.JXTable; /** * Creates and configures TableColumnExts. *

* TODO JW: explain types of configuration - initial from tableModel, initial * from table context, user triggered at runtime. *

* * JXTable delegates all TableColumn creation and * configuration to a ColumnFactory. Enhanced column * configuration should be implemented in a custom factory subclass. The example * beautifies the column titles to always start with a capital letter: * *

 * 
 *    MyColumnFactory extends ColumnFactory {
 *        //@Override
 *        public void configureTableColumn(TableModel model, 
 *            TableColumnExt columnExt) {
 *            super.configureTableColumn(model, columnExt);
 *            String title = columnExt.getTitle();
 *            title = title.substring(0,1).toUpperCase() + title.substring(1).toLowerCase();
 *            columnExt.setTitle(title);
 *        }
 *    };
 * 
 * 
* * By default a single instance is shared across all tables of an application. * This instance can be replaced by a custom implementation, preferably "early" * in the application's lifetime. * *

 * ColumnFactory.setInstance(new MyColumnFactory());
 * 
* * Alternatively, any instance of JXTable can be configured * individually with its own ColumnFactory. * *
 *  
 * JXTable table = new JXTable();
 * table.setColumnFactory(new MyColumnFactory());
 * table.setModel(myTableModel);
 * 
 *  
* *

* * @see org.jdesktop.swingx.JXTable#setColumnFactory(ColumnFactory) * * @author Jeanette Winzenburg * @author M.Hillary (the pack code) */ public class ColumnFactory { /** the shared instance. */ private static ColumnFactory columnFactory; /** the default margin to use in pack. */ private int packMargin = 4; /** * Returns the shared default factory. * * @return the shared instance of ColumnFactory * @see #setInstance(ColumnFactory) */ public static synchronized ColumnFactory getInstance() { if (columnFactory == null) { columnFactory = new ColumnFactory(); } return columnFactory; } /** * Sets the shared default factory. The shared instance is used * by JXTable if none has been set individually. * * @param factory the default column factory. * @see #getInstance() * @see org.jdesktop.swingx.JXTable#getColumnFactory() */ public static synchronized void setInstance(ColumnFactory factory) { columnFactory = factory; } /** * Creates and configures a TableColumnExt. JXTable calls * this method for each column in the TableModel. * * @param model the TableModel to read configuration properties from * @param modelIndex column index in model coordinates * @return a TableColumnExt to use for the modelIndex * @throws NPE if model == null * @throws IllegalStateException if the modelIndex is invalid * (in coordinate space of the tablemodel) * * @see #createTableColumn(int) * @see #configureTableColumn(TableModel, TableColumnExt) * @see org.jdesktop.swingx.JXTable#createDefaultColumnsFromModel() */ public TableColumnExt createAndConfigureTableColumn(TableModel model, int modelIndex) { TableColumnExt column = createTableColumn(modelIndex); if (column != null) { configureTableColumn(model, column); } return column; } /** * Creates a table column with modelIndex. *

* The factory's column creation is passed through this method, so * subclasses can override to return custom column types. * * @param modelIndex column index in model coordinates * @return a TableColumnExt with modelIndex * * @see #createAndConfigureTableColumn(TableModel, int) * */ public TableColumnExt createTableColumn(int modelIndex) { return new TableColumnExt(modelIndex); } /** * Configure column properties from TableModel. This implementation * sets the column's headerValue property from the * model's columnName. *

* * The factory's initial column configuration is passed through this method, so * subclasses can override to customize. *

* * @param model the TableModel to read configuration properties from * @param columnExt the TableColumnExt to configure. * @throws NullPointerException if model or column == null * @throws IllegalStateException if column does not have valid modelIndex * (in coordinate space of the tablemodel) * * @see #createAndConfigureTableColumn(TableModel, int) */ public void configureTableColumn(TableModel model, TableColumnExt columnExt) { if ((columnExt.getModelIndex() < 0) || (columnExt.getModelIndex() >= model.getColumnCount())) throw new IllegalStateException("column must have valid modelIndex"); columnExt.setHeaderValue(model.getColumnName(columnExt.getModelIndex())); } /** * Configures column initial widths properties from JXTable. * This implementation sets the column's * preferredWidth with the strategy: *

    if the column has a prototype, measure the rendering * component with the prototype as value and use that as * pref width *
      if the column has no prototype, use the standard magic * pref width (= 75) *
        try to measure the column's header and use it's preferred * width if it exceeds the former. *
      * * TODO JW - rename method to better convey what's happening, maybe * initializeColumnWidths like the old method in JXTable.

      * * TODO JW - how to handle default settings which are different from * standard 75? * * @param table the context the column will live in. * @param columnExt the Tablecolumn to configure. * * @see org.jdesktop.swingx.JXTable#getPreferredScrollableViewportSize() */ public void configureColumnWidths(JXTable table, TableColumnExt columnExt) { /* * PENDING JW: really only called once in a table's lifetime? * unfortunately: yes - should be called always after structureChanged. * */ // magic value: default in TableColumn int prefWidth = 75 - table.getColumnMargin(); int prototypeWidth = calcPrototypeWidth(table, columnExt); if (prototypeWidth > 0) { prefWidth = prototypeWidth; } int headerWidth = calcHeaderWidth(table, columnExt); prefWidth = Math.max(prefWidth, headerWidth); prefWidth += table.getColumnModel().getColumnMargin(); columnExt.setPreferredWidth(prefWidth); } /** * Calculates and returns the preferred scrollable viewport * width of the given table. Subclasses are free to override * and implement a custom strategy.

      * * This implementation sums the pref widths of the first * visibleColumnCount contained visible tableColumns. If * the table contains less columns, the standard preferred * width per column is added to the result. * * @param table the table containing the columns */ public int getPreferredScrollableViewportWidth(JXTable table) { int w = 0; int count; if (table.getVisibleColumnCount() < 0) { count = table.getColumnCount(); } else { count = Math.min(table.getColumnCount(), table.getVisibleColumnCount()); } for (int i = 0; i < count; i++) { // sum up column's pref size, until maximal the // visibleColumnCount w += table.getColumn(i).getPreferredWidth(); } if (count < table.getVisibleColumnCount()) { w += (table.getVisibleColumnCount() - count) * 75; } return w; } /** * Measures and returns the preferred width of the header. Returns -1 if not * applicable. * * @param table the component the renderer lives in * @param columnExt the TableColumn to configure * @return the preferred width of the header or -1 if none. */ protected int calcHeaderWidth(JXTable table, TableColumnExt columnExt) { int prototypeWidth = -1; // now calculate how much room the column header wants TableCellRenderer renderer = getHeaderRenderer(table, columnExt); if (renderer != null) { Component comp = renderer.getTableCellRendererComponent(table, columnExt.getHeaderValue(), false, false, -1, -1); prototypeWidth = comp.getPreferredSize().width; } return prototypeWidth; } /** * Measures and returns the preferred width of the rendering component * configured with the prototype value, if any. Returns -1 if not * applicable. * * @param table the component the renderer lives in * @param columnExt the TableColumn to configure * @return the preferred width of the prototype or -1 if none. */ protected int calcPrototypeWidth(JXTable table, TableColumnExt columnExt) { int prototypeWidth = -1; Object prototypeValue = columnExt.getPrototypeValue(); if (prototypeValue != null) { // calculate how much room the prototypeValue requires TableCellRenderer cellRenderer = getCellRenderer(table, columnExt); Component comp = cellRenderer.getTableCellRendererComponent(table, prototypeValue, false, false, 0, -1); prototypeWidth = comp.getPreferredSize().width; } return prototypeWidth; } /** * Returns the cell renderer to use for measuring. Delegates to * JXTable for visible columns, duplicates table logic for hidden * columns.

      * * @param table the table which provides the renderer * @param columnExt the TableColumn to configure * * @return returns a cell renderer for measuring. */ protected TableCellRenderer getCellRenderer(JXTable table, TableColumnExt columnExt) { int viewIndex = table.convertColumnIndexToView(columnExt .getModelIndex()); if (viewIndex >= 0) { // JW: ok to not guard against rowCount < 0? // technically, the index should be a valid coordinate return table.getCellRenderer(0, viewIndex); } // hidden column - need api on JXTable to access renderer for hidden? // here we duplicate JXTable api ... maybe by-passing the strategy // implemented there TableCellRenderer renderer = columnExt.getCellRenderer(); if (renderer == null) { renderer = table.getDefaultRenderer(table.getModel().getColumnClass(columnExt.getModelIndex())); } return renderer; } /** * Looks up and returns the renderer used for the column's header.

      * * @param table the table which contains the column * @param columnExt the column to lookup the header renderer for * @return the renderer for the columns header, may be null. */ protected TableCellRenderer getHeaderRenderer(JXTable table, TableColumnExt columnExt) { TableCellRenderer renderer = columnExt.getHeaderRenderer(); if (renderer == null) { JTableHeader header = table.getTableHeader(); if (header != null) { renderer = header.getDefaultRenderer(); } } // JW: default to something if null? // if so, could be table's default object/string header? return renderer; } /** * Configures the column's preferredWidth to fit the content. * It respects the table context, a margin to add and a maximum width. This * is typically called in response to a user gesture to adjust the column's * width to the "widest" cell content of a column. *

      * * This implementation loops through all rows of the given column and * measures the renderers pref width (it's a potential performance sink). * Subclasses can override to implement a different strategy. *

      * * Note: though 2 * margin is added as spacing, this does not imply * a left/right symmetry - it's up to the table to place the renderer and/or * the renderer/highlighter to configure a border.

      * * PENDING: support pack for hidden column? * This implementation can't handle it! For now, added doc and * fail-fast. * * @param table the context the column will live in. * @param columnExt the column to configure. * @param margin the extra spacing to add twice, if -1 uses this factories * default * @param max an upper limit to preferredWidth, -1 is interpreted as no * limit * @throws IllegalStateException if column is not visible * * @see #setDefaultPackMargin(int) * @see org.jdesktop.swingx.JXTable#packTable(int) * @see org.jdesktop.swingx.JXTable#packColumn(int, int) * */ public void packColumn(JXTable table, TableColumnExt columnExt, int margin, int max) { if (!columnExt.isVisible()) throw new IllegalStateException("column must be visible to pack"); int column = table.convertColumnIndexToView(columnExt.getModelIndex()); int width = 0; TableCellRenderer headerRenderer = getHeaderRenderer(table, columnExt); if (headerRenderer != null) { Component comp = headerRenderer.getTableCellRendererComponent(table, columnExt.getHeaderValue(), false, false, 0, column); width = comp.getPreferredSize().width; } // PENDING JW: slightly inconsistent - the getCellRenderer here // returns a (guessed) renderer for invisible columns which must not // be used in the loop. For now that's okay, as we back out early anyway TableCellRenderer renderer = getCellRenderer(table, columnExt); for (int r = 0; r < getRowCount(table); r++) { // JW: fix for #1215-swing as suggested by the reporter adrienclerc Component comp = table.prepareRenderer(renderer, r, column); // Component comp = renderer.getTableCellRendererComponent(table, table // .getValueAt(r, column), false, false, r, column); width = Math.max(width, comp.getPreferredSize().width); } if (margin < 0) { margin = getDefaultPackMargin(); } width += 2 * margin; /* Check if the width exceeds the max */ if (max != -1 && width > max) width = max; columnExt.setPreferredWidth(width); } /** * Returns the number of table view rows accessible during row-related * config. All row-related access is bounded by the value returned from this * method. * * Here: delegates to table.getRowCount(). *

      * * Subclasses can override to reduce the number (for performance) or support * restrictions due to lazy loading, f.i. Implementors must guarantee that * view row access with 0 <= row < getRowCount(JXTable) * succeeds. * * @param table the table to access * @return valid rowCount */ protected int getRowCount(JXTable table) { return table.getRowCount(); } // ------------------------ default state /** * Returns the default pack margin. * * @return the default pack margin to use in packColumn. * * @see #setDefaultPackMargin(int) */ public int getDefaultPackMargin() { return packMargin; } /** * Sets the default pack margin.

      * * Note: this is not really a margin in the sense of symmetrically * adding white space to the left/right of a cell's content. It's simply an * amount of space which is added twice to the measured widths in packColumn. * * @param margin the default marging to use in packColumn. * * @see #getDefaultPackMargin() * @see #packColumn(JXTable, TableColumnExt, int, int) */ public void setDefaultPackMargin(int margin) { this.packMargin = margin; } } swingx-1.6.2-sources/swingx-core/src/main/java/org/jdesktop/swingx/table/ColumnControlPopup.java0000644000175000017500000000633211415422275033031 0ustar drazzibdrazzib/* * $Id: ColumnControlPopup.java 3707 2010-07-08 19:19:25Z kschaefe $ * * Copyright 2008 Sun Microsystems, Inc., 4150 Network Circle, * Santa Clara, California 95054, U.S.A. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ package org.jdesktop.swingx.table; import java.awt.ComponentOrientation; import java.util.List; import javax.swing.Action; import javax.swing.JComponent; import org.jdesktop.swingx.action.AbstractActionExt; import org.jdesktop.swingx.plaf.UIDependent; /** * Encapsulates the popup component which is the delegate for * all popup visuals, used by a ColumnControlButton. *

      * For now, this class a simple extraction of what a ColumnControl needs. * Usage will drive further evolution. * */ public interface ColumnControlPopup extends UIDependent { /** * Toggles the popup's visibility. This method is responsible for * placing itself relative to the given owner if toggled to visible. * * @param owner the JComponent which triggered the visibility change, typically * a ColumnControlButton. */ void toggleVisibility(JComponent owner); /** * Applies the specified component orientation to all internal widgets. * This method must be called by the owner if its component orientation * changes. * * @param o the componentOrientation to apply to all internal widgets. * @see javax.swing.JComponent#applyComponentOrientation(ComponentOrientation). */ void applyComponentOrientation(ComponentOrientation o); /** * Removes all items from the popup. */ void removeAll(); /** * Adds items corresponding to the column's visibility actions. *

      * Each Action in the list is a stateAction, * its selected property bound to a column's * visible property, that is toggling the selected will * toggle the column's visibility (if the action is enabled). * * The Actions name property is bound to * the column's title. * * @param actions List of AbstractActionExt to add. */ void addVisibilityActionItems(List actions); // JW: dooohhh ... what a winding description ... // sure need to have a better abstraction! // /** * Adds additional actions to the popup. * * @param actions List of Actions to add to the popup. */ void addAdditionalActionItems(List actions); }swingx-1.6.2-sources/swingx-core/src/main/java/org/jdesktop/swingx/table/ColumnControlButton.java0000644000175000017500000007707211245503112033201 0ustar drazzibdrazzib/* * $Id: ColumnControlButton.java 3472 2009-08-27 13:12:42Z kleopatra $ * * Copyright 2004 Sun Microsystems, Inc., 4150 Network Circle, * Santa Clara, California 95054, U.S.A. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ package org.jdesktop.swingx.table; import java.awt.ComponentOrientation; import java.awt.Dimension; import java.awt.Insets; import java.awt.event.ActionEvent; import java.awt.event.ItemEvent; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.util.ArrayList; import java.util.Collections; import java.util.List; import javax.swing.AbstractAction; import javax.swing.Action; import javax.swing.Icon; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JComponent; import javax.swing.JMenuItem; import javax.swing.JPopupMenu; import javax.swing.SwingUtilities; import javax.swing.UIManager; import javax.swing.event.ChangeEvent; import javax.swing.event.ListSelectionEvent; import javax.swing.event.TableColumnModelEvent; import javax.swing.event.TableColumnModelListener; import javax.swing.plaf.UIResource; import javax.swing.table.TableColumn; import javax.swing.table.TableColumnModel; import org.jdesktop.swingx.JXTable; import org.jdesktop.swingx.action.AbstractActionExt; import org.jdesktop.swingx.action.ActionContainerFactory; import org.jdesktop.swingx.plaf.ColumnControlButtonAddon; import org.jdesktop.swingx.plaf.LookAndFeelAddons; /** * A component to allow interactive customization of JXTable's * columns. * It's main purpose is to allow toggling of table columns' visibility. * Additionally, arbitrary configuration actions can be exposed. *

      * * This component is installed in the JXTable's * trailing corner, if enabled: * *

      
       * table.setColumnControlVisible(true);
       * 
      * * From the perspective of a JXTable, the component's behaviour is * opaque. Typically, the button's action is to popup a component for user * interaction.

      * * This class is responsible for handling/providing/updating the lists of * actions and to keep all action's state in synch with Table-/Column state. * The visible behaviour of the popup is delegated to a * ColumnControlPopup.

      * * @see TableColumnExt * @see TableColumnModelExt * @see JXTable#setColumnControl * */ public class ColumnControlButton extends JButton { // JW: really want to extend? for builders? /** Marker to auto-recognize actions which should be added to the popup. */ public static final String COLUMN_CONTROL_MARKER = "column."; /** the key for looking up the control's icon in the UIManager. Typically, it's LAF dependent. */ public static final String COLUMN_CONTROL_BUTTON_ICON_KEY = "ColumnControlButton.actionIcon"; /** the key for looking up the control's margin in the UIManager. Typically, it's LAF dependent. */ public static final String COLUMN_CONTROL_BUTTON_MARGIN_KEY = "ColumnControlButton.margin"; static { LookAndFeelAddons.contribute(new ColumnControlButtonAddon()); } /** exposed for testing. */ protected ColumnControlPopup popup; // TODO: the table reference is a potential leak? /** The table which is controlled by this. */ private JXTable table; /** Listener for table property changes. */ private PropertyChangeListener tablePropertyChangeListener; /** Listener for table's columnModel. */ TableColumnModelListener columnModelListener; /** the list of actions for column menuitems.*/ private List columnVisibilityActions; /** * Creates a column control button for the table. Uses the default * icon as provided by the addon. * * @param table the JXTable controlled by this component */ public ColumnControlButton(JXTable table) { this(table, null); } /** * Creates a column control button for the table. The button * uses the given icon and has no text. * @param table the JXTable controlled by this component * @param icon the Icon to show */ public ColumnControlButton(JXTable table, Icon icon) { super(); init(); // JW: icon LF dependent? setAction(createControlAction(icon)); updateActionUI(); updateButtonUI(); installTable(table); } @Override public void updateUI() { super.updateUI(); // JW: icon may be LF dependent updateActionUI(); updateButtonUI(); getColumnControlPopup().updateUI(); } /** * Updates this button's properties provided by the LAF. * Here: overwrites the action's small_icon with the icon from the ui if the current * icon is null or a UIResource. */ protected void updateButtonUI() { if ((getMargin() == null) || (getMargin() instanceof UIResource)) { Insets insets = UIManager.getInsets(COLUMN_CONTROL_BUTTON_MARGIN_KEY); setMargin(insets); } } /** * Updates the action properties provided by the LAF. * Here: overwrites the action's small_icon with the icon from the ui if the current * icon is null or a UIResource. */ protected void updateActionUI() { if (getAction() == null) return; Icon icon = (Icon) getAction().getValue(Action.SMALL_ICON); if ((icon == null) || (icon instanceof UIResource)) { icon = UIManager.getIcon(COLUMN_CONTROL_BUTTON_ICON_KEY); getAction().putValue(Action.SMALL_ICON, icon); } } /** * Toggles the popup component's visibility. This method is * called by this control's default action.

      * * Here: delegates to getControlPopup(). */ public void togglePopup() { getColumnControlPopup().toggleVisibility(this); } @Override public void applyComponentOrientation(ComponentOrientation o) { super.applyComponentOrientation(o); getColumnControlPopup().applyComponentOrientation(o); } //-------------------------- Action in synch with column properties /** * A specialized Action which takes care of keeping in synch with * TableColumn state. * * NOTE: client must call releaseColumn if this action is no longer needed! * */ public class ColumnVisibilityAction extends AbstractActionExt { private TableColumn column; private PropertyChangeListener columnListener; /** flag to distinguish selection changes triggered by * column's property change from those triggered by * user interaction. Hack around #212-swingx. */ private boolean fromColumn; /** * Creates a action synched to the table column. * * @param column the TableColumn to keep synched to. */ public ColumnVisibilityAction(TableColumn column) { super((String) null); setStateAction(); installColumn(column); } /** * Releases all references to the synched TableColumn. * Client code must call this method if the * action is no longer needed. After calling this action must not be * used any longer. */ public void releaseColumn() { column.removePropertyChangeListener(columnListener); column = null; } /** * Returns true if the action is enabled. Returns * true only if the action is enabled and the table * column can be controlled. * * @return true if the action is enabled, false otherwise * @see #canControlColumn() */ @Override public boolean isEnabled() { return super.isEnabled() && canControlColumn(); } /** * Returns flag to indicate if column's visibility can * be controlled. Minimal requirement is that column is of type * TableColumnExt. * * @return boolean to indicate if columns's visibility can be controlled. */ protected boolean canControlColumn() { // JW: should have direction? control is from action to column, the // other way round should be guaranteed always return (column instanceof TableColumnExt); } @Override public void itemStateChanged(final ItemEvent e) { if (canControlColumn()) { if ((e.getStateChange() == ItemEvent.DESELECTED) //JW: guarding against 1 leads to #212-swingx: setting // column visibility programatically fails if // the current column is the second last visible // guarding against 0 leads to hiding all columns // by deselecting the menu item. && (table.getColumnCount() <= 1) // JW Fixed #212: basically implemented Rob's idea to distinguish // event sources instead of unconditionally reselect // not entirely sure if the state transitions are completely // defined but all related tests are passing now. && !fromColumn) { reselect(); } else { setSelected(e.getStateChange() == ItemEvent.SELECTED); } } } @Override public synchronized void setSelected(boolean newValue) { super.setSelected(newValue); if (canControlColumn()) { ((TableColumnExt) column).setVisible(newValue); } } /** * Does nothing. Synch from action state to TableColumn state * is done in itemStateChanged. */ public void actionPerformed(ActionEvent e) { } /** * Synchs selected property to visible. This * is called on change of tablecolumn's visible property. * * @param visible column visible state to synch to. */ private void updateFromColumnVisible(boolean visible) { // /*boolean*/ visible = true; // if (canControlColumn()) { // visible = ((TableColumnExt) column).isVisible(); // } fromColumn = true; setSelected(visible); fromColumn = false; } /** * Synchs name property to value. This is called on change of * tableColumn's headerValue property. * * @param value */ private void updateFromColumnHeader(Object value) { setName(String.valueOf(value)); } /** * Enforces selected to true. Called if user interaction * tried to de-select the last single visible column. * */ private void reselect() { firePropertyChange("selected", null, Boolean.TRUE); } // -------------- init private void installColumn(TableColumn column) { this.column = column; column.addPropertyChangeListener(getColumnListener()); updateFromColumnHeader(column.getHeaderValue()); // #429-swing: actionCommand must be string if (column.getIdentifier() != null) { setActionCommand(column.getIdentifier().toString()); } boolean visible = (column instanceof TableColumnExt) ? ((TableColumnExt) column).isVisible() : true; updateFromColumnVisible(visible); } /** * Returns the listener to column's property changes. The listener * is created lazily if necessary. * * @return the PropertyChangeListener listening to * TableColumn's property changes, guaranteed to be * not null. */ protected PropertyChangeListener getColumnListener() { if (columnListener == null) { columnListener = createPropertyChangeListener(); } return columnListener; } /** * Creates and returns the listener to column's property changes. * Subclasses are free to roll their own. *

      * Implementation note: this listener reacts to column's * visible and headerValue properties and * calls the respective updateFromXX methodes. * * @return the PropertyChangeListener to use with the * column */ protected PropertyChangeListener createPropertyChangeListener() { return new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent evt) { if ("visible".equals(evt.getPropertyName())) { updateFromColumnVisible((Boolean) evt.getNewValue()); } else if ("headerValue".equals(evt.getPropertyName())) { updateFromColumnHeader(evt.getNewValue()); } } }; } } // ---------------------- the popup /** * A default implementation of ColumnControlPopup. * It uses a JPopupMenu with * MenuItems corresponding to the Actions as * provided by the ColumnControlButton. * * */ public class DefaultColumnControlPopup implements ColumnControlPopup { private JPopupMenu popupMenu; //------------------ public methods to control visibility status /** * @inheritDoc * */ public void updateUI() { SwingUtilities.updateComponentTreeUI(getPopupMenu()); } /** * @inheritDoc * */ public void toggleVisibility(JComponent owner) { JPopupMenu popupMenu = getPopupMenu(); if (popupMenu.isVisible()) { popupMenu.setVisible(false); } else if (popupMenu.getComponentCount() > 0) { Dimension buttonSize = owner.getSize(); int xPos = owner.getComponentOrientation().isLeftToRight() ? buttonSize.width - popupMenu.getPreferredSize().width : 0; popupMenu.show(owner, // JW: trying to allow popup without CCB showing // weird behaviour // owner.isShowing()? owner : null, xPos, buttonSize.height); } } /** * @inheritDoc * */ public void applyComponentOrientation(ComponentOrientation o) { getPopupMenu().applyComponentOrientation(o); } //-------------------- public methods to manipulate popup contents. /** * @inheritDoc * */ public void removeAll() { getPopupMenu().removeAll(); } /** * @inheritDoc * */ public void addVisibilityActionItems( List actions) { addItems(new ArrayList(actions)); } /** * @inheritDoc * */ public void addAdditionalActionItems(List actions) { if (actions.size() == 0) return; // JW: this is a reference to the enclosing class // prevents to make this implementation static // Hmmm...any way around? if (canControl()) { addSeparator(); } addItems(actions); } //--------------------------- internal helpers to manipulate popups content /** * Here: creates and adds a menuItem to the popup for every * Action in the list. Does nothing if * if the list is empty. * * PRE: actions != null. * * @param actions a list containing the actions to add to the popup. * Must not be null. * */ protected void addItems(List actions) { ActionContainerFactory factory = new ActionContainerFactory(null); for (Action action : actions) { addItem(factory.createMenuItem(action)); } } /** * adds a separator to the popup. * */ protected void addSeparator() { getPopupMenu().addSeparator(); } /** * * @param item the menuItem to add to the popup. */ protected void addItem(JMenuItem item) { getPopupMenu().add(item); } /** * * @return the popup to add menuitems. Guaranteed to be != null. */ protected JPopupMenu getPopupMenu() { if (popupMenu == null) { popupMenu = new JPopupMenu(); } return popupMenu; } } /** * Returns to popup component for user interaction. Lazily * creates the component if necessary. * * @return the ColumnControlPopup for showing the items, guaranteed * to be not null. * @see #createColumnControlPopup() */ protected ColumnControlPopup getColumnControlPopup() { if (popup == null) { popup = createColumnControlPopup(); } return popup; } /** * Factory method to return a ColumnControlPopup. * Subclasses can override to hook custom implementations. * * @return the ColumnControlPopup used. */ protected ColumnControlPopup createColumnControlPopup() { return new DefaultColumnControlPopup(); } //-------------------------- updates from table propertyChangelistnere /** * Adjusts internal state after table's column model property has changed. * Handles cleanup of listeners to the old/new columnModel (Note, that * it listens to the column model only if it can control column visibility). * Updates content of popup. * * @param oldModel the old TableColumnModel we had been listening to. */ protected void updateFromColumnModelChange(TableColumnModel oldModel) { if (oldModel != null) { oldModel.removeColumnModelListener(columnModelListener); } populatePopup(); if (canControl()) { table.getColumnModel().addColumnModelListener(getColumnModelListener()); } } /** * Synchs this button's enabled with table's enabled. * */ protected void updateFromTableEnabledChanged() { getAction().setEnabled(table.isEnabled()); } /** * Method to check if we can control column visibility POST: if true we can * be sure to have an extended TableColumnModel * * @return boolean to indicate if controlling the visibility state is * possible. */ protected boolean canControl() { return table.getColumnModel() instanceof TableColumnModelExt; } // ------------------------ updating the popup /** * Populates the popup from scratch. * * If applicable, creates and adds column visibility actions. Always adds * additional actions. */ protected void populatePopup() { clearAll(); if (canControl()) { createVisibilityActions(); addVisibilityActionItems(); } addAdditionalActionItems(); } /** * * removes all components from the popup, making sure to release all * columnVisibility actions. * */ protected void clearAll() { clearColumnVisibilityActions(); getColumnControlPopup().removeAll(); } /** * Releases actions and clears list of actions. * */ protected void clearColumnVisibilityActions() { if (columnVisibilityActions == null) return; for (ColumnVisibilityAction action : columnVisibilityActions) { action.releaseColumn(); } columnVisibilityActions.clear(); } /** * Adds visibility actions into the popup view. * * Here: delegates the list of actions to the DefaultColumnControlPopup. *

      * PRE: columnVisibilityActions populated before calling this. * */ protected void addVisibilityActionItems() { getColumnControlPopup().addVisibilityActionItems( Collections.unmodifiableList(getColumnVisibilityActions())); } /** * Adds additional actions to the popup. * Here: delegates the list of actions as returned by #getAdditionalActions() * to the DefaultColumnControlPopup. * Does nothing if #getColumnActions() is empty. * */ protected void addAdditionalActionItems() { getColumnControlPopup().addAdditionalActionItems( Collections.unmodifiableList(getAdditionalActions())); } /** * Creates and adds a ColumnVisiblityAction for every column that should be * togglable via the column control.

      * * Here: all table columns contained in the TableColumnModel - * visible and invisible columns - to createColumnVisibilityAction and * adds all not null return values. * *

      * PRE: canControl() * * @see #createColumnVisibilityAction */ protected void createVisibilityActions() { List columns = table.getColumns(true); for (TableColumn column : columns) { ColumnVisibilityAction action = createColumnVisibilityAction(column); if (action != null) { getColumnVisibilityActions().add(action); } } } /** * Creates and returns a ColumnVisibilityAction for the given * TableColumn. The return value might be null, f.i. if the * column should not be allowed to be toggled. * * @param column the TableColumn to use for the action * @return a ColumnVisibilityAction to use for the given column, * may be null. */ protected ColumnVisibilityAction createColumnVisibilityAction(TableColumn column) { return new ColumnVisibilityAction(column); } /** * Lazyly creates and returns the List of visibility actions. * * @return the list of visibility actions, guaranteed to be != null. */ protected List getColumnVisibilityActions() { if (columnVisibilityActions == null) { columnVisibilityActions = new ArrayList(); } return columnVisibilityActions; } /** * creates and returns a list of additional Actions to add to the popup. * Here: the actions are looked up in the table's actionMap according * to the keys as returned from #getColumnControlActionKeys(); * * @return a list containing all additional actions to include into the popup. */ protected List getAdditionalActions() { List actionKeys = getColumnControlActionKeys(); List actions = new ArrayList(); for (Object key : actionKeys) { actions.add(table.getActionMap().get(key)); } return actions; } /** * Looks up and returns action keys to access actions in the * table's actionMap which should be included into the popup. * * Here: all keys with isColumnControlActionKey(key). The list * is sorted by those keys. * * @return the action keys of table's actionMap entries whose * action should be included into the popup. */ @SuppressWarnings("unchecked") protected List getColumnControlActionKeys() { Object[] allKeys = table.getActionMap().allKeys(); List columnKeys = new ArrayList(); for (int i = 0; i < allKeys.length; i++) { if (isColumnControlActionKey(allKeys[i])) { columnKeys.add(allKeys[i]); } } // JW: this will blow for non-String keys! // so this method is less decoupled from the // decision method isControl than expected. Collections.sort(columnKeys); return columnKeys; } /** * Here: true if a String key starts with #COLUMN_CONTROL_MARKER. * * @param actionKey a key in the table's actionMap. * @return a boolean to indicate whether the given actionKey maps to * an action which should be included into the popup. * */ protected boolean isColumnControlActionKey(Object actionKey) { return (actionKey instanceof String) && ((String) actionKey).startsWith(COLUMN_CONTROL_MARKER); } //--------------------------- init private void installTable(JXTable table) { this.table = table; table.addPropertyChangeListener(getTablePropertyChangeListener()); updateFromColumnModelChange(null); updateFromTableEnabledChanged(); } /** * Initialize the column control button's gui */ private void init() { setFocusPainted(false); setFocusable(false); // this is a trick to get hold of the client prop which // prevents closing of the popup JComboBox box = new JComboBox(); Object preventHide = box.getClientProperty("doNotCancelPopup"); putClientProperty("doNotCancelPopup", preventHide); } /** * Creates and returns the default action for this button. * @param icon * * @param icon the Icon to use in the action. * @return the default action. */ private Action createControlAction(Icon icon) { Action control = new AbstractAction() { public void actionPerformed(ActionEvent e) { togglePopup(); } }; control.putValue(Action.SMALL_ICON, icon); return control; } // -------------------------------- listeners /** * Returns the listener to table's property changes. The listener is * lazily created if necessary. * @return the PropertyChangeListener for use with the * table, guaranteed to be not null. */ protected PropertyChangeListener getTablePropertyChangeListener() { if (tablePropertyChangeListener == null) { tablePropertyChangeListener = createTablePropertyChangeListener(); } return tablePropertyChangeListener; } /** * Creates the listener to table's property changes. Subclasses are free * to roll their own.

      * Implementation note: this listener reacts to table's enabled and * columnModel properties and calls the respective * updateFromXX methodes. * * @return the PropertyChangeListener for use with the table. */ protected PropertyChangeListener createTablePropertyChangeListener() { return new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent evt) { if ("columnModel".equals(evt.getPropertyName())) { updateFromColumnModelChange((TableColumnModel) evt .getOldValue()); } else if ("enabled".equals(evt.getPropertyName())) { updateFromTableEnabledChanged(); } } }; } /** * Returns the listener to table's column model. The listener is * lazily created if necessary. * @return the TableColumnModelListener for use with the * table's column model, guaranteed to be not null. */ protected TableColumnModelListener getColumnModelListener() { if (columnModelListener == null) { columnModelListener = createColumnModelListener(); } return columnModelListener; } /** * Creates the listener to columnModel. Subclasses are free to roll their * own. *

      * Implementation note: this listener reacts to "real" columnRemoved/-Added by * populating the popups content from scratch. * * @return the TableColumnModelListener for use with the * table's columnModel. */ protected TableColumnModelListener createColumnModelListener() { return new TableColumnModelListener() { /** Tells listeners that a column was added to the model. */ public void columnAdded(TableColumnModelEvent e) { // quickfix for #192 if (!isVisibilityChange(e, true)) { populatePopup(); } } /** Tells listeners that a column was removed from the model. */ public void columnRemoved(TableColumnModelEvent e) { if (!isVisibilityChange(e, false)) { populatePopup(); } } /** * Check if the add/remove event is triggered by a move to/from the * invisible columns. * * PRE: the event must be received in columnAdded/Removed. * * @param e the received event * @param added if true the event is assumed to be received via * columnAdded, otherwise via columnRemoved. * @return boolean indicating whether the removed/added is a side-effect * of hiding/showing the column. */ private boolean isVisibilityChange(TableColumnModelEvent e, boolean added) { // can't tell if (!(e.getSource() instanceof DefaultTableColumnModelExt)) return false; DefaultTableColumnModelExt model = (DefaultTableColumnModelExt) e .getSource(); if (added) { return model.isAddedFromInvisibleEvent(e.getToIndex()); } else { return model.isRemovedToInvisibleEvent(e.getFromIndex()); } } /** Tells listeners that a column was repositioned. */ public void columnMoved(TableColumnModelEvent e) { } /** Tells listeners that a column was moved due to a margin change. */ public void columnMarginChanged(ChangeEvent e) { } /** * Tells listeners that the selection model of the TableColumnModel * changed. */ public void columnSelectionChanged(ListSelectionEvent e) { } }; } } // end class ColumnControlButton ././@LongLink0000000000000000000000000000014700000000000011567 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/java/org/jdesktop/swingx/table/NumberEditorNumberFormat.javaswingx-1.6.2-sources/swingx-core/src/main/java/org/jdesktop/swingx/table/NumberEditorNumberFormat.ja0000644000175000017500000000605211444102360033570 0ustar drazzibdrazzib/* * $Id: NumberEditorNumberFormat.java 3781 2010-09-15 08:33:52Z kleopatra $ * * Copyright 2008 Sun Microsystems, Inc., 4150 Network Circle, * Santa Clara, California 95054, U.S.A. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ package org.jdesktop.swingx.table; import java.text.AttributedCharacterIterator; import java.text.AttributedString; import java.text.FieldPosition; import java.text.Format; import java.text.NumberFormat; import java.text.ParsePosition; /** * A specialised Format for the NumberEditor that returns a null for empty * strings. * * @author Noel Grandin * * @deprecated (pre-1.6.2) replaced by NumberEditorExt, no longer used internally */ @Deprecated class NumberEditorNumberFormat extends Format { private final NumberFormat childFormat; public NumberEditorNumberFormat(NumberFormat childFormat) { if (childFormat == null) { childFormat = NumberFormat.getInstance(); } this.childFormat = childFormat; } @Override public AttributedCharacterIterator formatToCharacterIterator(Object obj) { if (obj == null) return new AttributedString("").getIterator(); return childFormat.formatToCharacterIterator(obj); } @Override public StringBuffer format(Object obj, StringBuffer toAppendTo, FieldPosition pos) { if (obj == null) return new StringBuffer(""); return childFormat.format(obj, toAppendTo, pos); } @Override public Object parseObject(String source, ParsePosition pos) { if (source == null) { pos.setIndex(1); // otherwise Format thinks parse failed return null; } if (source.trim().equals("")) { pos.setIndex(1); // otherwise Format thinks parse failed return null; } Object val = childFormat.parseObject(source, pos); /* * The default behaviour of Format objects is to keep parsing as long as * they encounter valid data. By for table editing we don't want * trailing bad data to be considered a "valid value". So set the index * to 0 so that the parse(Object) method knows that we had an error. */ if (pos.getIndex() != source.length()) { pos.setErrorIndex(pos.getIndex()); pos.setIndex(0); } return val; } }swingx-1.6.2-sources/swingx-core/src/main/java/org/jdesktop/swingx/table/LabelProperties.java0000644000175000017500000002563111426707465032317 0ustar drazzibdrazzib/* * $Id: LabelProperties.java 3747 2010-08-06 04:27:33Z kschaefe $ * * Copyright 2004 Sun Microsystems, Inc., 4150 Network Circle, * Santa Clara, California 95054, U.S.A. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ package org.jdesktop.swingx.table; import java.awt.Color; import java.awt.Font; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import javax.swing.AbstractButton; import javax.swing.Icon; import javax.swing.JLabel; import javax.swing.table.TableCellRenderer; /** * Class used to store label properties in a single object so that they * may be applied as a set on renderers.

      * * NOTE JW: no longer used except in ColumnHeaderRenderer which is EOL (will be * removed once we switch over to jdk16). So probably will be removed as well. * * @author Amy Fowler * @version 1.0 * @deprecated (pre-1.6.2) no replacement */ @Deprecated public class LabelProperties extends JLabel { private static final int BACKGROUND_SET = 1; private static final int FOREGROUND_SET = 2; private static final int FONT_SET = 4; private static final int HORIZONTAL_ALIGNMENT_SET = 8; private static final int HORIZONTAL_TEXT_POSITION_SET = 16; private static final int ICON_SET = 32; private static final int ICON_TEXT_GAP_SET = 64; private static final int TEXT_SET = 128; private static final int VERTICAL_ALIGNMENT_SET = 256; private static final int VERTICAL_TEXT_POSITION_SET = 512; private int setFlags = 0; public LabelProperties() { super(); addPropertyChangeListener(new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent e) { String propertyName = e.getPropertyName(); Object value = e.getNewValue(); if (propertyName.equals("background")) { if (value != null) { setFlags |= BACKGROUND_SET; } else { setFlags &= (~BACKGROUND_SET); } } else if (propertyName.equals("font")) { if (value != null) { setFlags |= FONT_SET; } else { setFlags &= (~FONT_SET); } } else if (propertyName.equals("foreground")) { if (value != null) { setFlags |= FOREGROUND_SET; } else { setFlags &= (~FOREGROUND_SET); } } else if (propertyName.equals("horizontalAlignment")) { if (value != null && ((Integer)value).intValue() != -1) { setFlags |= HORIZONTAL_ALIGNMENT_SET; } else { setFlags &= (~HORIZONTAL_ALIGNMENT_SET); } } else if (propertyName.equals("horizontalTextPosition")) { if (value != null && ((Integer)value).intValue() != -1) { setFlags |= HORIZONTAL_TEXT_POSITION_SET; } else { setFlags &= (~HORIZONTAL_TEXT_POSITION_SET); } } else if (propertyName.equals("icon")) { if (value != null) { setFlags |= ICON_SET; } else { setFlags &= (~ICON_SET); } } else if (propertyName.equals("iconTextGap")) { if (value != null && ((Integer)value).intValue() != -1) { setFlags |= ICON_TEXT_GAP_SET; } else { setFlags &= (~ICON_TEXT_GAP_SET); } } else if (propertyName.equals("text")) { if (value != null) { setFlags |= TEXT_SET; } else { setFlags &= (~TEXT_SET); } } else if (propertyName.equals("verticalAlignment")) { if (value != null && ((Integer)value).intValue() != -1) { setFlags |= VERTICAL_ALIGNMENT_SET; } else { setFlags &= (~VERTICAL_ALIGNMENT_SET); } } else if (propertyName.equals("verticalTextPosition")) { if (value != null && ((Integer)value).intValue() != -1) { setFlags |= VERTICAL_TEXT_POSITION_SET; } else { setFlags &= (~VERTICAL_TEXT_POSITION_SET); } } } }); } public LabelProperties(Color background, Color foreground, Font font, int horizontalAlignment, int horizontalTextPosition, int verticalAlignment, int verticalTextPosition, Icon icon, int iconTextGap, String text) { this(); setBackground(background); setForeground(foreground); setFont(font); setHorizontalAlignment(horizontalAlignment); setHorizontalTextPosition(horizontalTextPosition); setVerticalAlignment(verticalAlignment); setVerticalTextPosition(verticalTextPosition); setIcon(icon); setIconTextGap(iconTextGap); setText(text); } @Override public boolean isBackgroundSet() { return (setFlags & BACKGROUND_SET) > 0; } @Override public boolean isForegroundSet() { return (setFlags & FOREGROUND_SET) > 0; } @Override public boolean isFontSet() { return (setFlags & FONT_SET) > 0; } public boolean isHorizontalAlignmentSet() { return (setFlags & HORIZONTAL_ALIGNMENT_SET) > 0; } public boolean isHorizontalTextPositionSet() { return (setFlags & HORIZONTAL_TEXT_POSITION_SET) > 0; } public boolean isIconSet() { return (setFlags & ICON_SET) > 0; } public boolean isIconTextGapSet() { return (setFlags & ICON_TEXT_GAP_SET) > 0; } public boolean isTextSet() { return (setFlags & TEXT_SET) > 0; } public boolean isVerticalAlignmentSet() { return (setFlags & VERTICAL_ALIGNMENT_SET) > 0; } public boolean isVerticalTextPositionSet() { return (setFlags & VERTICAL_TEXT_POSITION_SET) > 0; } public boolean noPropertiesSet() { return setFlags == 0; } public void applyPropertiesTo(JLabel label) { if (noPropertiesSet()) { return; } if (isBackgroundSet()) { label.setBackground(getBackground()); } if (isForegroundSet()) { label.setForeground(getForeground()); } if (isFontSet()) { label.setFont(getFont()); } if (isHorizontalAlignmentSet()) { label.setHorizontalAlignment(getHorizontalAlignment()); } if (isHorizontalTextPositionSet()) { label.setHorizontalTextPosition(getHorizontalTextPosition()); } if (isIconSet()) { label.setIcon(getIcon()); } if (isIconTextGapSet()) { label.setIconTextGap(getIconTextGap()); } if (isTextSet()) { label.setText(getText()); } if (isVerticalAlignmentSet()) { label.setVerticalAlignment(getVerticalAlignment()); } if (isVerticalTextPositionSet()) { label.setVerticalTextPosition(getVerticalTextPosition()); } } public void applyPropertiesTo(AbstractButton button) { if (noPropertiesSet()) { return; } if (isBackgroundSet()) { button.setBackground(getBackground()); } if (isForegroundSet()) { button.setForeground(getForeground()); } if (isFontSet()) { button.setFont(getFont()); } if (isHorizontalAlignmentSet()) { button.setHorizontalAlignment(getHorizontalAlignment()); } if (isHorizontalTextPositionSet()) { button.setHorizontalTextPosition(getHorizontalTextPosition()); } if (isIconSet()) { button.setIcon(getIcon()); } if (isIconTextGapSet()) { button.setIconTextGap(getIconTextGap()); } if (isTextSet()) { button.setText(getText()); } if (isVerticalAlignmentSet()) { button.setVerticalAlignment(getVerticalAlignment()); } if (isVerticalTextPositionSet()) { button.setVerticalTextPosition(getVerticalTextPosition()); } } public void applyPropertiesTo(LabelProperties props) { if (noPropertiesSet()) { return; } if (isBackgroundSet()) { props.setBackground(getBackground()); } if (isForegroundSet()) { props.setForeground(getForeground()); } if (isFontSet()) { props.setFont(getFont()); } if (isHorizontalAlignmentSet()) { props.setHorizontalAlignment(getHorizontalAlignment()); } if (isHorizontalTextPositionSet()) { props.setHorizontalTextPosition(getHorizontalTextPosition()); } if (isIconSet()) { props.setIcon(getIcon()); } if (isIconTextGapSet()) { props.setIconTextGap(getIconTextGap()); } if (isTextSet()) { props.setText(getText()); } if (isVerticalAlignmentSet()) { props.setVerticalAlignment(getVerticalAlignment()); } if (isVerticalTextPositionSet()) { props.setVerticalTextPosition(getVerticalTextPosition()); } } public void applyPropertiesTo(TableCellRenderer renderer) { if (renderer instanceof JLabel) { applyPropertiesTo( (JLabel) renderer); } else if (renderer instanceof AbstractButton) { applyPropertiesTo( (AbstractButton) renderer); } } } swingx-1.6.2-sources/swingx-core/src/main/java/org/jdesktop/swingx/table/StrictNumberFormatter.java0000644000175000017500000001656111444102360033511 0ustar drazzibdrazzib/* * $Id$ * * Copyright 2009 Sun Microsystems, Inc., 4150 Network Circle, * Santa Clara, California 95054, U.S.A. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA * */ package org.jdesktop.swingx.table; import java.math.BigDecimal; import java.text.Format; import java.text.NumberFormat; import java.text.ParseException; import javax.swing.text.NumberFormatter; /** * Experiment to work around Issue #1183-swingx: NumberEditorExt throws exception * on getCellValue. Remaining issue: no visual error feedback if the expected * number type exceeds its range. * * @author Jeanette Winzenburg * * @deprecated (pre-1.6.2) moved to text package */ @Deprecated class StrictNumberFormatter extends NumberFormatter { private BigDecimal maxAsBig; private BigDecimal minAsBig; /** * @param format */ public StrictNumberFormatter(NumberFormat format) { super(format); } /** * {@inheritDoc}

      * * Overridden to automatically set the minimum/maximum to the boundaries of * the Number type if it corresponds to a raw type, or null if not. */ @Override public void setValueClass(Class valueClass) { super.setValueClass(valueClass); updateMinMax(); } /** * */ @SuppressWarnings("unchecked") private void updateMinMax() { Comparable min = null; Comparable max = null; if (getValueClass() == Integer.class) { max = Integer.MAX_VALUE; min = Integer.MIN_VALUE; } else if (getValueClass() == Long.class) { max = Long.MAX_VALUE; min = Long.MIN_VALUE; } else if (getValueClass() == Short.class) { max = Short.MAX_VALUE; min = Short.MIN_VALUE; } else if (getValueClass() == Byte.class) { max = Byte.MAX_VALUE; min = Byte.MIN_VALUE; } else if (getValueClass() == Float.class) { max = Float.MAX_VALUE; min = Float.MIN_VALUE; } else if (getValueClass() == Double.class) { // don*t understand what's happening here, naive compare with bigDecimal // fails - so don't do anything for now // JW: revisit! } setMaximum(max); setMinimum(min); } @SuppressWarnings("unchecked") @Override public void setMaximum(Comparable max) { super.setMaximum(max); this.maxAsBig = max != null ? new BigDecimal(max.toString()) : null; } @SuppressWarnings("unchecked") @Override public void setMinimum(Comparable minimum) { super.setMinimum(minimum); this.minAsBig = minimum != null ? new BigDecimal(minimum.toString()) : null; } /** * Returns the Object representation of the * String text, may be null. * * @param text String to convert * @return Object representation of text * @throws ParseException if there is an error in the conversion */ @Override public Object stringToValue(String text) throws ParseException { Object value = getParsedValue(text, getFormat()); try { if (!isValueInRange(value, true)) { throw new ParseException("Value not within min/max range", 0); } } catch (ClassCastException cce) { throw new ParseException("Class cast exception comparing values: " + cce, 0); } return convertValueToValueClass(value, getValueClass()); } /** * Converts the passed in value to the passed in class. This only * works if valueClass is one of Integer, * Long, Float, Double, * Byte or Short and value * is an instanceof Number. */ private Object convertValueToValueClass(Object value, Class valueClass) { if (valueClass != null && (value instanceof Number)) { if (valueClass == Integer.class) { return new Integer(((Number)value).intValue()); } else if (valueClass == Long.class) { return new Long(((Number)value).longValue()); } else if (valueClass == Float.class) { return new Float(((Number)value).floatValue()); } else if (valueClass == Double.class) { return new Double(((Number)value).doubleValue()); } else if (valueClass == Byte.class) { return new Byte(((Number)value).byteValue()); } else if (valueClass == Short.class) { return new Short(((Number)value).shortValue()); } } return value; } /** * Invokes parseObject on f, returning * its value. */ private Object getParsedValue(String text, Format f) throws ParseException { if (f == null) { return text; } return f.parseObject(text); } /** * Returns true if value is between the min/max. * * @param wantsCCE If false, and a ClassCastException is thrown in * comparing the values, the exception is consumed and * false is returned. */ private boolean isValueInRange(Object orgValue, boolean wantsCCE) { if (orgValue == null) return true; if ((getMinimum() == null) && getMaximum() == null) return true; BigDecimal value = new BigDecimal(orgValue.toString()); Comparable min = getMinimumAsBig(); try { if (min != null && min.compareTo(value) > 0) { return false; } } catch (ClassCastException cce) { if (wantsCCE) { throw cce; } return false; } Comparable max = getMaximumAsBig(); try { if (max != null && max.compareTo(value) < 0) { return false; } } catch (ClassCastException cce) { if (wantsCCE) { throw cce; } return false; } return true; } private Comparable getMinimumAsBig() { return minAsBig; } private Comparable getMaximumAsBig() { return maxAsBig; } } swingx-1.6.2-sources/swingx-core/src/main/java/org/jdesktop/swingx/table/DatePickerCellEditor.java0000644000175000017500000002407310722315133033165 0ustar drazzibdrazzib/* * $Id: DatePickerCellEditor.java 2476 2007-11-25 15:52:59Z kschaefe $ * * Copyright 2006 Sun Microsystems, Inc., 4150 Network Circle, * Santa Clara, California 95054, U.S.A. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ package org.jdesktop.swingx.table; import java.awt.Component; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseEvent; import java.text.DateFormat; import java.text.ParseException; import java.util.Date; import java.util.EventObject; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.AbstractCellEditor; import javax.swing.BorderFactory; import javax.swing.JTable; import javax.swing.JTree; import javax.swing.UIManager; import javax.swing.table.TableCellEditor; import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.TreeCellEditor; import org.jdesktop.swingx.JXDatePicker; import org.jdesktop.swingx.treetable.AbstractMutableTreeTableNode; /** * A CellEditor using a JXDatePicker as editor component.

      * * NOTE: this class will be moved! * * @author Richard Osbald * @author Jeanette Winzenburg */ public class DatePickerCellEditor extends AbstractCellEditor implements TableCellEditor, TreeCellEditor { protected JXDatePicker datePicker; protected DateFormat dateFormat; protected int clickCountToStart = 2; private ActionListener pickerActionListener; protected boolean ignoreAction; private static Logger logger = Logger.getLogger(DatePickerCellEditor.class .getName()); private static final long serialVersionUID = -1L; /** * Instantiates a editor with the default dateFormat. * * PENDING: always override default from DatePicker? * */ public DatePickerCellEditor() { this(null); } /** * Instantiates an editor with the given dateFormat. If * null, the datePickers default is used. * * @param dateFormat */ public DatePickerCellEditor(DateFormat dateFormat) { // JW: the copy is used to synchronize .. can // we use something else? this.dateFormat = dateFormat != null ? dateFormat : DateFormat.getDateInstance(); datePicker = new JXDatePicker(); // default border crushes the editor/combo datePicker.getEditor().setBorder( BorderFactory.createEmptyBorder(0, 1, 0, 1)); // should be fixed by j2se 6.0 datePicker.setFont(UIManager.getDefaults().getFont("TextField.font")); if (dateFormat != null) { datePicker.setFormats(dateFormat); } datePicker.addActionListener(getPickerActionListener()); } //-------------------- CellEditor /** * Returns the pickers date. * * Note: the date is only meaningful after a stopEditing and * before the next call to getTableCellEditorComponent. */ public Date getCellEditorValue() { return datePicker.getDate(); } @Override public boolean isCellEditable(EventObject anEvent) { if (anEvent instanceof MouseEvent) { return ((MouseEvent) anEvent).getClickCount() >= getClickCountToStart(); } return super.isCellEditable(anEvent); } /** * {@inheritDoc} *

      * * Overridden to commit pending edits. If commit successful, returns super, * else returns false. * * */ @Override public boolean stopCellEditing() { ignoreAction = true; boolean canCommit = commitChange(); ignoreAction = false; if (canCommit) { return super.stopCellEditing(); } return false; } /** * Specifies the number of clicks needed to start editing. * * @param count an int specifying the number of clicks needed to start * editing * @see #getClickCountToStart */ public void setClickCountToStart(int count) { clickCountToStart = count; } /** * Returns the number of clicks needed to start editing. * * @return the number of clicks needed to start editing */ public int getClickCountToStart() { return clickCountToStart; } //------------------------ TableCellEditor public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) { // PENDING JW: can remove the ignore flags here? // the picker learnde to behave ... ignoreAction = true; datePicker.setDate(getValueAsDate(value)); // todo how to.. // SwingUtilities.invokeLater(new Runnable() { // public void run() { // datePicker.getEditor().selectAll(); // } // }); ignoreAction = false; return datePicker; } //------------------------- TreeCellEditor public Component getTreeCellEditorComponent(JTree tree, Object value, boolean isSelected, boolean expanded, boolean leaf, int row) { // PENDING JW: can remove the ignore flags here? // the picker learnde to behave ... ignoreAction = true; datePicker.setDate(getValueAsDate(value)); // todo how to.. // SwingUtilities.invokeLater(new Runnable() { // public void run() { // datePicker.getEditor().selectAll(); // } // }); ignoreAction = false; return datePicker; } //-------------------- helpers /** * Returns the given value as Date. * * PENDING: abstract into something pluggable (like StringValue * in ComponentProvider?) * * @param value the value to map as Date * @return the value as Date or null, if not successful. * */ protected Date getValueAsDate(Object value) { if (isEmpty(value)) return null; if (value instanceof Date) { return (Date) value; } if (value instanceof Long) { return new Date((Long) value); } if (value instanceof String) { try { // JW: why was the parsing synchronized? // synchronized (dateFormat) { // datePicker.setDate(dateFormat.parse((String) value)); // } return dateFormat.parse((String) value); } catch (ParseException e) { handleParseException(e); } } if (value instanceof DefaultMutableTreeNode) { return getValueAsDate(((DefaultMutableTreeNode) value).getUserObject()); } if (value instanceof AbstractMutableTreeTableNode) { return getValueAsDate(((AbstractMutableTreeTableNode) value).getUserObject()); } return null; } /** * @param e */ protected void handleParseException(ParseException e) { logger.log(Level.SEVERE, e.getMessage(), e.getMessage()); } protected boolean isEmpty(Object value) { return value == null || value instanceof String && ((String) value).length() == 0; } //--------------- picker specifics /** * Commits any pending edits and returns a boolean indicating whether the * commit was successful. * * @return true if the edit was valid, false otherwise. */ protected boolean commitChange() { try { datePicker.commitEdit(); return true; } catch (ParseException e) { } return false; } /** * * @return the DatePicker's formats. * * @see org.jdesktop.swingx.JXDatePicker#getFormats(). */ public DateFormat[] getFormats() { return datePicker.getFormats(); } /** * * @param formats the formats to use in the datepicker. * * @see org.jdesktop.swingx.JXDatePicker#setFormats(DateFormat...) * */ public void setFormats(DateFormat... formats) { datePicker.setFormats(formats); } /** * Returns the ActionListener to add to the datePicker. * * @return the action listener to listen for datePicker's * action events. */ protected ActionListener getPickerActionListener() { if (pickerActionListener == null) { pickerActionListener = createPickerActionListener(); } return pickerActionListener; } /** * Creates and returns the ActionListener for the Picker. * @return the ActionListener to listen for Picker's action events. */ protected ActionListener createPickerActionListener() { ActionListener l = new ActionListener() { public void actionPerformed(final ActionEvent e) { // avoid duplicate trigger from // commit in stopCellEditing if (ignoreAction) return; // still need to invoke .. hmm // no ... with the table cooperating the // invoke is contra-productive! terminateEdit(e); } /** * @param e */ private void terminateEdit(final ActionEvent e) { if ((e != null) && (JXDatePicker.COMMIT_KEY.equals(e.getActionCommand()))) { stopCellEditing(); } else { cancelCellEditing(); } } }; return l; } }swingx-1.6.2-sources/swingx-core/src/main/java/org/jdesktop/swingx/table/NumberEditorExt.java0000644000175000017500000003122511444102360032256 0ustar drazzibdrazzib/* * $Id: NumberEditorExt.java 3781 2010-09-15 08:33:52Z kleopatra $ * * Copyright 2008 Sun Microsystems, Inc., 4150 Network Circle, * Santa Clara, California 95054, U.S.A. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ package org.jdesktop.swingx.table; import java.awt.Color; import java.awt.Component; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.text.NumberFormat; import java.text.ParseException; import javax.swing.DefaultCellEditor; import javax.swing.InputMap; import javax.swing.InputVerifier; import javax.swing.JComponent; import javax.swing.JFormattedTextField; import javax.swing.JTable; import javax.swing.JTextField; import javax.swing.KeyStroke; import javax.swing.border.LineBorder; import javax.swing.text.NumberFormatter; import org.jdesktop.swingx.text.StrictNumberFormatter; import org.jdesktop.swingx.text.NumberFormatExt; /** * * Issue #393-swingx: localized NumberEditor. Added feature to use StrictNumberFormatter. * * @author Noel Grandin * @author Jeanette Winzenburg */ public class NumberEditorExt extends DefaultCellEditor { private static Class[] argTypes = new Class[]{String.class}; java.lang.reflect.Constructor constructor; private boolean useStrictFormatter; /** * Instantiates an editor with default NumberFormat and default NumberFormatter. */ public NumberEditorExt() { this(null); } /** * Instantiates an editor with the given NumberFormat and default NumberFormatter. * * @param format the NumberFormat to use for conversion, may be null to indicate * usage of default NumberFormat. */ public NumberEditorExt(NumberFormat format) { this(format, false); } /** * Instantiates an editor with default NumberFormat and NumberFormatter depending * on useStrictFormatter. * * @param useStrictFormatter if true, uses a StrictNumberFormatter, else uses * default NumberFormatter */ public NumberEditorExt(boolean useStrictFormatter) { this(null, useStrictFormatter); } /** * Instantiates an editor with the given NumberFormat and NumberFormatter depending on * useStrictFormatter. * * @param format the NumberFormat to use for conversion, may be null to indicate * usage of default NumberFormat * @param useStrictFormatter if true, uses a StrictNumberFormatter, else uses * default NumberFormatter */ public NumberEditorExt(NumberFormat format, boolean useStrictFormatter) { super(useStrictFormatter ? createFormattedTextFieldX(format) : createFormattedTextField(format)); this.useStrictFormatter = useStrictFormatter; final JFormattedTextField textField = getComponent(); textField.setName("Table.editor"); textField.setHorizontalAlignment(JTextField.RIGHT); // remove action listener added in DefaultCellEditor textField.removeActionListener(delegate); // replace the delegate created in DefaultCellEditor delegate = new EditorDelegate() { @Override public void setValue(Object value) { getComponent().setValue(value); } @Override public Object getCellEditorValue() { try { getComponent().commitEdit(); return getComponent().getValue(); } catch (ParseException ex) { return null; } } }; textField.addActionListener(delegate); } @Override public boolean stopCellEditing() { if (!isValid()) return false; return super.stopCellEditing(); } /** * Returns a boolean indicating whether the current text is valid for * instantiating the expected Number type. * * @return true if text is valid, false otherwise. */ protected boolean isValid() { if (!getComponent().isEditValid()) return false; try { if (!hasStrictFormatter()) getNumber(); return true; } catch (Exception ex) { } return false; } /** * Returns the editor value as number. May fail for a variety of reasons, * as it forces parsing of the current text as well as reflective construction * of the target type. * * @return the editor value or null * @throws Exception if creation of the expected type fails in some way. */ protected Number getNumber() throws Exception { Number number = (Number) super.getCellEditorValue(); if (number==null) return null; return hasStrictFormatter() ? number : (Number) constructor.newInstance(new Object[]{number.toString()}); } /** * @return */ protected boolean hasStrictFormatter() { return useStrictFormatter; } /** Override and set the border back to normal in case there was an error previously */ @Override public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) { ((JComponent)getComponent()).setBorder(new LineBorder(Color.black)); try { final Class type = table.getColumnClass(column); if (hasStrictFormatter()) { // delegate to formatter which decides at parsing time // then either handles or throws ((NumberFormatter) getComponent().getFormatter()).setValueClass(type); } else { // Assume that the Number object we are dealing with has a constructor which takes // a single string parameter. if (!Number.class.isAssignableFrom(type)) { throw new IllegalStateException("NumberEditor can only handle subclasses of java.lang.Number"); } constructor = type.getConstructor(argTypes); } // JW: in strict mode this may fail in setting the value in the formatter return super.getTableCellEditorComponent(table, value, isSelected, row, column); } catch (Exception ex) { // PENDING JW: super generic editor swallows all failures and returns null // should we do so as well? throw new IllegalStateException("value/type not compatible with Number", ex); } } /** * {@inheritDoc}

      * * Overridden to instantiate a Number of the expected type. Note that this * may throw a IllegalStateException if invoked without querying * for a valid value with stopCellEditing. This should not happen during * normal usage. * * @throws IllegalStateException if current value invalid * */ @Override public Number getCellEditorValue() throws IllegalStateException { try { return getNumber(); } catch (Exception ex) { throw new IllegalStateException("Number conversion not possible from " + "current string " + getComponent().getText()); } } /** * {@inheritDoc}

      * * Convenience override with type cast. */ @Override public JFormattedTextField getComponent() { return (JFormattedTextField) super.getComponent(); } /** * Creates and returns a JFormattedTextField configured with SwingX extended * NumberFormat and StrictNumberFormatter. This method is called if * the constructor parameter useStrictFormatter is true. * * Use a static method so that we can do some stuff before calling the * superclass. */ private static JFormattedTextField createFormattedTextFieldX( NumberFormat format) { StrictNumberFormatter formatter = new StrictNumberFormatter( new NumberFormatExt(format)); final JFormattedTextField textField = new JFormattedTextField( formatter); /* * FIXME: I am sure there is a better way to do this, but I don't know * what it is. JTable sets up a binding for the ESCAPE key, but * JFormattedTextField overrides that binding with it's own. Remove the * JFormattedTextField binding. */ InputMap map = textField.getInputMap(); map.put(KeyStroke.getKeyStroke("ESCAPE"), "none"); // while (map != null) { // map.remove(KeyStroke.getKeyStroke("pressed ESCAPE")); // map = map.getParent(); // } /* * Set an input verifier to prevent the cell losing focus when the value * is invalid */ textField.setInputVerifier(new InputVerifier() { @Override public boolean verify(JComponent input) { JFormattedTextField ftf = (JFormattedTextField) input; return ftf.isEditValid(); } }); /* * The formatted text field will not call stopCellEditing() until the * value is valid. So do the red border thing here. */ textField.addPropertyChangeListener("editValid", new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent evt) { if (evt.getNewValue() == Boolean.TRUE) { ((JFormattedTextField) evt.getSource()) .setBorder(new LineBorder(Color.black)); } else { ((JFormattedTextField) evt.getSource()) .setBorder(new LineBorder(Color.red)); } } }); return textField; } /** * Creates and returns a JFormattedTextField configured with defaults. This * method is called if the contructor useStrictFormatter is false.

      * * Use a static method so that we can do some stuff before calling the * superclass. */ private static JFormattedTextField createFormattedTextField( NumberFormat formatter) { final JFormattedTextField textField = new JFormattedTextField( new NumberFormatExt(formatter)); /* * FIXME: I am sure there is a better way to do this, but I don't know * what it is. JTable sets up a binding for the ESCAPE key, but * JFormattedTextField overrides that binding with it's own. Remove the * JFormattedTextField binding. */ InputMap map = textField.getInputMap(); map.put(KeyStroke.getKeyStroke("ESCAPE"), "none"); // while (map != null) { // map.remove(KeyStroke.getKeyStroke("pressed ESCAPE")); // map = map.getParent(); // } /* * Set an input verifier to prevent the cell losing focus when the value * is invalid */ textField.setInputVerifier(new InputVerifier() { @Override public boolean verify(JComponent input) { JFormattedTextField ftf = (JFormattedTextField) input; return ftf.isEditValid(); } }); /* * The formatted text field will not call stopCellEditing() until the * value is valid. So do the red border thing here. */ textField.addPropertyChangeListener("editValid", new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent evt) { if (evt.getNewValue() == Boolean.TRUE) { ((JFormattedTextField) evt.getSource()) .setBorder(new LineBorder(Color.black)); } else { ((JFormattedTextField) evt.getSource()) .setBorder(new LineBorder(Color.red)); } } }); return textField; } }swingx-1.6.2-sources/swingx-core/src/main/java/org/jdesktop/swingx/table/TableColumnModelExt.java0000644000175000017500000002156711044115043033053 0ustar drazzibdrazzib/* * $Id: TableColumnModelExt.java 3000 2008-07-30 16:43:15Z kleopatra $ * * Copyright 2004 Sun Microsystems, Inc., 4150 Network Circle, * Santa Clara, California 95054, U.S.A. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ package org.jdesktop.swingx.table; import java.util.List; import javax.swing.event.TableColumnModelListener; import javax.swing.table.TableColumn; import javax.swing.table.TableColumnModel; import org.jdesktop.swingx.JXTable; import org.jdesktop.swingx.event.TableColumnModelExtListener; /** * An extension of TableColumnModel suitable for use with * JXTable. It extends the notion of columns considered as part * of the view realm to include invisible columns. Conceptually, there are * several sets of "columns": * *

        *
      1. model columns: all columns of a TableModel. They are but * a virtual concept, characterizable f.i. by (model) column index, (model) * column name. *
      2. view columns: all TableColumnExt objects added to the * TableColumnModelExt, each typically created and configured in * relation to a model column. These can be regarded as a kind of subset of the * model columns (not literally, obviously). Each view column belongs to exactly * one of the following (real) subsets: *
          *
        • visible columns: all view columns with the visibility property enabled *
        • hidden columns: all view columns with the visibility property disabled *
        *
      * * This class manages the view columns and automatically takes care of keeping * track of their location in the visible/hidden subset, triggering the * corresponding changes in interested views. Typically, a view column's * visibility can be toggled by user interaction, f.i. via a ColumnControlButton. *

      * An example to programmatically hide * the first visible column in the column model: * *

      
       * TableColumnExt columnExt = columnModel.getColumnExt(0);
       * if (columnExt != null) {
       *     columnExt.setVisible(false);
       * }
       * 
      * * Note that it is principally allowed to add standard TableColumns. * Practically, it doesn't make much sense to do so - they will always be * visible. *

      * * While individual visible columns can be requested by both column identifier * and column index, the latter is not available for hidden columns. An example * to programmatically guarantee that the view column which corresponds to the * first column in the associated TableModel. * *

      
       * List<TableColumn> columns = colModel.getColumns(true);
       * for (TableColumn column : columns) {
       *     if (column.getModelIndex() == 0) {
       *         if (column instanceof TableColumnExt) {
       *             ((TableColumnExt) column).setVisible(false);
       *         }
       *         return;
       *     }
       * }
       * 
      * * Alternatively, the column could be requested directly by identifier. By * default the column's headerValue is returned as identifier, if none is set. * *
      
       * Object identifier = tableModel.getColumnName(0);
       * TableColumnExt columnExt = columnModel.getColumnExt(identifier);
       * if (columnExt != null) {
       *     columnExt.setVisible(false);
       * }
       * 
      * * Relying on default identifiers is inherently brittle (headerValues might * change f.i. with Locales), so explicit configuration of columns with * identifiers is strongly recommended. A custom ColumnFactory * helps to automate column configuration. *

      * * * This class guarantees to notify registered * TableColumnModelListeners of type * TableColumnModelExtListener about propertyChanges fired by * contained TableColumns. * An example of a client which adjusts itself based on * headerValue property of visible columns: *

      
       * TableColumnModelExtListener l = new TableColumnModelExtListener() {
       * 
       *     public void columnPropertyChange(PropertyChangeEvent event) {
       *         if ("headerValue".equals(event.getPropertyName())) {
       *             TableColumn column = (TableColumn) event.getSource();
       *             if ((column instanceof TableColumnExt)
       *                     && !((TableColumnExt) column).isVisible()) {
       *                 return;
       *             }
       *             resizeAndRepaint();
       *         }
       *     }
       * 
       *     public void columnAdded(TableColumnModelEvent e) {
       *     }
       * 
       *     public void columnMarginChanged(ChangeEvent e) {
       *     }
       * 
       *     public void columnMoved(TableColumnModelEvent e) {
       *     }
       * 
       *     public void columnRemoved(TableColumnModelEvent e) {
       *     }
       * 
       *     public void columnSelectionChanged(ListSelectionEvent e) {
       *     }
       * 
       * };
       * columnModel.addColumnModelListener(l);
       * 
      * * * @author Richard Bair * @author Jeanette Winzenburg * * @see DefaultTableColumnModelExt * @see TableColumnExt * @see TableColumnModelExtListener * @see ColumnControlButton * @see JXTable#setColumnControlVisible * @see ColumnFactory * */ public interface TableColumnModelExt extends TableColumnModel { /** * Returns the number of contained columns. The count includes or excludes invisible * columns, depending on whether the includeHidden is true or * false, respectively. If false, this method returns the same count as * getColumnCount(). * * @param includeHidden a boolean to indicate whether invisible columns * should be included * @return the number of contained columns, including or excluding the * invisible as specified. */ public int getColumnCount(boolean includeHidden); /** * Returns a List of contained TableColumns. * Includes or excludes invisible columns, depending on whether the * includeHidden is true or false, respectively. If false, an * Iterator over the List is equivalent to the * Enumeration returned by getColumns(). *

      * * NOTE: the order of columns in the List depends on whether or not the * invisible columns are included, in the former case it's the insertion * order in the latter it's the current order of the visible columns. * * @param includeHidden a boolean to indicate whether invisible columns * should be included * @return a List of contained columns. */ public List getColumns(boolean includeHidden); /** * Returns the first TableColumnExt with the given * identifier. The return value is null if there is no contained * column with identifier or if the column with identifier is not * of type TableColumnExt. The returned column * may be visible or hidden. * * @param identifier the object used as column identifier * @return first TableColumnExt with the given identifier or * null if none is found */ public TableColumnExt getColumnExt(Object identifier); /** * Returns the TableColumnExt at view position * columnIndex. The return value is null, if the * column at position columnIndex is not of type * TableColumnExt. * The returned column is visible. * * @param columnIndex the index of the column desired * @return the TableColumnExt object that matches the column * index * @throws ArrayIndexOutOfBoundsException if columnIndex out of allowed * range, that is if * (columnIndex < 0) || (columnIndex >= getColumnCount()). */ public TableColumnExt getColumnExt(int columnIndex); /** * Adds a listener for table column model events. This enhances super's * behaviour in that it guarantees to notify listeners of type * TableColumnModelListenerExt about property changes of contained columns. * * @param x a TableColumnModelListener object */ public void addColumnModelListener(TableColumnModelListener x); } swingx-1.6.2-sources/swingx-core/src/main/java/org/jdesktop/swingx/table/TableColumnExt.java0000644000175000017500000006335211367610000032071 0ustar drazzibdrazzib/* * $Id: TableColumnExt.java 3691 2010-05-03 18:03:44Z kschaefe $ * * Copyright 2004 Sun Microsystems, Inc., 4150 Network Circle, * Santa Clara, California 95054, U.S.A. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ package org.jdesktop.swingx.table; import java.awt.Component; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.util.Comparator; import java.util.Hashtable; import javax.swing.DefaultCellEditor; import javax.swing.JComponent; import javax.swing.SwingUtilities; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import javax.swing.table.TableCellEditor; import javax.swing.table.TableCellRenderer; import javax.swing.table.TableColumn; import org.jdesktop.swingx.decorator.CompoundHighlighter; import org.jdesktop.swingx.decorator.Highlighter; import org.jdesktop.swingx.plaf.UIDependent; import org.jdesktop.swingx.renderer.AbstractRenderer; /** * TableColumn extension for enhanced view column configuration. * The general drift is to strengthen the TableColumn abstraction as the * place to configure and dynamically update view column properties, covering a * broad range of customization requirements. Using collaborators are expected * to listen to property changes and update themselves accordingly. *

      * * A functionality enhancement is the notion of column visibility: * TableColumnModelExt manages sets of visible/hidden * TableColumnExts controlled by the columns' * visible property. Typically, users can toggle column * visibility at runtime, f.i. through a dedicated control in the upper trailing * corner of a JScrollPane. *

      * * A prominent group of properties allows fine-grained, per-column control of * corresponding Table/-Header features. * *

        *
      • Sorting: sortable controls whether this column * should be sortable by user's sort gestures; Comparator can * hold a column specific type. * *
      • Editing: editable controls whether cells of this * column should be accessible to in-table editing. * *
      • Tooltip: toolTipText holds the column tooltip * which is shown when hovering over the column's header. * *
      • Highlighter: highlighters holds the column * highlighters; these are applied to the renderer after the table highlighters. * Any modification of the list of contained Highlighters * (setting them, adding one or removing one) will result in a * {@code PropertyChangeEvent} being fired for "highlighters". State changes on * contained Highlighters will result in a PropertyChangeEvent * for "highlighterStateChanged". *
      * * * Analogous to JComponent, this class supports per-instance * "client" properties. They are meant as a small-scale extension mechanism. * They are similar to regular bean properties in that registered * PropertyChangeListeners are notified about changes. TODO: * example? *

      * * A TableColumnExt implements UIDependent, that is it takes over * responsibility to update LAF dependent properties of contained elements when * messaged with updateUI. This implementation updates its Highlighters, * Cell-/HeaderRenderer and CellEditor.

      * * TODO: explain prototype (sizing, collaborator-used-by ColumnFactory (?)) *

      * * @author Ramesh Gupta * @author Amy Fowler * @author Jeanette Winzenburg * @author Karl Schaefer * * @see TableColumnModelExt * @see ColumnFactory * @see org.jdesktop.swingx.plaf.UIDependent * @see javax.swing.JComponent#putClientProperty */ public class TableColumnExt extends TableColumn implements UIDependent { /** visible property. Initialized to true.*/ protected boolean visible = true; /** prototype property. */ protected Object prototypeValue; /** per-column comparator */ protected Comparator comparator; /** per-column sortable property. Initialized to true. */ protected boolean sortable = true; /** per-column editable property. Initialized to true.*/ protected boolean editable = true; /** per-column tool tip text. */ private String toolTipText; /** storage for client properties. */ protected Hashtable clientProperties; /** * The compound highlighter for the column. */ protected CompoundHighlighter compoundHighlighter; private ChangeListener highlighterChangeListener; private boolean ignoreHighlighterStateChange; /** * Creates new table view column with a model index = 0. */ public TableColumnExt() { this(0); } /** * Creates new table view column with the specified model index. * @param modelIndex index of table model column to which this view column * is bound. */ public TableColumnExt(int modelIndex) { this(modelIndex, 75); // default width taken from javax.swing.table.TableColumn } /** * Creates new table view column with the specified model index and column width. * @param modelIndex index of table model column to which this view column * is bound. * @param width pixel width of view column */ public TableColumnExt(int modelIndex, int width) { this(modelIndex, width, null, null); } /** * Creates new table view column with the specified model index, column * width, cell renderer and cell editor. * @param modelIndex index of table model column to which this view column * is bound. * @param width pixel width of view column * @param cellRenderer the cell renderer which will render all cells in this * view column * @param cellEditor the cell editor which will edit cells in this view column */ public TableColumnExt(int modelIndex, int width, TableCellRenderer cellRenderer, TableCellEditor cellEditor) { super(modelIndex, width, cellRenderer, cellEditor); } /** * Instantiates a new table view column with all properties copied from the * given original. * * @param columnExt the column to copy properties from * @see #copyFrom(TableColumnExt) */ public TableColumnExt(TableColumnExt columnExt) { this(columnExt.getModelIndex(), columnExt.getWidth(), columnExt .getCellRenderer(), columnExt.getCellEditor()); copyFrom(columnExt); } /** * Sets the Highlighters to the table, replacing any old settings. * None of the given Highlighters must be null.

      * * This is a bound property.

      * * Note: as of version #1.257 the null constraint is enforced strictly. To remove * all highlighters use this method without param. * * @param highlighters zero or more not null highlighters to use for renderer decoration. * @throws NullPointerException if array is null or array contains null values. * * @see #getHighlighters() * @see #addHighlighter(Highlighter) * @see #removeHighlighter(Highlighter) * */ public void setHighlighters(Highlighter... highlighters) { ignoreHighlighterStateChange = true; Highlighter[] old = getHighlighters(); getCompoundHighlighter().setHighlighters(highlighters); firePropertyChange("highlighters", old, getHighlighters()); ignoreHighlighterStateChange = false; } /** * Returns the Highlighters used by this table. * Maybe empty, but guarantees to be never null. * * @return the Highlighters used by this table, guaranteed to never null. * @see #setHighlighters(Highlighter[]) */ public Highlighter[] getHighlighters() { return getCompoundHighlighter().getHighlighters(); } /** * Appends a Highlighter to the end of the list of used * Highlighters. The argument must not be null. *

      * * @param highlighter the Highlighter to add, must not be null. * @throws NullPointerException if Highlighter is null. * * @see #removeHighlighter(Highlighter) * @see #setHighlighters(Highlighter[]) */ public void addHighlighter(Highlighter highlighter) { ignoreHighlighterStateChange = true; Highlighter[] old = getHighlighters(); getCompoundHighlighter().addHighlighter(highlighter); firePropertyChange("highlighters", old, getHighlighters()); ignoreHighlighterStateChange = false; } /** * Removes the given Highlighter.

      * * Does nothing if the Highlighter is not contained. * * @param highlighter the Highlighter to remove. * @see #addHighlighter(Highlighter) * @see #setHighlighters(Highlighter...) */ public void removeHighlighter(Highlighter highlighter) { ignoreHighlighterStateChange = true; Highlighter[] old = getHighlighters(); getCompoundHighlighter().removeHighlighter(highlighter); firePropertyChange("highlighters", old, getHighlighters()); ignoreHighlighterStateChange = false; } /** * Returns the CompoundHighlighter assigned to the table, null if none. * PENDING: open up for subclasses again?. * * @return the CompoundHighlighter assigned to the table. */ protected CompoundHighlighter getCompoundHighlighter() { if (compoundHighlighter == null) { compoundHighlighter = new CompoundHighlighter(); compoundHighlighter.addChangeListener(getHighlighterChangeListener()); } return compoundHighlighter; } /** * Returns the ChangeListener to use with highlighters. Lazily * creates the listener. * * @return the ChangeListener for observing changes of highlighters, * guaranteed to be not-null */ protected ChangeListener getHighlighterChangeListener() { if (highlighterChangeListener == null) { highlighterChangeListener = createHighlighterChangeListener(); } return highlighterChangeListener; } /** * Creates and returns the ChangeListener observing Highlighters. *

      * Here: repaints the table on receiving a stateChanged. * * @return the ChangeListener defining the reaction to changes of * highlighters. */ protected ChangeListener createHighlighterChangeListener() { return new ChangeListener() { public void stateChanged(ChangeEvent e) { if (ignoreHighlighterStateChange) return; firePropertyChange("highlighterStateChanged", false, true); } }; } /** * Returns true if the user can resize the TableColumn's width, * false otherwise. This is a usability override: it takes into account * the case where it's principally allowed to resize the column * but not possible because the column has fixed size. * * @return a boolean indicating whether the user can resize this column. */ @Override public boolean getResizable() { // TODO JW: resizable is a bound property, so to be strict // we'll need to override setMin/MaxWidth to fire resizable // property change. return super.getResizable() && (getMinWidth() < getMaxWidth()); } /** * Sets the editable property. This property allows to mark all cells in a * column as read-only, independent of the per-cell editability as returned * by the TableModel.isCellEditable. If the cell is * read-only in the model layer, this property will have no effect. * * @param editable boolean indicating whether or not the user may edit cell * values in this view column * @see #isEditable * @see org.jdesktop.swingx.JXTable#isCellEditable(int, int) * @see javax.swing.table.TableModel#isCellEditable */ public void setEditable(boolean editable) { boolean oldEditable = this.editable; this.editable = editable; firePropertyChange("editable", Boolean.valueOf(oldEditable), Boolean.valueOf(editable)); } /** * Returns the per-column editable property. * The default is true. * * @return boolean indicating whether or not the user may edit cell * values in this view column * @see #setEditable */ public boolean isEditable() { return editable; } /** * Sets the prototypeValue property. The value should be of a type * which corresponds to the column's class as defined by the table model. * If non-null, the JXTable instance will use this property to calculate * and set the initial preferredWidth of the column. Note that this * initial preferredWidth will be overridden if the user resizes columns * directly. * * @param value Object containing the value of the prototype to be used * to calculate the initial preferred width of the column * @see #getPrototypeValue * @see org.jdesktop.swingx.JXTable#getPreferredScrollableViewportSize */ public void setPrototypeValue(Object value) { Object oldPrototypeValue = this.prototypeValue; this.prototypeValue = value; firePropertyChange("prototypeValue", oldPrototypeValue, value); } /** * Returns the prototypeValue property. * The default is null. * * @return Object containing the value of the prototype to be used * to calculate the initial preferred width of the column * @see #setPrototypeValue */ public Object getPrototypeValue() { return prototypeValue; } /** * Sets the comparator to use for this column. * JXTable sorting api respects this property by passing it on * to the SortController. * * @param comparator a custom comparator to use in interactive * sorting. * @see #getComparator * @see org.jdesktop.swingx.sort.SortController * @see org.jdesktop.swingx.decorator.SortKey */ public void setComparator(Comparator comparator) { Comparator old = getComparator(); this.comparator = comparator; firePropertyChange("comparator", old, getComparator()); } /** * Returns the comparator to use for the column. * The default is null. * * @return Comparator to use for this column * @see #setComparator */ public Comparator getComparator() { return comparator; } /** * Sets the sortable property. JXTable sorting api respects this * property by disabling interactive sorting on this column if false. * * @param sortable boolean indicating whether or not this column can * be sorted in the table * @see #isSortable */ public void setSortable(boolean sortable) { boolean old = isSortable(); this.sortable = sortable; firePropertyChange("sortable", old, isSortable()); } /** * Returns the sortable property. * The default value is true. * * @return boolean indicating whether this view column is sortable * @see #setSortable */ public boolean isSortable() { return sortable; } /** * Registers the text to display in the column's tool tip. * Typically, this is used by JXTableHeader to * display when the mouse cursor lingers over the column's * header cell. * * @param toolTipText text to show. * @see #setToolTipText(String) */ public void setToolTipText(String toolTipText) { String old = getToolTipText(); this.toolTipText = toolTipText; firePropertyChange("toolTipText", old, getToolTipText()); } /** * Returns the text of to display in the column's tool tip. * The default is null. * * @return the text of the column ToolTip. * @see #setToolTipText(String) */ public String getToolTipText() { return toolTipText; } /** * Sets the title of this view column. This is a convenience * wrapper for setHeaderValue. * @param title String containing the title of this view column */ public void setTitle(String title) { setHeaderValue(title); // simple wrapper } /** * Convenience method which returns the headerValue property after * converting it to a string. * @return String containing the title of this view column or null if * no headerValue is set. */ public String getTitle() { Object header = getHeaderValue(); return header != null ? header.toString() : null; // simple wrapper } /** * Sets the visible property. This property controls whether or not * this view column is currently visible in the table. * * @param visible boolean indicating whether or not this view column is * visible in the table * @see #setVisible */ public void setVisible(boolean visible) { boolean oldVisible = this.visible; this.visible = visible; firePropertyChange("visible", Boolean.valueOf(oldVisible), Boolean.valueOf(visible)); } /** * Returns the visible property. * The default is true. * * @return boolean indicating whether or not this view column is * visible in the table * @see #setVisible */ public boolean isVisible() { return visible; } /** * Sets the client property "key" to value. * If value is null this method will remove the property. * Changes to * client properties are reported with PropertyChange events. * The name of the property (for the sake of PropertyChange events) is * key.toString(). *

      * The get/putClientProperty methods provide access to a * per-instance hashtable, which is intended for small scale extensions of * TableColumn. *

      * * @param key Object which is used as key to retrieve value * @param value Object containing value of client property * @throws IllegalArgumentException if key is null * @see #getClientProperty * @see javax.swing.JComponent#putClientProperty */ public void putClientProperty(Object key, Object value) { if (key == null) throw new IllegalArgumentException("null key"); if ((value == null) && (getClientProperty(key) == null)) { return; } Object old = getClientProperty(key); if (value == null) { getClientProperties().remove(key); } else { getClientProperties().put(key, value); } firePropertyChange(key.toString(), old, value); /* Make all fireXXX methods in TableColumn protected instead of private */ } /** * Returns the value of the property with the specified key. Only properties * added with putClientProperty will return a non-null * value. * * @param key Object which is used as key to retrieve value * @return Object containing value of client property or null * * @see #putClientProperty */ public Object getClientProperty(Object key) { return ((key == null) || (clientProperties == null)) ? null : clientProperties.get(key); } private Hashtable getClientProperties() { if (clientProperties == null) { clientProperties = new Hashtable(); } return clientProperties; } /** * Copies properties from original. Handles all properties except * modelIndex, width, cellRenderer, cellEditor. Called from copy * constructor. * * @param original the tableColumn to copy from * * @see #TableColumnExt(TableColumnExt) */ protected void copyFrom(TableColumnExt original) { setEditable(original.isEditable()); setHeaderValue(original.getHeaderValue()); // no need to copy setTitle(); setToolTipText(original.getToolTipText()); setIdentifier(original.getIdentifier()); setMaxWidth(original.getMaxWidth()); setMinWidth(original.getMinWidth()); setPreferredWidth(original.getPreferredWidth()); setPrototypeValue(original.getPrototypeValue()); // JW: isResizable is overridden to return a calculated property! setResizable(original.isResizable); setVisible(original.isVisible()); setSortable(original.isSortable()); setComparator(original.getComparator()); copyClientPropertiesFrom(original); if (original.compoundHighlighter != null) { setHighlighters(original.getHighlighters()); } } /** * Copies all clientProperties of this TableColumnExt * to the target column. * * @param original the target column. */ protected void copyClientPropertiesFrom(TableColumnExt original) { if (original.clientProperties == null) return; for(Object key: original.clientProperties.keySet()) { putClientProperty(key, original.getClientProperty(key)); } } /** * Notifies registered PropertyChangeListeners * about property changes. This method must be invoked internally * whe any of the enhanced properties changed. *

      * Implementation note: needed to replicate super * functionality because super's field propertyChangeSupport * and method fireXX are both private. * * @param propertyName name of changed property * @param oldValue old value of changed property * @param newValue new value of changed property */ protected void firePropertyChange(String propertyName, Object oldValue, Object newValue) { if ((oldValue != null && !oldValue.equals(newValue)) || oldValue == null && newValue != null) { PropertyChangeListener pcl[] = getPropertyChangeListeners(); if (pcl != null && pcl.length != 0) { PropertyChangeEvent pce = new PropertyChangeEvent(this, propertyName, oldValue, newValue); for (int i = 0; i < pcl.length; i++) { pcl[i].propertyChange(pce); } } } } //---------------- implement UIDependent /** * Update ui of owned ui-dependent parts. This implementation * updates the contained highlighters. * */ public void updateUI() { updateHighlighterUI(); updateRendererUI(getCellRenderer()); updateRendererUI(getHeaderRenderer()); updateEditorUI(getCellEditor()); } /** * @param editor * */ private void updateEditorUI(TableCellEditor editor) { if (editor == null) return; // internal knowledge of core table - already updated if ((editor instanceof JComponent) || (editor instanceof DefaultCellEditor)) return; try { Component comp = editor .getTableCellEditorComponent(null, null, false, -1, -1); if (comp != null) { SwingUtilities.updateComponentTreeUI(comp); } } catch (Exception e) { // can't do anything - renderer can't cope with off-range cells } } /** * @param tableCellRenderer * */ private void updateRendererUI(TableCellRenderer renderer) { if (renderer == null) return; // internal knowledge of core table - already updated if (renderer instanceof JComponent) { return; } Component comp = null; if (renderer instanceof AbstractRenderer) { comp = ((AbstractRenderer) renderer).getComponentProvider().getRendererComponent(null); } else { try { comp = renderer .getTableCellRendererComponent(null, null, false, false, -1, -1); } catch (Exception e) { // can't do anything - renderer can't cope with off-range cells } } if (comp != null) { SwingUtilities.updateComponentTreeUI(comp); } } /** * */ private void updateHighlighterUI() { if (compoundHighlighter == null) return; compoundHighlighter.updateUI(); } } ././@LongLink0000000000000000000000000000015100000000000011562 Lustar rootrootswingx-1.6.2-sources/swingx-core/src/main/java/org/jdesktop/swingx/table/DefaultTableColumnModelExt.javaswingx-1.6.2-sources/swingx-core/src/main/java/org/jdesktop/swingx/table/DefaultTableColumnModelExt.0000644000175000017500000003105011441160615033510 0ustar drazzibdrazzib/* * $Id: DefaultTableColumnModelExt.java 3774 2010-09-06 12:41:49Z kleopatra $ * * Copyright 2004 Sun Microsystems, Inc., 4150 Network Circle, * Santa Clara, California 95054, U.S.A. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ package org.jdesktop.swingx.table; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.io.Serializable; import java.util.ArrayList; import java.util.Collections; import java.util.Iterator; import java.util.List; import javax.swing.event.EventListenerList; import javax.swing.event.TableColumnModelListener; import javax.swing.table.DefaultTableColumnModel; import javax.swing.table.TableColumn; import org.jdesktop.swingx.event.TableColumnModelExtListener; /** * A default implementation of TableColumnModelExt. *

      * * TODO: explain sub-optimal notification on showing/hiding columns. * (hot fixed issues #156, #157. To really do it * need enhanced TableColumnModelEvent and -Listeners that are * aware of the event.) * * * @author Richard Bair * @author Jeanette Winzenburg */ public class DefaultTableColumnModelExt extends DefaultTableColumnModel implements TableColumnModelExt { /** flag to distinguish a shown/hidden column from really added/removed * columns during notification. This is brittle! */ // private static final String IGNORE_EVENT = "TableColumnModelExt.ignoreEvent"; private boolean isVisibilityChange; /** * contains a list of all columns, in the order in which were * added to the model. */ private List initialColumns = new ArrayList(); /** * contains a list of all column, in the order they would appear if * all were visible. */ private List currentColumns = new ArrayList(); /** * Listener attached to TableColumnExt instances to listen for changes * to their visibility status, and to hide/show the column as oppropriate */ private VisibilityListener visibilityListener = new VisibilityListener(); /** * Creates a an empty DefaultTableColumnModelExt. */ public DefaultTableColumnModelExt() { super(); } //----------------------- implement TableColumnModelExt /** * {@inheritDoc} */ public List getColumns(boolean includeHidden) { if (includeHidden) { return new ArrayList(initialColumns); } return Collections.list(getColumns()); } /** * {@inheritDoc} */ public int getColumnCount(boolean includeHidden) { if (includeHidden) { return initialColumns.size(); } return getColumnCount(); } /** * {@inheritDoc} */ public TableColumnExt getColumnExt(Object identifier) { for (Iterator iter = initialColumns.iterator(); iter.hasNext();) { TableColumn column = iter.next(); if ((column instanceof TableColumnExt) && (identifier.equals(column.getIdentifier()))) { return (TableColumnExt) column; } } return null; } /** * {@inheritDoc} */ public TableColumnExt getColumnExt(int columnIndex) { TableColumn column = getColumn(columnIndex); if (column instanceof TableColumnExt) { return (TableColumnExt) column; } return null; } /** * hot fix for #157: listeners that are aware of * the possible existence of invisible columns * should check if the received columnRemoved originated * from moving a column from visible to invisible. * * @param oldIndex the fromIndex of the columnEvent * @return true if the column was moved to invisible */ public boolean isRemovedToInvisibleEvent(int oldIndex) { return isVisibilityChange; } /** * hot fix for #157: listeners that are aware of * the possible existence of invisible columns * should check if the received columnAdded originated * from moving a column from invisible to visible. * * @param newIndex the toIndex of the columnEvent * @return true if the column was moved to visible */ public boolean isAddedFromInvisibleEvent(int newIndex) { return isVisibilityChange; } //------------------------ TableColumnModel /** * {@inheritDoc}

      * * Overridden to update internals related to column visibility. */ @Override public void removeColumn(TableColumn column) { //remove the visibility listener if appropriate if (column instanceof TableColumnExt) { ((TableColumnExt) column).setVisible(true); ((TableColumnExt)column).removePropertyChangeListener(visibilityListener); } currentColumns.remove(column); initialColumns.remove(column); //let the superclass handle notification etc super.removeColumn(column); } /** * {@inheritDoc}

      * * Overridden to update internals related to column visibility. */ @Override public void addColumn(TableColumn aColumn) { // hacking to guarantee correct events // two step: add as visible, setVisible boolean oldVisible = true; //add the visibility listener if appropriate if (aColumn instanceof TableColumnExt) { TableColumnExt xColumn = (TableColumnExt) aColumn; oldVisible = xColumn.isVisible(); xColumn.setVisible(true); xColumn.addPropertyChangeListener(visibilityListener); } // append the column to the end of both initial- and currentColumns. currentColumns.add(aColumn); initialColumns.add(aColumn); // let super handle the event notification, super.book-keeping super.addColumn(aColumn); if (aColumn instanceof TableColumnExt) { // reset original visibility ((TableColumnExt) aColumn).setVisible(oldVisible); } } /** * {@inheritDoc}

      * * Overridden to update internals related to column visibility. */ @Override public void moveColumn(int columnIndex, int newIndex) { if (columnIndex != newIndex) { updateCurrentColumns(columnIndex, newIndex); } super.moveColumn(columnIndex, newIndex); } /** * Adjusts the current column sequence when a visible column is moved. * * @param oldIndex the old visible position. * @param newIndex the new visible position. */ private void updateCurrentColumns(int oldIndex, int newIndex) { TableColumn movedColumn = tableColumns.elementAt(oldIndex); int oldPosition = currentColumns.indexOf(movedColumn); TableColumn targetColumn = tableColumns.elementAt(newIndex); int newPosition = currentColumns.indexOf(targetColumn); currentColumns.remove(oldPosition); currentColumns.add(newPosition, movedColumn); } /** * Update internal state after the visibility of the column * was changed to invisible. The given column is assumed to * be contained in this model. * * @param col the column which was hidden. */ protected void moveToInvisible(TableColumnExt col) { isVisibilityChange = true; super.removeColumn(col); isVisibilityChange = false; } /** * Update internal state after the visibility of the column * was changed to visible. The given column is assumed to * be contained in this model. * * @param col the column which was made visible. */ protected void moveToVisible(TableColumnExt col) { isVisibilityChange = true; // two step process: first add at end of columns // then move to "best" position relative to where it // was before hiding. super.addColumn(col); // this is analogous to the proposed fix in #253-swingx // but uses the currentColumns as reference. Integer addIndex = currentColumns.indexOf(col); for (int i = 0; i < (getColumnCount() - 1); i++) { TableColumn tableCol = getColumn(i); int actualPosition = currentColumns.indexOf(tableCol); if (actualPosition > addIndex) { super.moveColumn(getColumnCount() - 1, i); break; } } isVisibilityChange = false; } /** * TODO JW: move into propertyChanged! No need for a dedicated listener. * Changed evaluation JW: may still be required as super removes itself as * propertyChangeListener if column is hidden */ private class VisibilityListener implements PropertyChangeListener, Serializable { public void propertyChange(PropertyChangeEvent evt) { if ("visible".equals(evt.getPropertyName())) { TableColumnExt columnExt = (TableColumnExt)evt.getSource(); if (columnExt.isVisible()) { moveToVisible(columnExt); fireColumnPropertyChange(evt); } else { moveToInvisible(columnExt); } } else if (!((TableColumnExt) evt.getSource()).isVisible()) { fireColumnPropertyChange(evt); } } } // enhanced listener notification /** * Exposed for testing only - don't use! Will be removed again! * @return super's listener list */ protected EventListenerList getEventListenerList() { return listenerList; } /** * {@inheritDoc} */ @Override public void propertyChange(PropertyChangeEvent evt) { super.propertyChange(evt); fireColumnPropertyChange(evt); } /** * Notifies TableColumnModelExtListeners about property * changes of contained columns. The event instance * is the original as fired by the TableColumn. * @param evt the event received * @see EventListenerList */ protected void fireColumnPropertyChange(PropertyChangeEvent evt) { // if (IGNORE_EVENT.equals(evt.getPropertyName())) return; // Guaranteed to return a non-null array Object[] listeners = listenerList.getListenerList(); // Process the listeners last to first, notifying // those that are interested in this event for (int i = listeners.length-2; i>=0; i-=2) { if (listeners[i]==TableColumnModelExtListener.class) { ((TableColumnModelExtListener)listeners[i+1]). columnPropertyChange(evt); } } } /** * {@inheritDoc}

      * * * Overridden to install enhanced notification of listeners of type. * TableColumnModelListenerExt about property changes of contained columns. * */ @Override public void addColumnModelListener(TableColumnModelListener x) { super.addColumnModelListener(x); if (x instanceof TableColumnModelExtListener) { listenerList.add(TableColumnModelExtListener.class, (TableColumnModelExtListener) x); } } /** * {@inheritDoc}

      * * Overridden to uninstall enhanced notification of listeners of type. * TableColumnModelListenerExt about property changes of contained columns. */ @Override public void removeColumnModelListener(TableColumnModelListener x) { super.removeColumnModelListener(x); if (x instanceof TableColumnModelExtListener) { listenerList.remove(TableColumnModelExtListener.class, (TableColumnModelExtListener) x); } } /** * @return array of all registered listeners */ public TableColumnModelExtListener[] getTableColumnModelExtListeners() { return listenerList.getListeners(TableColumnModelExtListener.class); } } swingx-1.6.2-sources/swingx-core/src/main/java/org/jdesktop/swingx/table/NumberFormatExt.java0000644000175000017500000000702711444102360032263 0ustar drazzibdrazzib/* * $Id$ * * Copyright 2009 Sun Microsystems, Inc., 4150 Network Circle, * Santa Clara, California 95054, U.S.A. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA * */ package org.jdesktop.swingx.table; import java.text.AttributedCharacterIterator; import java.text.AttributedString; import java.text.FieldPosition; import java.text.NumberFormat; import java.text.ParsePosition; /** * A specialised NumberFormat which handles null values and empty Strings. * This is useful in cell editors and used in StrictNumberFormatter. * * @author Noel Grandin * @author Jeanette Winzenburg * * @deprecated (pre-1.6.2) moved to org.jdesktop.swingx.text */ @Deprecated class NumberFormatExt extends NumberFormat { private NumberFormat childFormat; public NumberFormatExt() { this(null); } public NumberFormatExt(NumberFormat childFormat) { if (childFormat == null) { childFormat = NumberFormat.getInstance(); } this.childFormat = childFormat; } @Override public AttributedCharacterIterator formatToCharacterIterator(Object obj) { if (obj == null) return new AttributedString("").getIterator(); return childFormat.formatToCharacterIterator(obj); } @Override public StringBuffer format(Object obj, StringBuffer toAppendTo, FieldPosition pos) { if (obj == null) return new StringBuffer(""); return childFormat.format(obj, toAppendTo, pos); } @Override public Number parse(String source, ParsePosition pos) { if (source == null) { pos.setIndex(1); // otherwise Format thinks parse failed return null; } if (source.trim().equals("")) { pos.setIndex(1); // otherwise Format thinks parse failed return null; } Number val = childFormat.parse(source, pos); /* * The default behaviour of Format objects is to keep parsing as long as * they encounter valid data. By for table editing we don't want * trailing bad data to be considered a "valid value". So set the index * to 0 so that the parse(Object) method knows that we had an error. */ if (pos.getIndex() != source.length()) { pos.setErrorIndex(pos.getIndex()); pos.setIndex(0); } return val; } @Override public StringBuffer format(double number, StringBuffer toAppendTo, FieldPosition pos) { return childFormat.format(number, toAppendTo, pos); } @Override public StringBuffer format(long number, StringBuffer toAppendTo, FieldPosition pos) { return childFormat.format(number, toAppendTo, pos); } } swingx-1.6.2-sources/swingx-core/src/main/java/org/jdesktop/swingx/JXFormattedTextField.java0000644000175000017500000000735611323133151032115 0ustar drazzibdrazzibpackage org.jdesktop.swingx; import java.awt.Color; import java.awt.Component; import java.awt.Insets; import java.util.List; import javax.swing.JFormattedTextField; import javax.swing.JTextField; import org.jdesktop.swingx.prompt.BuddySupport; import org.jdesktop.swingx.prompt.PromptSupport; import org.jdesktop.swingx.prompt.BuddySupport.Position; import org.jdesktop.swingx.prompt.PromptSupport.FocusBehavior; /** * {@link JFormattedTextField}, with integrated support for prompts and buddies. * * @see PromptSupport * @see BuddySupport * @author Peter Weishapl * */ public class JXFormattedTextField extends JFormattedTextField { public JXFormattedTextField() { this(null); } public JXFormattedTextField(String promptText) { this(promptText, null); } public JXFormattedTextField(String promptText, Color promptForeground) { this(promptText, promptForeground, null); } public JXFormattedTextField(String promptText, Color promptForeground, Color promptBackground) { PromptSupport.init(promptText, promptForeground, promptBackground, this); } /** * @see PromptSupport#getFocusBehavior(javax.swing.text.JTextComponent) */ public FocusBehavior getFocusBehavior() { return PromptSupport.getFocusBehavior(this); } /** * @see PromptSupport#getPrompt(javax.swing.text.JTextComponent) */ public String getPrompt() { return PromptSupport.getPrompt(this); } /** * @see PromptSupport#getForeground(javax.swing.text.JTextComponent) */ public Color getPromptForeground() { return PromptSupport.getForeground(this); } /** * @see PromptSupport#getForeground(javax.swing.text.JTextComponent) */ public Color getPromptBackground() { return PromptSupport.getBackground(this); } /** * @see PromptSupport#getFontStyle(javax.swing.text.JTextComponent) */ public Integer getPromptFontStyle() { return PromptSupport.getFontStyle(this); } /** * @see PromptSupport#getFocusBehavior(javax.swing.text.JTextComponent) */ public void setFocusBehavior(FocusBehavior focusBehavior) { PromptSupport.setFocusBehavior(focusBehavior, this); } /** * @see PromptSupport#setPrompt(String, javax.swing.text.JTextComponent) */ public void setPrompt(String labelText) { PromptSupport.setPrompt(labelText, this); } /** * @see PromptSupport#setForeground(Color, javax.swing.text.JTextComponent) */ public void setPromptForeground(Color promptTextColor) { PromptSupport.setForeground(promptTextColor, this); } /** * @see PromptSupport#setBackground(Color, javax.swing.text.JTextComponent) */ public void setPromptBackround(Color promptTextColor) { PromptSupport.setBackground(promptTextColor, this); } /** * @see PromptSupport#setFontStyle(Integer, * javax.swing.text.JTextComponent) */ public void setPromptFontStyle(Integer fontStyle) { PromptSupport.setFontStyle(fontStyle, this); } /** * @see BuddySupport#setOuterMargin(JTextField, Insets) */ public void setOuterMargin(Insets margin) { BuddySupport.setOuterMargin(this, margin); } /** * @see BuddySupport#getOuterMargin(JTextField) */ public Insets getOuterMargin() { return BuddySupport.getOuterMargin(this); } /** * @see BuddySupport#add(Component, Position, JTextField) */ public void addBuddy(Component buddy, Position pos) { BuddySupport.add(buddy, pos, this); } /** * @see BuddySupport#addGap(int, Position, JTextField) */ public void addGap(int width, Position pos) { BuddySupport.addGap(width, pos, this); } /** * @see BuddySupport#getBuddies(Position, JTextField) */ public List getBuddies(Position pos) { return BuddySupport.getBuddies(pos, this); } /** * @see BuddySupport#removeAll(JTextField) */ public void removeAllBuddies() { BuddySupport.removeAll(this); } } swingx-1.6.2-sources/swingx-core/src/main/java/org/jdesktop/swingx/MultiSplitLayout.java0000644000175000017500000021673711245502717031441 0ustar drazzibdrazzib/* * $Id: MultiSplitLayout.java 3471 2009-08-27 13:10:39Z kleopatra $ * * Copyright 2004 Sun Microsystems, Inc., 4150 Network Circle, * Santa Clara, California 95054, U.S.A. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ package org.jdesktop.swingx; import java.awt.Component; import java.awt.Container; import java.awt.Dimension; import java.awt.Insets; import java.awt.LayoutManager; import java.awt.Rectangle; import java.beans.PropertyChangeListener; import java.beans.PropertyChangeSupport; import java.io.IOException; import java.io.Reader; import java.io.StreamTokenizer; import java.io.StringReader; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.ListIterator; import java.util.Map; import javax.swing.UIManager; /** * The MultiSplitLayout layout manager recursively arranges its * components in row and column groups called "Splits". Elements of * the layout are separated by gaps called "Dividers". The overall * layout is defined with a simple tree model whose nodes are * instances of MultiSplitLayout.Split, MultiSplitLayout.Divider, * and MultiSplitLayout.Leaf. Named Leaf nodes represent the space * allocated to a component that was added with a constraint that * matches the Leaf's name. Extra space is distributed * among row/column siblings according to their 0.0 to 1.0 weight. * If no weights are specified then the last sibling always gets * all of the extra space, or space reduction. * *

      * Although MultiSplitLayout can be used with any Container, it's * the default layout manager for MultiSplitPane. MultiSplitPane * supports interactively dragging the Dividers, accessibility, * and other features associated with split panes. * *

      * All properties in this class are bound: when a properties value * is changed, all PropertyChangeListeners are fired. * * * @author Hans Muller * @author Luan O'Carroll * @see JXMultiSplitPane */ /* * Changes by Luan O'Carroll * 1 Support for visibility added. */ public class MultiSplitLayout implements LayoutManager { public static final int DEFAULT_LAYOUT = 0; public static final int NO_MIN_SIZE_LAYOUT = 1; public static final int USER_MIN_SIZE_LAYOUT = 2; private final Map childMap = new HashMap(); private final PropertyChangeSupport pcs = new PropertyChangeSupport(this); private Node model; private int dividerSize; private boolean floatingDividers = true; private boolean removeDividers = true; private boolean layoutByWeight = false; private int layoutMode; private int userMinSize = 20; /** * Create a MultiSplitLayout with a default model with a single * Leaf node named "default". * * #see setModel */ public MultiSplitLayout() { this(new Leaf("default")); } /** * Create a MultiSplitLayout with a default model with a single * Leaf node named "default". * * @param layoutByWeight if true the layout is initialized in proportion to * the node weights rather than the component preferred sizes. * #see setModel */ public MultiSplitLayout(boolean layoutByWeight) { this(new Leaf("default")); this.layoutByWeight = layoutByWeight; } /** * Set the size of the child components to match the weights of the children. * If the components to not all specify a weight then the available layout * space is divided equally between the components. */ public void layoutByWeight( Container parent ) { doLayoutByWeight( parent ); layoutContainer( parent ); } /** * Set the size of the child components to match the weights of the children. * If the components to not all specify a weight then the available layout * space is divided equally between the components. */ private void doLayoutByWeight( Container parent ) { Dimension size = parent.getSize(); Insets insets = parent.getInsets(); int width = size.width - (insets.left + insets.right); int height = size.height - (insets.top + insets.bottom); Rectangle bounds = new Rectangle(insets.left, insets.top, width, height); if (model instanceof Leaf) model.setBounds(bounds); else if (model instanceof Split) doLayoutByWeight( model, bounds ); } private void doLayoutByWeight( Node node, Rectangle bounds ) { int width = bounds.width; int height = bounds.height; Split split = (Split)node; List splitChildren = split.getChildren(); double distributableWeight = 1.0; int unweightedComponents = 0; int dividerSpace = 0; for( Node splitChild : splitChildren ) { if ( !splitChild.isVisible()) continue; else if ( splitChild instanceof Divider ) { dividerSpace += dividerSize; continue; } double weight = splitChild.getWeight(); if ( weight > 0.0 ) distributableWeight -= weight; else unweightedComponents++; } if ( split.isRowLayout()) { width -= dividerSpace; double distributableWidth = width * distributableWeight; for( Node splitChild : splitChildren ) { if ( !splitChild.isVisible() || ( splitChild instanceof Divider )) continue; double weight = splitChild.getWeight(); Rectangle splitChildBounds = splitChild.getBounds(); if ( weight >= 0 ) splitChildBounds = new Rectangle( splitChildBounds.x, splitChildBounds.y, (int)( width * weight ), height ); else splitChildBounds = new Rectangle( splitChildBounds.x, splitChildBounds.y, (int)( distributableWidth / unweightedComponents ), height ); if ( layoutMode == USER_MIN_SIZE_LAYOUT ) { splitChildBounds.setSize( Math.max( splitChildBounds.width, userMinSize ), splitChildBounds.height ); } splitChild.setBounds( splitChildBounds ); if ( splitChild instanceof Split ) doLayoutByWeight( splitChild, splitChildBounds ); else { Component comp = getComponentForNode( splitChild ); if ( comp != null ) comp.setPreferredSize( splitChildBounds.getSize()); } } } else { height -= dividerSpace; double distributableHeight = height * distributableWeight; for( Node splitChild : splitChildren ) { if ( !splitChild.isVisible() || ( splitChild instanceof Divider )) continue; double weight = splitChild.getWeight(); Rectangle splitChildBounds = splitChild.getBounds(); if ( weight >= 0 ) splitChildBounds = new Rectangle( splitChildBounds.x, splitChildBounds.y, width, (int)( height * weight )); else splitChildBounds = new Rectangle( splitChildBounds.x, splitChildBounds.y, width, (int)( distributableHeight / unweightedComponents )); if ( layoutMode == USER_MIN_SIZE_LAYOUT ) { splitChildBounds.setSize( splitChildBounds.width, Math.max( splitChildBounds.height, userMinSize ) ); } splitChild.setBounds( splitChildBounds ); if ( splitChild instanceof Split ) doLayoutByWeight( splitChild, splitChildBounds ); else { Component comp = getComponentForNode( splitChild ); if ( comp != null ) comp.setPreferredSize( splitChildBounds.getSize()); } } } } /** * Get the component associated with a MultiSplitLayout.Node * @param n the layout node * @return the component handled by the layout or null if not found */ public Component getComponentForNode( Node n ) { String name = ((Leaf)n).getName(); return (name != null) ? (Component)childMap.get(name) : null; } /** * Get the MultiSplitLayout.Node associated with a component * @param comp the component being positioned by the layout * @return the node associated with the component */ public Node getNodeForComponent( Component comp ) { return getNodeForName( getNameForComponent( comp )); } /** * Get the MultiSplitLayout.Node associated with a component * @param name the name used to associate a component with the layout * @return the node associated with the component */ public Node getNodeForName( String name ) { if ( model instanceof Split ) { Split split = ((Split)model); return getNodeForName( split, name ); } else return null; } /** * Get the name used to map a component * @param child the component * @return the name used to map the component or null if no mapping is found */ public String getNameForComponent( Component child ) { String name = null; for(Map.Entry kv : childMap.entrySet()) { if (kv.getValue() == child) { name = kv.getKey(); break; } } return name; } /** * Get the MultiSplitLayout.Node associated with a component * @param split the layout split that owns the requested node * @param comp the component being positioned by the layout * @return the node associated with the component */ public Node getNodeForComponent( Split split, Component comp ) { return getNodeForName( split, getNameForComponent( comp )); } /** * Get the MultiSplitLayout.Node associated with a component * @param split the layout split that owns the requested node * @param name the name used to associate a component with the layout * @return the node associated with the component */ public Node getNodeForName( Split split, String name ) { for(Node n : split.getChildren()) { if ( n instanceof Leaf ) { if ( ((Leaf)n).getName().equals( name )) return n; } else if ( n instanceof Split ) { Node n1 = getNodeForName( (Split)n, name ); if ( n1 != null ) return n1; } } return null; } /** * Is there a valid model for the layout? * @return true if there is a model */ public boolean hasModel() { return model != null; } /** * Create a MultiSplitLayout with the specified model. * * #see setModel */ public MultiSplitLayout(Node model) { this.model = model; this.dividerSize = UIManager.getInt("SplitPane.dividerSize"); if (this.dividerSize == 0) { this.dividerSize = 7; } } public void addPropertyChangeListener(PropertyChangeListener listener) { if (listener != null) { pcs.addPropertyChangeListener(listener); } } public void removePropertyChangeListener(PropertyChangeListener listener) { if (listener != null) { pcs.removePropertyChangeListener(listener); } } public PropertyChangeListener[] getPropertyChangeListeners() { return pcs.getPropertyChangeListeners(); } private void firePCS(String propertyName, Object oldValue, Object newValue) { if (!(oldValue != null && newValue != null && oldValue.equals(newValue))) { pcs.firePropertyChange(propertyName, oldValue, newValue); } } /** * Return the root of the tree of Split, Leaf, and Divider nodes * that define this layout. * * @return the value of the model property * @see #setModel */ public Node getModel() { return model; } /** * Set the root of the tree of Split, Leaf, and Divider nodes * that define this layout. The model can be a Split node * (the typical case) or a Leaf. The default value of this * property is a Leaf named "default". * * @param model the root of the tree of Split, Leaf, and Divider node * @throws IllegalArgumentException if model is a Divider or null * @see #getModel */ public void setModel(Node model) { if ((model == null) || (model instanceof Divider)) { throw new IllegalArgumentException("invalid model"); } Node oldModel = getModel(); this.model = model; firePCS("model", oldModel, getModel()); } /** * Returns the width of Dividers in Split rows, and the height of * Dividers in Split columns. * * @return the value of the dividerSize property * @see #setDividerSize */ public int getDividerSize() { return dividerSize; } /** * Sets the width of Dividers in Split rows, and the height of * Dividers in Split columns. The default value of this property * is the same as for JSplitPane Dividers. * * @param dividerSize the size of dividers (pixels) * @throws IllegalArgumentException if dividerSize < 0 * @see #getDividerSize */ public void setDividerSize(int dividerSize) { if (dividerSize < 0) { throw new IllegalArgumentException("invalid dividerSize"); } int oldDividerSize = this.dividerSize; this.dividerSize = dividerSize; firePCS("dividerSize", new Integer( oldDividerSize ), new Integer( dividerSize )); } /** * @return the value of the floatingDividers property * @see #setFloatingDividers */ public boolean getFloatingDividers() { return floatingDividers; } /** * If true, Leaf node bounds match the corresponding component's * preferred size and Splits/Dividers are resized accordingly. * If false then the Dividers define the bounds of the adjacent * Split and Leaf nodes. Typically this property is set to false * after the (MultiSplitPane) user has dragged a Divider. * * @see #getFloatingDividers */ public void setFloatingDividers(boolean floatingDividers) { boolean oldFloatingDividers = this.floatingDividers; this.floatingDividers = floatingDividers; firePCS("floatingDividers", new Boolean( oldFloatingDividers ), new Boolean( floatingDividers )); } /** * @return the value of the removeDividers property * @see #setRemoveDividers */ public boolean getRemoveDividers() { return removeDividers; } /** * If true, the next divider is removed when a component is removed from the * layout. If false, only the node itself is removed. Normally the next * divider should be removed from the layout when a component is removed. * @param removeDividers true to removed the next divider whena component is * removed from teh layout */ public void setRemoveDividers( boolean removeDividers ) { boolean oldRemoveDividers = this.removeDividers; this.removeDividers = removeDividers; firePCS("removeDividers", new Boolean( oldRemoveDividers ), new Boolean( removeDividers )); } /** * Add a component to this MultiSplitLayout. The * name should match the name property of the Leaf * node that represents the bounds of child. After * layoutContainer() recomputes the bounds of all of the nodes in * the model, it will set this child's bounds to the bounds of the * Leaf node with name. Note: if a component was already * added with the same name, this method does not remove it from * its parent. * * @param name identifies the Leaf node that defines the child's bounds * @param child the component to be added * @see #removeLayoutComponent */ public void addLayoutComponent(String name, Component child) { if (name == null) { throw new IllegalArgumentException("name not specified"); } childMap.put(name, child); } /** * Removes the specified component from the layout. * * @param child the component to be removed * @see #addLayoutComponent */ public void removeLayoutComponent(Component child) { String name = getNameForComponent( child ); if ( name != null ) { childMap.remove( name ); } } /** * Removes the specified node from the layout. * * @param name the name of the component to be removed * @see #addLayoutComponent */ public void removeLayoutNode(String name) { if ( name != null ) { Node n; if ( !( model instanceof Split )) n = model; else n = getNodeForName( name ); childMap.remove(name); if ( n != null ) { Split s = n.getParent(); s.remove( n ); if (removeDividers) { while ( s.getChildren().size() < 2 ) { Split p = s.getParent(); if ( p == null ) { if ( s.getChildren().size() > 0 ) model = (Node)s.getChildren().get( 0 ); else model = null; return; } if ( s.getChildren().size() == 1 ) { Node next = s.getChildren().get( 0 ); p.replace( s, next ); next.setParent( p ); } else p.remove( s ); s = p; } } } else { childMap.remove( name ); } } } /** * Show/Hide nodes. Any dividers that are no longer required due to one of the * nodes being made visible/invisible are also shown/hidder. The visibility of * the component managed by the node is also changed by this method * @param name the node name * @param visible the new node visible state */ public void displayNode( String name, boolean visible ) { Node node = getNodeForName( name ); if ( node != null ) { Component comp = getComponentForNode( node ); comp.setVisible( visible ); node.setVisible( visible ); MultiSplitLayout.Split p = node.getParent(); if ( !visible ) { p.hide( node ); if ( !p.isVisible()) p.getParent().hide( p ); p.checkDividers( p ); // If the split has become invisible then the parent may also have a // divider that needs to be hidden. while ( !p.isVisible()) { p = p.getParent(); if ( p != null ) p.checkDividers( p ); else break; } } else p.restoreDividers( p ); } setFloatingDividers( false ); } private Component childForNode(Node node) { if (node instanceof Leaf) { Leaf leaf = (Leaf)node; String name = leaf.getName(); return (name != null) ? childMap.get(name) : null; } return null; } private Dimension preferredComponentSize(Node node) { if ( layoutMode == NO_MIN_SIZE_LAYOUT ) return new Dimension(0, 0); Component child = childForNode(node); return ((child != null) && child.isVisible() ) ? child.getPreferredSize() : new Dimension(0, 0); } private Dimension minimumComponentSize(Node node) { if ( layoutMode == NO_MIN_SIZE_LAYOUT ) return new Dimension(0, 0); Component child = childForNode(node); return ((child != null) && child.isVisible() ) ? child.getMinimumSize() : new Dimension(0, 0); } private Dimension preferredNodeSize(Node root) { if (root instanceof Leaf) { return preferredComponentSize(root); } else if (root instanceof Divider) { if ( !((Divider)root).isVisible()) return new Dimension(0,0); int divSize = getDividerSize(); return new Dimension(divSize, divSize); } else { Split split = (Split)root; List splitChildren = split.getChildren(); int width = 0; int height = 0; if (split.isRowLayout()) { for(Node splitChild : splitChildren) { if ( !splitChild.isVisible()) continue; Dimension size = preferredNodeSize(splitChild); width += size.width; height = Math.max(height, size.height); } } else { for(Node splitChild : splitChildren) { if ( !splitChild.isVisible()) continue; Dimension size = preferredNodeSize(splitChild); width = Math.max(width, size.width); height += size.height; } } return new Dimension(width, height); } } /** * Get the minimum size of this node. Sums the minumum sizes of rows or * columns to get the overall minimum size for the layout node, including the * dividers. * @param root the node whose size is required. * @return the minimum size. */ public Dimension minimumNodeSize(Node root) { assert( root.isVisible ); if (root instanceof Leaf) { if ( layoutMode == NO_MIN_SIZE_LAYOUT ) return new Dimension(0, 0); Component child = childForNode(root); return ((child != null) && child.isVisible() ) ? child.getMinimumSize() : new Dimension(0, 0); } else if (root instanceof Divider) { if ( !((Divider)root).isVisible() ) return new Dimension(0,0); int divSize = getDividerSize(); return new Dimension(divSize, divSize); } else { Split split = (Split)root; List splitChildren = split.getChildren(); int width = 0; int height = 0; if (split.isRowLayout()) { for(Node splitChild : splitChildren) { if ( !splitChild.isVisible()) continue; Dimension size = minimumNodeSize(splitChild); width += size.width; height = Math.max(height, size.height); } } else { for(Node splitChild : splitChildren) { if ( !splitChild.isVisible()) continue; Dimension size = minimumNodeSize(splitChild); width = Math.max(width, size.width); height += size.height; } } return new Dimension(width, height); } } /** * Get the maximum size of this node. Sums the minumum sizes of rows or * columns to get the overall maximum size for the layout node, including the * dividers. * @param root the node whose size is required. * @return the minimum size. */ public Dimension maximumNodeSize(Node root) { assert( root.isVisible ); if (root instanceof Leaf) { Component child = childForNode(root); return ((child != null) && child.isVisible() ) ? child.getMaximumSize() : new Dimension(0, 0); } else if (root instanceof Divider) { if ( !((Divider)root).isVisible() ) return new Dimension(0,0); int divSize = getDividerSize(); return new Dimension(divSize, divSize); } else { Split split = (Split)root; List splitChildren = split.getChildren(); int width = Integer.MAX_VALUE; int height = Integer.MAX_VALUE; if (split.isRowLayout()) { for(Node splitChild : splitChildren) { if ( !splitChild.isVisible()) continue; Dimension size = maximumNodeSize(splitChild); width += size.width; height = Math.min(height, size.height); } } else { for(Node splitChild : splitChildren) { if ( !splitChild.isVisible()) continue; Dimension size = maximumNodeSize(splitChild); width = Math.min(width, size.width); height += size.height; } } return new Dimension(width, height); } } private Dimension sizeWithInsets(Container parent, Dimension size) { Insets insets = parent.getInsets(); int width = size.width + insets.left + insets.right; int height = size.height + insets.top + insets.bottom; return new Dimension(width, height); } public Dimension preferredLayoutSize(Container parent) { Dimension size = preferredNodeSize(getModel()); return sizeWithInsets(parent, size); } public Dimension minimumLayoutSize(Container parent) { Dimension size = minimumNodeSize(getModel()); return sizeWithInsets(parent, size); } private Rectangle boundsWithYandHeight(Rectangle bounds, double y, double height) { Rectangle r = new Rectangle(); r.setBounds((int)(bounds.getX()), (int)y, (int)(bounds.getWidth()), (int)height); return r; } private Rectangle boundsWithXandWidth(Rectangle bounds, double x, double width) { Rectangle r = new Rectangle(); r.setBounds((int)x, (int)(bounds.getY()), (int)width, (int)(bounds.getHeight())); return r; } private void minimizeSplitBounds(Split split, Rectangle bounds) { assert ( split.isVisible()); Rectangle splitBounds = new Rectangle(bounds.x, bounds.y, 0, 0); List splitChildren = split.getChildren(); Node lastChild = null; int lastVisibleChildIdx = splitChildren.size(); do { lastVisibleChildIdx--; lastChild = splitChildren.get( lastVisibleChildIdx ); } while (( lastVisibleChildIdx > 0 ) && !lastChild.isVisible()); if ( !lastChild.isVisible()) return; if ( lastVisibleChildIdx >= 0 ) { Rectangle lastChildBounds = lastChild.getBounds(); if (split.isRowLayout()) { int lastChildMaxX = lastChildBounds.x + lastChildBounds.width; splitBounds.add(lastChildMaxX, bounds.y + bounds.height); } else { int lastChildMaxY = lastChildBounds.y + lastChildBounds.height; splitBounds.add(bounds.x + bounds.width, lastChildMaxY); } } split.setBounds(splitBounds); } private void layoutShrink(Split split, Rectangle bounds) { Rectangle splitBounds = split.getBounds(); ListIterator splitChildren = split.getChildren().listIterator(); Node lastWeightedChild = split.lastWeightedChild(); if (split.isRowLayout()) { int totalWidth = 0; // sum of the children's widths int minWeightedWidth = 0; // sum of the weighted childrens' min widths int totalWeightedWidth = 0; // sum of the weighted childrens' widths for(Node splitChild : split.getChildren()) { if ( !splitChild.isVisible()) continue; int nodeWidth = splitChild.getBounds().width; int nodeMinWidth = 0; if (( layoutMode == USER_MIN_SIZE_LAYOUT ) && !( splitChild instanceof Divider )) nodeMinWidth = userMinSize; else if ( layoutMode == DEFAULT_LAYOUT ) nodeMinWidth = Math.min(nodeWidth, minimumNodeSize(splitChild).width); totalWidth += nodeWidth; if (splitChild.getWeight() > 0.0) { minWeightedWidth += nodeMinWidth; totalWeightedWidth += nodeWidth; } } double x = bounds.getX(); double extraWidth = splitBounds.getWidth() - bounds.getWidth(); double availableWidth = extraWidth; boolean onlyShrinkWeightedComponents = (totalWeightedWidth - minWeightedWidth) > extraWidth; while(splitChildren.hasNext()) { Node splitChild = splitChildren.next(); if ( !splitChild.isVisible()) { if ( splitChildren.hasNext()) splitChildren.next(); continue; } Rectangle splitChildBounds = splitChild.getBounds(); double minSplitChildWidth = 0.0; if (( layoutMode == USER_MIN_SIZE_LAYOUT ) && !( splitChild instanceof Divider )) minSplitChildWidth = userMinSize; else if ( layoutMode == DEFAULT_LAYOUT ) minSplitChildWidth = minimumNodeSize(splitChild).getWidth(); double splitChildWeight = (onlyShrinkWeightedComponents) ? splitChild.getWeight() : (splitChildBounds.getWidth() / (double)totalWidth); if (!splitChildren.hasNext()) { double newWidth = Math.max(minSplitChildWidth, bounds.getMaxX() - x); Rectangle newSplitChildBounds = boundsWithXandWidth(bounds, x, newWidth); layout2(splitChild, newSplitChildBounds); } if ( splitChild.isVisible()) { if ((availableWidth > 0.0) && (splitChildWeight > 0.0)) { double oldWidth = splitChildBounds.getWidth(); double newWidth; if ( splitChild instanceof Divider ) { newWidth = dividerSize; } else { double allocatedWidth = Math.rint(splitChildWeight * extraWidth); newWidth = Math.max(minSplitChildWidth, oldWidth - allocatedWidth); } Rectangle newSplitChildBounds = boundsWithXandWidth(bounds, x, newWidth); layout2(splitChild, newSplitChildBounds); availableWidth -= (oldWidth - splitChild.getBounds().getWidth()); } else { double existingWidth = splitChildBounds.getWidth(); Rectangle newSplitChildBounds = boundsWithXandWidth(bounds, x, existingWidth); layout2(splitChild, newSplitChildBounds); } x = splitChild.getBounds().getMaxX(); } } } else { int totalHeight = 0; // sum of the children's heights int minWeightedHeight = 0; // sum of the weighted childrens' min heights int totalWeightedHeight = 0; // sum of the weighted childrens' heights for(Node splitChild : split.getChildren()) { if ( !splitChild.isVisible()) continue; int nodeHeight = splitChild.getBounds().height; int nodeMinHeight = 0; if (( layoutMode == USER_MIN_SIZE_LAYOUT ) && !( splitChild instanceof Divider )) nodeMinHeight = userMinSize; else if ( layoutMode == DEFAULT_LAYOUT ) nodeMinHeight = Math.min(nodeHeight, minimumNodeSize(splitChild).height); totalHeight += nodeHeight; if (splitChild.getWeight() > 0.0) { minWeightedHeight += nodeMinHeight; totalWeightedHeight += nodeHeight; } } double y = bounds.getY(); double extraHeight = splitBounds.getHeight() - bounds.getHeight(); double availableHeight = extraHeight; boolean onlyShrinkWeightedComponents = (totalWeightedHeight - minWeightedHeight) > extraHeight; while(splitChildren.hasNext()) { Node splitChild = splitChildren.next(); if ( !splitChild.isVisible()) { if ( splitChildren.hasNext()) splitChildren.next(); continue; } Rectangle splitChildBounds = splitChild.getBounds(); double minSplitChildHeight = 0.0; if (( layoutMode == USER_MIN_SIZE_LAYOUT ) && !( splitChild instanceof Divider )) minSplitChildHeight = userMinSize; else if ( layoutMode == DEFAULT_LAYOUT ) minSplitChildHeight = minimumNodeSize(splitChild).getHeight(); double splitChildWeight = (onlyShrinkWeightedComponents) ? splitChild.getWeight() : (splitChildBounds.getHeight() / (double)totalHeight); // If this split child is the last visible node it should all the // remaining space if ( !hasMoreVisibleSiblings( splitChild )) { double oldHeight = splitChildBounds.getHeight(); double newHeight; if ( splitChild instanceof Divider ) { newHeight = dividerSize; } else { newHeight = Math.max(minSplitChildHeight, bounds.getMaxY() - y); } Rectangle newSplitChildBounds = boundsWithYandHeight(bounds, y, newHeight); layout2(splitChild, newSplitChildBounds); availableHeight -= (oldHeight - splitChild.getBounds().getHeight()); } else /*if ( splitChild.isVisible()) {*/ if ((availableHeight > 0.0) && (splitChildWeight > 0.0)) { double newHeight; double oldHeight = splitChildBounds.getHeight(); // Prevent the divider from shrinking if ( splitChild instanceof Divider ) { newHeight = dividerSize; } else { double allocatedHeight = Math.rint(splitChildWeight * extraHeight); newHeight = Math.max(minSplitChildHeight, oldHeight - allocatedHeight); } Rectangle newSplitChildBounds = boundsWithYandHeight(bounds, y, newHeight); layout2(splitChild, newSplitChildBounds); availableHeight -= (oldHeight - splitChild.getBounds().getHeight()); } else { double existingHeight = splitChildBounds.getHeight(); Rectangle newSplitChildBounds = boundsWithYandHeight(bounds, y, existingHeight); layout2(splitChild, newSplitChildBounds); } y = splitChild.getBounds().getMaxY(); } } /* The bounds of the Split node root are set to be * big enough to contain all of its children. Since * Leaf children can't be reduced below their * (corresponding java.awt.Component) minimum sizes, * the size of the Split's bounds maybe be larger than * the bounds we were asked to fit within. */ minimizeSplitBounds(split, bounds); } /** * Check if the specified node has any following visible siblings * @param splitChild the node to check * @param true if there are visible children following */ private boolean hasMoreVisibleSiblings( Node splitChild ) { Node next = splitChild.nextSibling(); if ( next == null ) return false; do { if ( next.isVisible()) return true; next = next.nextSibling(); } while ( next != null ); return false; } private void layoutGrow(Split split, Rectangle bounds) { Rectangle splitBounds = split.getBounds(); ListIterator splitChildren = split.getChildren().listIterator(); Node lastWeightedChild = split.lastWeightedChild(); /* Layout the Split's child Nodes' along the X axis. The bounds * of each child will have the same y coordinate and height as the * layoutGrow() bounds argument. Extra width is allocated to the * to each child with a non-zero weight: * newWidth = currentWidth + (extraWidth * splitChild.getWeight()) * Any extraWidth "left over" (that's availableWidth in the loop * below) is given to the last child. Note that Dividers always * have a weight of zero, and they're never the last child. */ if (split.isRowLayout()) { double x = bounds.getX(); double extraWidth = bounds.getWidth() - splitBounds.getWidth(); double availableWidth = extraWidth; while(splitChildren.hasNext()) { Node splitChild = splitChildren.next(); if ( !splitChild.isVisible()) { continue; } Rectangle splitChildBounds = splitChild.getBounds(); double splitChildWeight = splitChild.getWeight(); if ( !hasMoreVisibleSiblings( splitChild )) { double newWidth = bounds.getMaxX() - x; Rectangle newSplitChildBounds = boundsWithXandWidth(bounds, x, newWidth); layout2(splitChild, newSplitChildBounds); } else if ((availableWidth > 0.0) && (splitChildWeight > 0.0)) { double allocatedWidth = (splitChild.equals(lastWeightedChild)) ? availableWidth : Math.rint(splitChildWeight * extraWidth); double newWidth = splitChildBounds.getWidth() + allocatedWidth; Rectangle newSplitChildBounds = boundsWithXandWidth(bounds, x, newWidth); layout2(splitChild, newSplitChildBounds); availableWidth -= allocatedWidth; } else { double existingWidth = splitChildBounds.getWidth(); Rectangle newSplitChildBounds = boundsWithXandWidth(bounds, x, existingWidth); layout2(splitChild, newSplitChildBounds); } x = splitChild.getBounds().getMaxX(); } } /* Layout the Split's child Nodes' along the Y axis. The bounds * of each child will have the same x coordinate and width as the * layoutGrow() bounds argument. Extra height is allocated to the * to each child with a non-zero weight: * newHeight = currentHeight + (extraHeight * splitChild.getWeight()) * Any extraHeight "left over" (that's availableHeight in the loop * below) is given to the last child. Note that Dividers always * have a weight of zero, and they're never the last child. */ else { double y = bounds.getY(); double extraHeight = bounds.getHeight() - splitBounds.getHeight(); double availableHeight = extraHeight; while(splitChildren.hasNext()) { Node splitChild = splitChildren.next(); if ( !splitChild.isVisible()) { continue; } Rectangle splitChildBounds = splitChild.getBounds(); double splitChildWeight = splitChild.getWeight(); if (!splitChildren.hasNext()) { double newHeight = bounds.getMaxY() - y; Rectangle newSplitChildBounds = boundsWithYandHeight(bounds, y, newHeight); layout2(splitChild, newSplitChildBounds); } else if ((availableHeight > 0.0) && (splitChildWeight > 0.0)) { double allocatedHeight = (splitChild.equals(lastWeightedChild)) ? availableHeight : Math.rint(splitChildWeight * extraHeight); double newHeight = splitChildBounds.getHeight() + allocatedHeight; Rectangle newSplitChildBounds = boundsWithYandHeight(bounds, y, newHeight); layout2(splitChild, newSplitChildBounds); availableHeight -= allocatedHeight; } else { double existingHeight = splitChildBounds.getHeight(); Rectangle newSplitChildBounds = boundsWithYandHeight(bounds, y, existingHeight); layout2(splitChild, newSplitChildBounds); } y = splitChild.getBounds().getMaxY(); } } } /* Second pass of the layout algorithm: branch to layoutGrow/Shrink * as needed. */ private void layout2(Node root, Rectangle bounds) { if (root instanceof Leaf) { Component child = childForNode(root); if (child != null) { child.setBounds(bounds); } root.setBounds(bounds); } else if (root instanceof Divider) { root.setBounds(bounds); } else if (root instanceof Split) { Split split = (Split)root; boolean grow = split.isRowLayout() ? (split.getBounds().width <= bounds.width) : (split.getBounds().height <= bounds.height); if (grow) { layoutGrow(split, bounds); root.setBounds(bounds); } else { layoutShrink(split, bounds); // split.setBounds() called in layoutShrink() } } } /* First pass of the layout algorithm. * * If the Dividers are "floating" then set the bounds of each * node to accomodate the preferred size of all of the * Leaf's java.awt.Components. Otherwise, just set the bounds * of each Leaf/Split node so that it's to the left of (for * Split.isRowLayout() Split children) or directly above * the Divider that follows. * * This pass sets the bounds of each Node in the layout model. It * does not resize any of the parent Container's * (java.awt.Component) children. That's done in the second pass, * see layoutGrow() and layoutShrink(). */ private void layout1(Node root, Rectangle bounds) { if (root instanceof Leaf) { root.setBounds(bounds); } else if (root instanceof Split) { Split split = (Split)root; Iterator splitChildren = split.getChildren().iterator(); Rectangle childBounds = null; int divSize = getDividerSize(); boolean initSplit = false; /* Layout the Split's child Nodes' along the X axis. The bounds * of each child will have the same y coordinate and height as the * layout1() bounds argument. * * Note: the column layout code - that's the "else" clause below * this if, is identical to the X axis (rowLayout) code below. */ if (split.isRowLayout()) { double x = bounds.getX(); while(splitChildren.hasNext()) { Node splitChild = splitChildren.next(); if ( !splitChild.isVisible()) { if ( splitChildren.hasNext()) splitChildren.next(); continue; } Divider dividerChild = (splitChildren.hasNext()) ? (Divider)(splitChildren.next()) : null; double childWidth = 0.0; if (getFloatingDividers()) { childWidth = preferredNodeSize(splitChild).getWidth(); } else { if ((dividerChild != null) && dividerChild.isVisible()) { double cw = dividerChild.getBounds().getX() - x; if ( cw > 0.0 ) childWidth = cw; else { childWidth = preferredNodeSize(splitChild).getWidth(); initSplit = true; } } else { childWidth = split.getBounds().getMaxX() - x; } } childBounds = boundsWithXandWidth(bounds, x, childWidth); layout1(splitChild, childBounds); if (( initSplit || getFloatingDividers()) && (dividerChild != null) && dividerChild.isVisible()) { double dividerX = childBounds.getMaxX(); Rectangle dividerBounds; dividerBounds = boundsWithXandWidth(bounds, dividerX, divSize); dividerChild.setBounds(dividerBounds); } if ((dividerChild != null) && dividerChild.isVisible()) { x = dividerChild.getBounds().getMaxX(); } } } /* Layout the Split's child Nodes' along the Y axis. The bounds * of each child will have the same x coordinate and width as the * layout1() bounds argument. The algorithm is identical to what's * explained above, for the X axis case. */ else { double y = bounds.getY(); while(splitChildren.hasNext()) { Node splitChild = splitChildren.next(); if ( !splitChild.isVisible()) { if ( splitChildren.hasNext()) splitChildren.next(); continue; } Divider dividerChild = (splitChildren.hasNext()) ? (Divider)(splitChildren.next()) : null; double childHeight = 0.0; if (getFloatingDividers()) { childHeight = preferredNodeSize(splitChild).getHeight(); } else { if ((dividerChild != null) && dividerChild.isVisible()) { double cy = dividerChild.getBounds().getY() - y; if ( cy > 0.0 ) childHeight = cy; else { childHeight = preferredNodeSize(splitChild).getHeight(); initSplit = true; } } else { childHeight = split.getBounds().getMaxY() - y; } } childBounds = boundsWithYandHeight(bounds, y, childHeight); layout1(splitChild, childBounds); if (( initSplit || getFloatingDividers()) && (dividerChild != null) && dividerChild.isVisible()) { double dividerY = childBounds.getMaxY(); Rectangle dividerBounds = boundsWithYandHeight(bounds, dividerY, divSize); dividerChild.setBounds(dividerBounds); } if ((dividerChild != null) && dividerChild.isVisible()) { y = dividerChild.getBounds().getMaxY(); } } } /* The bounds of the Split node root are set to be just * big enough to contain all of its children, but only * along the axis it's allocating space on. That's * X for rows, Y for columns. The second pass of the * layout algorithm - see layoutShrink()/layoutGrow() * allocates extra space. */ minimizeSplitBounds(split, bounds); } } /** * Get the layout mode * @return current layout mode */ public int getLayoutMode() { return layoutMode; } /** * Set the layout mode. By default this layout uses the preferred and minimum * sizes of the child components. To ignore the minimum size set the layout * mode to MultiSplitLayout.LAYOUT_NO_MIN_SIZE. * @param layoutMode the layout mode *