aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDominic Rogetzer <e1627756@student.tuwien.ac.at>2018-05-01 16:40:51 +0200
committerDominic Rogetzer <e01627756@student.tuwien.ac.at>2018-05-03 22:48:30 +0200
commit66c5c9f03a80d699584e1c8b0619a5f98a92e4bd (patch)
treec0a87f58c52eb11ddaf35fc6d4b7df0437128c1d /src
parent58af7e0158b2d7c160cd76d279411c90f124295c (diff)
downloadsepm-groupproject-66c5c9f03a80d699584e1c8b0619a5f98a92e4bd.tar.gz
sepm-groupproject-66c5c9f03a80d699584e1c8b0619a5f98a92e4bd.tar.xz
sepm-groupproject-66c5c9f03a80d699584e1c8b0619a5f98a92e4bd.zip
implement CreateNewEmployeeController.onCreateClicked
Diffstat (limited to 'src')
-rw-r--r--src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/CreateNewEmployeeController.java55
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());
}
}