From ac4d52cf0f9978349a1c6c6e74bb00842cd3491a Mon Sep 17 00:00:00 2001 From: Robert Vokac Date: Sat, 3 Feb 2024 23:34:12 +0000 Subject: [PATCH] Added new improvements --- Readme.md | 46 ++++++++++- images/screenshot.png | Bin 0 -> 25444 bytes pom.xml | 8 +- .../utils/timecalc/gui}/AnalogClock.java | 7 +- .../nanoboot/utils/timecalc/gui}/Battery.java | 9 +-- .../utils/timecalc/gui}/ProgressCircle.java | 4 +- .../utils/timecalc/gui}/ProgressSquare.java | 8 +- .../utils/timecalc/gui/TimeCalcButton.java | 13 ++++ .../nanoboot/utils/timecalc/gui}/Toaster.java | 4 +- .../utils/timecalc/gui}/WeatherWindow.java | 6 +- .../nanoboot/utils/timecalc/gui}/Widget.java | 6 +- .../nanoboot/utils/timecalc/main/Main.java | 60 +++++++++++++++ .../utils/timecalc/main}/TimeCalcConf.java | 33 +++----- .../timecalc/main/TimeCalcException.java | 11 +++ .../utils/timecalc/main}/TimeCalcWindow.java | 72 +++++++++++++----- .../utils/timecalc/utils}/BooleanHolder.java | 4 +- .../utils/timecalc/utils/Constants.java | 14 ++++ .../utils/timecalc/utils/DateFormats.java | 11 +++ .../utils/timecalc/utils/FileConstants.java | 16 ++++ .../utils/timecalc/utils}/HttpProxy.java | 4 +- .../nanoboot/utils/timecalc/utils}/Jokes.java | 5 +- .../utils/timecalc/utils}/JokesTxt.java | 2 +- .../utils/timecalc/utils/NumberFormats.java | 11 +++ .../nanoboot/utils/timecalc/utils}/Utils.java | 54 ++++++++++++- src/main/java/rvc/timecalc/Main.java | 57 -------------- timecalc.conf | 2 +- 26 files changed, 337 insertions(+), 130 deletions(-) create mode 100644 images/screenshot.png rename src/main/java/{rvc/timecalc => org/nanoboot/utils/timecalc/gui}/AnalogClock.java (97%) rename src/main/java/{rvc/timecalc => org/nanoboot/utils/timecalc/gui}/Battery.java (97%) rename src/main/java/{rvc/timecalc => org/nanoboot/utils/timecalc/gui}/ProgressCircle.java (93%) rename src/main/java/{rvc/timecalc => org/nanoboot/utils/timecalc/gui}/ProgressSquare.java (94%) create mode 100644 src/main/java/org/nanoboot/utils/timecalc/gui/TimeCalcButton.java rename src/main/java/{rvc/timecalc => org/nanoboot/utils/timecalc/gui}/Toaster.java (99%) rename src/main/java/{rvc/timecalc => org/nanoboot/utils/timecalc/gui}/WeatherWindow.java (98%) rename src/main/java/{rvc/timecalc => org/nanoboot/utils/timecalc/gui}/Widget.java (93%) create mode 100644 src/main/java/org/nanoboot/utils/timecalc/main/Main.java rename src/main/java/{rvc/timecalc => org/nanoboot/utils/timecalc/main}/TimeCalcConf.java (62%) create mode 100644 src/main/java/org/nanoboot/utils/timecalc/main/TimeCalcException.java rename src/main/java/{rvc/timecalc => org/nanoboot/utils/timecalc/main}/TimeCalcWindow.java (96%) rename src/main/java/{rvc/timecalc => org/nanoboot/utils/timecalc/utils}/BooleanHolder.java (85%) create mode 100644 src/main/java/org/nanoboot/utils/timecalc/utils/Constants.java create mode 100644 src/main/java/org/nanoboot/utils/timecalc/utils/DateFormats.java create mode 100644 src/main/java/org/nanoboot/utils/timecalc/utils/FileConstants.java rename src/main/java/{rvc/timecalc => org/nanoboot/utils/timecalc/utils}/HttpProxy.java (95%) rename src/main/java/{rvc/timecalc => org/nanoboot/utils/timecalc/utils}/Jokes.java (93%) rename src/main/java/{rvc/timecalc => org/nanoboot/utils/timecalc/utils}/JokesTxt.java (95%) create mode 100644 src/main/java/org/nanoboot/utils/timecalc/utils/NumberFormats.java rename src/main/java/{rvc/timecalc => org/nanoboot/utils/timecalc/utils}/Utils.java (56%) delete mode 100644 src/main/java/rvc/timecalc/Main.java diff --git a/Readme.md b/Readme.md index 1bf588d..52e32a2 100644 --- a/Readme.md +++ b/Readme.md @@ -1,5 +1,47 @@ # Time Calc -# Hint files +## Introduction -focus.txt - request focus for the window +Time Calc is a desktop application used to track the remaining time until the end of some activity - like working hours. + +_Time Calc is written in Java programming language and using the Swing framework._ + +![Tux, the Linux mascot](images/screenshot.png) +## Usage + +### Start of application + +When "Time Calc" is started", user is asked for: + - start time ... like 7:30 + - overtime ... like 0:45 ... overtime is optional and the default value is 0:00 + +### Restart of application + +You can restart the app, if you press the **"Restart"** button. + - Then you are asked again for start time and overtime. + +### End of application + +You can stop the app, if you press the **"Exit"** button or click on the exit window button. +- Then application is stopped. + + +## Special files + +If these files are present, something special happens. + +### starttime.txt + +This file contains the default start time - used during the previous run of the app. +If file starttime.txt does not exist, then the default start time is 7:00. + +### overtime.txt + +This file contains the default overtime - used during the previous run of the app. +If file overtime.txt does not exist, then the default overtime is 0:00. + +### test.txt +If file test.txt exists, then user is not asked for start time and overtime. Instead, the values in files starttime.txt and overtime.txt are used. + +### focus.txt +Requests focus for the window. diff --git a/images/screenshot.png b/images/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..2aebaf56eca18e4a7b31b150463c55c25866bbda GIT binary patch literal 25444 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%0D?rNmVCD@zz7pJy~&14dza!YqSMQ ze+OE{PQXyfGr-4E7zQae881eZLyFyEwtjkg8cb(^DaQ1X&tXKxCXK4ICP6IQ}4t7$AA_P5dG<>iHq8;~0$TD61ug~J!6&QqygDs`UZ z0#IX~pP!e*f}XKQ?>+)yg>Rd8^xht!6ZQYD)I6xa;(}k*wNi18AI2ww^^?!=*nMQ9 z!|3={8kUkX$~d+me)PFuXaiPpk#RwBJAfZFw!t{OA&o97FCMl)SUbviRQH?YXpbJT z!8eNJg!x?|ssNYR*$=GiR3>IKecFa?wZ#3^7#!|{FE0;Bb%`I#7J$Py^A~v#{|x-d ze|+Rgq3kj#PK3|pxQ=hT7l{i+B*?kNE<`r7+ME}&?O%&VHV#^{wBJJ7~T{o)45RYxZ#Z>L(;1~c~C86h63>yKf}qe@x` z##oOh$nA3gublPw0^=Nj*~#xDi~#-xU<(D|=cs=Aly>!M^lUg2jPA~GA3{8y4N)kf zWsM`sl`7L;Xq1WHUCymFqm4m{NWf;Q48%eu1OBWcC-)OW&UiE*3JxfR_mcC8W~I^a zz(>yz3*Z`}R?Grv_L(d{L-jne3+K~-Nx>U8pI;%eqF~Qp$l&l00~8^3 zBhd5#aTmVvAfs0;uinUqQJFH$b8)fUBj)^^YZdl<>C=!P2%p37E^x#*j^>UI6mYWY zL0kUqENrsU%z0Rn9Ty+}P;A|E=rf?1fFsQQ`$#lA?SFPurwW10hLx1i4DOYG|Nb51 zzjh0D@_=*@iRm6m1)3JB-nb6)jiGEt_GpP=96HJdE&aSnV2A$8SrC?GU^ zEh50VRB(Nd@G!~!<~)K@TC>793crs>P*&{DFerak;cx=Js2AkWjpw9Dq zMI7+0ZgAvmbZjg-Drzv-3M?DU-**QyIsoc|w;-uQ3FI>lYBs|4AwN67s{n`KswLFk zPCwoNz_6XmgY|0kAFKwSo3Q`i2WKM#b-^jTgCMOyP{|JsfwT=MmjR14rKRB($cYR8 zT1B(LpCkXIivRaG?*HdE0{;Jh!#p~@`~8t((6F}3?M>ROZ+ zOO*CLCgOAR`D+|Go zxYFzevFjzdJ_oKi-*1`z$thx=!!DW0YG%*dQ)U!mr&T~)pKL~cMnH@i{ooKm8whCS zR?QmMoUc%pVtmQ2^)526C7S~?%jbH?KM2k(iE>h!Mq6fQtnC)Nj%UgqWB)i3>C;o# zz?hYNz39i&*Fy4ZPc8(4st+qAKjml6a)}A7clDaRsvN6Ir^>)oRh;CpI=K|BV7d^* zzPIZViJDPXmmz4u{4G_4_)ASt(p*vmEB)qMj_>4CO1@xSMB1ZasmWt&PHWz;Zijl| z_&9~a%z|Tt#Y_#FV{siX?E;XCzw2BSP4Mn!U#7KC zUj(a+mAJC`yV>(ghZzZ!XjykvV!H$f6N&pcA{ZY+*n!aGlKN%Gnl;uVQKyQ-K&G{R z<>W9%Rc1$>#SpCx@1p=iG`iT+z*vK4+3S6R7LnrDYAurY>?YhIQrE4oXPB=Gi~NXv z2l-`B+tsFc?5xH|Sm29%C0_QA%7I)uEwDY&r{G z({De>(Nunj#S)rz62dc}e5LhKNihDvc#Mr{_bHm0Zt??D;&QwDb-n~2xx<1ZF8QJpYs3Tvdyk z?nzDX?CM_Emu8Ju(MqL8(HHl3>T{VanIBrbL7izb>K*7snVp&E!f3vO`sTsI0;AL4 zLG6pT%bbf0$O2iRg%Vs8vC)B|9D1pS^TcSwzdk*uD4AKwjeb>L@Df2gdAl2`e3zD}3__o5kV;v$^I2Y(im7?f`hrz3AX~uSybgri^}v z{Ad_n44ryC_jP;4Ye%DCWRGe)uJ--x&zlldbKlztNeY_d6{cAtwvy=*SF&NAF0opq z?vv)9JQCWqdK4!Vx$AkSERCAFjbt}`lS#}x>fc6Nh1)d-JfkpPa$7ZD8qH>hAcOYiPlPMzp0barxV9>?EAb{ixMyZ9_IZc9q6bm~HXQ|GEW-T{~~#@_sGd|Z8@QY^-QcfB?j-NCZLneZT0}T7R4ij2=X;~E;yF^27suM#JL+I&8%wK~Dwl>9 z-*BwBy`IzNy1zpcZjSi0hS5uPPC{>={03)K@3p)fV{dPM)=IeV^S6XL`7GwqBVz$? zKtTi21tPiqz!m=HP0ONCQIF;_?{UVy;Ug04cj};1$P%Ksi=cl9C}4vCi1--Le88`D zD&KsT$F-`<5A(RsQY)?XdZL(Q@?<1^F(+;M{f*=lG7k<(5#Ro(ere6wl}01!RfOl* zl22oHb#_LZ*ONrM0iTaz0SApvl~Mk=OjQ{#&Y%}Q&u=zDwY@g@mR4^aL4D9^#P|Q_ zs;`S(MEVP2YsL#~>P?z;7slIlyNd;pddJ4w7n^N&g~8%NrG92*WO)_o=e+@7I{vVa zGOb=`_i&{J{*!|Y#e=KE{zDR&$DjPJd_cE@nCJ_CLgdW<2q9nF_CVJp=qI8A@Hk4P zQPiMEe9Ytn)_*=}@}F-Z{ks@Id<*5?|NRz9n9lL_X@&VrtBRwIO@&5Xb!m|l*RjGI zt7X6Y+@9(i!vB3~*wWrsSp~l4qbK6gelAf_3e38Gu@2{Y+mj|WL!%~5$cuxR{>3Acn!Y~aGu3Qh$ z7;Q5Uizej}4Eldcx$3y4*Zn^bK~YdjWP+$jr%Df`rDMbxBgA1aI+RjEk(7=RN)C|N zC>bG6L>iRN(Fh_Sf`sT0_F4`Ap8#$Y;P6YHZerNFPX^=>GW#N^>Jl~WSog5!LD9`0Nx>}R9$uHTAKaeziucl!&% zQCQS>Nf_sTt4v%W0~!5uMm|CJTZKiBMCz=bpgw|og~~?_(y#i{r2>q<>g&y|QYtw~ zTLwPBt_X@@hu(dhL#N{?=*`4jHi=izCTFMTJzUv~fpetqt8Ab+E*#{<6Z-7knB6Z}?)5mB@}%q) zEM-8~Sy*3EsEKx`cL^DitH+BLjsSQ7=69Y3DdBq-W&@Z-z^o!RPZVGlAR>l6bYLS0 z9!UW(8+V{A_2u!R3yN4uMYl7sK31dzH6Sew`bImF@}C;^{G$q?`Ao{wK)ww0V+iia zt?*z8odW^Krfwf66BKy9+3uUz+k4N@W}sG=9~3C9A@QwXjPZR6!2ti?cGrAl^7uI2 zVFakv`nN&7$U6upjo?Mijy_P#!vAM4rUKsd_!a1K2we9nAl>uAFclT%0@^9T-#1}V zD5Y4H+GokfScW56nu7|Y_?+C3C}6kh#Rmu6>J>9=evc5_d-Bammi<2j|C3LUpms{5 z&$dmTlgyrkdP7C@7>>r&Fy9vHtaeq`9QAf)j7_8m7W)jt>R}!py*v^a520;Cf?C-% zwRxmI@u48cCZ==Y_($sMp2i|G$xkWHJUcI(GFFYrS(ft(2|*5gdGU~b<3**dPHaEgnDy>V@k5G`V7pr;oX ztifLz+`uv7D}DsDAcAU}ZRX&1oUez-F%&USUdV&c?wq>-%Bjuajz8s@P?1KnvZ{!^ z@_icR;Q5e3P_bDPaj|BfrPU~D8=(IcNcrqPuOMe428KI(W6r!gf2l?I7Me!O z?C!d{S(LHA((ff5jGkx@k>eUOA5xN z&RYzppJEC%(GazY9LQIIHU+S};yhjyV>J^2cz@8LAacO?cV7OVgasYorp#qw(<5jI zjy>^a{%i`!cufZ+;LY<&A#p5HIj_MM085cA0tOucCCV`cXr&)knyhJhHk|m|7wO4Kg5o+9fF*@{OW&?W)x0e&D}3g3x|gT9K|(Y$ zU|yWXh(rZ+eZx^92iW7zG9VE*PgtBPk22AKPq_wPLEZ?c+Lud6n!3DfHgtTeeE(ddilrhZqcXjJWgWT7mz2`;k=E)K4L&)w-+VHxS#S%qurKv=FCJ z?%oHkDa_I7O$N6_0h+Ag>Dsth`U+B+2kO6M2$PIhZ8XpKN&7lwFu17Mj*;ZLqXs%< zpBk@L%*Jg`DaC4ywK|}U)pZ3FM-t8elO0d(7)bBp%Z&@KuBAjtMPD^I` z;1iD}=fOa_WO|rzm>m)xQ)(mKq$*B*(0?s~RqbRUB}kDPQmbA!+f;agTBo^M$KO8X zDUg;dRJUxAACfq+f8V|yMb1V=`N|f7XCetLi^FAAWH+KHU)OABs9+A*VI2^JfDUo* zhW6b#Xo}Lmc`-6jRE6xOeRd-TI%`bHVOUY#zggfidBXnBzc!ZpM{(+po#_7e33O$M zq55O#VxzdZ9K^iw|mKVffcdCfZK)Ob`=mi(R3+822pmKR~H0V z`W6N8B+pHAOjz{hTOgmPJ2uj2Mh-rTK2z|WB-maQY_D=V*P_dzeLT=d!-$cFH{bEc z|HsQnftQu>vsZiDw@CrXZt~}KBYz~6XOMTCHTrXN9(I|MGw>W5h9b1ry48%Gc&x! zl26_swqS6Xl{mp#?Y7yF9jw)cL3#{LHp!BY1NKXd*N0?AFK+8OE@t34Cm27Ed`{3v zyi!A|BDS+3k>eJ)sc4IDYbr#%uNRRoA?-j;ZorIrUprK5vB&Am%JXMjTdzG-Il#gLR-otK)A?}Q}7rA)tD^C;&+ zWz%@BWQafUT^$T|-ZQ*0;C7+RCPlJP!L;{~iC-mYq7OMMAb7)Ur_^KT29gp(mI5zO zVAXD(1M`piq!)1rMH!>UI#Wjw+wqMMLP9mZ#BI*}NYjUS$+kKJ$ctb>l(aTVD{(_q zw?oTp?fL3yxwl?4(o0f;m5aoG4G2mhe9vyWhKczcI)=L+)*?bIz?X~+7^iOxqnBD0T zAt9mc5<}lt(I=m^qy9P+vKsz%sJwHaZouab3#-_QPu`cd4vUfPd#))aHXH)#gW;Zm za}~?W(xU&eAkBWWL74(vwV#0QzM7rov9;FX*WLp!8F;V49Ooi3!Ms~H%zvjSC_evD zsUFPzv*>;SS^Tt-LqR-0I6Qv4T=ZZAT)KjOsA1o_b4gtD^ID#bHA5gR{>>^vlr3()KN)3s3oUDQ?$I$ zTW0gPAjCZVjQPuNtac$op{ZYZQTUQI;5B4?VmbU~8gTu%h}^IjWWnIs&;5)XIR1Lt zA8AxSc_LFIx?N_x$p{elktJ`#1 z{c%%AK+7LXb4oGw?z5$;zERzA^xCx19*5L*v3_nJuJS>(ABch~o;Ae1j-u|0ZD8D# zQP!3f;+G?yWtS-PS?yRc$VO9L1=-#T;SS=UOXmvVUUYwmz703@s!)-(L*hRb`D0Xt z55EL;cLEDTz;f#J+Wqr~gcnM4R&7IE`WqLMCjFur@#nu%DncMa{2y&s*=2;F8C(@P zz@8Y6*HEUS$$Os6+;*C)2Ln7j;D*CJQ!;Mw?91x5n!ujwkcSu^Sl#w+-G3l;qfR0F zmxS2KOULY^Veo@YwS6#h$yACVbglk&`**Qju&tMVT`^9*F=vkqEz_BuZJOJ>YumL; z^3m|s;jU*52=|D>e6-|CPg#xj?TQbqy>seCtBSrEuuoMw7a>+RSSOrN?}@wX)|)LQ zl*pikU1~7~8042FI;Q$er^np6ZnkBLkVB;mfAw3u$(;(cv1xjCEZG)^r%W{=ai)V!wt zZqS{1tTi`&#w+p#^o;UUWDLoLdvMc65SoEu=2-sB(e4nJFs&vH7iE-& zd}7)oo>m18n#oK4PpvQ|a`{uI%@p#jp>0fC-5miwDTnnxx>mfdnslBA8_jj9&EOl& zQ-=Cmx&v2I&R9upC45M9O#-wgtkV6-jjnq=Joj5plOkI4`pmJa6}`tX6VGp!YyCjS zi0cv3uWcCb-pwEai`UO~TFqXr6us{}q?=h&ud+cZW7>YSN9F75{frjSD?T;#yBbE1 z1!`Han1$d#3;z?!qms5NTR&BLFzCs4gZD^fKva9ZyC-~U=_LY^9@QUaUzIZCZNlC@ zPR&9s;2mVj)7vj!(hY-}4nw8ITs-R&-HOKDn~vmXxlKJ7f5BUR@jhTUXX-tos*=Ht zU)T;;#5pW~E?G2}5Fh^(d_@oT1Ks}abR^8VH?#Se-7Pa2S4Zo&ne!qp_Gd*YmXw?j zlRqb|9w+j%<|oEe>XZ3F-VWOSJK z>L?yL2gA|zb|Xm-#jRg2xfNwf=yoZ){SNk#K(Wy4?K)mMp~Uxvq48qhI~Yv~`<SnNNS$qAoyYgrZ;^Aa z)>*10mb72JcyPm)RqKaF7?@h~`)exMB!CAi?ne*&hdocHYRLX={lA=hqEn7&7p-!~t zJQos9YBZltXYf_VTHAfgl!&(i{8aTOdrFkPx3On!Z9*Pb<$7n8mEVk>?`&=zmDWnd zX#0k$6gHE!13N=jg!etCjo;{U7?vCn_fpxKaWYpE`OV8d-q{3=jZ{w}MwQQNZGqgzFEd5YwDA|i1`%nI^3%X1?&sZoli*iYxGQpV}+ zxP1Th3q4Om?_?J%ZZ)kS=)pyk1@P&#gQhf<2%hq5GZ%enHgJuEXbF>MOU8Q?`L?&_ zbEnyANW}-8!JAoKp#=*M@~)<8^gUNv@&yDKW zaY*p;F6FOBOzwRU`*qlL+F3pRA4U`us)Qi`2r|<+(99mwzvQA)@Mq8Erbat#18aK80g7>PZL8`$zk{IRSeQ2&})DEkSg z@@lvfEw}PCkG5=wQ>H54*!630*cEb8^6Jul+jWq}e_3_?-7(U?`N;8iJ2aG~Rx9j& lj=pUUoSwau^!T`U46@!l+yH$JTsZ=PG}ZJ}i 4.0.0 - rvc + org.nanoboot.utils time-calc - 1.0.0 + 0.1.0-SNAPSHOT time-calc time-calc @@ -40,7 +40,7 @@ true - rvc.timecalc.Main + org.nanoboot.utils.timecalc.main.Main @@ -53,7 +53,7 @@ - + diff --git a/src/main/java/rvc/timecalc/AnalogClock.java b/src/main/java/org/nanoboot/utils/timecalc/gui/AnalogClock.java similarity index 97% rename from src/main/java/rvc/timecalc/AnalogClock.java rename to src/main/java/org/nanoboot/utils/timecalc/gui/AnalogClock.java index 6e4e385..195f1f7 100644 --- a/src/main/java/rvc/timecalc/AnalogClock.java +++ b/src/main/java/org/nanoboot/utils/timecalc/gui/AnalogClock.java @@ -1,8 +1,9 @@ -package rvc.timecalc; +package org.nanoboot.utils.timecalc.gui; + +import org.nanoboot.utils.timecalc.main.TimeCalcConf; +import org.nanoboot.utils.timecalc.utils.Utils; import javax.swing.JFrame; -import javax.swing.JPanel; -import javax.swing.Timer; import java.awt.BasicStroke; import java.awt.Color; import java.awt.Dimension; diff --git a/src/main/java/rvc/timecalc/Battery.java b/src/main/java/org/nanoboot/utils/timecalc/gui/Battery.java similarity index 97% rename from src/main/java/rvc/timecalc/Battery.java rename to src/main/java/org/nanoboot/utils/timecalc/gui/Battery.java index 829c08a..59fa3d9 100644 --- a/src/main/java/rvc/timecalc/Battery.java +++ b/src/main/java/org/nanoboot/utils/timecalc/gui/Battery.java @@ -1,14 +1,13 @@ -package rvc.timecalc; +package org.nanoboot.utils.timecalc.gui; + +import org.nanoboot.utils.timecalc.main.TimeCalcConf; +import org.nanoboot.utils.timecalc.utils.Utils; -import javax.swing.JPanel; -import javax.swing.Timer; import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.RenderingHints; -import java.awt.event.MouseEvent; -import java.awt.event.MouseListener; import java.text.DecimalFormat; import java.text.NumberFormat; diff --git a/src/main/java/rvc/timecalc/ProgressCircle.java b/src/main/java/org/nanoboot/utils/timecalc/gui/ProgressCircle.java similarity index 93% rename from src/main/java/rvc/timecalc/ProgressCircle.java rename to src/main/java/org/nanoboot/utils/timecalc/gui/ProgressCircle.java index 0f1992b..248c18a 100644 --- a/src/main/java/rvc/timecalc/ProgressCircle.java +++ b/src/main/java/org/nanoboot/utils/timecalc/gui/ProgressCircle.java @@ -1,4 +1,6 @@ -package rvc.timecalc; +package org.nanoboot.utils.timecalc.gui; + +import org.nanoboot.utils.timecalc.utils.Utils; import java.awt.Color; import java.awt.Dimension; diff --git a/src/main/java/rvc/timecalc/ProgressSquare.java b/src/main/java/org/nanoboot/utils/timecalc/gui/ProgressSquare.java similarity index 94% rename from src/main/java/rvc/timecalc/ProgressSquare.java rename to src/main/java/org/nanoboot/utils/timecalc/gui/ProgressSquare.java index d28405d..cc002e9 100644 --- a/src/main/java/rvc/timecalc/ProgressSquare.java +++ b/src/main/java/org/nanoboot/utils/timecalc/gui/ProgressSquare.java @@ -1,14 +1,12 @@ -package rvc.timecalc; +package org.nanoboot.utils.timecalc.gui; + +import org.nanoboot.utils.timecalc.utils.Utils; -import javax.swing.JPanel; -import javax.swing.Timer; import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.RenderingHints; -import java.awt.event.MouseEvent; -import java.awt.event.MouseListener; public class ProgressSquare extends Widget { diff --git a/src/main/java/org/nanoboot/utils/timecalc/gui/TimeCalcButton.java b/src/main/java/org/nanoboot/utils/timecalc/gui/TimeCalcButton.java new file mode 100644 index 0000000..ecbe72d --- /dev/null +++ b/src/main/java/org/nanoboot/utils/timecalc/gui/TimeCalcButton.java @@ -0,0 +1,13 @@ +package org.nanoboot.utils.timecalc.gui; + +import javax.swing.JButton; + +/** + * @author Robert + * @since 21.02.2024 + */ +public class TimeCalcButton extends JButton { + public TimeCalcButton(String label) { + super(label); + } +} diff --git a/src/main/java/rvc/timecalc/Toaster.java b/src/main/java/org/nanoboot/utils/timecalc/gui/Toaster.java similarity index 99% rename from src/main/java/rvc/timecalc/Toaster.java rename to src/main/java/org/nanoboot/utils/timecalc/gui/Toaster.java index 72586cf..28f6661 100644 --- a/src/main/java/rvc/timecalc/Toaster.java +++ b/src/main/java/org/nanoboot/utils/timecalc/gui/Toaster.java @@ -1,4 +1,4 @@ -package rvc.timecalc; +package org.nanoboot.utils.timecalc.gui; /** * Java Toaster is a java utility class for your swing applications * that show an animate box coming from the bottom of your screen @@ -28,6 +28,8 @@ package rvc.timecalc; * } */ +import org.nanoboot.utils.timecalc.utils.Utils; + import javax.swing.BorderFactory; import javax.swing.Icon; import javax.swing.JButton; diff --git a/src/main/java/rvc/timecalc/WeatherWindow.java b/src/main/java/org/nanoboot/utils/timecalc/gui/WeatherWindow.java similarity index 98% rename from src/main/java/rvc/timecalc/WeatherWindow.java rename to src/main/java/org/nanoboot/utils/timecalc/gui/WeatherWindow.java index e5f0e04..12e65d8 100644 --- a/src/main/java/rvc/timecalc/WeatherWindow.java +++ b/src/main/java/org/nanoboot/utils/timecalc/gui/WeatherWindow.java @@ -1,4 +1,6 @@ -package rvc.timecalc; +package org.nanoboot.utils.timecalc.gui; + +import org.nanoboot.utils.timecalc.utils.Utils; import javax.swing.JEditorPane; import javax.swing.JFrame; @@ -19,7 +21,7 @@ import java.net.HttpURLConnection; import java.net.URL; /** - * @author Robert + * @author pc00289 * @since 16.02.2024 */ public class WeatherWindow extends JFrame { diff --git a/src/main/java/rvc/timecalc/Widget.java b/src/main/java/org/nanoboot/utils/timecalc/gui/Widget.java similarity index 93% rename from src/main/java/rvc/timecalc/Widget.java rename to src/main/java/org/nanoboot/utils/timecalc/gui/Widget.java index 8fbc13b..154ad32 100644 --- a/src/main/java/rvc/timecalc/Widget.java +++ b/src/main/java/org/nanoboot/utils/timecalc/gui/Widget.java @@ -1,4 +1,6 @@ -package rvc.timecalc; +package org.nanoboot.utils.timecalc.gui; + +import org.nanoboot.utils.timecalc.utils.Utils; import javax.swing.JPanel; import javax.swing.Timer; @@ -7,7 +9,7 @@ import java.awt.event.MouseEvent; import java.awt.event.MouseListener; /** - * @author Robert + * @author pc00289 * @since 20.02.2024 */ public class Widget extends JPanel { diff --git a/src/main/java/org/nanoboot/utils/timecalc/main/Main.java b/src/main/java/org/nanoboot/utils/timecalc/main/Main.java new file mode 100644 index 0000000..1cbcb21 --- /dev/null +++ b/src/main/java/org/nanoboot/utils/timecalc/main/Main.java @@ -0,0 +1,60 @@ +package org.nanoboot.utils.timecalc.main; + +import org.nanoboot.utils.timecalc.utils.Constants; +import org.nanoboot.utils.timecalc.utils.Utils; +import org.nanoboot.utils.timecalc.utils.FileConstants; + +import javax.swing.JOptionPane; +import java.io.IOException; + +/** + * @author Robert + * @since 31.01.2024 + */ +public class Main { + + + public static void main(String[] args) throws IOException { + + while (true) { + boolean test = FileConstants.TEST_TXT.exists(); + String oldStartTime = Utils.readTextFromFile( + FileConstants.STARTTIME_TXT); + String oldOvertime = Utils.readTextFromFile( + FileConstants.OVERTIME_TXT); + String newStartTime = + test ? (oldStartTime != null ? oldStartTime : Constants.DEFAULT_START_TIME) : (String) JOptionPane.showInputDialog( + null, + "Start Time:", + "Start Time", + JOptionPane.PLAIN_MESSAGE, + null, + null, + oldStartTime == null ? Constants.DEFAULT_START_TIME : oldStartTime + ); + String newOvertime = + test ? (oldOvertime != null ? oldOvertime : Constants.DEFAULT_OVERTIME) : (String) JOptionPane.showInputDialog( + null, + "Overtime:", + "Overtime", + JOptionPane.PLAIN_MESSAGE, + null, + null, + oldOvertime == null ? Constants.DEFAULT_OVERTIME : oldOvertime + ); + + Utils.writeTextToFile(FileConstants.STARTTIME_TXT, newStartTime); + Utils.writeTextToFile(FileConstants.OVERTIME_TXT, newOvertime); + try { + TimeCalcWindow timeCalc = + new TimeCalcWindow(newStartTime, newOvertime); + } catch (Exception e) { + JOptionPane.showMessageDialog(null, "Error: " + e.getMessage(), + e.getMessage(), JOptionPane.ERROR_MESSAGE); + } + } + + } + +} + diff --git a/src/main/java/rvc/timecalc/TimeCalcConf.java b/src/main/java/org/nanoboot/utils/timecalc/main/TimeCalcConf.java similarity index 62% rename from src/main/java/rvc/timecalc/TimeCalcConf.java rename to src/main/java/org/nanoboot/utils/timecalc/main/TimeCalcConf.java index 28edf53..650c4f9 100644 --- a/src/main/java/rvc/timecalc/TimeCalcConf.java +++ b/src/main/java/org/nanoboot/utils/timecalc/main/TimeCalcConf.java @@ -1,4 +1,4 @@ -package rvc.timecalc; +package org.nanoboot.utils.timecalc.main; import java.io.File; import java.io.FileInputStream; @@ -6,7 +6,7 @@ import java.io.IOException; import java.util.Properties; /** - * @author Robert + * @author pc00289 * @since 20.02.2024 */ public class TimeCalcConf { @@ -37,34 +37,25 @@ public class TimeCalcConf { } public boolean areClockHandsLong() { - if(!properties.containsKey(CLOCK_HANDS_LONG)) { - return true; - } - return properties.get(CLOCK_HANDS_LONG).equals("true"); + return getBooleanProperty(CLOCK_HANDS_LONG, true); } public boolean isJokeVisible() { - if(!properties.containsKey(JOKE_VISIBLE)) { - return true; - } - return properties.get(JOKE_VISIBLE).equals("true"); + return getBooleanProperty(JOKE_VISIBLE, true); } public boolean areBatteryWavesEnabled() { - if(!properties.containsKey(BATTERY_WAVES_ENABLED)) { - return true; - } - return properties.get(BATTERY_WAVES_ENABLED).equals("true"); + return getBooleanProperty(BATTERY_WAVES_ENABLED, true); } public boolean isEverythingHidden() { - if(!properties.containsKey(EVERYTHING_HIDDEN)) { - return false; - } - return properties.get(EVERYTHING_HIDDEN).equals("true"); + return getBooleanProperty(EVERYTHING_HIDDEN, false); } public boolean areToastsEnabled() { - if(!properties.containsKey(TOASTS_ENABLED)) { - return true; + return getBooleanProperty(TOASTS_ENABLED, true); + } + private boolean getBooleanProperty(String key, boolean defaultValue) { + if(!properties.containsKey(key)) { + return defaultValue; } - return properties.get(EVERYTHING_HIDDEN).equals("true"); + return properties.get(key).equals("true"); } } diff --git a/src/main/java/org/nanoboot/utils/timecalc/main/TimeCalcException.java b/src/main/java/org/nanoboot/utils/timecalc/main/TimeCalcException.java new file mode 100644 index 0000000..74d02df --- /dev/null +++ b/src/main/java/org/nanoboot/utils/timecalc/main/TimeCalcException.java @@ -0,0 +1,11 @@ +package org.nanoboot.utils.timecalc.main; + +/** + * @author Robert + * @since 21.02.2024 + */ +public class TimeCalcException extends RuntimeException{ + public TimeCalcException(String msg) { + super(msg); + } +} diff --git a/src/main/java/rvc/timecalc/TimeCalcWindow.java b/src/main/java/org/nanoboot/utils/timecalc/main/TimeCalcWindow.java similarity index 96% rename from src/main/java/rvc/timecalc/TimeCalcWindow.java rename to src/main/java/org/nanoboot/utils/timecalc/main/TimeCalcWindow.java index 0e6f719..c508d2e 100644 --- a/src/main/java/rvc/timecalc/TimeCalcWindow.java +++ b/src/main/java/org/nanoboot/utils/timecalc/main/TimeCalcWindow.java @@ -1,4 +1,15 @@ -package rvc.timecalc; +package org.nanoboot.utils.timecalc.main; + +import org.nanoboot.utils.timecalc.gui.TimeCalcButton; +import org.nanoboot.utils.timecalc.gui.Toaster; +import org.nanoboot.utils.timecalc.gui.WeatherWindow; +import org.nanoboot.utils.timecalc.gui.AnalogClock; +import org.nanoboot.utils.timecalc.gui.Battery; +import org.nanoboot.utils.timecalc.gui.ProgressCircle; +import org.nanoboot.utils.timecalc.gui.ProgressSquare; +import org.nanoboot.utils.timecalc.utils.Constants; +import org.nanoboot.utils.timecalc.utils.Jokes; +import org.nanoboot.utils.timecalc.utils.Utils; import javax.imageio.ImageIO; import javax.swing.ImageIcon; @@ -34,13 +45,17 @@ import java.util.Set; */ public class TimeCalcWindow { public static final String WALL = "||"; - private static final String DEFAULT_OVERTIME = "0:00"; + private static final int WORKING_HOURS_LENGTH = 8; private static final int WORKING_MINUTES_LENGTH = 30; private static final String NEW_LINE = "\n"; private final static DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("HH:mm:ss:SSS"); + private static final int MARGIN = 10; + public static final int BUTTON_WIDTH = 100; + public static final int BUTTON_HEIGHT = 30; private final String startTime; + private final String windowTitle; private String overTime; private final int startHour; private final int startMinute; @@ -60,7 +75,7 @@ public class TimeCalcWindow { this.startTime = startTimeIn; this.overTime = (overTimeIn == null || overTimeIn.isEmpty()) ? - DEFAULT_OVERTIME : overTimeIn; + Constants.DEFAULT_OVERTIME : overTimeIn; this.startHour = Integer.valueOf(startTime.split(":")[0]); this.startMinute = Integer.valueOf(startTime.split(":")[1]); @@ -86,12 +101,25 @@ public class TimeCalcWindow { JFrame window = new JFrame(); - JButton focusButton = new JButton("F"); - JButton commandButton = new JButton("Command"); - JButton weatherButton = new JButton("Weather"); - JButton jokeButton = new JButton("Joke"); - JButton restartButton = new JButton("Restart"); - JButton exitButton = new JButton("Exit"); + TimeCalcButton focusButton = new TimeCalcButton("F"); + TimeCalcButton commandButton = new TimeCalcButton("Command"); + TimeCalcButton weatherButton = new TimeCalcButton("Weather"); + TimeCalcButton jokeButton = new TimeCalcButton("Joke"); + TimeCalcButton restartButton = new TimeCalcButton("Restart"); + TimeCalcButton exitButton = new TimeCalcButton("Exit"); + TimeCalcButton aboutButton = new TimeCalcButton("About"); + aboutButton.addActionListener(e -> { + String version = Utils.getVersion(); + String buildDate = Utils.getBuildDate(); + if (version == null) { + version = "unknown"; + } + + if (buildDate == null) { + buildDate = "unknown"; + } + JOptionPane.showMessageDialog(null, "Version: " + version + "\n" + "Built on (universal time): " + buildDate, "About \"Pdf DME Downloader\"", JOptionPane.INFORMATION_MESSAGE); + }); //window.add(weatherButton); window.add(commandButton); @@ -168,20 +196,24 @@ public class TimeCalcWindow { window.add(text); weatherButton - .setBounds(20, text.getY() + text.getHeight() + 10, 100, 30); - commandButton.setBounds(20, text.getY() + text.getHeight() + 10, 100, 30); + .setBounds(20, text.getY() + text.getHeight() + MARGIN, BUTTON_WIDTH, + BUTTON_HEIGHT); + commandButton.setBounds(20, text.getY() + text.getHeight() + MARGIN, BUTTON_WIDTH, BUTTON_HEIGHT); - jokeButton.setBounds(140, text.getY() + text.getHeight() + 10, 100, 30); + jokeButton.setBounds(140, text.getY() + text.getHeight() + MARGIN, BUTTON_WIDTH, BUTTON_HEIGHT); restartButton - .setBounds(280, text.getY() + text.getHeight() + 10, 100, 30); - exitButton.setBounds(390, text.getY() + text.getHeight() + 10, 100, 30); + .setBounds(280, text.getY() + text.getHeight() + MARGIN, + BUTTON_WIDTH, BUTTON_HEIGHT); + exitButton.setBounds(390, text.getY() + text.getHeight() + MARGIN, BUTTON_WIDTH, BUTTON_HEIGHT); + aboutButton.setBounds(exitButton.getX(), exitButton.getY() + exitButton.getHeight() + MARGIN, BUTTON_WIDTH, BUTTON_HEIGHT); - focusButton.setBounds(exitButton.getX() + 10 + 10 + 10 + exitButton.getWidth() + 20, 10, 60, 30); + focusButton.setBounds(exitButton.getX() + 3 * MARGIN + exitButton.getWidth() + 20, MARGIN, 60, BUTTON_HEIGHT); - window.setSize(520 + 20 + 100, 580); + window.setSize(520 + 20 + 100, 580 + MARGIN + BUTTON_WIDTH); window.setLayout(null); window.setVisible(true); - window.setTitle("Time Calc"); + this.windowTitle = createWindowTitle(); + window.setTitle(windowTitle); window.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); window.addWindowListener(new java.awt.event.WindowAdapter() { @@ -210,7 +242,7 @@ public class TimeCalcWindow { case "color": Utils.highlighted.set(commandsAsArray[1].equals("1"));break; case "gray": Utils.ultraLight.set(commandsAsArray[1].equals("1"));break; case "waves": Battery.wavesOff = commandsAsArray[1].equals("0");break; - case "uptime": JOptionPane.showMessageDialog(null, ((int)((System.nanoTime() - Main.startNanoTime) / 1000000000 / 60)) + " minutes");break; + case "uptime": JOptionPane.showMessageDialog(null, Utils.getCountOfMinutesSinceAppStarted() + " minutes");break; case "toast": Toaster t = new Toaster(); t.setToasterWidth(800); @@ -493,6 +525,10 @@ public class TimeCalcWindow { window.dispose(); } + private String createWindowTitle() { + return "Time Calc " + Utils.getVersion(); + } + private static final String createSpaces(int spaceCount) { return create(spaceCount, ' '); } diff --git a/src/main/java/rvc/timecalc/BooleanHolder.java b/src/main/java/org/nanoboot/utils/timecalc/utils/BooleanHolder.java similarity index 85% rename from src/main/java/rvc/timecalc/BooleanHolder.java rename to src/main/java/org/nanoboot/utils/timecalc/utils/BooleanHolder.java index 2e657da..c68c8a2 100644 --- a/src/main/java/rvc/timecalc/BooleanHolder.java +++ b/src/main/java/org/nanoboot/utils/timecalc/utils/BooleanHolder.java @@ -1,7 +1,7 @@ -package rvc.timecalc; +package org.nanoboot.utils.timecalc.utils; /** - * @author Robert + * @author pc00289 * @since 16.02.2024 */ public class BooleanHolder { diff --git a/src/main/java/org/nanoboot/utils/timecalc/utils/Constants.java b/src/main/java/org/nanoboot/utils/timecalc/utils/Constants.java new file mode 100644 index 0000000..316bb1c --- /dev/null +++ b/src/main/java/org/nanoboot/utils/timecalc/utils/Constants.java @@ -0,0 +1,14 @@ +package org.nanoboot.utils.timecalc.utils; + +/** + * @author Robert + * @since 21.02.2024 + */ +public class Constants { + public static final String DEFAULT_START_TIME = "7:00"; + public static final String DEFAULT_OVERTIME = "0:00"; + + private Constants() { + //Not meant to be instantiated. + } +} diff --git a/src/main/java/org/nanoboot/utils/timecalc/utils/DateFormats.java b/src/main/java/org/nanoboot/utils/timecalc/utils/DateFormats.java new file mode 100644 index 0000000..582f2e0 --- /dev/null +++ b/src/main/java/org/nanoboot/utils/timecalc/utils/DateFormats.java @@ -0,0 +1,11 @@ +package org.nanoboot.utils.timecalc.utils; + +/** + * @author Robert + * @since 21.02.2024 + */ +public class DateFormats { + private DateFormats() { + //Not meant to be instantiated. + } +} diff --git a/src/main/java/org/nanoboot/utils/timecalc/utils/FileConstants.java b/src/main/java/org/nanoboot/utils/timecalc/utils/FileConstants.java new file mode 100644 index 0000000..ab199fc --- /dev/null +++ b/src/main/java/org/nanoboot/utils/timecalc/utils/FileConstants.java @@ -0,0 +1,16 @@ +package org.nanoboot.utils.timecalc.utils; + +import java.io.File; + +/** + * @author Robert + * @since 21.02.2024 + */ +public class FileConstants { + private FileConstants() { + //Not meant to be instantiated. + } + public static final File STARTTIME_TXT = new File("starttime.txt"); + public static final File OVERTIME_TXT = new File("overtime.txt"); + public static final File TEST_TXT = new File("test.txt"); +} diff --git a/src/main/java/rvc/timecalc/HttpProxy.java b/src/main/java/org/nanoboot/utils/timecalc/utils/HttpProxy.java similarity index 95% rename from src/main/java/rvc/timecalc/HttpProxy.java rename to src/main/java/org/nanoboot/utils/timecalc/utils/HttpProxy.java index d2a1580..ab8978f 100644 --- a/src/main/java/rvc/timecalc/HttpProxy.java +++ b/src/main/java/org/nanoboot/utils/timecalc/utils/HttpProxy.java @@ -1,10 +1,10 @@ -package rvc.timecalc; +package org.nanoboot.utils.timecalc.utils; import java.io.File; import java.io.IOException; /** - * @author Robert + * @author pc00289 * @since 16.02.2024 */ public class HttpProxy { diff --git a/src/main/java/rvc/timecalc/Jokes.java b/src/main/java/org/nanoboot/utils/timecalc/utils/Jokes.java similarity index 93% rename from src/main/java/rvc/timecalc/Jokes.java rename to src/main/java/org/nanoboot/utils/timecalc/utils/Jokes.java index a9baa4a..ee70314 100644 --- a/src/main/java/rvc/timecalc/Jokes.java +++ b/src/main/java/org/nanoboot/utils/timecalc/utils/Jokes.java @@ -1,4 +1,7 @@ -package rvc.timecalc; +package org.nanoboot.utils.timecalc.utils; + +import org.nanoboot.utils.timecalc.gui.Toaster; +import org.nanoboot.utils.timecalc.main.TimeCalcConf; import javax.swing.JFrame; import javax.swing.JTextPane; diff --git a/src/main/java/rvc/timecalc/JokesTxt.java b/src/main/java/org/nanoboot/utils/timecalc/utils/JokesTxt.java similarity index 95% rename from src/main/java/rvc/timecalc/JokesTxt.java rename to src/main/java/org/nanoboot/utils/timecalc/utils/JokesTxt.java index b2a0b1f..f77faba 100644 --- a/src/main/java/rvc/timecalc/JokesTxt.java +++ b/src/main/java/org/nanoboot/utils/timecalc/utils/JokesTxt.java @@ -1,4 +1,4 @@ -package rvc.timecalc; +package org.nanoboot.utils.timecalc.utils; import java.io.BufferedReader; import java.io.IOException; diff --git a/src/main/java/org/nanoboot/utils/timecalc/utils/NumberFormats.java b/src/main/java/org/nanoboot/utils/timecalc/utils/NumberFormats.java new file mode 100644 index 0000000..c966cc4 --- /dev/null +++ b/src/main/java/org/nanoboot/utils/timecalc/utils/NumberFormats.java @@ -0,0 +1,11 @@ +package org.nanoboot.utils.timecalc.utils; + +/** + * @author Robert + * @since 21.02.2024 + */ +public class NumberFormats { + private NumberFormats() { + //Not meant to be instantiated. + } +} diff --git a/src/main/java/rvc/timecalc/Utils.java b/src/main/java/org/nanoboot/utils/timecalc/utils/Utils.java similarity index 56% rename from src/main/java/rvc/timecalc/Utils.java rename to src/main/java/org/nanoboot/utils/timecalc/utils/Utils.java index e9b8e2d..1f47acf 100644 --- a/src/main/java/rvc/timecalc/Utils.java +++ b/src/main/java/org/nanoboot/utils/timecalc/utils/Utils.java @@ -1,17 +1,24 @@ -package rvc.timecalc; +package org.nanoboot.utils.timecalc.utils; + +import org.nanoboot.utils.timecalc.main.Main; +import org.nanoboot.utils.timecalc.main.TimeCalcException; import java.awt.Color; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; +import java.net.URL; import java.nio.charset.StandardCharsets; import java.nio.file.Files; +import java.util.jar.Attributes; +import java.util.jar.Manifest; /** - * @author Robert + * @author pc00289 * @since 15.02.2024 */ public class Utils { + private static long startNanoTime; public static final BooleanHolder highlighted = new BooleanHolder(); public static final BooleanHolder ultraLight = new BooleanHolder(); public static final BooleanHolder everythingHidden = new BooleanHolder(); @@ -21,6 +28,12 @@ public class Utils { * Count of bytes per one kilobyte. */ private static final int COUNT_OF_BYTES_PER_ONE_KILOBYTE = 1024; + public static void startApp() { + if(startNanoTime == 0) { + throw new TimeCalcException("App is already started."); + } + startNanoTime = System.nanoTime(); + } private Utils() { //Not meant to be instantiated. } @@ -74,4 +87,41 @@ public class Utils { return new Color(((int) (Math.random() * 256)), ((int) (Math.random() * 256)), ((int) (Math.random() * 256))); } + + public static int getCountOfMinutesSinceAppStarted() { + return ((int)((System.nanoTime() - startNanoTime) / 1000000000 / 60)); + } + + /** + * Returns version of "Time Calc" from jar file. + * @return version + */ + public static String getVersion() { + String version = Main.class.getPackage().getImplementationVersion(); + return version; + } + + /** + * Returns build date of "Time Calc" from jar file. + * @return build date + */ + public static String getBuildDate() { + Class clazz = Main.class; + String className = clazz.getSimpleName() + ".class"; + String classPath = clazz.getResource(className).toString(); + if (!classPath.startsWith("jar")) { + return null; + } + String manifestPath = classPath.substring(0, classPath.lastIndexOf("!") + 1) + + "/META-INF/MANIFEST.MF"; + Manifest manifest; + try { + manifest = new Manifest(new URL(manifestPath).openStream()); + } catch (IOException e) { + System.err.println(e.getMessage()); + return ""; + } + Attributes attr = manifest.getMainAttributes(); + return attr.getValue("Build-Date"); + } } diff --git a/src/main/java/rvc/timecalc/Main.java b/src/main/java/rvc/timecalc/Main.java deleted file mode 100644 index d26b73a..0000000 --- a/src/main/java/rvc/timecalc/Main.java +++ /dev/null @@ -1,57 +0,0 @@ -package rvc.timecalc; - -import javax.swing.JOptionPane; -import java.io.File; -import java.io.IOException; - -/** - * @author Robert - * @since 31.01.2024 - */ -public class Main { - - public static long startNanoTime; - public static void main(String[] args) throws IOException { - startNanoTime = System.nanoTime(); - while (true) { - boolean test = new File("test.txt").exists(); - File starttimeTxt = new File("starttime.txt"); - File overtimeTxt = new File("overtime.txt"); - String lastStartTime = Utils.readTextFromFile(starttimeTxt); - String lastOvertime = Utils.readTextFromFile(overtimeTxt); - String startTime = - test ? (lastStartTime != null ? lastStartTime : "7:00") : (String) JOptionPane.showInputDialog( - null, - "Start Time:", - "Start Time", - JOptionPane.PLAIN_MESSAGE, - null, - null, - lastStartTime == null ? "7:00" : lastStartTime - ); - String overTime = - test ? (lastOvertime != null ? lastOvertime : "0:00") : (String) JOptionPane.showInputDialog( - null, - "Overtime:", - "Overtime", - JOptionPane.PLAIN_MESSAGE, - null, - null, - lastOvertime == null ? "0:00" : lastOvertime - ); - - Utils.writeTextToFile(starttimeTxt, startTime); - Utils.writeTextToFile(overtimeTxt, overTime); - try { - TimeCalcWindow timeCalc = - new TimeCalcWindow(startTime, overTime); - } catch (Exception e) { - JOptionPane.showMessageDialog(null, "Error: " + e.getMessage(), - e.getMessage(), JOptionPane.ERROR_MESSAGE); - } - } - - } - -} - diff --git a/timecalc.conf b/timecalc.conf index 01ff88f..9db3996 100644 --- a/timecalc.conf +++ b/timecalc.conf @@ -2,4 +2,4 @@ clock.colorful=false clock.hands.long=true jokes.visible=true battery.waves.enabled=true -everything-hidden=true \ No newline at end of file +everything-hidden=false \ No newline at end of file