maen fixes, clean up and add/edit dialog work
* maven uses now apache shaped as build plugin * begun reworking the addGame Dialog
This commit is contained in:
parent
1268ab9cf8
commit
88a83e5f0d
82
pom.xml
82
pom.xml
|
@ -28,7 +28,7 @@
|
|||
<dependency>
|
||||
<groupId>com.jfoenix</groupId>
|
||||
<artifactId>jfoenix</artifactId>
|
||||
<version>1.9.0</version>
|
||||
<version>1.9.1</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
|
@ -46,13 +46,13 @@
|
|||
<dependency>
|
||||
<groupId>org.apache.logging.log4j</groupId>
|
||||
<artifactId>log4j-api</artifactId>
|
||||
<version>2.9.0</version>
|
||||
<version>2.9.1</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.logging.log4j</groupId>
|
||||
<artifactId>log4j-core</artifactId>
|
||||
<version>2.9.0</version>
|
||||
<version>2.9.1</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
|
@ -180,27 +180,65 @@
|
|||
</dependencies>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-shade-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<goals>
|
||||
<goal>shade</goal>
|
||||
</goals>
|
||||
|
||||
<plugins>
|
||||
|
||||
<!--
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-dependency-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>copy-dependencies</id>
|
||||
<phase>prepare-package</phase>
|
||||
<goals>
|
||||
<goal>copy-dependencies</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<outputDirectory>
|
||||
${project.build.directory}/libraries
|
||||
</outputDirectory>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-jar-plugin</artifactId>
|
||||
<configuration>
|
||||
<shadedArtifactAttached>true</shadedArtifactAttached>
|
||||
<transformers>
|
||||
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
|
||||
<mainClass>com.cemu_UI.application.Main</mainClass>
|
||||
</transformer>
|
||||
</transformers>
|
||||
<archive>
|
||||
<manifest>
|
||||
<addClasspath>true</addClasspath>
|
||||
<classpathPrefix>libraries/</classpathPrefix>
|
||||
<mainClass>
|
||||
com.cemu_UI.application.Main
|
||||
</mainClass>
|
||||
</manifest>
|
||||
</archive>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugin>
|
||||
-->
|
||||
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-shade-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<goals>
|
||||
<goal>shade</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<shadedArtifactAttached>true</shadedArtifactAttached>
|
||||
<transformers>
|
||||
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
|
||||
<mainClass>com.cemu_UI.application.Main</mainClass>
|
||||
</transformer>
|
||||
</transformers>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
|
||||
</plugins>
|
||||
</build>
|
||||
|
|
|
@ -55,8 +55,10 @@ import com.cemu_UI.controller.SmmdbAPIController;
|
|||
import com.cemu_UI.controller.UpdateController;
|
||||
import com.cemu_UI.controller.dbController;
|
||||
import com.cemu_UI.datatypes.CourseTableDataType;
|
||||
import com.cemu_UI.datatypes.EditDataType;
|
||||
import com.cemu_UI.datatypes.SmmdbApiDataType;
|
||||
import com.cemu_UI.datatypes.UIROMDataType;
|
||||
import com.cemu_UI.uiElements.JFXEditGameDialog;
|
||||
import com.cemu_UI.uiElements.JFXInfoDialog;
|
||||
import com.cemu_UI.uiElements.JFXOkayCancelDialog;
|
||||
import com.jfoenix.controls.JFXButton;
|
||||
|
@ -73,6 +75,7 @@ import com.jfoenix.transitions.hamburger.HamburgerBackArrowBasicTransition;
|
|||
import javafx.animation.FadeTransition;
|
||||
import javafx.animation.ParallelTransition;
|
||||
import javafx.animation.TranslateTransition;
|
||||
import javafx.application.Platform;
|
||||
import javafx.beans.value.ChangeListener;
|
||||
import javafx.beans.value.ObservableValue;
|
||||
import javafx.collections.FXCollections;
|
||||
|
@ -416,12 +419,18 @@ public class MainWindowController {
|
|||
LOGGER.info("edit "+selectedGameTitleID);
|
||||
if(selectedGameTitleID == null){
|
||||
LOGGER.warn("trying to edit null! null is not valid!");
|
||||
Alert alert = new Alert(AlertType.WARNING);
|
||||
alert.setTitle("edit");
|
||||
alert.setHeaderText("cemu_UI");
|
||||
alert.setContentText("please select a game, \""+selectedGameTitleID+"\" is not a valid type");
|
||||
alert.initOwner(main.primaryStage);
|
||||
alert.showAndWait();
|
||||
|
||||
String headingText = "edit game";
|
||||
String bodyText = "please select a game, \""+selectedGameTitleID+"\" is not a valid type!";
|
||||
JFXInfoDialog aboutDialog = new JFXInfoDialog(headingText, bodyText, dialogBtnStyle, 350, 170, main.pane);
|
||||
aboutDialog.show();
|
||||
|
||||
// Alert alert = new Alert(AlertType.WARNING);
|
||||
// alert.setTitle("edit");
|
||||
// alert.setHeaderText("cemu_UI");
|
||||
// alert.setContentText("please select a game, \""+selectedGameTitleID+"\" is not a valid type");
|
||||
// alert.initOwner(main.primaryStage);
|
||||
// alert.showAndWait();
|
||||
}else{
|
||||
String[] gameInfo = dbController.getGameInfo(selectedGameTitleID);
|
||||
|
||||
|
@ -515,13 +524,19 @@ public class MainWindowController {
|
|||
LOGGER.info("remove "+selectedGameTitleID);
|
||||
if(selectedGameTitleID == null){
|
||||
LOGGER.warn("trying to remove null! null is not valid!");
|
||||
Alert alert = new Alert(AlertType.WARNING);
|
||||
alert.setTitle("remove");
|
||||
alert.setHeaderText("cemu_UI");
|
||||
alert.setContentText("please select a game, \""+selectedGameTitleID+"\" is not a valid type");
|
||||
|
||||
String headingText = "remove game";
|
||||
String bodyText = "please select a game, \""+selectedGameTitleID+"\" is not a valid type!";
|
||||
JFXInfoDialog aboutDialog = new JFXInfoDialog(headingText, bodyText, dialogBtnStyle, 350, 170, main.pane);
|
||||
aboutDialog.show();
|
||||
|
||||
// Alert alert = new Alert(AlertType.WARNING);
|
||||
// alert.setTitle("remove");
|
||||
// alert.setHeaderText("cemu_UI");
|
||||
// alert.setContentText("please select a game, \""+selectedGameTitleID+"\" is not a valid type");
|
||||
// alert.initOwner(main.primaryStage);
|
||||
// alert.showAndWait();
|
||||
|
||||
alert.initOwner(main.primaryStage);
|
||||
alert.showAndWait();
|
||||
}
|
||||
else{
|
||||
Alert alert = new Alert(AlertType.CONFIRMATION);
|
||||
|
@ -555,12 +570,19 @@ public class MainWindowController {
|
|||
LOGGER.info("update: "+selectedGameTitleID);
|
||||
if(selectedGameTitleID == null){
|
||||
LOGGER.warn("trying to update null! null is not valid!");
|
||||
Alert alert = new Alert(AlertType.WARNING);
|
||||
alert.setTitle("edit");
|
||||
alert.setHeaderText("cemu_UI");
|
||||
alert.setContentText("please select a game, \""+selectedGameTitleID+"\" is not a valid type");
|
||||
alert.initOwner(main.primaryStage);
|
||||
alert.showAndWait();
|
||||
|
||||
String headingText = "update game";
|
||||
String bodyText = "please select a game, \""+selectedGameTitleID+"\" is not a valid type!";
|
||||
JFXInfoDialog aboutDialog = new JFXInfoDialog(headingText, bodyText, dialogBtnStyle, 350, 170, main.pane);
|
||||
aboutDialog.show();
|
||||
|
||||
// Alert alert = new Alert(AlertType.WARNING);
|
||||
// alert.setTitle("edit");
|
||||
// alert.setHeaderText("cemu_UI");
|
||||
// alert.setContentText("please select a game, \""+selectedGameTitleID+"\" is not a valid type");
|
||||
// alert.initOwner(main.primaryStage);
|
||||
// alert.showAndWait();
|
||||
|
||||
}else{
|
||||
Alert updateAlert = new Alert(AlertType.CONFIRMATION); //new alert with file-chooser
|
||||
updateAlert.setTitle("cemu_UI");
|
||||
|
@ -612,12 +634,19 @@ public class MainWindowController {
|
|||
LOGGER.info("add DLC: "+selectedGameTitleID);
|
||||
if(selectedGameTitleID == null){
|
||||
LOGGER.warn("trying to add a dlc to null! null is not valid!");
|
||||
Alert alert = new Alert(AlertType.WARNING);
|
||||
alert.setTitle("add DLC");
|
||||
alert.setHeaderText("cemu_UI");
|
||||
alert.setContentText("please select a game, \""+selectedGameTitleID+"\" is not a valid type");
|
||||
alert.initOwner(main.primaryStage);
|
||||
alert.showAndWait();
|
||||
|
||||
String headingText = "add DLC";
|
||||
String bodyText = "please select a game, \""+selectedGameTitleID+"\" is not a valid type!";
|
||||
JFXInfoDialog aboutDialog = new JFXInfoDialog(headingText, bodyText, dialogBtnStyle, 350, 170, main.pane);
|
||||
aboutDialog.show();
|
||||
|
||||
// Alert alert = new Alert(AlertType.WARNING);
|
||||
// alert.setTitle("add DLC");
|
||||
// alert.setHeaderText("cemu_UI");
|
||||
// alert.setContentText("please select a game, \""+selectedGameTitleID+"\" is not a valid type");
|
||||
// alert.initOwner(main.primaryStage);
|
||||
// alert.showAndWait();
|
||||
|
||||
}else{
|
||||
Alert updateAlert = new Alert(AlertType.CONFIRMATION); //new alert with file-chooser
|
||||
updateAlert.setTitle("cemu_UI");
|
||||
|
@ -690,7 +719,7 @@ public class MainWindowController {
|
|||
for (int i = 0; i < courses.size(); i++) {
|
||||
if (courses.get(i).getId() == id) {
|
||||
try {
|
||||
URL url = new URL("http://smmdb.ddns.net/courseimg/" + id + "_full.jpg?v=3");
|
||||
URL url = new URL("https://smmdb.ddns.net/courseimg/" + id + "_full?v=1");
|
||||
Image image = new Image(url.toURI().toString());
|
||||
smmdbImageView.setImage(image);
|
||||
} catch (MalformedURLException | URISyntaxException e) {
|
||||
|
@ -967,6 +996,7 @@ public class MainWindowController {
|
|||
cloudSync = true;
|
||||
//TODO rework for other cloud services
|
||||
cloudService = "GoogleDrive";
|
||||
|
||||
if (main.cloudController.initializeConnection(getCloudService(), getCemuPath())) {
|
||||
main.cloudController.sync(getCloudService(), getCemuPath());
|
||||
saveSettings();
|
||||
|
@ -1005,85 +1035,145 @@ public class MainWindowController {
|
|||
|
||||
@FXML
|
||||
void addBtnAction(ActionEvent event){
|
||||
String romPath = null;
|
||||
String coverPath = null;
|
||||
String coverName = null;
|
||||
String title = null;
|
||||
String titleID = null;
|
||||
// String romPath = "";
|
||||
// String coverPath = "";
|
||||
// String coverName = "";
|
||||
// String title = "";
|
||||
// String titleID = "";
|
||||
// File pictureCache;
|
||||
|
||||
//TESTING AREA
|
||||
|
||||
String headingText = "activate cloud savegame sync (beta)";
|
||||
String bodyText = "You just activate the cloud savegame sync function of cemu_UI, "
|
||||
+ "\nwhich is currently in beta. Are you sure you want to do this?";
|
||||
JFXEditGameDialog addGameDialog = new JFXEditGameDialog(headingText, bodyText, dialogBtnStyle, 350, 300,
|
||||
this, main.primaryStage, main.pane);
|
||||
addGameDialog.show();
|
||||
|
||||
// //new Dialog
|
||||
// Dialog<Integer> dialog = new Dialog<>();
|
||||
// dialog.setTitle("add a new game");
|
||||
// dialog.setHeaderText("add a new game manually to cemu UI");
|
||||
//
|
||||
// // Set the button types.
|
||||
// ButtonType okayBtn = new ButtonType("Okay", ButtonData.OK_DONE);
|
||||
// dialog.getDialogPane().getButtonTypes().addAll(okayBtn, ButtonType.CANCEL);
|
||||
//
|
||||
// // Create gameTitle, titleID, gamePath and gameCover TextFields and Labels and two Btn for filechooser
|
||||
// GridPane grid = new GridPane();
|
||||
// grid.setHgap(10);
|
||||
// grid.setVgap(10);
|
||||
// grid.setPadding(new Insets(20, 150, 10, 10));
|
||||
//
|
||||
// TextField gameTitleTF = new TextField();
|
||||
// gameTitleTF.setPromptText("game tile");
|
||||
// TextField titleIDTF = new TextField();
|
||||
// titleIDTF.setPromptText("title ID");
|
||||
// TextField romPathTF = new TextField();
|
||||
// romPathTF.setPromptText("ROM path");
|
||||
// TextField gameCoverTF = new TextField();
|
||||
// gameCoverTF.setPromptText("cover path");
|
||||
//
|
||||
// Button selectPathBtn = new Button("select .rpx file");
|
||||
// Button selectCoverBtn = new Button("select cover file");
|
||||
//
|
||||
// selectPathBtn.setPrefWidth(110);
|
||||
// selectCoverBtn.setPrefWidth(110);
|
||||
//
|
||||
// selectPathBtn.setOnAction(new EventHandler<ActionEvent>() {
|
||||
// @Override
|
||||
// public void handle(ActionEvent event) {
|
||||
// FileChooser romDirectoryChooser = new FileChooser();
|
||||
// File romDirectory = romDirectoryChooser.showOpenDialog(main.primaryStage);
|
||||
// romPathTF.setText(romDirectory.getAbsolutePath());
|
||||
// }
|
||||
// });
|
||||
//
|
||||
// selectCoverBtn.setOnAction(new EventHandler<ActionEvent>() {
|
||||
// @Override
|
||||
// public void handle(ActionEvent event) {
|
||||
// FileChooser coverDirectoryChooser = new FileChooser();
|
||||
// File coverDirectory = coverDirectoryChooser.showOpenDialog(main.primaryStage);
|
||||
// gameCoverTF.setText(coverDirectory.getAbsolutePath());
|
||||
// }
|
||||
// });
|
||||
//
|
||||
// grid.add(new Label("game title:"), 0, 0);
|
||||
// grid.add(gameTitleTF, 1, 0);
|
||||
// grid.add(new Label("title id:"), 0, 1);
|
||||
// grid.add(titleIDTF, 1, 1);
|
||||
// grid.add(new Label("ROM path:"), 0, 2);
|
||||
// grid.add(romPathTF, 1, 2);
|
||||
// grid.add(selectPathBtn, 2, 2);
|
||||
// grid.add(new Label("cover path:"), 0, 3);
|
||||
// grid.add(gameCoverTF, 1, 3);
|
||||
// grid.add(selectCoverBtn, 2, 3);
|
||||
//
|
||||
// dialog.getDialogPane().setContent(grid);
|
||||
//
|
||||
// Optional<Integer> result2 = dialog.showAndWait();
|
||||
// if (result2.isPresent()){
|
||||
// romPath = romPathTF.getText();
|
||||
// coverPath = gameCoverTF.getText();
|
||||
// title = gameTitleTF.getText();
|
||||
// titleID = titleIDTF.getText();
|
||||
//
|
||||
// LOGGER.info("New game data \"" + title + "\", title-ID: " + titleID + "(not a bug!)");
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * if one parameter dosen't contain any value do not add the game
|
||||
// * else convert the cover to .png add copy it into the picture cache,
|
||||
// * then add the rom to the local_roms database
|
||||
// */
|
||||
// System.out.println(romPath.length());
|
||||
// if (romPath.length() == 0 || coverPath.length() == 0 || title.length() == 0 || titleID.length() == 0) {
|
||||
// LOGGER.info("No parameter set!");
|
||||
//
|
||||
// //addGame error dialog
|
||||
// String headingTextError = "Error while adding a new Game!";
|
||||
// String bodyTextError = "There was some truble adding your game."
|
||||
// + "\nOne of the needed values was empty, please try again to add your game.";
|
||||
// JFXInfoDialog errorDialog = new JFXInfoDialog(headingTextError, bodyTextError, dialogBtnStyle, 350, 170, main.pane);
|
||||
// errorDialog.show();
|
||||
//
|
||||
// } else {
|
||||
// coverName = new File(coverPath).getName();
|
||||
// try {
|
||||
// if (System.getProperty("os.name").equals("Linux")) {
|
||||
// pictureCache = getPictureCacheLinux();
|
||||
// } else {
|
||||
// pictureCache = getPictureCacheWin();
|
||||
// }
|
||||
//
|
||||
// BufferedImage originalImage = ImageIO.read(new File(coverPath)); //load cover
|
||||
// int type = originalImage.getType() == 0 ? BufferedImage.TYPE_INT_ARGB : originalImage.getType();
|
||||
// BufferedImage resizeImagePNG = resizeImage(originalImage, type, 400, 600);
|
||||
// ImageIO.write(resizeImagePNG, "png", new File(pictureCache+"\\"+coverName)); //save image to pictureCache
|
||||
// coverPath = pictureCache+"\\"+coverName;
|
||||
// } catch (IOException e) {
|
||||
// LOGGER.error("Ops something went wrong! Error while resizing cover.", e);
|
||||
// }
|
||||
//
|
||||
// try {
|
||||
// dbController.addRom(title, coverPath, romPath, titleID, "", "", "", "0");
|
||||
// dbController.loadSingleRom(titleID);
|
||||
// refreshUIData();
|
||||
// } catch (SQLException e) {
|
||||
// LOGGER.error("Oops, something went wrong! Error while adding a game.", e);
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
||||
public void addBtnReturn(EditDataType gameData) {
|
||||
String romPath = gameData.getRomPath();
|
||||
String coverPath = gameData.getCoverPath();
|
||||
String title = gameData.getTitle();
|
||||
String titleID = gameData.getTitleID();
|
||||
File pictureCache;
|
||||
|
||||
//new Dialog
|
||||
Dialog<Integer> dialog = new Dialog<>();
|
||||
dialog.setTitle("add a new game");
|
||||
dialog.setHeaderText("add a new game manually to cemu UI");
|
||||
|
||||
// Set the button types.
|
||||
ButtonType okayBtn = new ButtonType("Okay", ButtonData.OK_DONE);
|
||||
dialog.getDialogPane().getButtonTypes().addAll(okayBtn, ButtonType.CANCEL);
|
||||
|
||||
// Create gameTitle, titleID, gamePath and gameCover TextFields and Labels and two Btn for filechooser
|
||||
GridPane grid = new GridPane();
|
||||
grid.setHgap(10);
|
||||
grid.setVgap(10);
|
||||
grid.setPadding(new Insets(20, 150, 10, 10));
|
||||
|
||||
TextField gameTitleTF = new TextField();
|
||||
gameTitleTF.setPromptText("game tile");
|
||||
TextField titleIDTF = new TextField();
|
||||
titleIDTF.setPromptText("title ID");
|
||||
TextField romPathTF = new TextField();
|
||||
romPathTF.setPromptText("ROM path");
|
||||
TextField gameCoverTF = new TextField();
|
||||
gameCoverTF.setPromptText("cover path");
|
||||
|
||||
Button selectPathBtn = new Button("select .rpx file");
|
||||
Button selectCoverBtn = new Button("select cover file");
|
||||
|
||||
selectPathBtn.setPrefWidth(110);
|
||||
selectCoverBtn.setPrefWidth(110);
|
||||
|
||||
selectPathBtn.setOnAction(new EventHandler<ActionEvent>() {
|
||||
@Override
|
||||
public void handle(ActionEvent event) {
|
||||
FileChooser romDirectoryChooser = new FileChooser();
|
||||
File romDirectory = romDirectoryChooser.showOpenDialog(main.primaryStage);
|
||||
romPathTF.setText(romDirectory.getAbsolutePath());
|
||||
}
|
||||
});
|
||||
|
||||
selectCoverBtn.setOnAction(new EventHandler<ActionEvent>() {
|
||||
@Override
|
||||
public void handle(ActionEvent event) {
|
||||
FileChooser coverDirectoryChooser = new FileChooser();
|
||||
File coverDirectory = coverDirectoryChooser.showOpenDialog(main.primaryStage);
|
||||
gameCoverTF.setText(coverDirectory.getAbsolutePath());
|
||||
}
|
||||
});
|
||||
|
||||
grid.add(new Label("game title:"), 0, 0);
|
||||
grid.add(gameTitleTF, 1, 0);
|
||||
grid.add(new Label("title id:"), 0, 1);
|
||||
grid.add(titleIDTF, 1, 1);
|
||||
grid.add(new Label("ROM path:"), 0, 2);
|
||||
grid.add(romPathTF, 1, 2);
|
||||
grid.add(selectPathBtn, 2, 2);
|
||||
grid.add(new Label("cover path:"), 0, 3);
|
||||
grid.add(gameCoverTF, 1, 3);
|
||||
grid.add(selectCoverBtn, 2, 3);
|
||||
|
||||
dialog.getDialogPane().setContent(grid);
|
||||
|
||||
Optional<Integer> result2 = dialog.showAndWait();
|
||||
if (result2.isPresent()){
|
||||
romPath = romPathTF.getText();
|
||||
coverPath = gameCoverTF.getText();
|
||||
title = gameTitleTF.getText();
|
||||
titleID = titleIDTF.getText();
|
||||
|
||||
LOGGER.info("New game data \"" + title + "\", title-ID: " + titleID + "(not a bug!)");
|
||||
}
|
||||
|
||||
/**
|
||||
/**
|
||||
* if one parameter dosen't contain any value do not add the game
|
||||
* else convert the cover to .png add copy it into the picture cache,
|
||||
* then add the rom to the local_roms database
|
||||
|
@ -1093,32 +1183,14 @@ public class MainWindowController {
|
|||
LOGGER.info("No parameter set!");
|
||||
|
||||
//addGame error dialog
|
||||
JFXDialogLayout content= new JFXDialogLayout();
|
||||
content.setHeading(new Text("Error while adding a new Game!"));
|
||||
content.setBody(new Text("There was some truble adding your game."
|
||||
+ "\nOne of the needed values was empty, please try again to add your game."));
|
||||
content.setPrefSize(450, 170);
|
||||
StackPane stackPane = new StackPane();
|
||||
stackPane.autosize();
|
||||
JFXDialog errorDialog =new JFXDialog(stackPane, content, JFXDialog.DialogTransition.LEFT, true);
|
||||
JFXButton button=new JFXButton("Okay");
|
||||
button.setOnAction(new EventHandler<ActionEvent>(){
|
||||
@Override
|
||||
public void handle(ActionEvent event){
|
||||
errorDialog.close();
|
||||
}
|
||||
});
|
||||
button.setButtonType(com.jfoenix.controls.JFXButton.ButtonType.RAISED);
|
||||
button.setPrefHeight(32);
|
||||
button.setStyle(dialogBtnStyle);
|
||||
content.setActions(button);
|
||||
main.pane.getChildren().add(stackPane);
|
||||
AnchorPane.setTopAnchor(stackPane, (main.pane.getHeight()-content.getPrefHeight())/2);
|
||||
AnchorPane.setLeftAnchor(stackPane, (main.pane.getWidth()-content.getPrefWidth())/2);
|
||||
String headingTextError = "Error while adding a new Game!";
|
||||
String bodyTextError = "There was some truble adding your game."
|
||||
+ "\nOne of the needed values was empty, please try again to add your game.";
|
||||
JFXInfoDialog errorDialog = new JFXInfoDialog(headingTextError, bodyTextError, dialogBtnStyle, 350, 170, main.pane);
|
||||
errorDialog.show();
|
||||
|
||||
|
||||
} else {
|
||||
coverName = new File(coverPath).getName();
|
||||
String coverName = new File(coverPath).getName();
|
||||
try {
|
||||
if (System.getProperty("os.name").equals("Linux")) {
|
||||
pictureCache = getPictureCacheLinux();
|
||||
|
@ -1144,7 +1216,7 @@ public class MainWindowController {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* add game to games (ArrayList) and initialize all needed actions (start, time stamps, titleID)
|
||||
* @param title : game title
|
||||
|
|
|
@ -0,0 +1,73 @@
|
|||
/**
|
||||
* cemu_UI
|
||||
*
|
||||
* Copyright 2017 <@Seil0>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
* MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
package com.cemu_UI.datatypes;
|
||||
|
||||
public class EditDataType {
|
||||
|
||||
private String romPath;
|
||||
private String coverPath;
|
||||
private String title;
|
||||
private String titleID;
|
||||
|
||||
/**
|
||||
* Data type used for the add/edit game dialog
|
||||
*/
|
||||
public EditDataType(String romPath, String coverPath, String title, String titleID) {
|
||||
this.romPath = romPath;
|
||||
this.coverPath = coverPath;
|
||||
this.title = title;
|
||||
this.titleID = titleID;
|
||||
}
|
||||
|
||||
public String getRomPath() {
|
||||
return romPath;
|
||||
}
|
||||
|
||||
public void setRomPath(String romPath) {
|
||||
this.romPath = romPath;
|
||||
}
|
||||
|
||||
public String getCoverPath() {
|
||||
return coverPath;
|
||||
}
|
||||
|
||||
public void setCoverPath(String coverPath) {
|
||||
this.coverPath = coverPath;
|
||||
}
|
||||
|
||||
public String getTitle() {
|
||||
return title;
|
||||
}
|
||||
|
||||
public void setTitle(String title) {
|
||||
this.title = title;
|
||||
}
|
||||
|
||||
public String getTitleID() {
|
||||
return titleID;
|
||||
}
|
||||
|
||||
public void setTitleID(String titleID) {
|
||||
this.titleID = titleID;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,200 @@
|
|||
/**
|
||||
* cemu_UI
|
||||
*
|
||||
* Copyright 2017 <@Seil0>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
* MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
|
||||
package com.cemu_UI.uiElements;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
import com.cemu_UI.application.MainWindowController;
|
||||
import com.cemu_UI.datatypes.EditDataType;
|
||||
import com.jfoenix.controls.JFXButton;
|
||||
import com.jfoenix.controls.JFXDialog;
|
||||
import com.jfoenix.controls.JFXDialogLayout;
|
||||
|
||||
import javafx.event.ActionEvent;
|
||||
import javafx.event.EventHandler;
|
||||
import javafx.geometry.Insets;
|
||||
import javafx.scene.control.Label;
|
||||
import javafx.scene.control.TextField;
|
||||
import javafx.scene.layout.AnchorPane;
|
||||
import javafx.scene.layout.GridPane;
|
||||
import javafx.scene.layout.Pane;
|
||||
import javafx.scene.layout.StackPane;
|
||||
import javafx.scene.layout.VBox;
|
||||
import javafx.scene.text.Text;
|
||||
import javafx.stage.FileChooser;
|
||||
import javafx.stage.Stage;
|
||||
|
||||
public class JFXEditGameDialog {
|
||||
|
||||
private String headingText;
|
||||
private String bodyText;
|
||||
private String dialogBtnStyle;
|
||||
private int dialogWidth;
|
||||
private int dialogHeight;
|
||||
private EditDataType gameData;
|
||||
private Stage stage;
|
||||
private Pane pane;
|
||||
private MainWindowController mwc;
|
||||
|
||||
/**
|
||||
* Creates a new JFoenix Dialog to show some information with okay and cancel option
|
||||
* @param headingText Heading Text, just the heading
|
||||
* @param bodyText body Text, all other text belongs here
|
||||
* @param dialogBtnStyle Style of the okay button
|
||||
* @param dialogWidth dialog width
|
||||
* @param dialogHeight dialog height
|
||||
* @param stage the primary stage
|
||||
* @param pane pane to which the dialog belongs
|
||||
*/
|
||||
public JFXEditGameDialog(String headingText, String bodyText, String dialogBtnStyle, int dialogWidth,
|
||||
int dialogHeight, MainWindowController mwc, Stage stage, Pane pane) {
|
||||
this.headingText = headingText;
|
||||
this.bodyText = bodyText;
|
||||
this.dialogBtnStyle = dialogBtnStyle;
|
||||
this.dialogWidth = dialogWidth;
|
||||
this.dialogHeight = dialogHeight;
|
||||
this.mwc = mwc;
|
||||
this.stage = stage;
|
||||
this.pane = pane;
|
||||
}
|
||||
|
||||
public void show() {
|
||||
JFXDialogLayout content = new JFXDialogLayout();
|
||||
StackPane stackPane = new StackPane();
|
||||
stackPane.autosize();
|
||||
JFXDialog dialog = new JFXDialog(stackPane, content, JFXDialog.DialogTransition.LEFT, true);
|
||||
|
||||
Label placeholder = new Label();
|
||||
placeholder.setPrefSize(15, 10);
|
||||
|
||||
TextField gameTitleTF = new TextField();
|
||||
gameTitleTF.setPromptText("game tile");
|
||||
TextField gameTitleIDTF = new TextField();
|
||||
gameTitleIDTF.setPromptText("title ID");
|
||||
TextField romPathTF = new TextField();
|
||||
romPathTF.setPromptText("ROM path");
|
||||
TextField gameCoverTF = new TextField();
|
||||
gameCoverTF.setPromptText("cover path");
|
||||
|
||||
JFXButton okayBtn = new JFXButton("Okay");
|
||||
okayBtn.setOnAction(new EventHandler<ActionEvent>() {
|
||||
@Override
|
||||
public void handle(ActionEvent event) {
|
||||
System.out.println(romPathTF.getText());
|
||||
System.out.println(gameCoverTF.getText());
|
||||
System.out.println(gameTitleTF.getText());
|
||||
System.out.println(gameTitleIDTF.getText());
|
||||
if (romPathTF.getText().toString().length() == 0 || gameCoverTF.getText().toString().length() == 0 ||
|
||||
gameTitleTF.getText().toString().length() == 0 || gameTitleIDTF.getText().toString().length() == 0) {
|
||||
|
||||
// LOGGER.info("No parameter set!");
|
||||
|
||||
//addGame error dialog
|
||||
String headingTextError = "Error while adding a new Game!";
|
||||
String bodyTextError = "There was some truble adding your game."
|
||||
+ "\nOne of the needed values was empty, please try again to add your game.";
|
||||
JFXInfoDialog errorDialog = new JFXInfoDialog(headingTextError, bodyTextError, dialogBtnStyle, 350, 170, pane);
|
||||
errorDialog.show();
|
||||
} else {
|
||||
gameData.setRomPath(romPathTF.getText().toString());
|
||||
gameData.setCoverPath(gameCoverTF.getText().toString());
|
||||
gameData.setTitle(gameTitleTF.getText().toString());
|
||||
gameData.setTitleID(gameTitleIDTF.getText().toString());
|
||||
mwc.addBtnReturn(gameData);
|
||||
dialog.close();
|
||||
}
|
||||
}
|
||||
});
|
||||
okayBtn.setButtonType(com.jfoenix.controls.JFXButton.ButtonType.RAISED);
|
||||
okayBtn.setPrefHeight(32);
|
||||
okayBtn.setStyle(dialogBtnStyle);
|
||||
|
||||
JFXButton cancelBtn = new JFXButton("Cancel");
|
||||
cancelBtn.setOnAction(new EventHandler<ActionEvent>() {
|
||||
@Override
|
||||
public void handle(ActionEvent event) {
|
||||
dialog.close();
|
||||
}
|
||||
});
|
||||
cancelBtn.setButtonType(com.jfoenix.controls.JFXButton.ButtonType.RAISED);
|
||||
cancelBtn.setPrefHeight(32);
|
||||
cancelBtn.setStyle(dialogBtnStyle);
|
||||
|
||||
JFXButton selectPathBtn = new JFXButton("select .rpx file");
|
||||
selectPathBtn.setPrefWidth(110);
|
||||
selectPathBtn.setStyle(dialogBtnStyle);
|
||||
selectPathBtn.setOnAction(new EventHandler<ActionEvent>() {
|
||||
@Override
|
||||
public void handle(ActionEvent event) {
|
||||
FileChooser romDirectoryChooser = new FileChooser();
|
||||
File romDirectory = romDirectoryChooser.showOpenDialog(stage);
|
||||
romPathTF.setText(romDirectory.getAbsolutePath());
|
||||
}
|
||||
});
|
||||
|
||||
JFXButton selectCoverBtn = new JFXButton("select cover file");
|
||||
selectCoverBtn.setPrefWidth(110);
|
||||
selectCoverBtn.setStyle(dialogBtnStyle);
|
||||
selectCoverBtn.setOnAction(new EventHandler<ActionEvent>() {
|
||||
@Override
|
||||
public void handle(ActionEvent event) {
|
||||
FileChooser coverDirectoryChooser = new FileChooser();
|
||||
File coverDirectory = coverDirectoryChooser.showOpenDialog(stage);
|
||||
gameCoverTF.setText(coverDirectory.getAbsolutePath());
|
||||
}
|
||||
});
|
||||
|
||||
GridPane grid = new GridPane();
|
||||
grid.setHgap(10);
|
||||
grid.setVgap(10);
|
||||
grid.setPadding(new Insets(15, 10, 10, 10));
|
||||
grid.add(new Label("game title:"), 0, 0);
|
||||
grid.add(gameTitleTF, 1, 0);
|
||||
grid.add(new Label("title id:"), 0, 1);
|
||||
grid.add(gameTitleIDTF, 1, 1);
|
||||
grid.add(new Label("ROM path:"), 0, 2);
|
||||
grid.add(romPathTF, 1, 2);
|
||||
grid.add(selectPathBtn, 2, 2);
|
||||
grid.add(new Label("cover path:"), 0, 3);
|
||||
grid.add(gameCoverTF, 1, 3);
|
||||
grid.add(selectCoverBtn, 2, 3);
|
||||
|
||||
Text bdyText = new Text(bodyText);
|
||||
|
||||
VBox vbox = new VBox();
|
||||
vbox.getChildren().addAll(bdyText, grid);
|
||||
|
||||
content.setHeading(new Text(headingText));
|
||||
content.setBody(vbox);
|
||||
content.setActions(cancelBtn, placeholder, okayBtn);
|
||||
content.setPrefSize(dialogWidth, dialogHeight);
|
||||
pane.getChildren().add(stackPane);
|
||||
AnchorPane.setTopAnchor(stackPane, (pane.getHeight()-content.getPrefHeight())/2);
|
||||
AnchorPane.setLeftAnchor(stackPane, (pane.getWidth()-content.getPrefWidth())/2);
|
||||
dialog.show();
|
||||
}
|
||||
|
||||
public EditDataType getGameData() {
|
||||
return gameData;
|
||||
}
|
||||
}
|
|
@ -69,7 +69,7 @@ public class JFXOkayCancelDialog {
|
|||
}
|
||||
|
||||
public void show() {
|
||||
JFXDialogLayout content= new JFXDialogLayout();
|
||||
JFXDialogLayout content = new JFXDialogLayout();
|
||||
content.setHeading(new Text(headingText));
|
||||
content.setBody(new Text(bodyText));
|
||||
StackPane stackPane = new StackPane();
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue