diff options
Diffstat (limited to 'src/main/resources')
-rw-r--r-- | src/main/resources/fxml/CreateOperationController.fxml | 95 | ||||
-rw-r--r-- | src/main/resources/fxml/RegistrationWindow.fxml | 76 | ||||
-rw-r--r-- | src/main/resources/fxml/createCar.fxml | 17 | ||||
-rw-r--r-- | src/main/resources/fxml/createNewEmployee.fxml | 24 | ||||
-rw-r--r-- | src/main/resources/fxml/vehiclePane.fxml | 70 | ||||
-rw-r--r-- | src/main/resources/images/NEF.png | bin | 0 -> 327 bytes | |||
-rw-r--r-- | src/main/resources/images/Not.png | bin | 0 -> 872 bytes | |||
-rw-r--r-- | src/main/resources/images/NotNEF.png | bin | 0 -> 1042 bytes | |||
-rw-r--r-- | src/main/resources/images/Qualification.png | bin | 0 -> 1029 bytes | |||
-rw-r--r-- | src/main/resources/images/Vehicle.png | bin | 0 -> 964 bytes | |||
-rw-r--r-- | src/main/resources/sql/H2RegistrationDAOTest_depopulate.sql | 5 | ||||
-rw-r--r-- | src/main/resources/sql/H2RegistrationDAOTest_populate.sql | 15 | ||||
-rw-r--r-- | src/main/resources/sql/database.sql | 20 |
13 files changed, 316 insertions, 6 deletions
diff --git a/src/main/resources/fxml/CreateOperationController.fxml b/src/main/resources/fxml/CreateOperationController.fxml new file mode 100644 index 0000000..086a5d1 --- /dev/null +++ b/src/main/resources/fxml/CreateOperationController.fxml @@ -0,0 +1,95 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<?import javafx.scene.control.Button?> +<?import javafx.scene.control.Hyperlink?> +<?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: #2D75B6;" 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; -fx-effect: dropshadow(three-pass-box, rgba(0,0,0,0.8), 5, 0, 0, 5);"> + <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"> + <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 name="System Bold" 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="747.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> + <Hyperlink layoutX="44.0" layoutY="38.0" onAction="#onRegistrationLinkClicked" text="Anmeldungen" textFill="WHITE"> + <font> + <Font size="15.0" /> + </font> + </Hyperlink> + <Hyperlink layoutX="802.0" layoutY="38.0" onAction="#onEmployeeLinkClicked" text="Personen" textFill="WHITE"> + <font> + <Font size="15.0" /> + </font> + </Hyperlink> + <Hyperlink layoutX="877.0" layoutY="38.0" onAction="#onVehicleLinkClicked" text="Fahrzeuge" textFill="WHITE"> + <font> + <Font size="15.0" /> + </font> + </Hyperlink> + <AnchorPane fx:id="apActiveOperations" layoutX="968.0" layoutY="71.0" prefHeight="315.0" prefWidth="207.0" style="-fx-background-color: white; -fx-effect: dropshadow(three-pass-box, rgba(0,0,0,0.8), 10, 0, 0, 5);"> + <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="40.0" layoutY="228.0" prefHeight="388.0" prefWidth="920.0" style="-fx-effect: dropshadow(three-pass-box, rgba(0,0,0,0.8), 10, 0, 0, 5);" /> + </children> +</AnchorPane> diff --git a/src/main/resources/fxml/RegistrationWindow.fxml b/src/main/resources/fxml/RegistrationWindow.fxml new file mode 100644 index 0000000..0394ca7 --- /dev/null +++ b/src/main/resources/fxml/RegistrationWindow.fxml @@ -0,0 +1,76 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<?import javafx.geometry.Insets?> +<?import javafx.scene.control.Button?> +<?import javafx.scene.control.ChoiceBox?> +<?import javafx.scene.control.Label?> +<?import javafx.scene.control.SplitPane?> +<?import javafx.scene.control.TableColumn?> +<?import javafx.scene.control.TableView?> +<?import javafx.scene.control.TextField?> +<?import javafx.scene.layout.AnchorPane?> +<?import javafx.scene.layout.HBox?> +<?import javafx.scene.layout.VBox?> + +<VBox maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefWidth="600.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.controller.RegistrationWindowController"> + <children> + <AnchorPane prefHeight="135.0" prefWidth="600.0"> + <children> + <Label layoutX="14.0" layoutY="14.0" text="Neue Anmeldung" /> + <Label layoutX="14.0" layoutY="44.0" text="von" /> + <Label layoutX="133.0" layoutY="44.0" text="bis" /> + <ChoiceBox fx:id="cbStart" layoutX="42.0" layoutY="40.0" prefWidth="80.0" /> + <ChoiceBox fx:id="cbEnd" layoutX="159.0" layoutY="40.0" prefWidth="80.0" /> + <Label layoutX="10.0" layoutY="82.0" text="Fahrzeug" /> + <Label fx:id="lVehicles" layoutX="10.0" layoutY="108.0" text="Fahrzeugname" /> + <Label layoutX="216.0" layoutY="82.0" text="Personen" /> + <Label fx:id="lEmployees" layoutX="216.0" layoutY="108.0" text="Namen" /> + </children> + </AnchorPane> + <SplitPane dividerPositions="0.35" prefWidth="200.0"> + <items> + <VBox prefHeight="200.0" prefWidth="100.0"> + <children> + <Label text="Fahrzeugsuche" /> + <TextField fx:id="tfVehicleSearch" /> + <TableView fx:id="tvVehicles" prefHeight="200.0" prefWidth="200.0"> + <columns> + <TableColumn fx:id="tcVehicles" prefWidth="75.0" text="Fahrzeuge" /> + </columns> + <columnResizePolicy> + <TableView fx:constant="CONSTRAINED_RESIZE_POLICY" /> + </columnResizePolicy> + </TableView> + </children> + </VBox> + <VBox prefHeight="200.0" prefWidth="100.0"> + <children> + <Label text="Personensuche" /> + <TextField fx:id="tfEmployeeSearch" /> + <TableView fx:id="tvEmployees" prefHeight="200.0" prefWidth="200.0"> + <columns> + <TableColumn fx:id="tcEmployees" prefWidth="75.0" text="Personen" /> + </columns> + <columnResizePolicy> + <TableView fx:constant="CONSTRAINED_RESIZE_POLICY" /> + </columnResizePolicy> + </TableView> + </children> + </VBox> + </items> + </SplitPane> + <HBox alignment="CENTER" prefWidth="200.0"> + <children> + <Button mnemonicParsing="false" onAction="#cancel" text="Abbrechen"> + <HBox.margin> + <Insets bottom="8.0" left="8.0" right="8.0" top="8.0" /> + </HBox.margin> + </Button> + <Button mnemonicParsing="false" onAction="#create" text="Erstellen"> + <HBox.margin> + <Insets bottom="8.0" left="8.0" right="8.0" top="8.0" /> + </HBox.margin> + </Button> + </children></HBox> + </children> +</VBox> diff --git a/src/main/resources/fxml/createCar.fxml b/src/main/resources/fxml/createCar.fxml new file mode 100644 index 0000000..b0898da --- /dev/null +++ b/src/main/resources/fxml/createCar.fxml @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<?import javafx.scene.control.Button?> +<?import javafx.scene.control.CheckBox?> +<?import javafx.scene.control.ChoiceBox?> +<?import javafx.scene.layout.AnchorPane?> + + +<AnchorPane prefHeight="400.0" prefWidth="600.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.controller.CreateCarController"> + <children> + <ChoiceBox fx:id="cmb_Ctyp" layoutX="14.0" layoutY="14.0" prefWidth="150.0" /> + <ChoiceBox fx:id="cmb_typ" layoutX="191.0" layoutY="14.0" prefWidth="150.0" /> + <Button fx:id="btn_cancel" layoutX="500.0" layoutY="14.0" mnemonicParsing="false" text="abbrechen" /> + <Button fx:id="btn_create" layoutX="500.0" layoutY="53.0" mnemonicParsing="false" onAction="#createCar" text="Erstellen" /> + <CheckBox fx:id="cbx_NEF" layoutX="14.0" layoutY="57.0" mnemonicParsing="false" text="NEF - Halterung" /> + </children> +</AnchorPane> diff --git a/src/main/resources/fxml/createNewEmployee.fxml b/src/main/resources/fxml/createNewEmployee.fxml new file mode 100644 index 0000000..5fa1ca9 --- /dev/null +++ b/src/main/resources/fxml/createNewEmployee.fxml @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<?import javafx.scene.control.Button?> +<?import javafx.scene.control.CheckBox?> +<?import javafx.scene.control.ChoiceBox?> +<?import javafx.scene.control.Hyperlink?> +<?import javafx.scene.control.Label?> +<?import javafx.scene.control.TextField?> +<?import javafx.scene.layout.AnchorPane?> + + +<AnchorPane prefHeight="114.0" prefWidth="600.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.controller.CreateNewEmployeeController"> + <children> + <Label layoutX="14.0" layoutY="14.0" text="Neue Person erstellen" /> + <Label layoutX="14.0" layoutY="38.0" text="Name" /> + <Label layoutX="206.0" layoutY="38.0" text="Qualifikation" /> + <CheckBox fx:id="inputIsDriver" layoutX="343.0" layoutY="37.0" mnemonicParsing="false" text="Fahrer" /> + <CheckBox fx:id="inputIsPilot" layoutX="343.0" layoutY="62.0" mnemonicParsing="false" text="Pilot" /> + <Hyperlink fx:id="btnCancel" layoutX="441.0" layoutY="31.0" onAction="#onCancelClicked" text="abbrechen" /> + <Button fx:id="btnCreate" layoutX="441.0" layoutY="55.0" mnemonicParsing="false" onAction="#onCreateClicked" text="Erstellen" /> + <TextField fx:id="inputName" layoutX="14.0" layoutY="57.0" prefHeight="25.0" prefWidth="179.0" /> + <ChoiceBox fx:id="inputQualification" layoutX="199.0" layoutY="57.0" prefHeight="25.0" prefWidth="128.0" /> + </children> +</AnchorPane> diff --git a/src/main/resources/fxml/vehiclePane.fxml b/src/main/resources/fxml/vehiclePane.fxml new file mode 100644 index 0000000..8b1d194 --- /dev/null +++ b/src/main/resources/fxml/vehiclePane.fxml @@ -0,0 +1,70 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<?import javafx.geometry.Insets?> +<?import javafx.scene.image.Image?> +<?import javafx.scene.image.ImageView?> +<?import javafx.scene.layout.ColumnConstraints?> +<?import javafx.scene.layout.GridPane?> +<?import javafx.scene.layout.RowConstraints?> +<?import javafx.scene.text.Font?> +<?import javafx.scene.text.Text?> +<?import javafx.scene.text.TextFlow?> + +<GridPane hgap="6.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.ui.vehiclepane.VehiclePaneController"> + <columnConstraints> + <ColumnConstraints/> + <ColumnConstraints/> + <ColumnConstraints/> + <ColumnConstraints/> + </columnConstraints> + <rowConstraints> + <RowConstraints/> + <RowConstraints/> + <RowConstraints/> + <RowConstraints/> + </rowConstraints> + <padding> + <Insets bottom="6.0" left="6.0" right="6.0" top="6.0"/> + </padding> + <TextFlow GridPane.columnIndex="0" GridPane.columnSpan="2" GridPane.rowIndex="0"> + <Text text="RTW" fx:id="txtType"> + <font> + <Font name="System Bold" size="18.0"/> + </font> + </Text> + <Text text="-10003" fx:id="txtNumber"> + <font> + <Font size="16.0"/> + </font> + </Text> + </TextFlow> + <ImageView fx:id="ivNEF" fitHeight="25.0" fitWidth="25.0" pickOnBounds="true" preserveRatio="true" + GridPane.columnIndex="0" GridPane.rowIndex="1"> + <Image url="@../images/NotNEF.png"/> + </ImageView> + <Text fx:id="txtNEF" text="keine NEF-Halterung" GridPane.columnIndex="1" GridPane.rowIndex="1"> + <font> + <Font size="14.0"/> + </font> + </Text> + <ImageView fx:id="ivQualification" fitHeight="25.0" fitWidth="25.0" pickOnBounds="true" + preserveRatio="true" + GridPane.columnIndex="0" GridPane.rowIndex="2"> + <Image url="@../images/Qualification.png"/> + </ImageView> + <Text fx:id="txtQualification" text="Notarzt" GridPane.columnIndex="1" GridPane.rowIndex="2"> + <font> + <Font size="14.0"/> + </font> + </Text> + <ImageView fitHeight="25.0" fitWidth="25.0" pickOnBounds="true" preserveRatio="true" + GridPane.columnIndex="0" GridPane.rowIndex="3"> + <Image url="@../images/Vehicle.png"/> + </ImageView> + <Text fx:id="txtRooftype" text="Hochdach" GridPane.columnIndex="1" GridPane.rowIndex="3"> + <font> + <Font size="14.0"/> + </font> + </Text> +</GridPane> diff --git a/src/main/resources/images/NEF.png b/src/main/resources/images/NEF.png Binary files differnew file mode 100644 index 0000000..687f914 --- /dev/null +++ b/src/main/resources/images/NEF.png diff --git a/src/main/resources/images/Not.png b/src/main/resources/images/Not.png Binary files differnew file mode 100644 index 0000000..03063af --- /dev/null +++ b/src/main/resources/images/Not.png diff --git a/src/main/resources/images/NotNEF.png b/src/main/resources/images/NotNEF.png Binary files differnew file mode 100644 index 0000000..0c17d53 --- /dev/null +++ b/src/main/resources/images/NotNEF.png diff --git a/src/main/resources/images/Qualification.png b/src/main/resources/images/Qualification.png Binary files differnew file mode 100644 index 0000000..c58a640 --- /dev/null +++ b/src/main/resources/images/Qualification.png diff --git a/src/main/resources/images/Vehicle.png b/src/main/resources/images/Vehicle.png Binary files differnew file mode 100644 index 0000000..2fe992d --- /dev/null +++ b/src/main/resources/images/Vehicle.png diff --git a/src/main/resources/sql/H2RegistrationDAOTest_depopulate.sql b/src/main/resources/sql/H2RegistrationDAOTest_depopulate.sql new file mode 100644 index 0000000..f43b641 --- /dev/null +++ b/src/main/resources/sql/H2RegistrationDAOTest_depopulate.sql @@ -0,0 +1,5 @@ +DELETE FROM Registration; +DELETE FROM Vehicle; +DELETE FROM VehicleVersion; +DELETE FROM Employee; +DELETE FROM EmployeeVersion;
\ No newline at end of file diff --git a/src/main/resources/sql/H2RegistrationDAOTest_populate.sql b/src/main/resources/sql/H2RegistrationDAOTest_populate.sql new file mode 100644 index 0000000..7e7b428 --- /dev/null +++ b/src/main/resources/sql/H2RegistrationDAOTest_populate.sql @@ -0,0 +1,15 @@ +DELETE FROM Registration; +DELETE FROM Vehicle; +DELETE FROM VehicleVersion; +DELETE FROM Employee; +DELETE FROM EmployeeVersion; +INSERT INTO EmployeeVersion (id, name, birthday, educationLevel, isDriver, isPilot) VALUES (1, 'John Doe', '2000-01-01', 'RS', TRUE, TRUE); +INSERT INTO EmployeeVersion (id, name, birthday, educationLevel, isDriver, isPilot) VALUES (2, 'Nick "Kage" Verily', '1990-01-01', 'NKV', TRUE, FALSE); +INSERT INTO EmployeeVersion (id, name, birthday, educationLevel, isDriver, isPilot) VALUES (3, 'Nicht Arzt', '1980-01-01', 'NA', FALSE, FALSE); +INSERT INTO Employee (id, version) VALUES (1, 1); +INSERT INTO Employee (id, version) VALUES (2, 2); +INSERT INTO Employee (id, version) VALUES (3, 3); +INSERT INTO VehicleVersion (id, name, hasNef, constructionType, type) VALUES (1, 'RTW-1', TRUE, 'HOCHDACH', 'RTW'); +INSERT INTO VehicleVersion (id, name, hasNef, constructionType, type) VALUES (2, 'NEF-1', FALSE, 'NORMAL', 'NEF'); +INSERT INTO Vehicle (id, version, status) VALUES (1, 1, 'ABGEMELDET'); +INSERT INTO Vehicle (id, version, status) VALUES (2, 2, 'ABGEMELDET');
\ No newline at end of file diff --git a/src/main/resources/sql/database.sql b/src/main/resources/sql/database.sql index 9d1b0e1..4f3adf7 100644 --- a/src/main/resources/sql/database.sql +++ b/src/main/resources/sql/database.sql @@ -1,25 +1,30 @@ CREATE TABLE IF NOT EXISTS VehicleVersion ( id BIGINT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100) NOT NULL, - constructionType ENUM('Normal', 'Hochdach', 'Mittelhochdach') NOT NULL, - type ENUM('BKTW', 'KTW-B', 'KTW', 'RTW', 'NEF', 'NAH') NOT NULL, + constructionType VARCHAR NOT NULL, + type VARCHAR NOT NULL, + hasNef BOOLEAN NOT NULL, + CHECK constructionType IN ('NORMAL', 'HOCHDACH', 'MITTELHOCHDACH'), + CHECK type IN ('BKTW', 'KTW-B', 'KTW', 'RTW', 'NEF', 'NAH') ); CREATE TABLE IF NOT EXISTS Vehicle ( id BIGINT AUTO_INCREMENT PRIMARY KEY, version BIGINT NOT NULL, - status ENUM('abgemeldet', 'frei_wache', 'zum_berufungsort', 'am_berufungsort', 'zum_zielort', - 'am_zielort', 'frei_funk', 'deleted') NOT NULL, + status VARCHAR NOT NULL, FOREIGN KEY (version) REFERENCES VehicleVersion(id), + CHECK status IN ('ABGEMELDET', 'FREI_WACHE', 'ZUM_BERUFUNGSORT', 'AM_BERUFUNGSORT', 'ZUM_ZIELORT', + 'AM_ZIELORT', 'FREI_FUNK', 'DELETED') ); CREATE TABLE IF NOT EXISTS EmployeeVersion ( id BIGINT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100) NOT NULL, birthday DATE NOT NULL, - educationLevel ENUM('RS', 'NFS', 'NKV', 'NKA', 'NKI', 'NA') NOT NULL, + educationLevel VARCHAR NOT NULL, isDriver BOOLEAN NOT NULL, isPilot BOOLEAN NOT NULL, + CHECK educationLevel IN ('RS', 'NFS', 'NKV', 'NKA', 'NKI', 'NA') ); CREATE TABLE IF NOT EXISTS Employee ( @@ -42,10 +47,13 @@ CREATE TABLE IF NOT EXISTS Registration ( CREATE TABLE IF NOT EXISTS Operation ( id BIGINT AUTO_INCREMENT PRIMARY KEY, opCode VARCHAR(20) NOT NULL, - severity ENUM('A', 'B', 'C', 'D', 'E', 'O') NOT NULL, + severity VARCHAR NOT NULL, created TIMESTAMP NOT NULL, destination VARCHAR(100) NOT NULL, additionalInfo VARCHAR(100), + status VARCHAR NOT NULL, + CHECK severity IN ('A', 'B', 'C', 'D', 'E', 'O'), + CHECK status IN ('ACTIVE', 'COMPLETED', 'CANCELLED') ); CREATE TABLE IF NOT EXISTS VehicleOperation ( |