From 00df04016586450a2c5f49f13f565feadb20130d Mon Sep 17 00:00:00 2001 From: Viktoria Pundy Date: Wed, 16 May 2018 18:23:26 +0200 Subject: Added Details for Archive Operation [#24990] Added fxml-file for details of one operation as well as methods to fill in data and show Data in UI --- .../userInterface/ArchivOperationController.java | 97 ++++++++++++++++++---- src/main/resources/fxml/ArchivOperation.fxml | 49 +++++++++++ 2 files changed, 132 insertions(+), 14 deletions(-) (limited to 'src') diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/userInterface/ArchivOperationController.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/userInterface/ArchivOperationController.java index 76e551a..5136090 100644 --- a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/userInterface/ArchivOperationController.java +++ b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/userInterface/ArchivOperationController.java @@ -4,21 +4,33 @@ import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Operation; import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Operation.Status; import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.service.OperationService; import at.ac.tuwien.sepm.assignment.groupphase.exception.ServiceException; +import java.time.LocalDateTime; +import java.time.ZoneOffset; import java.util.EnumSet; import java.util.LinkedList; -import java.util.List; -import javafx.fxml.FXML; import javafx.scene.control.Alert; import javafx.scene.control.Alert.AlertType; import javafx.scene.control.Button; +import javafx.scene.control.Hyperlink; +import javafx.scene.control.Label; +import javafx.scene.layout.AnchorPane; import javafx.scene.layout.FlowPane; import org.springframework.stereotype.Controller; @Controller public class ArchivOperationController { + + public AnchorPane apDetails; + public Label lblCodeHeader; + public Hyperlink hypBack; + public Label lblOpCode; + public Label lblVehicles; + public Label lblDate; + public Label lblAddress; OperationService operationService; public FlowPane archiveOperationFlowPane; public CreateOperationController createOperationController; + LinkedList list = new LinkedList<>(); public ArchivOperationController() {} @@ -29,19 +41,7 @@ public class ArchivOperationController { this.createOperationController = createOperationController; } - @FXML - public void initialize() { - /*for (int i = 0; i < 2; i++) { - Button b = new Button(); - b.setPrefHeight(200); - b.setPrefWidth(800 / 2); - archiveOperationFlowPane.getChildren().add(b); - }*/ - } - public void fillList() { - // TODO Test - List list = new LinkedList<>(); try { list.addAll(operationService.list(EnumSet.of(Status.CANCELLED, Status.COMPLETED))); } catch (ServiceException e) { @@ -56,7 +56,76 @@ public class ArchivOperationController { b.setPrefHeight(200); b.setPrefWidth(800 / 2); b.setText(list.get(i).opCode()); + b.setOnAction(event -> buttonClicked(b)); archiveOperationFlowPane.getChildren().add(b); } } + + Operation detailOperation; + + public void buttonClicked(Button button) { + // TODO: Problem wenn identischer Code, eventuell am Index erkennen + int size = archiveOperationFlowPane.getChildren().size(); + int index = 0; + for (int i = 0; i < size; i++) { + if (archiveOperationFlowPane.getChildren().get(i) == button) { + index = i; + break; + } + } + detailOperation = list.get(index); + + /*for (int i = 0; i < list.size(); i++) { + if (list.get(i).opCode().equals(opCode)) { + detailOperation = list.get(i); + break; + } + }*/ + setOperation(); + setDetailsVisible(true); + } + + private void setOperation() { + // TODO + lblCodeHeader.setText(detailOperation.opCode()); + String date = "am "; + if (detailOperation.created() != null) { + LocalDateTime myDateTime = + LocalDateTime.ofInstant(detailOperation.created(), ZoneOffset.UTC); + date += + myDateTime.getDayOfMonth() + + "." + + myDateTime.getMonth().getValue() + + "." + + myDateTime.getYear(); + lblDate.setText(date); + } else { + lblDate.setText("---"); + } + + lblOpCode.setText(detailOperation.opCode()); + StringBuilder result = new StringBuilder(); + for (int i = 0; i < detailOperation.vehicles().size(); i++) { + if (i == detailOperation.vehicles().size() - 1) { + result.append(detailOperation.vehicles().get(i).name()); + } else { + result.append(detailOperation.vehicles().get(i).name()).append(", "); + } + } + lblVehicles.setText(result.toString()); + lblAddress.setText(detailOperation.destination()); + } + + public void setListVisible(boolean b) { + archiveOperationFlowPane.setVisible(b); + } + + public void setDetailsVisible(boolean b) { + apDetails.setVisible(b); + } + + public void backClicked() { + setDetailsVisible(false); + // setListVisible(true); + } } diff --git a/src/main/resources/fxml/ArchivOperation.fxml b/src/main/resources/fxml/ArchivOperation.fxml index 7ce19d0..991cafe 100644 --- a/src/main/resources/fxml/ArchivOperation.fxml +++ b/src/main/resources/fxml/ArchivOperation.fxml @@ -1,11 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + -- cgit v1.2.3-70-g09d2