From c83f3233d15b08cd2be825cfc94ac3abf15f86da Mon Sep 17 00:00:00 2001 From: Seil0 Date: Sun, 16 Jul 2017 00:13:43 +0200 Subject: [PATCH] smmdbapi part 7 * smmdb api is now fully working --- bin/application/MainWindow.fxml | 9 +- bin/application/MainWindowController$1.class | Bin 2199 -> 2199 bytes bin/application/MainWindowController$2.class | Bin 4186 -> 4186 bytes bin/application/MainWindowController$3.class | Bin 4201 -> 4201 bytes bin/application/MainWindowController$4.class | Bin 4209 -> 4209 bytes bin/application/MainWindowController$5.class | Bin 1097 -> 1097 bytes bin/application/MainWindowController$6.class | Bin 1097 -> 1097 bytes bin/application/MainWindowController$7.class | Bin 3520 -> 3520 bytes bin/application/MainWindowController.class | Bin 40895 -> 41295 bytes src/application/MainWindow.fxml | 9 +- src/application/MainWindowController.java | 94 +++++++++++-------- 11 files changed, 70 insertions(+), 42 deletions(-) diff --git a/bin/application/MainWindow.fxml b/bin/application/MainWindow.fxml index 2ef5945..9c8f6dc 100644 --- a/bin/application/MainWindow.fxml +++ b/bin/application/MainWindow.fxml @@ -89,16 +89,21 @@ - + - + + diff --git a/bin/application/MainWindowController$1.class b/bin/application/MainWindowController$1.class index fd8a7766573dbc93577f7c18a7696f36c58fc86c..ee14299ae7ee0f64fb62fe8b1b544a0e758e6cbe 100644 GIT binary patch delta 63 zcmbO(I9+gq5IdvuWMTGQx^4_IjP49-j2;YnjGhdZj9v`(jNS~cj6Mu0jJ^y-jD8H| TjQ$K&i~$Tyj6susvCjnnk6jHf delta 63 zcmbO(I9+gq5Idv8WMTGQy3PzTj4ljnjIIoNjBX5;jP4Bfj2;ZGjGhcBj9v^yjNT08 Tj6MuijJ^y_jQ*2=>=v^@HoL`Qw6Z=u zPw&%vKA0rzqZx2mNx4bMM_PU|3XxTqoFe2^rl2lG4Jm0tMQf_sQq!Kg&NOtPsVgnr wXzM{oU)nh7;h|5E0Z~T88Ixi{ktua%|1oEW#fb&?zr75Wyjk&KW5-+uKf#M8!2kdN delta 158 zcmWN_I}1Sp0EXf3HKP0h#bm^4GRca;J#<{6$SvfcV_;Is#Gg>7&TcUqWV2f=Mk~+w zJcG}mee{xXPTq*i%F0hpA@T}SP>iDDl$4;X1{IB{YDP^ahPKqTqoD&$*|c<_tt%bf w=;}dFU%Gf05MW4@F-az*nNnni!JIZGeHQFla%RQ-e=j!{Z`OR+I4Pf-AE6H>RR910 diff --git a/bin/application/MainWindowController$3.class b/bin/application/MainWindowController$3.class index f02684faa60093d5a4bb191bdda2f5fd9888d8a2..27fee5a7c756b7e4e69ca9db24cc4a915c380d55 100644 GIT binary patch delta 178 zcmWNHyKaF207k#Fh(W{?h{0_101|`5U^AMUAdy%*Su_zM?swu+sgO$XyR=d90yeu< zyg@DW-_AKXH`mRzh}y^+G25L~URDZnQ>X(}}*$40K_rDgj-=O1U!Hemn& delta 178 zcmWN`yKX@N0EhAaw}?T+6Ntgw(E~^f5`)cXk|2?EHCc$pU5n$=q6le+mL8W%cmtc= zD&C-$a`G)-^1FC0o_X9s-b^^IWD2rVl9#d`sK`fEergI*SD0r#@}dk4KO3 z*k4FY(&sT8h9mcE;XNO++=+h3OjS;5dZaEFpL(JpH%)nI>4mnUbQGhjS9(g)SBftc z8K}Zg4MyrS)`E#POm$%`lNFBnU z&iN%0lk|BEn_W}GBHj*$lL({iCYO0 delta 27 jcmX@fagt+09y8;Q$@$EloWB{k82>N`GX9%geL#9cCpRPC<}PkeMoU2k5hfu9BPJ0B3no#9FeY(^JSItoNla1Ngd3d(~098>B&j0`b delta 76 zcmX>geL#9cCpRPa<}PkeMoT^h5hi{HBPKxx3nn3kFeVX(JSH)QNlfAlim gY+;gO*vTZru!l*O;VhFp!&9KzpG-=Vd3d(~08Y3Mp8x;= diff --git a/bin/application/MainWindowController.class b/bin/application/MainWindowController.class index b266414d0fcda4898c417484cf1f0c2d03d07731..960b0862fc742b4ee80f16530e68ac6857bcf663 100644 GIT binary patch literal 41295 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 qz?pygF866aXTM4Z*lp@$H9 z3pIw&A%;)_2A>QLU?7A}LI}NtByC``o#KKiRQM}L}O#DHAGra&*P%& zqGgTI=7zF`tB#A+wFwGGS0&opX0|n>jq18YQ`vE=6S3y_hO#=hYO?IGIY-QFZ);05 zR|qOz+}_+4Z;CC8C*!LcV>6nY6K$r?q@do_-1_PbWve$dHI~geVtzF$6eeSBZSm%Y zr0Kzq*4LXvx7Ju=B3i#V(d2#zC!3n;SD8-*b+M-QC38$V+?r_el08j{%EbC+u4ul7 zS{kDpO{!O8G}*QUa4kYk%T47`V$V$JPyqfLT_bU99ZUe(^(5NieG-3%PD4Q+Gc zvBvsc)mq{gLM?|O_TSNnf!bs=Ce{nu$H!5!F4i0?YeUI0|0`pwF4351T@R$ZdKH5pq1vB3|A)@1n%iQ`DH!EFz-kR& zO7|F!*ZZC8CbP(USLd>5RCMZBWmq(?;b58IHVHJ( zFf+$PL3)DvWfk=ExeT+!C9Ul!BaUQ(@_4nIWm<5P1uh#iB_kPbgC(5i9jNZ6W3B7r zb!gEQ2U!z?9+{~wingr*NrF?lDZ?RVZ-~{kx5eC?qGYTQ(kWKY16aaKtg2E_uTHsw ztU6|ecmhH$6IvH*O+p5Om#%7$H`Xs`Z(7B?w9w06U@)RLEJ{FPi7HUbMw5(i&fHjI z3l~mzzqE=etE#y^1_l%MyB8$m5C}c%S-Xf?7-sRB-UxjkCqb<8YgMeEkMUwZ{}yi%57w=Awa zUJV2>E`gIIgg(Gr#~h2k*XAkp7ldEnYZ3i`j%+{s&~v`0twX*K1a55s#Zf zEDGxDVyL|>-dHxHwKclYgSjkU{y~24IfB)YXSkV{k!jRwX-%{M+J1pX79lIv+7^!` zfsq2nALpQuj@8Gz=A3~GVFzkck&GEK_ z1*zd9mI42>67{hNDLU7oGwG}loe!m`D;+g0f?2vo=sY^NfCOFS&?p)mqMr&Hn5De< z81&^~h%QADOkUU0HB6Taq6l3=S28?56V!jWyNrxR?Ma`is;UvoB6Klb#f7fMIt~_c z)$WQB%NV$892!gGLUbLphTRU!6(?c30nE-w-3VPvH*p^~=k(zL;`Z?ihbGX(Fx|>L zl4T-y{7Z)>apoOZ?`hG+AMSE!3V&F^FZVb!l_qlPUWaDVEKY58sM1Y!I5gW$-S5yG zH?`fNDmpAo52CZNW5$g+kgGiG&|=Pf1k*Zp{5Z~f%%K|2dK^;Y(Dr28#*#y$t@W{H z{`Q1JOXx68J>}3+GKhM{q2;tJM9&3gF)xRW(6jEm|K6da=;#pr0X^`%mwAjfM1K^t zm&plC+DsM|vDPrX41~0UM~+#OXu`^Sm0l0gYgu+v&Bi3OCx_mkHz8FTVr?GxfIvPV zIMMzjbY374dYj$}(Vw!LHL8n4f2O~%5Q{dp#}=;6Y0_Ui`I>x@ZVJk z^|oXg%i5Jot0MFwec;fC^bxbAmX=sEgxBajg4M%I1vl}DLw}>cLr%3N+_4GjGkioo zSYDu;c=|qf=onfVrY}*)hlTUMa_CrE$xWWizy8Ib{W}MuE{Ezv6sB*1el}89#~a4L z;N+IScPL6LIrSfhR-tc*c9N44%L}*LOWCsScEOYArXRwlSgRIIRd2T zi%>@thzK-7T#Fz{oU1{w1GAknn zBVx1|3+5%pK~)*P!Ym`8ExWuAmCG*01c%nq`j9vfin2FP+2xHijEITu@TWMmfi{Lj zIizP+@qo->SrHNkfs=PtA}k<|%35PdSX*_ly5blN|6Z9ZaaWF?Sl_a8+=ekN%?%Mz zK{rLjR562xI1^ZR$t^v?00`dTDjhn3Mux>4m{ECp%LwyeKaBOc4xPvq4+9D1shBPJ zb1PRnbP`uyAZTQs%0VR|x9TE?PUfnM1&zv66`XM;n2oDav27cW3w7>y2{K|g^83dDB zj}D87v&1C5$CeP#Ta0Vf*U#Cp}pMZE_A5c=q}=7hxVoc5q!PG z5tkad35tLqNwh}9<>JbaxFVP7v;cQ)@amul^Z)_%a!i*(I?YG|l`10QD)IA>fXX?f zt6`YdUH_sZu3_yIR&CodRyTMg*EzHg4P>ZqaKw$`CMZww*b4dI` z(9o{B33?bEajUouvKsx=cvd|$`{73#^;F#M(7tYucRJ!O?y)eQoaH+tA&bP_j<|;# zh@gSWc#>Bv19-0^?xVAi%`0G|8J9i19v*T0gJvwYIpTit00w|+i&|r=m&fbb>!62M zj#y?-U%A5+w5QjaCu*E0b~xe@@u)ksi;W9ya1Ph@<(O|XU_Elh-#Fs&^bpr1)^laf zf5H(@`uVeANiyh;cv?IIFhGB>>iTCC1|#-oA$Jw5w~F3G;wc`+^N#qP_`PvSw9Se& zf@m>SbE3xWfaRYCFuVGQWxau-r+Q;&0KXJBb)I<15ihgu5^)zIJa);DconmlCHjJ6 zG@JpbMbSd>x_C1r-T;Ys#p^OkQI2215pRjNL2$tQ3?5}aPre5?9x6s0$xXiFh(8Nx zyb3U}6;l;dC_N=GB3=>iI^sQl5qNtKyi!2XGhEk30lg|dbi_yEV>AY@blQCYy?+tB zf^E=QW6`FHu=pF$&K2X)#`pt{xj@wz4H!c2KzJ5)q{BH~K{efUfP zeHhk6ux)Q%%yvw=MP`WNTk(BJe3z@)#hY8;o1dS6H8Xo1%mGLIApQft!u*9xYi6%p zw0L$+&Fo5`!q>cFT&TA^*{yxX9okHK8IrI9dO%q-L-QIEG$~Cvfo{ye^B~0Ue#Ekn1OW{W3Y~ls za_G2-ED#&Oy<|5>c9%U|_P4OvU251?$k%(YmtK3)%lL@wDK>;;pFJr&AtH;oFsz2% z!#^=1`-u%$ml8I_U@E~PllwSwU|OS&zn48gmSba$H+4HlfiUckpzmJ4_6a- z)yxb>&bBR>=No>=Cd1IIx9m15B66IZ5R&8JUCkP0C(gRNmK-@z!q(~I`<>a@nDI7@ z%|N;;2EJ3);<_<6mMxA&>lZdRZglylU!x)S>2UsI|EzzZ3S|HTojTEyOP<#SPRt@<^7L ztYey8oUl9!`jzjOLWyG>xspqCLy5Uqwy{=Ls>3o0o82o`vT9?=^qN?_acoIsnY+1D zUJ{md*o7$>9+nVIdPGUd;IM3fV{dRtWc~W}W7a}binXpq2n1Yt8#bQ6z{DMS9CyXe z>sjoGXm%BN*(jSs5@7*7bJ@Bh6S4&wB;vcvLx^y4-J#S02o zL|zEPOI`$l(3P&^hMq8_KXv3KY)G;Giog-xDTMtfFLUJOJg+^yfRgm4TSQ(dH-#kZ zs9wy%T2L&!F<@6|4x$Yw(F1C>ecRw6(-rm1B_R4z6?L_3{R+ z!5H>0;l_7KC2Q9+*eaMYoJdJHR9}@hIr3(Ci>b=waG zmw*;)sI|@8{oTul)-02>6S4wYwYSti5av-E{=}KG~4GAM7i$h2q=em0om0L~fJY z9r4YT0PM;!SmgX5sMAN!N!55IBb1(hl?1ozK{%&S;Zk{0ze}JIAZk{0U8Tw0}uH&{{g#ov=wzptsJBvPEacBX%A=>3@ zj(pu`h}GBvTm-ois}D(RHuMSdCw~_|BHxg2GoQwG!XbO2q6ZrZx?=hf2#6Fp;95;m(FOTdidOGo~L zamp@;Szi1B=YQ?Ue{vnOIK2F@gy}UfmMnqxQWA?dm&}Q+0oyH!wy#FZtuZXvh&)Sv z>&Wk1x$oMR;FYlFIPAfMjiq748bY48lby{Mu~@qM;cY&Kgc6RD3@dv(JSN9HGtm@i zvY*+k^~oX4D#FUfVq4SJ)>2+pW{QlduWwF{X^ypFJA$K>l4Y1;6?SL^Eek7fO#dfS~yoc2Q zbncJalOU>}8tABf70i(CO!k@LPzQXt81tDA6%o~64Fb`q!O+n?+K;Yh-&<1)G|lF= ziq8BXy&8iJL5`!Tp^n;L9e}+z^q&JgScV5f7sCTA!&PZWjX*rlF0kOJkt{0uV^z$L zH#WwTOA?i_Iw-755{nWo?JeBOXh)6VLOlb8(jUhh7N1gM+fsEN!m zdjfP%DXNY&H$bwY!AXvqoURky;MSR{FsIm3*)P%BP!?_BC<3gmrY5s1;s&!UMZ`wZ zQ3t7MSo(E|mW=_FElJElL`&Kx;BDE!R}b$#%^Q}a4sqykY!<5-(2e}f>R5eAvb~N) zDMurP)GYYISc7PYx20{!vy}iC9$rSsAVAq_1$=Bvw`ef-cid9 zvp2pi2B6kaN2(Pds%GQ)Zj9|21dPr!1V^itA%(q`T|kg2@2F#$8M9H&nH;F)su$QV zSF0RVry!|AtkQ4bopDx|pqjj`Ry(Ret%2H|Y+sc$yXdS#BM2iv!)`;+x?WJnIchDt zneEsHu=pfrH94x8v#h4I_3>72v&B)zGcX$MHH8$mMa=%7A4C8HFU^!9s#P7z2wUf< z^@_E5;0vO_48q9duBR(A_{_o&wr!SAt2)6^Cz{DI+dUC=GB2o8JcpkT(}G0XoJ4zb zP_KAZo#vHDIF$ZqN1Lb0zCr6G+y#bKE4XY&VFJ(`{>FC9crG zi2M&rTj3#b{5OUk3?*TZ;lAiPNCn?Q$9Kz~W>_>qf z;_DC?S7KT!VOx{q>`Ib|IxiW%3LcmdVFeTC#M(rA$#IAXDoNKcE0O!pskOSj*|`2o z603cqtOOgVb!(uymDIJjLep<++*kq?j+-A-GNUzCf_Qbv4KJ}i3Ib?LVA*4}$CHOd z)E(-skh&9s+^9cU_BZw^)UTj}`x-^y3`IqOx<}m`Qd=;aTrs^j2V&sE7iF#qYdkXQ zKD8CgY9XXY7eVit!WCf!i>vU^L;@lGm8}qD1+r1y@2CgVc3y0Z6PDTT`3|O!pl&}a z`!jf-P!BrlAzl=$B%ALwZm@1d?NE<~)FYssT{PjS$JB3tg0zP&hThXUU_Q&YGY4jQ zxI_KcQBQDFnx`Ku-wb7Ww6z(W$G9;t>^j6#wl0n(+Z$nfxIUM%tQi4$_RHSKhRe(I zR!nw#&MKc1A=-IzOsHrtY-{-^Fx)kcT~+lvNBy3spRG-^1BX3a`h-#XqND!E`g#F} zio&wySY!uAWm+o_saLvk*D*C3KId9O5%n@6qSVW>Hmu%oTPbOdtw(4aLeY?YOjx}Q z4!)={7EQ)Vu)1NEFmZ5jD-!{y4N>tb_ZK%nDd);@{srCUWx0;m`ClFNE{nW^coLhV zNi-H#?+cpOsc{o&IJ&B`Wcax86DA%wY4ViOequyPWLLe0)rW%0y#`%V&44(jwPi!e zYRHa~)!;~7LOmv=KF)AH*L%j?){C`{sE-&~AF01P>Qgo;yR%8T5Qd41%&_`g(1D$M zH_NJIb;3nmK6H%In2f0ZXbP#FP>EeV--H0M`paiZsunt0XbFOtO`D@z{VSXOg*b=uGX{Tq644_&xvUe;J5hVJ=5g%dnufOTR%_^z8SHWP9f8#uLF z&1dJ`yw?3@{CEF5AN%v<03z#M5s--+H%_7eD?szMt9G~+XCg|a1mXOa`Hm_q8Icbj-IYzT3c<2rHiZJ3Gg)>*OyZT z-ZG0m329ymhPQb6%sl2e+U$P8dw|^zsCPI+W5OT!W0j*1^SKQlu0glD+R^hlD2Kfe z)#miz5nL3^Z;@Y=kK=IB#g4AYE?SFh`E*FbNp2kaX+3KJwr=6n)knbXE#9`L$Gw;y zF;O4o=%cw6cKywdZZJVWA-xi+gQuxA#MmHe-3TuPiX`pnC0=EHjIM*7uj?^g!z=NR z5j;_^c65V=QNSZu6&;KKSiFdsK+yg)bV=8y&x$__|vgCbBi2ddoi zSiE6Po1+sN`%Zf1!fIeW=Llj>*$R95C?DcBy)LBNGh=gSK3&1l>ox3Cy&4_uV&$dL zny%E$hhE>twV@H|)#!MM8s$|^QQ6=vG6Gl{ETkb-AsiQAr z_RrX;Y1`Ns3u#0M?mkpwNW9SDo) ztM#=E$#sHG&Ov;D|G3gNJte*(?jB{z+SKC79k)9_w;ax%Rp(z`Z03DlM@9XarY1)$F4lhBfQPgztp#5p|dRjcFLP#Ig}9` zEbrUY!%k!Wdu0qKpW|k~lpVu?&7|C|GAu9{;QCh%^{3*9zK8i9?91%1cSE2{*rdnV za%O<{AxK}tzO>l=1sdz2I~={ua~;Ka!*ZK`z|q^8*Ro^Lg^DFzSmVe}covjT-fj-- zhk=L1F&ruP-eDR>mdE2IOG_%-n_9y9G4M1T{l{A6HXnENZ@Eq0rK^UMqS0;gNkFoo zX8z2jVf{3e!J7HY!}?iZ99a{>`gxNzGpv7)V)Nr0V!R8e|KR8seef#dt5?VCU;u6m z>z7b(b~K3;%qe?8qO~d77}l>LJ$nNm-V5tD(0@%k(j{(ANWYbr6*9uY`cIfZqlJ{0 zMD&{+tlvZb1)GBUugo;60?W*cLS#<<9xA~{7HdTSg8l&gxegy5E$4g$In(G5pEF>V zIQ8j4a1M;`?!05xlt6wwR?m5#0k`cfto6C?U!WE&VQ*`cOZ)@MY=p7%wWI&Z*kL== zL>NT$zcn;G7#@K=Zr){tBOB*+^mkDG@@?5xg!B&p#jpaSv0w``#y#wGEaD#6MZo)y zKA@H>WYmWd{k?@#GiO>BW@Pwb%onyJ0@L74HDI`hRoK33 zXl3u|Xk-4DmkbG8uo*-}*cu>ctSMuzOBn6W_2L;-h@Pw{>9X=bwCsLnA{`BLx3Ror zX7!9&^U&me`93b6TeW0%MaY7(?w;ytLVQEn%y@%0n-QzT8p3!VnwDx=dL;-xY+(~B zJbB90u~X|-^Wh>32XzjhVXRJFir6^(5@%VX9BZ^S1`Gg*nuD`qd}N)y7MWltS6sW1 z<%>8doh2r^AM04-tntQZXo78wy{B{pa#;?v6(cy%-kRu;g}4uE5|$z3Du4`kyj%$9 zbPCAkRJnsdY?C_3A;(P}>`+f`0A$-IA+t`P0ewr2iXWFwdOij6$c40OEjW)7DzN1w&pQ~0P1uo@A9xUzw=1^ zXb`;2UtcZb2vn-u}-nZfS{F%dOgwbwsWS5SUPh z{%jqY@iGLJfgDj5sDvP=3$3FZ>u6p*tTio;BlJGj3OR~xfiM&ugFN7I6$0T{g_-G| zL{7gich3^rI74NYoOcL2ckM92n-XCQ0=fv!Vzy~(yx1f!PTOkWEvuWuG!N(9tm7PO ztpzAp&-Vi!1x?u_>&hLmOH3ZK4^wrR7KQ0hIC8Ax8CxKbzBscGkPDupAWU<^R28U2 ziSVEdTj!u{&f&@MVdu#RSr%%`>&1psMXW2VpM|U|vqav^L;`NnX2;rOT?N3wosuyxk0&k< z#*XC1f9_b<@Ua5J3)9D3_{(*Ubv=LK<0G!C9Ik5qaHC`0#Cm#<^oO($-MYoGexZKj zu0ns#Bi5}vF=#3i9G3}2K-qZkEf6V^$;MRl@b9`Y0j5>WVCmxBkoBv~mO~VK`tI#d zbD&6M4j0(dH+uG=b+5HGWI;+B`2zjh75wcm+@bS1R?6xC<$;AFynq>dMl5F)tcX~5 zSvc~2rUkotR9el?E@Kd$R`ETn%Rc0_P5kdFZs8%vdN^(0VL7;Nb$oclu^#0QY+)}+ znCy@Rr25BHG6OY(Y=q*H8EwRR%(~y+5qrnABk}f>V?E8yv0Y`B9T$1lv7X~hKB59* z3t7Lz9+l@2$h5x*{$GU3H3pl19$pjcd8p&oiy3u1Q)Pxf3n*m0_|yEC^%p z!rT01i1I0dyl1s^-sCz&ZQS)Bj^Qk# z!@x8RePYipxe7$liIMnKu)x;DHY`ajZde7K-1@<>{$uS#rr|_T;kr`Vsub-c+;D;4 zkTte~tkK_vZ7A1rR0%93GzvWw(nlatPM~dV7lQU|2ZO;F*vvy#cgOBw_r&xVi!J84 zKS0Il2q^Y+`q|?vDXUFbq_k-S1-x^)-8Nvs8Jd_KXtO|7QnMoNh zs`=txGQ%PLM{+m)9lMyRAXFbuw%{TVASK?^;2p<~5K5ST??KKHKg@&Q=mbHP|4pM={^-oLaDf&l?%`ozHZknU z4%Jcsc?X)i1tfM0tt?67$%KZOLf6(G^pfuPc<}BS0<|3WOWTexW zjhTDYzbD4sWd@xn>%u-B+Cqm)X=I>j%r2rp_W+e$H60kscq|WWZ|=6ST{$wq(*fpE zN8h3E%z!x_tHj5~c+CFfJ?X_bcmfj6@R@WgAl-Bt^P5g%KBn(M>uEmW;yT-r8)yzw zx<@F-1;c9*rU^` zYc}}lqkZl=9m=P!IlzAoe4z*(N@fnI22ZoOLXS^)8;unL_BgvSWUqx!An&kt*9!tp zY}jUla$U@?)b9%D61&Br8|>o)x?#?NJ=b3KjbmoFb>7IZmVAxyzeI(g zpS;bq}vJmckbhwfm!_)8t^ z{1O}YT&xIYg4!Fhb&|I9arFP{?0U{-j!~8ar_RA|?1w-16mjvTeV${V&ssmLZj0IF zEWWf}VgkL$vF>03&D@}9_TD}LsjHt0$4 zYPyZPhqseMs}qT}?Jc_wD9Nh01e*uJ;(Pwl?Q++3gAOaNWxivg24OfAJ#70jqby~R z;kmzpwY;pJ_SHO1*E)8Cy#_U}>1nU=@@{hMc9VBwChu0qKF#E9&g9+c*grOTcOZ{V z6Q4%hu-4gp0Rh%aPy24}>0ZY^(>|+5$lk(EPrs;3PMuZ-*V+mTq6+bdt;TyBONQ+G zJyOq_=zP-^vbSd))5@9yZ)Ra{xpNCKV}eR};;_ha#Y4#6;jOQ<`y4Q$Mm-YbH3pk$n>|#Ip1&-WS8G?F=Q9th_8JDjKr5TnJ2DaGEW>V#8dKBlIDqv zB+V1oNSY@uku*=loSP@Y%FPp3N}4BbYBEn;v1FdG-OUq6C(RSKu6e?5W1cuQWS+Qv z(mZkHq4DPTzurm@mG<7Tl^!ka{hO`y+tOY;r);GsOMCX(N>8JeX93RhTj_U5 zz5sAutnK~MHhN_nz12Z~?fq_w-cQlT9rWo|`YdmWF9Ie0kuK3eUzgrTpQY%Zy}t<* z_%5fwKXMEFkW;|4urt$w5IF@*3&8@abepiYibD6%t#rHSQQIMUZ56#U$v#N-LvH`A zqBxTrfaJj1BC%hGDA_6od2d6^+feWA0P{A?dmCZiM&fOBZRkN%R;BleK{d4+kD)cS z79PWDYHd75)^v!ntztZiPDIC(wu;F}POaT8D$wJ!4sl3_n7&oa3S`dqGY<`9R{5Fp z0-5vu%!Pr>!~M*fK;}|Eb9o>W@VLFN2xK1ZXRZunM*YmXKxWL(Y(OTDCXS4)V(mRl z5TXgc9|a30I+iqT!M^fV?7MFR~e#C4-jQJkK}&79BS63v%z z>Ep||lkgRg(yMdj2Fed4WRWM?N6G{tK->Z< zy`_)Xni3sI-PuQMcT>0Z5f8el3z7fxlz14A3sp)y<~@Il=PeJ2XNgkcIizoUK)m3m z?|eY~!B5})fOyeQUzieq1ev_TWJ0$XGNC&Snb2*9Oz7^K`^9ULmUAa43^nynl6Ht! z(D7e0=vxfM2x>4DiV*b^VHzq5s7yqtTolqwfg6``G3+AIla3UEv6w2wSyUq)rd8tK)FvUTWFcKGhtkb*|G+xD#Y042Toy4y z&NPdEmaGIKg8DWj9CR7%$>3>~rsV8Q_YuyNBS_2AK(m&QU$W#}S!J3%44CfR>|GvJ zt=cZ<)ozjVJ7i7u$RfEcC6B;kMM@q$lI2yAJQkt~IC%(iqDZd7Z@fHeUh3VK-L^xOUVm>#}feU#VL8| zHhD#n{CP@VyIgIPH)b%}4;_%4OA*Xh9lQi|;jR+sN?0YL+x_w$0V>_fOF{e{pE=WG zHF8@@K7d?x&}OP*-Hg8taM=)ldobsHN6!0WIq$!PS~nkH120dpx;F|s-u?1ffOUot z1Gun(=7ybDWaf7!qPj>Pj`>}T`K`hHE}^~TQXp;_4aKcd2g;*pi9DK)lgCm*M(I)r zuY2+AkoCAncBL-Apbzp%zh!^9MJdJ3j2;#a`_@w zu)79q6!>GFRZ!>g!XbeE1Wd)tDfw#YcKJqaDQ9%Zx3rjKsqwQ-yLZ z)@l?FbVrao=%f6!_z_5 zl_2W5sCBqJo0iJ+%-Bj@NYkiV=Ao(w+W#I)LE`9gH~EA750(RSiEgC6r~N|oLPJQN z#og}wAD}?d{{{sY0R*Zf#fnYekXTyVy#peL7T0xm|3h)R6K}aY&`qF!Otq`CV2V;zHw7 z>cC=~O})`D>b9vV9(&9K(!uC7KYT9REK<{v@S7?Ri}Hf)YG&DZ+;J5TraY0HgOsN`v9#J0gjn85P<+J6f zm$%c|@(#LC-bp``chN2KSK#t@(|ht>m^1gmlu6-)Y=;f~dZ z#r|@K7$qMON6JUV(egJUCLb4Tbc#ltw5`-pr& zJSG1io{@hPzn3qIS5Ws&`MUVCd_#PU`?fxlZyN%7+9=|m`#eN^?(vYm;th2MJV_EN zc}o2RDTNVVqs~N1Q=QnT&QfPXjI@geb&fh0csofPtIkvBgK|EjzpD#CeE8!S^s%~7 zT?Fm50IK2->SBsOnMVpdDI!ME-Rh_65~Pl#)77P@Q7A5iD)A9gj<}h+tIO2o)J=4l zx>q3Y5w8_TJma;3n+vGBY0ok|u8y3Yuqh%T!X#c9qPM;ORlktxA5z1?{Xz zL`KqeXMryN0wMZW@Vj>dBC4l91=Q1*csuXtL@$X8GKmE5r82>=R7vko=7JqOua=LxN=#;vBi@N(4G>O5#v9w5~*s;dqU2Q8(sb4eiOet8%IXRDS#>ioI z!+O2hAG9_q{9$nTll(UZ{S5~FEe8D^?G3RzNd5p7{y$LPcTzbf`w%6l3b&puP@0x1 ziyD+o8&!x-Qeip+0dZ%mZU#xNFh3`aq;tGgus0p2o`h{8;bxw#o>EVfQqKS-tarOP z&wAp$2dN%EP-95W3#mK4!RjUTTt2Mg?-jYrv>z|ii&E%ASMZ#IU}OTQBW5W;S5qsdt!d|JfBne}VPIGUfIi^me(unJhhRpQ~tr-&|pF zq1RlY*BqYjadSM6Mw>%(5IBE!WrJxB(!w+s@|$bOEUZpY5)np}Xp*T)Q1@a&=er z1?1djdY>h2v4#{*sehDPMe3h$78j|1r_{Hbh&>&uJiM70`=UIYF1tHOUxeE_UjYWY zdwC&i&bl{11|%mG+r@fxaj5rY{9lpolhXZ6b||IyW{_mFz$B`{Fa;KXgL5K`YEfmhL5-!;)Hpg{O`uEFM7mlXNVlj-bgP<7 zzf=`;mpX_ZP}As9buc}x4xvA&>9|5;CcUR-(dVj?zQGl4AvH&IQ-_M4xS6fDsuumA zY7EB3YNcwS7_SzIa&@?vqiV!_wL~0&i_fBJnMkPRVx2ky!njtPs8)$nRh>9n)r<2~ zOl(pO;#S-oc9)8ad(?5FLp6!VaTD09Dj_~lEwYz7UXE6+a=c2)3bkG?RvY9BwNW0c zPLy$Vl5AF|GQqM?3#B{HbKpq1y-VA5b~y#0xw*n2O9+;B4c_8QWgx5 zRdfSVHssn$Jrt=Bytzv6&k6!W`$jhfFU>N2fF1^RQ7K32;ox%-Y$eUqBal}JzwutW z6nPFkKu742;D?3u9*x$cOx`z8Vvf?Ip(=#P)??6ecQKf1bs3iv^J$FXn~sR$52Lu{ z5)|^vJx*)%SUnEqUZtgaJj`oHd_Z&b1mtyt*QmfK7lkm&p=RibRA{&_b87>qJ`ivk z=#X+en4U!&Zm&ogF?TEV+KJunLRX&vn7&?O5?F*UgJ%QVKTx%s{)W>rpO+)OI-TyZ zKitk;HD&Z0x3TZ3IHYm2!5(zXYE5KSNSAq&YtWDA^v;!R)~jwOZ#o^MFo_khG z&oik7NF5IDpqE$=>ZP@+*oHT`xS-~Ky&SHUV!My7P3aY|bM!H_-Me@1qmS*-t5P~v zY!~VH7QMEQK7N}{ru4>Q3*tbZTx|8xr=|4i{6x*4z$&m(`fMXb#;5f85G(rPl)j|6 zfE}^=^4ijo;3ysX%9OqeoTPBOz8W?U*i3=RzQ%R&WQ5_7*rF$O4i!MzEmG&vK&ZM0 zK+P>v7t(Ynwv|w17eI+ULS073Lv7utuAuYOmGpDzX*M6Xo_7X-+FY$c}z(f)bfSC9vhbyLJdC9H(*QD z#+Jid`bN+|2)i_Y)Hl&EDB@-GjJ_G)3TQe#pl`tzX9P3NzB)70bQ-9adzippGq{Ch zaY}Dyw0Mp)eRWFTn&tH>^t@g#XY@ehAyRLWrQV{!c#cw2*aVc^fZ ze~(R+{YY{=s0)oX4Y+_xso<8^cct{*%6pnF@7MQ2-@Q*j1f=ljjmOB8zW3$h(huR$y-4rCBUGdxosU|-;aY^h@96$xRdWb_O7SxeKU45? zNRfU5@_I;-ehQC$iu5yhpta}lKx@ClgIimG)?VP&s_?`AxUE6>8G#>eYbt(b6zM;* za2sBvU*=~?k$#n*{fqSL{OpPL_!&ln<-7ygM{U<{))wivJM=p#{b$b6ZqB=z9Lvpl zKa&HZ;aVSNazLb<^Km98?B@I}lhf0y_Guu?tM_?2tG9uOWjDO;4|*OD{iP?_eJFby zDBV)}t8MyUT^2OJbHPzv7BOIPkV>;L?ukA=NX zOR3U=r>vlyBc;YA(z#Ei}=OmV&; z2A5q1>MwP7tNl7lJr;U~CHnIAb)S^g{f3>FWXSY=UW@8IXgcpxiTZ$s;j*zx^$E>Y zf1`QoQ(CA#qs8hAXggm*+xd!)R{w^j@+~Zt@4(T1po`Rh=n^dNE3}|ZTG2IH)Aib> zn{|jb>jJu6ccb6y9`us#Nw4bO;6_FCj_ynE>3;N~?oWT$#q_xzKwslVsDJBy=?6U+ z*Aom8gY-}_LGLeS>jT7cJxs*)aB-3zAuiG*#a2B^ysbw|p~uLfkn3~xSb2gTC-2nb zD1BkGw3Z3rBi=Tr@l_7evk{@ z8uArv>anZeb!v>JzTZ)$ZQI`yEXTJGK*~=K4e`J43Algzdw8V2!xp^MxVOk-?B@V< z79vwi@3Z=ZuE+K^2aP;gT6-To-AmLS%K;>MtJP;S6?5K`z34UM@ps74WAP!gZU%F3 zo<4-adOCI2GiYx;llH^)NrQDIjnT7diaylf+}#nH>f+ot@(1^YMvgye=7OcxfIsps z-5{o}BC8)eSh3{|Hd18ucbQ4G`)Tjsr+wT{#sgbqWqsP${j^}aRRZU%_-W6c9oArY zTk%?C?eD&U9IRm@Qx6QTY^C{ME7GZHMb;s1jTxie=Pd6z+j~y)o)ggV3g{}_IFc*fBxX!3H%WO8l67uw z1(FRWDZWZshZb3fxl(yE{lbN^It`_l0+eowq4e?qrI!Mf3p^-Cc~E-K+1_)S_hcv! zb%9_g=ebFSa+XONC>Of93}uZ;dQdKMp;VJ#v12z}6!!IY>!4Uziw)APWhraL8Mf$a z^LJ0XcqOy^9)c1>`Y;-x=g}lxO^56GbgW)L&3X~7(}&Y3dNG}^Yv?Myly1?>=vR6< z-LH?J$8;?{r;nsp^a`9lJc>TjM?+~khQ7f?SwcsJqgRQ&be$NC%dkf4n3$p)#9Um0 zHBZOIQe1DfQm+LoY7|M_Y<0437H8=MSW=6)QXem_)2(8&ZWCK@G1Y^5op@5O7cb%( zs<-tC;!}OH_)4Dw_twd>M4x6zW3IdCJ$5ue+SV~(5ZDtEpI9pmJ33ta-a6JWoMXi! zR@7PrLTMKFT6IWS_zP`ihAr5JtcH-@Ddv&QMn&47uyA6%gy=iEk@c#9pfUUb6qoA6 zX=sdhVV`5u+Nw`ktAXm`B5RFte_3$^ZSZRoUN26iUz>S)GOr1|Ucb$1$>b#2JC~Ky z#y+)7fp)a(d)iXgdj62@b?D9ReC)XW0Ea%j^*y}T@A#Er8d+qWkg`q!$)09F|FLmo zgy+M#XZF+z=r{C4+81wJbNa_rpwFcK`Yalz&&G;5hvw>Y=}3JZ#r64gy1syZsxO4_ zx(LGSV!A_LLLK^2+O997-{{NfNqq%9tAA!@&2`N^=gk^3{hwH80;PA*05A0JU9n2lVdSm(M(vCcP0 zabLgdz^g$@%DR9#7*Alz`e_QAk?va)zd=WK-u4ytE8H`gXcU-vJ}#PI^e+MUU#c19R}0HwQy82fws#2U;i4xnAm_ ztU1_=^e{66x9+5Kf-@j3oWyYHfnJ2&#Cm!iSm!XEvhLh&-BsJix_g_2pek!vhqbMG zWFKpL%6f2QkCe4zyY*Ps*T?6N>SO&jWj#5nd&+udyY+l+hxL2-nynY~gVrBv)hJIB zL(U(WkGY|ACiX+$3o*JCA~Z#V;E6jx-w*Nm03D*YQ>A{8s`W#3j7D^i-Vqpmoj3Zu zsmglAdKH71LL;r$tk{dH8{mpO1H*_ObVrwOU>MPp?&$V- zV5P>Ue4Kjg-@;q-1nsMzqOtmEI#54D2kGZ9u;*!+{vAm0_klsJ@CMa8J*ctiK~)9@ zg(Gn8pb#CV&8(e)Ihux9`xBn;c+bC>Cor2blci5{r*c|{^*B%EyD97akr>)XSjB(K zD)A0V@N{wsp3aX(<(BvhN-P-dmKeL zJ22`-Z`6CGM?Ez?>J{lxOTL%dTjXm!K01&U#*t7L=Z{j*+`e3n7!CS(tMyNR3+ac>tE-$u-%aJtNb-2^_*jXKd=Z zW``e|DEN;ed6f_5c|!@CLwnE2kgN%Av<8r6?PFSSV|VTJ?A!d;v$FBCKUF?J0#T_hMrr`ak}jr(k67{449-V2_K;kvS)LCNd;h#tV-Ly2 z$O-^*R2P8oSuO_TfP8?+mvaGGnHP{@c>$5e0Uul=i0-uNy8wg_lK~L^Lm3`+0}PEG z$OWV!A0QTP2=gju*2qZ2Q{-Y~EdXik0uVm+#uyoHE$s}5H7ysAL_R?55q4=FK&)xG zfFuD(TNi+sjW8{Tj%vaorA>2PQ$^5VrG_26+JCbWm>+e>7+T(^MNV{+lO@O z1qMbgo=*%^nQqVMT!m7(cz!BSWv0z6iBDVvmKj}`+sl?fmCC#*vvbFfb1<2yIn;<`lxhv4i zBKz>pRm9rdD&GgHEVgUBDj5nG*<@OPs``H?lCoToJ zMzTw3wR!6VS-)E+$eoVNTgM)g3tNyqt+0>EgSN@JX!|^Xf}`zY@(f2z&g~{xXJuYe zdndP>Qv%%_n~w+B(VSj%a4>awsdG#2N_!&EOMTv6V!6FMnywPz3nRSo8-WJG?p~U* z<0-p&2VHWXo!~*aVUlKwM9^62ZnxS=eD>q{P!~CE5H1nEbi!+w7eC9RUcq+PrR)z4sn9E&09-uW4+U;Xj-- zhsQXzi9)dNXCt{~6YX8vVaG=HvCmG~=Z;L-7qA~>3%2W#eIZg$2d^|dJH?e<;vuT1J5 z`#w8mccA7f#3U8qiGQ-E_rxwK|C5MuG0%Oy=K#iM$Fa%InRD@ Wda-?+c*TAQu~OsghwVpn!T$p - + - + + diff --git a/src/application/MainWindowController.java b/src/application/MainWindowController.java index ecba1bb..429d987 100644 --- a/src/application/MainWindowController.java +++ b/src/application/MainWindowController.java @@ -13,11 +13,11 @@ */ package application; +import java.awt.Desktop; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileInputStream; -import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; @@ -25,6 +25,7 @@ import java.io.OutputStream; import java.math.BigInteger; import java.net.HttpURLConnection; import java.net.MalformedURLException; +import java.net.URI; import java.net.URISyntaxException; import java.net.URL; import java.sql.SQLException; @@ -39,8 +40,6 @@ import javax.swing.ProgressMonitor; import javax.swing.ProgressMonitorInputStream; import org.apache.commons.io.FileUtils; -import org.apache.commons.vfs2.tasks.MkdirTask; - import com.github.junrar.Archive; import com.github.junrar.exception.RarException; import com.github.junrar.impl.FileVolumeManager; @@ -79,6 +78,7 @@ import javafx.scene.control.TextInputDialog; import javafx.scene.control.TreeItem; import javafx.scene.image.Image; import javafx.scene.image.ImageView; +import javafx.scene.input.MouseButton; import javafx.scene.input.MouseEvent; import javafx.scene.layout.AnchorPane; import javafx.scene.layout.HBox; @@ -173,6 +173,9 @@ public class MainWindowController { @FXML private ImageView smmdbImageView; + @FXML + private Label helpLabel; + @FXML private JFXTreeTableView courseTreeTable = new JFXTreeTableView(); @@ -209,10 +212,9 @@ public class MainWindowController { private String selectedGameTitleID; private String selectedGameTitle; private String color; - private String smmID; - private String version = "0.1.5"; - private String buildNumber = "021"; - private String versionName = "Gusty Garden"; + private String version = "0.1.6"; + private String buildNumber = "027"; + private String versionName = "Throwback Galaxy"; private int xPos = -200; private int yPos = 17; private int xPosHelper; @@ -226,6 +228,7 @@ public class MainWindowController { private File fileLinux = new File(dirLinux + "/config.xml"); File pictureCacheWin = new File(dirWin+"/picture_cache"); File pictureCacheLinux = new File(dirLinux+"/picture_cache"); + private ObservableList smmIDs = FXCollections.observableArrayList("fe31b7f2"); //TODO add more IDs private ObservableList games = FXCollections.observableArrayList(); ObservableList courses = FXCollections.observableArrayList(); ArrayList courseText = new ArrayList(); @@ -545,6 +548,21 @@ public class MainWindowController { } } }); + + helpLabel.setOnMouseClicked(new EventHandler() { + @Override + public void handle(MouseEvent mouseEvent) { + if(mouseEvent.getButton().equals(MouseButton.PRIMARY)){ + System.out.println("I'll help you"); + try { + Desktop.getDesktop().browse(new URI("https://github.com/Seil0/cemu_UI/issues/3")); + } catch (IOException | URISyntaxException e) { + e.printStackTrace(); + } + } + } + }); + System.out.println("initializing Actions done!"); } @@ -672,8 +690,8 @@ public class MainWindowController { @FXML void smmdbDownloadBtnAction(ActionEvent event){ String downloadUrl = "http://smmdb.ddns.net/courses/" + id; - String downloadFile = getCemuPath() + "/" + id + ".rar"; //getCemuPath() + "/" + smmID + "/" + id + ".rar" - String outputFile = getCemuPath() + "\\"; + String downloadFileURL = getCemuPath() + "/" + id + ".rar"; //getCemuPath() + "/" + smmID + "/" + id + ".rar" + String outputFile = getCemuPath() + "/"; try { HttpURLConnection conn = (HttpURLConnection) new URL(downloadUrl).openConnection(); @@ -683,50 +701,50 @@ public class MainWindowController { pm.setMillisToPopup(0); pm.setMinimum(0); // tell the progress bar that we start at the beginning of the stream pm.setMaximum(conn.getContentLength()); // tell the progress bar the total number of bytes we are going to read. - FileUtils.copyInputStreamToFile(pmis, new File(downloadFile)); //download file + "/mlc01/emulatorSave" - System.out.println((getCemuPath() + "/" + smmID + "/" + id + ".rar")); + FileUtils.copyInputStreamToFile(pmis, new File(downloadFileURL)); //download file + "/mlc01/emulatorSave" + pmis.close(); System.out.println("downloaded successfull"); - - //TODO place file into the right directory - File f = new File(downloadFile); + + File downloadFile = new File(downloadFileURL); Archive a = null; try { - a = new Archive(new FileVolumeManager(f)); - } catch (RarException e) { - // Auto-generated catch block - e.printStackTrace(); - } catch (IOException e) { + a = new Archive(new FileVolumeManager(downloadFile)); + } catch (RarException | IOException e) { // Auto-generated catch block e.printStackTrace(); } if (a != null) { a.getMainHeader().print(); FileHeader fh = a.nextFileHeader(); - File courseDirectory = new File(outputFile + fh.getFileNameString().substring(0, fh.getFileNameString().indexOf('\\'))); - while (fh != null) { - try { + + for (int i = 0; i < smmIDs.size(); i++) { + if (new File(outputFile + "mlc01/emulatorSave/" + smmIDs.get(i)).exists()) { + File courseDirectory = new File(outputFile + "mlc01/emulatorSave/" + smmIDs.get(0) + "/" + fh.getFileNameString().substring(0, fh.getFileNameString().indexOf('\\'))); + System.out.println("Path: " + courseDirectory.getAbsolutePath()); if (!courseDirectory.exists()) { courseDirectory.mkdir(); } - File out = new File(outputFile + fh.getFileNameString().trim()); - System.out.println(out.getAbsolutePath()); - FileOutputStream os = new FileOutputStream(out); - a.extractFile(fh, os); - os.close(); - } catch (FileNotFoundException e) { - // Auto-generated catch block - e.printStackTrace(); - } catch (RarException e) { - // Auto-generated catch block - e.printStackTrace(); - } catch (IOException e) { - // Auto-generated catch block - e.printStackTrace(); + while (fh != null) { + try { + File out = new File(outputFile + "mlc01/emulatorSave/" + smmIDs.get(0) + "/" + fh.getFileNameString().trim()); + if (!out.getAbsolutePath().equals(courseDirectory.getAbsolutePath())) { + System.out.println(out.getAbsolutePath()); + FileOutputStream os = new FileOutputStream(out); + a.extractFile(fh, os); + os.close(); + } + + } catch (RarException | IOException e) { + // Auto-generated catch block + e.printStackTrace(); + } + fh = a.nextFileHeader(); + } } - fh = a.nextFileHeader(); } } - + a.close(); + downloadFile.delete(); } catch (IOException e) { System.err.println("something went wrong during downloading the course"); e.printStackTrace();