From fab1d2d0628aab2f8d7ba99ee31d5d197d365606 Mon Sep 17 00:00:00 2001 From: Seil0 Date: Thu, 23 Mar 2017 16:17:38 +0100 Subject: [PATCH] code clean up --- bin/application/Main.class | Bin 5222 -> 6283 bytes bin/application/MainWindow.fxml | 12 +- bin/application/MainWindowController$1.class | Bin 2422 -> 2422 bytes bin/application/MainWindowController$2.class | Bin 2982 -> 2952 bytes bin/application/MainWindowController$3.class | Bin 3930 -> 4235 bytes bin/application/MainWindowController$4.class | Bin 1093 -> 1093 bytes bin/application/MainWindowController$5.class | Bin 1089 -> 1124 bytes bin/application/MainWindowController$6.class | Bin 1089 -> 1124 bytes bin/application/MainWindowController$7.class | Bin 2784 -> 3939 bytes bin/application/MainWindowController.class | Bin 22670 -> 24237 bytes bin/application/dbController.class | Bin 10839 -> 10852 bytes src/application/Main.java | 104 +++++++++------- src/application/MainWindow.fxml | 12 +- src/application/MainWindowController.java | 124 +++++++++++++++---- src/application/dbController.java | 3 +- 15 files changed, 180 insertions(+), 75 deletions(-) diff --git a/bin/application/Main.class b/bin/application/Main.class index 59c3a07d9e85b672469b3adad5668857822aba21..bb67c86e956cb11466e81d9922f8afcd81dcc726 100644 GIT binary patch literal 6283 zcmai23wRt?b^gz4rCF^fe#nkrabnqV97&F}CNDdZomi6XSVER;`6(yZ8LdXrTC+RK z?5r)@kU%JbkQWIAaKft(FpttUPP}sC0%_?BN*_=fC~4ELEp6$8KInrM23=bn4cfBt*!eD$Xt(%s4hDC(~|jG&81ef_c&O@Xc`CwB>B?(j8{fe!;W5t@Jp>>b7KZ z8UIc}O;hthLA=`?v6HC5G82oj#J~!{GW9{Fon3{DGh%xQTtkBjdE09nce9*zEmj-2 zj=ry$a4PTHSrd&|qbAw@9?zY$J)h>UZ@Sz8&6js2aXoG@u&!Ed;4c&FaihREVL1hR zV04zsf#KuyRL7hum!nzt*CM!jE-MZua1#TN+U}+cSv%+FQ)xR}ICh{XiREZBk-|oL zj={EbBZAhsR9v=^$Y~v_;${=K5UEJ`ZWwt&s%Z{G>mj(^L_LxTY^He04DD|>F;Dxq z2)2*={$##Al^VT2cqXr7vtdsx)-q!}pWq3d!E_kGtL;E63b9iu(*4qcfu&S9r^Wg<&Rc-u7vJ z=5!d5c+-();*_fzGvGXmQ4?bd>jZ`OXMBg6dyz45T&=u{`B&yE1CF3^cIaj^mc}V( z!ayR42~3)}A7na%>ec;0{>)a

{F!hMRB8k;4)=K|BPkrpY{I;uKCZf9(4UmP7nh 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 literal 5222 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 diff --git a/bin/application/MainWindow.fxml b/bin/application/MainWindow.fxml index e762ec0..75c7178 100644 --- a/bin/application/MainWindow.fxml +++ b/bin/application/MainWindow.fxml @@ -14,7 +14,7 @@ - + @@ -22,7 +22,7 @@ - + @@ -54,10 +54,16 @@ - + + + + + + + diff --git a/bin/application/MainWindowController$1.class b/bin/application/MainWindowController$1.class index d7bfc02ac03c68a114fdba61201aaf4c6847d67e..866f9d0159ad7cdc51577f97e6aa827cec3ea421 100644 GIT binary patch delta 83 zcmV~$s}4Y50D#d?BFnO|PoUUDK~Zd)Y$NgnHvI0_sh&f2&ZmBARmf74mhx-2 nXmsfG7zj)TEJhqATxL8Ld{zQBLUtk!Vonk+GH!C7R4DZip(7k$ delta 83 zcmV~$s}4Y50D#d?BFnO|PoUUDK~Zd)Y$FnE?)RU02hSlp=TkqmDrBiiOZl~1 nG&*#835z=T`u#k{IqKQ*AE{wX;q;cV*L4&O*`n42WhvHmE z)aQWUte_hg1oH)4xYCV(fQd62hnN`t0TSb_xaeElb6(E9=bih;8_SK(>p#z50G*6a zIDXV|h_lNjO-2t#HyXVzd)TXgMYq`d@J;qBnzd&%M_sbybdM2_{_SgG#ro!RV?PKP`tm-P(lS;K2O=5oAR@2Uhj z>2iwGI&N+?&T!7;tS*_0!{@o6$INB+5G9jKikO}@W7@O^)rc-zE$WtjVvVSWdYzq9 zZ}gPiVke0ZmL*^58M{#0-1ZE2ik^Ac9ncrhzjFR|&KCqmRtmc#K_?aEd;PZt6wtuC_H-`AmC_i}2PbT@zOJ=DP zi#EwBNvWqnu);2L1tn&y&|D=XlU-cny09CfTZHB)&at63!9s?0qNX8oGhkG2tMNK+ hOGAh|-2I35xGxxykA1)+VRfP@!OB@74~(r@^cN+jgfIXA delta 553 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 diff --git a/bin/application/MainWindowController$5.class b/bin/application/MainWindowController$5.class index 391012d8e6abc7031dab1356b2a28bdd661fd244..e8131356cefc4724e5a98cede7a8a5041ad3ea54 100644 GIT binary patch delta 282 zcmX|+OG*Pl7=*unW`v}T;P@QD!Kl$V6Car*;@V5N6f}tLa{$kvy>g>x2#AOa(XDt2 zaqS5tSaBe|=&Jtur>gtC@?CKsqnB5pM|bFM%~j9({foh%QM7OFoBq>g>Jw5p64q;M z;EW0F_%Az&c8t{jSUTk}a(@~;Sm8&(m9_n4xOROm8mMI@f28)z@*Q#M(o*U}U53Qk z=ZL_%>gW;MA&DJ{!BQE(JPSH0icK1d-I5QnWcHXvwgsjIG7XRWs(I^;=2JlCf5X+R YB^0pB-oNg1AdU2?HXXU~(@m=N2XrSa9{>OV delta 248 zcmaFDagc-S)W2Q(7#J8#7z{RYO=9HaNK8&nEiP8Em^e>;@>xb+xPay4UyNals*?km zR2bDKmod#})SE2EoWZC(xt>|RKAeG(feC1gkk%Fko*fM0Ga0xbEZL1fQDz1~Ajt=$ z85q?VxER$L1Q|6Mgn(jV5M2zy3?e`tP(OnLgCfu@B_Nxbfl*MvkwKI}87ROF6wm}J z23f+XrG0=wWgCMU$ZRH%*^@O`gf%t5JWU2IFs;p?1Eg6PBp7rV^nolcpdpMv8VCS{ C1|$st diff --git a/bin/application/MainWindowController$6.class b/bin/application/MainWindowController$6.class index 0da5c716a7d6ace112a2211f82a9e47ef2e1e46f..f35e8eed2caf969bf55fdb1cf000625c085c616c 100644 GIT binary patch delta 282 zcmX|+OG*Pl7=*unW`v}TV0@0?VAPm66CauAN>IrqTnZXQ_c?%P&|bOGGXzA$h3Hm1 zg}C+v60A6oUUXG|{ZrNbUivP%kKxNJu+QGW-I^<(^?Dcmem!sB+&BHFP1VLEcf_n# zSi>1(+VNj@5^WlZ|FLAkVPyU^c(B|LgDX4mm*L9wxoDu4rR`)y?RPC79x?-?U1Tf2-PKsikx?(rvLoA-|GEYNbQXtjvsIQ#0-e^7rr2aQt ZPFq3&TWtU94!hDwpK8;Q8$I2mT7Ql!EKvXe delta 248 zcmaFDagc-S)W2Q(7#J8#7z{RYO=9HaNK8&nEiP8Em^e>;@>xb+xPay4UyNals*?km zR2bDKmod#})SE2EoWZCwxt>|RKAeG(feC1gkk%Fko*fM0Ga0xbEZL1fQDz1~Ajt=$ z85s2$xEKu>1R0GOgn(jV5M2zy3?e`tP(OnLgCfu@B_Nxbfl*MvkwKI}87ROF6wm}J z23f+XrG0=wWgCMU$ZRH%*^@O`gf%t5JWU2IFs;p?1Eg6PBp7rV^nolcpdpMv8VCTF Cwj?nC diff --git a/bin/application/MainWindowController$7.class b/bin/application/MainWindowController$7.class index b03be32abe69e0eff06957336bae32f4e2b72415..bc89952066f2d158b4acea98a73b6f7d59f7bb3a 100644 GIT binary patch delta 1775 zcmaJ?Yfu|i6#nkrkPVr&LRucuf=mlacm*ofVi*vLX?YcFfVR+DmSls_B@4;YlKMz} z*Z1R!wNTsotZzjz#8xY66|MDIb^K9hobi8uJL62pyGbmeGqOMSoO{l>=brO@XYc-* z@mF5jnTsb*0jR>SA}GOXHY(&#S2zW79aDw&iYhB=u~EV%G!Uf99*+_X7F1quSeqrZ zpf$<5j-ZigLJ_;koXTn}>Dl&fBW|;Vc621g-M}2Cn+vuOWR&^F%f|d(C7=%al^gSY zvKmyJR&=6UL>EC0t1;)~NZ5)p0!vWQ-Fiq>jGWsg^q`lWHMLx|Q^Kw2<^Du*Ypv)* zzX+LCq^uS^@UpIyLbDIIi5Ot}Q?i9Y46&({0*eo-gkkvEd`f=h2*HZWs?h^uMlrPr zNC-ktYG6Gwv+(3~sWiM!aWxw_AS{RFV$9^5D5UV^kC zd5`Q+W&eP~tp^7E0}}4X0|aJebc}b;F)34INoc* z_EwKJ>=^QCihpq2;nDnhKvRQ`X4kfcF>XZ0#-bZ zCq+C#khgRO2~Qauh@68?Wn8y_5m-a~DQjyh+u-$DF@b|3p5+4+t6m=*RvbPpFf8ki zMp;)n`Pvm*>I#SRIUM4BXub|v=W9Q~dUk~7gqPgKshGm^A`TNQUpS*x^T?`kf`lVD zN+9^Py#!fB_Be{MjF)0~iV3_R;YGZ}5s#NgP@OZR}*rIT8kya8# zlOdyMv)vMbJFahwiyb8q?215%VD}t4ZCb*=L`)Q;hIa;IT&##7WD7@d_aw5Dtzm=+ zw;qBmp6Nl`BN04y90zPqNAXNsX%v$Y9J9S_?0q$gH)@kN^OTny>rA;Breh0f-ixKF z&oy}$nct6@ixY>PMEKh6wwYO!EKVCic?4BFG#(e3M0#915f`VX`Nb|^C4cuL8=!S4 zr1hwv4RF#8aM4C=rY`i*jo3#w;V^B+JZ-@_+KS(38_v^qT%aAqLbrs;GU_Hdw38Il zE>cOmNfq5ndTB3F=nkUNog_$iVO8uu5+e<{$m1(cA3nq9AUKaOzQAcvT;O-^m-q?- zvA~Uau9@&P4_yxPKbT*35iSuEgk=7WYqHYnaW%dH$;6dB!p?V7E>nw3=Fk_x88&5I gWk1U;6yM?dnEU}ha%tjI{}X=Unw6i;FJR;O7j#eGIsgCw delta 740 zcmaKp$xl>45Qo2h@68){yf6e9HNdbagbXvluqlQ_B^ozSL=2Y&VzA?(y9imo{6^q7u;)#)HvO%xS5&Gm0qod@Q&2jov zJkzVuqMrdbCj~y~F?=qYQ-tNPtEwVG)Xf<|!BBWITt5*X9I0;~9}g!w2V-%Yvz(Lj zuF9+kgEm79%Wtl7aY3%QioK&Yml#_$akHR3!;>oq%tA9}6K6su%sTTj2{%{dThpgs z<(gbJH+z#K->|vK)W11frN;{9-?q8K-Bp!a)N!@wl`~dQ{;`5$TGr&e(qAwuzvO)N zS5uo2j=-mQ5xfKD+}P)81E0jjhhA+44+ zt&Z(lh%T*xQLT|#t%=uK3-7dzI9h9pZcUmXL#J4{$9={3K$UeNe&gh|E98f1Wc(^U tiJV;%SfbzIQL??J+9Rty1^&mW-3(7s`jlr%4fP$*nNyyniX`7st-rQ-pw0jQ diff --git a/bin/application/MainWindowController.class b/bin/application/MainWindowController.class index ca0c2bf2cdd9df14d70cfcc52a90ccf663343109..8b79d8c1d6b33a5cfd07f4fcdd5310b49b1fdc66 100644 GIT binary patch literal 24237 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 AwEzGB literal 22670 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 check config.xml + //get os and the right paths if(System.getProperty("os.name").equals("Linux")){ - if(dirLinux.exists() != true){ - dirLinux.mkdir(); - pictureCacheLinux.mkdir(); - }else if(fileLinux.exists() != true){ - firstStart(); - mainWindowController.setColor("00a8cc"); - mainWindowController.setxPosHelper(0); - mainWindowController.saveSettings(); - Runtime.getRuntime().exec("java -jar cemu_UI.jar"); //start again (preventing Bugs) - System.exit(0); //finishes itself - } - if(pictureCacheLinux.exists() != true){ - pictureCacheLinux.mkdir(); - } - //windows + directory = new File(dirLinux); + configFile = new File(dirLinux + "/config.xml"); + gamesDBFile = new File(dirLinux + "/games.db"); + localDB = new File(dirLinux+"/localRoms.db"); + pictureCache= new File(dirLinux+"/picture_cache"); }else{ - if(dirWin.exists() != true){ - dirWin.mkdir(); - pictureCacheWin.mkdir(); - }else if(fileWin.exists() != true){ - firstStart(); - mainWindowController.setColor("00a8cc"); - mainWindowController.setxPosHelper(0); - mainWindowController.saveSettings(); - Runtime.getRuntime().exec("java -jar cemu_UI.jar"); //start again (preventing Bugs) - System.exit(0); //finishes itself - } - if(pictureCacheWin.exists() != true){ - pictureCacheWin.mkdir(); + directory = new File(dirWin); + configFile = new File(dirWin + "/config.xml"); + gamesDBFile = new File(dirWin + "/games.db"); + localDB = new File(dirWin+"/localRoms.db"); + pictureCache= new File(dirWin+"/picture_cache"); + } + + //startup checks + System.out.println(directory.exists()); + System.out.println(configFile.exists()); + if(directory.exists() != true){ + System.out.println("mkdir all"); + directory.mkdir(); + pictureCache.mkdir(); + } + + if(configFile.exists() != true){ + System.out.println("firststart"); + firstStart(); + mainWindowController.setColor("00a8cc"); + mainWindowController.setxPosHelper(0); + mainWindowController.saveSettings(); + Runtime.getRuntime().exec("java -jar cemu_UI.jar"); //start again (preventing Bugs) + System.exit(0); //finishes itself + } + + if(pictureCache.exists() != true){ + pictureCache.mkdir(); + } + + if(gamesDBFile.exists() != true){ + try { + System.out.print("downloading games.db... "); + URL website = new URL(gamesDBdownloadURL); + ReadableByteChannel rbc = Channels.newChannel(website.openStream()); + FileOutputStream fos = new FileOutputStream(gamesDBFile); + fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE); + fos.close(); + System.out.println("done!"); + } catch (Exception e) { + e.printStackTrace(); } } - //TODO download games.db + //loading settings and initialize UI mainWindowController.loadSettings(); - mainWindowController.dbController.main(); - mainWindowController.dbController.loadRoms(); - mainWindowController.initActions(); mainWindowController.initUI(); diff --git a/src/application/MainWindow.fxml b/src/application/MainWindow.fxml index e762ec0..75c7178 100644 --- a/src/application/MainWindow.fxml +++ b/src/application/MainWindow.fxml @@ -14,7 +14,7 @@ - + @@ -22,7 +22,7 @@ - + @@ -54,10 +54,16 @@ - + + + + + + + diff --git a/src/application/MainWindowController.java b/src/application/MainWindowController.java index d65fa7c..4780489 100644 --- a/src/application/MainWindowController.java +++ b/src/application/MainWindowController.java @@ -9,6 +9,8 @@ import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.sql.SQLException; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.Optional; import java.util.Properties; @@ -70,6 +72,12 @@ public class MainWindowController { @FXML private JFXButton playBtn; + @FXML + private JFXButton timePlayedBtn; + + @FXML + private JFXButton lastTimePlayedBtn; + @FXML private JFXHamburger menuHam; @@ -109,6 +117,7 @@ public class MainWindowController { private String romPath; private String gameExecutePath; private String selectedGameTitleID; + private String selectedGameTitle; private String color; private int xPos = -200; private int yPos = 17; @@ -152,12 +161,13 @@ public class MainWindowController { } void initActions() { - System.out.println("initializing Actions ..."); + System.out.print("initializing Actions... "); HamburgerBackArrowBasicTransition burgerTask = new HamburgerBackArrowBasicTransition(menuHam); menuHam.addEventHandler(MouseEvent.MOUSE_PRESSED, (e)->{ if(playTrue){ playBtnSlideOut(); + lastTimePlayedBtnSlideOut(); } if(menuTrue == false){ sideMenuSlideIn(); @@ -215,7 +225,6 @@ public class MainWindowController { alert.showAndWait(); } else{ - System.out.println("remove TODO!"); int i = gameCover.indexOf((selectedEvent).getSource()); gameVBox.remove(i); gameCover.remove(i); @@ -246,7 +255,7 @@ public class MainWindowController { }else{ Alert updateAlert = new Alert(AlertType.CONFIRMATION); //new alert with file-chooser updateAlert.setTitle("cemu_UI"); - updateAlert.setHeaderText("add new Game"); + updateAlert.setHeaderText("update "+selectedGameTitle); updateAlert.setContentText("pleas select the update directory"); updateAlert.initOwner(main.primaryStage); @@ -269,7 +278,11 @@ public class MainWindowController { try { System.out.println("copying files..."); - FileUtils.copyDirectory(srcDir, destDir); + playBtn.setText("updating..."); + playBtn.setDisable(true); + FileUtils.copyDirectory(srcDir, destDir); //TODO progress indicator + playBtn.setText("play"); + playBtn.setDisable(false); System.out.println("done!"); } catch (IOException e) { e.printStackTrace(); @@ -293,6 +306,7 @@ public class MainWindowController { public void handle(MouseEvent event) { if (playTrue) { playBtnSlideOut(); + lastTimePlayedBtnSlideOut(); } } }); @@ -302,6 +316,7 @@ public class MainWindowController { public void handle(MouseEvent event) { if (playTrue) { playBtnSlideOut(); + lastTimePlayedBtnSlideOut(); } } }); @@ -327,6 +342,16 @@ public class MainWindowController { e.printStackTrace(); } } + + @FXML + void timePlayedBtnAction(ActionEvent event){ + + } + + @FXML + void lastTimePlayedBtnAction(ActionEvent event){ + + } @FXML void settingsBtnAction(ActionEvent event) { @@ -346,7 +371,7 @@ public class MainWindowController { Alert alert = new Alert(AlertType.INFORMATION); alert.setTitle("about"); alert.setHeaderText("cemu_UI"); - alert.setContentText("cemu_UI by @Seil0 \npre release 0.0.1 \nwww.kellerkinder.xyz"); + alert.setContentText("cemu_UI by @Seil0 \npre release 0.1.0 \nwww.kellerkinder.xyz"); alert.initOwner(main.primaryStage); alert.showAndWait(); } @@ -526,57 +551,68 @@ public class MainWindowController { void addGame(String title, String coverPath, String romPath, String titleID){ ImageView imageView = new ImageView(); //TODO abgerundete Kanten, - Label gameTitle = new Label(title); - File file = new File(coverPath); + Label gameTitleLabel = new Label(title); + File coverFile = new File(coverPath); VBox VBox = new VBox(); JFXButton gameBtn = new JFXButton(); - Image image = new Image(file.toURI().toString()); + Image coverImage = new Image(coverFile.toURI().toString()); generatePosition(); // System.out.println("Title: "+title+"; cover: "+coverPath+"; rom: "+romPath); // System.out.println("X: "+getxPos()+"; Y: "+getyPos()); gameVBox.add(VBox); gameCover.add(gameBtn); - gameLabel.add(gameTitle); - gameTitle.setMaxWidth(200); - imageView.setImage(image); + gameLabel.add(gameTitleLabel); + gameTitleLabel.setMaxWidth(200); + imageView.setImage(coverImage); imageView.setFitHeight(300); imageView.setFitWidth(200); gameBtn.setGraphic(imageView); - gameBtn.setContextMenu(gameContextMenu); -// gameBtn.setOnAction(new EventHandler() { -// @Override -// public void handle(ActionEvent event) { - + gameBtn.setContextMenu(gameContextMenu); gameBtn.addEventHandler(MouseEvent.MOUSE_CLICKED, new EventHandler() { @Override public void handle(MouseEvent event) { - System.out.println("selected: "+title+"; ID: "+titleID); + gameExecutePath = romPath; selectedGameTitleID = titleID; + selectedGameTitle = title; selectedEvent = event; lastGameLabel.setStyle("-fx-underline: false;"); gameLabel.get(gameCover.indexOf(event.getSource())).setStyle("-fx-underline: true;"); lastGameLabel = gameLabel.get(gameCover.indexOf(event.getSource())); - System.out.println(dbController.getLastPlayed(titleID)); + + if(dbController.getLastPlayed(titleID).equals("") || dbController.getLastPlayed(titleID).equals(null)){ + lastTimePlayedBtn.setText("Last played, never"); + }else{ + DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + + int localInt = Integer.parseInt(dtf.format(LocalDate.now()).replaceAll("-", "")); + int lastInt = Integer.parseInt(dbController.getLastPlayed(titleID).replaceAll("-", "")); + + if(localInt == lastInt){ + lastTimePlayedBtn.setText("Last played, today"); + }else if(localInt-1 == lastInt){ + lastTimePlayedBtn.setText("Last played, yesterday"); + }else{ + lastTimePlayedBtn.setText("Last played, "+dbController.getLastPlayed(titleID)); + } + } if(playTrue == false){ - playBtnSlideIn(); //TODO anderes design(mehr details spielzeit, zuletzt gespielt, etc.) + playBtnSlideIn(); //TODO anderes design(mehr details spielzeit, etc.) + lastTimePlayedBtnSlideIn(); } } }); - gameTitle.setFont(Font.font("System", FontWeight.BOLD, 14)); - VBox.getChildren().addAll(gameTitle,gameBtn); + gameTitleLabel.setFont(Font.font("System", FontWeight.BOLD, 14)); + VBox.getChildren().addAll(gameTitleLabel,gameBtn); VBox.setLayoutX(getxPos()); VBox.setLayoutY(getyPos()); -// gameVBox.setMouseTransparent(false); gamesAnchorPane.getChildren().add(VBox); - -// gamesAnchorPane.getChildren().add(gameBtn); } @@ -595,6 +631,7 @@ public class MainWindowController { private void applyColor(){ String style = "-fx-background-color: #"+getColor()+";"; String btnStyleBlack = "-fx-button-type: RAISED; -fx-background-color: #"+getColor()+"; -fx-text-fill: BLACK;"; + String timeBtnStyle = "-fx-button-type: RAISED; -fx-background-color: #ffffff; -fx-text-fill: BLACK;"; getColor(); sideMenuVBox.setStyle(style); @@ -609,10 +646,13 @@ public class MainWindowController { romTFBtn.setStyle(btnStyleBlack); aboutBtn.setStyle(btnStyleBlack); playBtn.setStyle(btnStyleBlack); + + lastTimePlayedBtn.setStyle(timeBtnStyle); + timePlayedBtn.setStyle(timeBtnStyle); } void saveSettings(){ - System.out.println("saving Settings ..."); + System.out.print("saving Settings... "); OutputStream outputStream; //new output-stream try { props.setProperty("cemuPath", getCemuPath()); @@ -636,7 +676,7 @@ public class MainWindowController { } void loadSettings(){ - System.out.print("loading settings ..."); + System.out.print("loading settings... "); InputStream inputStream; try { if(System.getProperty("os.name").equals("Linux")){ @@ -709,6 +749,38 @@ public class MainWindowController { translateTransition.play(); } + @SuppressWarnings("unused") + private void timePlayedBtnSlideIn(){ + timePlayedBtn.setVisible(true); + TranslateTransition translateTransition = new TranslateTransition(Duration.millis(300), timePlayedBtn); + translateTransition.setFromY(55); + translateTransition.setToY(0); + translateTransition.play(); + } + + @SuppressWarnings("unused") + private void timePlayedBtnSlideOut(){ + TranslateTransition translateTransition = new TranslateTransition(Duration.millis(300), timePlayedBtn); + translateTransition.setFromY(0); + translateTransition.setToY(56); + translateTransition.play(); + } + + private void lastTimePlayedBtnSlideIn(){ + lastTimePlayedBtn.setVisible(true); + TranslateTransition translateTransition = new TranslateTransition(Duration.millis(300), lastTimePlayedBtn); + translateTransition.setFromY(55); + translateTransition.setToY(0); + translateTransition.play(); + } + + private void lastTimePlayedBtnSlideOut(){ + TranslateTransition translateTransition = new TranslateTransition(Duration.millis(300), lastTimePlayedBtn); + translateTransition.setFromY(0); + translateTransition.setToY(56); + translateTransition.play(); + } + private void editColor(String input){ StringBuilder sb = new StringBuilder(input); sb.delete(0, 2); diff --git a/src/application/dbController.java b/src/application/dbController.java index 414705a..6241dcd 100644 --- a/src/application/dbController.java +++ b/src/application/dbController.java @@ -39,6 +39,7 @@ public class dbController { loadGamesDatabase(); createRomDatabase(); loadRomDirectory(mainWindowController.getRomPath()); + loadRoms(); checkRemoveEntry(); System.out.println("<==========finished loading sql==========>"); } @@ -57,7 +58,7 @@ public class dbController { // if the error message is "out of memory", it probably means no database file is found System.err.println(e.getMessage()); } - System.out.println("rom database loaded to driver manager"); + System.out.println("rom database loaded successfull"); } /**