From 6ed3cc3af92d64bc83af1d16b3c5c5ccd6bcb287 Mon Sep 17 00:00:00 2001
From: Martin Weick <e1627760@student.tuwien.ac.at>
Date: Fri, 4 May 2018 09:17:00 +0200
Subject: Dummie UI

---
 .../uiController/CreateCarController.java          | 108 +++++++++++++++++++++
 1 file changed, 108 insertions(+)
 create mode 100644 src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/uiController/CreateCarController.java

(limited to 'src/main/java/at')

diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/uiController/CreateCarController.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/uiController/CreateCarController.java
new file mode 100644
index 0000000..dcf6ff7
--- /dev/null
+++ b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/uiController/CreateCarController.java
@@ -0,0 +1,108 @@
+package at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.uiController;
+
+
+import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Vehicle;
+import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Vehicle.ConstructionType;
+import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Vehicle.VehicleType;
+import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.service.VehicleService;
+import at.ac.tuwien.sepm.assignment.groupphase.exception.InvalidVehicleException;
+import at.ac.tuwien.sepm.assignment.groupphase.exception.ServiceException;
+import java.lang.invoke.MethodHandles;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+import javafx.collections.FXCollections;
+import javafx.event.ActionEvent;
+import javafx.fxml.FXML;
+import javafx.scene.control.Alert;
+import javafx.scene.control.Alert.AlertType;
+import javafx.scene.control.Button;
+import javafx.scene.control.ButtonType;
+import javafx.scene.control.CheckBox;
+import javafx.scene.control.ChoiceBox;
+import javafx.stage.Stage;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Controller;
+
+@Controller
+public class CreateCarController {
+
+    @FXML private ChoiceBox cmb_Ctyp;
+    @FXML private ChoiceBox cmb_typ;
+    @FXML private Button btn_cancel;
+    @FXML private CheckBox cbx_NEF;
+
+    private static final Logger LOG = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
+    private final VehicleService vehicleService;
+
+    public CreateCarController(VehicleService vehicleService) {
+        this.vehicleService = vehicleService;
+    }
+    @FXML
+    public void initialize() {
+        cmb_Ctyp.setItems(
+                FXCollections.observableArrayList(
+                        Stream.of(
+                                ConstructionType.NORMAL,
+                                ConstructionType.MITTELHOCHDACH,
+                                ConstructionType.HOCHDACH)
+                                .map(Enum::toString)
+                                .collect(Collectors.toList())));
+        cmb_Ctyp.setValue(ConstructionType.NORMAL.toString());
+        cmb_typ.setItems(
+                FXCollections.observableArrayList(
+                        Stream.of(
+                                VehicleType.BKTW,
+                                VehicleType.KTW_B,
+                                VehicleType.KTW,
+                                VehicleType.RTW,
+                                VehicleType.NEF,
+                                VehicleType.NAH)
+                                .map(Enum::toString)
+                        .collect(Collectors.toList())));
+        cmb_typ.setValue(VehicleType.BKTW.toString());
+    }
+
+    @FXML
+    public void onCancelClicked() {
+        ((Stage) btn_cancel.getScene().getWindow()).close();
+    }
+    @FXML
+    public void createCar(ActionEvent actionEvent) {
+        Vehicle vehicle =
+                Vehicle.builder()
+                .constructionType(parseConstructionType())
+                .type(parseType())
+                .hasNef(cbx_NEF.isSelected())
+                .build();
+        try {
+            vehicleService.add(vehicle);
+        } catch (InvalidVehicleException e) {
+            LOG.error("Invalid Vehicle: {}", e);
+            createComplete(AlertType.ERROR,"Ungültige Eingabe",e.getMessage());
+            return;
+        } catch (ServiceException e) {
+            LOG.error("Exception: {}", e);
+            createComplete(AlertType.ERROR,"Ungültige Eingabe",e.getMessage());
+            return;
+        }
+        createComplete(AlertType.CONFIRMATION,"Speichern Erfolgreich","Auto wurde erfolgreich angelegt");
+    }
+    private ConstructionType parseConstructionType(){
+        if(cmb_Ctyp.getSelectionModel().getSelectedItem()==null){
+            return ConstructionType.NORMAL;
+        }
+        return ConstructionType.valueOf(cmb_Ctyp.getSelectionModel().getSelectedItem().toString());
+    }
+    private VehicleType parseType(){
+        if(cmb_typ.getSelectionModel().getSelectedItem()==null){
+            return VehicleType.BKTW;
+        }
+        return VehicleType.valueOf(cmb_typ.getSelectionModel().getSelectedItem().toString());
+    }
+    private void createComplete(AlertType alertType, String headerText, String contentText) {
+        Alert alert = new Alert(alertType, contentText, ButtonType.OK);
+        alert.setHeaderText(headerText);
+        alert.showAndWait();
+    }
+}
-- 
cgit v1.2.3-70-g09d2