From 234c29f4a7e5b9cca9cad8a2c0e4326472a9cfce Mon Sep 17 00:00:00 2001 From: Starryi Date: Thu, 30 Sep 2021 15:12:48 +0800 Subject: [PATCH] =?UTF-8?q?REPORT-60431=20=E3=80=90=E4=B8=BB=E9=A2=98?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E3=80=91=E7=BB=84=E4=BB=B6=E5=8F=B3=E9=94=AE?= =?UTF-8?q?=E6=97=B6=EF=BC=8C=E4=B8=8B=E8=BD=BD=E6=8C=89=E9=92=AE=E4=BE=9D?= =?UTF-8?q?=E6=97=A7=E5=AD=98=E5=9C=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 【问题原因】 主题获取交互优化 【改动思路】 同上 --- .../share/ui/block/OnlineWidgetBlock.java | 35 +++++++++++++++++-- 1 file changed, 32 insertions(+), 3 deletions(-) diff --git a/designer-form/src/main/java/com/fr/design/mainframe/share/ui/block/OnlineWidgetBlock.java b/designer-form/src/main/java/com/fr/design/mainframe/share/ui/block/OnlineWidgetBlock.java index dffddc81c..fcf22b9d8 100644 --- a/designer-form/src/main/java/com/fr/design/mainframe/share/ui/block/OnlineWidgetBlock.java +++ b/designer-form/src/main/java/com/fr/design/mainframe/share/ui/block/OnlineWidgetBlock.java @@ -35,8 +35,11 @@ import com.fr.stable.StableUtils; import com.fr.stable.StringUtils; import javax.swing.JPanel; +import javax.swing.JPopupMenu; import javax.swing.SwingConstants; import javax.swing.SwingWorker; +import javax.swing.event.PopupMenuEvent; +import javax.swing.event.PopupMenuListener; import java.awt.AlphaComposite; import java.awt.BorderLayout; import java.awt.Color; @@ -60,9 +63,10 @@ import java.util.concurrent.ExecutionException; * Created by kerry on 2020-10-19 * 商城组件块 */ -public class OnlineWidgetBlock extends AbstractOnlineWidgetBlock { +public class OnlineWidgetBlock extends AbstractOnlineWidgetBlock implements PopupMenuListener { private boolean isMouseEnter = false; private boolean downloading = false; + private boolean popupMenuVisible = false; private static final Color COVER_COLOR = Color.decode("#333334"); protected MouseEvent lastPressEvent; private double process = 0D; @@ -89,6 +93,13 @@ public class OnlineWidgetBlock extends AbstractOnlineWidgetBlock { return southPane; } + @Override + public JPopupMenu createRightClickPopupMenu() { + JPopupMenu popupMenu = super.createRightClickPopupMenu(); + popupMenu.addPopupMenuListener(this); + return popupMenu; + } + @Override public void mouseEntered(MouseEvent e) { super.mouseEntered(e); @@ -113,7 +124,7 @@ public class OnlineWidgetBlock extends AbstractOnlineWidgetBlock { public void mouseClicked(MouseEvent e) { super.mouseClicked(e); boolean isLeftClickDownloadIcon = e.getButton() != MouseEvent.BUTTON3 && getDownloadIconRec().contains(e.getX(), e.getY()); - if (isLeftClickDownloadIcon && !checkWidgetInstalled()) { + if (!popupMenuVisible && isLeftClickDownloadIcon && !checkWidgetInstalled()) { downLoadWidget(); } } @@ -270,7 +281,7 @@ public class OnlineWidgetBlock extends AbstractOnlineWidgetBlock { return; } //如果鼠标移动到布局内且布局不可编辑,画出编辑蒙层 - if (isMouseEnter || downloading) { + if (!popupMenuVisible && (isMouseEnter || downloading)) { Graphics2D g2d = (Graphics2D) g; Composite oldComposite = g2d.getComposite(); //画白色的编辑层 @@ -299,6 +310,24 @@ public class OnlineWidgetBlock extends AbstractOnlineWidgetBlock { } } + @Override + public void popupMenuWillBecomeVisible(PopupMenuEvent e) { + this.popupMenuVisible = true; + repaint(); + } + + @Override + public void popupMenuWillBecomeInvisible(PopupMenuEvent e) { + this.popupMenuVisible = false; + repaint(); + } + + @Override + public void popupMenuCanceled(PopupMenuEvent e) { + this.popupMenuVisible = false; + repaint(); + } + class WidgetDownloadProcess implements com.fr.design.extra.Process {