diff --git a/pom.xml b/pom.xml
index f43bc45..ed6aab0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -28,6 +28,7 @@
4.9.3
2.0
2.0
+ 2.0
5.7.16
1.2.78
6.1.0
@@ -104,6 +105,12 @@
${flatlaf-extras.version}
+
+ com.formdev
+ flatlaf-intellij-themes
+ ${flatlaf-intellij-themes.version}
+
+
cn.hutool
hutool-all
@@ -160,7 +167,7 @@
installForAllUsers
- true
+ true
false
false
@@ -170,30 +177,30 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/java/com/luoboduner/moo/info/App.java b/src/main/java/com/luoboduner/moo/info/App.java
index a0ad380..0dfb849 100644
--- a/src/main/java/com/luoboduner/moo/info/App.java
+++ b/src/main/java/com/luoboduner/moo/info/App.java
@@ -1,6 +1,8 @@
package com.luoboduner.moo.info;
import com.formdev.flatlaf.extras.FlatDesktop;
+import com.formdev.flatlaf.extras.FlatInspector;
+import com.formdev.flatlaf.extras.FlatUIDefaultsInspector;
import com.formdev.flatlaf.util.SystemInfo;
import com.luoboduner.moo.info.ui.Init;
import com.luoboduner.moo.info.ui.dialog.AboutDialog;
@@ -69,6 +71,11 @@ public class App {
}
Init.initTheme();
+
+ // install inspectors
+ FlatInspector.install( "ctrl shift alt X" );
+ FlatUIDefaultsInspector.install( "ctrl shift alt Y" );
+
mainFrame = new MainFrame();
mainFrame.init();
JPanel loadingPanel = new LoadingForm().getLoadingPanel();
diff --git a/src/main/java/com/luoboduner/moo/info/ui/Init.java b/src/main/java/com/luoboduner/moo/info/ui/Init.java
index cca00fa..bb665e8 100644
--- a/src/main/java/com/luoboduner/moo/info/ui/Init.java
+++ b/src/main/java/com/luoboduner/moo/info/ui/Init.java
@@ -3,9 +3,11 @@ package com.luoboduner.moo.info.ui;
import cn.hutool.core.thread.ThreadUtil;
import cn.hutool.log.Log;
import cn.hutool.log.LogFactory;
-import com.formdev.flatlaf.FlatLightLaf;
-import com.formdev.flatlaf.IntelliJTheme;
+import com.formdev.flatlaf.*;
import com.formdev.flatlaf.extras.FlatSVGIcon;
+import com.formdev.flatlaf.intellijthemes.FlatCyanLightIJTheme;
+import com.formdev.flatlaf.intellijthemes.FlatDarkPurpleIJTheme;
+import com.formdev.flatlaf.intellijthemes.FlatLightFlatIJTheme;
import com.luoboduner.moo.info.App;
import com.luoboduner.moo.info.ui.component.TopMenuBar;
import com.luoboduner.moo.info.ui.form.*;
@@ -13,7 +15,6 @@ import com.luoboduner.moo.info.util.SystemUtil;
import com.luoboduner.moo.info.util.UIUtil;
import com.luoboduner.moo.info.util.UpgradeUtil;
import org.apache.commons.lang3.StringUtils;
-import org.apache.commons.lang3.exception.ExceptionUtils;
import javax.swing.*;
import javax.swing.plaf.FontUIResource;
@@ -86,24 +87,6 @@ public class Init {
* init look and feel
*/
public static void initTheme() {
- if (SystemUtil.isMacM1()) {
- try {
- UIManager.setLookAndFeel("com.formdev.flatlaf.FlatDarculaLaf");
- logger.warn("FlatDarculaLaf theme set.");
- } catch (Exception e) {
- try {
- UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
- } catch (Exception e2) {
- logger.error(ExceptionUtils.getStackTrace(e2));
- }
- logger.error(ExceptionUtils.getStackTrace(e));
- }
- return;
- }
-
- if (App.config.isUnifiedBackground()) {
- UIManager.put("TitlePane.unifiedBackground", true);
- }
try {
switch (App.config.getTheme()) {
@@ -111,92 +94,43 @@ public class Init {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
break;
case "Flat Light":
- if (SystemUtil.isJBR()) {
- JFrame.setDefaultLookAndFeelDecorated(true);
- JDialog.setDefaultLookAndFeelDecorated(true);
- }
- FlatLightLaf.install();
+ FlatLightLaf.setup();
break;
case "Flat IntelliJ":
- if (SystemUtil.isJBR()) {
- JFrame.setDefaultLookAndFeelDecorated(true);
- JDialog.setDefaultLookAndFeelDecorated(true);
- }
- UIManager.setLookAndFeel("com.formdev.flatlaf.FlatIntelliJLaf");
+ FlatIntelliJLaf.setup();
break;
case "Flat Dark":
- if (SystemUtil.isJBR()) {
- JFrame.setDefaultLookAndFeelDecorated(true);
- JDialog.setDefaultLookAndFeelDecorated(true);
- }
- UIManager.setLookAndFeel("com.formdev.flatlaf.FlatDarkLaf");
- break;
- case "Darcula":
- case "Darcula(Recommended)":
- case "Flat Darcula(Recommended)":
- if (SystemUtil.isJBR()) {
- JFrame.setDefaultLookAndFeelDecorated(true);
- JDialog.setDefaultLookAndFeelDecorated(true);
- }
- UIManager.setLookAndFeel("com.formdev.flatlaf.FlatDarculaLaf");
-
- UIManager.put("PopupMenu.background", UIManager.getColor("Panel.background"));
-
-/**
- If you don't like/want it, you can disable it with:
- UIManager.put( "TitlePane.useWindowDecorations", false );
-
- It is also possible to disable only the embedded menu bar (and keep the dark title pane) with:
- UIManager.put( "TitlePane.menuBarEmbedded", false );
-
- It is also possible to disable this on command line with following VM options:
- -Dflatlaf.useWindowDecorations=false
- -Dflatlaf.menuBarEmbedded=false
-
- If you have following code in your app, you can remove it (no longer necessary):
- // enable window decorations
- JFrame.setDefaultLookAndFeelDecorated( true );
- JDialog.setDefaultLookAndFeelDecorated( true );
- **/
+ FlatDarkLaf.setup();
break;
case "Dark purple":
- if (SystemUtil.isJBR()) {
- JFrame.setDefaultLookAndFeelDecorated(true);
- JDialog.setDefaultLookAndFeelDecorated(true);
- }
- IntelliJTheme.setup(App.class.getResourceAsStream(
- "/theme/DarkPurple.theme.json"));
+ FlatDarkPurpleIJTheme.setup();
break;
case "IntelliJ Cyan":
- if (SystemUtil.isJBR()) {
- JFrame.setDefaultLookAndFeelDecorated(true);
- JDialog.setDefaultLookAndFeelDecorated(true);
- }
- IntelliJTheme.setup(App.class.getResourceAsStream(
- "/theme/Cyan.theme.json"));
+ FlatCyanLightIJTheme.setup();
break;
case "IntelliJ Light":
- if (SystemUtil.isJBR()) {
- JFrame.setDefaultLookAndFeelDecorated(true);
- JDialog.setDefaultLookAndFeelDecorated(true);
- }
- IntelliJTheme.setup(App.class.getResourceAsStream(
- "/theme/Light.theme.json"));
+ FlatLightFlatIJTheme.setup();
break;
default:
- if (SystemUtil.isJBR()) {
- JFrame.setDefaultLookAndFeelDecorated(true);
- JDialog.setDefaultLookAndFeelDecorated(true);
- }
- UIManager.setLookAndFeel("com.formdev.flatlaf.FlatDarculaLaf");
+ FlatDarculaLaf.setup();
}
+
if (UIUtil.isDarkLaf()) {
// FlatSVGIcon.ColorFilter.getInstance().setMapper(color -> color.brighter().brighter());
} else {
FlatSVGIcon.ColorFilter.getInstance().setMapper(color -> color.darker().darker());
+// SwingUtilities.windowForComponent(App.mainFrame).repaint();
}
-// SwingUtilities.windowForComponent(App.mainFrame).repaint();
+
+ if (App.config.isUnifiedBackground()) {
+ UIManager.put("TitlePane.unifiedBackground", true);
+ }
+
+ // top menubar background
+ UIManager.put("PopupMenu.background", UIManager.getColor("Panel.background"));
+ // arrow type
+ UIManager.put("Component.arrowType", "chevron");
} catch (Exception e) {
logger.error(e);
}