summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDominic Rogetzer <e1627756@student.tuwien.ac.at>2018-05-18 20:58:07 +0200
committerTharre <tharre3@gmail.com>2018-05-22 17:05:32 +0200
commit99bc7b95780ee8394da295e66ece26464ed57c8c (patch)
tree1062239a8528c46b37300975c295b81ea9e42bce /src
parent54d4b40e18efbfd2038fa47f0b79898119b4fcbe (diff)
downloadsepm-groupproject-99bc7b95780ee8394da295e66ece26464ed57c8c.tar.gz
sepm-groupproject-99bc7b95780ee8394da295e66ece26464ed57c8c.tar.xz
sepm-groupproject-99bc7b95780ee8394da295e66ece26464ed57c8c.zip
Modify CreateNewEmployeeController to be able to edit employee [#25950]
Diffstat (limited to 'src')
-rw-r--r--src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/CreateNewEmployeeController.java58
-rw-r--r--src/main/resources/fxml/createNewEmployee.fxml5
2 files changed, 54 insertions, 9 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 d81f6d7..86a1014 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
@@ -5,19 +5,23 @@ import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Employee.Ed
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.Hyperlink;
+import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.stage.Stage;
import org.slf4j.Logger;
@@ -30,12 +34,16 @@ 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 Hyperlink btnCancel;
- @FXML private Button btnCreate;
@FXML private TextField inputName;
@FXML private ChoiceBox<String> inputQualification;
+ @FXML private Button btnCreate;
+
+ private Node rootElement;
+ private Employee employee;
+ private boolean isEdit;
public CreateNewEmployeeController(EmployeeService employeeService) {
this.employeeService = employeeService;
@@ -66,8 +74,8 @@ public class CreateNewEmployeeController {
@FXML
public void onCreateClicked() {
- Employee employee =
- Employee.builder()
+ employee =
+ employee.toBuilder()
.name(inputName.getText())
.educationLevel(parseEducationLevel())
.birthday(LocalDate.MIN) // TODO: change UI to include birthday field
@@ -76,7 +84,11 @@ public class CreateNewEmployeeController {
.build();
try {
- employeeService.add(employee);
+ if (isEdit) {
+ employeeService.update(employee);
+ } else {
+ employeeService.add(employee);
+ }
} catch (InvalidEmployeeException e) {
LOG.error("Invalid Employee: {}", e);
@@ -114,4 +126,38 @@ public class CreateNewEmployeeController {
}
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;
+ }
}
diff --git a/src/main/resources/fxml/createNewEmployee.fxml b/src/main/resources/fxml/createNewEmployee.fxml
index 5fa1ca9..4848c09 100644
--- a/src/main/resources/fxml/createNewEmployee.fxml
+++ b/src/main/resources/fxml/createNewEmployee.fxml
@@ -8,10 +8,9 @@
<?import javafx.scene.control.TextField?>
<?import javafx.scene.layout.AnchorPane?>
-
-<AnchorPane prefHeight="114.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/9.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.controller.CreateNewEmployeeController">
+<AnchorPane prefHeight="96.0" prefWidth="740.0" xmlns="http://javafx.com/javafx/9.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.controller.CreateNewEmployeeController">
<children>
- <Label layoutX="14.0" layoutY="14.0" text="Neue Person erstellen" />
+ <Label fx:id="lblHeader" layoutX="14.0" layoutY="14.0" text="Neue Person erstellen" />
<Label layoutX="14.0" layoutY="38.0" text="Name" />
<Label layoutX="206.0" layoutY="38.0" text="Qualifikation" />
<CheckBox fx:id="inputIsDriver" layoutX="343.0" layoutY="37.0" mnemonicParsing="false" text="Fahrer" />