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