3232public class MenuBar extends JMenuBar {
3333 public final JMenu menuOptions = new JMenu ("Options" );
3434 public final JMenu mcpMenu = new JMenu ("MCP" );
35+ public final List <JMenuItem > togglableComponents = new ArrayList <>();
3536 public final Map <Side , JMenuItem > start = new HashMap <>();
3637 public final Map <TaskParameter , JMenuItem > optionItems = new HashMap <>();
3738 private final JMenu helpMenu = new JMenu (TaskMode .HELP .getFullName ());
@@ -52,6 +53,7 @@ public MenuBar(MCPFrame frame) {
5253 Side [] sides = {Side .CLIENT , Side .SERVER };
5354 for (Side side : sides ) {
5455 JMenuItem start = new JMenuItem (TaskMode .START .getFullName () + " " + side .name );
56+ togglableComponents .add (start );
5557 start .addActionListener (a -> {
5658 operateOnThread (() -> {
5759 mcp .performTask (TaskMode .START , side , false );
@@ -94,20 +96,23 @@ public MenuBar(MCPFrame frame) {
9496 List <TaskMode > usedTasks = new ArrayList <>();
9597 usedTasks .addAll (Arrays .asList (MainGUI .TASKS ));
9698 usedTasks .addAll (Arrays .asList (TaskMode .UPDATE_MCP , TaskMode .START , TaskMode .EXIT , TaskMode .HELP , TaskMode .SETUP ));
97- JMenu runTask = new JMenu ("More tasks..." );
99+ JMenu moreTasks = new JMenu ("More tasks..." );
100+ togglableComponents .add (moreTasks );
98101 for (TaskMode task : TaskMode .registeredTasks ) {
99102 if (usedTasks .contains (task )) {
100103 continue ;
101104 }
102105 JMenuItem taskItem = new JMenuItem (task .getFullName ());
103106 taskItem .addActionListener (TaskButton .performTask (mcp , task ));
104- runTask .add (taskItem );
107+ moreTasks .add (taskItem );
105108 }
106- mcpMenu .add (runTask );
109+ mcpMenu .add (moreTasks );
107110 }
108111 JMenuItem exit = new JMenuItem (TaskMode .EXIT .getFullName ());
109112 exit .addActionListener (a -> System .exit (0 ));
110113 mcpMenu .add (exit );
114+ togglableComponents .add (update );
115+ togglableComponents .add (changeDir );
111116 add (mcpMenu );
112117 add (menuOptions );
113118 this .githubItem .addActionListener (e -> Util .openUrl (MCP .githubURL ));
@@ -201,4 +206,10 @@ private void reloadOptions() {
201206 entry .getValue ().setSelected (mcp .options .getBooleanParameter (entry .getKey ()));
202207 }
203208 }
209+
210+ public void setComponentsEnabled (boolean b ) {
211+ for (JMenuItem item : togglableComponents ) {
212+ item .setEnabled (b );
213+ }
214+ }
204215}
0 commit comments