diff options
Diffstat (limited to 'src/main/java/at/ac/tuwien/sepm/assignment/groupphase')
2 files changed, 100 insertions, 1 deletions
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..01c04d3 --- /dev/null +++ b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/application/MainApplication.java @@ -0,0 +1,52 @@ +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; +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 -> Platform.exit()); + +        configApplicationContext = new AnnotationConfigApplicationContext(MainApplication.class); +        final var fxmlLoader = configApplicationContext.getBean(SpringFXMLLoader.class); +        primaryStage.setScene( +                new Scene( +                        (Parent) +                                fxmlLoader.load( +                                        getClass() +                                                .getResourceAsStream( +                                                        "/fxml/CreateOperationController.fxml")))); + +        CreateOperationController controller = +                configApplicationContext.getBean(CreateOperationController.class); +        controller.updateList(); +        primaryStage.show(); +        primaryStage.toFront(); +    } + +    @Override +    public void stop() throws Exception { +        super.stop(); +        configApplicationContext.close(); +    } +} 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..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 @@ -11,12 +11,18 @@ 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.lang.invoke.MethodHandles;  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,11 +31,16 @@ 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.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; @@ -44,9 +55,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 +187,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) { +            LOG.error("Could not open new window: {}", e); +        } + +        stage.setTitle("Einsatz erstellen"); +        stage.centerOnScreen(); +        stage.showAndWait(); // important to call wait so that updateList is executed afterwards + +        updateList(); +    }  }  | 
