diff --git a/bin/.gitignore b/bin/.gitignore
index b42b859..9eb92dc 100644
--- a/bin/.gitignore
+++ b/bin/.gitignore
@@ -1 +1,2 @@
/application/
+/datatypes/
diff --git a/bin/application/MainWindow.fxml b/bin/application/MainWindow.fxml
index 90a6ba3..da7a543 100644
--- a/bin/application/MainWindow.fxml
+++ b/bin/application/MainWindow.fxml
@@ -9,10 +9,12 @@
+
+
@@ -85,7 +87,18 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/bin/application/MainWindowController$1.class b/bin/application/MainWindowController$1.class
index fa8bc93..ca1cabc 100644
Binary files a/bin/application/MainWindowController$1.class and b/bin/application/MainWindowController$1.class differ
diff --git a/bin/application/MainWindowController$2.class b/bin/application/MainWindowController$2.class
index 2a2682f..dd9d196 100644
Binary files a/bin/application/MainWindowController$2.class and b/bin/application/MainWindowController$2.class differ
diff --git a/bin/application/MainWindowController$3.class b/bin/application/MainWindowController$3.class
index 9472d46..609541d 100644
Binary files a/bin/application/MainWindowController$3.class and b/bin/application/MainWindowController$3.class differ
diff --git a/bin/application/MainWindowController$4.class b/bin/application/MainWindowController$4.class
index 9e3c14d..2b83900 100644
Binary files a/bin/application/MainWindowController$4.class and b/bin/application/MainWindowController$4.class differ
diff --git a/bin/application/MainWindowController$5.class b/bin/application/MainWindowController$5.class
index 8717130..daa45da 100644
Binary files a/bin/application/MainWindowController$5.class and b/bin/application/MainWindowController$5.class differ
diff --git a/bin/application/MainWindowController$6.class b/bin/application/MainWindowController$6.class
index 80ba954..893270c 100644
Binary files a/bin/application/MainWindowController$6.class and b/bin/application/MainWindowController$6.class differ
diff --git a/bin/application/MainWindowController$7.class b/bin/application/MainWindowController$7.class
index 0413802..d948686 100644
Binary files a/bin/application/MainWindowController$7.class and b/bin/application/MainWindowController$7.class differ
diff --git a/bin/application/MainWindowController.class b/bin/application/MainWindowController.class
index a0ce15b..2fff339 100644
Binary files a/bin/application/MainWindowController.class and b/bin/application/MainWindowController.class differ
diff --git a/bin/datatypes/SmmdbApiDataType.class b/bin/datatypes/SmmdbApiDataType.class
index f59b43d..e5bafb5 100644
Binary files a/bin/datatypes/SmmdbApiDataType.class and b/bin/datatypes/SmmdbApiDataType.class differ
diff --git a/src/application/MainWindow.fxml b/src/application/MainWindow.fxml
index 90a6ba3..da7a543 100644
--- a/src/application/MainWindow.fxml
+++ b/src/application/MainWindow.fxml
@@ -9,10 +9,12 @@
+
+
@@ -85,7 +87,18 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/application/MainWindowController.java b/src/application/MainWindowController.java
index f0f1691..6f3adb0 100644
--- a/src/application/MainWindowController.java
+++ b/src/application/MainWindowController.java
@@ -22,6 +22,9 @@ import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.math.BigInteger;
+import java.net.MalformedURLException;
+import java.net.URISyntaxException;
+import java.net.URL;
import java.sql.SQLException;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
@@ -41,9 +44,9 @@ import com.jfoenix.controls.JFXTreeTableColumn;
import com.jfoenix.controls.JFXTreeTableView;
import com.jfoenix.transitions.hamburger.HamburgerBackArrowBasicTransition;
+import datatypes.CourseTableDataType;
import datatypes.SmmdbApiDataType;
import datatypes.UIROMDataType;
-import datatypes.CourseTableDataType;
import javafx.animation.FadeTransition;
import javafx.animation.ParallelTransition;
import javafx.animation.TranslateTransition;
@@ -74,6 +77,7 @@ import javafx.scene.paint.Color;
import javafx.scene.paint.Paint;
import javafx.scene.text.Font;
import javafx.scene.text.FontWeight;
+import javafx.scene.text.TextFlow;
import javafx.stage.DirectoryChooser;
import javafx.stage.FileChooser;
import javafx.util.Duration;
@@ -101,14 +105,17 @@ public class MainWindowController {
@FXML
private JFXButton romTFBtn;
+ @FXML
+ private JFXButton smmdbDownloadBtn;
+
@FXML
private JFXButton playBtn;
@FXML
- JFXButton timePlayedBtn;
+ private JFXButton lastTimePlayedBtn;
@FXML
- private JFXButton lastTimePlayedBtn;
+ JFXButton timePlayedBtn;
@FXML
private JFXHamburger menuHam;
@@ -119,6 +126,9 @@ public class MainWindowController {
@FXML
private JFXTextField romTextField;
+ @FXML
+ private TextFlow smmdbTextFlow;
+
@FXML
private JFXColorPicker colorPicker;
@@ -140,12 +150,18 @@ public class MainWindowController {
@FXML
private ScrollPane scrollPaneMain;
+ @FXML
+ private ScrollPane smmdbScrollPane;
+
@FXML
private VBox sideMenuVBox;
@FXML
private HBox topHBox;
+ @FXML
+ private ImageView smmdbImageView;
+
@FXML
private JFXTreeTableView courseTreeTable = new JFXTreeTableView();
@@ -237,9 +253,9 @@ public class MainWindowController {
applyColor();
//initialize courseTable
- titleColumn.setPrefWidth(150);
- starsColumn.setPrefWidth(85);
- downloadsColumn.setPrefWidth(115);
+ titleColumn.setPrefWidth(168);
+ downloadsColumn.setPrefWidth(130);
+ starsColumn.setPrefWidth(100);
courseTreeTable.setRoot(root);
courseTreeTable.setShowRoot(false);
@@ -497,6 +513,20 @@ public class MainWindowController {
for (int i = 0; i < courses.size(); i++) {
if (courses.get(i).getId() == id) {
+ if (courses.get(i).getHasimage() == 1) {
+ try {
+ URL url = new URL("http://smmdb.ddns.net/img/courses/thumbnails/" + id + ".pic");
+ Image image = new Image(url.toURI().toString());
+ smmdbImageView.setImage(image);
+ } catch (MalformedURLException | URISyntaxException e) {
+ e.printStackTrace();
+ }
+ } else {
+ //TODO show an image if none was found
+// Image image = new Image(url.toURI().toString());
+// smmdbImageView.setImage(image);
+ }
+
//TODO show additional information and download option
System.out.println(i);
}
@@ -626,6 +656,18 @@ public class MainWindowController {
}
}
+ @FXML
+ void smmdbDownloadBtnAction(ActionEvent event){
+ //TODO implement download
+ System.out.println("this needs to be implemented ^^");
+ try {
+ URL url = new URL("smmdb.ddns.net/courses/" + id);
+ } catch (MalformedURLException e) {
+ System.err.println("something went wrong during downloading the course");
+ e.printStackTrace();
+ }
+ }
+
@FXML
void cemuTextFieldAction(ActionEvent event){
setCemuPath(cemuTextField.getText());
@@ -918,6 +960,7 @@ public class MainWindowController {
playBtn.setStyle("-fx-text-fill: WHITE; -fx-font-family: Roboto Medium;");
cemuTFBtn.setStyle(btnStyleWhite);
romTFBtn.setStyle(btnStyleWhite);
+ smmdbDownloadBtn.setStyle(btnStyleWhite);
playBtn.setStyle(btnStyleWhite);
aboutBtn.setGraphic(info_white);
@@ -936,6 +979,7 @@ public class MainWindowController {
playBtn.setStyle("-fx-text-fill: BLACK; -fx-font-family: Roboto Medium;");
cemuTFBtn.setStyle(btnStyleBlack);
romTFBtn.setStyle(btnStyleBlack);
+ smmdbDownloadBtn.setStyle(btnStyleBlack);
playBtn.setStyle(btnStyleBlack);
aboutBtn.setGraphic(info_black);
diff --git a/src/application/SmmdbApiQuery.java b/src/application/SmmdbApiQuery.java
index e573cef..52d66c8 100644
--- a/src/application/SmmdbApiQuery.java
+++ b/src/application/SmmdbApiQuery.java
@@ -50,7 +50,7 @@ public class SmmdbApiQuery {
//if value is 9 or "notset" the api returned NULL as value
for (int i = 0; i < courseIDs.size(); i++) {
- int id, owner, coursetype, leveltype, difficulty, lastmodified, uploaded, downloads, stars, ispackage, updatereq;
+ int id, owner, coursetype, leveltype, difficulty, lastmodified, uploaded, downloads, stars, hasimage, ispackage, updatereq;
String nintendoid, title;
JsonObject singleObject = mainObject.get(courseIDs.get(i).toString()).asObject();
@@ -99,6 +99,11 @@ public class SmmdbApiQuery {
} catch (Exception e) {
stars = 9;
}
+ try {
+ hasimage = singleObject.getInt("hasimage", 0);
+ } catch (Exception e) {
+ hasimage = 9;
+ }
try {
ispackage = singleObject.getInt("ispackage", 0);
} catch (Exception e) {
@@ -121,7 +126,7 @@ public class SmmdbApiQuery {
}
course.add(new SmmdbApiDataType(id, owner, coursetype, leveltype, difficulty, lastmodified, uploaded, downloads,
- stars, ispackage, updatereq, nintendoid, title));
+ stars, hasimage, ispackage, updatereq, nintendoid, title));
}
return course;
diff --git a/src/datatypes/SmmdbApiDataType.java b/src/datatypes/SmmdbApiDataType.java
index 6bfb53d..8c24c80 100644
--- a/src/datatypes/SmmdbApiDataType.java
+++ b/src/datatypes/SmmdbApiDataType.java
@@ -19,14 +19,15 @@ public class SmmdbApiDataType {
private final IntegerProperty uploaded = new SimpleIntegerProperty();
private final IntegerProperty downloads = new SimpleIntegerProperty();
private final IntegerProperty stars = new SimpleIntegerProperty();
+ private final IntegerProperty hasimage = new SimpleIntegerProperty();
private final IntegerProperty ispackage = new SimpleIntegerProperty();
private final IntegerProperty updatereq = new SimpleIntegerProperty();
private final StringProperty nintendoid = new SimpleStringProperty();
private final StringProperty title = new SimpleStringProperty();
public SmmdbApiDataType(final int id, final int owner, final int coursetype, final int leveltype, final int difficulty,
- final int lastmodified, final int uploaded, final int downloads, final int stars, final int ispackage,
- final int updatereq, final String nintendoid, final String title) {
+ final int lastmodified, final int uploaded, final int downloads, final int stars, final int hasimage,
+ final int ispackage, final int updatereq, final String nintendoid, final String title) {
this.id.set(id);
this.owner.set(owner);
this.coursetype.set(coursetype);
@@ -36,6 +37,7 @@ public class SmmdbApiDataType {
this.uploaded.set(uploaded);
this.downloads.set(downloads);
this.stars.set(stars);
+ this.hasimage.set(hasimage);
this.ispackage.set(ispackage);
this.updatereq.set(updatereq);
this.nintendoid.set(nintendoid);
@@ -82,6 +84,10 @@ public class SmmdbApiDataType {
return stars;
}
+ public IntegerProperty hasimageProperty(){
+ return hasimage;
+ }
+
public IntegerProperty ispackageProperty(){
return ispackage;
}
@@ -130,6 +136,10 @@ public class SmmdbApiDataType {
return starsProperty().get();
}
+ public int getHasimage() {
+ return hasimageProperty().get();
+ }
+
public int getIspackage() {
return ispackageProperty().get();
}
@@ -182,6 +192,10 @@ public class SmmdbApiDataType {
starsProperty().set(stars);
}
+ public final void setHasimage(int hasimage) {
+ hasimageProperty().set(hasimage);
+ }
+
public final void setIspackage(int ispackage) {
ispackageProperty().set(ispackage);
}
@@ -197,5 +211,5 @@ public class SmmdbApiDataType {
public final void setTitle(String title) {
titleProperty().set(title);
}
-
+
}