diff options
Diffstat (limited to 'src/main/java')
6 files changed, 38 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; +    }  }  | 
