diff --git a/designer-base/src/main/java/com/fine/component/popup/GlassPopupManager.java b/designer-base/src/main/java/com/fine/component/popup/GlassPopupManager.java index c286af31d8..0ff1da6d4e 100755 --- a/designer-base/src/main/java/com/fine/component/popup/GlassPopupManager.java +++ b/designer-base/src/main/java/com/fine/component/popup/GlassPopupManager.java @@ -1,5 +1,6 @@ package com.fine.component.popup; +import javax.swing.JComponent; import javax.swing.JLayeredPane; import javax.swing.JRootPane; import javax.swing.SwingUtilities; @@ -90,6 +91,16 @@ public class GlassPopupManager { JRootPane rootPane = SwingUtilities.getRootPane(container); instance.contentPane = rootPane.getContentPane(); rootPane.setGlassPane(instance.layerPane); + + interceptMouseEvents(instance.layerPane); + } + + private static void interceptMouseEvents(JComponent layerPane) { + // 拦截鼠标事件 + layerPane.addMouseListener(new MouseAdapter() { + }); + layerPane.addMouseMotionListener(new MouseAdapter() { + }); } /** diff --git a/designer-base/src/main/java/com/fine/component/popup/ProgressChild.java b/designer-base/src/main/java/com/fine/component/popup/ProgressChild.java index d56cafc95a..50d814f662 100644 --- a/designer-base/src/main/java/com/fine/component/popup/ProgressChild.java +++ b/designer-base/src/main/java/com/fine/component/popup/ProgressChild.java @@ -85,6 +85,15 @@ public class ProgressChild extends GlassPaneChild { return this; } + /** + * 设置进度条为不确定模式、无限加载 + * + */ + public ProgressChild asIndeterminate() { + progressBar.setIndeterminate(true); + return this; + } + private void initLayout() { setLayout(new BorderLayout()); setPreferredSize(FineUIScale.createScaleDimension(400, 100)); diff --git a/designer-base/src/main/java/com/fine/theme/utils/GlassLayerLoader.java b/designer-base/src/main/java/com/fine/theme/utils/GlassLayerLoader.java index ced8ba30df..8b7540b7f3 100644 --- a/designer-base/src/main/java/com/fine/theme/utils/GlassLayerLoader.java +++ b/designer-base/src/main/java/com/fine/theme/utils/GlassLayerLoader.java @@ -100,4 +100,15 @@ public class GlassLayerLoader { runWithLoader(task, DesignerContext.getDesignerFrame(), new ProgressChild(info).setMaxWait(maxWait)); } + /** + * 进度条遮罩加载动画,进度条持续加载 + * + * @param task 耗时任务 + * @param info 显示加载面板的 JFrame + * @param 任务的返回值类型 + */ + public void runWithProgressLoader(Callable task, String info) { + runWithLoader(task, DesignerContext.getDesignerFrame(), new ProgressChild(info).asIndeterminate()); + } + } diff --git a/designer-base/src/main/java/com/fr/design/EnvChangeEntrance.java b/designer-base/src/main/java/com/fr/design/EnvChangeEntrance.java index 75afa6e934..1b4eeea9c8 100644 --- a/designer-base/src/main/java/com/fr/design/EnvChangeEntrance.java +++ b/designer-base/src/main/java/com/fr/design/EnvChangeEntrance.java @@ -108,7 +108,7 @@ public class EnvChangeEntrance { VersionCheckUtils.showVersionCheckDialog(envName); } return null; - }, Toolkit.i18nText("Fine-Design_Basic_M_Switch_Workspace"), 5); + }, Toolkit.i18nText("Fine-Design_Basic_M_Switch_Workspace")); } /** @@ -540,7 +540,7 @@ public class EnvChangeEntrance { VersionCheckUtils.showVersionCheckDialog(envListPane.getSelectedName()); } return null; - }, Toolkit.i18nText("Fine-Design_Basic_M_Switch_Workspace"), 5); + }, Toolkit.i18nText("Fine-Design_Basic_M_Switch_Workspace")); } @Override diff --git a/designer-base/src/main/java/com/fr/design/foldablepane/UIExpandablePane.java b/designer-base/src/main/java/com/fr/design/foldablepane/UIExpandablePane.java index f076ed10c0..976255d920 100644 --- a/designer-base/src/main/java/com/fr/design/foldablepane/UIExpandablePane.java +++ b/designer-base/src/main/java/com/fr/design/foldablepane/UIExpandablePane.java @@ -128,6 +128,7 @@ public class UIExpandablePane extends JPanel { HeaderPane hp = (HeaderPane) e.getSource(); if (!Animator.useAnimation()) { contentPanel.setVisible(!showExpand); + showExpand = !showExpand; } else if (!animator.isRunning()) { animator.start(); }