@Override
		public void execute() {

			if (enabledActions.size() == 1) {
				DockingActionIf action = enabledActions.get(0);
				tool.setStatusInfo("");

				// Toggle actions do not toggle its state directly therefor we have to do it for 
				// them before we execute the action.
				if (action instanceof ToggleDockingActionIf) {
					ToggleDockingActionIf toggleAction = (ToggleDockingActionIf) action;
					toggleAction.setSelected(!toggleAction.isSelected());
				}

				action.actionPerformed(context);

				return;
			}

			// If more than one action, prompt user to choose from multiple actions
			MultiActionDialog dialog =
				new MultiActionDialog(KeyBindingUtils.parseKeyStroke(keyStroke), enabledActions,
					context);

			// doing the show in an invoke later seems to fix a strange swing bug that lock up
			// the program if you tried to invoke a new action too quickly after invoking
			// it the first time
			Swing.runLater(() -> DockingWindowManager.showDialog(dialog));
		}
An extension of {@link ExecutableAction} that itself contains 0 or more 
{@link ExecutableAction}s.  This class is used to create a snapshot of all actions valid and
enabled for a given keystroke.
Ghidra/Framework/Docking/src/main/java/docking/action/MultipleKeyAction.java