aboutsummaryrefslogtreecommitdiffstats
path: root/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/ArchiveOperationController.java33
-rw-r--r--src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/DetailArchiveOperationController.java106
-rw-r--r--src/main/resources/fxml/ArchiveOperation.fxml2
-rw-r--r--src/main/resources/fxml/DetailArchiveOperation.fxml17
4 files changed, 154 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);
+ }*/
+}
diff --git a/src/main/resources/fxml/ArchiveOperation.fxml b/src/main/resources/fxml/ArchiveOperation.fxml
index 0e4e3d7..13dbd12 100644
--- a/src/main/resources/fxml/ArchiveOperation.fxml
+++ b/src/main/resources/fxml/ArchiveOperation.fxml
@@ -4,6 +4,7 @@
<?import javafx.scene.control.Hyperlink?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.ScrollPane?>
+<?import javafx.scene.image.ImageView?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.ColumnConstraints?>
<?import javafx.scene.layout.FlowPane?>
@@ -63,6 +64,7 @@
<Font name="System Bold" size="18.0" />
</font>
</Label>
+ <ImageView fx:id="imvVehicleDetail" fitHeight="34.0" fitWidth="34.0" layoutX="14.0" layoutY="97.0" pickOnBounds="true" preserveRatio="true" />
</children>
</AnchorPane>
<ScrollPane fitToWidth="true" prefHeight="410.0" prefWidth="840.0" AnchorPane.leftAnchor="82.0" AnchorPane.topAnchor="225.0">
diff --git a/src/main/resources/fxml/DetailArchiveOperation.fxml b/src/main/resources/fxml/DetailArchiveOperation.fxml
new file mode 100644
index 0000000..29bdeb7
--- /dev/null
+++ b/src/main/resources/fxml/DetailArchiveOperation.fxml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?import javafx.scene.layout.AnchorPane?>
+<?import javafx.scene.layout.HBox?>
+<?import javafx.scene.layout.VBox?>
+
+
+<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" fx:controller="at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.controller.DetailArchiveOperationController" minWidth="-Infinity" xmlns="http://javafx.com/javafx/9.0.1" xmlns:fx="http://javafx.com/fxml/1">
+ <children>
+ <HBox prefHeight="100.0" prefWidth="200.0">
+ <children>
+ <VBox fx:id="vBoxVehicle" prefHeight="200.0" prefWidth="100.0" />
+ <VBox fx:id="vBoxPeople" prefHeight="200.0" prefWidth="100.0" />
+ </children>
+ </HBox>
+ </children>
+</AnchorPane>