120 lines
5.1 KiB
Java
120 lines
5.1 KiB
Java
package views;
|
|
|
|
import javafx.geometry.Insets;
|
|
import javafx.geometry.Pos;
|
|
import javafx.scene.Scene;
|
|
import javafx.scene.control.Alert;
|
|
import javafx.scene.control.Button;
|
|
import javafx.scene.control.Label;
|
|
import javafx.scene.control.Tooltip;
|
|
import javafx.scene.image.Image;
|
|
import javafx.scene.image.ImageView;
|
|
import javafx.scene.layout.BorderPane;
|
|
import javafx.scene.layout.GridPane;
|
|
import javafx.scene.layout.VBox;
|
|
import javafx.scene.shape.Circle;
|
|
import javafx.stage.Stage;
|
|
import models.Pilots;
|
|
import utils.XMLHelper;
|
|
|
|
public class HomeScreen {
|
|
private Stage stage;
|
|
|
|
public HomeScreen(Stage stage) {
|
|
this.stage = stage;
|
|
}
|
|
|
|
public void display() {
|
|
// Titel des Projekts
|
|
Label title = new Label("Fluglogbuch Pegasus");
|
|
title.setStyle("-fx-font-size: 32px; -fx-font-weight: bold; -fx-text-fill: #000000; -fx-font-family: 'Arial Black';");
|
|
|
|
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 btn3 = createButton("Pilotenprofil verwalten", "/resources/icons/manage_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 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/edit_pilot_icon.png", "Bearbeiten Sie ein Pilotenprofil");
|
|
|
|
btn1.setOnAction(e -> new AddFlightScreen(stage).display());
|
|
btn2.setOnAction(e -> new ViewLogbookScreen(stage).display());
|
|
btn3.setOnAction(e -> new ManagePilotProfileScreen(stage).display());
|
|
btn4.setOnAction(e -> new DeletePilotScreen(stage).display());
|
|
helpBtn.setOnAction(e -> new HelpScreen(stage).display());
|
|
pilotsBtn.setOnAction(e -> new PilotView(stage).displayAllPilots());
|
|
editPilotsBtn.setOnAction(e -> {
|
|
Pilots pilots = (Pilots) XMLHelper.loadFromXML("pilots.xml");
|
|
if (pilots != null && !pilots.getPilots().isEmpty()) {
|
|
new ManagePilotProfileScreen(stage).displayEditSelection(pilots); // Aufruf mit Pilotenliste
|
|
} else {
|
|
showAlert("Keine Piloten", "Es sind keine Piloten zum Bearbeiten verfügbar.");
|
|
}
|
|
});
|
|
|
|
GridPane gridPane = new GridPane();
|
|
gridPane.setPadding(new Insets(20));
|
|
gridPane.setHgap(20);
|
|
gridPane.setVgap(20);
|
|
gridPane.setAlignment(Pos.CENTER);
|
|
gridPane.add(btn1, 0, 0);
|
|
gridPane.add(btn2, 1, 0);
|
|
gridPane.add(btn3, 0, 1);
|
|
gridPane.add(pilotsBtn, 1, 1);
|
|
gridPane.add(editPilotsBtn, 0, 2);
|
|
gridPane.add(btn4, 1, 2);
|
|
|
|
VBox vbox = new VBox(20, title, gridPane);
|
|
vbox.setAlignment(Pos.CENTER);
|
|
|
|
BorderPane borderPane = new BorderPane();
|
|
borderPane.setCenter(vbox);
|
|
borderPane.setRight(helpBtn);
|
|
BorderPane.setAlignment(helpBtn, Pos.TOP_RIGHT);
|
|
BorderPane.setMargin(helpBtn, new Insets(10));
|
|
|
|
Scene scene = new Scene(borderPane, 800, 600);
|
|
scene.getStylesheets().add(getClass().getResource("/resources/styles.css").toExternalForm());
|
|
|
|
stage.setScene(scene);
|
|
stage.setTitle("Fluglogbuch Pegasus");
|
|
stage.show();
|
|
}
|
|
|
|
private Button createButton(String text, String iconPath, String tooltipText) {
|
|
Image icon = new Image(getClass().getResourceAsStream(iconPath));
|
|
ImageView iconView = new ImageView(icon);
|
|
iconView.setFitHeight(20);
|
|
iconView.setFitWidth(20);
|
|
|
|
Button button = new Button(text, iconView);
|
|
button.setTooltip(new Tooltip(tooltipText));
|
|
button.setStyle("-fx-background-color: #000000; -fx-text-fill: #FFFFFF; -fx-font-weight: bold;");
|
|
button.setPrefSize(250, 50);
|
|
return button;
|
|
}
|
|
|
|
private Button createHelpButton(String iconPath, String tooltipText) {
|
|
Image icon = new Image(getClass().getResourceAsStream(iconPath));
|
|
ImageView iconView = new ImageView(icon);
|
|
iconView.setFitHeight(30);
|
|
iconView.setFitWidth(30);
|
|
|
|
Button button = new Button("", iconView);
|
|
button.setTooltip(new Tooltip(tooltipText));
|
|
button.setStyle("-fx-background-color: #000000; -fx-text-fill: #FFFFFF; -fx-font-weight: bold;");
|
|
button.setShape(new Circle(25)); // Set button shape to circle
|
|
button.setMinSize(50, 50); // Set the min size to ensure it remains circular
|
|
button.setMaxSize(50, 50); // Set the max size to ensure it remains circular
|
|
return button;
|
|
}
|
|
|
|
private void showAlert(String title, String message) {
|
|
Alert alert = new Alert(Alert.AlertType.INFORMATION);
|
|
alert.setTitle(title);
|
|
alert.setHeaderText(null);
|
|
alert.setContentText(message);
|
|
alert.showAndWait();
|
|
}
|
|
}
|