Added input validation for enabling/disabling GUIs and actions

This commit is contained in:
Marcus Rockwell 2024-09-16 11:49:33 -04:00
parent 66081ea7a6
commit f34be562e9

View File

@ -9,6 +9,7 @@ package trick.simcontrol;
//======================================== //========================================
import java.awt.BorderLayout; import java.awt.BorderLayout;
import java.awt.Color; import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension; import java.awt.Dimension;
import java.awt.Font; import java.awt.Font;
import java.awt.GridBagConstraints; import java.awt.GridBagConstraints;
@ -393,7 +394,7 @@ public class SimControlApplication extends TrickApplication implements PropertyC
*/ */
protected void parseConnectionFromSimList() { protected void parseConnectionFromSimList() {
if (runningSimList != null && runningSimList.getSelectedItem() != null) { if (runningSimList != null && runningSimList.getSelectedItem() != null) {
String selectedStr = runningSimList.getSelectedItem().toString(); String selectedStr = runningSimList.getSelectedItem().toString();
// remove the run info if it is shown // remove the run info if it is shown
int leftPre = selectedStr.indexOf("("); int leftPre = selectedStr.indexOf("(");
@ -411,13 +412,13 @@ public class SimControlApplication extends TrickApplication implements PropertyC
String errMsg = "Can't connect! Please provide valid host name and port number separated by : or whitespace!"; String errMsg = "Can't connect! Please provide valid host name and port number separated by : or whitespace!";
printErrorMessage(errMsg); printErrorMessage(errMsg);
} else { } else {
host = elements[0].trim(); host = elements[0].trim();
try { port = Integer.parseInt(elements[1].trim()); } try { port = Integer.parseInt(elements[1].trim()); }
catch (NumberFormatException nfe) { catch (NumberFormatException nfe) {
String errMsg = elements[1] + " is not a valid port number!"; String errMsg = elements[1] + " is not a valid port number!";
printErrorMessage(errMsg); printErrorMessage(errMsg);
} }
} }
} }
} }
@ -849,9 +850,8 @@ public class SimControlApplication extends TrickApplication implements PropertyC
statusSimcom.put(status_vars) ; statusSimcom.put(status_vars) ;
statusSimcom.put("trick.var_cycle(0.25)\n"); statusSimcom.put("trick.var_cycle(0.25)\n");
setActionsEnabled("connect", false);
getAction("connect").setEnabled(false); setGUIEnabled(runningSimList, false);
runningSimList.setEnabled(false);
} }
catch (NumberFormatException nfe) { catch (NumberFormatException nfe) {
@ -866,6 +866,14 @@ public class SimControlApplication extends TrickApplication implements PropertyC
} }
} }
private void setGUIEnabled(Component gui, boolean flag) {
if(gui != null) gui.setEnabled(flag);
}
private void setGUIsEnabled(Component[] guis, boolean flag) {
for(Component gui : guis) setGUIEnabled(gui, flag);
}
/** /**
* Convenient method for setting the state of specified actions. * Convenient method for setting the state of specified actions.
* *