diff options
| author | Viktoria Pundy <viktoria.pundy@aon.at> | 2018-06-02 20:18:32 +0200 | 
|---|---|---|
| committer | Tharre <tharre3@gmail.com> | 2018-06-13 18:35:20 +0200 | 
| commit | 508353d4f9d0d6716cabc70f5e9c6c2712264a9b (patch) | |
| tree | ff00244cd7468396f980ec0de55350ef41ba3894 /src/main/java | |
| parent | 8e9d7d1cb5ffd184ee63706350fa664aa9007fa6 (diff) | |
| download | sepm-groupproject-508353d4f9d0d6716cabc70f5e9c6c2712264a9b.tar.gz sepm-groupproject-508353d4f9d0d6716cabc70f5e9c6c2712264a9b.tar.xz sepm-groupproject-508353d4f9d0d6716cabc70f5e9c6c2712264a9b.zip  | |
Added fxml and controller for archive window [#27299]
Added fxml-File, which contains a small window for the detail view in the archive window. It contains two vboxes, in which vehicle and staff are stored
Diffstat (limited to 'src/main/java')
2 files changed, 135 insertions, 4 deletions
diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/ArchiveOperationController.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/ArchiveOperationController.java index 86a14f9..a233d21 100644 --- a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/ArchiveOperationController.java +++ b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/ArchiveOperationController.java @@ -5,6 +5,7 @@ import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Operation.S  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.exception.ServiceException; +import at.ac.tuwien.sepm.assignment.groupphase.util.SpringFXMLLoader;  import java.io.IOException;  import java.time.LocalDateTime;  import java.time.ZoneOffset; @@ -19,8 +20,9 @@ import java.util.stream.Collectors;  import javafx.fxml.FXML;  import javafx.scene.control.Alert;  import javafx.scene.control.Alert.AlertType; -import javafx.scene.control.Button;  import javafx.scene.control.Label; +import javafx.scene.image.Image; +import javafx.scene.image.ImageView;  import javafx.scene.layout.AnchorPane;  import javafx.scene.layout.FlowPane;  import org.springframework.stereotype.Controller; @@ -28,6 +30,7 @@ import org.springframework.stereotype.Controller;  @Controller  public class ArchiveOperationController { +    @FXML private ImageView imvVehicleDetail;      @FXML private AnchorPane apMainDetails;      @FXML private Label lblOperations;      @FXML private Label lblClosed; @@ -46,12 +49,15 @@ public class ArchiveOperationController {      @FXML private FlowPane archiveOperationFlowPane;      private final CreateOperationController createOperationController;      private Set<Operation> list = new HashSet<>(); +    private final SpringFXMLLoader fxmlLoader;      public ArchiveOperationController(              OperationService operationService, -            CreateOperationController createOperationController) { +            CreateOperationController createOperationController, +            SpringFXMLLoader fxmlLoader) {          this.operationService = operationService;          this.createOperationController = createOperationController; +        this.fxmlLoader = fxmlLoader;      }      @FXML @@ -91,6 +97,7 @@ public class ArchiveOperationController {                                      backApDetails.setVisible(true);                                      setOperation();                                      setDetailsVisible(true); +                                    imvVehicleDetail.setImage(new Image(("/images/Vehicle.png")));                                  });                  archiveOperationFlowPane.getChildren().add(opInAController.getRoot());              } @@ -151,13 +158,31 @@ public class ArchiveOperationController {          lblVehicles.setText(result);          lblAddress.setText(detailOperation.destination()); -        for (Vehicle vehicle : detailOperation.vehicles()) { +        fpVehicles.getChildren().clear(); +        try { +            for (Vehicle vehicle : detailOperation.vehicles()) { +                DetailArchiveOperationController controller = null; + +                controller = DetailArchiveOperationController.create(fxmlLoader); + +                controller.set(vehicle); +                fpVehicles.getChildren().add(controller.getRoot()); +            } +        } catch (IOException e) { +            Alert alert = new Alert(Alert.AlertType.ERROR); +            alert.setTitle("Fehler"); +            alert.setHeaderText("Fehler!"); +            alert.setContentText("Die Element konnte nicht geladen werden!"); +            alert.showAndWait(); +        } + +        /*for (Vehicle vehicle : detailOperation.vehicles()) {              Button b = new Button();              b.setPrefHeight(200);              b.setPrefWidth(600 / 2);              b.setText(vehicle.name());              fpVehicles.getChildren().add(b); -        } +        }*/      }      public void setListVisible(boolean b) { 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 new file mode 100644 index 0000000..3c50c65 --- /dev/null +++ b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/DetailArchiveOperationController.java @@ -0,0 +1,106 @@ +package at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.controller; + +import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Employee; +import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Vehicle; +import at.ac.tuwien.sepm.assignment.groupphase.util.SpringFXMLLoader; +import at.ac.tuwien.sepm.assignment.groupphase.util.SpringFXMLLoader.FXMLWrapper; +import java.io.IOException; +import java.lang.invoke.MethodHandles; +import javafx.fxml.FXML; +import javafx.scene.Node; +import javafx.scene.control.Alert; +import javafx.scene.layout.VBox; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Controller; + +@Controller +public class DetailArchiveOperationController { +    private static final Logger LOG = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass()); + +    @FXML private VBox vBoxVehicle; +    @FXML private VBox vBoxPeople; +    private final SpringFXMLLoader fxmlLoader; + +    public DetailArchiveOperationController(SpringFXMLLoader fxmlLoader) { +        this.fxmlLoader = fxmlLoader; +    } + +    public static DetailArchiveOperationController create(SpringFXMLLoader fxmlLoader) +            throws IOException { +        FXMLWrapper<Object, DetailArchiveOperationController> wrapper = +                fxmlLoader.loadAndWrap( +                        "/fxml/DetailArchiveOperation.fxml", +                        DetailArchiveOperationController.class); + +        Node root = (Node) wrapper.getLoadedObject(); +        DetailArchiveOperationController result = wrapper.getController(); +        result.rootElement = root; + +        return result; +    } + +    public Node getRoot() { +        return rootElement; +    } + +    private Node rootElement; + +    public void set(Vehicle vehicle) { +        VehiclePaneController controller = null; +        try { +            controller = VehiclePaneController.createVehiclePane(); +            controller.setData(vehicle, false); +            vBoxVehicle.getChildren().add(controller.getRootElement()); +        } catch (IOException e) { +            LOG.error("Error while updating list.", e); +            Alert alert = new Alert(Alert.AlertType.ERROR); +            alert.setTitle("Fehler"); +            alert.setHeaderText("Fehler!"); +            alert.setContentText(e.getMessage()); +            alert.showAndWait(); +        } +        try { +            for (int i = 0; i < vehicle.registrations().size(); i++) { +                Employee employee = vehicle.registrations().get(i).employee(); + +                EmployeeListItemController employeeListItemController = +                        EmployeeListItemController.createEmployeeListItemController( +                                fxmlLoader, employee); +                vBoxPeople.getChildren().add(employeeListItemController.getRootElement()); +            } +        } catch (IOException e) { +            LOG.error("Error while updating list.", e); +            Alert alert = new Alert(Alert.AlertType.ERROR); +            alert.setTitle("Fehler"); +            alert.setHeaderText("Fehler!"); +            alert.setContentText(e.getMessage()); +            alert.showAndWait(); +        } +    } + +    /* public void set(Operation operation) { +        txtAddress.setText(operation.destination()); +        String date = "am "; +        if (operation.created() != null) { +            LocalDateTime myDateTime = +                    LocalDateTime.ofInstant( +                            Objects.requireNonNull(operation.created()), ZoneOffset.UTC); +            date += +                    myDateTime.getDayOfMonth() +                            + "." +                            + myDateTime.getMonth().getValue() +                            + "." +                            + myDateTime.getYear(); +            txtDate.setText(date); +        } else { +            txtDate.setText("---"); +        } +        txtOpCode.setText(operation.opCode()); +        Collection<String> elements = +                operation.vehicles().stream().map(Vehicle::name).collect(Collectors.toList()); +        String result = String.join(", ", elements); + +        txtVehicles.setText(result); +    }*/ +}  | 
