From 40ad8a458a0706ccdcd567965f0275d4dd0aa118 Mon Sep 17 00:00:00 2001
From: Dominic Rogetzer <e1627756@student.tuwien.ac.at>
Date: Mon, 7 May 2018 12:14:13 +0200
Subject: Add MainApplication which opens Operation window

---
 .../groupphase/application/MainApplication.java    | 51 ++++++++++++++++++++++
 1 file changed, 51 insertions(+)
 create mode 100644 src/main/java/at/ac/tuwien/sepm/assignment/groupphase/application/MainApplication.java

(limited to 'src/main/java/at/ac/tuwien/sepm/assignment/groupphase')

diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/application/MainApplication.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/application/MainApplication.java
new file mode 100644
index 0000000..a8a6c62
--- /dev/null
+++ b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/application/MainApplication.java
@@ -0,0 +1,51 @@
+package at.ac.tuwien.sepm.assignment.groupphase.application;
+
+import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.userInterface.CreateOperationController;
+import at.ac.tuwien.sepm.assignment.groupphase.util.SpringFXMLLoader;
+import javafx.application.Application;
+import javafx.scene.Parent;
+import javafx.scene.Scene;
+import javafx.stage.Stage;
+import org.springframework.context.annotation.AnnotationConfigApplicationContext;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.stereotype.Component;
+
+@Component
+@ComponentScan("at.ac.tuwien.sepm.assignment.groupphase")
+public class MainApplication extends Application {
+
+    private static AnnotationConfigApplicationContext configApplicationContext;
+
+    public static void main(String[] args) {
+        Application.launch(MainApplication.class, args);
+    }
+
+    @Override
+    public void start(Stage primaryStage) throws Exception {
+        primaryStage.setTitle("Einsatz erstellen");
+        primaryStage.centerOnScreen();
+        // primaryStage.setOnCloseRequest( event -> );
+
+        configApplicationContext = new AnnotationConfigApplicationContext(MainApplication.class);
+        final var fxmlLoader = configApplicationContext.getBean(SpringFXMLLoader.class);
+        primaryStage.setScene(
+                new Scene(
+                        (Parent)
+                                fxmlLoader.load(
+                                        getClass()
+                                                .getResourceAsStream(
+                                                        "/fxml/CreateOperationController.fxml"))));
+
+        /*FXMLLoader fxmlLoader =
+                new FXMLLoader(getClass().getResource("/fxml/CreateOperationController.fxml"));
+        Parent node = fxmlLoader.load();
+        // TODO:*/
+        CreateOperationController controller =
+                configApplicationContext.getBean(
+                        CreateOperationController.class); // fxmlLoader.getController();
+        controller.updateList();
+        // primaryStage.setScene(new Scene(node));
+        primaryStage.show();
+        primaryStage.toFront();
+    }
+}
-- 
cgit v1.2.3-70-g09d2


From cb1440f1b5fbfe9ce93f3a6256af3f021aa6d484 Mon Sep 17 00:00:00 2001
From: Dominic Rogetzer <e1627756@student.tuwien.ac.at>
Date: Mon, 7 May 2018 12:32:18 +0200
Subject: Add Platform.exit() on window-close and add stop-method

---
 .../groupphase/application/MainApplication.java         | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

(limited to 'src/main/java/at/ac/tuwien/sepm/assignment/groupphase')

diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/application/MainApplication.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/application/MainApplication.java
index a8a6c62..01c04d3 100644
--- a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/application/MainApplication.java
+++ b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/application/MainApplication.java
@@ -3,6 +3,7 @@ package at.ac.tuwien.sepm.assignment.groupphase.application;
 import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.userInterface.CreateOperationController;
 import at.ac.tuwien.sepm.assignment.groupphase.util.SpringFXMLLoader;
 import javafx.application.Application;
+import javafx.application.Platform;
 import javafx.scene.Parent;
 import javafx.scene.Scene;
 import javafx.stage.Stage;
@@ -24,7 +25,7 @@ public class MainApplication extends Application {
     public void start(Stage primaryStage) throws Exception {
         primaryStage.setTitle("Einsatz erstellen");
         primaryStage.centerOnScreen();
-        // primaryStage.setOnCloseRequest( event -> );
+        primaryStage.setOnCloseRequest(event -> Platform.exit());
 
         configApplicationContext = new AnnotationConfigApplicationContext(MainApplication.class);
         final var fxmlLoader = configApplicationContext.getBean(SpringFXMLLoader.class);
@@ -36,16 +37,16 @@ public class MainApplication extends Application {
                                                 .getResourceAsStream(
                                                         "/fxml/CreateOperationController.fxml"))));
 
-        /*FXMLLoader fxmlLoader =
-                new FXMLLoader(getClass().getResource("/fxml/CreateOperationController.fxml"));
-        Parent node = fxmlLoader.load();
-        // TODO:*/
         CreateOperationController controller =
-                configApplicationContext.getBean(
-                        CreateOperationController.class); // fxmlLoader.getController();
+                configApplicationContext.getBean(CreateOperationController.class);
         controller.updateList();
-        // primaryStage.setScene(new Scene(node));
         primaryStage.show();
         primaryStage.toFront();
     }
+
+    @Override
+    public void stop() throws Exception {
+        super.stop();
+        configApplicationContext.close();
+    }
 }
-- 
cgit v1.2.3-70-g09d2


From 498b81ada011b0c39dd7db9906db50482586d73b Mon Sep 17 00:00:00 2001
From: Dominic Rogetzer <e1627756@student.tuwien.ac.at>
Date: Mon, 7 May 2018 12:35:08 +0200
Subject: Add hyperlink-click-methods in CreateOperationController, implement
 onEmployeeLinkClicked

---
 .../userInterface/CreateOperationController.java   | 44 +++++++++++++++++++++-
 1 file changed, 43 insertions(+), 1 deletion(-)

(limited to 'src/main/java/at/ac/tuwien/sepm/assignment/groupphase')

diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/userInterface/CreateOperationController.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/userInterface/CreateOperationController.java
index 38f6849..87b9ea7 100644
--- a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/userInterface/CreateOperationController.java
+++ b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/userInterface/CreateOperationController.java
@@ -11,12 +11,17 @@ import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.service.Vehicle
 import at.ac.tuwien.sepm.assignment.groupphase.exception.InvalidOperationException;
 import at.ac.tuwien.sepm.assignment.groupphase.exception.ServiceException;
 import at.ac.tuwien.sepm.assignment.groupphase.util.JDBCConnectionManager;
+import at.ac.tuwien.sepm.assignment.groupphase.util.SpringFXMLLoader;
+import java.io.IOException;
 import java.time.Instant;
 import java.util.EnumSet;
 import java.util.LinkedList;
 import java.util.List;
 import javafx.collections.FXCollections;
+import javafx.event.ActionEvent;
 import javafx.fxml.FXML;
+import javafx.scene.Parent;
+import javafx.scene.Scene;
 import javafx.scene.control.Alert;
 import javafx.scene.control.Alert.AlertType;
 import javafx.scene.control.Button;
@@ -25,6 +30,7 @@ import javafx.scene.control.ListCell;
 import javafx.scene.control.ListView;
 import javafx.scene.control.TextField;
 import javafx.scene.layout.AnchorPane;
+import javafx.stage.Stage;
 import org.springframework.stereotype.Controller;
 
 @Controller
@@ -44,9 +50,11 @@ public class CreateOperationController {
     OperationService operationService =
             new OperationServiceImpl(new DBOperationDAO(new JDBCConnectionManager()));
     private final VehicleService vehicleService;
+    private final SpringFXMLLoader fxmlLoader;
 
-    public CreateOperationController(VehicleService vehicleService) {
+    public CreateOperationController(VehicleService vehicleService, SpringFXMLLoader fxmlLoader) {
         this.vehicleService = vehicleService;
+        this.fxmlLoader = fxmlLoader;
     }
 
     @FXML
@@ -174,4 +182,38 @@ public class CreateOperationController {
         alert.showAndWait();
         updateList();
     }
+
+    public void onRegistrationLinkClicked(ActionEvent actionEvent) {
+        throw new UnsupportedOperationException();
+    }
+
+    public void onEmployeeLinkClicked(ActionEvent actionEvent) {
+        openNewWindow("createNewEmployee.fxml");
+    }
+
+    public void onVehicleLinkClicked(ActionEvent actionEvent) {
+        openNewWindow("createCar.fxml");
+    }
+
+    private void openNewWindow(String fxmlFileName) {
+
+        Stage stage = new Stage();
+        try {
+            stage.setScene(
+                    new Scene(
+                            (Parent)
+                                    fxmlLoader.load(
+                                            getClass()
+                                                    .getResourceAsStream(
+                                                            "/fxml/" + fxmlFileName))));
+        } catch (IOException e) {
+            // TODO: Log error
+        }
+
+        stage.setTitle("Einsatz erstellen");
+        stage.centerOnScreen();
+        stage.showAndWait(); // important to call wait so that updateList is executed afterwards
+
+        updateList();
+    }
 }
-- 
cgit v1.2.3-70-g09d2


From f8c893b3a0dc51bde50238ddf3b7d1db318cb743 Mon Sep 17 00:00:00 2001
From: Dominic Rogetzer <e1627756@student.tuwien.ac.at>
Date: Mon, 7 May 2018 12:37:19 +0200
Subject: Log openNewWindow error

---
 .../einsatzverwaltung/userInterface/CreateOperationController.java | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

(limited to 'src/main/java/at/ac/tuwien/sepm/assignment/groupphase')

diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/userInterface/CreateOperationController.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/userInterface/CreateOperationController.java
index 87b9ea7..ae99088 100644
--- a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/userInterface/CreateOperationController.java
+++ b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/userInterface/CreateOperationController.java
@@ -13,6 +13,7 @@ import at.ac.tuwien.sepm.assignment.groupphase.exception.ServiceException;
 import at.ac.tuwien.sepm.assignment.groupphase.util.JDBCConnectionManager;
 import at.ac.tuwien.sepm.assignment.groupphase.util.SpringFXMLLoader;
 import java.io.IOException;
+import java.lang.invoke.MethodHandles;
 import java.time.Instant;
 import java.util.EnumSet;
 import java.util.LinkedList;
@@ -31,11 +32,15 @@ import javafx.scene.control.ListView;
 import javafx.scene.control.TextField;
 import javafx.scene.layout.AnchorPane;
 import javafx.stage.Stage;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Controller;
 
 @Controller
 public class CreateOperationController {
 
+    private static final Logger LOG = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
+
     public AnchorPane apCreateOperation;
     public TextField txtCode;
     public TextField txtAddress;
@@ -207,7 +212,7 @@ public class CreateOperationController {
                                                     .getResourceAsStream(
                                                             "/fxml/" + fxmlFileName))));
         } catch (IOException e) {
-            // TODO: Log error
+            LOG.error("Could not open new window: {}", e);
         }
 
         stage.setTitle("Einsatz erstellen");
-- 
cgit v1.2.3-70-g09d2