From 9c60ec80f47fa87d4f339d97c21eb1724b66d5c7 Mon Sep 17 00:00:00 2001
From: Tharre <tharre3@gmail.com>
Date: Thu, 24 May 2018 14:58:26 +0200
Subject: Use rankVehicles() in ui instead of list #25963

---
 .../userInterface/CreateOperationController.java   | 24 ++++++++++++++++++----
 1 file changed, 20 insertions(+), 4 deletions(-)

(limited to 'src/main')

diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/userInterface/CreateOperationController.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/userInterface/CreateOperationController.java
index ef890e0..5222712 100644
--- a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/userInterface/CreateOperationController.java
+++ b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/userInterface/CreateOperationController.java
@@ -35,6 +35,8 @@ import javafx.scene.control.ListCell;
 import javafx.scene.control.ListView;
 import javafx.scene.control.MenuItem;
 import javafx.scene.control.TextField;
+import javafx.scene.input.KeyCode;
+import javafx.scene.input.KeyEvent;
 import javafx.scene.input.MouseButton;
 import javafx.scene.layout.AnchorPane;
 import javafx.scene.layout.FlowPane;
@@ -106,9 +108,16 @@ public class CreateOperationController {
     public void updateList() {
         try {
             fpVehicles.getChildren().clear();
-            EnumSet<Vehicle.Status> stati = EnumSet.allOf(Vehicle.Status.class);
-            stati.remove(Vehicle.Status.ABGEMELDET);
-            Set<Vehicle> vehicles = vehicleService.list(stati);
+
+            // TODO: this should probably be handled differently
+            Set<Vehicle> vehicles;
+            if (txtCode.getText().isEmpty()) {
+                vehicles =
+                        vehicleService.list(
+                                EnumSet.complementOf(EnumSet.of(Vehicle.Status.ABGEMELDET)));
+            } else {
+                vehicles = operationService.rankVehicles(txtCode.getText());
+            }
 
             for (Vehicle vehicle : vehicles) {
                 VehiclePaneController controller = VehiclePaneController.createVehiclePane();
@@ -152,7 +161,7 @@ public class CreateOperationController {
 
                 fpVehicles.getChildren().add(controller.getRootElement());
             }
-        } catch (ServiceException | IOException e) {
+        } catch (ServiceException | IOException | InvalidOperationException e) {
             LOG.error("Error while updating list.", e);
 
             Alert alert = new Alert(Alert.AlertType.ERROR);
@@ -344,4 +353,11 @@ public class CreateOperationController {
         operationDetailsController.initOperation(operation);
         this.setVisible(false);
     }
+
+    @FXML
+    public void onOperationCodeChanged(KeyEvent keyEvent) {
+        if (keyEvent.getCode() == KeyCode.ENTER) {
+            updateList();
+        }
+    }
 }
-- 
cgit v1.2.3-70-g09d2