diff options
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> |