diff --git a/src/main/java/de/neemann/digital/gui/Main.java b/src/main/java/de/neemann/digital/gui/Main.java index 760c1c57e..ba05d63d4 100644 --- a/src/main/java/de/neemann/digital/gui/Main.java +++ b/src/main/java/de/neemann/digital/gui/Main.java @@ -70,6 +70,7 @@ import static javax.swing.JOptionPane.showInputDialog; */ public final class Main extends JFrame implements ClosingWindowListener.ConfirmSave, ErrorStopper, FileHistory.OpenInterface, DigitalRemoteInterface, StatusInterface { private static final ArrayList ATTR_LIST = new ArrayList<>(); + private static final String KEY_START_STOP_ACTION = "startStop"; private static boolean experimental; private static File lastExportDirectory; @@ -752,6 +753,17 @@ public final class Main extends JFrame implements ClosingWindowListener.ConfirmS } }.setToolTip(Lang.get("menu_editRunAttributes_tt")); + circuitComponent.getInputMap().put(KeyStroke.getKeyStroke(' '), KEY_START_STOP_ACTION); + circuitComponent.getActionMap().put(KEY_START_STOP_ACTION, new AbstractAction() { + @Override + public void actionPerformed(ActionEvent actionEvent) { + if (model == null) + runModelAction.actionPerformed(actionEvent); + else + stoppedStateAction.actionPerformed(actionEvent); + } + }); + JMenu run = new JMenu(Lang.get("menu_sim")); menuBar.add(run); run.add(editRunAttributes.createJMenuItem()); diff --git a/src/main/java/de/neemann/gui/ToolTipAction.java b/src/main/java/de/neemann/gui/ToolTipAction.java index ddde53148..cf6341782 100644 --- a/src/main/java/de/neemann/gui/ToolTipAction.java +++ b/src/main/java/de/neemann/gui/ToolTipAction.java @@ -10,6 +10,7 @@ import java.awt.*; public abstract class ToolTipAction extends AbstractAction { private Icon icon; private String toolTipText; + private KeyStroke accelerator; /** * Creates a new instance @@ -59,6 +60,17 @@ public abstract class ToolTipAction extends AbstractAction { return this; } + /** + * Sets an accelerator to the item + * + * @param accelerator the accelerator + * @return this for call chaining + */ + public ToolTipAction setAccelerator(KeyStroke accelerator) { + this.accelerator = accelerator; + return this; + } + /** * Sets the activated state for this action * @@ -109,6 +121,8 @@ public abstract class ToolTipAction extends AbstractAction { */ public JMenuItem createJMenuItem() { JMenuItem i = new JMenuItem(this); + if (accelerator!=null) + i.setAccelerator(accelerator); if (toolTipText != null) { i.setToolTipText(toolTipText); }