diff options
| author | Dominic Rogetzer <e1627756@student.tuwien.ac.at> | 2018-05-18 20:58:07 +0200 | 
|---|---|---|
| committer | Tharre <tharre3@gmail.com> | 2018-05-22 17:05:32 +0200 | 
| commit | 99bc7b95780ee8394da295e66ece26464ed57c8c (patch) | |
| tree | 1062239a8528c46b37300975c295b81ea9e42bce /src/main/java/at/ac/tuwien | |
| parent | 54d4b40e18efbfd2038fa47f0b79898119b4fcbe (diff) | |
| download | sepm-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/main/java/at/ac/tuwien')
| -rw-r--r-- | src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/CreateNewEmployeeController.java | 58 | 
1 files changed, 52 insertions, 6 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; +    }  }  | 
