From bc73df9023e7c7d0e216dfdede8ae987090e5db0 Mon Sep 17 00:00:00 2001 From: AlexProgrammerDE <40795980+AlexProgrammerDE@users.noreply.github.com> Date: Thu, 23 Nov 2023 08:45:30 +0100 Subject: [PATCH 1/2] Fix hint focus issues and also add more themes --- .../serverwrecker/gui/GUIFrame.java | 12 ++++++++---- .../serverwrecker/gui/SWMenuBar.java | 17 +++++++++++++++-- .../serverwrecker/gui/libs/HintManager.java | 3 ++- 3 files changed, 25 insertions(+), 7 deletions(-) diff --git a/src/main/java/net/pistonmaster/serverwrecker/gui/GUIFrame.java b/src/main/java/net/pistonmaster/serverwrecker/gui/GUIFrame.java index 8ee5f76e7..2748ca48c 100644 --- a/src/main/java/net/pistonmaster/serverwrecker/gui/GUIFrame.java +++ b/src/main/java/net/pistonmaster/serverwrecker/gui/GUIFrame.java @@ -65,11 +65,13 @@ public void initComponents(Injector injector) { public void open(Injector injector) { setVisible(true); + // User says they are a first time user that wants hints if (GUIClientProps.getBoolean("firstTimeUser", false)) { SwingUtilities.invokeLater(() -> showHints(injector)); return; } + // Ask whether the user wants hints if (GUIClientProps.getBoolean("firstRun", true)) { var result = JOptionPane.showConfirmDialog( this, @@ -78,15 +80,17 @@ public void open(Injector injector) { JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE ); + if (result == JOptionPane.YES_OPTION) { GUIClientProps.setBoolean("firstTimeUser", true); + GUIClientProps.setBoolean("firstRun", false); - // Give the window a bit of time to close - TimeUtil.waitTime(50, TimeUnit.MILLISECONDS); + requestFocusInWindow(); SwingUtilities.invokeLater(() -> showHints(injector)); + } else if (result == JOptionPane.NO_OPTION || result == JOptionPane.CLOSED_OPTION) { + GUIClientProps.setBoolean("firstTimeUser", false); + GUIClientProps.setBoolean("firstRun", false); } - - GUIClientProps.setBoolean("firstRun", false); } } diff --git a/src/main/java/net/pistonmaster/serverwrecker/gui/SWMenuBar.java b/src/main/java/net/pistonmaster/serverwrecker/gui/SWMenuBar.java index edd3af484..aefae322f 100644 --- a/src/main/java/net/pistonmaster/serverwrecker/gui/SWMenuBar.java +++ b/src/main/java/net/pistonmaster/serverwrecker/gui/SWMenuBar.java @@ -20,8 +20,12 @@ package net.pistonmaster.serverwrecker.gui; import com.formdev.flatlaf.FlatDarculaLaf; +import com.formdev.flatlaf.FlatDarkLaf; import com.formdev.flatlaf.FlatIntelliJLaf; -import com.formdev.flatlaf.intellijthemes.FlatOneDarkIJTheme; +import com.formdev.flatlaf.FlatLightLaf; +import com.formdev.flatlaf.intellijthemes.*; +import com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatMaterialDarkerIJTheme; +import com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatMaterialOceanicIJTheme; import com.formdev.flatlaf.themes.FlatMacDarkLaf; import com.formdev.flatlaf.themes.FlatMacLightLaf; import javafx.stage.FileChooser; @@ -48,9 +52,18 @@ public class SWMenuBar extends JMenuBar { var tempThemes = new ArrayList<>(List.of( FlatDarculaLaf.class, FlatIntelliJLaf.class, + FlatDarkLaf.class, + FlatLightLaf.class, FlatMacDarkLaf.class, FlatMacLightLaf.class, - FlatOneDarkIJTheme.class + FlatOneDarkIJTheme.class, + FlatArcOrangeIJTheme.class, + FlatArcDarkOrangeIJTheme.class, + FlatCyanLightIJTheme.class, + FlatDarkPurpleIJTheme.class, + FlatMaterialDarkerIJTheme.class, + FlatMaterialOceanicIJTheme.class, + FlatCarbonIJTheme.class )); THEMES = List.copyOf(tempThemes); } diff --git a/src/main/java/net/pistonmaster/serverwrecker/gui/libs/HintManager.java b/src/main/java/net/pistonmaster/serverwrecker/gui/libs/HintManager.java index 8cd5491a9..0a6b280a8 100644 --- a/src/main/java/net/pistonmaster/serverwrecker/gui/libs/HintManager.java +++ b/src/main/java/net/pistonmaster/serverwrecker/gui/libs/HintManager.java @@ -135,8 +135,9 @@ private void updateBalloonBorder() { void showHint() { var rootPane = SwingUtilities.getRootPane(hint.owner); - if (rootPane == null) + if (rootPane == null) { return; + } var layeredPane = rootPane.getLayeredPane(); From b961b98b47113cff13ca54001df7ca7f29576c44 Mon Sep 17 00:00:00 2001 From: AlexProgrammerDE <40795980+AlexProgrammerDE@users.noreply.github.com> Date: Thu, 23 Nov 2023 08:48:41 +0100 Subject: [PATCH 2/2] Fix import --- src/main/java/net/pistonmaster/serverwrecker/gui/GUIFrame.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main/java/net/pistonmaster/serverwrecker/gui/GUIFrame.java b/src/main/java/net/pistonmaster/serverwrecker/gui/GUIFrame.java index 2748ca48c..c811163b0 100644 --- a/src/main/java/net/pistonmaster/serverwrecker/gui/GUIFrame.java +++ b/src/main/java/net/pistonmaster/serverwrecker/gui/GUIFrame.java @@ -24,11 +24,9 @@ import net.pistonmaster.serverwrecker.gui.libs.HintManager; import net.pistonmaster.serverwrecker.gui.navigation.CardsContainer; import net.pistonmaster.serverwrecker.gui.navigation.ControlPanel; -import net.pistonmaster.serverwrecker.util.TimeUtil; import javax.swing.*; import java.awt.*; -import java.util.concurrent.TimeUnit; public class GUIFrame extends JFrame { public static final String MAIN_MENU = "MainMenu";