From 58338f48486bba23a5152cab4aa7febff206bf7f Mon Sep 17 00:00:00 2001 From: Karl Tauber Date: Mon, 14 Sep 2020 20:35:41 +0200 Subject: [PATCH] UI defaults inspector: scroll with Up, Down, PageUp and PageDown keys if filter field is focused --- .../extras/FlatUIDefaultsInspector.java | 23 +++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/flatlaf-extras/src/main/java/com/formdev/flatlaf/extras/FlatUIDefaultsInspector.java b/flatlaf-extras/src/main/java/com/formdev/flatlaf/extras/FlatUIDefaultsInspector.java index fb14ead9..4be9b13e 100644 --- a/flatlaf-extras/src/main/java/com/formdev/flatlaf/extras/FlatUIDefaultsInspector.java +++ b/flatlaf-extras/src/main/java/com/formdev/flatlaf/extras/FlatUIDefaultsInspector.java @@ -18,8 +18,6 @@ package com.formdev.flatlaf.extras; import java.awt.*; import java.awt.event.*; -import java.awt.event.InputEvent; -import java.awt.event.KeyEvent; import java.util.ArrayList; import java.util.Enumeration; import java.util.Locale; @@ -109,6 +107,10 @@ public class FlatUIDefaultsInspector filterChanged(); } } ); + delegateKey( KeyEvent.VK_UP, "unitScrollUp" ); + delegateKey( KeyEvent.VK_DOWN, "unitScrollDown" ); + delegateKey( KeyEvent.VK_PAGE_UP, "scrollUp" ); + delegateKey( KeyEvent.VK_PAGE_DOWN, "scrollDown" ); // initialize table Item[] items = getUIDefaultsItems(); @@ -142,6 +144,23 @@ public class FlatUIDefaultsInspector valueTypeField.setSelectedItem( valueType ); } + private void delegateKey( int keyCode, String actionKey ) { + KeyStroke keyStroke = KeyStroke.getKeyStroke( keyCode, 0 ); + String actionMapKey = "delegate-" + actionKey; + + filterField.getInputMap().put( keyStroke, actionMapKey ); + filterField.getActionMap().put( actionMapKey, new AbstractAction() { + @Override + public void actionPerformed( ActionEvent e ) { + Action action = scrollPane.getActionMap().get( actionKey ); + if( action != null ) { + action.actionPerformed( new ActionEvent( scrollPane, + e.getID(), actionKey, e.getWhen(), e.getModifiers() ) ); + } + } + } ); + } + private Item[] getUIDefaultsItems() { UIDefaults defaults = UIManager.getDefaults();