aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/CreateCarController.java2
-rw-r--r--src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/CreateOperationController.java2
-rw-r--r--src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/DetailArchiveOperationController.java2
-rw-r--r--src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/OperationDetailsController.java19
-rw-r--r--src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/RegistrationWindowController.java2
-rw-r--r--src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/VehiclePaneController.java17
-rw-r--r--src/main/resources/fxml/vehiclePane.fxml15
7 files changed, 53 insertions, 6 deletions
diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/CreateCarController.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/CreateCarController.java
index a4df90b..0734820 100644
--- a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/CreateCarController.java
+++ b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/CreateCarController.java
@@ -200,7 +200,7 @@ public class CreateCarController {
for (Vehicle vehicle : vehicles) {
VehiclePaneController controller = VehiclePaneController.createVehiclePane();
- controller.setData(vehicle, false);
+ controller.setData(vehicle, false, false);
controller
.getRootElement()
.setOnMouseClicked(
diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/CreateOperationController.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/CreateOperationController.java
index c3eb32b..19ed7bf 100644
--- a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/CreateOperationController.java
+++ b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/CreateOperationController.java
@@ -111,7 +111,7 @@ public class CreateOperationController {
for (Vehicle vehicle : vehicles) {
VehiclePaneController controller = VehiclePaneController.createVehiclePane();
- controller.setData(vehicle, true);
+ controller.setData(vehicle, true, false);
controller
.getRootElement()
.setOnMouseClicked(
diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/DetailArchiveOperationController.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/DetailArchiveOperationController.java
index 256fd4b..41bd2a6 100644
--- a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/DetailArchiveOperationController.java
+++ b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/DetailArchiveOperationController.java
@@ -51,7 +51,7 @@ public class DetailArchiveOperationController {
VehiclePaneController controller;
try {
controller = VehiclePaneController.createVehiclePane();
- controller.setData(vehicle, false);
+ controller.setData(vehicle, false, false);
vBoxVehicle.getChildren().add(controller.getRootElement());
} catch (IOException e) {
LOG.error("IOException in set(Vehicle). (vBoxVehicle) ", e);
diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/OperationDetailsController.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/OperationDetailsController.java
index dc8d0fb..86c4de7 100644
--- a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/OperationDetailsController.java
+++ b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/OperationDetailsController.java
@@ -11,10 +11,12 @@ 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.VehicleService;
import at.ac.tuwien.sepm.assignment.groupphase.exception.InvalidOperationException;
+import at.ac.tuwien.sepm.assignment.groupphase.exception.InvalidVehicleException;
import at.ac.tuwien.sepm.assignment.groupphase.exception.ServiceException;
import java.io.IOException;
import java.util.Collection;
import java.util.EnumSet;
+import java.util.Set;
import java.util.stream.Collectors;
import javafx.collections.FXCollections;
import javafx.fxml.FXML;
@@ -73,7 +75,8 @@ public class OperationDetailsController {
fpVehicles.getChildren().clear();
for (Vehicle vehicle : operation.vehicles()) {
VehiclePaneController controller = VehiclePaneController.createVehiclePane();
- controller.setData(vehicle, true);
+ controller.setData(vehicle, true, true);
+ controller.getBtnRequest().setOnAction(e -> requestVehicleClicked(controller));
fpVehicles.getChildren().add(controller.getRootElement());
}
} catch (IOException e) {
@@ -142,6 +145,20 @@ public class OperationDetailsController {
createOperationController.updateList();
}
+ private void requestVehicleClicked(VehiclePaneController v) {
+ LOG.debug("Button \"Nachfordern\" clicked.");
+
+ try {
+ operationService.requestVehicles(operation.id(), Set.of(v.getData().id()));
+ } catch (ServiceException | InvalidOperationException | InvalidVehicleException e) {
+ LOG.error("Exception in requestVehicleClicked()", e);
+ showServiceExceptionAlertAndWait(e.getMessage());
+ return;
+ }
+ showSuccessAlertAndWait("Das Fahrzeug wurde erfolgreich angefordert");
+ createOperationController.updateList();
+ }
+
public void closeWindow() {
LOG.debug("Hyperlink \"Zurück\" clicked.");
operationDetailsAP.setVisible(false);
diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/RegistrationWindowController.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/RegistrationWindowController.java
index dd4ff92..76f31b3 100644
--- a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/RegistrationWindowController.java
+++ b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/RegistrationWindowController.java
@@ -168,7 +168,7 @@ public class RegistrationWindowController {
anyMatch = true;
VehiclePaneController vp = VehiclePaneController.createVehiclePane();
- vp.setData(vehicle, false);
+ vp.setData(vehicle, false, false);
vbVehicles.getChildren().add(vp.getRootElement());
vp.getRootElement()
diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/VehiclePaneController.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/VehiclePaneController.java
index ed6e1a6..b31228d 100644
--- a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/VehiclePaneController.java
+++ b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/VehiclePaneController.java
@@ -11,6 +11,7 @@ import java.util.Optional;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.scene.Node;
+import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
@@ -36,6 +37,7 @@ public class VehiclePaneController extends CustomListItemController {
@FXML private ImageView ivQualification;
@FXML private Text txtQualification;
@FXML private Text txtRooftype;
+ @FXML private Button btnRequest;
private Vehicle data;
@@ -50,7 +52,7 @@ public class VehiclePaneController extends CustomListItemController {
* @param showStatusInfo If true, the highest qualification of the vehicle's active registration
* and the vehicle's status will be shown.
*/
- public void setData(Vehicle vehicle, boolean showStatusInfo) {
+ public void setData(Vehicle vehicle, boolean showStatusInfo, boolean showRequestVehicle) {
txtType.setText(vehicle.type().name());
String constrType = vehicle.constructionType().name();
txtRooftype.setText(
@@ -63,6 +65,15 @@ public class VehiclePaneController extends CustomListItemController {
ivNEF.setImage(new Image("images/NotNEF.png"));
txtNEF.setText("keine NEF-Halterung");
}
+
+ if (showRequestVehicle) {
+ btnRequest.setVisible(true);
+ btnRequest.setManaged(true);
+ } else {
+ btnRequest.setVisible(false);
+ btnRequest.setManaged(false);
+ }
+
if (showStatusInfo) {
txtStatus.setText(vehicle.status().name());
if (vehicle.status() == Status.FREI_FUNK || vehicle.status() == Status.FREI_WACHE) {
@@ -100,4 +111,8 @@ public class VehiclePaneController extends CustomListItemController {
this.data = vehicle;
}
+
+ public Button getBtnRequest() {
+ return btnRequest;
+ }
}
diff --git a/src/main/resources/fxml/vehiclePane.fxml b/src/main/resources/fxml/vehiclePane.fxml
index 1cedb7c..5a47181 100644
--- a/src/main/resources/fxml/vehiclePane.fxml
+++ b/src/main/resources/fxml/vehiclePane.fxml
@@ -1,11 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
+<?import java.lang.String?>
<?import javafx.geometry.Insets?>
+<?import javafx.scene.control.Button?>
+<?import javafx.scene.control.Label?>
<?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.layout.VBox?>
<?import javafx.scene.text.Font?>
<?import javafx.scene.text.Text?>
<?import javafx.scene.text.TextFlow?>
@@ -94,4 +98,15 @@
<Insets topRightBottomLeft="3"/>
</padding>
</Label>
+ <VBox alignment="CENTER_RIGHT" GridPane.columnIndex="3" GridPane.rowIndex="2">
+ <children>
+ <Button fx:id="btnRequest" alignment="CENTER" mnemonicParsing="false" prefWidth="100.0" text="Nachfordern">
+ <styleClass>
+ <String fx:value="text-medium" />
+ <String fx:value="button" />
+ <String fx:value="button-main" />
+ </styleClass>
+ </Button>
+ </children>
+ </VBox>
</GridPane>