diff options
author | Dominic Rogetzer <e1627756@student.tuwien.ac.at> | 2018-05-01 16:40:51 +0200 |
---|---|---|
committer | Dominic Rogetzer <e01627756@student.tuwien.ac.at> | 2018-05-03 22:48:30 +0200 |
commit | 66c5c9f03a80d699584e1c8b0619a5f98a92e4bd (patch) | |
tree | c0a87f58c52eb11ddaf35fc6d4b7df0437128c1d | |
parent | 58af7e0158b2d7c160cd76d279411c90f124295c (diff) | |
download | sepm-groupproject-66c5c9f03a80d699584e1c8b0619a5f98a92e4bd.tar.gz sepm-groupproject-66c5c9f03a80d699584e1c8b0619a5f98a92e4bd.tar.xz sepm-groupproject-66c5c9f03a80d699584e1c8b0619a5f98a92e4bd.zip |
implement CreateNewEmployeeController.onCreateClicked
-rw-r--r-- | src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/CreateNewEmployeeController.java | 55 |
1 files changed, 54 insertions, 1 deletions
diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/CreateNewEmployeeController.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/CreateNewEmployeeController.java index eaf016c..86b3139 100644 --- a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/CreateNewEmployeeController.java +++ b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/CreateNewEmployeeController.java @@ -1,14 +1,31 @@ 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.Employee.EducationLevel; +import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.service.EmployeeService; +import at.ac.tuwien.sepm.assignment.groupphase.exception.InvalidEmployeeException; +import at.ac.tuwien.sepm.assignment.groupphase.exception.PersistenceException; +import java.lang.invoke.MethodHandles; +import java.time.LocalDate; 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.scene.control.Hyperlink; import javafx.scene.control.TextField; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Controller; +@Controller public class CreateNewEmployeeController { + private static final Logger LOG = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass()); + private final EmployeeService employeeService; + @FXML private CheckBox inputIsDriver; @FXML private CheckBox inputIsPilot; @FXML private Hyperlink btnCancel; @@ -16,6 +33,10 @@ public class CreateNewEmployeeController { @FXML private TextField inputName; @FXML private ChoiceBox inputQualification; + public CreateNewEmployeeController(EmployeeService employeeService) { + this.employeeService = employeeService; + } + @FXML public void onCancelClicked() { throw new UnsupportedOperationException(); @@ -23,6 +44,38 @@ public class CreateNewEmployeeController { @FXML public void onCreateClicked() { - throw new UnsupportedOperationException(); + + Employee employee = + Employee.builder() + .name(inputName.getText()) + .educationLevel(parseEducationLevel()) + .birthday(LocalDate.MIN) // TODO: change UI to include birthday field + .isDriver(inputIsDriver.isSelected()) + .isPilot(inputIsPilot.isSelected()) + .build(); + + try { + employeeService.add(employee); + } catch (InvalidEmployeeException e) { + LOG.error("Invalid Employee: {}", e); + new Alert(AlertType.ERROR, "Ungültige Eingabe", ButtonType.OK).showAndWait(); + return; + } catch (PersistenceException e) { + LOG.error("Employee could not be saved: {}", e); + new Alert(AlertType.ERROR, "Konnte nicht gespeichert werden", ButtonType.OK) + .showAndWait(); + return; + } + + new Alert(AlertType.INFORMATION, "Mitarbeiter wurde erfolgreich angelegt.", ButtonType.OK) + .showAndWait(); + } + + private EducationLevel parseEducationLevel() { + if (inputQualification.getSelectionModel().getSelectedItem() == null) { + return EducationLevel.RS; + } + return EducationLevel.valueOf( + inputQualification.getSelectionModel().getSelectedItem().toString()); } } |