diff options
| author | Martin Weick <e1627760@student.tuwien.ac.at> | 2018-05-15 15:39:14 +0200 | 
|---|---|---|
| committer | Tharre <tharre3@gmail.com> | 2018-05-22 15:02:27 +0200 | 
| commit | 6aad8bb1dcf43fabff2a48f4d33ff86a23beefef (patch) | |
| tree | c2a00da4f4f9c0416472d7b37e120ddc7e7ac7bf /src/main/java/at/ac/tuwien/sepm/assignment | |
| parent | 3c65835f0db59e2777def202a11b648e414b1fa6 (diff) | |
| download | sepm-groupproject-6aad8bb1dcf43fabff2a48f4d33ff86a23beefef.tar.gz sepm-groupproject-6aad8bb1dcf43fabff2a48f4d33ff86a23beefef.tar.xz sepm-groupproject-6aad8bb1dcf43fabff2a48f4d33ff86a23beefef.zip  | |
Implement show vehicle #25947
Diffstat (limited to 'src/main/java/at/ac/tuwien/sepm/assignment')
| -rw-r--r-- | src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/CreateCarController.java | 117 | 
1 files changed, 97 insertions, 20 deletions
diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/CreateCarController.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/CreateCarController.java index b6693d0..628f680 100644 --- a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/CreateCarController.java +++ b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/CreateCarController.java @@ -8,17 +8,23 @@ import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.service.Vehicle  import at.ac.tuwien.sepm.assignment.groupphase.exception.InvalidVehicleException;  import at.ac.tuwien.sepm.assignment.groupphase.exception.ServiceException;  import java.lang.invoke.MethodHandles; +import java.util.EnumSet; +import java.util.List;  import java.util.stream.Collectors;  import java.util.stream.Stream;  import javafx.collections.FXCollections;  import javafx.event.ActionEvent;  import javafx.fxml.FXML; +import javafx.geometry.HPos; +import javafx.geometry.Orientation;  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.layout.FlowPane;  import javafx.stage.Stage;  import org.slf4j.Logger;  import org.slf4j.LoggerFactory; @@ -30,10 +36,14 @@ public class CreateCarController {      @FXML private ChoiceBox<String> cmb_Ctyp;      @FXML private ChoiceBox<String> cmb_typ;      @FXML private Button btn_cancel; +    @FXML private Button btn_create;      @FXML private CheckBox cbx_NEF; +    @FXML private FlowPane fp_vehicleList;      private static final Logger LOG = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());      private final VehicleService vehicleService; +    private boolean update = false; +    private long vid=-1;      public CreateCarController(VehicleService vehicleService) {          this.vehicleService = vehicleService; @@ -62,6 +72,7 @@ public class CreateCarController {                                  .map(Enum::toString)                                  .collect(Collectors.toList())));          cmb_typ.setValue(VehicleType.BKTW.toString()); +        vehicleListFP();      }      @FXML @@ -71,27 +82,56 @@ public class CreateCarController {      @FXML      public void createCar(ActionEvent actionEvent) { -        Vehicle vehicle = -                Vehicle.builder() -                        .constructionType(parseConstructionType()) -                        .type(parseType()) -                        .name("") -                        .status(Status.ABGEMELDET) -                        .hasNef(cbx_NEF.isSelected()) -                        .build(); -        try { -            vehicleService.add(vehicle); -        } catch (InvalidVehicleException e) { -            LOG.error("Invalid Vehicle: {}", e); -            createComplete(AlertType.ERROR, "Ungültige Eingabe", e.getMessage()); -            return; -        } catch (ServiceException e) { -            LOG.error("Exception: {}", e); -            createComplete(AlertType.ERROR, "Fehler", e.getMessage()); -            return; + + +        if (!update) { +            Vehicle vehicle = +                    Vehicle.builder() +                            .constructionType(parseConstructionType()) +                            .type(parseType()) +                            .name("") +                            .status(Status.ABGEMELDET) +                            .hasNef(cbx_NEF.isSelected()) +                            .build(); +            try { +                vehicleService.add(vehicle); +            } catch (InvalidVehicleException e) { +                LOG.error("Invalid Vehicle: {}", e); +                createComplete(AlertType.ERROR, "Ungültige Eingabe", e.getMessage()); +                return; +            } catch (ServiceException e) { +                LOG.error("Exception: {}", e); +                createComplete(AlertType.ERROR, "Fehler", e.getMessage()); +                return; +            } +            createComplete( +                    AlertType.CONFIRMATION, +                    "Speichern Erfolgreich", +                    "Auto wurde erfolgreich angelegt"); +        } else { +            try { +                Vehicle vehicle = +                        Vehicle.builder() +                                .id(vid) +                                .constructionType(parseConstructionType()) +                                .type(parseType()) +                                .name("") +                                .status(Status.ABGEMELDET) +                                .hasNef(cbx_NEF.isSelected()) +                                .build(); +                vehicleService.update(vehicle); +                setToStart(); +            } catch (InvalidVehicleException e) { +                LOG.error("Invalid Vehicle: {}", e); +                createComplete(AlertType.ERROR, "Ungültige Eingabe", e.getMessage()); +                return; +            } catch (ServiceException e) { +                LOG.error("Exception: {}", e); +                createComplete(AlertType.ERROR, "Fehler", e.getMessage()); +                return; +            }          } -        createComplete( -                AlertType.CONFIRMATION, "Speichern Erfolgreich", "Auto wurde erfolgreich angelegt"); +        vehicleListFP();      }      private ConstructionType parseConstructionType() { @@ -113,4 +153,41 @@ public class CreateCarController {          alert.setHeaderText(headerText);          alert.showAndWait();      } + +    private void vehicleListFP() { +        List<Vehicle> vehicleList = null; +        fp_vehicleList.getChildren().clear(); +        try { +            vehicleList = vehicleService.list(EnumSet.range(Status.ABGEMELDET, Status.FREI_FUNK)); +        } catch (ServiceException e) { +            e.printStackTrace(); +        } + +        fp_vehicleList.setOrientation(Orientation.HORIZONTAL); +        fp_vehicleList.setColumnHalignment(HPos.LEFT); // align labels on left +        fp_vehicleList.setPrefWrapLength(200); // preferred height = 200 + +        for (Vehicle v : vehicleList) { +            Button b = new Button(v.name()); +            b.setOnAction(event -> updateVehicle(v)); +            fp_vehicleList.getChildren().add(b); +        } +        fp_vehicleList.setVisible(true); +    } + +    private void setToStart(){ +        btn_create.setText("Erstellen"); +        cbx_NEF.setSelected(false); +        cmb_typ.setValue(VehicleType.BKTW.name()); +        cmb_Ctyp.setValue(ConstructionType.NORMAL.name()); +        update=false; +    } +    private void updateVehicle(Vehicle vehicle) { +        cmb_Ctyp.setValue(vehicle.constructionType().name()); +        cmb_typ.setValue(vehicle.type().name()); +        cbx_NEF.setSelected(vehicle.hasNef()); +        btn_create.setText("Speichern"); +        vid=vehicle.id(); +        update = true; +    }  }  | 
