added SPACE shortcut to start/stop the simulation

This commit is contained in:
hneemann 2017-05-27 09:33:11 +02:00
parent e0200f939f
commit 0da18aee21
2 changed files with 26 additions and 0 deletions

View File

@ -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<Key> 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());

View File

@ -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);
}