From 2ce4e7f6a0194c8428882216ad30821eb9e8eb8b Mon Sep 17 00:00:00 2001 From: Viktoria Pundy Date: Thu, 31 May 2018 09:24:48 +0200 Subject: Added fxml and controller for archived operations [#27299] Created fxml-file for archived operations. Additionally, a controller was created to fill the pane with information about an archived Operation. Furthermore, the already existing controller archiveOperationController was adjusted to created these panes according to the existing archived operations. --- .../controller/ArchiveOperationController.java | 55 +++++++++++++++--- .../controller/OperationInArchiveController.java | 65 ++++++++++++++++++++++ src/main/resources/fxml/ArchiveOperation.fxml | 8 +-- src/main/resources/fxml/OperationInArchive.fxml | 60 ++++++++++++++++++++ 4 files changed, 176 insertions(+), 12 deletions(-) create mode 100644 src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/OperationInArchiveController.java create mode 100644 src/main/resources/fxml/OperationInArchive.fxml (limited to 'src') 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 0b7ec40..9c372fe 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,12 +5,14 @@ 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 java.io.IOException; import java.time.LocalDateTime; import java.time.ZoneOffset; import java.util.Collection; import java.util.EnumSet; -import java.util.LinkedList; +import java.util.HashSet; import java.util.Objects; +import java.util.Set; import java.util.stream.Collectors; import javafx.fxml.FXML; import javafx.scene.control.Alert; @@ -25,8 +27,9 @@ import org.springframework.stereotype.Controller; @Controller public class ArchiveOperationController { + @FXML private AnchorPane backApMain; + @FXML private AnchorPane backApDetails; @FXML private AnchorPane archiveOperationAP; - @FXML private AnchorPane apHeader; @FXML private AnchorPane apDetails; @FXML private Label lblCodeHeader; @FXML private Hyperlink hypBack; @@ -38,7 +41,7 @@ public class ArchiveOperationController { private final OperationService operationService; @FXML private FlowPane archiveOperationFlowPane; private final CreateOperationController createOperationController; - private LinkedList list = new LinkedList<>(); + private Set list = new HashSet<>(); public ArchiveOperationController( OperationService operationService, @@ -58,19 +61,50 @@ public class ArchiveOperationController { alert.setContentText("Die Einsätze konnten nicht geladen werden!"); alert.showAndWait(); } - for (Operation operation : list) { + setFlowPane(); + + /*for (Operation operation : list) { Button b = new Button(); b.setPrefHeight(200); b.setPrefWidth(750 / 2); b.setText(operation.opCode()); b.setOnAction(event -> buttonClicked(b)); archiveOperationFlowPane.getChildren().add(b); + }*/ + } + + private void setFlowPane() { + try { + archiveOperationFlowPane.getChildren().clear(); + Set operations = list; + for (Operation operation : operations) { + OperationInArchiveController opInAController = + OperationInArchiveController.create(); + opInAController.set(operation); + opInAController + .getRoot() + .setOnMouseClicked( + event -> { + detailOperation = operation; + backApMain.setVisible(false); + backApDetails.setVisible(true); + setOperation(); + setDetailsVisible(true); + }); + archiveOperationFlowPane.getChildren().add(opInAController.getRoot()); + } + } catch (IOException e) { + Alert alert = new Alert(Alert.AlertType.ERROR); + alert.setTitle("Fehler"); + alert.setHeaderText("Fehler!"); + alert.setContentText("Das Element konnte nicht geladen werden!"); + alert.showAndWait(); } } private Operation detailOperation; - private void buttonClicked(Button button) { + /*private void buttonClicked(Button button) { int size = archiveOperationFlowPane.getChildren().size(); int index = 0; for (int i = 0; i < size; i++) { @@ -80,10 +114,12 @@ public class ArchiveOperationController { } } detailOperation = list.get(index); - apHeader.setVisible(false); + backApMain.setVisible(false); + backApDetails.setVisible(true); + //apHeader.setVisible(false); setOperation(); setDetailsVisible(true); - } + }*/ private void setOperation() { lblCodeHeader.setText(detailOperation.opCode()); @@ -131,7 +167,9 @@ public class ArchiveOperationController { public void backClicked() { fpVehicles.getChildren().clear(); setDetailsVisible(false); - apHeader.setVisible(true); + // apHeader.setVisible(true); + backApDetails.setVisible(false); + backApMain.setVisible(true); } public void backToMain() { @@ -141,5 +179,6 @@ public class ArchiveOperationController { public void setVisible(boolean b) { archiveOperationAP.setVisible(b); + backApMain.setVisible(b); } } diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/OperationInArchiveController.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/OperationInArchiveController.java new file mode 100644 index 0000000..935b2fe --- /dev/null +++ b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/OperationInArchiveController.java @@ -0,0 +1,65 @@ +package at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.controller; + +import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Operation; +import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Vehicle; +import java.io.IOException; +import java.time.LocalDateTime; +import java.time.ZoneOffset; +import java.util.Collection; +import java.util.Objects; +import java.util.stream.Collectors; +import javafx.fxml.FXML; +import javafx.fxml.FXMLLoader; +import javafx.scene.Node; +import javafx.scene.text.Text; + +public class OperationInArchiveController { + + @FXML private Text txtAddress; + @FXML private Text txtVehicles; + @FXML private Text txtDate; + @FXML private Text txtOpCode; + + public static OperationInArchiveController create() throws IOException { + FXMLLoader fxmlLoader = + new FXMLLoader( + OperationInArchiveController.class.getResource( + "/fxml/OperationInArchive.fxml")); + Node root = fxmlLoader.load(); + OperationInArchiveController result = fxmlLoader.getController(); + result.rootElement = root; + + return result; + } + + public Node getRoot() { + return rootElement; + } + + private Node rootElement; + + 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 elements = + operation.vehicles().stream().map(Vehicle::name).collect(Collectors.toList()); + String result = String.join(", ", elements); + + txtVehicles.setText(result); + } +} diff --git a/src/main/resources/fxml/ArchiveOperation.fxml b/src/main/resources/fxml/ArchiveOperation.fxml index 8598350..21662fd 100644 --- a/src/main/resources/fxml/ArchiveOperation.fxml +++ b/src/main/resources/fxml/ArchiveOperation.fxml @@ -9,14 +9,14 @@ - + - + - + - + diff --git a/src/main/resources/fxml/OperationInArchive.fxml b/src/main/resources/fxml/OperationInArchive.fxml new file mode 100644 index 0000000..43ac14b --- /dev/null +++ b/src/main/resources/fxml/OperationInArchive.fxml @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- cgit v1.2.3-70-g09d2