/** * */ package de.fhswf.in.inf.se.projektthemenvergabe; import de.fhswf.in.inf.se.projektthemenvergabe.model.Ansprechpartner; import de.fhswf.in.inf.se.projektthemenvergabe.model.Organisation; import de.fhswf.in.inf.se.projektthemenvergabe.model.Projekt; import de.fhswf.in.inf.se.projektthemenvergabe.model.Student; import de.fhswf.in.inf.se.projektthemenvergabe.view.AnsprechpartnerListeController; import de.fhswf.in.inf.se.projektthemenvergabe.view.ProjektHinzufuegenController; import de.fhswf.in.inf.se.projektthemenvergabe.view.ProjektthemenverwaltungsController; import de.fhswf.in.inf.se.projektthemenvergabe.view.StudentenverwaltungsController; import javafx.application.Application; import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.fxml.FXMLLoader; import javafx.scene.Scene; import javafx.scene.layout.BorderPane; import javafx.stage.Modality; import javafx.stage.Stage; /** * Handles the stages and the data. * * @author Dina-Marie Hanxleden & Stefan Suhren * @version 1.0 */ public class Main extends Application { private ObservableList ansprechpartner = FXCollections .observableArrayList(Ansprechpartner.extractor()); private ObservableList organisation = FXCollections .observableArrayList(Organisation.extractor()); private ObservableList projekte = FXCollections .observableArrayList(Projekt.extractor()); private ObservableList studenten = FXCollections .observableArrayList(); private Stage primaryStage; private Stage studentenverwaltungsStage; private Stage ansprechpartnerverwaltungsStage; private Stage projekthinzufuegenStage; /* * (non-Javadoc) * * @see javafx.application.Application#start(javafx.stage.Stage) */ @Override public void start(Stage primaryStage) throws Exception { this.primaryStage = primaryStage; try { FXMLLoader loader = new FXMLLoader( getClass().getResource("view/Projektthemenverwaltung.fxml")); BorderPane root = (BorderPane) loader.load(); Scene scene = new Scene(root); primaryStage.setScene(scene); primaryStage.setTitle("Projektthemenverwaltung"); ProjektthemenverwaltungsController controller = loader .getController(); controller.setMain(this); primaryStage.show(); } catch (Exception e) { e.printStackTrace(); } } /** * TODO Add method comment here * */ public void showStudentenverwaltung() { try { FXMLLoader loader = new FXMLLoader( getClass().getResource("view/Studentenverwaltung.fxml")); BorderPane root = (BorderPane) loader.load(); Scene scene = new Scene(root); Stage stage = new Stage(); studentenverwaltungsStage = stage; stage.setScene(scene); stage.setTitle("Studentenverwaltung"); stage.initOwner(primaryStage); stage.initModality(Modality.WINDOW_MODAL); StudentenverwaltungsController controller = loader.getController(); controller.setMain(this); stage.showAndWait(); } catch (Exception e) { e.printStackTrace(); } } /** * TODO Add method comment here * */ public void showAnsprechpartnerverwaltungsStage() { try { FXMLLoader loader = new FXMLLoader( getClass().getResource("view/AnsprechpartnerListe.fxml")); BorderPane root = (BorderPane) loader.load(); Scene scene = new Scene(root); Stage stage = new Stage(); ansprechpartnerverwaltungsStage = stage; stage.setScene(scene); stage.setTitle("Ansprechpartnerverwaltung"); stage.initOwner(primaryStage); stage.initModality(Modality.WINDOW_MODAL); AnsprechpartnerListeController controller = loader.getController(); controller.setMain(this); stage.showAndWait(); } catch (Exception e) { e.printStackTrace(); } } /** * TODO Add method comment here * */ public Projekt showProjekthinzufuegenStage(Projekt projekt) { try { FXMLLoader loader = new FXMLLoader( getClass().getResource("view/ProjektHinzufuegen.fxml")); BorderPane root = (BorderPane) loader.load(); Scene scene = new Scene(root); Stage stage = new Stage(); projekthinzufuegenStage = stage; stage.setScene(scene); stage.setTitle("Projekt"); stage.initOwner(primaryStage); stage.initModality(Modality.WINDOW_MODAL); ProjektHinzufuegenController controller = loader.getController(); controller.setMain(this, projekt); stage.showAndWait(); return controller.getProjekt(); } catch (Exception e) { e.printStackTrace(); } return null; } /** * Get the primary {@link Stage} for this application. Can for example be * used to set modal. * * @return The primary stage of the application. */ public Stage getPrimaryStage() { return primaryStage; } /** * TODO Add method comment here * * @return */ public Stage getStudentenverwaltungsStage() { return studentenverwaltungsStage; } /** * TODO Add method comment here * * @return */ public Stage getAnsprechpartnerverwaltungsStage() { return ansprechpartnerverwaltungsStage; } /** * TODO Add method comment here * * @return */ public Stage getProjekthinzufuegenStage() { return projekthinzufuegenStage; } /** * Getter for property ansprechpartner. * * @return Returns the ansprechpartner. */ public ObservableList getAnsprechpartner() { return ansprechpartner; } /** * Getter for property organisation. * * @return Returns the organisation. */ public ObservableList getOrganisation() { return organisation; } /** * Getter for property projekte. * * @return Returns the projekte. */ public ObservableList getProjekte() { return projekte; } /** * Getter for property studenten. * * @return Returns the studenten. */ public ObservableList getStudenten() { return studenten; } /** * Launches the JavaFX application. * * @param args * Command line arguments. */ public static void main(String[] args) { launch(args); } }