updated to 0.4.0
This commit is contained in:
		
							
								
								
									
										167
									
								
								Main.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										167
									
								
								Main.java
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,167 @@ | ||||
| /** | ||||
|  * Project HomeFlix | ||||
|  *  | ||||
|  * Copyright 2016  <admin@kellerkinder> | ||||
|  *  | ||||
|  * 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 application; | ||||
| 	 | ||||
| import java.io.File; | ||||
| import java.io.FileInputStream; | ||||
| import java.io.IOException; | ||||
| import java.io.InputStream; | ||||
| import java.util.Optional; | ||||
| import java.util.Properties; | ||||
|  | ||||
| import javafx.application.Application; | ||||
| import javafx.fxml.FXMLLoader; | ||||
| import javafx.scene.Scene; | ||||
| import javafx.scene.control.Alert; | ||||
| import javafx.scene.control.Alert.AlertType; | ||||
| import javafx.scene.control.ButtonType; | ||||
| import javafx.scene.image.Image; | ||||
| import javafx.scene.layout.AnchorPane; | ||||
| import javafx.scene.paint.Color; | ||||
| import javafx.stage.DirectoryChooser; | ||||
| import javafx.stage.Stage; | ||||
|  | ||||
| public class Main extends Application { | ||||
| 	 | ||||
| 	public Stage primaryStage; | ||||
| 	private String path; | ||||
| 	private String streamingPath = System.getProperty("user.home") + "\\Documents\\HomeFlix"; | ||||
| 	private String color = "ee3523"; | ||||
| 	private String autoUpdate = "0"; | ||||
| 	private String mode = "local";	//local or streaming | ||||
| 	private double size = 12; | ||||
| 	private int local = 0; | ||||
| 	private File dir = new File(System.getProperty("user.home") + "/Documents/HomeFlix");	//Windows: C:/Users/"User"/Documents/HomeFlix	OSX: has to be tested	Linux: has to be tested(shalt not work!) | ||||
| 	private File file = new File(dir + "/config.xml");	//Windows: C:/Users/"User"/Documents/HomeFlix/config.xml	OSX: has to be tested	Linux: has to be tested(shalt not work!) | ||||
| 	Properties props = new Properties(); | ||||
| 	private MainWindowController mainWindowController; | ||||
| 	 | ||||
| 	@Override | ||||
| 	public void start(Stage primaryStage) { | ||||
| 		this.primaryStage = primaryStage; | ||||
| 		mainWindow(); | ||||
| 	} | ||||
| 	 | ||||
| 	public void mainWindow(){ | ||||
| 	 | ||||
| 		try { | ||||
| 		FXMLLoader loader = new FXMLLoader(Main.class.getResource("MainWindow.fxml")); | ||||
| 		AnchorPane pane = loader.load(); | ||||
| 		primaryStage.setMinHeight(600.00); | ||||
| 		primaryStage.setMinWidth(900.00); | ||||
| 		primaryStage.setResizable(false); | ||||
| 		primaryStage.setTitle("Project HomeFlix"); | ||||
| 		primaryStage.getIcons().add(new Image(Main.class.getResourceAsStream("/recources/Homeflix_Icon_64x64.png"))); //f<>gt Anwendungsicon hinzu | ||||
|  | ||||
| 		mainWindowController = loader.getController();	//verkn<6B>pfung von FXMLController und Controller Klasse | ||||
| 		mainWindowController.setAutoUpdate(autoUpdate);	//setzt autoupdate | ||||
| 		mainWindowController.setMain(this);	//aufruf setMain | ||||
| 		 | ||||
| 		//dir exists -> check config.xml 	TODO nur Windows getestet siehe dir und file | ||||
| 		if(dir.exists() == true){ | ||||
| 			if (file.exists() != true) { | ||||
| 				mainWindowController.setPath(firstStart()); | ||||
| 				mainWindowController.setStreamingPath(streamingPath); | ||||
| 				mainWindowController.setColor(color); | ||||
| 				mainWindowController.setSize(size); | ||||
| 				mainWindowController.setAutoUpdate(autoUpdate); | ||||
| 				mainWindowController.setLoaclUI(local); | ||||
| 				mainWindowController.setMode(mode); | ||||
| 				mainWindowController.saveSettings(); | ||||
| 				Runtime.getRuntime().exec("java -jar ProjectHomeFlix.jar");	//start again (preventing Bugs) | ||||
| 				System.exit(0);	//finishes itself | ||||
| 			}else{ | ||||
| 				loadSettings(); | ||||
| 			}	 | ||||
| 		}else{ | ||||
| 		dir.mkdir(); | ||||
| 		mainWindowController.setPath(firstStart()); | ||||
| 		mainWindowController.setStreamingPath(streamingPath); | ||||
| 		mainWindowController.setColor(color); | ||||
| 		mainWindowController.setSize(size); | ||||
| 		mainWindowController.setAutoUpdate(autoUpdate); | ||||
| 		mainWindowController.setLoaclUI(local); | ||||
| 		mainWindowController.setMode(mode); | ||||
| 		mainWindowController.saveSettings(); | ||||
| 		Runtime.getRuntime().exec("java -jar ProjectHomeFlix.jar");	//start again (preventing Bugs) | ||||
| 		System.exit(0);	//finishes itself | ||||
| 		} | ||||
| 		mainWindowController.loadStreamingSettings(); | ||||
| 		mainWindowController.applyColor();	//setzt die Theme Farbe | ||||
| 		mainWindowController.cbLocal.getSelectionModel().select(mainWindowController.getLocal()); //setzt local | ||||
| 		mainWindowController.mainColor.setValue(Color.valueOf(mainWindowController.getColor())); | ||||
| 		mainWindowController.loadData();	//l<>d die Daten im Controller | ||||
| 		mainWindowController.addDataUI(); | ||||
| 		 | ||||
| 		Scene scene = new Scene(pane);	//neue Scen um inhalt der stage anzuzeigen | ||||
| 		 | ||||
| 		primaryStage.setScene(scene); | ||||
| 		primaryStage.show();	//zeige scene | ||||
| 		} catch (IOException e) { | ||||
| 			// Auto-generated catch block | ||||
| 			e.printStackTrace(); | ||||
| 		} | ||||
| 	} | ||||
| 	 | ||||
| 	//methode f<>r den erstmaligen Start | ||||
| 	private String firstStart(){ | ||||
| 		Alert alert = new Alert(AlertType.CONFIRMATION);	//neuer alert mit filechooser | ||||
| 		alert.setTitle("Project HomeFlix"); | ||||
| 		alert.setHeaderText("Es ist kein Stammverzeichniss f<>r Filme angegeben!"); | ||||
| 		alert.setContentText("Stammverzeichniss angeben?"); | ||||
|  | ||||
| 		Optional<ButtonType> result = alert.showAndWait(); | ||||
| 		if (result.get() == ButtonType.OK){ | ||||
| 			DirectoryChooser directoryChooser = new DirectoryChooser(); | ||||
|             File selectedDirectory =  | ||||
|                 directoryChooser.showDialog(primaryStage); | ||||
|                 path = selectedDirectory.getAbsolutePath(); | ||||
|              | ||||
| 		} else { | ||||
| 		    path = ""; | ||||
| 		} | ||||
| 		return path; | ||||
| 	} | ||||
| 	 | ||||
| 	//l<>dt die einstellungen aus der XML | ||||
| 	public void loadSettings(){ | ||||
| 		try { | ||||
| 			InputStream inputStream = new FileInputStream(file); | ||||
| 			props.loadFromXML(inputStream); | ||||
| 			path = props.getProperty("path");	//setzt Propselement in Pfad | ||||
| 			streamingPath = props.getProperty("streamingPath"); | ||||
| 			color = props.getProperty("color"); | ||||
| 			size = Double.parseDouble(props.getProperty("size")); | ||||
| 			autoUpdate = props.getProperty("autoUpdate"); | ||||
| 			local = Integer.parseInt(props.getProperty("local")); | ||||
| 			mode = props.getProperty("mode"); | ||||
| 			inputStream.close(); | ||||
| 		} catch (IOException e) { | ||||
| 			System.out.println("An error has occurred!"); | ||||
| 			e.printStackTrace(); | ||||
| 		} | ||||
| 	} | ||||
| 	 | ||||
| 	public static void main(String[] args) { | ||||
| 		launch(args); | ||||
| 	} | ||||
| } | ||||
							
								
								
									
										1137
									
								
								MainWindowController.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1137
									
								
								MainWindowController.java
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
		Reference in New Issue
	
	Block a user