aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/CreateNewEmployeeController.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/CreateNewEmployeeController.java')
-rw-r--r--src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/CreateNewEmployeeController.java189
1 files changed, 0 insertions, 189 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
deleted file mode 100644
index 15282cc..0000000
--- a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/CreateNewEmployeeController.java
+++ /dev/null
@@ -1,189 +0,0 @@
-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.ServiceException;
-import at.ac.tuwien.sepm.assignment.groupphase.util.SpringFXMLLoader;
-import at.ac.tuwien.sepm.assignment.groupphase.util.SpringFXMLLoader.FXMLWrapper;
-import java.io.IOException;
-import java.lang.invoke.MethodHandles;
-import java.time.LocalDate;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-import javafx.collections.FXCollections;
-import javafx.fxml.FXML;
-import javafx.scene.Node;
-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.Label;
-import javafx.scene.control.TextField;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.context.annotation.Scope;
-import org.springframework.stereotype.Controller;
-
-@Controller
-@Scope("prototype")
-public class CreateNewEmployeeController {
-
- private static final Logger LOG = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
- private final EmployeeService employeeService;
-
- @FXML private Label lblHeader;
- @FXML private CheckBox inputIsDriver;
- @FXML private CheckBox inputIsPilot;
- @FXML private TextField inputName;
- @FXML private ChoiceBox<String> inputQualification;
- @FXML private Button btnCreate;
-
- private Node rootElement;
- private Employee employee;
- private boolean isEdit;
-
- private Runnable consumerCancelClicked;
- private Runnable consumerCreateClicked;
-
- public CreateNewEmployeeController(EmployeeService employeeService) {
- this.employeeService = employeeService;
- }
-
- @FXML
- private void initialize() {
- inputQualification.setItems(
- FXCollections.observableArrayList(
- Stream.of(
- EducationLevel.RS,
- EducationLevel.NFS,
- EducationLevel.NKV,
- EducationLevel.NKA,
- EducationLevel.NKI,
- EducationLevel.NA)
- .map(Enum::toString)
- .collect(Collectors.toList())));
-
- inputQualification.setValue(EducationLevel.RS.toString());
- employee =
- Employee.builder()
- .name("")
- .educationLevel(EducationLevel.RS)
- .isDriver(false)
- .isPilot(false)
- .birthday(LocalDate.MIN)
- .build();
- }
-
- @FXML
- private void onCancelClicked() {
- if (consumerCancelClicked != null) {
- consumerCancelClicked.run();
- }
- }
-
- @FXML
- private void onCreateClicked() {
-
- employee =
- employee.toBuilder()
- .name(inputName.getText())
- .educationLevel(parseEducationLevel())
- .birthday(LocalDate.MIN) // TODO: change UI to include birthday field
- .isDriver(inputIsDriver.isSelected())
- .isPilot(inputIsPilot.isSelected())
- .build();
-
- try {
- if (isEdit) {
- employeeService.update(employee);
- } else {
- employeeService.add(employee);
- }
- } catch (InvalidEmployeeException e) {
- LOG.error("Invalid Employee: {}", e);
-
- showModalDialogWithOkButton(
- AlertType.ERROR,
- "Ungültige Eingabe",
- "Mindestens eines der Eingabefelder haben einen ungültigen Wert!");
- return;
- } catch (ServiceException e) {
- LOG.error("Employee could not be saved: {}", e);
-
- showModalDialogWithOkButton(
- AlertType.ERROR,
- "Speicherfehler",
- "Der Eintrag konnte nicht gespeichert werden. Bitte versuchen Sie es erneut.");
- return;
- }
-
- showModalDialogWithOkButton(
- AlertType.INFORMATION,
- "Erfolgreich angelegt",
- "Mitarbeiter wurde erfolgreich angelegt und gespeichert!");
-
- if (consumerCreateClicked != null) {
- consumerCreateClicked.run();
- }
- }
-
- private void showModalDialogWithOkButton(
- AlertType alertType, String headerText, String contentText) {
- Alert alert = new Alert(alertType, contentText, ButtonType.OK);
- alert.setHeaderText(headerText);
- alert.showAndWait();
- }
-
- private EducationLevel parseEducationLevel() {
- if (inputQualification.getSelectionModel().getSelectedItem() == null) {
- return EducationLevel.RS;
- }
- return EducationLevel.valueOf(inputQualification.getSelectionModel().getSelectedItem());
- }
-
- private void setData(Employee employee) {
- isEdit = true;
- this.employee = employee;
- inputName.setText(employee.name());
- inputQualification.setValue(employee.educationLevel().name());
- inputIsDriver.setSelected(employee.isDriver());
- inputIsPilot.setSelected(employee.isPilot());
-
- lblHeader.setText("Person bearbeiten");
- btnCreate.setText("Speichern");
- }
-
- public static CreateNewEmployeeController createCreateNewEmployeeController(
- SpringFXMLLoader fxmlLoader, Employee employee) throws IOException {
- CreateNewEmployeeController controller = createCreateNewEmployeeController(fxmlLoader);
- controller.setData(employee);
- return controller;
- }
-
- public static CreateNewEmployeeController createCreateNewEmployeeController(
- SpringFXMLLoader fxmlLoader) throws IOException {
- FXMLWrapper<Object, CreateNewEmployeeController> wrapper =
- fxmlLoader.loadAndWrap(
- "/fxml/createNewEmployee.fxml", CreateNewEmployeeController.class);
- Node root = (Node) wrapper.getLoadedObject();
- CreateNewEmployeeController controller = wrapper.getController();
- controller.rootElement = root;
- return controller;
- }
-
- public Node getRootElement() {
- return rootElement;
- }
-
- public void setConsumerCancelClicked(Runnable consumerCancelClicked) {
- this.consumerCancelClicked = consumerCancelClicked;
- }
-
- public void setConsumerCreateClicked(Runnable consumerCreateClicked) {
- this.consumerCreateClicked = consumerCreateClicked;
- }
-}