aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java
diff options
context:
space:
mode:
authorAndreas Weninger <e01526989@student.tuwien.ac.at>2018-05-11 16:17:42 +0200
committerTharre <tharre3@gmail.com>2018-05-21 15:48:33 +0200
commit166ff610e62f0671f65a6fd27d4760f0881eb6f4 (patch)
treeddce862e7ac884d98ecc3374562b0089b00f177e /src/main/java
parent8e0abdfcbc798c8ed0f85af1f641d58d341fe83a (diff)
downloadsepm-groupproject-166ff610e62f0671f65a6fd27d4760f0881eb6f4.tar.gz
sepm-groupproject-166ff610e62f0671f65a6fd27d4760f0881eb6f4.tar.xz
sepm-groupproject-166ff610e62f0671f65a6fd27d4760f0881eb6f4.zip
UI Changes Main Window
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dto/Registration.java7
-rw-r--r--src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/ui/vehiclepane/VehiclePaneController.java23
-rw-r--r--src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/userInterface/CreateOperationController.java143
3 files changed, 102 insertions, 71 deletions
diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dto/Registration.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dto/Registration.java
index 8551266..93530bc 100644
--- a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dto/Registration.java
+++ b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dto/Registration.java
@@ -2,6 +2,7 @@ package at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto;
import com.google.auto.value.AutoValue;
import java.time.Instant;
+import java.util.Date;
@AutoValue
public abstract class Registration {
@@ -17,6 +18,12 @@ public abstract class Registration {
return new AutoValue_Registration.Builder().id(0);
}
+ public boolean isActive() {
+ Instant now = (new Date()).toInstant();
+
+ return start().isBefore(now) && end().isAfter(now);
+ }
+
@AutoValue.Builder
public abstract static class Builder {
public abstract Builder id(long id);
diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/ui/vehiclepane/VehiclePaneController.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/ui/vehiclepane/VehiclePaneController.java
index 2db6f37..29230f3 100644
--- a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/ui/vehiclepane/VehiclePaneController.java
+++ b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/ui/vehiclepane/VehiclePaneController.java
@@ -4,8 +4,6 @@ import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Employee.Ed
import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Registration;
import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Vehicle;
import java.io.IOException;
-import java.time.Instant;
-import java.util.Date;
import java.util.List;
import java.util.Optional;
import javafx.fxml.FXML;
@@ -16,6 +14,7 @@ import javafx.scene.image.ImageView;
import javafx.scene.text.Text;
public class VehiclePaneController {
+
@FXML private Text txtType;
@FXML private Text txtNumber;
@FXML private ImageView ivNEF;
@@ -35,11 +34,16 @@ public class VehiclePaneController {
}
private Node rootElement;
+ private Vehicle data;
public Node getRootElement() {
return rootElement;
}
+ public Vehicle getData() {
+ return data;
+ }
+
/**
* * Set the displayed data of this VehiclePane.
*
@@ -52,23 +56,22 @@ public class VehiclePaneController {
String constrType = vehicle.constructionType().name();
txtRooftype.setText(
constrType.substring(0, 1).toUpperCase() + constrType.substring(1).toLowerCase());
- txtNumber.setText("" + vehicle.id());
+ txtNumber.setText("-" + vehicle.id());
if (vehicle.hasNef()) {
- ivNEF.setImage(new Image("../images/NEF.png"));
+ ivNEF.setImage(new Image("images/NEF.png"));
txtNEF.setText("hat NEF-Halterung");
} else {
- ivNEF.setImage(new Image("../images/NotNEF.png"));
+ ivNEF.setImage(new Image("images/NotNEF.png"));
txtNEF.setText("keine NEF-Halterung");
}
if (showQualification) {
- Instant now = (new Date()).toInstant();
List<Registration> regs = vehicle.registrations();
assert regs != null;
Optional<EducationLevel> edu =
regs.stream()
- .filter(reg -> reg.start().isBefore(now) && reg.end().isAfter(now))
+ .filter(Registration::isActive)
.map(reg -> reg.employee().educationLevel())
.max(EducationLevel::compareTo);
@@ -80,5 +83,11 @@ public class VehiclePaneController {
ivQualification.setVisible(false);
ivQualification.setManaged(false);
}
+
+ this.data = vehicle;
+ }
+
+ public void setSelected(boolean selected) {
+ // TODO
}
}
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 7b04efe..58874da 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,13 +1,19 @@
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.ServiceException;
import at.ac.tuwien.sepm.assignment.groupphase.util.JDBCConnectionManager;
@@ -15,10 +21,11 @@ import at.ac.tuwien.sepm.assignment.groupphase.util.SpringFXMLLoader;
import java.io.IOException;
import java.lang.invoke.MethodHandles;
import java.time.Instant;
-import java.util.EnumSet;
+import java.time.LocalDate;
+import java.time.temporal.ChronoUnit;
+import java.util.Arrays;
import java.util.LinkedList;
import java.util.Set;
-import javafx.collections.FXCollections;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.Parent;
@@ -27,10 +34,10 @@ import javafx.scene.control.Alert;
import javafx.scene.control.Alert.AlertType;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
-import javafx.scene.control.ListCell;
import javafx.scene.control.ListView;
import javafx.scene.control.TextField;
import javafx.scene.layout.AnchorPane;
+import javafx.scene.layout.FlowPane;
import javafx.stage.Stage;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -46,13 +53,14 @@ public class CreateOperationController {
public TextField txtAddress;
public TextField txtNote;
public Button btnCreateOperation;
- public ListView<Vehicle> lvVehicles;
public ListView lvActiveOperations;
public Label lblChosenVehicles;
- public LinkedList<Vehicle> chosenVehicles = new LinkedList<>();
+ public FlowPane fpVehicles;
+
+ private LinkedList<Vehicle> chosenVehicles = new LinkedList<>();
// TODO: Anders?
- OperationService operationService =
+ private OperationService operationService =
new OperationServiceImpl(new DBOperationDAO(new JDBCConnectionManager()));
private final VehicleService vehicleService;
private final SpringFXMLLoader fxmlLoader;
@@ -65,65 +73,55 @@ public class CreateOperationController {
@FXML
public void initialize() {
lblChosenVehicles.setText("keine ausgewählt");
- lvVehicles.setCellFactory(
- param ->
- new ListCell<Vehicle>() {
- @Override
- protected void updateItem(Vehicle item, boolean empty) {
- super.updateItem(item, empty);
-
- if (empty || item == null || item.name() == null) {
- setText(null);
- } else {
- setText(item.name());
- }
- }
- });
-
- lvVehicles.setOnMouseClicked(
- event -> {
- if (event.getClickCount() == 2) {
- boolean remove = false;
- if (lvVehicles.getSelectionModel().getSelectedItem() == null) {
- return;
- }
- for (Vehicle vehicle : chosenVehicles) {
- if (lvVehicles.getSelectionModel().getSelectedItem().equals(vehicle)) {
- remove = true;
- break;
- }
- }
- if (!remove) {
- chosenVehicles.add(lvVehicles.getSelectionModel().getSelectedItem());
-
- } else {
- chosenVehicles.remove(lvVehicles.getSelectionModel().getSelectedItem());
- }
- StringBuilder result = new StringBuilder();
- for (int i = 0; i < chosenVehicles.size(); i++) {
- if (i == chosenVehicles.size() - 1) {
- result.append(chosenVehicles.get(i).name());
- } else {
- result.append(chosenVehicles.get(i).name()).append(", ");
- }
- }
- if (result.toString().equals("")) {
- lblChosenVehicles.setText("keine ausgewählt");
- } else {
- lblChosenVehicles.setText(result.toString());
- }
- }
- });
}
public void updateList() {
try {
- this.lvVehicles.setItems(
- FXCollections.observableArrayList(
- vehicleService.list(
- EnumSet.of(
- Vehicle.Status.FREI_FUNK, Vehicle.Status.FREI_WACHE))));
- } catch (ServiceException e) {
+ fpVehicles.getChildren().clear();
+ List<Vehicle> vehicles = vehicleService.list();
+
+ // TODO Remove debug
+ vehicles = testData();
+
+ for (Vehicle vehicle : vehicles) {
+ VehiclePaneController controller = VehiclePaneController.createVehiclePane();
+
+ controller.setData(vehicle, true);
+ controller
+ .getRootElement()
+ .setOnMouseClicked(
+ event -> {
+ if (event.getClickCount() == 2) {
+ if (chosenVehicles.contains(vehicle)) {
+ chosenVehicles.remove(vehicle);
+ controller.setSelected(false);
+ } else {
+ chosenVehicles.add(vehicle);
+ controller.setSelected(true);
+ }
+
+ StringBuilder result = new StringBuilder();
+ for (int i = 0; i < chosenVehicles.size(); i++) {
+ if (i == chosenVehicles.size() - 1) {
+ result.append(chosenVehicles.get(i).name());
+ } else {
+ result.append(chosenVehicles.get(i).name())
+ .append(", ");
+ }
+ }
+ if (result.toString().equals("")) {
+ lblChosenVehicles.setText("keine ausgewählt");
+ } else {
+ lblChosenVehicles.setText(result.toString());
+ }
+ }
+ });
+
+ fpVehicles.getChildren().add(controller.getRootElement());
+ }
+ } catch (ServiceException | IOException e) {
+ LOG.error("Error while updating list.", e);
+
Alert alert = new Alert(Alert.AlertType.ERROR);
alert.setTitle("Fehler");
alert.setHeaderText("Fehler!");
@@ -132,14 +130,30 @@ public class CreateOperationController {
}
}
- /*private LinkedList<Vehicle> mylist() {
+ 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();
+
Vehicle vehicle =
Vehicle.builder()
.name("Test-KTW")
.constructionType(ConstructionType.HOCHDACH)
.type(VehicleType.KTW)
.status(Vehicle.Status.FREI_WACHE)
- .hasNef(true)
+ .hasNef(false)
+ .registrations(Arrays.asList(reg))
.build();
Vehicle vehicle1 =
@@ -149,13 +163,14 @@ public class CreateOperationController {
.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;
- }*/
+ }
@FXML
protected void createOperationClicked() {