Skip to content

Commit d708063

Browse files
committed
GH-454 shortcut for run action added
1 parent 5c03d45 commit d708063

File tree

2 files changed

+60
-20
lines changed

2 files changed

+60
-20
lines changed

visualvm/heapviewer.console/src/org/graalvm/visualvm/heapviewer/console/r/RConsoleView.java

Lines changed: 30 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@
7373
import javax.swing.JTabbedPane;
7474
import javax.swing.JToggleButton;
7575
import javax.swing.JToolBar;
76+
import javax.swing.KeyStroke;
7677
import javax.swing.SwingUtilities;
7778
import javax.swing.UIManager;
7879
import javax.swing.plaf.basic.BasicSplitPaneDivider;
@@ -111,7 +112,7 @@
111112
// "OQLConsoleView_ViewName=Results",
112113
"RConsoleView_RQuery=R Query:",
113114
"RConsoleView_RunAction=Run",
114-
"RConsoleView_RunActionTooltip=Execute R script",
115+
"RConsoleView_RunActionTooltip=Execute R script - Crtl+R",
115116
"RConsoleView_CancelAction=Cancel",
116117
"RConsoleView_CancelActionTooltip=Cancel R script execution",
117118
"RConsoleView_LoadAction=Load Script",
@@ -492,14 +493,7 @@ private void init() {
492493
toolbar.add(new GrayLabel(Bundle.RConsoleView_RQuery()));
493494
toolbar.addSpace(2);
494495

495-
runAction = new AbstractAction(Bundle.RConsoleView_RunAction(), Icons.getIcon(GeneralIcons.START)) {
496-
{
497-
putValue(Action.SHORT_DESCRIPTION, Bundle.RConsoleView_RunActionTooltip());
498-
}
499-
public void actionPerformed(ActionEvent e) {
500-
executeQuery();
501-
}
502-
};
496+
runAction = new RunAction();
503497

504498
JButton runButton = new JButton(runAction) {
505499
public Dimension getPreferredSize() {
@@ -770,6 +764,10 @@ protected void validityChanged(boolean valid) {
770764
component = new JPanel(new BorderLayout());
771765
component.add(masterSplit, BorderLayout.CENTER);
772766

767+
JComponent toolbarComp = toolbar.getComponent();
768+
setShortcut(runAction, toolbarComp);
769+
setShortcut(runAction, component);
770+
toolbarComp.repaint();
773771
updateUIState();
774772
// } else {
775773
// component = new JPanel(new BorderLayout());
@@ -783,6 +781,13 @@ protected void validityChanged(boolean valid) {
783781
// }
784782
}
785783

784+
private void setShortcut(Action a, JComponent jc) {
785+
Object actionName = a.getValue(Action.ACTION_COMMAND_KEY);
786+
KeyStroke shortcut = (KeyStroke) a.getValue(Action.ACCELERATOR_KEY);
787+
jc.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(shortcut, actionName);
788+
jc.getActionMap().put(actionName, a);
789+
}
790+
786791

787792
private static HeapViewerNode getNode(URL url, HeapContext context) {
788793
String urls = url.toString();
@@ -843,6 +848,22 @@ public void run() {
843848
}
844849
}
845850

851+
private final class RunAction extends AbstractAction {
852+
private static final String ACTION_NAME = "runScript_Action"; // NOI18N
853+
private final KeyStroke shortcut = KeyStroke.getKeyStroke("ctrl R"); // NOI18N
854+
855+
private RunAction() {
856+
super(Bundle.RConsoleView_RunAction(), Icons.getIcon(GeneralIcons.START));
857+
putValue(Action.SHORT_DESCRIPTION, Bundle.RConsoleView_RunActionTooltip());
858+
putValue(Action.ACTION_COMMAND_KEY, ACTION_NAME);
859+
putValue(Action.ACCELERATOR_KEY, shortcut);
860+
}
861+
862+
public void actionPerformed(ActionEvent e) {
863+
executeQuery();
864+
}
865+
}
866+
846867

847868
private class EditorView extends JPanel {
848869

visualvm/heapviewer/src/org/graalvm/visualvm/heapviewer/oql/OQLConsoleView.java

Lines changed: 30 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@
6262
import javax.swing.JTabbedPane;
6363
import javax.swing.JToggleButton;
6464
import javax.swing.JToolBar;
65+
import javax.swing.KeyStroke;
6566
import javax.swing.ListCellRenderer;
6667
import javax.swing.SortOrder;
6768
import javax.swing.SwingUtilities;
@@ -120,7 +121,7 @@
120121
"OQLConsoleView_ViewName=Results",
121122
"OQLConsoleView_OQLQuery=OQL Query:",
122123
"OQLConsoleView_RunAction=Run",
123-
"OQLConsoleView_RunActionTooltip=Execute OQL script",
124+
"OQLConsoleView_RunActionTooltip=Execute OQL script - Ctrl+R",
124125
"OQLConsoleView_CancelAction=Cancel",
125126
"OQLConsoleView_CancelActionTooltip=Cancel OQL script execution",
126127
"OQLConsoleView_LoadAction=Load Script",
@@ -351,14 +352,7 @@ public void run() {
351352
// toolbar.add(new GrayLabel(Bundle.OQLConsoleView_OQLQuery()));
352353
// toolbar.addSpace(2);
353354

354-
runAction = new AbstractAction(Bundle.OQLConsoleView_RunAction(), Icons.getIcon(GeneralIcons.START)) {
355-
{
356-
putValue(Action.SHORT_DESCRIPTION, Bundle.OQLConsoleView_RunActionTooltip());
357-
}
358-
public void actionPerformed(ActionEvent e) {
359-
executeQuery();
360-
}
361-
};
355+
runAction = new RunAction();
362356

363357
JButton runButton = new JButton(runAction) {
364358
public Dimension getPreferredSize() {
@@ -648,7 +642,10 @@ protected void validityChanged(boolean valid) {
648642
parent.repaint();
649643
}
650644

651-
toolbar.getComponent().repaint();
645+
JComponent toolbarComp = toolbar.getComponent();
646+
setShortcut(runAction, toolbarComp);
647+
setShortcut(runAction, component);
648+
toolbarComp.repaint();
652649

653650
updateUIState();
654651
}
@@ -660,6 +657,13 @@ protected void validityChanged(boolean valid) {
660657
});
661658
}
662659

660+
private void setShortcut(Action a, JComponent jc) {
661+
Object actionName = a.getValue(Action.ACTION_COMMAND_KEY);
662+
KeyStroke shortcut = (KeyStroke) a.getValue(Action.ACCELERATOR_KEY);
663+
jc.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(shortcut, actionName);
664+
jc.getActionMap().put(actionName, a);
665+
}
666+
663667
private void notifyFailedOQL(final boolean available) {
664668
SwingUtilities.invokeLater(new Runnable() {
665669
@Override
@@ -833,7 +837,22 @@ private static HeapViewerNode getNode(URL url, HeapContext context) {
833837
return null;
834838
}
835839

836-
840+
private final class RunAction extends AbstractAction {
841+
private static final String ACTION_NAME = "runScript_Action"; // NOI18N
842+
private final KeyStroke shortcut = KeyStroke.getKeyStroke("ctrl R"); // NOI18N
843+
844+
private RunAction() {
845+
super(Bundle.OQLConsoleView_RunAction(), Icons.getIcon(GeneralIcons.START));
846+
putValue(Action.SHORT_DESCRIPTION, Bundle.OQLConsoleView_RunActionTooltip());
847+
putValue(Action.ACTION_COMMAND_KEY, ACTION_NAME);
848+
putValue(Action.ACCELERATOR_KEY, shortcut);
849+
}
850+
851+
public void actionPerformed(ActionEvent e) {
852+
executeQuery();
853+
}
854+
}
855+
837856
private class EditorView extends JPanel {
838857

839858
EditorView(OQLEditorComponent editor) {

0 commit comments

Comments
 (0)