From 40ad8a458a0706ccdcd567965f0275d4dd0aa118 Mon Sep 17 00:00:00 2001 From: Dominic Rogetzer 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') 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 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') 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 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') 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 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') 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