diff options
Diffstat (limited to 'src')
2 files changed, 168 insertions, 0 deletions
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 new file mode 100644 index 0000000..10f9f03 --- /dev/null +++ b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/userInterface/CreateOperationController.java @@ -0,0 +1,74 @@ +package at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.userInterface; + +import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Operation; +import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Operation.Status; +import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Vehicle; +import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.service.OperationService; +import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.service.OperationServiceImpl; +import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.service.VehicleService; +import at.ac.tuwien.sepm.assignment.groupphase.exception.InvalidOperationException; +import at.ac.tuwien.sepm.assignment.groupphase.exception.ServiceException; +import java.time.Instant; +import java.util.LinkedList; +import java.util.List; +import javafx.fxml.FXML; +import javafx.scene.control.Button; +import javafx.scene.control.Label; +import javafx.scene.control.ListView; +import javafx.scene.control.TextField; +import javafx.scene.layout.AnchorPane; + +public class CreateOperationController { + +    public AnchorPane apCreateOperation; +    public TextField txtCode; +    public TextField txtAddress; +    public TextField txtNote; +    public Button btnCreateOperation; +    public ListView<Vehicle> lvVehicles; +    public ListView lvActiveOperations; +    public Label lblChosenVehicles; +    public LinkedList<Vehicle> chosenVehicles; + +    OperationService operationService = new OperationServiceImpl(); +    VehicleService vehicleService = new VehicleServiceImpl(); + +    public CreateOperationController() {} + +    @FXML +    public void initialize() { +        lvVehicles.setOnMouseClicked( +                event -> { +                    if (event.getClickCount() == 2) { +                        chosenVehicles.add(lvVehicles.getSelectionModel().getSelectedItem()); +                    } +                }); +    } + +    @FXML +    protected void createOperationClicked() { +        Vehicle[] vehicles = new Vehicle[chosenVehicles.size()]; +        for (int i = 0; i < chosenVehicles.size(); i++) { +            vehicles[i] = chosenVehicles.get(i); +        } +        Operation operation = +                Operation.builder() +                        .additionalInfo(txtNote.getText()) +                        .destination(txtAddress.getText()) +                        .created(Instant.now()) +                        .opCode(txtCode.getText()) +                        .status(Status.ACTIVE) +                        .vehicles(List.of(vehicles)) +                        .build(); + +        try { +            operationService.add(operation); +        } catch (InvalidOperationException e) { +            //TODO +        } catch (ServiceException e) { +            e.printStackTrace(); +        } +    } + + +} diff --git a/src/main/resources/fxmlFiles/CreateOperationController.fxml b/src/main/resources/fxmlFiles/CreateOperationController.fxml new file mode 100644 index 0000000..7b188fd --- /dev/null +++ b/src/main/resources/fxmlFiles/CreateOperationController.fxml @@ -0,0 +1,94 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<?import javafx.scene.control.Button?> +<?import javafx.scene.control.Label?> +<?import javafx.scene.control.ListView?> +<?import javafx.scene.control.TextField?> +<?import javafx.scene.layout.AnchorPane?> +<?import javafx.scene.text.Font?> + +<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="650.0" prefWidth="1200.0" xmlns="http://javafx.com/javafx/9.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.userInterface.CreateOperationController"> +   <children> +      <AnchorPane layoutX="964.0" layoutY="-66.0" prefHeight="182.0" prefWidth="1200.0" style="-fx-background-color: blue;" AnchorPane.leftAnchor="0.0" AnchorPane.topAnchor="0.0" /> +      <AnchorPane fx:id="apCreateOperation" layoutX="40.0" layoutY="71.0" prefHeight="151.0" prefWidth="920.0" style="-fx-background-color: white;"> +         <children> +            <Label layoutX="14.0" layoutY="14.0" prefHeight="30.0" prefWidth="62.0" text="Code"> +               <font> +                  <Font size="19.0" /> +               </font> +            </Label> +            <Label layoutX="185.0" layoutY="14.0" prefHeight="30.0" prefWidth="94.0" text="Adresse"> +               <font> +                  <Font size="19.0" /> +               </font> +            </Label> +            <Label layoutX="587.0" layoutY="14.0" prefHeight="30.0" prefWidth="121.0" text="Anmerkung"> +               <font> +                  <Font size="19.0" /> +               </font> +            </Label> +            <TextField fx:id="txtCode" layoutX="14.0" layoutY="48.0" prefHeight="39.0" prefWidth="163.0" text="ALP-95E7"> +               <font> +                  <Font name="System Bold" size="20.0" /> +               </font> +            </TextField> +            <TextField fx:id="txtAddress" layoutX="185.0" layoutY="48.0" prefHeight="39.0" prefWidth="396.0"> +               <font> +                  <Font name="System Bold" size="20.0" /> +               </font> +            </TextField> +            <TextField fx:id="txtNote" layoutX="587.0" layoutY="48.0" prefHeight="39.0" prefWidth="319.0"> +               <font> +                  <Font size="20.0" /> +               </font> +            </TextField> +            <Label layoutX="14.0" layoutY="101.0" prefHeight="30.0" prefWidth="102.0" text="Fahrzeuge:"> +               <font> +                  <Font size="19.0" /> +               </font> +            </Label> +            <Label fx:id="lblChosenVehicles" layoutX="116.0" layoutY="102.0" prefHeight="30.0" prefWidth="610.0" text="keine ausgewählt"> +               <font> +                  <Font size="19.0" /> +               </font> +            </Label> +            <Button fx:id="btnCreateOperation" layoutX="740.0" layoutY="95.0" mnemonicParsing="false" onAction="#createOperationClicked" prefHeight="0.0" prefWidth="158.0" text="Erstellen"> +               <font> +                  <Font name="System Bold" size="21.0" /> +               </font> +            </Button> +         </children> +      </AnchorPane> +      <Label layoutX="55.0" layoutY="38.0" text="Anmeldungen" textFill="WHITE"> +         <font> +            <Font size="15.0" /> +         </font> +      </Label> +      <Label layoutX="802.0" layoutY="38.0" text="Personen" textFill="WHITE"> +         <font> +            <Font size="15.0" /> +         </font> +      </Label> +      <Label layoutX="877.0" layoutY="38.0" text="Fahrzeuge" textFill="WHITE"> +         <font> +            <Font size="15.0" /> +         </font> +      </Label> +      <AnchorPane fx:id="apActiveOperations" layoutX="973.0" layoutY="69.0" prefHeight="243.0" prefWidth="207.0" style="-fx-background-color: white;"> +         <children> +            <ListView fx:id="lvActiveOperations" layoutX="4.0" layoutY="74.0" prefHeight="242.0" prefWidth="200.0" style="-fx-background-color: white;" /> +            <Label layoutX="10.0" layoutY="14.0" prefHeight="46.0" prefWidth="103.0" text="Aktive Einsätze"> +               <font> +                  <Font name="System Bold" size="14.0" /> +               </font> +            </Label> +            <Label layoutX="148.0" layoutY="28.0" text="Archiv"> +               <font> +                  <Font size="13.0" /> +               </font> +            </Label> +         </children> +      </AnchorPane> +      <ListView fx:id="lvVehicles" layoutX="41.0" layoutY="222.0" prefHeight="394.0" prefWidth="918.0" /> +   </children> +</AnchorPane>  | 
