From fbe42caf62eabca70b22dad33ba33985b6e9f9c8 Mon Sep 17 00:00:00 2001 From: lizzardo Date: Sat, 29 Dec 2012 08:55:47 -0800 Subject: [PATCH] Update launch4j to 3.0.2 --- 3rdparty/launch4j/LICENSE.txt | 2 +- 3rdparty/launch4j/current_version.txt | 2 +- .../launch4j/demo/ConsoleApp/ConsoleApp.exe | Bin 26070 -> 26582 bytes .../launch4j/demo/ConsoleApp/ConsoleApp.jar | Bin 2006 -> 2006 bytes .../launch4j/demo/SimpleApp/SimpleApp.exe | Bin 34867 -> 35379 bytes .../launch4j/demo/SimpleApp/SimpleApp.jar | Bin 3123 -> 3123 bytes 3rdparty/launch4j/head/LICENSE.txt | 44 +- 3rdparty/launch4j/head/head.o | Bin 23951 -> 24193 bytes 3rdparty/launch4j/head_src/LICENSE.txt | 46 +- 3rdparty/launch4j/head_src/head.c | 13 +- 3rdparty/launch4j/launch4j.exe | Bin 177152 -> 177664 bytes 3rdparty/launch4j/launch4j.jar | Bin 181810 -> 181999 bytes 3rdparty/launch4j/launch4jc.exe | Bin 23552 -> 24064 bytes 3rdparty/launch4j/manifest/uac.exe.manifest | 22 +- .../launch4j/manifest/xp-themes.exe.manifest | 26 +- 3rdparty/launch4j/src/launch4j.properties | 4 +- .../launch4j/src/net/sf/launch4j/Main.java | 4 +- .../launch4j/src/net/sf/launch4j/Util.java | 23 +- .../sf/launch4j/binding/JComboBoxBinding.java | 238 ++++---- .../sf/launch4j/config/SingleInstance.java | 148 ++--- .../src/net/sf/launch4j/form/BasicForm.java | 566 +++++++++--------- .../src/net/sf/launch4j/form/JreForm.java | 532 ++++++++-------- .../net/sf/launch4j/form/MessagesForm.java | 366 +++++------ .../sf/launch4j/form/SingleInstanceForm.java | 282 ++++----- .../net/sf/launch4j/formimpl/MainFrame.java | 2 +- .../formimpl/SingleInstanceFormImpl.java | 108 ++-- 3rdparty/launch4j/web/changelog.html | 62 +- 3rdparty/launch4j/web/docs.html | 116 ++-- 3rdparty/launch4j/web/index.html | 10 +- 3rdparty/launch4j/web/links.html | 10 +- 30 files changed, 1328 insertions(+), 1298 deletions(-) diff --git a/3rdparty/launch4j/LICENSE.txt b/3rdparty/launch4j/LICENSE.txt index 82223322..742ccac3 100644 --- a/3rdparty/launch4j/LICENSE.txt +++ b/3rdparty/launch4j/LICENSE.txt @@ -1,7 +1,7 @@ Launch4j (http://launch4j.sourceforge.net/) Cross-platform Java application wrapper for creating Windows native executables. -Copyright (c) 2004, 2008 Grzegorz Kowal +Copyright (c) 2004, 2011 Grzegorz Kowal All rights reserved. diff --git a/3rdparty/launch4j/current_version.txt b/3rdparty/launch4j/current_version.txt index 31ae3935..bd94f131 100644 --- a/3rdparty/launch4j/current_version.txt +++ b/3rdparty/launch4j/current_version.txt @@ -1 +1 @@ -The current version is 3.0.1 \ No newline at end of file +The current version is 3.0.2 \ No newline at end of file diff --git a/3rdparty/launch4j/demo/ConsoleApp/ConsoleApp.exe b/3rdparty/launch4j/demo/ConsoleApp/ConsoleApp.exe index d8a8f75d03e8acc0522e20e4c1021dd2b7a63c3d..2af8a2cf2323772844ac9372799b94c40007fdd8 100644 GIT binary patch delta 4112 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 delta 3925 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 diff --git a/3rdparty/launch4j/demo/ConsoleApp/ConsoleApp.jar b/3rdparty/launch4j/demo/ConsoleApp/ConsoleApp.jar index 6d4b126e6f18ac46a55cfc07e6d4fd2f590ee98d..182e16e8c8ee172eb6b269ae81d7c881f9561147 100644 GIT binary patch delta 138 zcmcb{e~q6nz?+$civa{IS18#{fSg diff --git a/3rdparty/launch4j/demo/SimpleApp/SimpleApp.exe b/3rdparty/launch4j/demo/SimpleApp/SimpleApp.exe index 1a75fc298e4d85c4a84fa3596f211c679df69b39..34b3218b0123b76446ba326362ede8170ac8a613 100644 GIT binary patch delta 4678 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 z zMQ|ZFF{BCGfMtd|kC%Z)kx6?>;eJKDY9}isa*cek%of9HMFN=*TNSA!8ICE^hyq3x ziDU^xg)|Ty*g_IjP2!euHn9pJQ|ZPM_$I`n8O4&LA7Kzv7^C}g30Oj7==lm>l%SYkhK$p{&#ML@3KGJqcjV2c$V}cVk z*sShlj6Nitb&^Ar$vZrb0h>nP3t@_~oJ@meWhGezZe=`Xbxs*g|4{%pltm;Ea#Yhv z2(+js2d~UWRvpa7ui${HfL_Um5tWUe$%7?fNs6vKY>nDm4z)?Bh0S4c*bY5mvGl7P zI1`pkN;ia;(*8V{8XgsP0Fjt{hsQRH8G9!WmWJok7xSPyyn%3VJ6s!f9os;Hq%+75 zxsVj`3%WlSejPEN7~x!mR;3+>WH5*hWa{+Tt=SmF+FOGIW26q}hzzirwPeFgwV6B) zcC{|I3W0@ZZ1q@a_rH*xLzLrM#J)_EG-aqcG=dsd@86;yCit)tg0AgE(B*Aa#g z=W5c^fIY?fNcej;L`N3T8@W&$nH7CT3{cBAk6^=YJfb{s)3H`yz4l=)ycU^Fo`=(s zWh5QKGmhr@`Uq z0jAl9oDA6Y>hDX=(p2^~#=ld(~O z$5SLJ2bW`$(>AjwtaHa6oHOFCRVcx!wHT9gI^Shd7G`$}l*Q@o3zD&BEo{j3ma`17 zVyru-qnLS`a+kF*(VA@wi}HI!VR+7inRPpzL^mx97+O%F^XO@X7i{C(&EkZ+azd+kE3vKynYBE!?Oy5Y7pCFhV0=n=T_Q_V)l$IOLRp5_6X1G$BUudf z3Hpd9ar1VORFAEaX_qFzwqkwKD=5duUNgRsEN8_7r$G@r!2?5$%o$=$Fqn`)_Zr|z zLSkAkx{*%i=LrnxIHqim#A)KJCvH*2<}PkJoB*Y!gr^h;Vj1uU8|_}Nv*Ss$c})Cf zcY)OFv+%&mg|Ff<_IdLD?U}?M0Ne^VqK{I&Q!X9epsAxmR$E?5xV>NwHRI-<0 zCNuI7e3xXVgK?0UoS*4Ii@uF>Fjf{8A1Q9c;9R1TZA@Vs_Z#7bh)fsV859v;86&Ejk1e6<#vf(0l<8aO-0%7N#)Hx{GD(-eeM zkP)9rnGg|&VpMNIHBNlhOQn$hNxw4C{v( z7#X`sBK?91%?z!^e6XghDTIVJ10zm0^eML7m~gpIHU(u^9GH=6AffO~szDRcW50({q=_e$tw)lF@hKC2(acQg|EV;?{p~`A)0fp)p=S< z-iMb8O2Ya-LoE&(Oi;BID z6qlLkVg&0W5~TDQT5t}YI% zeFNuV8Bf{{%gJx>v~aCA3_z;tD!c2fT-y&`TdH`gj&NM_%|owx8&gehzJ@7x&$4pD zpO1LGkKx6~;%O`0i7IY5$ja+GcGkg`s^kY5*v)G12swrQ!AzP&lc8)l-fgW2t=0eB zni{RSf~%V+ZJ4>&?~OXEYbC8AZ_N(%bJaZJqF^9X-#wUw;QEJxjjuyiZMX{qoTC_SIkrrnhbN>%SP$Yf; diff --git a/3rdparty/launch4j/demo/SimpleApp/SimpleApp.jar b/3rdparty/launch4j/demo/SimpleApp/SimpleApp.jar index f02c6133b7d38955cf3503afb1d6142265f91f67..31dbf55eb8e4a96bd9d7fc832b6b2a235b9e245b 100644 GIT binary patch delta 157 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 B&bI&n delta 5068 zcmY+IeN@y{8prQ%L_}i)WI&7&1|9GX5zz1@&T0s$0Vx9J8z};6x(X5)dDM}Fa~y|R z(~HOTWlP&#PaRDc$8Axh!9z!Sam|x%WzvdeAxB$v>14av&VKKG_&v4$@#Dkyd4KMm zA7E{(v9rY(lw$-4^{*~(*PzFex+Vy53g2CstVK~{5yCFSvZT`Ds$!D#b1R;W6L-yf zx_?_gA*@Y@&qqX@iHGPaa0J{^F7<7$^C5K+a#Q5YjQUl6zyG{`3Ri$*^n*FBO^zV# z<}M2IJ&7WozbGG<&7swY?!utc1CXWnh{qNhQWq?PheSE8h7b>ZbJ_c}>b&-e2|MmNukx+QbzFYj<(xP^i*E7DuI{hH@(Rm$C3s>&o~g{nlVwM;nmCG06j zxErQIlC6EQ2jscf@U)&8%32uIJpEwnAN)zPM?FJMeB{d7 z?y;r1H*ZgAJ0ryOK+nWST-6Qk+y*^prXv_<;mYZ|FYcm4Q`$FMT43pp4;vO^n5C7qr(SG zz@T= z_bqZ|%)YR$ujx!sOHFm_k_?Nr8Z9y*HpVz8vtkb$|B>CX!;DVZ-@d|9eN(QrM_U%$ zlsoKOkZxd{N?I6~K4{KY$TQK=e9a;c#KlN`@zAr3t^zdfm zBl+dyruHGtcY(i zeBR*+X@(Id7mn-+f3@51f0)vCItYFD9z}8AaalNOO5p4F{Qfgu**Gd;@CKl|ahNVx zO&8hey)Y`uVqB14k4X>nU4<2&Pgp~g^@L0vd%^fp`o~tqI`ED`U zqUt+A6mb~zjJ7s`hU?f?w%%q+j1nSETb}}D=!nInIWa^DaE2BuL7AHV0Q!xl4swKF zCy0XYv-WQg#Rd&EW0OG?`zmOT&e8;;;W|Ln{>LEa0&VUAF4J@$MB2#5%q>g?(H3Td zvb0|jQv>@og63-LTdWO?79vM$lRyhKWrJwHbDh9kN(iFD8<`qF)azalg&YLs>4^71 zl=?1+QvV2=s;$CiE(<(LqpVuKfKvZNOh;B(ch=Q+!Dz#rXh+6Fh zQAGGKAzskdC=jhW1w_^-LA1eHtmT5H;zu4XbRmnypeM9e4ocVbB8Vwr*x?J!^YF&k2>~ZP02>-+*Z1UJzyO7iSLlD-aDA z8;ANdNj!^>gJ`CiAPUY0(dS?>XcCG9iWQ)hx||0@t)2u?;cFl&(gmU#4_WIE6J2Fz zFpwO>@P!HwVJ(4a98)@onwi1cEYMQjOfHC8C}Qh!5Diieq9fi)R`ve#0qOPF0m{&6 zI$663qBmSGC{tSpk1*eG!$6RcC6#F!h+23WM1}L17BN+ToYYMnkkaf2(H4%e;{~?< z9Yl-kWbFosBDz`op2}48~WG1wO=m*Sr5S?c_TW5i2)pJ=}2wJ3D ztpPo+$pfMn*HO?4t-T9!(n3B2Qm>zbX!h%@S;w1&$AC(8a2lvYQwE4;U&yoqRIaTX zK~%%Z)?J`A+WLkPS8Kcsq86;lCJhBqGb2DW`!gUamk)YY$F2fV>{<{-RI=s;Wof?- zrfYqK-~Vp0qbM9VHXy$w4$=CqPViG4Sx}kg49C&zm!1ZeLiJ1 pWhK>BWz$(vJ~rj^e^KLR*Z&GC*2p&tRvKr$VTBa~{|CU9XQTiC diff --git a/3rdparty/launch4j/head_src/LICENSE.txt b/3rdparty/launch4j/head_src/LICENSE.txt index 2805f412..607996f2 100644 --- a/3rdparty/launch4j/head_src/LICENSE.txt +++ b/3rdparty/launch4j/head_src/LICENSE.txt @@ -1,23 +1,23 @@ -Copyright (c) 2004, 2008 Grzegorz Kowal - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -Except as contained in this notice, the name(s) of the above copyright holders -shall not be used in advertising or otherwise to promote the sale, use or other -dealings in this Software without prior written authorization. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. +Copyright (c) 2004, 2011 Grzegorz Kowal + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +Except as contained in this notice, the name(s) of the above copyright holders +shall not be used in advertising or otherwise to promote the sale, use or other +dealings in this Software without prior written authorization. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/3rdparty/launch4j/head_src/head.c b/3rdparty/launch4j/head_src/head.c index fe2ff090..10ad509d 100644 --- a/3rdparty/launch4j/head_src/head.c +++ b/3rdparty/launch4j/head_src/head.c @@ -446,7 +446,7 @@ BOOL expandVars(char *dst, const char *src, const char *exePath, const int pathL *varName = 0; strncat(varName, start + 1, end - start - 1); // Remember value start for logging - char *varValue = dst + strlen(dst); + char *currentVarValue = dst + strlen(dst); if (strcmp(varName, "EXEDIR") == 0) { strncat(dst, exePath, pathLen); } else if (strcmp(varName, "EXEFILE") == 0) { @@ -460,7 +460,7 @@ BOOL expandVars(char *dst, const char *src, const char *exePath, const int pathL } else if (GetEnvironmentVariable(varName, varValue, MAX_VAR_SIZE) > 0) { strcat(dst, varValue); } - debug("Substitute:\t%s = %s\n", varName, varValue); + debug("Substitute:\t%s = %s\n", varName, currentVarValue); src = end + 1; } else { // Copy remaining content @@ -485,12 +485,19 @@ void appendHeapSizes(char *dst) { void appendHeapSize(char *dst, const int absID, const int percentID, const DWORD freeMemory, const char *option) { - const int mb = 1048576; // 1 MB + const int mb = 1048576; // 1 MB + const int mbLimit32 = 1500; // Max heap size in MB on 32-bit JREs int abs = loadInt(absID); int percent = loadInt(percentID); int free = (long long) freeMemory * percent / (100 * mb); // 100% * 1 MB int size = free > abs ? free : abs; if (size > 0) { + if (!(foundJava & KEY_WOW64_64KEY) && size > mbLimit32) { + debug("Heap limit:\tReduced %d MB heap size to 32-bit maximum %d MB\n", + size, mbLimit32); + size = mbLimit32; + } + debug("Heap %s:\t%d MB / %d%%, Free: %d MB, Heap size: %d MB\n", option, abs, percent, freeMemory / mb, size); strcat(dst, option); diff --git a/3rdparty/launch4j/launch4j.exe b/3rdparty/launch4j/launch4j.exe index 0e2eb2ba59458ee9bc75f5a4a9414ab993e0a3ce..84bbacd5caecf1ebbefeab77827b498fbbdbffe8 100644 GIT binary patch delta 4523 zcmZu#4Oo;_7XI#K!~q6ofB}XDWPlGw{uvM$CsN6mL~f2V{ScZB!Y;bxR#r4t!=BW<@TfXu~1pMYDGJH&NqPW<~+|Z_uliKbI*Ct zx#!*oyXVp2ZF+Gczp-W0KVI?8n2JIjey71xEID!J z2-fpkA_%={D;CyTYXzZ3g=-D?^~P@nTx7G@eUQdYtgh`o{yAeWL7wVCUNQ+@RHeo1 zCJBP$x_13zZns;`Di(zPM{x9xO7ufz^GW9nQ6&$;cdB%D7-GhRv)zzC#^m$VWI<>i zRLQ&H;V~I}c`57|lgATE;oKOpS|}9+d7wlPq^Q=K62WPZ|5AwPOIPG}T2!M+wG<-Q zQFO1U+NGj_N|c=ig5d0vpG1r^Qj`y&U(P9_N($)+Dix$jI>NjRRo**zZVBA*p1@~M zhSag5E?;p)<6JAMoD)QO2x`Yhvmt02JBgi#<6{?db1|f(MiB)0l=JdZ zsP#!tNI_Sd2X#&>?&B|LN(HAzlugQ_8YvL)BabhIb{`XS!$qH&tQS&!!-6`{M=6`| z&4X&%^dQ{lo5Z$5lW!<EIhf}91S{K)9g+>3-x5jE!PxFhkPk{2jKouk)w zQVKDmMaLQ24EcPvAnY5O^HZcqS#av$q|MEA7F89dflNiDX-OCEW91z7HD1?fDtmxM) zN;OE88mUY@;;Ec9(NiPu!R~+z?mH3w77$Z(Fi#Lp_HA@o6NF0V<$Ib3^=PsV8I%1H zj=AW3nCL^&sgit@HMOJH*=G%v{U$<|wv@dKHtl3~2|Bg07}dwx2ws^7KWHa1Crr>y zXD+bolKsBRMOK|;;|8?rEc{UmT+vy1RW2+FOwj01Dpd|S^`iU{Yz>UYa_9&g#}{S8 zxj+-^ekQ1p7w1B8P*`9NB9RzJuXPp~%gu$wLAg927g~d=nH_!(G6X)JGXhB=$f_Jj z2%f_yFQEbYJ=jox!65@SDh7J}(_0Qe+39BQh%Ot7J^was9mc zeH$?}xg`nNU2AYxTfG;(qcT)eyq&2lkb3G9hrlb!%q>Zf6BQe>5H*K8L!UHXPueUA zmPIA`{0WWF^fa_atqjV;8MTRLF>$ndcOt}(Gle(cvQ(zWBq;e}q=O0ZNrd`wi}>fY+%PT6iBEr#szqXwy6e+C-{vAP!x z+Sgi!IkQv?T}Ijt&PQv)&w9*^M7ac~w0DCE{u8~yuseY^(cpfH`9AUt_r{K5G_hv* zvoV^lG{Jx|%5WSNn+G*`PQ&OBNH!u)E;4~JCX9!eATK70U5B|b>Ds@e&4K5r0g-R# zU~|lPUYr0uF)6GG24kXPvf{A;Q_qzg_8*b4;RI|)J+e6^9+F}+_zDwL$3{;&ir3G; zds4Zc?xagN>Ay%i)uOs<0R@Q_PMkhZl4L4*WV>_uaJ`Vk4&AZigU;ffQkl+f5v&0e z;o~CQh^=9lp(-viSVrYt3aP!;$t3+M4x;iS6T(pmr-w4|LNZ@a4%~AHr4!uOUqhQA z_9ZwO7soSV;G4Mkq%PD@e3BO^K<5eVdNXztR~742MAUatsZ@kQF|KMuoChs+*EG7_ zt{qD}HWP20aL`bg)isvvtrgXBEkd#R_w2&ZTn7{&l~SxA3`v!0=Xv&l(@~8^uD+sO z9|HSDLt_+H$579{QGBNgZIRfZ2;LqQIM36n5m$SOfvFJMnpp<~hx+JM56KSEFNa_LVcjY@S# z4ae>~tm7n83sHdODQzZ|4gq;aaXMYpD%s~7x4ZuuJur|^y1g-Lm8hfy-!GshofM1^ zsuQNAwxa}JVpw78=W)f1N{VWr7a6AFHAP5QWg1!83m+zA@I)hwG3BNiZz=9a@5wzW zL{Y@Rf=3m{lcGKr9x^51J8hHcSB*|b1BF$#(Ye`50~h_h@iHws%UW<<`{q%}MN{pY z?@Q}iT#?+|dq@yUyfHkrYl5HCwm~Z2fE#M?xGUW+Eeh$I- zGM_y9t-ARJYx?QqF@m7odDQWPby4HUb5HAd0aNTa(?vqt{Zbj;m7@tOH=@OLYU(H7 zkHhHjO!^|4-6S6NS!O&j#lmk@*YKm#`YLABAeFx)m2JnAOSZ;V zX`KNr=#KX5(RqF6IjSQo217+ny?hQ@?0=N#(2E`9+!5VMgiyRxQrHXSbcA@~=r2GZ zRuDQT$SvqKKDheVV)jSYtix;Pe#XSN3sftv9ym4L$jagC@y5_OWP1kM9uAE1eqjjW z661LL5KK*ckj;hH6Q|?fn~C4EY8Xg*g)M<+lAkZDxr{Dix#CX5ja-3q9M|Kx!|3g) zSUDdT&1a~*0z6KIp}5nC*->JRgyku_qSst#Mv({6>ay6J!7x908 z0ozg|__;5jJ@pCnCOeIMYDz2cdH-_+P7piRz=^bIwg$dTn-?5$ZS+}gZ9-->J!|3K z^iDPl0y5raPeWgZnQ#3Ru4imu6QSAs5a0Pv_}1)TJHeJ2&%eJ2+cWpG;k$Oy7XQ&n4D!3BPhDH4!PyeX#TTaQAfUcaUhh?K*~RtSAxWq+@RP z{rK)O_cj-bC=v#IOQcALSOpPNOm`EwlXCC${{ZWQOp1!h0BTsjw07vI+g_RNfZUMW>2ZOeH%duwKZ7e4)`*4H)|A6dF=sdb{yoce{f2kRFa;};ss zCmENJWaZK|^+xM&jaiwgbxW=-aTF+9MQux=4GR^uC+kULaIJK~1)g>K zot8RUwrXK(uDi8Q+IRs?8O1eivy0nqR<60N)=#JlS(>di`+on7@ zp7Wjmqy2nHyAsm9I_6?c#}vu`IV0%p`;4cV&)9Eyu!S114p3a)wv-#(YS*cVrpL-_Ji<;cj z?n#o=by?rJ%E^@G}cgTwjFa$vuc!wX+)F9Dkv#1jwMrhV0v&!wIp?% z*C@%fI53}&*lAN>Dc@?RlY!R8cDp1gi}58V^fcKer%9P!3G~@vrAP?1FsYTJCBU5b zST&n9Vxh4r!4;C^98fqgPP0`hn~dKYt45CQjhrOOlMMosN)17q_@0S$C1?WwU^3;5 zu^RRP*l}LxTw&EXCs>sgGzPftUB9ecoaNnl+RS9q07^H zOpdm|V%Le*Y0ABYlC;?bVq6Qpx$pi5<{UCeaMPc?1XLkUrLP=C^XR)iy5{xnV~BF_ zI98k0{hrn)C5~!BlS1o(8hT!kIfs^n&a|E?1MqQFcW*nk*gURX%8y2SD!m+@&z~x#55tqHiXl8U(Cu=hNwb{i?(R5mgvoheOmRVj zX6;)n=mY7Zlbotd+vRZ%IARpJl*a2Pu_@H5uV&5Er%y&!r}Xjs?!c1%P#F+4YcHVb#(Z`^ zwHf0IYXB@g>1aTu`~C@b4sc0oSNk%{r>TPGz%VqTE?L<_vTr zHAR~Rc2}6ZjgFv&Z)r@8BHzB8$3VT96J->TVB@`+RFse$eHKvvWEha=7{%^Yne<3P zR&Xse;<1i;5?UhrGJRuWEea>3$1*5&YMNsRt3Xh^7&J0>Gb|D|hpyOj> zgO6tTq!L{io1V2^JfY5A+c0O;UCSWB)LMY#T&_2TRD{`+K~;(7wt4BOS-Ti=dnbtu zP%+V+Qy~_f#@}QuLbc}DAfo&hD1_(Qzuw24>MkDuIeJ^D7?AqT6BrnR)hs~USCsfU zD`}MWS%f?KI8hf@FLwNtrQ-KJoJKz;t}!L239SzPRP)tB3*VS1mUI?CZ(9=ir8F9{ zB$#So2Qv@nG*%n}xm6IS97rQeQY>GWMx{v!Y#G%j<>_a`=FoFu0EyTdXkAhU?@y)v zq-@6Md{RP^8*h|BF>~dv_V2-%zW`?J6E+W9DJwajf1O5+$%&IE0X+0qxy~rwNzG#C zX|bo#s@?a1ND>_`IK541#)*~(+kH#@{US6H?N82#tWOn*8rn-FN4UuFN(x;`Zek0l zA;lc^AU1DSN%c6Yg?3R2Z7MgXy#P5L_vYh;WcyS-a4`^x6Fe~3B%A?jrDG{6e7l7% zrle-=g&W_={47NPok#SY(U>N#2G*yl#N5TEgDF&LO?gNMkjOyZ-_+*yy1E{O%_Hi! zxC>-nnSleVRlZ0@>~pmJn~{}km%s=UGa=W|+s(BPx)b8yhMD7xj(xduL4v+}eC+YXL;Su49 zx+H-WwK-agF`-;^|q*EJi)>rWve;D^T0p#4%@u6`&J=9()K2v7uMeAp06$_Nf=W-a&)V ztUxL8f=1Vkz^9tupcx9+PV}}!ZE1Jp%!V19U8bw~PbZE|b3bDcwE zTF#j*R4?*$Bhk5 zq0YB=&7vcFN(WYQ=Rnt|zq)Jm(l$e`)5^6bG=&IIiMB{>k|+nx_1>|F8mB1)RIp*c zNsSVf2r<+fpvJ_{f5dX6CZFHf7bbb-7P)pKiXhkZ$gL(=HXQtq5o{a#Pl|q+hRDQC z67(xpm>FD-d{9%-6iP~mMG&VM{0J>~UHGV9HXbq*ho)s(SU5eBX^Dwy@f*B;A4FNo zf1uxIrtp{_=xFAAW}@t@srX)=^)*YN#pAZJOp46@UG153zTSWjk)rZGp0Qqlb+0AJ z*GS4f2yG`s^}~JP#6sO?!9Z7u-AE(Zn-jl3>-7TCH4ZNmecKdiL9I!=G_;y;hWKWv11i@()Cx; zhk1SMJ$gESC!0alHXAqnid>%C_4_$JJ&@Yf$stf(~TH!3R8Tn_cgU|Ad>?E>?^-8l?E9pJ%B!sW zLJQ5UI?lgoapzB58o%0A*S$!4p3F9M@2TxTjN6x-vZftBhoVeW>Y6`1kAhz;JX_E?Y97!a4<%L*?tQ^$&G+Bw*WNU z2rx9?9OUvF0rpz}*53$N(ri=-=~&(To7K&1&+2A=q%K$#PoUVI`ZxF-#%z0bxp_T) KpAXx`FZ~Z!^zSGD diff --git a/3rdparty/launch4j/launch4j.jar b/3rdparty/launch4j/launch4j.jar index ec68ae48dd9cf4e420882da29220433555a70a6e..3c0b0e0b42bf0fffc0f126f6beabe531bcc8a319 100644 GIT binary patch delta 11919 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%0AB0BneZ@?`A=juWwgP-KYz0lf}< A^#A|> delta 11917 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 diff --git a/3rdparty/launch4j/launch4jc.exe b/3rdparty/launch4j/launch4jc.exe index 565cc2f07c17e2979df788933948eab22f81440e..a16c5498e80cedab858a265e5d6a00276c721bb5 100644 GIT binary patch delta 3939 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 IkxRz@5669u(EtDd delta 3752 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 Tidz~Pv-S0_ybW&<)j08g`wLFd diff --git a/3rdparty/launch4j/manifest/uac.exe.manifest b/3rdparty/launch4j/manifest/uac.exe.manifest index 3041fbc5..7b29e98a 100644 --- a/3rdparty/launch4j/manifest/uac.exe.manifest +++ b/3rdparty/launch4j/manifest/uac.exe.manifest @@ -1,12 +1,12 @@ - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/3rdparty/launch4j/manifest/xp-themes.exe.manifest b/3rdparty/launch4j/manifest/xp-themes.exe.manifest index e2c7511f..fb5c8785 100644 --- a/3rdparty/launch4j/manifest/xp-themes.exe.manifest +++ b/3rdparty/launch4j/manifest/xp-themes.exe.manifest @@ -1,14 +1,14 @@ - - - - - - - + + + + + + + \ No newline at end of file diff --git a/3rdparty/launch4j/src/launch4j.properties b/3rdparty/launch4j/src/launch4j.properties index 463c7a03..4f34a391 100644 --- a/3rdparty/launch4j/src/launch4j.properties +++ b/3rdparty/launch4j/src/launch4j.properties @@ -1,2 +1,2 @@ -versionNumber=3.0.1.0 -version=3.0.1 +versionNumber=3.0.2.0 +version=3.0.2 diff --git a/3rdparty/launch4j/src/net/sf/launch4j/Main.java b/3rdparty/launch4j/src/net/sf/launch4j/Main.java index 45f84ad7..836f6279 100644 --- a/3rdparty/launch4j/src/net/sf/launch4j/Main.java +++ b/3rdparty/launch4j/src/net/sf/launch4j/Main.java @@ -2,7 +2,7 @@ Launch4j (http://launch4j.sourceforge.net/) Cross-platform Java application wrapper for creating Windows native executables. - Copyright (c) 2004, 2008 Grzegorz Kowal + Copyright (c) 2004, 2011 Grzegorz Kowal All rights reserved. @@ -90,7 +90,7 @@ public class Main { " (http://launch4j.sourceforge.net/)\n" + "Cross-platform Java application wrapper" + " for creating Windows native executables.\n\n" + - "Copyright (C) 2004, 2008 Grzegorz Kowal\n\n" + + "Copyright (C) 2004, 2011 Grzegorz Kowal\n\n" + "Launch4j comes with ABSOLUTELY NO WARRANTY.\n" + "This is free software, licensed under the BSD License.\n" + "This product includes software developed by the Apache Software Foundation" + diff --git a/3rdparty/launch4j/src/net/sf/launch4j/Util.java b/3rdparty/launch4j/src/net/sf/launch4j/Util.java index f3bf2456..88ff7119 100644 --- a/3rdparty/launch4j/src/net/sf/launch4j/Util.java +++ b/3rdparty/launch4j/src/net/sf/launch4j/Util.java @@ -135,12 +135,17 @@ public class Util { is.close(); p.waitFor(); if (errLine != -1) { - throw new ExecException(Messages.getString("Util.exec.failed") - + ": " + cmd, errLine); + StringBuffer sb = new StringBuffer(Messages.getString("Util.exec.failed")); + AppendCommandLine(sb, cmd); + throw new ExecException(sb.toString(), errLine); } if (p.exitValue() != 0) { - throw new ExecException(Messages.getString("Util.exec.failed") - + "(" + p.exitValue() + "): " + cmd); + StringBuffer sb = new StringBuffer(Messages.getString("Util.exec.failed")); + sb.append(" ("); + sb.append(p.exitValue()); + sb.append(')'); + AppendCommandLine(sb, cmd); + throw new ExecException(sb.toString()); } } catch (IOException e) { close(is); @@ -150,6 +155,16 @@ public class Util { throw new ExecException(e); } } + + private static void AppendCommandLine(StringBuffer sb, String[] cmd) { + sb.append(": "); + for (int i = 0; i < cmd.length; i++) { + sb.append(cmd[i]); + if (i < cmd.length - 1) { + sb.append(' '); + } + } + } public static void close(final InputStream o) { if (o != null) { diff --git a/3rdparty/launch4j/src/net/sf/launch4j/binding/JComboBoxBinding.java b/3rdparty/launch4j/src/net/sf/launch4j/binding/JComboBoxBinding.java index 81d6ff28..61b5d6d3 100644 --- a/3rdparty/launch4j/src/net/sf/launch4j/binding/JComboBoxBinding.java +++ b/3rdparty/launch4j/src/net/sf/launch4j/binding/JComboBoxBinding.java @@ -1,119 +1,119 @@ -/* - Launch4j (http://launch4j.sourceforge.net/) - Cross-platform Java application wrapper for creating Windows native executables. - - Copyright (c) 2007 Ian Roberts - - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of the Launch4j nor the names of its contributors - may be used to endorse or promote products derived from this software without - specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/* - * Created on May 10, 2005 - */ -package net.sf.launch4j.binding; - -import java.awt.Color; - -import javax.swing.JComboBox; - -import org.apache.commons.beanutils.PropertyUtils; - -/** - * @author Copyright (C) 2007 Ian Roberts - */ -public class JComboBoxBinding implements Binding { - private final String _property; - private final JComboBox _combo; - private final int _defaultValue; - private final Color _validColor; - - public JComboBoxBinding(String property, JComboBox combo, int defaultValue) { - if (property == null || combo == null) { - throw new NullPointerException(); - } - if (property.equals("") - || combo.getItemCount() == 0 - || defaultValue < 0 || defaultValue >= combo.getItemCount()) { - throw new IllegalArgumentException(); - } - _property = property; - _combo = combo; - _defaultValue = defaultValue; - _validColor = combo.getBackground(); - } - - public String getProperty() { - return _property; - } - - public void clear(IValidatable bean) { - select(_defaultValue); - } - - public void put(IValidatable bean) { - try { - Integer i = (Integer) PropertyUtils.getProperty(bean, _property); - if (i == null) { - throw new BindingException( - Messages.getString("JComboBoxBinding.property.null")); - } - select(i.intValue()); - } catch (Exception e) { - throw new BindingException(e); - } - } - - public void get(IValidatable bean) { - try { - PropertyUtils.setProperty(bean, _property, new Integer(_combo.getSelectedIndex())); - return; - } catch (Exception e) { - throw new BindingException(e); - } - } - - private void select(int index) { - if (index < 0 || index >= _combo.getItemCount()) { - throw new BindingException( - Messages.getString("JComboBoxBinding.index.out.of.bounds")); - } - _combo.setSelectedIndex(index); - } - - public void markValid() { - _combo.setBackground(_validColor); - _combo.requestFocusInWindow(); - } - - public void markInvalid() { - _combo.setBackground(Binding.INVALID_COLOR); - } - - public void setEnabled(boolean enabled) { - _combo.setEnabled(enabled); - } -} +/* + Launch4j (http://launch4j.sourceforge.net/) + Cross-platform Java application wrapper for creating Windows native executables. + + Copyright (c) 2007 Ian Roberts + + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of the Launch4j nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/* + * Created on May 10, 2005 + */ +package net.sf.launch4j.binding; + +import java.awt.Color; + +import javax.swing.JComboBox; + +import org.apache.commons.beanutils.PropertyUtils; + +/** + * @author Copyright (C) 2007 Ian Roberts + */ +public class JComboBoxBinding implements Binding { + private final String _property; + private final JComboBox _combo; + private final int _defaultValue; + private final Color _validColor; + + public JComboBoxBinding(String property, JComboBox combo, int defaultValue) { + if (property == null || combo == null) { + throw new NullPointerException(); + } + if (property.equals("") + || combo.getItemCount() == 0 + || defaultValue < 0 || defaultValue >= combo.getItemCount()) { + throw new IllegalArgumentException(); + } + _property = property; + _combo = combo; + _defaultValue = defaultValue; + _validColor = combo.getBackground(); + } + + public String getProperty() { + return _property; + } + + public void clear(IValidatable bean) { + select(_defaultValue); + } + + public void put(IValidatable bean) { + try { + Integer i = (Integer) PropertyUtils.getProperty(bean, _property); + if (i == null) { + throw new BindingException( + Messages.getString("JComboBoxBinding.property.null")); + } + select(i.intValue()); + } catch (Exception e) { + throw new BindingException(e); + } + } + + public void get(IValidatable bean) { + try { + PropertyUtils.setProperty(bean, _property, new Integer(_combo.getSelectedIndex())); + return; + } catch (Exception e) { + throw new BindingException(e); + } + } + + private void select(int index) { + if (index < 0 || index >= _combo.getItemCount()) { + throw new BindingException( + Messages.getString("JComboBoxBinding.index.out.of.bounds")); + } + _combo.setSelectedIndex(index); + } + + public void markValid() { + _combo.setBackground(_validColor); + _combo.requestFocusInWindow(); + } + + public void markInvalid() { + _combo.setBackground(Binding.INVALID_COLOR); + } + + public void setEnabled(boolean enabled) { + _combo.setEnabled(enabled); + } +} diff --git a/3rdparty/launch4j/src/net/sf/launch4j/config/SingleInstance.java b/3rdparty/launch4j/src/net/sf/launch4j/config/SingleInstance.java index 0ae340cd..c0a85e67 100644 --- a/3rdparty/launch4j/src/net/sf/launch4j/config/SingleInstance.java +++ b/3rdparty/launch4j/src/net/sf/launch4j/config/SingleInstance.java @@ -1,74 +1,74 @@ -/* - Launch4j (http://launch4j.sourceforge.net/) - Cross-platform Java application wrapper for creating Windows native executables. - - Copyright (c) 2004, 2007 Grzegorz Kowal - - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of the Launch4j nor the names of its contributors - may be used to endorse or promote products derived from this software without - specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/** - * Created on 2007-09-16 - */ -package net.sf.launch4j.config; - -import net.sf.launch4j.binding.IValidatable; -import net.sf.launch4j.binding.Validator; - -/** - * @author Copyright (C) 2007 Grzegorz Kowal - */ -public class SingleInstance implements IValidatable { - - private String mutexName; - private String windowTitle; - - public void checkInvariants() { - Validator.checkString(mutexName, Validator.MAX_STR, - "singleInstance.mutexName", - Messages.getString("SingleInstance.mutexName")); - Validator.checkOptString(windowTitle, Validator.MAX_STR, - "singleInstance.windowTitle", - Messages.getString("SingleInstance.windowTitle")); - } - - public String getWindowTitle() { - return windowTitle; - } - - public void setWindowTitle(String appWindowName) { - this.windowTitle = appWindowName; - } - - public String getMutexName() { - return mutexName; - } - - public void setMutexName(String mutexName) { - this.mutexName = mutexName; - } -} +/* + Launch4j (http://launch4j.sourceforge.net/) + Cross-platform Java application wrapper for creating Windows native executables. + + Copyright (c) 2004, 2007 Grzegorz Kowal + + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of the Launch4j nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/** + * Created on 2007-09-16 + */ +package net.sf.launch4j.config; + +import net.sf.launch4j.binding.IValidatable; +import net.sf.launch4j.binding.Validator; + +/** + * @author Copyright (C) 2007 Grzegorz Kowal + */ +public class SingleInstance implements IValidatable { + + private String mutexName; + private String windowTitle; + + public void checkInvariants() { + Validator.checkString(mutexName, Validator.MAX_STR, + "singleInstance.mutexName", + Messages.getString("SingleInstance.mutexName")); + Validator.checkOptString(windowTitle, Validator.MAX_STR, + "singleInstance.windowTitle", + Messages.getString("SingleInstance.windowTitle")); + } + + public String getWindowTitle() { + return windowTitle; + } + + public void setWindowTitle(String appWindowName) { + this.windowTitle = appWindowName; + } + + public String getMutexName() { + return mutexName; + } + + public void setMutexName(String mutexName) { + this.mutexName = mutexName; + } +} diff --git a/3rdparty/launch4j/src/net/sf/launch4j/form/BasicForm.java b/3rdparty/launch4j/src/net/sf/launch4j/form/BasicForm.java index 4dadbb98..6bc22922 100644 --- a/3rdparty/launch4j/src/net/sf/launch4j/form/BasicForm.java +++ b/3rdparty/launch4j/src/net/sf/launch4j/form/BasicForm.java @@ -1,283 +1,283 @@ -package net.sf.launch4j.form; - -import com.jeta.forms.components.separator.TitledSeparator; -import com.jgoodies.forms.layout.CellConstraints; -import com.jgoodies.forms.layout.FormLayout; -import java.awt.BorderLayout; -import java.awt.Container; -import java.awt.Dimension; -import javax.swing.Box; -import javax.swing.ButtonGroup; -import javax.swing.ImageIcon; -import javax.swing.JButton; -import javax.swing.JCheckBox; -import javax.swing.JLabel; -import javax.swing.JPanel; -import javax.swing.JRadioButton; -import javax.swing.JTextField; - -public abstract class BasicForm extends JPanel -{ - protected final JButton _outfileButton = new JButton(); - protected final JLabel _outfileLabel = new JLabel(); - protected final JLabel _iconLabel = new JLabel(); - protected final JLabel _jarLabel = new JLabel(); - protected final JButton _jarButton = new JButton(); - protected final JButton _iconButton = new JButton(); - protected final JLabel _cmdLineLabel = new JLabel(); - protected final JLabel _optionsLabel = new JLabel(); - protected final JLabel _chdirLabel = new JLabel(); - protected final JLabel _processPriorityLabel = new JLabel(); - protected final JRadioButton _normalPriorityRadio = new JRadioButton(); - protected final ButtonGroup _buttongroup1 = new ButtonGroup(); - protected final JRadioButton _idlePriorityRadio = new JRadioButton(); - protected final JRadioButton _highPriorityRadio = new JRadioButton(); - protected final JCheckBox _customProcNameCheck = new JCheckBox(); - protected final JCheckBox _stayAliveCheck = new JCheckBox(); - protected final JTextField _cmdLineField = new JTextField(); - protected final JTextField _chdirField = new JTextField(); - protected final JTextField _iconField = new JTextField(); - protected final JCheckBox _dontWrapJarCheck = new JCheckBox(); - protected final JTextField _jarField = new JTextField(); - protected final JTextField _outfileField = new JTextField(); - protected final JLabel _errorTitleLabel = new JLabel(); - protected final JTextField _errorTitleField = new JTextField(); - protected final JLabel _downloadUrlLabel = new JLabel(); - protected final JTextField _downloadUrlField = new JTextField(); - protected final JLabel _supportUrlLabel = new JLabel(); - protected final JTextField _supportUrlField = new JTextField(); - protected final JTextField _manifestField = new JTextField(); - protected final JButton _manifestButton = new JButton(); - - /** - * Default constructor - */ - public BasicForm() - { - initializePanel(); - } - - /** - * Adds fill components to empty cells in the first row and first column of the grid. - * This ensures that the grid spacing will be the same as shown in the designer. - * @param cols an array of column indices in the first row where fill components should be added. - * @param rows an array of row indices in the first column where fill components should be added. - */ - void addFillComponents( Container panel, int[] cols, int[] rows ) - { - Dimension filler = new Dimension(10,10); - - boolean filled_cell_11 = false; - CellConstraints cc = new CellConstraints(); - if ( cols.length > 0 && rows.length > 0 ) - { - if ( cols[0] == 1 && rows[0] == 1 ) - { - /** add a rigid area */ - panel.add( Box.createRigidArea( filler ), cc.xy(1,1) ); - filled_cell_11 = true; - } - } - - for( int index = 0; index < cols.length; index++ ) - { - if ( cols[index] == 1 && filled_cell_11 ) - { - continue; - } - panel.add( Box.createRigidArea( filler ), cc.xy(cols[index],1) ); - } - - for( int index = 0; index < rows.length; index++ ) - { - if ( rows[index] == 1 && filled_cell_11 ) - { - continue; - } - panel.add( Box.createRigidArea( filler ), cc.xy(1,rows[index]) ); - } - - } - - /** - * Helper method to load an image file from the CLASSPATH - * @param imageName the package and name of the file to load relative to the CLASSPATH - * @return an ImageIcon instance with the specified image file - * @throws IllegalArgumentException if the image resource cannot be loaded. - */ - public ImageIcon loadImage( String imageName ) - { - try - { - ClassLoader classloader = getClass().getClassLoader(); - java.net.URL url = classloader.getResource( imageName ); - if ( url != null ) - { - ImageIcon icon = new ImageIcon( url ); - return icon; - } - } - catch( Exception e ) - { - e.printStackTrace(); - } - throw new IllegalArgumentException( "Unable to load image: " + imageName ); - } - - public JPanel createPanel() - { - JPanel jpanel1 = new JPanel(); - FormLayout formlayout1 = new FormLayout("FILL:7DLU:NONE,RIGHT:MAX(65DLU;DEFAULT):NONE,FILL:3DLU:NONE,FILL:DEFAULT:NONE,FILL:7DLU:NONE,FILL:DEFAULT:NONE,FILL:7DLU:NONE,FILL:DEFAULT:NONE,FILL:DEFAULT:NONE,FILL:DEFAULT:GROW(1.0),FILL:3DLU:NONE,FILL:26PX:NONE,FILL:7DLU:NONE","CENTER:9DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,CENTER:DEFAULT:NONE,CENTER:9DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,CENTER:DEFAULT:NONE,CENTER:9DLU:NONE"); - CellConstraints cc = new CellConstraints(); - jpanel1.setLayout(formlayout1); - - _outfileButton.setIcon(loadImage("images/open16.png")); - _outfileButton.setName("outfileButton"); - jpanel1.add(_outfileButton,cc.xy(12,2)); - - _outfileLabel.setIcon(loadImage("images/asterix.gif")); - _outfileLabel.setName("outfileLabel"); - _outfileLabel.setText(Messages.getString("outfile")); - jpanel1.add(_outfileLabel,cc.xy(2,2)); - - _iconLabel.setName("iconLabel"); - _iconLabel.setText(Messages.getString("icon")); - jpanel1.add(_iconLabel,cc.xy(2,10)); - - _jarLabel.setIcon(loadImage("images/asterix.gif")); - _jarLabel.setName("jarLabel"); - _jarLabel.setText(Messages.getString("jar")); - jpanel1.add(_jarLabel,cc.xy(2,4)); - - _jarButton.setIcon(loadImage("images/open16.png")); - _jarButton.setName("jarButton"); - jpanel1.add(_jarButton,cc.xy(12,4)); - - _iconButton.setIcon(loadImage("images/open16.png")); - _iconButton.setName("iconButton"); - jpanel1.add(_iconButton,cc.xy(12,10)); - - _cmdLineLabel.setName("cmdLineLabel"); - _cmdLineLabel.setText(Messages.getString("cmdLine")); - _cmdLineLabel.setToolTipText(""); - jpanel1.add(_cmdLineLabel,cc.xy(2,14)); - - _optionsLabel.setName("optionsLabel"); - _optionsLabel.setText(Messages.getString("options")); - jpanel1.add(_optionsLabel,cc.xy(2,18)); - - _chdirLabel.setName("chdirLabel"); - _chdirLabel.setText(Messages.getString("chdir")); - jpanel1.add(_chdirLabel,cc.xy(2,12)); - - _processPriorityLabel.setName("processPriorityLabel"); - _processPriorityLabel.setText(Messages.getString("priority")); - jpanel1.add(_processPriorityLabel,cc.xy(2,16)); - - _normalPriorityRadio.setActionCommand(Messages.getString("normalPriority")); - _normalPriorityRadio.setName("normalPriorityRadio"); - _normalPriorityRadio.setText(Messages.getString("normalPriority")); - _buttongroup1.add(_normalPriorityRadio); - jpanel1.add(_normalPriorityRadio,cc.xy(4,16)); - - _idlePriorityRadio.setActionCommand(Messages.getString("idlePriority")); - _idlePriorityRadio.setName("idlePriorityRadio"); - _idlePriorityRadio.setText(Messages.getString("idlePriority")); - _buttongroup1.add(_idlePriorityRadio); - jpanel1.add(_idlePriorityRadio,cc.xy(6,16)); - - _highPriorityRadio.setActionCommand(Messages.getString("highPriority")); - _highPriorityRadio.setName("highPriorityRadio"); - _highPriorityRadio.setText(Messages.getString("highPriority")); - _buttongroup1.add(_highPriorityRadio); - jpanel1.add(_highPriorityRadio,cc.xy(8,16)); - - _customProcNameCheck.setActionCommand("Custom process name"); - _customProcNameCheck.setName("customProcNameCheck"); - _customProcNameCheck.setText(Messages.getString("customProcName")); - jpanel1.add(_customProcNameCheck,cc.xywh(4,18,7,1)); - - _stayAliveCheck.setActionCommand("Stay alive after launching a GUI application"); - _stayAliveCheck.setName("stayAliveCheck"); - _stayAliveCheck.setText(Messages.getString("stayAlive")); - jpanel1.add(_stayAliveCheck,cc.xywh(4,20,7,1)); - - _cmdLineField.setName("cmdLineField"); - _cmdLineField.setToolTipText(Messages.getString("cmdLineTip")); - jpanel1.add(_cmdLineField,cc.xywh(4,14,7,1)); - - _chdirField.setName("chdirField"); - _chdirField.setToolTipText(Messages.getString("chdirTip")); - jpanel1.add(_chdirField,cc.xywh(4,12,7,1)); - - _iconField.setName("iconField"); - _iconField.setToolTipText(Messages.getString("iconTip")); - jpanel1.add(_iconField,cc.xywh(4,10,7,1)); - - _dontWrapJarCheck.setActionCommand("Don't wrap the jar, launch it only"); - _dontWrapJarCheck.setName("dontWrapJarCheck"); - _dontWrapJarCheck.setText(Messages.getString("dontWrapJar")); - jpanel1.add(_dontWrapJarCheck,cc.xywh(4,6,7,1)); - - _jarField.setName("jarField"); - _jarField.setToolTipText(Messages.getString("jarTip")); - jpanel1.add(_jarField,cc.xywh(4,4,7,1)); - - _outfileField.setName("outfileField"); - _outfileField.setToolTipText(Messages.getString("outfileTip")); - jpanel1.add(_outfileField,cc.xywh(4,2,7,1)); - - TitledSeparator titledseparator1 = new TitledSeparator(); - titledseparator1.setText(Messages.getString("downloadAndSupport")); - jpanel1.add(titledseparator1,cc.xywh(2,22,11,1)); - - _errorTitleLabel.setName("errorTitleLabel"); - _errorTitleLabel.setText(Messages.getString("errorTitle")); - jpanel1.add(_errorTitleLabel,cc.xy(2,24)); - - _errorTitleField.setName("errorTitleField"); - _errorTitleField.setToolTipText(Messages.getString("errorTitleTip")); - jpanel1.add(_errorTitleField,cc.xywh(4,24,7,1)); - - _downloadUrlLabel.setIcon(loadImage("images/asterix.gif")); - _downloadUrlLabel.setName("downloadUrlLabel"); - _downloadUrlLabel.setText(Messages.getString("downloadUrl")); - jpanel1.add(_downloadUrlLabel,cc.xy(2,26)); - - _downloadUrlField.setName("downloadUrlField"); - jpanel1.add(_downloadUrlField,cc.xywh(4,26,7,1)); - - _supportUrlLabel.setName("supportUrlLabel"); - _supportUrlLabel.setText(Messages.getString("supportUrl")); - jpanel1.add(_supportUrlLabel,cc.xy(2,28)); - - _supportUrlField.setName("supportUrlField"); - jpanel1.add(_supportUrlField,cc.xywh(4,28,7,1)); - - JLabel jlabel1 = new JLabel(); - jlabel1.setText(Messages.getString("manifest")); - jpanel1.add(jlabel1,cc.xy(2,8)); - - _manifestField.setName("manifestField"); - _manifestField.setToolTipText(Messages.getString("manifestTip")); - jpanel1.add(_manifestField,cc.xywh(4,8,7,1)); - - _manifestButton.setIcon(loadImage("images/open16.png")); - _manifestButton.setName("manifestButton"); - jpanel1.add(_manifestButton,cc.xy(12,8)); - - addFillComponents(jpanel1,new int[]{ 1,2,3,4,5,6,7,8,9,10,11,12,13 },new int[]{ 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29 }); - return jpanel1; - } - - /** - * Initializer - */ - protected void initializePanel() - { - setLayout(new BorderLayout()); - add(createPanel(), BorderLayout.CENTER); - } - - -} +package net.sf.launch4j.form; + +import com.jeta.forms.components.separator.TitledSeparator; +import com.jgoodies.forms.layout.CellConstraints; +import com.jgoodies.forms.layout.FormLayout; +import java.awt.BorderLayout; +import java.awt.Container; +import java.awt.Dimension; +import javax.swing.Box; +import javax.swing.ButtonGroup; +import javax.swing.ImageIcon; +import javax.swing.JButton; +import javax.swing.JCheckBox; +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.JRadioButton; +import javax.swing.JTextField; + +public abstract class BasicForm extends JPanel +{ + protected final JButton _outfileButton = new JButton(); + protected final JLabel _outfileLabel = new JLabel(); + protected final JLabel _iconLabel = new JLabel(); + protected final JLabel _jarLabel = new JLabel(); + protected final JButton _jarButton = new JButton(); + protected final JButton _iconButton = new JButton(); + protected final JLabel _cmdLineLabel = new JLabel(); + protected final JLabel _optionsLabel = new JLabel(); + protected final JLabel _chdirLabel = new JLabel(); + protected final JLabel _processPriorityLabel = new JLabel(); + protected final JRadioButton _normalPriorityRadio = new JRadioButton(); + protected final ButtonGroup _buttongroup1 = new ButtonGroup(); + protected final JRadioButton _idlePriorityRadio = new JRadioButton(); + protected final JRadioButton _highPriorityRadio = new JRadioButton(); + protected final JCheckBox _customProcNameCheck = new JCheckBox(); + protected final JCheckBox _stayAliveCheck = new JCheckBox(); + protected final JTextField _cmdLineField = new JTextField(); + protected final JTextField _chdirField = new JTextField(); + protected final JTextField _iconField = new JTextField(); + protected final JCheckBox _dontWrapJarCheck = new JCheckBox(); + protected final JTextField _jarField = new JTextField(); + protected final JTextField _outfileField = new JTextField(); + protected final JLabel _errorTitleLabel = new JLabel(); + protected final JTextField _errorTitleField = new JTextField(); + protected final JLabel _downloadUrlLabel = new JLabel(); + protected final JTextField _downloadUrlField = new JTextField(); + protected final JLabel _supportUrlLabel = new JLabel(); + protected final JTextField _supportUrlField = new JTextField(); + protected final JTextField _manifestField = new JTextField(); + protected final JButton _manifestButton = new JButton(); + + /** + * Default constructor + */ + public BasicForm() + { + initializePanel(); + } + + /** + * Adds fill components to empty cells in the first row and first column of the grid. + * This ensures that the grid spacing will be the same as shown in the designer. + * @param cols an array of column indices in the first row where fill components should be added. + * @param rows an array of row indices in the first column where fill components should be added. + */ + void addFillComponents( Container panel, int[] cols, int[] rows ) + { + Dimension filler = new Dimension(10,10); + + boolean filled_cell_11 = false; + CellConstraints cc = new CellConstraints(); + if ( cols.length > 0 && rows.length > 0 ) + { + if ( cols[0] == 1 && rows[0] == 1 ) + { + /** add a rigid area */ + panel.add( Box.createRigidArea( filler ), cc.xy(1,1) ); + filled_cell_11 = true; + } + } + + for( int index = 0; index < cols.length; index++ ) + { + if ( cols[index] == 1 && filled_cell_11 ) + { + continue; + } + panel.add( Box.createRigidArea( filler ), cc.xy(cols[index],1) ); + } + + for( int index = 0; index < rows.length; index++ ) + { + if ( rows[index] == 1 && filled_cell_11 ) + { + continue; + } + panel.add( Box.createRigidArea( filler ), cc.xy(1,rows[index]) ); + } + + } + + /** + * Helper method to load an image file from the CLASSPATH + * @param imageName the package and name of the file to load relative to the CLASSPATH + * @return an ImageIcon instance with the specified image file + * @throws IllegalArgumentException if the image resource cannot be loaded. + */ + public ImageIcon loadImage( String imageName ) + { + try + { + ClassLoader classloader = getClass().getClassLoader(); + java.net.URL url = classloader.getResource( imageName ); + if ( url != null ) + { + ImageIcon icon = new ImageIcon( url ); + return icon; + } + } + catch( Exception e ) + { + e.printStackTrace(); + } + throw new IllegalArgumentException( "Unable to load image: " + imageName ); + } + + public JPanel createPanel() + { + JPanel jpanel1 = new JPanel(); + FormLayout formlayout1 = new FormLayout("FILL:7DLU:NONE,RIGHT:MAX(65DLU;DEFAULT):NONE,FILL:3DLU:NONE,FILL:DEFAULT:NONE,FILL:7DLU:NONE,FILL:DEFAULT:NONE,FILL:7DLU:NONE,FILL:DEFAULT:NONE,FILL:DEFAULT:NONE,FILL:DEFAULT:GROW(1.0),FILL:3DLU:NONE,FILL:26PX:NONE,FILL:7DLU:NONE","CENTER:9DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,CENTER:DEFAULT:NONE,CENTER:9DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,CENTER:DEFAULT:NONE,CENTER:9DLU:NONE"); + CellConstraints cc = new CellConstraints(); + jpanel1.setLayout(formlayout1); + + _outfileButton.setIcon(loadImage("images/open16.png")); + _outfileButton.setName("outfileButton"); + jpanel1.add(_outfileButton,cc.xy(12,2)); + + _outfileLabel.setIcon(loadImage("images/asterix.gif")); + _outfileLabel.setName("outfileLabel"); + _outfileLabel.setText(Messages.getString("outfile")); + jpanel1.add(_outfileLabel,cc.xy(2,2)); + + _iconLabel.setName("iconLabel"); + _iconLabel.setText(Messages.getString("icon")); + jpanel1.add(_iconLabel,cc.xy(2,10)); + + _jarLabel.setIcon(loadImage("images/asterix.gif")); + _jarLabel.setName("jarLabel"); + _jarLabel.setText(Messages.getString("jar")); + jpanel1.add(_jarLabel,cc.xy(2,4)); + + _jarButton.setIcon(loadImage("images/open16.png")); + _jarButton.setName("jarButton"); + jpanel1.add(_jarButton,cc.xy(12,4)); + + _iconButton.setIcon(loadImage("images/open16.png")); + _iconButton.setName("iconButton"); + jpanel1.add(_iconButton,cc.xy(12,10)); + + _cmdLineLabel.setName("cmdLineLabel"); + _cmdLineLabel.setText(Messages.getString("cmdLine")); + _cmdLineLabel.setToolTipText(""); + jpanel1.add(_cmdLineLabel,cc.xy(2,14)); + + _optionsLabel.setName("optionsLabel"); + _optionsLabel.setText(Messages.getString("options")); + jpanel1.add(_optionsLabel,cc.xy(2,18)); + + _chdirLabel.setName("chdirLabel"); + _chdirLabel.setText(Messages.getString("chdir")); + jpanel1.add(_chdirLabel,cc.xy(2,12)); + + _processPriorityLabel.setName("processPriorityLabel"); + _processPriorityLabel.setText(Messages.getString("priority")); + jpanel1.add(_processPriorityLabel,cc.xy(2,16)); + + _normalPriorityRadio.setActionCommand(Messages.getString("normalPriority")); + _normalPriorityRadio.setName("normalPriorityRadio"); + _normalPriorityRadio.setText(Messages.getString("normalPriority")); + _buttongroup1.add(_normalPriorityRadio); + jpanel1.add(_normalPriorityRadio,cc.xy(4,16)); + + _idlePriorityRadio.setActionCommand(Messages.getString("idlePriority")); + _idlePriorityRadio.setName("idlePriorityRadio"); + _idlePriorityRadio.setText(Messages.getString("idlePriority")); + _buttongroup1.add(_idlePriorityRadio); + jpanel1.add(_idlePriorityRadio,cc.xy(6,16)); + + _highPriorityRadio.setActionCommand(Messages.getString("highPriority")); + _highPriorityRadio.setName("highPriorityRadio"); + _highPriorityRadio.setText(Messages.getString("highPriority")); + _buttongroup1.add(_highPriorityRadio); + jpanel1.add(_highPriorityRadio,cc.xy(8,16)); + + _customProcNameCheck.setActionCommand("Custom process name"); + _customProcNameCheck.setName("customProcNameCheck"); + _customProcNameCheck.setText(Messages.getString("customProcName")); + jpanel1.add(_customProcNameCheck,cc.xywh(4,18,7,1)); + + _stayAliveCheck.setActionCommand("Stay alive after launching a GUI application"); + _stayAliveCheck.setName("stayAliveCheck"); + _stayAliveCheck.setText(Messages.getString("stayAlive")); + jpanel1.add(_stayAliveCheck,cc.xywh(4,20,7,1)); + + _cmdLineField.setName("cmdLineField"); + _cmdLineField.setToolTipText(Messages.getString("cmdLineTip")); + jpanel1.add(_cmdLineField,cc.xywh(4,14,7,1)); + + _chdirField.setName("chdirField"); + _chdirField.setToolTipText(Messages.getString("chdirTip")); + jpanel1.add(_chdirField,cc.xywh(4,12,7,1)); + + _iconField.setName("iconField"); + _iconField.setToolTipText(Messages.getString("iconTip")); + jpanel1.add(_iconField,cc.xywh(4,10,7,1)); + + _dontWrapJarCheck.setActionCommand("Don't wrap the jar, launch it only"); + _dontWrapJarCheck.setName("dontWrapJarCheck"); + _dontWrapJarCheck.setText(Messages.getString("dontWrapJar")); + jpanel1.add(_dontWrapJarCheck,cc.xywh(4,6,7,1)); + + _jarField.setName("jarField"); + _jarField.setToolTipText(Messages.getString("jarTip")); + jpanel1.add(_jarField,cc.xywh(4,4,7,1)); + + _outfileField.setName("outfileField"); + _outfileField.setToolTipText(Messages.getString("outfileTip")); + jpanel1.add(_outfileField,cc.xywh(4,2,7,1)); + + TitledSeparator titledseparator1 = new TitledSeparator(); + titledseparator1.setText(Messages.getString("downloadAndSupport")); + jpanel1.add(titledseparator1,cc.xywh(2,22,11,1)); + + _errorTitleLabel.setName("errorTitleLabel"); + _errorTitleLabel.setText(Messages.getString("errorTitle")); + jpanel1.add(_errorTitleLabel,cc.xy(2,24)); + + _errorTitleField.setName("errorTitleField"); + _errorTitleField.setToolTipText(Messages.getString("errorTitleTip")); + jpanel1.add(_errorTitleField,cc.xywh(4,24,7,1)); + + _downloadUrlLabel.setIcon(loadImage("images/asterix.gif")); + _downloadUrlLabel.setName("downloadUrlLabel"); + _downloadUrlLabel.setText(Messages.getString("downloadUrl")); + jpanel1.add(_downloadUrlLabel,cc.xy(2,26)); + + _downloadUrlField.setName("downloadUrlField"); + jpanel1.add(_downloadUrlField,cc.xywh(4,26,7,1)); + + _supportUrlLabel.setName("supportUrlLabel"); + _supportUrlLabel.setText(Messages.getString("supportUrl")); + jpanel1.add(_supportUrlLabel,cc.xy(2,28)); + + _supportUrlField.setName("supportUrlField"); + jpanel1.add(_supportUrlField,cc.xywh(4,28,7,1)); + + JLabel jlabel1 = new JLabel(); + jlabel1.setText(Messages.getString("manifest")); + jpanel1.add(jlabel1,cc.xy(2,8)); + + _manifestField.setName("manifestField"); + _manifestField.setToolTipText(Messages.getString("manifestTip")); + jpanel1.add(_manifestField,cc.xywh(4,8,7,1)); + + _manifestButton.setIcon(loadImage("images/open16.png")); + _manifestButton.setName("manifestButton"); + jpanel1.add(_manifestButton,cc.xy(12,8)); + + addFillComponents(jpanel1,new int[]{ 1,2,3,4,5,6,7,8,9,10,11,12,13 },new int[]{ 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29 }); + return jpanel1; + } + + /** + * Initializer + */ + protected void initializePanel() + { + setLayout(new BorderLayout()); + add(createPanel(), BorderLayout.CENTER); + } + + +} diff --git a/3rdparty/launch4j/src/net/sf/launch4j/form/JreForm.java b/3rdparty/launch4j/src/net/sf/launch4j/form/JreForm.java index ed16c50b..69210dbf 100644 --- a/3rdparty/launch4j/src/net/sf/launch4j/form/JreForm.java +++ b/3rdparty/launch4j/src/net/sf/launch4j/form/JreForm.java @@ -1,266 +1,266 @@ -package net.sf.launch4j.form; - -import com.jgoodies.forms.layout.CellConstraints; -import com.jgoodies.forms.layout.FormLayout; -import java.awt.BorderLayout; -import java.awt.Container; -import java.awt.Dimension; -import javax.swing.Box; -import javax.swing.ImageIcon; -import javax.swing.JButton; -import javax.swing.JComboBox; -import javax.swing.JLabel; -import javax.swing.JPanel; -import javax.swing.JScrollPane; -import javax.swing.JTextArea; -import javax.swing.JTextField; - -public abstract class JreForm extends JPanel -{ - protected final JLabel _jrePathLabel = new JLabel(); - protected final JLabel _jreMinLabel = new JLabel(); - protected final JLabel _jreMaxLabel = new JLabel(); - protected final JLabel _jvmOptionsTextLabel = new JLabel(); - protected final JTextField _jrePathField = new JTextField(); - protected final JTextField _jreMinField = new JTextField(); - protected final JTextField _jreMaxField = new JTextField(); - protected final JTextArea _jvmOptionsTextArea = new JTextArea(); - protected final JLabel _initialHeapSizeLabel = new JLabel(); - protected final JLabel _maxHeapSizeLabel = new JLabel(); - protected final JTextField _initialHeapSizeField = new JTextField(); - protected final JTextField _maxHeapSizeField = new JTextField(); - protected final JComboBox _varCombo = new JComboBox(); - protected final JButton _propertyButton = new JButton(); - protected final JButton _optionButton = new JButton(); - protected final JButton _envPropertyButton = new JButton(); - protected final JButton _envOptionButton = new JButton(); - protected final JTextField _envVarField = new JTextField(); - protected final JTextField _maxHeapPercentField = new JTextField(); - protected final JTextField _initialHeapPercentField = new JTextField(); - protected final JComboBox _jdkPreferenceCombo = new JComboBox(); - - /** - * Default constructor - */ - public JreForm() - { - initializePanel(); - } - - /** - * Adds fill components to empty cells in the first row and first column of the grid. - * This ensures that the grid spacing will be the same as shown in the designer. - * @param cols an array of column indices in the first row where fill components should be added. - * @param rows an array of row indices in the first column where fill components should be added. - */ - void addFillComponents( Container panel, int[] cols, int[] rows ) - { - Dimension filler = new Dimension(10,10); - - boolean filled_cell_11 = false; - CellConstraints cc = new CellConstraints(); - if ( cols.length > 0 && rows.length > 0 ) - { - if ( cols[0] == 1 && rows[0] == 1 ) - { - /** add a rigid area */ - panel.add( Box.createRigidArea( filler ), cc.xy(1,1) ); - filled_cell_11 = true; - } - } - - for( int index = 0; index < cols.length; index++ ) - { - if ( cols[index] == 1 && filled_cell_11 ) - { - continue; - } - panel.add( Box.createRigidArea( filler ), cc.xy(cols[index],1) ); - } - - for( int index = 0; index < rows.length; index++ ) - { - if ( rows[index] == 1 && filled_cell_11 ) - { - continue; - } - panel.add( Box.createRigidArea( filler ), cc.xy(1,rows[index]) ); - } - - } - - /** - * Helper method to load an image file from the CLASSPATH - * @param imageName the package and name of the file to load relative to the CLASSPATH - * @return an ImageIcon instance with the specified image file - * @throws IllegalArgumentException if the image resource cannot be loaded. - */ - public ImageIcon loadImage( String imageName ) - { - try - { - ClassLoader classloader = getClass().getClassLoader(); - java.net.URL url = classloader.getResource( imageName ); - if ( url != null ) - { - ImageIcon icon = new ImageIcon( url ); - return icon; - } - } - catch( Exception e ) - { - e.printStackTrace(); - } - throw new IllegalArgumentException( "Unable to load image: " + imageName ); - } - - public JPanel createPanel() - { - JPanel jpanel1 = new JPanel(); - FormLayout formlayout1 = new FormLayout("FILL:7DLU:NONE,RIGHT:MAX(65DLU;DEFAULT):NONE,FILL:3DLU:NONE,FILL:60DLU:NONE,FILL:3DLU:NONE,FILL:DEFAULT:NONE,FILL:7DLU:NONE,FILL:60DLU:NONE,FILL:3DLU:NONE,FILL:DEFAULT:GROW(1.0),FILL:7DLU:NONE","CENTER:9DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,FILL:50DLU:GROW(1.0),CENTER:3DLU:NONE,CENTER:DEFAULT:NONE,CENTER:9DLU:NONE"); - CellConstraints cc = new CellConstraints(); - jpanel1.setLayout(formlayout1); - - _jrePathLabel.setName("jrePathLabel"); - _jrePathLabel.setText(Messages.getString("jrePath")); - jpanel1.add(_jrePathLabel,cc.xy(2,2)); - - _jreMinLabel.setName("jreMinLabel"); - _jreMinLabel.setText(Messages.getString("jreMin")); - jpanel1.add(_jreMinLabel,cc.xy(2,4)); - - _jreMaxLabel.setName("jreMaxLabel"); - _jreMaxLabel.setText(Messages.getString("jreMax")); - jpanel1.add(_jreMaxLabel,cc.xy(2,6)); - - _jvmOptionsTextLabel.setName("jvmOptionsTextLabel"); - _jvmOptionsTextLabel.setText(Messages.getString("jvmOptions")); - jpanel1.add(_jvmOptionsTextLabel,new CellConstraints(2,12,1,1,CellConstraints.DEFAULT,CellConstraints.TOP)); - - _jrePathField.setName("jrePathField"); - _jrePathField.setToolTipText(Messages.getString("jrePathTip")); - jpanel1.add(_jrePathField,cc.xywh(4,2,7,1)); - - _jreMinField.setName("jreMinField"); - jpanel1.add(_jreMinField,cc.xy(4,4)); - - _jreMaxField.setName("jreMaxField"); - jpanel1.add(_jreMaxField,cc.xy(4,6)); - - _jvmOptionsTextArea.setName("jvmOptionsTextArea"); - _jvmOptionsTextArea.setToolTipText(Messages.getString("jvmOptionsTip")); - JScrollPane jscrollpane1 = new JScrollPane(); - jscrollpane1.setViewportView(_jvmOptionsTextArea); - jscrollpane1.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); - jscrollpane1.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); - jpanel1.add(jscrollpane1,cc.xywh(4,12,7,1)); - - _initialHeapSizeLabel.setName("initialHeapSizeLabel"); - _initialHeapSizeLabel.setText(Messages.getString("initialHeapSize")); - jpanel1.add(_initialHeapSizeLabel,cc.xy(2,8)); - - _maxHeapSizeLabel.setName("maxHeapSizeLabel"); - _maxHeapSizeLabel.setText(Messages.getString("maxHeapSize")); - jpanel1.add(_maxHeapSizeLabel,cc.xy(2,10)); - - JLabel jlabel1 = new JLabel(); - jlabel1.setText("MB"); - jpanel1.add(jlabel1,cc.xy(6,8)); - - JLabel jlabel2 = new JLabel(); - jlabel2.setText("MB"); - jpanel1.add(jlabel2,cc.xy(6,10)); - - _initialHeapSizeField.setName("initialHeapSizeField"); - jpanel1.add(_initialHeapSizeField,cc.xy(4,8)); - - _maxHeapSizeField.setName("maxHeapSizeField"); - jpanel1.add(_maxHeapSizeField,cc.xy(4,10)); - - jpanel1.add(createPanel1(),cc.xywh(2,14,9,1)); - _maxHeapPercentField.setName("maxHeapPercentField"); - jpanel1.add(_maxHeapPercentField,cc.xy(8,10)); - - _initialHeapPercentField.setName("initialHeapPercentField"); - jpanel1.add(_initialHeapPercentField,cc.xy(8,8)); - - _jdkPreferenceCombo.setName("jdkPreferenceCombo"); - jpanel1.add(_jdkPreferenceCombo,cc.xywh(8,4,3,1)); - - JLabel jlabel3 = new JLabel(); - jlabel3.setText(Messages.getString("freeMemory")); - jpanel1.add(jlabel3,cc.xy(10,8)); - - JLabel jlabel4 = new JLabel(); - jlabel4.setText(Messages.getString("freeMemory")); - jpanel1.add(jlabel4,cc.xy(10,10)); - - addFillComponents(jpanel1,new int[]{ 1,2,3,4,5,6,7,8,9,10,11 },new int[]{ 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 }); - return jpanel1; - } - - public JPanel createPanel1() - { - JPanel jpanel1 = new JPanel(); - FormLayout formlayout1 = new FormLayout("RIGHT:MAX(65DLU;DEFAULT):NONE,FILL:3DLU:NONE,FILL:DEFAULT:GROW(1.0),FILL:3DLU:NONE,FILL:DEFAULT:NONE,FILL:3DLU:NONE,FILL:DEFAULT:NONE","CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,CENTER:DEFAULT:NONE"); - CellConstraints cc = new CellConstraints(); - jpanel1.setLayout(formlayout1); - - _varCombo.setName("varCombo"); - jpanel1.add(_varCombo,cc.xy(3,1)); - - _propertyButton.setActionCommand("Add"); - _propertyButton.setIcon(loadImage("images/edit_add16.png")); - _propertyButton.setName("propertyButton"); - _propertyButton.setText(Messages.getString("property")); - _propertyButton.setToolTipText(Messages.getString("propertyTip")); - jpanel1.add(_propertyButton,cc.xy(5,1)); - - _optionButton.setActionCommand("Add"); - _optionButton.setIcon(loadImage("images/edit_add16.png")); - _optionButton.setName("optionButton"); - _optionButton.setText(Messages.getString("option")); - _optionButton.setToolTipText(Messages.getString("optionTip")); - jpanel1.add(_optionButton,cc.xy(7,1)); - - _envPropertyButton.setActionCommand("Add"); - _envPropertyButton.setIcon(loadImage("images/edit_add16.png")); - _envPropertyButton.setName("envPropertyButton"); - _envPropertyButton.setText(Messages.getString("property")); - _envPropertyButton.setToolTipText(Messages.getString("propertyTip")); - jpanel1.add(_envPropertyButton,cc.xy(5,3)); - - JLabel jlabel1 = new JLabel(); - jlabel1.setText(Messages.getString("varsAndRegistry")); - jpanel1.add(jlabel1,cc.xy(1,1)); - - JLabel jlabel2 = new JLabel(); - jlabel2.setIcon(loadImage("images/asterix.gif")); - jlabel2.setText(Messages.getString("envVar")); - jpanel1.add(jlabel2,cc.xy(1,3)); - - _envOptionButton.setActionCommand("Add"); - _envOptionButton.setIcon(loadImage("images/edit_add16.png")); - _envOptionButton.setName("envOptionButton"); - _envOptionButton.setText(Messages.getString("option")); - _envOptionButton.setToolTipText(Messages.getString("optionTip")); - jpanel1.add(_envOptionButton,cc.xy(7,3)); - - _envVarField.setName("envVarField"); - jpanel1.add(_envVarField,cc.xy(3,3)); - - addFillComponents(jpanel1,new int[]{ 2,4,6 },new int[]{ 2 }); - return jpanel1; - } - - /** - * Initializer - */ - protected void initializePanel() - { - setLayout(new BorderLayout()); - add(createPanel(), BorderLayout.CENTER); - } - - -} +package net.sf.launch4j.form; + +import com.jgoodies.forms.layout.CellConstraints; +import com.jgoodies.forms.layout.FormLayout; +import java.awt.BorderLayout; +import java.awt.Container; +import java.awt.Dimension; +import javax.swing.Box; +import javax.swing.ImageIcon; +import javax.swing.JButton; +import javax.swing.JComboBox; +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.JTextArea; +import javax.swing.JTextField; + +public abstract class JreForm extends JPanel +{ + protected final JLabel _jrePathLabel = new JLabel(); + protected final JLabel _jreMinLabel = new JLabel(); + protected final JLabel _jreMaxLabel = new JLabel(); + protected final JLabel _jvmOptionsTextLabel = new JLabel(); + protected final JTextField _jrePathField = new JTextField(); + protected final JTextField _jreMinField = new JTextField(); + protected final JTextField _jreMaxField = new JTextField(); + protected final JTextArea _jvmOptionsTextArea = new JTextArea(); + protected final JLabel _initialHeapSizeLabel = new JLabel(); + protected final JLabel _maxHeapSizeLabel = new JLabel(); + protected final JTextField _initialHeapSizeField = new JTextField(); + protected final JTextField _maxHeapSizeField = new JTextField(); + protected final JComboBox _varCombo = new JComboBox(); + protected final JButton _propertyButton = new JButton(); + protected final JButton _optionButton = new JButton(); + protected final JButton _envPropertyButton = new JButton(); + protected final JButton _envOptionButton = new JButton(); + protected final JTextField _envVarField = new JTextField(); + protected final JTextField _maxHeapPercentField = new JTextField(); + protected final JTextField _initialHeapPercentField = new JTextField(); + protected final JComboBox _jdkPreferenceCombo = new JComboBox(); + + /** + * Default constructor + */ + public JreForm() + { + initializePanel(); + } + + /** + * Adds fill components to empty cells in the first row and first column of the grid. + * This ensures that the grid spacing will be the same as shown in the designer. + * @param cols an array of column indices in the first row where fill components should be added. + * @param rows an array of row indices in the first column where fill components should be added. + */ + void addFillComponents( Container panel, int[] cols, int[] rows ) + { + Dimension filler = new Dimension(10,10); + + boolean filled_cell_11 = false; + CellConstraints cc = new CellConstraints(); + if ( cols.length > 0 && rows.length > 0 ) + { + if ( cols[0] == 1 && rows[0] == 1 ) + { + /** add a rigid area */ + panel.add( Box.createRigidArea( filler ), cc.xy(1,1) ); + filled_cell_11 = true; + } + } + + for( int index = 0; index < cols.length; index++ ) + { + if ( cols[index] == 1 && filled_cell_11 ) + { + continue; + } + panel.add( Box.createRigidArea( filler ), cc.xy(cols[index],1) ); + } + + for( int index = 0; index < rows.length; index++ ) + { + if ( rows[index] == 1 && filled_cell_11 ) + { + continue; + } + panel.add( Box.createRigidArea( filler ), cc.xy(1,rows[index]) ); + } + + } + + /** + * Helper method to load an image file from the CLASSPATH + * @param imageName the package and name of the file to load relative to the CLASSPATH + * @return an ImageIcon instance with the specified image file + * @throws IllegalArgumentException if the image resource cannot be loaded. + */ + public ImageIcon loadImage( String imageName ) + { + try + { + ClassLoader classloader = getClass().getClassLoader(); + java.net.URL url = classloader.getResource( imageName ); + if ( url != null ) + { + ImageIcon icon = new ImageIcon( url ); + return icon; + } + } + catch( Exception e ) + { + e.printStackTrace(); + } + throw new IllegalArgumentException( "Unable to load image: " + imageName ); + } + + public JPanel createPanel() + { + JPanel jpanel1 = new JPanel(); + FormLayout formlayout1 = new FormLayout("FILL:7DLU:NONE,RIGHT:MAX(65DLU;DEFAULT):NONE,FILL:3DLU:NONE,FILL:60DLU:NONE,FILL:3DLU:NONE,FILL:DEFAULT:NONE,FILL:7DLU:NONE,FILL:60DLU:NONE,FILL:3DLU:NONE,FILL:DEFAULT:GROW(1.0),FILL:7DLU:NONE","CENTER:9DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,FILL:50DLU:GROW(1.0),CENTER:3DLU:NONE,CENTER:DEFAULT:NONE,CENTER:9DLU:NONE"); + CellConstraints cc = new CellConstraints(); + jpanel1.setLayout(formlayout1); + + _jrePathLabel.setName("jrePathLabel"); + _jrePathLabel.setText(Messages.getString("jrePath")); + jpanel1.add(_jrePathLabel,cc.xy(2,2)); + + _jreMinLabel.setName("jreMinLabel"); + _jreMinLabel.setText(Messages.getString("jreMin")); + jpanel1.add(_jreMinLabel,cc.xy(2,4)); + + _jreMaxLabel.setName("jreMaxLabel"); + _jreMaxLabel.setText(Messages.getString("jreMax")); + jpanel1.add(_jreMaxLabel,cc.xy(2,6)); + + _jvmOptionsTextLabel.setName("jvmOptionsTextLabel"); + _jvmOptionsTextLabel.setText(Messages.getString("jvmOptions")); + jpanel1.add(_jvmOptionsTextLabel,new CellConstraints(2,12,1,1,CellConstraints.DEFAULT,CellConstraints.TOP)); + + _jrePathField.setName("jrePathField"); + _jrePathField.setToolTipText(Messages.getString("jrePathTip")); + jpanel1.add(_jrePathField,cc.xywh(4,2,7,1)); + + _jreMinField.setName("jreMinField"); + jpanel1.add(_jreMinField,cc.xy(4,4)); + + _jreMaxField.setName("jreMaxField"); + jpanel1.add(_jreMaxField,cc.xy(4,6)); + + _jvmOptionsTextArea.setName("jvmOptionsTextArea"); + _jvmOptionsTextArea.setToolTipText(Messages.getString("jvmOptionsTip")); + JScrollPane jscrollpane1 = new JScrollPane(); + jscrollpane1.setViewportView(_jvmOptionsTextArea); + jscrollpane1.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); + jscrollpane1.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); + jpanel1.add(jscrollpane1,cc.xywh(4,12,7,1)); + + _initialHeapSizeLabel.setName("initialHeapSizeLabel"); + _initialHeapSizeLabel.setText(Messages.getString("initialHeapSize")); + jpanel1.add(_initialHeapSizeLabel,cc.xy(2,8)); + + _maxHeapSizeLabel.setName("maxHeapSizeLabel"); + _maxHeapSizeLabel.setText(Messages.getString("maxHeapSize")); + jpanel1.add(_maxHeapSizeLabel,cc.xy(2,10)); + + JLabel jlabel1 = new JLabel(); + jlabel1.setText("MB"); + jpanel1.add(jlabel1,cc.xy(6,8)); + + JLabel jlabel2 = new JLabel(); + jlabel2.setText("MB"); + jpanel1.add(jlabel2,cc.xy(6,10)); + + _initialHeapSizeField.setName("initialHeapSizeField"); + jpanel1.add(_initialHeapSizeField,cc.xy(4,8)); + + _maxHeapSizeField.setName("maxHeapSizeField"); + jpanel1.add(_maxHeapSizeField,cc.xy(4,10)); + + jpanel1.add(createPanel1(),cc.xywh(2,14,9,1)); + _maxHeapPercentField.setName("maxHeapPercentField"); + jpanel1.add(_maxHeapPercentField,cc.xy(8,10)); + + _initialHeapPercentField.setName("initialHeapPercentField"); + jpanel1.add(_initialHeapPercentField,cc.xy(8,8)); + + _jdkPreferenceCombo.setName("jdkPreferenceCombo"); + jpanel1.add(_jdkPreferenceCombo,cc.xywh(8,4,3,1)); + + JLabel jlabel3 = new JLabel(); + jlabel3.setText(Messages.getString("freeMemory")); + jpanel1.add(jlabel3,cc.xy(10,8)); + + JLabel jlabel4 = new JLabel(); + jlabel4.setText(Messages.getString("freeMemory")); + jpanel1.add(jlabel4,cc.xy(10,10)); + + addFillComponents(jpanel1,new int[]{ 1,2,3,4,5,6,7,8,9,10,11 },new int[]{ 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 }); + return jpanel1; + } + + public JPanel createPanel1() + { + JPanel jpanel1 = new JPanel(); + FormLayout formlayout1 = new FormLayout("RIGHT:MAX(65DLU;DEFAULT):NONE,FILL:3DLU:NONE,FILL:DEFAULT:GROW(1.0),FILL:3DLU:NONE,FILL:DEFAULT:NONE,FILL:3DLU:NONE,FILL:DEFAULT:NONE","CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,CENTER:DEFAULT:NONE"); + CellConstraints cc = new CellConstraints(); + jpanel1.setLayout(formlayout1); + + _varCombo.setName("varCombo"); + jpanel1.add(_varCombo,cc.xy(3,1)); + + _propertyButton.setActionCommand("Add"); + _propertyButton.setIcon(loadImage("images/edit_add16.png")); + _propertyButton.setName("propertyButton"); + _propertyButton.setText(Messages.getString("property")); + _propertyButton.setToolTipText(Messages.getString("propertyTip")); + jpanel1.add(_propertyButton,cc.xy(5,1)); + + _optionButton.setActionCommand("Add"); + _optionButton.setIcon(loadImage("images/edit_add16.png")); + _optionButton.setName("optionButton"); + _optionButton.setText(Messages.getString("option")); + _optionButton.setToolTipText(Messages.getString("optionTip")); + jpanel1.add(_optionButton,cc.xy(7,1)); + + _envPropertyButton.setActionCommand("Add"); + _envPropertyButton.setIcon(loadImage("images/edit_add16.png")); + _envPropertyButton.setName("envPropertyButton"); + _envPropertyButton.setText(Messages.getString("property")); + _envPropertyButton.setToolTipText(Messages.getString("propertyTip")); + jpanel1.add(_envPropertyButton,cc.xy(5,3)); + + JLabel jlabel1 = new JLabel(); + jlabel1.setText(Messages.getString("varsAndRegistry")); + jpanel1.add(jlabel1,cc.xy(1,1)); + + JLabel jlabel2 = new JLabel(); + jlabel2.setIcon(loadImage("images/asterix.gif")); + jlabel2.setText(Messages.getString("envVar")); + jpanel1.add(jlabel2,cc.xy(1,3)); + + _envOptionButton.setActionCommand("Add"); + _envOptionButton.setIcon(loadImage("images/edit_add16.png")); + _envOptionButton.setName("envOptionButton"); + _envOptionButton.setText(Messages.getString("option")); + _envOptionButton.setToolTipText(Messages.getString("optionTip")); + jpanel1.add(_envOptionButton,cc.xy(7,3)); + + _envVarField.setName("envVarField"); + jpanel1.add(_envVarField,cc.xy(3,3)); + + addFillComponents(jpanel1,new int[]{ 2,4,6 },new int[]{ 2 }); + return jpanel1; + } + + /** + * Initializer + */ + protected void initializePanel() + { + setLayout(new BorderLayout()); + add(createPanel(), BorderLayout.CENTER); + } + + +} diff --git a/3rdparty/launch4j/src/net/sf/launch4j/form/MessagesForm.java b/3rdparty/launch4j/src/net/sf/launch4j/form/MessagesForm.java index f2e8723d..c87a3e68 100644 --- a/3rdparty/launch4j/src/net/sf/launch4j/form/MessagesForm.java +++ b/3rdparty/launch4j/src/net/sf/launch4j/form/MessagesForm.java @@ -1,183 +1,183 @@ -package net.sf.launch4j.form; - -import com.jgoodies.forms.layout.CellConstraints; -import com.jgoodies.forms.layout.FormLayout; -import java.awt.BorderLayout; -import java.awt.Container; -import java.awt.Dimension; -import javax.swing.Box; -import javax.swing.ImageIcon; -import javax.swing.JCheckBox; -import javax.swing.JLabel; -import javax.swing.JPanel; -import javax.swing.JScrollPane; -import javax.swing.JTextArea; - -public abstract class MessagesForm extends JPanel -{ - protected final JTextArea _startupErrTextArea = new JTextArea(); - protected final JTextArea _bundledJreErrTextArea = new JTextArea(); - protected final JTextArea _jreVersionErrTextArea = new JTextArea(); - protected final JTextArea _launcherErrTextArea = new JTextArea(); - protected final JCheckBox _messagesCheck = new JCheckBox(); - protected final JTextArea _instanceAlreadyExistsMsgTextArea = new JTextArea(); - - /** - * Default constructor - */ - public MessagesForm() - { - initializePanel(); - } - - /** - * Adds fill components to empty cells in the first row and first column of the grid. - * This ensures that the grid spacing will be the same as shown in the designer. - * @param cols an array of column indices in the first row where fill components should be added. - * @param rows an array of row indices in the first column where fill components should be added. - */ - void addFillComponents( Container panel, int[] cols, int[] rows ) - { - Dimension filler = new Dimension(10,10); - - boolean filled_cell_11 = false; - CellConstraints cc = new CellConstraints(); - if ( cols.length > 0 && rows.length > 0 ) - { - if ( cols[0] == 1 && rows[0] == 1 ) - { - /** add a rigid area */ - panel.add( Box.createRigidArea( filler ), cc.xy(1,1) ); - filled_cell_11 = true; - } - } - - for( int index = 0; index < cols.length; index++ ) - { - if ( cols[index] == 1 && filled_cell_11 ) - { - continue; - } - panel.add( Box.createRigidArea( filler ), cc.xy(cols[index],1) ); - } - - for( int index = 0; index < rows.length; index++ ) - { - if ( rows[index] == 1 && filled_cell_11 ) - { - continue; - } - panel.add( Box.createRigidArea( filler ), cc.xy(1,rows[index]) ); - } - - } - - /** - * Helper method to load an image file from the CLASSPATH - * @param imageName the package and name of the file to load relative to the CLASSPATH - * @return an ImageIcon instance with the specified image file - * @throws IllegalArgumentException if the image resource cannot be loaded. - */ - public ImageIcon loadImage( String imageName ) - { - try - { - ClassLoader classloader = getClass().getClassLoader(); - java.net.URL url = classloader.getResource( imageName ); - if ( url != null ) - { - ImageIcon icon = new ImageIcon( url ); - return icon; - } - } - catch( Exception e ) - { - e.printStackTrace(); - } - throw new IllegalArgumentException( "Unable to load image: " + imageName ); - } - - public JPanel createPanel() - { - JPanel jpanel1 = new JPanel(); - FormLayout formlayout1 = new FormLayout("FILL:7DLU:NONE,RIGHT:MAX(65DLU;DEFAULT):NONE,FILL:3DLU:NONE,FILL:DEFAULT:GROW(1.0),FILL:7DLU:NONE","CENTER:9DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,FILL:DEFAULT:GROW(1.0),CENTER:3DLU:NONE,FILL:DEFAULT:GROW(1.0),CENTER:3DLU:NONE,FILL:DEFAULT:GROW(1.0),CENTER:3DLU:NONE,FILL:DEFAULT:GROW(1.0),CENTER:3DLU:NONE,FILL:DEFAULT:GROW(1.0),CENTER:9DLU:NONE"); - CellConstraints cc = new CellConstraints(); - jpanel1.setLayout(formlayout1); - - _startupErrTextArea.setName("startupErrTextArea"); - JScrollPane jscrollpane1 = new JScrollPane(); - jscrollpane1.setViewportView(_startupErrTextArea); - jscrollpane1.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); - jscrollpane1.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); - jpanel1.add(jscrollpane1,cc.xy(4,4)); - - _bundledJreErrTextArea.setName("bundledJreErrTextArea"); - JScrollPane jscrollpane2 = new JScrollPane(); - jscrollpane2.setViewportView(_bundledJreErrTextArea); - jscrollpane2.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); - jscrollpane2.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); - jpanel1.add(jscrollpane2,cc.xy(4,6)); - - _jreVersionErrTextArea.setName("jreVersionErrTextArea"); - _jreVersionErrTextArea.setToolTipText(Messages.getString("jreVersionErrTip")); - JScrollPane jscrollpane3 = new JScrollPane(); - jscrollpane3.setViewportView(_jreVersionErrTextArea); - jscrollpane3.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); - jscrollpane3.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); - jpanel1.add(jscrollpane3,cc.xy(4,8)); - - _launcherErrTextArea.setName("launcherErrTextArea"); - JScrollPane jscrollpane4 = new JScrollPane(); - jscrollpane4.setViewportView(_launcherErrTextArea); - jscrollpane4.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); - jscrollpane4.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); - jpanel1.add(jscrollpane4,cc.xy(4,10)); - - JLabel jlabel1 = new JLabel(); - jlabel1.setText(Messages.getString("startupErr")); - jpanel1.add(jlabel1,new CellConstraints(2,4,1,1,CellConstraints.DEFAULT,CellConstraints.TOP)); - - JLabel jlabel2 = new JLabel(); - jlabel2.setText(Messages.getString("bundledJreErr")); - jpanel1.add(jlabel2,new CellConstraints(2,6,1,1,CellConstraints.DEFAULT,CellConstraints.TOP)); - - JLabel jlabel3 = new JLabel(); - jlabel3.setText(Messages.getString("jreVersionErr")); - jpanel1.add(jlabel3,new CellConstraints(2,8,1,1,CellConstraints.DEFAULT,CellConstraints.TOP)); - - JLabel jlabel4 = new JLabel(); - jlabel4.setText(Messages.getString("launcherErr")); - jpanel1.add(jlabel4,new CellConstraints(2,10,1,1,CellConstraints.DEFAULT,CellConstraints.TOP)); - - _messagesCheck.setActionCommand("Add version information"); - _messagesCheck.setName("messagesCheck"); - _messagesCheck.setText(Messages.getString("addMessages")); - jpanel1.add(_messagesCheck,cc.xy(4,2)); - - JLabel jlabel5 = new JLabel(); - jlabel5.setText(Messages.getString("instanceAlreadyExistsMsg")); - jpanel1.add(jlabel5,new CellConstraints(2,12,1,1,CellConstraints.DEFAULT,CellConstraints.TOP)); - - _instanceAlreadyExistsMsgTextArea.setName("instanceAlreadyExistsMsgTextArea"); - _instanceAlreadyExistsMsgTextArea.setToolTipText(Messages.getString("instanceAlreadyExistsMsgTip")); - JScrollPane jscrollpane5 = new JScrollPane(); - jscrollpane5.setViewportView(_instanceAlreadyExistsMsgTextArea); - jscrollpane5.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); - jscrollpane5.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); - jpanel1.add(jscrollpane5,cc.xy(4,12)); - - addFillComponents(jpanel1,new int[]{ 1,2,3,4,5 },new int[]{ 1,2,3,4,5,6,7,8,9,10,11,12,13 }); - return jpanel1; - } - - /** - * Initializer - */ - protected void initializePanel() - { - setLayout(new BorderLayout()); - add(createPanel(), BorderLayout.CENTER); - } - - -} +package net.sf.launch4j.form; + +import com.jgoodies.forms.layout.CellConstraints; +import com.jgoodies.forms.layout.FormLayout; +import java.awt.BorderLayout; +import java.awt.Container; +import java.awt.Dimension; +import javax.swing.Box; +import javax.swing.ImageIcon; +import javax.swing.JCheckBox; +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.JTextArea; + +public abstract class MessagesForm extends JPanel +{ + protected final JTextArea _startupErrTextArea = new JTextArea(); + protected final JTextArea _bundledJreErrTextArea = new JTextArea(); + protected final JTextArea _jreVersionErrTextArea = new JTextArea(); + protected final JTextArea _launcherErrTextArea = new JTextArea(); + protected final JCheckBox _messagesCheck = new JCheckBox(); + protected final JTextArea _instanceAlreadyExistsMsgTextArea = new JTextArea(); + + /** + * Default constructor + */ + public MessagesForm() + { + initializePanel(); + } + + /** + * Adds fill components to empty cells in the first row and first column of the grid. + * This ensures that the grid spacing will be the same as shown in the designer. + * @param cols an array of column indices in the first row where fill components should be added. + * @param rows an array of row indices in the first column where fill components should be added. + */ + void addFillComponents( Container panel, int[] cols, int[] rows ) + { + Dimension filler = new Dimension(10,10); + + boolean filled_cell_11 = false; + CellConstraints cc = new CellConstraints(); + if ( cols.length > 0 && rows.length > 0 ) + { + if ( cols[0] == 1 && rows[0] == 1 ) + { + /** add a rigid area */ + panel.add( Box.createRigidArea( filler ), cc.xy(1,1) ); + filled_cell_11 = true; + } + } + + for( int index = 0; index < cols.length; index++ ) + { + if ( cols[index] == 1 && filled_cell_11 ) + { + continue; + } + panel.add( Box.createRigidArea( filler ), cc.xy(cols[index],1) ); + } + + for( int index = 0; index < rows.length; index++ ) + { + if ( rows[index] == 1 && filled_cell_11 ) + { + continue; + } + panel.add( Box.createRigidArea( filler ), cc.xy(1,rows[index]) ); + } + + } + + /** + * Helper method to load an image file from the CLASSPATH + * @param imageName the package and name of the file to load relative to the CLASSPATH + * @return an ImageIcon instance with the specified image file + * @throws IllegalArgumentException if the image resource cannot be loaded. + */ + public ImageIcon loadImage( String imageName ) + { + try + { + ClassLoader classloader = getClass().getClassLoader(); + java.net.URL url = classloader.getResource( imageName ); + if ( url != null ) + { + ImageIcon icon = new ImageIcon( url ); + return icon; + } + } + catch( Exception e ) + { + e.printStackTrace(); + } + throw new IllegalArgumentException( "Unable to load image: " + imageName ); + } + + public JPanel createPanel() + { + JPanel jpanel1 = new JPanel(); + FormLayout formlayout1 = new FormLayout("FILL:7DLU:NONE,RIGHT:MAX(65DLU;DEFAULT):NONE,FILL:3DLU:NONE,FILL:DEFAULT:GROW(1.0),FILL:7DLU:NONE","CENTER:9DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,FILL:DEFAULT:GROW(1.0),CENTER:3DLU:NONE,FILL:DEFAULT:GROW(1.0),CENTER:3DLU:NONE,FILL:DEFAULT:GROW(1.0),CENTER:3DLU:NONE,FILL:DEFAULT:GROW(1.0),CENTER:3DLU:NONE,FILL:DEFAULT:GROW(1.0),CENTER:9DLU:NONE"); + CellConstraints cc = new CellConstraints(); + jpanel1.setLayout(formlayout1); + + _startupErrTextArea.setName("startupErrTextArea"); + JScrollPane jscrollpane1 = new JScrollPane(); + jscrollpane1.setViewportView(_startupErrTextArea); + jscrollpane1.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); + jscrollpane1.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); + jpanel1.add(jscrollpane1,cc.xy(4,4)); + + _bundledJreErrTextArea.setName("bundledJreErrTextArea"); + JScrollPane jscrollpane2 = new JScrollPane(); + jscrollpane2.setViewportView(_bundledJreErrTextArea); + jscrollpane2.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); + jscrollpane2.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); + jpanel1.add(jscrollpane2,cc.xy(4,6)); + + _jreVersionErrTextArea.setName("jreVersionErrTextArea"); + _jreVersionErrTextArea.setToolTipText(Messages.getString("jreVersionErrTip")); + JScrollPane jscrollpane3 = new JScrollPane(); + jscrollpane3.setViewportView(_jreVersionErrTextArea); + jscrollpane3.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); + jscrollpane3.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); + jpanel1.add(jscrollpane3,cc.xy(4,8)); + + _launcherErrTextArea.setName("launcherErrTextArea"); + JScrollPane jscrollpane4 = new JScrollPane(); + jscrollpane4.setViewportView(_launcherErrTextArea); + jscrollpane4.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); + jscrollpane4.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); + jpanel1.add(jscrollpane4,cc.xy(4,10)); + + JLabel jlabel1 = new JLabel(); + jlabel1.setText(Messages.getString("startupErr")); + jpanel1.add(jlabel1,new CellConstraints(2,4,1,1,CellConstraints.DEFAULT,CellConstraints.TOP)); + + JLabel jlabel2 = new JLabel(); + jlabel2.setText(Messages.getString("bundledJreErr")); + jpanel1.add(jlabel2,new CellConstraints(2,6,1,1,CellConstraints.DEFAULT,CellConstraints.TOP)); + + JLabel jlabel3 = new JLabel(); + jlabel3.setText(Messages.getString("jreVersionErr")); + jpanel1.add(jlabel3,new CellConstraints(2,8,1,1,CellConstraints.DEFAULT,CellConstraints.TOP)); + + JLabel jlabel4 = new JLabel(); + jlabel4.setText(Messages.getString("launcherErr")); + jpanel1.add(jlabel4,new CellConstraints(2,10,1,1,CellConstraints.DEFAULT,CellConstraints.TOP)); + + _messagesCheck.setActionCommand("Add version information"); + _messagesCheck.setName("messagesCheck"); + _messagesCheck.setText(Messages.getString("addMessages")); + jpanel1.add(_messagesCheck,cc.xy(4,2)); + + JLabel jlabel5 = new JLabel(); + jlabel5.setText(Messages.getString("instanceAlreadyExistsMsg")); + jpanel1.add(jlabel5,new CellConstraints(2,12,1,1,CellConstraints.DEFAULT,CellConstraints.TOP)); + + _instanceAlreadyExistsMsgTextArea.setName("instanceAlreadyExistsMsgTextArea"); + _instanceAlreadyExistsMsgTextArea.setToolTipText(Messages.getString("instanceAlreadyExistsMsgTip")); + JScrollPane jscrollpane5 = new JScrollPane(); + jscrollpane5.setViewportView(_instanceAlreadyExistsMsgTextArea); + jscrollpane5.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); + jscrollpane5.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); + jpanel1.add(jscrollpane5,cc.xy(4,12)); + + addFillComponents(jpanel1,new int[]{ 1,2,3,4,5 },new int[]{ 1,2,3,4,5,6,7,8,9,10,11,12,13 }); + return jpanel1; + } + + /** + * Initializer + */ + protected void initializePanel() + { + setLayout(new BorderLayout()); + add(createPanel(), BorderLayout.CENTER); + } + + +} diff --git a/3rdparty/launch4j/src/net/sf/launch4j/form/SingleInstanceForm.java b/3rdparty/launch4j/src/net/sf/launch4j/form/SingleInstanceForm.java index 2bfe724a..7a2eb2ea 100644 --- a/3rdparty/launch4j/src/net/sf/launch4j/form/SingleInstanceForm.java +++ b/3rdparty/launch4j/src/net/sf/launch4j/form/SingleInstanceForm.java @@ -1,141 +1,141 @@ -package net.sf.launch4j.form; - -import com.jgoodies.forms.layout.CellConstraints; -import com.jgoodies.forms.layout.FormLayout; -import java.awt.BorderLayout; -import java.awt.Container; -import java.awt.Dimension; -import javax.swing.Box; -import javax.swing.ImageIcon; -import javax.swing.JCheckBox; -import javax.swing.JLabel; -import javax.swing.JPanel; -import javax.swing.JTextField; - -public abstract class SingleInstanceForm extends JPanel -{ - protected final JLabel _splashFileLabel = new JLabel(); - protected final JTextField _mutexNameField = new JTextField(); - protected final JCheckBox _singleInstanceCheck = new JCheckBox(); - protected final JTextField _windowTitleField = new JTextField(); - protected final JLabel _splashFileLabel1 = new JLabel(); - - /** - * Default constructor - */ - public SingleInstanceForm() - { - initializePanel(); - } - - /** - * Adds fill components to empty cells in the first row and first column of the grid. - * This ensures that the grid spacing will be the same as shown in the designer. - * @param cols an array of column indices in the first row where fill components should be added. - * @param rows an array of row indices in the first column where fill components should be added. - */ - void addFillComponents( Container panel, int[] cols, int[] rows ) - { - Dimension filler = new Dimension(10,10); - - boolean filled_cell_11 = false; - CellConstraints cc = new CellConstraints(); - if ( cols.length > 0 && rows.length > 0 ) - { - if ( cols[0] == 1 && rows[0] == 1 ) - { - /** add a rigid area */ - panel.add( Box.createRigidArea( filler ), cc.xy(1,1) ); - filled_cell_11 = true; - } - } - - for( int index = 0; index < cols.length; index++ ) - { - if ( cols[index] == 1 && filled_cell_11 ) - { - continue; - } - panel.add( Box.createRigidArea( filler ), cc.xy(cols[index],1) ); - } - - for( int index = 0; index < rows.length; index++ ) - { - if ( rows[index] == 1 && filled_cell_11 ) - { - continue; - } - panel.add( Box.createRigidArea( filler ), cc.xy(1,rows[index]) ); - } - - } - - /** - * Helper method to load an image file from the CLASSPATH - * @param imageName the package and name of the file to load relative to the CLASSPATH - * @return an ImageIcon instance with the specified image file - * @throws IllegalArgumentException if the image resource cannot be loaded. - */ - public ImageIcon loadImage( String imageName ) - { - try - { - ClassLoader classloader = getClass().getClassLoader(); - java.net.URL url = classloader.getResource( imageName ); - if ( url != null ) - { - ImageIcon icon = new ImageIcon( url ); - return icon; - } - } - catch( Exception e ) - { - e.printStackTrace(); - } - throw new IllegalArgumentException( "Unable to load image: " + imageName ); - } - - public JPanel createPanel() - { - JPanel jpanel1 = new JPanel(); - FormLayout formlayout1 = new FormLayout("FILL:7DLU:NONE,RIGHT:MAX(65DLU;DEFAULT):NONE,FILL:3DLU:NONE,FILL:60DLU:NONE,FILL:DEFAULT:GROW(1.0),FILL:7DLU:NONE","CENTER:9DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,CENTER:DEFAULT:NONE,CENTER:9DLU:NONE"); - CellConstraints cc = new CellConstraints(); - jpanel1.setLayout(formlayout1); - - _splashFileLabel.setIcon(loadImage("images/asterix.gif")); - _splashFileLabel.setName("splashFileLabel"); - _splashFileLabel.setText(Messages.getString("mutexName")); - jpanel1.add(_splashFileLabel,cc.xy(2,4)); - - _mutexNameField.setName("mutexNameField"); - _mutexNameField.setToolTipText(Messages.getString("mutexNameTip")); - jpanel1.add(_mutexNameField,cc.xywh(4,4,2,1)); - - _singleInstanceCheck.setActionCommand("Enable splash screen"); - _singleInstanceCheck.setName("singleInstanceCheck"); - _singleInstanceCheck.setText(Messages.getString("enableSingleInstance")); - jpanel1.add(_singleInstanceCheck,cc.xywh(4,2,2,1)); - - _windowTitleField.setName("windowTitleField"); - _windowTitleField.setToolTipText(Messages.getString("windowTitleTip")); - jpanel1.add(_windowTitleField,cc.xywh(4,6,2,1)); - - _splashFileLabel1.setName("splashFileLabel"); - _splashFileLabel1.setText(Messages.getString("windowTitle")); - jpanel1.add(_splashFileLabel1,cc.xy(2,6)); - - addFillComponents(jpanel1,new int[]{ 1,2,3,4,5,6 },new int[]{ 1,2,3,4,5,6,7 }); - return jpanel1; - } - - /** - * Initializer - */ - protected void initializePanel() - { - setLayout(new BorderLayout()); - add(createPanel(), BorderLayout.CENTER); - } - - -} +package net.sf.launch4j.form; + +import com.jgoodies.forms.layout.CellConstraints; +import com.jgoodies.forms.layout.FormLayout; +import java.awt.BorderLayout; +import java.awt.Container; +import java.awt.Dimension; +import javax.swing.Box; +import javax.swing.ImageIcon; +import javax.swing.JCheckBox; +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.JTextField; + +public abstract class SingleInstanceForm extends JPanel +{ + protected final JLabel _splashFileLabel = new JLabel(); + protected final JTextField _mutexNameField = new JTextField(); + protected final JCheckBox _singleInstanceCheck = new JCheckBox(); + protected final JTextField _windowTitleField = new JTextField(); + protected final JLabel _splashFileLabel1 = new JLabel(); + + /** + * Default constructor + */ + public SingleInstanceForm() + { + initializePanel(); + } + + /** + * Adds fill components to empty cells in the first row and first column of the grid. + * This ensures that the grid spacing will be the same as shown in the designer. + * @param cols an array of column indices in the first row where fill components should be added. + * @param rows an array of row indices in the first column where fill components should be added. + */ + void addFillComponents( Container panel, int[] cols, int[] rows ) + { + Dimension filler = new Dimension(10,10); + + boolean filled_cell_11 = false; + CellConstraints cc = new CellConstraints(); + if ( cols.length > 0 && rows.length > 0 ) + { + if ( cols[0] == 1 && rows[0] == 1 ) + { + /** add a rigid area */ + panel.add( Box.createRigidArea( filler ), cc.xy(1,1) ); + filled_cell_11 = true; + } + } + + for( int index = 0; index < cols.length; index++ ) + { + if ( cols[index] == 1 && filled_cell_11 ) + { + continue; + } + panel.add( Box.createRigidArea( filler ), cc.xy(cols[index],1) ); + } + + for( int index = 0; index < rows.length; index++ ) + { + if ( rows[index] == 1 && filled_cell_11 ) + { + continue; + } + panel.add( Box.createRigidArea( filler ), cc.xy(1,rows[index]) ); + } + + } + + /** + * Helper method to load an image file from the CLASSPATH + * @param imageName the package and name of the file to load relative to the CLASSPATH + * @return an ImageIcon instance with the specified image file + * @throws IllegalArgumentException if the image resource cannot be loaded. + */ + public ImageIcon loadImage( String imageName ) + { + try + { + ClassLoader classloader = getClass().getClassLoader(); + java.net.URL url = classloader.getResource( imageName ); + if ( url != null ) + { + ImageIcon icon = new ImageIcon( url ); + return icon; + } + } + catch( Exception e ) + { + e.printStackTrace(); + } + throw new IllegalArgumentException( "Unable to load image: " + imageName ); + } + + public JPanel createPanel() + { + JPanel jpanel1 = new JPanel(); + FormLayout formlayout1 = new FormLayout("FILL:7DLU:NONE,RIGHT:MAX(65DLU;DEFAULT):NONE,FILL:3DLU:NONE,FILL:60DLU:NONE,FILL:DEFAULT:GROW(1.0),FILL:7DLU:NONE","CENTER:9DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,CENTER:DEFAULT:NONE,CENTER:3DLU:NONE,CENTER:DEFAULT:NONE,CENTER:9DLU:NONE"); + CellConstraints cc = new CellConstraints(); + jpanel1.setLayout(formlayout1); + + _splashFileLabel.setIcon(loadImage("images/asterix.gif")); + _splashFileLabel.setName("splashFileLabel"); + _splashFileLabel.setText(Messages.getString("mutexName")); + jpanel1.add(_splashFileLabel,cc.xy(2,4)); + + _mutexNameField.setName("mutexNameField"); + _mutexNameField.setToolTipText(Messages.getString("mutexNameTip")); + jpanel1.add(_mutexNameField,cc.xywh(4,4,2,1)); + + _singleInstanceCheck.setActionCommand("Enable splash screen"); + _singleInstanceCheck.setName("singleInstanceCheck"); + _singleInstanceCheck.setText(Messages.getString("enableSingleInstance")); + jpanel1.add(_singleInstanceCheck,cc.xywh(4,2,2,1)); + + _windowTitleField.setName("windowTitleField"); + _windowTitleField.setToolTipText(Messages.getString("windowTitleTip")); + jpanel1.add(_windowTitleField,cc.xywh(4,6,2,1)); + + _splashFileLabel1.setName("splashFileLabel"); + _splashFileLabel1.setText(Messages.getString("windowTitle")); + jpanel1.add(_splashFileLabel1,cc.xy(2,6)); + + addFillComponents(jpanel1,new int[]{ 1,2,3,4,5,6 },new int[]{ 1,2,3,4,5,6,7 }); + return jpanel1; + } + + /** + * Initializer + */ + protected void initializePanel() + { + setLayout(new BorderLayout()); + add(createPanel(), BorderLayout.CENTER); + } + + +} diff --git a/3rdparty/launch4j/src/net/sf/launch4j/formimpl/MainFrame.java b/3rdparty/launch4j/src/net/sf/launch4j/formimpl/MainFrame.java index 4a2cc871..f9a208ac 100644 --- a/3rdparty/launch4j/src/net/sf/launch4j/formimpl/MainFrame.java +++ b/3rdparty/launch4j/src/net/sf/launch4j/formimpl/MainFrame.java @@ -333,7 +333,7 @@ public class MainFrame extends JFrame { String path = _outfile.getPath(); if (Util.WINDOWS_OS) { log.append(Messages.getString("MainFrame.executing") + path); - Util.exec(new String[] { path }, log); + Util.exec(new String[] { path, "--l4j-debug" }, log); } else { log.append(Messages.getString("MainFrame.jar.integrity.test") + path); diff --git a/3rdparty/launch4j/src/net/sf/launch4j/formimpl/SingleInstanceFormImpl.java b/3rdparty/launch4j/src/net/sf/launch4j/formimpl/SingleInstanceFormImpl.java index c916a918..f87e0430 100644 --- a/3rdparty/launch4j/src/net/sf/launch4j/formimpl/SingleInstanceFormImpl.java +++ b/3rdparty/launch4j/src/net/sf/launch4j/formimpl/SingleInstanceFormImpl.java @@ -1,54 +1,54 @@ -/* - Launch4j (http://launch4j.sourceforge.net/) - Cross-platform Java application wrapper for creating Windows native executables. - - Copyright (c) 2004, 2007 Grzegorz Kowal - - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of the Launch4j nor the names of its contributors - may be used to endorse or promote products derived from this software without - specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/** - * Created on 2007-09-22 - */ -package net.sf.launch4j.formimpl; - -import net.sf.launch4j.binding.Bindings; -import net.sf.launch4j.config.SingleInstance; -import net.sf.launch4j.form.SingleInstanceForm; - -/** - * @author Copyright (C) 2007 Grzegorz Kowal - */ -public class SingleInstanceFormImpl extends SingleInstanceForm { - - public SingleInstanceFormImpl(Bindings bindings) { - bindings.addOptComponent("singleInstance", SingleInstance.class, - _singleInstanceCheck) - .add("singleInstance.mutexName", _mutexNameField) - .add("singleInstance.windowTitle", _windowTitleField); - } -} +/* + Launch4j (http://launch4j.sourceforge.net/) + Cross-platform Java application wrapper for creating Windows native executables. + + Copyright (c) 2004, 2007 Grzegorz Kowal + + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of the Launch4j nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/** + * Created on 2007-09-22 + */ +package net.sf.launch4j.formimpl; + +import net.sf.launch4j.binding.Bindings; +import net.sf.launch4j.config.SingleInstance; +import net.sf.launch4j.form.SingleInstanceForm; + +/** + * @author Copyright (C) 2007 Grzegorz Kowal + */ +public class SingleInstanceFormImpl extends SingleInstanceForm { + + public SingleInstanceFormImpl(Bindings bindings) { + bindings.addOptComponent("singleInstance", SingleInstance.class, + _singleInstanceCheck) + .add("singleInstance.mutexName", _mutexNameField) + .add("singleInstance.windowTitle", _windowTitleField); + } +} diff --git a/3rdparty/launch4j/web/changelog.html b/3rdparty/launch4j/web/changelog.html index 83511a55..afd53920 100644 --- a/3rdparty/launch4j/web/changelog.html +++ b/3rdparty/launch4j/web/changelog.html @@ -11,7 +11,7 @@
- launch4j 3.0.1 + launch4j 3.0.2
    @@ -19,8 +19,8 @@
  • Docs
  • Changelog
  • Screenshots
  • -
  • Download
  • -
  • Support
  • +
  • Download
  • +
  • Support
  • Project summary
  • Bug tracker
  • Links
  • @@ -36,6 +36,14 @@

    Changelog

    +

    Changes in version 3.0.2 (02-01-2011)

    +
      +
    • Fixed the command line in Exec error message.
    • +
    • Fixed set environment variable bug.
    • +
    • Added wrapper logging to launch4j GUI.
    • +
    • Fixed critical bug: heap size over the limit.
    • +
    +

    Changes in version 3.0.1 (20-07-2008)

    • Enhanced the runtime logging (--l4j-debug).
    • @@ -43,28 +51,28 @@
    • Fixed bug #1919406, #1989479 Not every option is loaded from saved xml file (found by Robert Lachner, Jan-Philipp Rathje).
    • Fixed bug #1930222 Simple typo (found by Daniel).
    - -

    Changes in version 3.0.0 (16-03-2008)

    -
      -
    • FR #1390075 Added dynamic initial/max heap values.
    • -
    • FR #1707827 Allow to prefer JDK private runtimes over JREs (Ian Roberts).
    • -
    • FR #1730245 Allow to run only a single aplication instance (Sylvain Mina).
    • -
    • FR #1391610 Added IBM JRE/JDK support.
    • -
    • Added environment variable expansion in bundled JRE path.
    • -
    • Fixed critical bug #1882524 JRE detection problem on 64-bit Windows.
    • -
    • Fixed bug #1758912 Vista elevation to full administrator privileges.
    • -
    • Fixed bug #1784341 Problems with spaces in paths under linux (Michael Piefel).
    • -
    • Fixed bug where /bin was appended to path environment variable instead of jre_path/bin.
    • -
    - -

    Changed license to BSD, MIT (26-01-2008)

    -
      -
    • - The upcoming Launch4j 3.0.0 release will be licensed under the much more - liberal new BSD license. The head subproject (the binary header attached to wrapped jars) - will be licensed under the similar MIT license. -
    • -
    + +

    Changes in version 3.0.0 (16-03-2008)

    +
      +
    • FR #1390075 Added dynamic initial/max heap values.
    • +
    • FR #1707827 Allow to prefer JDK private runtimes over JREs (Ian Roberts).
    • +
    • FR #1730245 Allow to run only a single aplication instance (Sylvain Mina).
    • +
    • FR #1391610 Added IBM JRE/JDK support.
    • +
    • Added environment variable expansion in bundled JRE path.
    • +
    • Fixed critical bug #1882524 JRE detection problem on 64-bit Windows.
    • +
    • Fixed bug #1758912 Vista elevation to full administrator privileges.
    • +
    • Fixed bug #1784341 Problems with spaces in paths under linux (Michael Piefel).
    • +
    • Fixed bug where /bin was appended to path environment variable instead of jre_path/bin.
    • +
    + +

    Changed license to BSD, MIT (26-01-2008)

    +
      +
    • + The upcoming Launch4j 3.0.0 release will be licensed under the much more + liberal new BSD license. The head subproject (the binary header attached to wrapped jars) + will be licensed under the similar MIT license. +
    • +

    Changes in version 3.0.0-pre2 (29-10-2006)

      @@ -342,9 +350,9 @@
    • Configuration parameter 'args' changed to 'jvmArgs'
    -