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(); } }