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:
		
							
								
								
									
										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 | ||||
|  | ||||
							
								
								
									
										73
									
								
								src/main/java/com/cemu_UI/datatypes/EditDataType.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										73
									
								
								src/main/java/com/cemu_UI/datatypes/EditDataType.java
									
									
									
									
									
										Normal file
									
								
							| @ -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; | ||||
| 	} | ||||
| 	 | ||||
| } | ||||
							
								
								
									
										200
									
								
								src/main/java/com/cemu_UI/uiElements/JFXEditGameDialog.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										200
									
								
								src/main/java/com/cemu_UI/uiElements/JFXEditGameDialog.java
									
									
									
									
									
										Normal file
									
								
							| @ -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.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								src/main/resources/libraries/log4j-api-2.9.1.jar
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								src/main/resources/libraries/log4j-api-2.9.1.jar
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								src/main/resources/libraries/log4j-core-2.9.1.jar
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								src/main/resources/libraries/log4j-core-2.9.1.jar
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
		Reference in New Issue
	
	Block a user