Finishes custom java path

Adds missing menu items
Adds menu item functionality
This commit is contained in:
2021-08-02 22:24:10 +02:00
parent 0018816d90
commit e4be75b770
3 changed files with 75 additions and 6 deletions

View File

@ -19,6 +19,8 @@ public class ServerLauncherMenu implements ActionListener {
private JCheckBoxMenuItem runInBackgroundCheckBoxMenuItem;
private JCheckBoxMenuItem delayStartupCheckBoxMenuItem;
private JCheckBoxMenuItem downloadJarsCheckBoxMenuItem;
private JMenuItem javaCommandMenuItem;
private JMenuItem oldJavaCommandMenuItem;
//Help
private JMenuItem errorsMenuItem;
private JMenuItem setupMenuItem;
@ -27,6 +29,8 @@ public class ServerLauncherMenu implements ActionListener {
private JMenuItem runInBackgroundMenuItem;
private JMenuItem delayStartupMenuItem;
private JMenuItem downloadJarsMenuItem;
private JMenuItem javaCommandInfoMenuItem;
private JMenuItem oldJavaCommandInfoMenuItem;
//Info/about
private JMenuItem aboutMenuItem;
private JMenuItem storyMenuItem;
@ -66,6 +70,14 @@ public class ServerLauncherMenu implements ActionListener {
mnOptions.add(downloadJarsCheckBoxMenuItem);
downloadJarsCheckBoxMenuItem.addActionListener(this);
javaCommandMenuItem = new JMenuItem("Java command");
mnOptions.add(javaCommandMenuItem);
javaCommandMenuItem.addActionListener(this);
oldJavaCommandMenuItem = new JMenuItem("Old Java command");
mnOptions.add(oldJavaCommandMenuItem);
oldJavaCommandMenuItem.addActionListener(this);
JMenu mnHelp = new JMenu("Help");
menuBar.add(mnHelp);
@ -99,6 +111,14 @@ public class ServerLauncherMenu implements ActionListener {
mnOptionsInfo.add(downloadJarsMenuItem);
downloadJarsMenuItem.addActionListener(this);
javaCommandInfoMenuItem = new JMenuItem("Java command");
mnOptionsInfo.add(javaCommandInfoMenuItem);
javaCommandInfoMenuItem.addActionListener(this);
oldJavaCommandInfoMenuItem = new JMenuItem("Old Java command");
mnOptionsInfo.add(oldJavaCommandInfoMenuItem);
oldJavaCommandInfoMenuItem.addActionListener(this);
JMenu mnAbout = new JMenu("About");
mnInfo.add(mnAbout);
@ -111,6 +131,9 @@ public class ServerLauncherMenu implements ActionListener {
storyMenuItem.addActionListener(this);
}
/**
* Updates the state of checkboxes based on whether options are enabled
*/
public void update() {
runInBackgroundCheckBoxMenuItem.setState(controller.getRunInBackground());
delayStartupCheckBoxMenuItem.setState(controller.getDelayStartup() > 0);
@ -126,6 +149,10 @@ public class ServerLauncherMenu implements ActionListener {
delay();
} else if (actionSource == downloadJarsCheckBoxMenuItem) {
downloadJars();
} else if (actionSource == javaCommandMenuItem) {
configureJava(false);
} else if (actionSource == oldJavaCommandMenuItem) {
configureJava(true);
} else if (actionSource == errorsMenuItem) {
CommonFunctions.goToURL(serverLauncherGUI.getMessage("infoURL"));
} else if (actionSource == setupMenuItem) {
@ -138,6 +165,10 @@ public class ServerLauncherMenu implements ActionListener {
serverLauncherGUI.showMessage("Delay startup", serverLauncherGUI.getMessage("delayStartupText"));
} else if (actionSource == downloadJarsMenuItem) {
serverLauncherGUI.showMessage("Download jars", serverLauncherGUI.getMessage("downloadJarsText"));
} else if (actionSource == javaCommandInfoMenuItem) {
serverLauncherGUI.showMessage("Java command", serverLauncherGUI.getMessage("javaCommandText"));
} else if (actionSource == oldJavaCommandInfoMenuItem) {
serverLauncherGUI.showMessage("Old Java command", serverLauncherGUI.getMessage("oldJavaCommandText"));
} else if (actionSource == aboutMenuItem) {
serverLauncherGUI.showMessage("About", serverLauncherGUI.getMessage("aboutText"));
} else if (actionSource == storyMenuItem) {
@ -145,6 +176,24 @@ public class ServerLauncherMenu implements ActionListener {
}
}
/**
* Asks the user for the new Java path
* @param old <p>Whether asking for the path to the old java version</p>
*/
private void configureJava(boolean old) {
if (old) {
String response = JOptionPane.showInputDialog("Command or path to Java: ", controller.getOldJavaCommand());
if (response != null) {
controller.setOldJavaCommand(response);
}
} else {
String response = JOptionPane.showInputDialog("Command or path to Java: ", controller.getJavaCommand());
if (response != null) {
controller.setJavaCommand(response);
}
}
}
/**
* Asks the user for a delay if checked, and sets the value to the current profile
*/