Added popup loader and Scene AIRLINE_ADD

main
YaFedImYaEatIm 9 years ago
parent c6f5c41b7d
commit ab531fdcb1

@ -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;

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

@ -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.
*/

Loading…
Cancel
Save