Funktionen angepasst

master
Maximilian 2024-06-14 07:28:34 +02:00
parent 950a4a9078
commit 5290732598
19 changed files with 75 additions and 51 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -29,15 +29,23 @@
</object> </object>
</void> </void>
<void method="add"> <void method="add">
<object class="models.Pilot"> <object class="models.Pilot" id="Pilot0">
<void property="adresse"> <void property="adresse">
<string>asdasd</string> <string>sad</string>
</void> </void>
<void property="kontaktinformationen"> <void property="kontaktinformationen">
<string>23</string> <string>ads</string>
</void>
<void property="lizenzen">
<void method="add">
<string>äää</string>
</void>
<void method="add">
<string>äää</string>
</void>
</void> </void>
<void property="name"> <void property="name">
<string>adsasd</string> <string>sad</string>
</void> </void>
</object> </object>
</void> </void>

View File

@ -1,28 +1,46 @@
package controllers; package controllers;
import java.time.LocalDate; import java.time.Duration;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
import models.Flight; import javafx.scene.control.Alert;
import views.FlightView; import javafx.scene.control.Control;
public class FlightController { public class FlightController {
private Flight model; private DateTimeFormatter timeFormatter = DateTimeFormatter.ofPattern("HH:mm");
private FlightView view;
public FlightController(Flight model, FlightView view) { public double calculateFlightDuration(String abflugzeit, String ankunftszeit) throws DateTimeParseException {
this.model = model; LocalTime start = LocalTime.parse(abflugzeit, timeFormatter);
this.view = view; LocalTime end = LocalTime.parse(ankunftszeit, timeFormatter);
return (double) Duration.between(start, end).toMinutes() / 60;
} }
public void setFlightDatum(LocalDate datum) { public boolean isValidTime(String time) {
model.setDatum(datum); try {
LocalTime.parse(time, timeFormatter);
return true;
} catch (DateTimeParseException e) {
return false;
}
} }
public LocalDate getFlightDatum() { public void setErrorStyle(Control field) {
return model.getDatum(); field.setStyle("-fx-border-color: red;");
} }
public void updateView() { public void clearFieldStyles(Control... fields) {
view.displayFlightDetails(model); for (Control field : fields) {
field.setStyle(null);
}
}
public void showAlert(String title, String message) {
Alert alert = new Alert(Alert.AlertType.ERROR);
alert.setTitle(title);
alert.setHeaderText(null);
alert.setContentText(message);
alert.showAndWait();
} }
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

View File

@ -120,7 +120,7 @@ public class AddFlightScreen {
vbox.getChildren().add(addPilotBtn); vbox.getChildren().add(addPilotBtn);
} }
Scene scene = new Scene(borderPane, 800, 700); Scene scene = new Scene(borderPane, 800, 600);
scene.getStylesheets().add(getClass().getResource("/resources/styles.css").toExternalForm()); scene.getStylesheets().add(getClass().getResource("/resources/styles.css").toExternalForm());
stage.setScene(scene); stage.setScene(scene);

View File

@ -52,7 +52,7 @@ public class DeletePilotScreen {
VBox vbox = new VBox(10, label, pilotComboBox, deleteBtn); VBox vbox = new VBox(10, label, pilotComboBox, deleteBtn);
vbox.setAlignment(Pos.CENTER); vbox.setAlignment(Pos.CENTER);
vbox.setPadding(new Insets(20)); vbox.setPadding(new Insets(20));
vbox.setStyle("-fx-background-color: #E6F2FF;");
BorderPane borderPane = new BorderPane(); BorderPane borderPane = new BorderPane();
borderPane.setTop(backButton); borderPane.setTop(backButton);

View File

@ -72,7 +72,7 @@ public class EditFlightScreen {
tToFField, anzahlLandungenField, nachtflugBox, kommentarField, saveBtn); tToFField, anzahlLandungenField, nachtflugBox, kommentarField, saveBtn);
vbox.setAlignment(Pos.CENTER); vbox.setAlignment(Pos.CENTER);
vbox.setPadding(new Insets(20)); vbox.setPadding(new Insets(20));
vbox.setStyle("-fx-background-color: #E6F2FF;");
BorderPane borderPane = new BorderPane(); BorderPane borderPane = new BorderPane();
borderPane.setTop(backButton); borderPane.setTop(backButton);
@ -80,7 +80,7 @@ public class EditFlightScreen {
BorderPane.setAlignment(backButton, Pos.TOP_LEFT); BorderPane.setAlignment(backButton, Pos.TOP_LEFT);
BorderPane.setMargin(backButton, new Insets(10)); BorderPane.setMargin(backButton, new Insets(10));
Scene scene = new Scene(borderPane, 800, 700); Scene scene = new Scene(borderPane, 800, 600);
scene.getStylesheets().add(getClass().getResource("/resources/styles.css").toExternalForm()); scene.getStylesheets().add(getClass().getResource("/resources/styles.css").toExternalForm());
stage.setScene(scene); stage.setScene(scene);

View File

@ -26,15 +26,15 @@ public class HelpScreen {
helpText.setEditable(false); helpText.setEditable(false);
Button backBtn = new Button("Zurück"); Button backBtn = new Button("Zurück");
backBtn.setStyle("-fx-background-color: #431EB9; -fx-text-fill: #FFFFFF;");
backBtn.setOnAction(e -> new HomeScreen(stage).display()); backBtn.setOnAction(e -> new HomeScreen(stage).display());
VBox vbox = new VBox(10, label, helpText, backBtn); VBox vbox = new VBox(10, label, helpText, backBtn);
vbox.setAlignment(Pos.CENTER); vbox.setAlignment(Pos.CENTER);
vbox.setPadding(new Insets(20)); vbox.setPadding(new Insets(20));
vbox.setStyle("-fx-background-color: #FFFFFF;");
Scene scene = new Scene(vbox, 400, 300);
Scene scene = new Scene(vbox, 800, 600);
scene.getStylesheets().add(getClass().getResource("/resources/styles.css").toExternalForm()); scene.getStylesheets().add(getClass().getResource("/resources/styles.css").toExternalForm());
stage.setScene(scene); stage.setScene(scene);

View File

@ -31,18 +31,16 @@ public class HomeScreen {
Button btn1 = createButton("Flug erfassen", "/resources/icons/add_flight_icon.png", "Erfassen Sie einen neuen Flug"); Button btn1 = createButton("Flug erfassen", "/resources/icons/add_flight_icon.png", "Erfassen Sie einen neuen Flug");
Button btn2 = createButton("Logbuch einsehen", "/resources/icons/view_logbook_icon.png", "Sehen Sie das Fluglogbuch ein"); Button btn2 = createButton("Logbuch einsehen", "/resources/icons/view_logbook_icon.png", "Sehen Sie das Fluglogbuch ein");
Button btn3 = createButton("Pilotenprofil verwalten", "/resources/icons/manage_pilot_icon.png", "Verwalten Sie das Profil eines Piloten"); Button btn3 = createButton("Piloten anlegen", "/resources/icons/edit_pilot_icon.png", "Verwalten Sie das Profil eines Piloten");
Button btn4 = createButton("Piloten löschen", "/resources/icons/delete_pilot_icon.png", "Löschen Sie einen Piloten"); Button btn4 = createButton("Piloten löschen", "/resources/icons/delete_pilot_icon.png", "Löschen Sie einen Piloten");
Button helpBtn = createHelpButton("/resources/icons/help_icon.png", "Hilfe anzeigen"); Button helpBtn = createHelpButton("/resources/icons/help_icon.png", "Hilfe anzeigen");
Button pilotsBtn = createButton("Alle Piloten anzeigen", "/resources/icons/view_pilot_icon.png", "Alle Piloten anzeigen"); Button editPilotsBtn = createButton("Pilot bearbeiten", "/resources/icons/manage_pilot_icon.png", "Bearbeiten Sie ein Pilotenprofil");
Button editPilotsBtn = createButton("Pilot bearbeiten", "/resources/icons/edit_pilot_icon.png", "Bearbeiten Sie ein Pilotenprofil");
btn1.setOnAction(e -> new AddFlightScreen(stage).display()); btn1.setOnAction(e -> new AddFlightScreen(stage).display());
btn2.setOnAction(e -> new ViewLogbookScreen(stage).display()); btn2.setOnAction(e -> new ViewLogbookScreen(stage).display());
btn3.setOnAction(e -> new ManagePilotProfileScreen(stage).display()); btn3.setOnAction(e -> new ManagePilotProfileScreen(stage).display());
btn4.setOnAction(e -> new DeletePilotScreen(stage).display()); btn4.setOnAction(e -> new DeletePilotScreen(stage).display());
helpBtn.setOnAction(e -> new HelpScreen(stage).display()); helpBtn.setOnAction(e -> new HelpScreen(stage).display());
pilotsBtn.setOnAction(e -> new PilotView(stage).displayAllPilots());
editPilotsBtn.setOnAction(e -> { editPilotsBtn.setOnAction(e -> {
Pilots pilots = (Pilots) XMLHelper.loadFromXML("pilots.xml"); Pilots pilots = (Pilots) XMLHelper.loadFromXML("pilots.xml");
if (pilots != null && !pilots.getPilots().isEmpty()) { if (pilots != null && !pilots.getPilots().isEmpty()) {
@ -51,6 +49,8 @@ public class HomeScreen {
showAlert("Keine Piloten", "Es sind keine Piloten zum Bearbeiten verfügbar."); showAlert("Keine Piloten", "Es sind keine Piloten zum Bearbeiten verfügbar.");
} }
}); });
Button exitBtn = createButton("Exit", "/resources/icons/exit_icon.png", "Exit the application");
exitBtn.setOnAction(e -> stage.close());
GridPane gridPane = new GridPane(); GridPane gridPane = new GridPane();
gridPane.setPadding(new Insets(20)); gridPane.setPadding(new Insets(20));
@ -60,9 +60,9 @@ public class HomeScreen {
gridPane.add(btn1, 0, 0); gridPane.add(btn1, 0, 0);
gridPane.add(btn2, 1, 0); gridPane.add(btn2, 1, 0);
gridPane.add(btn3, 0, 1); gridPane.add(btn3, 0, 1);
gridPane.add(pilotsBtn, 1, 1); gridPane.add(editPilotsBtn, 1, 1);
gridPane.add(editPilotsBtn, 0, 2); gridPane.add(btn4, 0, 2);
gridPane.add(btn4, 1, 2); gridPane.add(exitBtn, 1, 2);
VBox vbox = new VBox(20, title, gridPane); VBox vbox = new VBox(20, title, gridPane);
vbox.setAlignment(Pos.CENTER); vbox.setAlignment(Pos.CENTER);

View File

@ -46,7 +46,7 @@ public class ManagePilotProfileScreen {
VBox vbox = new VBox(10, label, pilotComboBox, selectBtn); VBox vbox = new VBox(10, label, pilotComboBox, selectBtn);
vbox.setAlignment(Pos.CENTER); vbox.setAlignment(Pos.CENTER);
vbox.setPadding(new Insets(20)); vbox.setPadding(new Insets(20));
vbox.setStyle("-fx-background-color: #FFFFFF;");
BorderPane borderPane = new BorderPane(); BorderPane borderPane = new BorderPane();
borderPane.setTop(backButton); borderPane.setTop(backButton);
@ -54,7 +54,7 @@ public class ManagePilotProfileScreen {
BorderPane.setAlignment(backButton, Pos.TOP_LEFT); BorderPane.setAlignment(backButton, Pos.TOP_LEFT);
BorderPane.setMargin(backButton, new Insets(10)); BorderPane.setMargin(backButton, new Insets(10));
Scene scene = new Scene(borderPane, 400, 300); Scene scene = new Scene(borderPane, 800, 600);
scene.getStylesheets().add(getClass().getResource("/resources/styles.css").toExternalForm()); scene.getStylesheets().add(getClass().getResource("/resources/styles.css").toExternalForm());
@ -101,7 +101,7 @@ public class ManagePilotProfileScreen {
}); });
Button submitBtn = new Button(pilot == null ? "Hinzufügen" : "Speichern"); Button submitBtn = new Button(pilot == null ? "Hinzufügen" : "Speichern");
submitBtn.setStyle("-fx-background-color: #431EB9; -fx-text-fill: #FFFFFF;");
submitBtn.setOnAction(e -> handleSaveProfile(pilot, nameField, adresseField, kontaktinformationenField, submitBtn.setOnAction(e -> handleSaveProfile(pilot, nameField, adresseField, kontaktinformationenField,
lizenzListView, zertifikatListView)); lizenzListView, zertifikatListView));
@ -115,7 +115,7 @@ public class ManagePilotProfileScreen {
lizenzListView, zertifikatField, addZertifikatBtn, zertifikatListView, submitBtn, viewPilotsBtn); lizenzListView, zertifikatField, addZertifikatBtn, zertifikatListView, submitBtn, viewPilotsBtn);
vbox.setAlignment(Pos.CENTER); vbox.setAlignment(Pos.CENTER);
vbox.setPadding(new Insets(20)); vbox.setPadding(new Insets(20));
vbox.setStyle("-fx-background-color: #FFFFFF;");
BorderPane borderPane = new BorderPane(); BorderPane borderPane = new BorderPane();
borderPane.setTop(backButton); borderPane.setTop(backButton);
@ -123,7 +123,7 @@ public class ManagePilotProfileScreen {
BorderPane.setAlignment(backButton, Pos.TOP_LEFT); BorderPane.setAlignment(backButton, Pos.TOP_LEFT);
BorderPane.setMargin(backButton, new Insets(10)); BorderPane.setMargin(backButton, new Insets(10));
Scene scene = new Scene(borderPane, 400, 600); Scene scene = new Scene(borderPane, 800, 600);
scene.getStylesheets().add(getClass().getResource("/resources/styles.css").toExternalForm()); scene.getStylesheets().add(getClass().getResource("/resources/styles.css").toExternalForm());
stage.setScene(scene); stage.setScene(scene);

View File

@ -5,6 +5,7 @@ import javafx.geometry.Pos;
import javafx.scene.Scene; import javafx.scene.Scene;
import javafx.scene.control.Button; import javafx.scene.control.Button;
import javafx.scene.control.Label; import javafx.scene.control.Label;
import javafx.scene.control.ScrollPane;
import javafx.scene.layout.BorderPane; import javafx.scene.layout.BorderPane;
import javafx.scene.layout.VBox; import javafx.scene.layout.VBox;
import javafx.stage.Stage; import javafx.stage.Stage;
@ -31,7 +32,7 @@ public class PilotView {
VBox vbox = new VBox(10, nameLabel, adresseLabel, kontaktLabel, lizenzenLabel, zertifikateLabel); VBox vbox = new VBox(10, nameLabel, adresseLabel, kontaktLabel, lizenzenLabel, zertifikateLabel);
vbox.setAlignment(Pos.CENTER); vbox.setAlignment(Pos.CENTER);
vbox.setPadding(new Insets(20)); vbox.setPadding(new Insets(20));
vbox.setStyle("-fx-background-color: #FFFFFF;");
Button backButton = new Button("Zurück"); Button backButton = new Button("Zurück");
backButton.setOnAction(e -> new HomeScreen(stage).display()); backButton.setOnAction(e -> new HomeScreen(stage).display());
@ -42,7 +43,8 @@ public class PilotView {
BorderPane.setAlignment(backButton, Pos.TOP_LEFT); BorderPane.setAlignment(backButton, Pos.TOP_LEFT);
BorderPane.setMargin(backButton, new Insets(10)); BorderPane.setMargin(backButton, new Insets(10));
Scene scene = new Scene(borderPane, 400, 300); Scene scene = new Scene(borderPane, 800, 600); // Fenstergröße angepasst
scene.getStylesheets().add(getClass().getResource("/resources/styles.css").toExternalForm());
stage.setScene(scene); stage.setScene(scene);
stage.setTitle("Pilot Details"); stage.setTitle("Pilot Details");
stage.show(); stage.show();
@ -53,31 +55,27 @@ public class PilotView {
List<Pilot> pilots = pilotsData != null ? pilotsData.getPilots() : List.of(); List<Pilot> pilots = pilotsData != null ? pilotsData.getPilots() : List.of();
VBox vbox = new VBox(10); VBox vbox = new VBox(10);
vbox.setAlignment(Pos.CENTER);
vbox.setPadding(new Insets(20)); vbox.setPadding(new Insets(20));
vbox.setStyle("-fx-background-color: #FFFFFF;");
for (Pilot pilot : pilots) { for (Pilot pilot : pilots) {
Label nameLabel = new Label("Name: " + pilot.getName()); Label pilotLabel = new Label(pilot.getName());
vbox.getChildren().add(nameLabel); vbox.getChildren().add(pilotLabel);
Button detailButton = new Button("Details anzeigen");
detailButton.setOnAction(e -> displayPilotDetails(pilot));
vbox.getChildren().add(detailButton);
} }
ScrollPane scrollPane = new ScrollPane(vbox); // ScrollPane hinzugefügt
scrollPane.setFitToWidth(true);
scrollPane.setFitToHeight(true);
Button backButton = new Button("Zurück"); Button backButton = new Button("Zurück");
backButton.setOnAction(e -> new HomeScreen(stage).display()); backButton.setOnAction(e -> new HomeScreen(stage).display());
BorderPane borderPane = new BorderPane(); BorderPane borderPane = new BorderPane();
borderPane.setTop(backButton); borderPane.setTop(backButton);
borderPane.setCenter(vbox); borderPane.setCenter(scrollPane); // ScrollPane anstelle von VBox hinzugefügt
BorderPane.setAlignment(backButton, Pos.TOP_LEFT); BorderPane.setAlignment(backButton, Pos.TOP_LEFT);
BorderPane.setMargin(backButton, new Insets(10)); BorderPane.setMargin(backButton, new Insets(10));
Scene scene = new Scene(borderPane, 400, 300); Scene scene = new Scene(borderPane, 800, 600); // Fenstergröße angepasst
scene.getStylesheets().add(getClass().getResource("/resources/styles.css").toExternalForm());
stage.setScene(scene); stage.setScene(scene);
stage.setTitle("Alle Piloten"); stage.setTitle("Alle Piloten");
stage.show(); stage.show();