From b5469da8ef7db672bcf0026cde58a04ceaed1027 Mon Sep 17 00:00:00 2001 From: Zlatin Balevsky Date: Sun, 13 Mar 2022 15:20:43 +0000 Subject: [PATCH] Ctrl-W for closing tabs, Ctrl-R for repeating search --- .../views/com/muwire/gui/BrowseView.groovy | 7 +++++++ .../views/com/muwire/gui/CollectionTabView.groovy | 10 +++++++++- .../views/com/muwire/gui/SearchTabView.groovy | 13 ++++++++++++- 3 files changed, 28 insertions(+), 2 deletions(-) diff --git a/gui/griffon-app/views/com/muwire/gui/BrowseView.groovy b/gui/griffon-app/views/com/muwire/gui/BrowseView.groovy index fa820408..d20d6d55 100644 --- a/gui/griffon-app/views/com/muwire/gui/BrowseView.groovy +++ b/gui/griffon-app/views/com/muwire/gui/BrowseView.groovy @@ -2,11 +2,14 @@ package com.muwire.gui import griffon.core.artifact.GriffonView +import javax.swing.JComponent import javax.swing.JPanel import javax.swing.JTable import javax.swing.JTextField import javax.swing.JTree +import javax.swing.KeyStroke import javax.swing.tree.TreePath +import java.awt.event.KeyEvent import static com.muwire.gui.Translator.trans import griffon.inject.MVCMember @@ -124,6 +127,10 @@ class BrowseView { } } + p.registerKeyboardAction(closeTab, + KeyStroke.getKeyStroke(KeyEvent.VK_W, KeyEvent.CTRL_DOWN_MASK), + JComponent.WHEN_IN_FOCUSED_WINDOW) + // right-click menu def mouseListener = new MouseAdapter() { public void mouseReleased(MouseEvent e) { diff --git a/gui/griffon-app/views/com/muwire/gui/CollectionTabView.groovy b/gui/griffon-app/views/com/muwire/gui/CollectionTabView.groovy index c20906ea..f8512c5c 100644 --- a/gui/griffon-app/views/com/muwire/gui/CollectionTabView.groovy +++ b/gui/griffon-app/views/com/muwire/gui/CollectionTabView.groovy @@ -1,6 +1,9 @@ package com.muwire.gui +import javax.swing.JComponent +import javax.swing.KeyStroke import javax.swing.tree.DefaultMutableTreeNode +import java.awt.event.KeyEvent import static com.muwire.gui.Translator.trans import griffon.core.artifact.GriffonView @@ -38,7 +41,7 @@ class CollectionTabView { CollectionTabController controller def parent - def p + JComponent p JTable collectionsTable def lastCollectionsTableSortEvent @@ -153,6 +156,11 @@ class CollectionTabView { } } } + + p.registerKeyboardAction(closeTab, + KeyStroke.getKeyStroke(KeyEvent.VK_W, KeyEvent.CTRL_DOWN_MASK), + JComponent.WHEN_IN_FOCUSED_WINDOW) + } boolean isSequentialCollection() { diff --git a/gui/griffon-app/views/com/muwire/gui/SearchTabView.groovy b/gui/griffon-app/views/com/muwire/gui/SearchTabView.groovy index 72806500..adad7f55 100644 --- a/gui/griffon-app/views/com/muwire/gui/SearchTabView.groovy +++ b/gui/griffon-app/views/com/muwire/gui/SearchTabView.groovy @@ -6,8 +6,10 @@ import griffon.core.artifact.GriffonView import javax.swing.JPanel import javax.swing.JTabbedPane import javax.swing.JTextField +import javax.swing.KeyStroke import javax.swing.tree.TreePath import java.awt.Component +import java.awt.event.KeyEvent import java.util.stream.Collectors import static com.muwire.gui.Translator.trans @@ -54,7 +56,7 @@ class SearchTabView { UISettings settings - Component pane + JComponent pane JTabbedPane parent String searchTerms JTable sendersTable @@ -237,6 +239,15 @@ class SearchTabView { this.pane.putClientProperty("results-table",resultsTable) pane.putClientProperty("focusListener", new FocusListener()) + + pane.with { + registerKeyboardAction(closeTab, + KeyStroke.getKeyStroke(KeyEvent.VK_W, KeyEvent.CTRL_DOWN_MASK), + WHEN_IN_FOCUSED_WINDOW) + registerKeyboardAction(repeatSearch, + KeyStroke.getKeyStroke(KeyEvent.VK_R, KeyEvent.CTRL_DOWN_MASK), + WHEN_IN_FOCUSED_WINDOW) + } } void mvcGroupInit(Map args) {