From cd6b55c846f1da5d6febb40dd0e528c106d18e68 Mon Sep 17 00:00:00 2001 From: Karl Tauber Date: Fri, 20 Nov 2020 00:40:10 +0100 Subject: [PATCH] Demo: Alt+UP and Alt+DOWN now switch to previous/next theme --- .../java/com/formdev/flatlaf/demo/ControlBar.java | 10 ++++++++++ .../main/java/com/formdev/flatlaf/demo/DemoFrame.java | 2 +- .../main/java/com/formdev/flatlaf/demo/DemoFrame.jfd | 1 + .../flatlaf/demo/intellijthemes/IJThemesPanel.java | 11 +++++++++++ .../com/formdev/flatlaf/testing/FlatTestFrame.java | 10 ++++++++++ 5 files changed, 33 insertions(+), 1 deletion(-) diff --git a/flatlaf-demo/src/main/java/com/formdev/flatlaf/demo/ControlBar.java b/flatlaf-demo/src/main/java/com/formdev/flatlaf/demo/ControlBar.java index c527959b..534c5570 100644 --- a/flatlaf-demo/src/main/java/com/formdev/flatlaf/demo/ControlBar.java +++ b/flatlaf-demo/src/main/java/com/formdev/flatlaf/demo/ControlBar.java @@ -136,6 +136,16 @@ class ControlBar registerSwitchToLookAndFeel( KeyEvent.VK_F12, MetalLookAndFeel.class.getName() ); registerSwitchToLookAndFeel( KeyEvent.VK_F11, NimbusLookAndFeel.class.getName() ); + // register Alt+UP and Alt+DOWN to switch to previous/next theme + ((JComponent)frame.getContentPane()).registerKeyboardAction( + e -> frame.themesPanel.selectPreviousTheme(), + KeyStroke.getKeyStroke( KeyEvent.VK_UP, KeyEvent.ALT_DOWN_MASK ), + JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT ); + ((JComponent)frame.getContentPane()).registerKeyboardAction( + e -> frame.themesPanel.selectNextTheme(), + KeyStroke.getKeyStroke( KeyEvent.VK_DOWN, KeyEvent.ALT_DOWN_MASK ), + JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT ); + // register ESC key to close frame ((JComponent)frame.getContentPane()).registerKeyboardAction( e -> { diff --git a/flatlaf-demo/src/main/java/com/formdev/flatlaf/demo/DemoFrame.java b/flatlaf-demo/src/main/java/com/formdev/flatlaf/demo/DemoFrame.java index 7f702505..195237c9 100644 --- a/flatlaf-demo/src/main/java/com/formdev/flatlaf/demo/DemoFrame.java +++ b/flatlaf-demo/src/main/java/com/formdev/flatlaf/demo/DemoFrame.java @@ -749,6 +749,6 @@ class DemoFrame private JCheckBoxMenuItem animatedLafChangeMenuItem; private JTabbedPane tabbedPane; private ControlBar controlBar; - private IJThemesPanel themesPanel; + IJThemesPanel themesPanel; // JFormDesigner - End of variables declaration //GEN-END:variables } diff --git a/flatlaf-demo/src/main/java/com/formdev/flatlaf/demo/DemoFrame.jfd b/flatlaf-demo/src/main/java/com/formdev/flatlaf/demo/DemoFrame.jfd index ef2ac5cb..ba2075b6 100644 --- a/flatlaf-demo/src/main/java/com/formdev/flatlaf/demo/DemoFrame.jfd +++ b/flatlaf-demo/src/main/java/com/formdev/flatlaf/demo/DemoFrame.jfd @@ -117,6 +117,7 @@ new FormModel { name: "themesPanel" auxiliary() { "JavaCodeGenerator.variableLocal": false + "JavaCodeGenerator.variableModifiers": 0 } }, new FormLayoutConstraints( class java.lang.String ) { "value": "East" diff --git a/flatlaf-demo/src/main/java/com/formdev/flatlaf/demo/intellijthemes/IJThemesPanel.java b/flatlaf-demo/src/main/java/com/formdev/flatlaf/demo/intellijthemes/IJThemesPanel.java index 3566322a..f3922624 100644 --- a/flatlaf-demo/src/main/java/com/formdev/flatlaf/demo/intellijthemes/IJThemesPanel.java +++ b/flatlaf-demo/src/main/java/com/formdev/flatlaf/demo/intellijthemes/IJThemesPanel.java @@ -220,6 +220,17 @@ public class IJThemesPanel } } + public void selectPreviousTheme() { + int sel = themesList.getSelectedIndex(); + if( sel > 0 ) + themesList.setSelectedIndex( sel - 1 ); + } + + public void selectNextTheme() { + int sel = themesList.getSelectedIndex(); + themesList.setSelectedIndex( sel + 1 ); + } + private void themesListValueChanged( ListSelectionEvent e ) { IJThemeInfo themeInfo = themesList.getSelectedValue(); boolean bundledTheme = (themeInfo != null && themeInfo.resourceName != null); diff --git a/flatlaf-testing/src/main/java/com/formdev/flatlaf/testing/FlatTestFrame.java b/flatlaf-testing/src/main/java/com/formdev/flatlaf/testing/FlatTestFrame.java index 4595dd85..c6172a72 100644 --- a/flatlaf-testing/src/main/java/com/formdev/flatlaf/testing/FlatTestFrame.java +++ b/flatlaf-testing/src/main/java/com/formdev/flatlaf/testing/FlatTestFrame.java @@ -198,6 +198,16 @@ public class FlatTestFrame KeyStroke.getKeyStroke( KeyEvent.VK_MINUS, menuShortcutKeyMask ), JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT ); + // register Alt+UP and Alt+DOWN to switch to previous/next theme + ((JComponent)getContentPane()).registerKeyboardAction( + e -> themesPanel.selectPreviousTheme(), + KeyStroke.getKeyStroke( KeyEvent.VK_UP, KeyEvent.ALT_DOWN_MASK ), + JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT ); + ((JComponent)getContentPane()).registerKeyboardAction( + e -> themesPanel.selectNextTheme(), + KeyStroke.getKeyStroke( KeyEvent.VK_DOWN, KeyEvent.ALT_DOWN_MASK ), + JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT ); + // register ESC key to close frame ((JComponent)getContentPane()).registerKeyboardAction( e -> {