Implemented Abstract Controller class which made code a lot short and easier to read

This commit is contained in:
YaFedImYaEatIm
2016-09-16 21:49:12 +12:00
parent 5641cc3728
commit 4ff6aefd1e
12 changed files with 190 additions and 349 deletions
@@ -0,0 +1,69 @@
package seng202.group9.GUI;
import javafx.fxml.Initializable;
import seng202.group9.Controller.App;
import seng202.group9.Controller.SceneCode;
import java.net.URL;
import java.util.ResourceBundle;
/**
* Created by Gondr on 16/09/2016.
*/
public abstract class Controller implements Initializable{
private App parent;
/**
* set Parent app
* @param parent
*/
public void setApp(App parent){
this.parent = parent;
}
/**
* get parent App
* @return
*/
public App getParent(){
return parent;
}
/**
* functions to load
*/
public abstract void load();
/**
* Replaces content and does normal loading
* @param scene
*/
public void replaceSceneContent(SceneCode scene){
try {
Controller controller = (Controller)
parent.replaceSceneContent(scene);
controller.setApp(parent);
controller.load();
controller.loadOnce();
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* Functions here will only load once and after the load function.
*/
public void loadOnce(){
}
/**
* Initialize statement before anything loads.
* @param location
* @param resources
*/
public void initialize(URL location, ResourceBundle resources) {
}
}