diff options
author | Andreas Weninger <e01526989@student.tuwien.ac.at> | 2018-05-16 14:51:31 +0200 |
---|---|---|
committer | Tharre <tharre3@gmail.com> | 2018-05-21 16:10:15 +0200 |
commit | b01c84cc72fa21ba5c5e59ec65faa09c828139ba (patch) | |
tree | 7324a60ee88d38f0809def31f43fcd5bc20cf631 /src/main/java | |
parent | fa6ac1c592c22ac688123fabed062879881dc843 (diff) | |
download | sepm-groupproject-b01c84cc72fa21ba5c5e59ec65faa09c828139ba.tar.gz sepm-groupproject-b01c84cc72fa21ba5c5e59ec65faa09c828139ba.tar.xz sepm-groupproject-b01c84cc72fa21ba5c5e59ec65faa09c828139ba.zip |
[#25958] Apply code formatting. Context Menu Label now bold and black while highlighted. Annotate stuff.
Diffstat (limited to 'src/main/java')
3 files changed, 81 insertions, 55 deletions
diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/DBOperationDAO.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/DBOperationDAO.java index 1423240..476f968 100644 --- a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/DBOperationDAO.java +++ b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/DBOperationDAO.java @@ -11,7 +11,9 @@ import java.sql.SQLException; import java.sql.Timestamp; import java.util.EnumSet; import java.util.Set; +import org.springframework.stereotype.Repository; +@Repository public class DBOperationDAO implements OperationDAO { private JDBCConnectionManager jdbcConnectionManager; diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/service/OperationServiceImpl.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/service/OperationServiceImpl.java index 7b69886..a6be111 100644 --- a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/service/OperationServiceImpl.java +++ b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/service/OperationServiceImpl.java @@ -12,7 +12,9 @@ import at.ac.tuwien.sepm.assignment.groupphase.exception.ServiceException; import java.util.EnumSet; import java.util.Set; import java.util.SortedSet; +import org.springframework.stereotype.Service; +@Service public class OperationServiceImpl implements OperationService { // TODO: anders? diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/userInterface/CreateOperationController.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/userInterface/CreateOperationController.java index 58874da..446ca50 100644 --- a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/userInterface/CreateOperationController.java +++ b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/userInterface/CreateOperationController.java @@ -1,30 +1,25 @@ package at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.userInterface; -import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dao.DBOperationDAO; -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.dto.Operation; import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Operation.Severity; import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Operation.Status; 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.ConstructionType; -import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Vehicle.VehicleType; import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.service.OperationService; -import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.service.OperationServiceImpl; import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.service.VehicleService; import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.ui.vehiclepane.VehiclePaneController; import at.ac.tuwien.sepm.assignment.groupphase.exception.InvalidOperationException; +import at.ac.tuwien.sepm.assignment.groupphase.exception.InvalidVehicleException; import at.ac.tuwien.sepm.assignment.groupphase.exception.ServiceException; -import at.ac.tuwien.sepm.assignment.groupphase.util.JDBCConnectionManager; import at.ac.tuwien.sepm.assignment.groupphase.util.SpringFXMLLoader; import java.io.IOException; import java.lang.invoke.MethodHandles; import java.time.Instant; -import java.time.LocalDate; import java.time.temporal.ChronoUnit; -import java.util.Arrays; +import java.util.ArrayList; +import java.util.EnumSet; import java.util.LinkedList; +import java.util.List; import java.util.Set; import javafx.event.ActionEvent; import javafx.fxml.FXML; @@ -33,14 +28,18 @@ import javafx.scene.Scene; import javafx.scene.control.Alert; import javafx.scene.control.Alert.AlertType; import javafx.scene.control.Button; +import javafx.scene.control.ContextMenu; import javafx.scene.control.Label; import javafx.scene.control.ListView; +import javafx.scene.control.MenuItem; import javafx.scene.control.TextField; +import javafx.scene.input.MouseButton; import javafx.scene.layout.AnchorPane; import javafx.scene.layout.FlowPane; import javafx.stage.Stage; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @Controller @@ -59,9 +58,7 @@ public class CreateOperationController { private LinkedList<Vehicle> chosenVehicles = new LinkedList<>(); - // TODO: Anders? - private OperationService operationService = - new OperationServiceImpl(new DBOperationDAO(new JDBCConnectionManager())); + @Autowired private OperationService operationService; private final VehicleService vehicleService; private final SpringFXMLLoader fxmlLoader; @@ -78,10 +75,7 @@ public class CreateOperationController { public void updateList() { try { fpVehicles.getChildren().clear(); - List<Vehicle> vehicles = vehicleService.list(); - - // TODO Remove debug - vehicles = testData(); + Set<Vehicle> vehicles = vehicleService.list(EnumSet.allOf(Vehicle.Status.class)); for (Vehicle vehicle : vehicles) { VehiclePaneController controller = VehiclePaneController.createVehiclePane(); @@ -91,7 +85,13 @@ public class CreateOperationController { .getRootElement() .setOnMouseClicked( event -> { - if (event.getClickCount() == 2) { + if (event.getButton().equals(MouseButton.SECONDARY)) { + createContextMenu(vehicle, vehicleService) + .show( + controller.getRootElement(), + event.getScreenX(), + event.getScreenY()); + } else { if (chosenVehicles.contains(vehicle)) { chosenVehicles.remove(vehicle); controller.setSelected(false); @@ -130,46 +130,68 @@ public class CreateOperationController { } } - private LinkedList<Vehicle> testData() { - Employee empl = - Employee.builder() - .birthday(LocalDate.MIN) - .isDriver(true) - .isPilot(true) - .educationLevel(EducationLevel.NKV) - .name("Hans Test") - .build(); - Registration reg = - Registration.builder() - .employee(empl) - .start(Instant.now().minus(1, ChronoUnit.HOURS)) - .end(Instant.now().plus(1, ChronoUnit.HOURS)) - .build(); + private static ContextMenu createContextMenu(Vehicle data, VehicleService vehicleService) { + ContextMenu menu = new ContextMenu(); - Vehicle vehicle = - Vehicle.builder() - .name("Test-KTW") - .constructionType(ConstructionType.HOCHDACH) - .type(VehicleType.KTW) - .status(Vehicle.Status.FREI_WACHE) - .hasNef(false) - .registrations(Arrays.asList(reg)) - .build(); + for (Vehicle.Status status : Vehicle.Status.values()) { + if (status == Vehicle.Status.ABGEMELDET) { + continue; + } - Vehicle vehicle1 = - Vehicle.builder() - .name("Test-NEF") - .constructionType(ConstructionType.NORMAL) - .type(VehicleType.NEF) - .status(Vehicle.Status.FREI_FUNK) - .hasNef(true) - .registrations(Arrays.asList(reg)) - .build(); - LinkedList<Vehicle> list = new LinkedList<>(); - list.add(vehicle); - list.add(vehicle1); - // this.lvVehicles.setItems(FXCollections.observableArrayList(list)); - return list; + MenuItem mi = new MenuItem(status.name()); + + if (status == Vehicle.Status.FREI_FUNK || status == Vehicle.Status.FREI_WACHE) { + mi.getStyleClass().add("mi-free"); + } else { + mi.getStyleClass().add("mi-other"); + } + + mi.setOnAction( + event -> { + try { + vehicleService.update(data.toBuilder().status(status).build()); + } catch (InvalidVehicleException | ServiceException e) { + LOG.error("Error while setting status.", e); + Alert a = new Alert(AlertType.ERROR, e.getMessage()); + a.show(); + } + }); + + menu.getItems().add(mi); + } + + MenuItem abmelden = new MenuItem("abmelden"); + + abmelden.setOnAction( + event -> { + try { + List<Registration> registrations = data.registrations(); + assert registrations + != null; // Otherwise the element shouldn't be in the list. + + List<Registration> newRegistrations = new ArrayList<>(); + + for (Registration registration : registrations) { + if (registration.isActive()) { + newRegistrations.add( + registration + .toBuilder() + .end(Instant.now().minus(1, ChronoUnit.SECONDS)) + .build()); + } else newRegistrations.add(registration); + } + + vehicleService.update( + data.toBuilder().registrations(newRegistrations).build()); + } catch (InvalidVehicleException | ServiceException e) { + LOG.error("Error while unregistering.", e); + Alert a = new Alert(AlertType.ERROR, e.getMessage()); + a.show(); + } + }); + + menu.getItems().add(abmelden); + return menu; } @FXML |