From b9aadec691affd632c8d83e30293964cc1bb05bb Mon Sep 17 00:00:00 2001
From: Andreas Weninger <e01526989@student.tuwien.ac.at>
Date: Mon, 7 May 2018 17:53:59 +0200
Subject: Reformat. Implemented find maximum education in
 VehiclePaneController; relies on EducationLevel.Compare.

---
 .../ui/vehiclePane/VehiclePaneController.java      | 69 ------------------
 .../ui/vehiclepane/VehiclePaneController.java      | 84 ++++++++++++++++++++++
 2 files changed, 84 insertions(+), 69 deletions(-)
 delete mode 100644 src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/ui/vehiclePane/VehiclePaneController.java
 create mode 100644 src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/ui/vehiclepane/VehiclePaneController.java

(limited to 'src/main/java')

diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/ui/vehiclePane/VehiclePaneController.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/ui/vehiclePane/VehiclePaneController.java
deleted file mode 100644
index 2b0df13..0000000
--- a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/ui/vehiclePane/VehiclePaneController.java
+++ /dev/null
@@ -1,69 +0,0 @@
-package at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.ui.vehiclePane;
-
-import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Vehicle;
-import java.io.IOException;
-import javafx.fxml.FXML;
-import javafx.fxml.FXMLLoader;
-import javafx.scene.Node;
-import javafx.scene.image.Image;
-import javafx.scene.image.ImageView;
-import javafx.scene.text.Text;
-
-public class VehiclePaneController {
-    @FXML private Text txtType;
-    @FXML private Text txtNumber;
-    @FXML private ImageView ivNEF;
-    @FXML private Text txtNEF;
-    @FXML private ImageView ivQualification;
-    @FXML private Text txtQualification;
-    @FXML private Text txtRooftype;
-
-    public static VehiclePaneController createVehiclePane() throws IOException {
-        FXMLLoader fxmlLoader =
-                new FXMLLoader(VehiclePaneController.class.getResource("/fxml/vehiclePane.fxml"));
-        Node root = fxmlLoader.load();
-        VehiclePaneController result = fxmlLoader.getController();
-        result.rootElement = root;
-
-        return result;
-    }
-
-    private Node rootElement;
-
-    public Node getRootElement() {
-        return rootElement;
-    }
-
-    /**
-     * * Set the displayed data of this VehiclePane.
-     *
-     * @param vehicle The data to display.
-     * @param showQualification If true, the most recent registration of vehicle will be searched
-     *     for the highest qualification.
-     */
-    public void setData(Vehicle vehicle, boolean showQualification) {
-        txtType.setText(vehicle.type().name());
-        String constrType = vehicle.constructionType().name();
-        txtRooftype.setText(
-                constrType.substring(0, 1).toUpperCase() + constrType.substring(1).toLowerCase());
-        txtNumber.setText("" + vehicle.id());
-        if (vehicle.hasNef()) {
-            ivNEF.setImage(new Image("../images/NEF.png"));
-            txtNEF.setText("hat NEF-Halterung");
-        } else {
-            ivNEF.setImage(new Image("../images/NotNEF.png"));
-            txtNEF.setText("keine NEF-Halterung");
-        }
-        if (showQualification)
-        {
-            //TODO
-        }
-        else
-        {
-            txtQualification.setVisible(false);
-            txtQualification.setManaged(false);
-            ivQualification.setVisible(false);
-            ivQualification.setManaged(false);
-        }
-    }
-}
diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/ui/vehiclepane/VehiclePaneController.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/ui/vehiclepane/VehiclePaneController.java
new file mode 100644
index 0000000..2db6f37
--- /dev/null
+++ b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/ui/vehiclepane/VehiclePaneController.java
@@ -0,0 +1,84 @@
+package at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.ui.vehiclepane;
+
+import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Employee.EducationLevel;
+import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Registration;
+import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Vehicle;
+import java.io.IOException;
+import java.time.Instant;
+import java.util.Date;
+import java.util.List;
+import java.util.Optional;
+import javafx.fxml.FXML;
+import javafx.fxml.FXMLLoader;
+import javafx.scene.Node;
+import javafx.scene.image.Image;
+import javafx.scene.image.ImageView;
+import javafx.scene.text.Text;
+
+public class VehiclePaneController {
+    @FXML private Text txtType;
+    @FXML private Text txtNumber;
+    @FXML private ImageView ivNEF;
+    @FXML private Text txtNEF;
+    @FXML private ImageView ivQualification;
+    @FXML private Text txtQualification;
+    @FXML private Text txtRooftype;
+
+    public static VehiclePaneController createVehiclePane() throws IOException {
+        FXMLLoader fxmlLoader =
+                new FXMLLoader(VehiclePaneController.class.getResource("/fxml/vehiclePane.fxml"));
+        Node root = fxmlLoader.load();
+        VehiclePaneController result = fxmlLoader.getController();
+        result.rootElement = root;
+
+        return result;
+    }
+
+    private Node rootElement;
+
+    public Node getRootElement() {
+        return rootElement;
+    }
+
+    /**
+     * * Set the displayed data of this VehiclePane.
+     *
+     * @param vehicle The data to display.
+     * @param showQualification If true, the most recent registration of vehicle will be searched
+     *     for the highest qualification.
+     */
+    public void setData(Vehicle vehicle, boolean showQualification) {
+        txtType.setText(vehicle.type().name());
+        String constrType = vehicle.constructionType().name();
+        txtRooftype.setText(
+                constrType.substring(0, 1).toUpperCase() + constrType.substring(1).toLowerCase());
+        txtNumber.setText("" + vehicle.id());
+        if (vehicle.hasNef()) {
+            ivNEF.setImage(new Image("../images/NEF.png"));
+            txtNEF.setText("hat NEF-Halterung");
+        } else {
+            ivNEF.setImage(new Image("../images/NotNEF.png"));
+            txtNEF.setText("keine NEF-Halterung");
+        }
+        if (showQualification) {
+
+            Instant now = (new Date()).toInstant();
+            List<Registration> regs = vehicle.registrations();
+
+            assert regs != null;
+            Optional<EducationLevel> edu =
+                    regs.stream()
+                            .filter(reg -> reg.start().isBefore(now) && reg.end().isAfter(now))
+                            .map(reg -> reg.employee().educationLevel())
+                            .max(EducationLevel::compareTo);
+
+            assert edu.isPresent();
+            txtQualification.setText(edu.get().name());
+        } else {
+            txtQualification.setVisible(false);
+            txtQualification.setManaged(false);
+            ivQualification.setVisible(false);
+            ivQualification.setManaged(false);
+        }
+    }
+}
-- 
cgit v1.2.3-70-g09d2