From 224e4e6eec687813587cfd851360d4b0c758f5fb Mon Sep 17 00:00:00 2001 From: Jannik Date: Fri, 16 Jun 2017 16:23:03 +0200 Subject: [PATCH] smmdbapi part 3 begun work on ui frontend *courses are displayed and selectable --- bin/.gitignore | 2 +- bin/application/MainWindow.fxml | 6 +- bin/application/MainWindowController$1.class | Bin 2199 -> 2199 bytes bin/application/MainWindowController$2.class | Bin 4185 -> 4185 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 4905 -> 2449 bytes bin/application/MainWindowController.class | Bin 29788 -> 34342 bytes src/application/MainWindow.fxml | 6 +- src/application/MainWindowController.java | 103 ++++++++++++++++--- src/datatypes/courseTableDataType.java | 23 +++++ 13 files changed, 125 insertions(+), 15 deletions(-) create mode 100644 src/datatypes/courseTableDataType.java diff --git a/bin/.gitignore b/bin/.gitignore index a4b7045..94b23b3 100644 --- a/bin/.gitignore +++ b/bin/.gitignore @@ -1,3 +1,3 @@ /application/ -/dataTypes/ /datatypes/ +/resources/ diff --git a/bin/application/MainWindow.fxml b/bin/application/MainWindow.fxml index ca3010e..90a6ba3 100644 --- a/bin/application/MainWindow.fxml +++ b/bin/application/MainWindow.fxml @@ -5,6 +5,7 @@ + @@ -82,7 +83,10 @@ - + + + + diff --git a/bin/application/MainWindowController$1.class b/bin/application/MainWindowController$1.class index cc32e0b65517c82ab3d8d58d74df59c7693a9d72..ab9d40465d87f2f64142ee69c9b967be2362841e 100644 GIT binary patch delta 65 zcmbO(I9+gqAUhMI!en9goqCMQ3^I%=3~G$340?=e43>=Q4EBr~46clt3@MCS3`LCE V4CRbE3{{M}3{8yslYg<#1pr~*3u*uW delta 65 zcmV-H0KWg15tk9L5eEVQ?voP-xh??l02~1F044zQ04@OZ0675l06zfs07U@z0Av98 X0CE8N0CxcT0D1uX0D=Jhllljpk}MU| diff --git a/bin/application/MainWindowController$2.class b/bin/application/MainWindowController$2.class index 500c251b4e7a28d9db989b862445dbf8243f1f4e..7803ef713fb7ab4361df4a1838747b78e0a1d18e 100644 GIT binary patch delta 158 zcmWN_y9z-80LS6~&v=~j0*c9qlzYf6>Zn7=Ee08E%AzbLlTsF*LaDP`%m$e}fW>08 zI?FeFuiz_qIhw?rlNs@B;_{PFh@`@#lqRhL8CA(@MovreT2auNqPCQ@qpSlJU8w3x zO*iVgW9dmlKPQ5KU)DGR?sDZ9mNkm>vYi^XVV zd4|U+IEC}UK$oM@ajo6T;87K?+W6GPuO0#Q32I7M3k)rZXoaZ_QEiE7Ph4jbx{}n5 ylTGyGNQzoG7~Dys4}Orx-XlO@MU$pg2M?ZA6r>9@~I^qywK!kfzJaCOmh9OxzOvV&>q{ZYsPmH2GGvkE? VuPm9e!smlGKF_*k9-J<0{sCm)FmwO_ delta 178 zcmWN{J&VBs0LSs)cexDGy#g7`mMeKY&+_mW5m%mFlvB!TvQSr6Ww047u3RpIcVM$y z(Va_OzcL}sX;tIO%gVP4M~$yx4Pw=QtAkUy7Y)9 zcB|QDlKS@VVqA>DvyZBk^4-Y3>VY?fsOgcq!o2H=h9Wc-qop)$W$7r#hw^k)qNg%_ zjTp#bC>KjdY@PVjnUSuHb>j;UQv!Sw#Uaj|1PhWZF*j9V-SkEM zQ#u$rI>Ru2^q=@aKj?SIb9d9UYcnL{bas00x#ynqoOAAZPJa96=Vt(>@x6u^!#QJf z)3!{*w;ZXL3`;(+WX;*mJJNR@+ZJwWMnjxoWW(4pblZ@1eYv_JOkcw>hOz0?gLavIveC0@c){>S#$8bK~TRl@@i07S}NPyvG z4h@4z3}Bceff0s*v{D!@T2d@E8&%=17*$&^j1?Wzuq%dZseM}*S1=h;J-w!82&QHR zQPvn1)5R`HSgv})-BRW&Dk-@@=WzPENEFya*{Vy!Z@L6?sUOR;*|{#Jj=IZKl9<35 z4W}6Xj@@iX%EbhxIj-ZzAureaY(@(4Cf?KVF2hvMx`qxpa+qZpqLk%@ZQn6` zgW=V5AuMX7Uo;RYj2^I1LHeRD+$3({1CHA&^MjW3gLYG4s{a(yF#1$?C8!w8v` zcZsJO90lB?Iyp_B{D<9RIr@E%5UBE!i8|0K3#eZFbgHHBgVOB~CQyv-!> zG0GY~i8>7Kajf7|qLF|ym)DL29a^V)EaHJ;vxiFKP*=ClGnGMn#t_R*D$P}n&+!Fu zD0Qlk#7&pFT{&W<9Yf&kD`kRea3)%VNU(vT$x#E5)S&N#hYaKGUJT3DiJ%Tk!#cz9 zAa~KMa%`y3v`v+0TQVe_4sj|jZa3uN@$z40rEnd)MrBvLeo&rpNU4D$#ddIdBFg%^ zoBPZ^)rT8JvxKhfG+k3HSZa!#>NYJeD+COMqe!|riH^$IqnDJ^;k(kb9giMcN%-qd zjbmF4w;?qrZwFjRV~ZCg4cokJc%JYyd`r`|ox2y18N=xp5F?Q^bp(AcfsKr)*-Aef zV)P}DBXZqi;!lG%$tfoGrMl^+6~Q6&pb=r;QuW3=aVM@f%koc_~u#tG6mN$VJ1 z3#|Q$IQ;>u*(YR-zCE03;msD#@8RNsOb?H)wJ`G>w_13A5A#3b?k`w;6rPm!aQ`VP zV~<*R+|m8Ag=!0H3f}+}zA@#C{ef}zCvoauc+CC|aArdcZJdM#U&9Wtuc84NM70Ws tRs+~1J7HW(>l@OF!zEb^UOO@$P1?ta9=5O(c#Q?NXh~yd7vIGb{{j*qxXl0n literal 4905 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 diff --git a/bin/application/MainWindowController.class b/bin/application/MainWindowController.class index b60917928722e6a8a9c65422e745579f6ae49339..f9018244294284ce6a700d36ebee751b0a1968fe 100644 GIT binary patch literal 34342 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 DALoz5 literal 29788 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 + @@ -82,7 +83,10 @@ - + + + + diff --git a/src/application/MainWindowController.java b/src/application/MainWindowController.java index 5d667d8..0c54a2a 100644 --- a/src/application/MainWindowController.java +++ b/src/application/MainWindowController.java @@ -38,12 +38,17 @@ import com.jfoenix.controls.JFXColorPicker; import com.jfoenix.controls.JFXHamburger; import com.jfoenix.controls.JFXTextField; import com.jfoenix.controls.JFXToggleButton; +import com.jfoenix.controls.JFXTreeTableColumn; +import com.jfoenix.controls.JFXTreeTableView; import com.jfoenix.transitions.hamburger.HamburgerBackArrowBasicTransition; import datatypes.SmmdbApiDataType; +import datatypes.courseTableDataType; import javafx.animation.FadeTransition; import javafx.animation.ParallelTransition; import javafx.animation.TranslateTransition; +import javafx.beans.value.ChangeListener; +import javafx.beans.value.ObservableValue; import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.event.ActionEvent; @@ -58,6 +63,7 @@ import javafx.scene.control.Label; import javafx.scene.control.MenuItem; import javafx.scene.control.ScrollPane; import javafx.scene.control.TextInputDialog; +import javafx.scene.control.TreeItem; import javafx.scene.image.Image; import javafx.scene.image.ImageView; import javafx.scene.input.MouseEvent; @@ -140,6 +146,25 @@ public class MainWindowController { @FXML private HBox topHBox; + + @FXML + private JFXTreeTableView courseTreeTable = new JFXTreeTableView(); + + @FXML + TreeItem root = new TreeItem<>(new courseTableDataType("",0,0,0)); + + @FXML + private JFXTreeTableColumn titleColumn = new JFXTreeTableColumn<>("title"); + + @FXML + private JFXTreeTableColumn starsColumn = new JFXTreeTableColumn<>("stars"); + + @FXML + private JFXTreeTableColumn downloadsColumn = new JFXTreeTableColumn<>("downloads"); + + @FXML + private JFXTreeTableColumn idColumn = new JFXTreeTableColumn<>("id"); + Main main; dbController dbController; SmmdbApiQuery smmdbApiQuery; @@ -147,6 +172,7 @@ public class MainWindowController { private boolean menuTrue = false; private boolean settingsTrue = false; private boolean playTrue = false; + private boolean smmdbTrue = false; private boolean fullscreen; private boolean cloudSync; private String cloudService = ""; //set cloud provider (at the moment only GoogleDrive, Dropbox is planed) @@ -163,6 +189,8 @@ public class MainWindowController { private int yPos = 17; private int xPosHelper; private int selectedUIDataIndex; + private int selected; + private int id; private DirectoryChooser directoryChooser = new DirectoryChooser(); private File dirWin = new File(System.getProperty("user.home") + "/Documents/cemu_UI"); private File dirLinux = new File(System.getProperty("user.home") + "/cemu_UI"); @@ -197,6 +225,7 @@ public class MainWindowController { smmdbApiQuery = new SmmdbApiQuery(); } + @SuppressWarnings("unchecked") //FIXME SuppressWarnings void initUI(){ cemuTextField.setText(cemuPath); romTextField.setText(romPath); @@ -204,8 +233,24 @@ public class MainWindowController { fullscreenToggleBtn.setSelected(isFullscreen()); cloudSyncToggleBtn.setSelected(isCloudSync()); edit.setDisable(true); - smmdbBtn.setDisable(false); //TODO applyColor(); + + //initialize courseTable + titleColumn.setPrefWidth(150); + starsColumn.setPrefWidth(85); + downloadsColumn.setPrefWidth(115); + + courseTreeTable.setRoot(root); + courseTreeTable.setShowRoot(false); + courseTreeTable.setEditable(false); + + titleColumn.setCellValueFactory(cellData -> cellData.getValue().getValue().title); + starsColumn.setCellValueFactory(cellData -> cellData.getValue().getValue().stars.asObject()); + downloadsColumn.setCellValueFactory(cellData -> cellData.getValue().getValue().downloads.asObject()); + idColumn.setCellValueFactory(cellData -> cellData.getValue().getValue().id.asObject()); + + courseTreeTable.getColumns().setAll(titleColumn, downloadsColumn, starsColumn, idColumn); + courseTreeTable.getColumns().get(3).setVisible(false); //hide idColumn (important) } void initActions() { @@ -213,26 +258,31 @@ public class MainWindowController { HamburgerBackArrowBasicTransition burgerTask = new HamburgerBackArrowBasicTransition(menuHam); menuHam.addEventHandler(MouseEvent.MOUSE_PRESSED, (e)->{ - if(playTrue){ + if (playTrue) { playBtnSlideOut(); } - if(menuTrue == false){ - sideMenuSlideIn(); - burgerTask.setRate(1.0); - burgerTask.play(); - menuTrue = true; - }else{ + if (menuTrue){ sideMenuSlideOut(); burgerTask.setRate(-1.0); burgerTask.play(); menuTrue = false; + }else{ + sideMenuSlideIn(); + burgerTask.setRate(1.0); + burgerTask.play(); + menuTrue = true; } - if(settingsTrue == true){ + if (settingsTrue) { settingsAnchorPane.setVisible(false); // setPath(tfPath.getText()); saveSettings(); settingsTrue = false; } + if (smmdbTrue) { + smmdbAnchorPane.setVisible(false); + smmdbTrue = false; + } + }); edit.setOnAction(new EventHandler() { @@ -248,7 +298,7 @@ public class MainWindowController { alert.initOwner(main.primaryStage); alert.showAndWait(); }else{ - System.out.println("show edit window TODO!"); //TODO + System.out.println("show edit window TODO!"); //TODO show edit window } } }); @@ -434,6 +484,20 @@ public class MainWindowController { } } }); + + //Change-listener for TreeTable + courseTreeTable.getSelectionModel().selectedItemProperty().addListener(new ChangeListener() { + @Override + public void changed(ObservableValue observable, Object oldVal, Object newVal){ + // last = selected; //for auto-play + selected = courseTreeTable.getSelectionModel().getSelectedIndex(); //get selected item + id = idColumn.getCellData(selected); //get name of selected item + + //TODO show additional information and download option + + System.out.println(id + "; " + selected); + } + }); System.out.println("initializing Actions done!"); } @@ -474,13 +538,28 @@ public class MainWindowController { @FXML void smmdbBtnAction() { - //TODO show TODO smmdbAnchorPane - + //show smmdbAnchorPane + if (smmdbTrue) { + smmdbAnchorPane.setVisible(false); + smmdbTrue = false; + } else { + smmdbAnchorPane.setVisible(true); + smmdbTrue = true; + } + //start query ArrayList courses = new ArrayList<>(smmdbApiQuery.startQuery()); System.out.println("size: " + courses.size()); System.out.println(courses.get(3).getNintendoid()); + + //add query response to courseTreeTable + for(int i = 0; i < courses.size(); i++){ + courseTableDataType helpCourse = new courseTableDataType(courses.get(i).getTitle(), courses.get(i).getDownloads(), + courses.get(i).getStars(), courses.get(i).getId()); + + root.getChildren().add(new TreeItem(helpCourse)); //add data to root-node + } } @FXML diff --git a/src/datatypes/courseTableDataType.java b/src/datatypes/courseTableDataType.java new file mode 100644 index 0000000..f5c8fc3 --- /dev/null +++ b/src/datatypes/courseTableDataType.java @@ -0,0 +1,23 @@ +package datatypes; + +import com.jfoenix.controls.datamodels.treetable.RecursiveTreeObject; + +import javafx.beans.property.IntegerProperty; +import javafx.beans.property.SimpleIntegerProperty; +import javafx.beans.property.SimpleStringProperty; +import javafx.beans.property.StringProperty; + +public class courseTableDataType extends RecursiveTreeObject { + + public final StringProperty title; + public final IntegerProperty downloads; + public final IntegerProperty stars; + public final IntegerProperty id; + + public courseTableDataType(String title, int downloads, int stars, int id) { + this.title = new SimpleStringProperty(title); + this.downloads = new SimpleIntegerProperty(downloads); + this.stars = new SimpleIntegerProperty(stars); + this.id = new SimpleIntegerProperty(id); + } +}