diff options
Diffstat (limited to 'src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/RegistrationWindowController.java')
-rw-r--r-- | src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/RegistrationWindowController.java | 213 |
1 files changed, 0 insertions, 213 deletions
diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/RegistrationWindowController.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/RegistrationWindowController.java deleted file mode 100644 index 4653663..0000000 --- a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/RegistrationWindowController.java +++ /dev/null @@ -1,213 +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.Registration; -import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Vehicle; -import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Vehicle.Status; -import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.service.EmployeeService; -import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.service.RegistrationService; -import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.service.VehicleService; -import at.ac.tuwien.sepm.assignment.groupphase.exception.InvalidRegistrationException; -import at.ac.tuwien.sepm.assignment.groupphase.exception.InvalidVehicleException; -import at.ac.tuwien.sepm.assignment.groupphase.exception.ServiceException; -import java.time.LocalDate; -import java.time.LocalDateTime; -import java.time.LocalTime; -import java.time.OffsetDateTime; -import java.util.EnumSet; -import java.util.HashSet; -import java.util.LinkedList; -import java.util.List; -import java.util.Set; -import javafx.beans.property.SimpleStringProperty; -import javafx.collections.FXCollections; -import javafx.collections.ObservableList; -import javafx.fxml.FXML; -import javafx.scene.control.Alert; -import javafx.scene.control.Alert.AlertType; -import javafx.scene.control.ChoiceBox; -import javafx.scene.control.Label; -import javafx.scene.control.TableColumn; -import javafx.scene.control.TableView; -import javafx.scene.control.TextField; -import javafx.stage.Stage; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.stereotype.Controller; - -@Controller -public class RegistrationWindowController { - - private static final Logger LOG = LoggerFactory.getLogger(RegistrationWindowController.class); - - private final EmployeeService employeeService; - - private final VehicleService vehicleService; - - private final RegistrationService registrationService; - - public RegistrationWindowController( - EmployeeService employeeService, - VehicleService vehicleService, - RegistrationService registrationService) { - this.employeeService = employeeService; - this.vehicleService = vehicleService; - this.registrationService = registrationService; - } - - @FXML private ChoiceBox<Integer> cbStart; - @FXML private ChoiceBox<Integer> cbEnd; - @FXML private Label lVehicles; - @FXML private Label lEmployees; - @FXML private TextField tfVehicleSearch; - @FXML private TextField tfEmployeeSearch; - @FXML private TableView<Vehicle> tvVehicles; - @FXML private TableView<Employee> tvEmployees; - @FXML private TableColumn<Vehicle, String> tcVehicles; - @FXML private TableColumn<Employee, String> tcEmployees; - - private Vehicle chosenVehicle; - private List<Employee> chosenEmployees = new LinkedList<>(); - - @FXML - private void initialize() { - // will have to be replaced for FlowPane - try { - Set<Vehicle> vehicles = vehicleService.list(EnumSet.of(Status.ABGEMELDET)); - tcVehicles.setCellValueFactory(x -> new SimpleStringProperty(x.getValue().name())); - tvVehicles.setItems(FXCollections.observableArrayList(vehicles)); - } catch (ServiceException e) { - LOG.warn( - "Caught ServiceException while getting vehicles. Showing it to user. Error message: {}", - e.getMessage()); - Alert alert = new Alert(AlertType.ERROR); - alert.setTitle("Fahrzeuge - Fehler!"); - alert.setHeaderText("Beim Auflisten der Fahrzeug ist ein Fehler aufgetreten."); - alert.setContentText(e.getMessage()); - alert.show(); - } - try { - Set<Employee> employees = employeeService.list(); - tcEmployees.setCellValueFactory(x -> new SimpleStringProperty(x.getValue().name())); - tvEmployees.setItems(FXCollections.observableArrayList(employees)); - } catch (ServiceException e) { - LOG.warn( - "Caught ServiceException while getting employees. Showing it to user. Error message: {}", - e.getMessage()); - Alert alert = new Alert(AlertType.ERROR); - alert.setTitle("Personal - Fehler!"); - alert.setHeaderText("Beim Auflisten des Personals ist ein Fehler aufgetreten."); - alert.setContentText(e.getMessage()); - alert.show(); - } - tvVehicles.setOnMousePressed( - mouseEvent -> { - if (mouseEvent.isPrimaryButtonDown() && mouseEvent.getClickCount() == 2) { - chosenVehicle = tvVehicles.getSelectionModel().getSelectedItem(); - if (chosenVehicle == null) { - return; - } - lVehicles.setText(chosenVehicle.name()); - } - }); - tvEmployees.setOnMousePressed( - mouseEvent -> { - if (mouseEvent.isPrimaryButtonDown() && mouseEvent.getClickCount() == 2) { - Employee selection = tvEmployees.getSelectionModel().getSelectedItem(); - if (selection == null) { - return; - } else if (chosenEmployees.contains(selection)) { - chosenEmployees.remove(selection); - } else { - chosenEmployees.add(selection); - } - - StringBuilder text = new StringBuilder(); - for (Employee employee : chosenEmployees) { - text.append(employee.name()).append("\n"); - } - lEmployees.setText(text.toString()); - } - }); - ObservableList<Integer> hours = - FXCollections.observableArrayList( - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23); - cbStart.setItems(hours); - cbStart.setValue(0); - cbEnd.setItems(hours); - cbEnd.setValue(12); - } - - public void cancel() { - LOG.debug("Cancel Button clicked"); - chosenEmployees.clear(); - ((Stage) lVehicles.getScene().getWindow()).close(); - } - - public void create() { - LOG.debug("Create Button clicked"); - - Set<Registration> registrations = new HashSet<>(); - try { - if (chosenVehicle == null) { - throw new InvalidVehicleException("no Vehicle"); - } - for (Employee employee : chosenEmployees) { - registrations.add( - Registration.builder() - .id(chosenVehicle.id()) - .employee(employee) - .start( - LocalDateTime.of( - LocalDate.now(), - LocalTime.of(cbStart.getValue(), 0)) - .toInstant(OffsetDateTime.now().getOffset())) - .end( - LocalDateTime.of( - LocalDate.now(), - LocalTime.of(cbEnd.getValue(), 0)) - .toInstant(OffsetDateTime.now().getOffset())) - .build()); - } - - registrationService.add(chosenVehicle.id(), registrations); - chosenEmployees.clear(); - ((Stage) lVehicles.getScene().getWindow()).close(); - - } catch (InvalidVehicleException e) { - // NOT THROWN ANYWHERE RIGHT NOW - LOG.info( - "Caught InvalidVehicleException. Showing it to user. Error message: {}", - e.getClass().toString(), - e.getMessage()); - Alert alert = new Alert(AlertType.WARNING); - alert.setTitle("Ungültiges Fahrzeug"); - alert.setHeaderText("Das spezifizierte Fahrzeug ist nicht gültig."); - alert.setContentText(e.getMessage()); - alert.show(); - chosenEmployees.clear(); - } catch (ServiceException e) { - LOG.warn( - "Caught ServiceException while getting vehicles. Showing it to user. Error message: {}", - e.getMessage()); - Alert alert = new Alert(AlertType.ERROR); - alert.setTitle("Anmeldung - Fehler!"); - alert.setHeaderText("Beim Erstellen der Anmeldung ist ein Fehler aufgetreten."); - alert.setContentText(e.getMessage()); - alert.show(); - chosenEmployees.clear(); - } catch (InvalidRegistrationException e) { - LOG.info( - "Caught InvalidRegistrationException. Showing it to user. Error message: {}", - e.getMessage()); - Alert alert = new Alert(AlertType.WARNING); - alert.setTitle("Ungültige Eingabe"); - alert.setHeaderText( - "Die gewählte Kombination von Fahrzeug und Personal ist nicht gültig!"); - alert.setContentText(e.getMessage()); - alert.show(); - chosenEmployees.clear(); - } - } -} |