From bae9442614fc7a842d19dcc7cf63fcbc91ca881a Mon Sep 17 00:00:00 2001 From: rememberber Date: Mon, 24 Jul 2023 21:50:40 +0800 Subject: [PATCH] Optimize performance under macOS --- .../luoboduner/moo/info/ui/dialog/AboutDialog.java | 11 +++++++++++ .../luoboduner/moo/info/ui/dialog/SettingDialog.java | 11 +++++++++++ .../moo/info/ui/dialog/SystemEnvResultDialog.java | 11 +++++++++++ .../moo/info/ui/dialog/SystemInfoTestDialog.java | 10 ++++++++++ .../luoboduner/moo/info/ui/dialog/UpdateDialog.form | 2 +- .../luoboduner/moo/info/ui/dialog/UpdateDialog.java | 11 +++++++++++ .../moo/info/ui/dialog/UpdateInfoDialog.form | 4 ++-- .../moo/info/ui/dialog/UpdateInfoDialog.java | 10 ++++++++++ 8 files changed, 67 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/luoboduner/moo/info/ui/dialog/AboutDialog.java b/src/main/java/com/luoboduner/moo/info/ui/dialog/AboutDialog.java index 876a558..25ea0ad 100644 --- a/src/main/java/com/luoboduner/moo/info/ui/dialog/AboutDialog.java +++ b/src/main/java/com/luoboduner/moo/info/ui/dialog/AboutDialog.java @@ -2,6 +2,7 @@ package com.luoboduner.moo.info.ui.dialog; import cn.hutool.core.thread.ThreadUtil; import com.formdev.flatlaf.extras.FlatSVGIcon; +import com.formdev.flatlaf.util.SystemInfo; import com.intellij.uiDesigner.core.GridConstraints; import com.intellij.uiDesigner.core.GridLayoutManager; import com.intellij.uiDesigner.core.Spacer; @@ -9,6 +10,7 @@ import com.luoboduner.moo.info.App; import com.luoboduner.moo.info.ui.UiConsts; import com.luoboduner.moo.info.util.ComponentUtil; import com.luoboduner.moo.info.util.ScrollUtil; +import com.luoboduner.moo.info.util.SystemUtil; import com.luoboduner.moo.info.util.UpgradeUtil; import javax.swing.*; @@ -47,6 +49,15 @@ public class AboutDialog extends JDialog { setContentPane(contentPane); setModal(true); + if (SystemUtil.isMacOs() && SystemInfo.isMacFullWindowContentSupported) { + this.getRootPane().putClientProperty("apple.awt.fullWindowContent", true); + this.getRootPane().putClientProperty("apple.awt.transparentTitleBar", true); + this.getRootPane().putClientProperty("apple.awt.fullscreenable", true); + this.getRootPane().putClientProperty("apple.awt.windowTitleVisible", false); + GridLayoutManager gridLayoutManager = (GridLayoutManager) contentPane.getLayout(); + gridLayoutManager.setMargin(new Insets(28, 0, 0, 0)); + } + setDefaultCloseOperation(DO_NOTHING_ON_CLOSE); addWindowListener(new WindowAdapter() { @Override diff --git a/src/main/java/com/luoboduner/moo/info/ui/dialog/SettingDialog.java b/src/main/java/com/luoboduner/moo/info/ui/dialog/SettingDialog.java index 1e5a0c2..abaafe5 100644 --- a/src/main/java/com/luoboduner/moo/info/ui/dialog/SettingDialog.java +++ b/src/main/java/com/luoboduner/moo/info/ui/dialog/SettingDialog.java @@ -2,12 +2,14 @@ package com.luoboduner.moo.info.ui.dialog; import cn.hutool.log.Log; import cn.hutool.log.LogFactory; +import com.formdev.flatlaf.util.SystemInfo; import com.intellij.uiDesigner.core.GridConstraints; import com.intellij.uiDesigner.core.GridLayoutManager; import com.intellij.uiDesigner.core.Spacer; import com.luoboduner.moo.info.App; import com.luoboduner.moo.info.util.ComponentUtil; import com.luoboduner.moo.info.util.ScrollUtil; +import com.luoboduner.moo.info.util.SystemUtil; import javax.swing.*; import javax.swing.border.TitledBorder; @@ -35,6 +37,15 @@ public class SettingDialog extends JDialog { setContentPane(contentPane); setModal(true); + if (SystemUtil.isMacOs() && SystemInfo.isMacFullWindowContentSupported) { + this.getRootPane().putClientProperty("apple.awt.fullWindowContent", true); + this.getRootPane().putClientProperty("apple.awt.transparentTitleBar", true); + this.getRootPane().putClientProperty("apple.awt.fullscreenable", true); + this.getRootPane().putClientProperty("apple.awt.windowTitleVisible", false); + GridLayoutManager gridLayoutManager = (GridLayoutManager) contentPane.getLayout(); + gridLayoutManager.setMargin(new Insets(28, 0, 0, 0)); + } + setDefaultCloseOperation(DO_NOTHING_ON_CLOSE); addWindowListener(new WindowAdapter() { @Override diff --git a/src/main/java/com/luoboduner/moo/info/ui/dialog/SystemEnvResultDialog.java b/src/main/java/com/luoboduner/moo/info/ui/dialog/SystemEnvResultDialog.java index 1c8fcd4..d577bec 100644 --- a/src/main/java/com/luoboduner/moo/info/ui/dialog/SystemEnvResultDialog.java +++ b/src/main/java/com/luoboduner/moo/info/ui/dialog/SystemEnvResultDialog.java @@ -1,10 +1,12 @@ package com.luoboduner.moo.info.ui.dialog; +import com.formdev.flatlaf.util.SystemInfo; import com.intellij.uiDesigner.core.GridConstraints; import com.intellij.uiDesigner.core.GridLayoutManager; import com.intellij.uiDesigner.core.Spacer; import com.luoboduner.moo.info.App; import com.luoboduner.moo.info.util.ComponentUtil; +import com.luoboduner.moo.info.util.SystemUtil; import javax.swing.*; import javax.swing.border.TitledBorder; @@ -26,6 +28,15 @@ public class SystemEnvResultDialog extends JDialog { setModal(true); getRootPane().setDefaultButton(buttonOK); + if (SystemUtil.isMacOs() && SystemInfo.isMacFullWindowContentSupported) { + this.getRootPane().putClientProperty("apple.awt.fullWindowContent", true); + this.getRootPane().putClientProperty("apple.awt.transparentTitleBar", true); + this.getRootPane().putClientProperty("apple.awt.fullscreenable", true); + this.getRootPane().putClientProperty("apple.awt.windowTitleVisible", false); + GridLayoutManager gridLayoutManager = (GridLayoutManager) contentPane.getLayout(); + gridLayoutManager.setMargin(new Insets(28, 0, 0, 0)); + } + buttonOK.addActionListener(e -> onOK()); setDefaultCloseOperation(DO_NOTHING_ON_CLOSE); diff --git a/src/main/java/com/luoboduner/moo/info/ui/dialog/SystemInfoTestDialog.java b/src/main/java/com/luoboduner/moo/info/ui/dialog/SystemInfoTestDialog.java index 1b83ea5..fb54295 100644 --- a/src/main/java/com/luoboduner/moo/info/ui/dialog/SystemInfoTestDialog.java +++ b/src/main/java/com/luoboduner/moo/info/ui/dialog/SystemInfoTestDialog.java @@ -9,6 +9,7 @@ import com.intellij.uiDesigner.core.Spacer; import com.luoboduner.moo.info.App; import com.luoboduner.moo.info.util.ComponentUtil; import com.luoboduner.moo.info.util.ConsoleUtil; +import com.luoboduner.moo.info.util.SystemUtil; import oshi.SystemInfo; import oshi.hardware.*; import oshi.software.os.*; @@ -38,6 +39,15 @@ public class SystemInfoTestDialog extends JDialog { setModal(true); getRootPane().setDefaultButton(buttonOK); + if (SystemUtil.isMacOs() && com.formdev.flatlaf.util.SystemInfo.isMacFullWindowContentSupported) { + this.getRootPane().putClientProperty("apple.awt.fullWindowContent", true); + this.getRootPane().putClientProperty("apple.awt.transparentTitleBar", true); + this.getRootPane().putClientProperty("apple.awt.fullscreenable", true); + this.getRootPane().putClientProperty("apple.awt.windowTitleVisible", false); + GridLayoutManager gridLayoutManager = (GridLayoutManager) contentPane.getLayout(); + gridLayoutManager.setMargin(new Insets(28, 0, 0, 0)); + } + buttonOK.addActionListener(e -> onOK()); buttonCancel.addActionListener(e -> onCancel()); diff --git a/src/main/java/com/luoboduner/moo/info/ui/dialog/UpdateDialog.form b/src/main/java/com/luoboduner/moo/info/ui/dialog/UpdateDialog.form index 6180000..0f7220f 100644 --- a/src/main/java/com/luoboduner/moo/info/ui/dialog/UpdateDialog.form +++ b/src/main/java/com/luoboduner/moo/info/ui/dialog/UpdateDialog.form @@ -9,7 +9,7 @@ - + diff --git a/src/main/java/com/luoboduner/moo/info/ui/dialog/UpdateDialog.java b/src/main/java/com/luoboduner/moo/info/ui/dialog/UpdateDialog.java index 38a026e..0c328fc 100644 --- a/src/main/java/com/luoboduner/moo/info/ui/dialog/UpdateDialog.java +++ b/src/main/java/com/luoboduner/moo/info/ui/dialog/UpdateDialog.java @@ -4,11 +4,13 @@ import cn.hutool.core.io.FileUtil; import cn.hutool.core.io.StreamProgress; import cn.hutool.core.thread.ThreadUtil; import cn.hutool.http.HttpUtil; +import com.formdev.flatlaf.util.SystemInfo; import com.intellij.uiDesigner.core.GridConstraints; import com.intellij.uiDesigner.core.GridLayoutManager; import com.intellij.uiDesigner.core.Spacer; import com.luoboduner.moo.info.App; import com.luoboduner.moo.info.util.ComponentUtil; +import com.luoboduner.moo.info.util.SystemUtil; import javax.swing.*; import java.awt.*; @@ -44,6 +46,15 @@ public class UpdateDialog extends JDialog { setModal(true); getRootPane().setDefaultButton(buttonOK); + if (SystemUtil.isMacOs() && SystemInfo.isMacFullWindowContentSupported) { + this.getRootPane().putClientProperty("apple.awt.fullWindowContent", true); + this.getRootPane().putClientProperty("apple.awt.transparentTitleBar", true); + this.getRootPane().putClientProperty("apple.awt.fullscreenable", true); + this.getRootPane().putClientProperty("apple.awt.windowTitleVisible", false); + GridLayoutManager gridLayoutManager = (GridLayoutManager) contentPane.getLayout(); + gridLayoutManager.setMargin(new Insets(28, 0, 0, 0)); + } + ComponentUtil.setPreferSizeAndLocateToCenter(this, 600, 200); buttonOK.addActionListener(e -> onOK()); diff --git a/src/main/java/com/luoboduner/moo/info/ui/dialog/UpdateInfoDialog.form b/src/main/java/com/luoboduner/moo/info/ui/dialog/UpdateInfoDialog.form index f0bbc7a..1a1df6a 100644 --- a/src/main/java/com/luoboduner/moo/info/ui/dialog/UpdateInfoDialog.form +++ b/src/main/java/com/luoboduner/moo/info/ui/dialog/UpdateInfoDialog.form @@ -9,7 +9,7 @@ - + @@ -55,7 +55,7 @@ - + diff --git a/src/main/java/com/luoboduner/moo/info/ui/dialog/UpdateInfoDialog.java b/src/main/java/com/luoboduner/moo/info/ui/dialog/UpdateInfoDialog.java index d3cdd68..2388150 100644 --- a/src/main/java/com/luoboduner/moo/info/ui/dialog/UpdateInfoDialog.java +++ b/src/main/java/com/luoboduner/moo/info/ui/dialog/UpdateInfoDialog.java @@ -1,5 +1,6 @@ package com.luoboduner.moo.info.ui.dialog; +import com.formdev.flatlaf.util.SystemInfo; import com.intellij.uiDesigner.core.GridConstraints; import com.intellij.uiDesigner.core.GridLayoutManager; import com.intellij.uiDesigner.core.Spacer; @@ -46,6 +47,15 @@ public class UpdateInfoDialog extends JDialog { setModal(true); getRootPane().setDefaultButton(buttonOK); + if (SystemUtil.isMacOs() && SystemInfo.isMacFullWindowContentSupported) { + this.getRootPane().putClientProperty("apple.awt.fullWindowContent", true); + this.getRootPane().putClientProperty("apple.awt.transparentTitleBar", true); + this.getRootPane().putClientProperty("apple.awt.fullscreenable", true); + this.getRootPane().putClientProperty("apple.awt.windowTitleVisible", false); + GridLayoutManager gridLayoutManager = (GridLayoutManager) contentPane.getLayout(); + gridLayoutManager.setMargin(new Insets(28, 0, 0, 0)); + } + ComponentUtil.setPreferSizeAndLocateToCenter(this, 0.4, 0.64); buttonOK.addActionListener(e -> onOK());