From ab531fdcb1486a0208696a3e737a6662aa58231f Mon Sep 17 00:00:00 2001 From: YaFedImYaEatIm Date: Thu, 22 Sep 2016 16:17:45 +1200 Subject: [PATCH] Added popup loader and Scene AIRLINE_ADD --- .../seng202/group9/Controller/SceneCode.java | 2 +- .../group9/GUI/AirlineRDController.java | 4 +- .../java/seng202/group9/GUI/Controller.java | 46 +++++++++++++++++++ 3 files changed, 50 insertions(+), 2 deletions(-) diff --git a/src/main/java/seng202/group9/Controller/SceneCode.java b/src/main/java/seng202/group9/Controller/SceneCode.java index de69752..8416430 100644 --- a/src/main/java/seng202/group9/Controller/SceneCode.java +++ b/src/main/java/seng202/group9/Controller/SceneCode.java @@ -9,7 +9,7 @@ public enum SceneCode { AIRPORT_SUMMARY("airport_summary.fxml"), AIRPORT_RAW_DATA("airport_raw_data.fxml"), ROUTE_SUMMARY("routes_summary.fxml"), ROUTE_RAW_DATA("route_raw_data.fxml"), FLIGHT_SUMMARY("flight_data_summary.fxml"), FLIGHT_RAW_DATA("flight_raw_data.fxml"), AIRPORT_ANALYSER("airport_analyser.fxml"), ROUTE_ANALYSER("route_analyser.fxml"), - AIRPORT_DIST_CALC("airport_dist_calc.fxml"); + AIRPORT_DIST_CALC("airport_dist_calc.fxml"), AIRLINE_ADD("airline_add_form.fxml"); private String filePath; diff --git a/src/main/java/seng202/group9/GUI/AirlineRDController.java b/src/main/java/seng202/group9/GUI/AirlineRDController.java index c1f8081..0c3f0ab 100644 --- a/src/main/java/seng202/group9/GUI/AirlineRDController.java +++ b/src/main/java/seng202/group9/GUI/AirlineRDController.java @@ -106,6 +106,8 @@ public class AirlineRDController extends Controller { * Opens the Airline add form. */ public void openAdd() { + createPopUpStage(SceneCode.AIRLINE_ADD, 600, 370); +/* try { FXMLLoader loader = new FXMLLoader(); Parent root = loader.load(getClass().getClassLoader().getResource("airline_add_form.fxml")); @@ -117,7 +119,7 @@ public class AirlineRDController extends Controller { filter.show(); } catch (IOException e) { e.printStackTrace(); - } + }*/ } diff --git a/src/main/java/seng202/group9/GUI/Controller.java b/src/main/java/seng202/group9/GUI/Controller.java index 2ba31ce..035865f 100644 --- a/src/main/java/seng202/group9/GUI/Controller.java +++ b/src/main/java/seng202/group9/GUI/Controller.java @@ -1,9 +1,17 @@ package seng202.group9.GUI; +import javafx.fxml.FXMLLoader; import javafx.fxml.Initializable; +import javafx.scene.Parent; +import javafx.scene.Scene; +import javafx.scene.layout.VBox; +import javafx.stage.Modality; +import javafx.stage.Stage; import seng202.group9.Controller.App; import seng202.group9.Controller.SceneCode; +import java.io.IOException; +import java.io.InputStream; import java.net.URL; import java.util.ResourceBundle; @@ -50,6 +58,44 @@ public abstract class Controller implements Initializable{ } } + /** + * Creates a popup window with a specific fxml scene + * @param scene + * @param width + * @param height + */ + public Stage createPopUpStage(SceneCode scene, int width, int height) { + FXMLLoader loader = new FXMLLoader(); + InputStream in = getClass().getClassLoader().getResourceAsStream(scene.getFilePath()); + Parent page = null; + try { + page = loader.load(in); + } catch (IOException e) { + e.printStackTrace(); + } finally { + try { + in.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + //set contorller and call default calls + Controller controller = loader.getController(); + controller.setApp(parent); + controller.load(); + controller.loadOnce(); + //create a new stage to popup + Stage popupStage = new Stage(); + popupStage.initModality(Modality.APPLICATION_MODAL); + //inner layout constraints + VBox container = new VBox(); + container.getChildren().add(page); + Scene popupScene = new Scene(container, width, height); + //show + popupStage.setScene(popupScene); + popupStage.showAndWait(); + return popupStage; + } /** * Functions here will only load once and after the load function. */