performance improvements
* call refreshUIData() only if there is enough space for another column
This commit is contained in:
parent
3853f70895
commit
109bcf6e03
Binary file not shown.
|
@ -16,7 +16,7 @@
|
||||||
<?import javafx.scene.text.Font?>
|
<?import javafx.scene.text.Font?>
|
||||||
<?import javafx.scene.text.TextFlow?>
|
<?import javafx.scene.text.TextFlow?>
|
||||||
|
|
||||||
<AnchorPane fx:id="mainAnchorPane" prefHeight="600.0" prefWidth="892.0" xmlns="http://javafx.com/javafx/8.0.111" xmlns:fx="http://javafx.com/fxml/1" fx:controller="application.MainWindowController">
|
<AnchorPane fx:id="mainAnchorPane" prefHeight="600.0" prefWidth="904.0" xmlns="http://javafx.com/javafx/8.0.111" xmlns:fx="http://javafx.com/fxml/1" fx:controller="application.MainWindowController">
|
||||||
<children>
|
<children>
|
||||||
<ScrollPane fx:id="scrollPaneMain" fitToWidth="true" layoutY="38.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="38.0">
|
<ScrollPane fx:id="scrollPaneMain" fitToWidth="true" layoutY="38.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="38.0">
|
||||||
<content>
|
<content>
|
||||||
|
@ -61,7 +61,7 @@
|
||||||
</children>
|
</children>
|
||||||
</VBox>
|
</VBox>
|
||||||
<!-- space between settings sections 35px, between sections elements (label + element) 20px, between label and element 3px(or more) -->
|
<!-- space between settings sections 35px, between sections elements (label + element) 20px, between label and element 3px(or more) -->
|
||||||
<AnchorPane fx:id="settingsAnchorPane" layoutX="38.0" layoutY="27.0" prefHeight="573.0" style="-fx-background-color: white;" visible="false" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="175.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="38.0">
|
<AnchorPane fx:id="settingsAnchorPane" layoutX="38.0" layoutY="27.0" style="-fx-background-color: white;" visible="false" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="175.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="38.0">
|
||||||
<children>
|
<children>
|
||||||
<Label layoutX="22.0" layoutY="59.0" text="Cemu Directory" AnchorPane.leftAnchor="14.0" AnchorPane.topAnchor="59.0" />
|
<Label layoutX="22.0" layoutY="59.0" text="Cemu Directory" AnchorPane.leftAnchor="14.0" AnchorPane.topAnchor="59.0" />
|
||||||
<JFXTextField fx:id="cemuTextField" layoutX="18.0" layoutY="83.0" maxWidth="305.0" minWidth="305.0" onAction="#cemuTextFieldAction" prefHeight="32.0" prefWidth="305.0" promptText="cemu directory" AnchorPane.leftAnchor="14.0" AnchorPane.topAnchor="79.0" />
|
<JFXTextField fx:id="cemuTextField" layoutX="18.0" layoutY="83.0" maxWidth="305.0" minWidth="305.0" onAction="#cemuTextFieldAction" prefHeight="32.0" prefWidth="305.0" promptText="cemu directory" AnchorPane.leftAnchor="14.0" AnchorPane.topAnchor="79.0" />
|
||||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -57,7 +57,7 @@ public class Main extends Application {
|
||||||
public void start(Stage primaryStage) {
|
public void start(Stage primaryStage) {
|
||||||
this.primaryStage = primaryStage;
|
this.primaryStage = primaryStage;
|
||||||
cloudController = new CloudController(this);
|
cloudController = new CloudController(this);
|
||||||
initActions();
|
initActions(); //TODO this should be called after mainWindow(), but if we do so mainAnchorPane.getWidth() is 0
|
||||||
mainWindow();
|
mainWindow();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -70,7 +70,7 @@ public class Main extends Application {
|
||||||
// primaryStage.getIcons().add(new Image(Main.class.getResourceAsStream("/resources/Homeflix_Icon_64x64.png"))); //adds application icon
|
// primaryStage.getIcons().add(new Image(Main.class.getResourceAsStream("/resources/Homeflix_Icon_64x64.png"))); //adds application icon
|
||||||
|
|
||||||
mainWindowController = loader.getController(); //Link of FXMLController and controller class
|
mainWindowController = loader.getController(); //Link of FXMLController and controller class
|
||||||
mainWindowController.setMain(this); //call setMain
|
mainWindowController.setMain(this); //call setMain
|
||||||
|
|
||||||
//get os and the right paths
|
//get os and the right paths
|
||||||
if(System.getProperty("os.name").equals("Linux")){
|
if(System.getProperty("os.name").equals("Linux")){
|
||||||
|
@ -79,14 +79,12 @@ public class Main extends Application {
|
||||||
gamesDBFile = new File(dirLinux + "/games.db");
|
gamesDBFile = new File(dirLinux + "/games.db");
|
||||||
localDB = new File(dirLinux+"/localRoms.db");
|
localDB = new File(dirLinux+"/localRoms.db");
|
||||||
pictureCache= new File(dirLinux+"/picture_cache");
|
pictureCache= new File(dirLinux+"/picture_cache");
|
||||||
pane.setPrefWidth(904); //this could be a kde plasma specific issue
|
|
||||||
}else{
|
}else{
|
||||||
directory = new File(dirWin);
|
directory = new File(dirWin);
|
||||||
configFile = new File(dirWin + "/config.xml");
|
configFile = new File(dirWin + "/config.xml");
|
||||||
gamesDBFile = new File(dirWin + "/games.db");
|
gamesDBFile = new File(dirWin + "/games.db");
|
||||||
localDB = new File(dirWin+"/localRoms.db");
|
localDB = new File(dirWin+"/localRoms.db");
|
||||||
pictureCache= new File(dirWin+"/picture_cache");
|
pictureCache= new File(dirWin+"/picture_cache");
|
||||||
pane.setPrefWidth(892); //FIXME this is not working under Windows anymore, need to test which size is correct. see issue #main.1
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//startup checks
|
//startup checks
|
||||||
|
@ -190,29 +188,53 @@ public class Main extends Application {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initActions() {
|
private void initActions() {
|
||||||
final ChangeListener<Number> listener = new ChangeListener<Number>() {
|
final ChangeListener<Number> widthListener = new ChangeListener<Number>() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void changed(ObservableValue<? extends Number> observable, Number oldValue, final Number newValue) {
|
public void changed(ObservableValue<? extends Number> observable, Number oldValue, final Number newValue) {
|
||||||
int xPosHelperMax;
|
int xPosHelperMax = (int) Math.floor((mainWindowController.getMainAnchorPane().getWidth() - 36) / 217);
|
||||||
//TODO see issue #main.1
|
|
||||||
if(System.getProperty("os.name").equals("Linux")){
|
|
||||||
xPosHelperMax = (int) Math.floor((pane.getPrefWidth() - 36) / 217);
|
|
||||||
} else {
|
|
||||||
xPosHelperMax = (int) Math.floor((pane.getPrefWidth() - 24) / 217);
|
|
||||||
}
|
|
||||||
mainWindowController.refreshplayBtnPosition();
|
mainWindowController.refreshplayBtnPosition();
|
||||||
//call only if there is enough space for a new row TODO test this!
|
|
||||||
if (mainWindowController.getxPosHelper() != xPosHelperMax) {
|
//call only if there is enough space for a new row
|
||||||
|
if (mainWindowController.getOldXPosHelper() != xPosHelperMax) {
|
||||||
mainWindowController.refreshUIData();
|
mainWindowController.refreshUIData();
|
||||||
}
|
}
|
||||||
// mainWindowController.refreshUIData();
|
|
||||||
//TODO saveSettings only on left mouseBtn release
|
//TODO saveSettings only on left mouseBtn release
|
||||||
mainWindowController.saveSettings();
|
mainWindowController.saveSettings();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
final ChangeListener<Number> heightListener = new ChangeListener<Number>() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void changed(ObservableValue<? extends Number> observable, Number oldValue, final Number newValue) {
|
||||||
|
mainWindowController.saveSettings();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
final ChangeListener<Boolean> maximizeListener = new ChangeListener<Boolean>() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void changed(ObservableValue<? extends Boolean> ov, Boolean t, Boolean t1) {
|
||||||
|
primaryStage.setMaximized(false);
|
||||||
|
|
||||||
|
Alert alert = new Alert(AlertType.WARNING);
|
||||||
|
alert.setTitle("edit");
|
||||||
|
alert.setHeaderText("cemu_UI");
|
||||||
|
alert.setContentText("maximized Window is not supporte!");
|
||||||
|
alert.initOwner(primaryStage);
|
||||||
|
alert.showAndWait();
|
||||||
|
|
||||||
|
LOGGER.warn("maximized Window is not supported");
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
//add listener to primaryStage
|
//add listener to primaryStage
|
||||||
primaryStage.widthProperty().addListener(listener);
|
primaryStage.widthProperty().addListener(widthListener);
|
||||||
|
primaryStage.heightProperty().addListener(heightListener);
|
||||||
|
primaryStage.maximizedProperty().addListener(maximizeListener);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
<?import javafx.scene.text.Font?>
|
<?import javafx.scene.text.Font?>
|
||||||
<?import javafx.scene.text.TextFlow?>
|
<?import javafx.scene.text.TextFlow?>
|
||||||
|
|
||||||
<AnchorPane fx:id="mainAnchorPane" prefHeight="600.0" prefWidth="892.0" xmlns="http://javafx.com/javafx/8.0.111" xmlns:fx="http://javafx.com/fxml/1" fx:controller="application.MainWindowController">
|
<AnchorPane fx:id="mainAnchorPane" prefHeight="600.0" prefWidth="904.0" xmlns="http://javafx.com/javafx/8.0.111" xmlns:fx="http://javafx.com/fxml/1" fx:controller="application.MainWindowController">
|
||||||
<children>
|
<children>
|
||||||
<ScrollPane fx:id="scrollPaneMain" fitToWidth="true" layoutY="38.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="38.0">
|
<ScrollPane fx:id="scrollPaneMain" fitToWidth="true" layoutY="38.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="38.0">
|
||||||
<content>
|
<content>
|
||||||
|
@ -61,7 +61,7 @@
|
||||||
</children>
|
</children>
|
||||||
</VBox>
|
</VBox>
|
||||||
<!-- space between settings sections 35px, between sections elements (label + element) 20px, between label and element 3px(or more) -->
|
<!-- space between settings sections 35px, between sections elements (label + element) 20px, between label and element 3px(or more) -->
|
||||||
<AnchorPane fx:id="settingsAnchorPane" layoutX="38.0" layoutY="27.0" prefHeight="573.0" style="-fx-background-color: white;" visible="false" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="175.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="38.0">
|
<AnchorPane fx:id="settingsAnchorPane" layoutX="38.0" layoutY="27.0" style="-fx-background-color: white;" visible="false" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="175.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="38.0">
|
||||||
<children>
|
<children>
|
||||||
<Label layoutX="22.0" layoutY="59.0" text="Cemu Directory" AnchorPane.leftAnchor="14.0" AnchorPane.topAnchor="59.0" />
|
<Label layoutX="22.0" layoutY="59.0" text="Cemu Directory" AnchorPane.leftAnchor="14.0" AnchorPane.topAnchor="59.0" />
|
||||||
<JFXTextField fx:id="cemuTextField" layoutX="18.0" layoutY="83.0" maxWidth="305.0" minWidth="305.0" onAction="#cemuTextFieldAction" prefHeight="32.0" prefWidth="305.0" promptText="cemu directory" AnchorPane.leftAnchor="14.0" AnchorPane.topAnchor="79.0" />
|
<JFXTextField fx:id="cemuTextField" layoutX="18.0" layoutY="83.0" maxWidth="305.0" minWidth="305.0" onAction="#cemuTextFieldAction" prefHeight="32.0" prefWidth="305.0" promptText="cemu directory" AnchorPane.leftAnchor="14.0" AnchorPane.topAnchor="79.0" />
|
||||||
|
|
|
@ -226,6 +226,7 @@ public class MainWindowController {
|
||||||
private int xPos = -200;
|
private int xPos = -200;
|
||||||
private int yPos = 17;
|
private int yPos = 17;
|
||||||
private int xPosHelper;
|
private int xPosHelper;
|
||||||
|
private int oldXPosHelper;
|
||||||
private int selectedUIDataIndex;
|
private int selectedUIDataIndex;
|
||||||
private int selected;
|
private int selected;
|
||||||
private double windowWidth;
|
private double windowWidth;
|
||||||
|
@ -271,7 +272,6 @@ public class MainWindowController {
|
||||||
}
|
}
|
||||||
|
|
||||||
void initUI() {
|
void initUI() {
|
||||||
System.out.println(getWindowWidth());
|
|
||||||
if (getWindowWidth() > 100 && getWindowHeight() > 100) {
|
if (getWindowWidth() > 100 && getWindowHeight() > 100) {
|
||||||
mainAnchorPane.setPrefSize(getWindowWidth(), getWindowHeight());
|
mainAnchorPane.setPrefSize(getWindowWidth(), getWindowHeight());
|
||||||
}
|
}
|
||||||
|
@ -344,9 +344,9 @@ public class MainWindowController {
|
||||||
edit.setOnAction(new EventHandler<ActionEvent>() {
|
edit.setOnAction(new EventHandler<ActionEvent>() {
|
||||||
@Override
|
@Override
|
||||||
public void handle(ActionEvent event) {
|
public void handle(ActionEvent event) {
|
||||||
System.out.println("edit "+selectedGameTitleID);
|
LOGGER.info("edit "+selectedGameTitleID);
|
||||||
if(selectedGameTitleID == null){
|
if(selectedGameTitleID == null){
|
||||||
System.out.println("trying to edit null! null is not valid!");
|
LOGGER.warn("trying to edit null! null is not valid!");
|
||||||
Alert alert = new Alert(AlertType.WARNING);
|
Alert alert = new Alert(AlertType.WARNING);
|
||||||
alert.setTitle("edit");
|
alert.setTitle("edit");
|
||||||
alert.setHeaderText("cemu_UI");
|
alert.setHeaderText("cemu_UI");
|
||||||
|
@ -354,7 +354,7 @@ public class MainWindowController {
|
||||||
alert.initOwner(main.primaryStage);
|
alert.initOwner(main.primaryStage);
|
||||||
alert.showAndWait();
|
alert.showAndWait();
|
||||||
}else{
|
}else{
|
||||||
System.out.println("show edit window TODO!"); //TODO show edit window
|
//TODO show edit window
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -362,9 +362,9 @@ public class MainWindowController {
|
||||||
remove.setOnAction(new EventHandler<ActionEvent>() {
|
remove.setOnAction(new EventHandler<ActionEvent>() {
|
||||||
@Override
|
@Override
|
||||||
public void handle(ActionEvent event) {
|
public void handle(ActionEvent event) {
|
||||||
System.out.println("remove "+selectedGameTitleID);
|
LOGGER.info("remove "+selectedGameTitleID);
|
||||||
if(selectedGameTitleID == null){
|
if(selectedGameTitleID == null){
|
||||||
System.out.println("trying to remove null! null is not valid!");
|
LOGGER.warn("trying to remove null! null is not valid!");
|
||||||
Alert alert = new Alert(AlertType.WARNING);
|
Alert alert = new Alert(AlertType.WARNING);
|
||||||
alert.setTitle("remove");
|
alert.setTitle("remove");
|
||||||
alert.setHeaderText("cemu_UI");
|
alert.setHeaderText("cemu_UI");
|
||||||
|
@ -402,9 +402,9 @@ public class MainWindowController {
|
||||||
public void handle(ActionEvent event) {
|
public void handle(ActionEvent event) {
|
||||||
String titleID = selectedGameTitleID;
|
String titleID = selectedGameTitleID;
|
||||||
String updatePath;
|
String updatePath;
|
||||||
System.out.println("update: "+selectedGameTitleID);
|
LOGGER.info("update: "+selectedGameTitleID);
|
||||||
if(selectedGameTitleID == null){
|
if(selectedGameTitleID == null){
|
||||||
LOGGER.error("trying to update null! null is not valid!");
|
LOGGER.warn("trying to update null! null is not valid!");
|
||||||
Alert alert = new Alert(AlertType.WARNING);
|
Alert alert = new Alert(AlertType.WARNING);
|
||||||
alert.setTitle("edit");
|
alert.setTitle("edit");
|
||||||
alert.setHeaderText("cemu_UI");
|
alert.setHeaderText("cemu_UI");
|
||||||
|
@ -461,7 +461,7 @@ public class MainWindowController {
|
||||||
|
|
||||||
LOGGER.info("add DLC: "+selectedGameTitleID);
|
LOGGER.info("add DLC: "+selectedGameTitleID);
|
||||||
if(selectedGameTitleID == null){
|
if(selectedGameTitleID == null){
|
||||||
System.out.println("trying to add a dlc to null! null is not valid!");
|
LOGGER.warn("trying to add a dlc to null! null is not valid!");
|
||||||
Alert alert = new Alert(AlertType.WARNING);
|
Alert alert = new Alert(AlertType.WARNING);
|
||||||
alert.setTitle("add DLC");
|
alert.setTitle("add DLC");
|
||||||
alert.setHeaderText("cemu_UI");
|
alert.setHeaderText("cemu_UI");
|
||||||
|
@ -565,6 +565,7 @@ public class MainWindowController {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
LOGGER.info("initializing Actions done!");
|
LOGGER.info("initializing Actions done!");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -678,8 +679,7 @@ public class MainWindowController {
|
||||||
Runtime.getRuntime().exec("java -jar cemu_UI.jar"); //start again
|
Runtime.getRuntime().exec("java -jar cemu_UI.jar"); //start again
|
||||||
System.exit(0); //finishes itself
|
System.exit(0); //finishes itself
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
System.out.println("es ist ein Fehler aufgetreten");
|
LOGGER.error("an error occurred", e);
|
||||||
e.printStackTrace();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -697,8 +697,7 @@ public class MainWindowController {
|
||||||
Runtime.getRuntime().exec("java -jar cemu_UI.jar"); //start again
|
Runtime.getRuntime().exec("java -jar cemu_UI.jar"); //start again
|
||||||
System.exit(0); //finishes itself
|
System.exit(0); //finishes itself
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
System.out.println("es ist ein Fehler aufgetreten");
|
LOGGER.error("an error occurred", e);
|
||||||
e.printStackTrace();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1069,9 +1068,9 @@ public class MainWindowController {
|
||||||
}
|
}
|
||||||
|
|
||||||
void refreshplayBtnPosition() {
|
void refreshplayBtnPosition() {
|
||||||
playBtn.setLayoutX((mainAnchorPane.getWidth()/2)-50);
|
playBtn.setLayoutX((main.pane.getWidth()/2)-50);
|
||||||
totalPlaytimeBtn.setLayoutX((mainAnchorPane.getWidth()/2)-50-20.5-100);
|
totalPlaytimeBtn.setLayoutX((main.pane.getWidth()/2)-50-20.5-100);
|
||||||
lastTimePlayedBtn.setLayoutX((mainAnchorPane.getWidth()/2)+50+20.5);
|
lastTimePlayedBtn.setLayoutX((main.pane.getWidth()/2)+50+20.5);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addCourseDescription(SmmdbApiDataType course) {
|
private void addCourseDescription(SmmdbApiDataType course) {
|
||||||
|
@ -1199,14 +1198,10 @@ public class MainWindowController {
|
||||||
* calculates how many games can be displayed in one row
|
* calculates how many games can be displayed in one row
|
||||||
*/
|
*/
|
||||||
private void generatePosition() {
|
private void generatePosition() {
|
||||||
int xPosHelperMax;
|
int xPosHelperMax = (int) Math.floor((mainAnchorPane.getWidth() - 36) / 217);
|
||||||
//TODO see issue #main.1
|
|
||||||
if(System.getProperty("os.name").equals("Linux")){
|
|
||||||
xPosHelperMax = (int) Math.floor((mainAnchorPane.getWidth() - 36) / 217);
|
|
||||||
} else {
|
|
||||||
xPosHelperMax = (int) Math.floor((mainAnchorPane.getWidth() - 24) / 217);
|
|
||||||
}
|
|
||||||
if(xPosHelper == xPosHelperMax){
|
if(xPosHelper == xPosHelperMax){
|
||||||
|
oldXPosHelper = xPosHelper;
|
||||||
xPos = 17;
|
xPos = 17;
|
||||||
yPos = yPos + 345;
|
yPos = yPos + 345;
|
||||||
xPosHelper = 1;
|
xPosHelper = 1;
|
||||||
|
@ -1480,7 +1475,7 @@ public class MainWindowController {
|
||||||
* @return the main color in hexadecimal format
|
* @return the main color in hexadecimal format
|
||||||
*/
|
*/
|
||||||
private String hexToRgb() {
|
private String hexToRgb() {
|
||||||
System.out.println(getColor());
|
LOGGER.info(getColor());
|
||||||
int hex = Integer.parseInt(getColor().substring(0, 5), 16);
|
int hex = Integer.parseInt(getColor().substring(0, 5), 16);
|
||||||
|
|
||||||
int r = (hex & 0xFF0000) >> 16;
|
int r = (hex & 0xFF0000) >> 16;
|
||||||
|
@ -1618,5 +1613,17 @@ public class MainWindowController {
|
||||||
public void setWindowHeight(double windowHeight) {
|
public void setWindowHeight(double windowHeight) {
|
||||||
this.windowHeight = windowHeight;
|
this.windowHeight = windowHeight;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int getOldXPosHelper() {
|
||||||
|
return oldXPosHelper;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOldXPosHelper(int oldXPosHelper) {
|
||||||
|
this.oldXPosHelper = oldXPosHelper;
|
||||||
|
}
|
||||||
|
|
||||||
|
public AnchorPane getMainAnchorPane() {
|
||||||
|
return mainAnchorPane;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue