|
@ -1,23 +1,34 @@ |
|
|
package com.sothr.imagetools; |
|
|
package com.sothr.imagetools; |
|
|
|
|
|
|
|
|
|
|
|
import com.sothr.imagetools.errors.ImageToolsException; |
|
|
|
|
|
import com.sothr.imagetools.ui.controller.AppController; |
|
|
|
|
|
import javafx.application.Application; |
|
|
|
|
|
import javafx.fxml.FXMLLoader; |
|
|
|
|
|
import javafx.scene.Parent; |
|
|
|
|
|
import javafx.scene.Scene; |
|
|
|
|
|
import javafx.stage.Stage; |
|
|
import org.apache.log4j.PropertyConfigurator; |
|
|
import org.apache.log4j.PropertyConfigurator; |
|
|
import org.slf4j.Logger; |
|
|
import org.slf4j.Logger; |
|
|
import org.slf4j.LoggerFactory; |
|
|
import org.slf4j.LoggerFactory; |
|
|
|
|
|
|
|
|
import java.io.File; |
|
|
import java.io.File; |
|
|
|
|
|
import java.io.IOException; |
|
|
import java.util.Properties; |
|
|
import java.util.Properties; |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* Hello world! |
|
|
* Hello world! |
|
|
* |
|
|
* |
|
|
*/ |
|
|
*/ |
|
|
public class App |
|
|
|
|
|
|
|
|
public class App extends Application |
|
|
{ |
|
|
{ |
|
|
|
|
|
|
|
|
private static Logger logger = LoggerFactory.getLogger(App.class); |
|
|
private static Logger logger = LoggerFactory.getLogger(App.class); |
|
|
|
|
|
|
|
|
|
|
|
private static final String MAINGUI_FXML = "fxml/mainapp/MainApp.fxml"; |
|
|
|
|
|
|
|
|
public static void main( String[] args ) |
|
|
public static void main( String[] args ) |
|
|
{ |
|
|
{ |
|
|
|
|
|
//Logging Config |
|
|
File file = new File("log4j.properties"); |
|
|
File file = new File("log4j.properties"); |
|
|
if (file.exists()) { |
|
|
if (file.exists()) { |
|
|
PropertyConfigurator.configure("log4j.properties"); |
|
|
PropertyConfigurator.configure("log4j.properties"); |
|
@ -38,7 +49,8 @@ public class App |
|
|
logger.info("Image-Tools is starting"); |
|
|
logger.info("Image-Tools is starting"); |
|
|
|
|
|
|
|
|
try { |
|
|
try { |
|
|
System.out.println( "Hello World!" ); |
|
|
|
|
|
|
|
|
//try to run the UI |
|
|
|
|
|
launch(args); |
|
|
} catch (Exception ex) { |
|
|
} catch (Exception ex) { |
|
|
logger.error("A fatal error has occurred: ", ex); |
|
|
logger.error("A fatal error has occurred: ", ex); |
|
|
//show popup about the error to the user then exit |
|
|
//show popup about the error to the user then exit |
|
@ -46,4 +58,27 @@ public class App |
|
|
|
|
|
|
|
|
logger.info("Image-Tools is shutting down"); |
|
|
logger.info("Image-Tools is shutting down"); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
public void start(Stage primaryStage) throws Exception { |
|
|
|
|
|
logger.info(String.format("Launching GUI with FXML file %s", MAINGUI_FXML)); |
|
|
|
|
|
ClassLoader cl = this.getClass().getClassLoader(); |
|
|
|
|
|
try { |
|
|
|
|
|
Parent root = FXMLLoader.load(cl.getResource(MAINGUI_FXML)); |
|
|
|
|
|
primaryStage.setScene(new Scene(root)); |
|
|
|
|
|
primaryStage.setTitle("Image Tools"); |
|
|
|
|
|
primaryStage.setResizable(true); |
|
|
|
|
|
primaryStage.show(); |
|
|
|
|
|
} catch (IOException ioe) { |
|
|
|
|
|
String message = String.format("Unable to load FXML file: %s", MAINGUI_FXML); |
|
|
|
|
|
ImageToolsException ite = new ImageToolsException(message, ioe); |
|
|
|
|
|
logger.error(message, ioe); |
|
|
|
|
|
throw ite; |
|
|
|
|
|
} catch (Exception ex) { |
|
|
|
|
|
String message = "An unhandled exception was thrown by the GUI"; |
|
|
|
|
|
ImageToolsException ite = new ImageToolsException(message, ex); |
|
|
|
|
|
logger.error(message, ex); |
|
|
|
|
|
throw ite; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
} |
|
|
} |