From d5d7349d1b2a23b22fcab179f1cffd66131660a2 Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Sat, 27 May 2017 18:23:15 +0800 Subject: [PATCH] =?UTF-8?q?alphafine=20=E5=B9=BF=E5=91=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mainframe/alphafine/AlphaFineHelper.java | 7 +++++-- .../alphafine/component/AlphaFineDialog.java | 17 +++++++++++++---- .../alphafine/component/AlphaFinePane.java | 4 ++-- .../actions/help/alphafine/RemindPane.java | 3 +-- 4 files changed, 21 insertions(+), 10 deletions(-) diff --git a/designer/src/com/fr/design/mainframe/alphafine/AlphaFineHelper.java b/designer/src/com/fr/design/mainframe/alphafine/AlphaFineHelper.java index b6c482ff7..d5901f8f4 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/AlphaFineHelper.java +++ b/designer/src/com/fr/design/mainframe/alphafine/AlphaFineHelper.java @@ -8,12 +8,15 @@ import com.fr.stable.StringUtils; * Created by XiaXiang on 2017/5/8. */ public class AlphaFineHelper { + private static AlphaFineDialog dialog; /** * 弹出alphafine搜索面板 */ - public static void showAlphaFineDialog() { - AlphaFineDialog dialog = new AlphaFineDialog(DesignerContext.getDesignerFrame()); + public static void showAlphaFineDialog(boolean forceOpen) { + if (dialog == null) { + dialog = new AlphaFineDialog(DesignerContext.getDesignerFrame(), forceOpen); + } dialog.setVisible(true); } diff --git a/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java b/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java index c7ccf0f77..7b9974b79 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java +++ b/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java @@ -67,8 +67,10 @@ public class AlphaFineDialog extends UIDialog { private JList searchResultList; private SearchListModel searchListModel; private SwingWorker searchWorker; + //是否强制打开,因为面板是否dispose绑定了全局鼠标事件,这里需要处理一下 + private boolean foreOpen; - public AlphaFineDialog(Frame parent) { + public AlphaFineDialog(Frame parent, boolean foreOpen) { super(parent); initProperties(); initListener(); @@ -485,9 +487,9 @@ public class AlphaFineDialog extends UIDialog { Point p = k.getLocationOnScreen(); Rectangle dialogRectangle = AlphaFineDialog.this.getBounds(); Rectangle paneRectangle = new Rectangle(AlphaFinePane.createAlphaFinePane().getLocationOnScreen(), AlphaFinePane.createAlphaFinePane().getSize()); - if (!dialogRectangle.contains(p) && !paneRectangle.contains(p)) { + if (!dialogRectangle.contains(p) && !paneRectangle.contains(p) && !foreOpen) { AlphaFineDialog.this.dispose(); - System.out.print(p + "\n"); + foreOpen = false; } } } @@ -518,7 +520,7 @@ public class AlphaFineDialog extends UIDialog { } private static void doClickAction() { - AlphaFineHelper.showAlphaFineDialog(); + AlphaFineHelper.showAlphaFineDialog(false); } @@ -667,4 +669,11 @@ public class AlphaFineDialog extends UIDialog { } + public boolean isForeOpen() { + return foreOpen; + } + + public void setForeOpen(boolean foreOpen) { + this.foreOpen = foreOpen; + } } \ No newline at end of file diff --git a/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFinePane.java b/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFinePane.java index f818fb587..6c23ab403 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFinePane.java +++ b/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFinePane.java @@ -39,13 +39,13 @@ public class AlphaFinePane extends BasicPane { refreshButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - AlphaFineHelper.showAlphaFineDialog(); + AlphaFineHelper.showAlphaFineDialog(false); } }); AlphafineContext.addAlphafineContextListener(new AlphafineListener() { @Override public void showDialog() { - AlphaFineHelper.showAlphaFineDialog(); + AlphaFineHelper.showAlphaFineDialog(true); } }); } diff --git a/designer_base/src/com/fr/design/actions/help/alphafine/RemindPane.java b/designer_base/src/com/fr/design/actions/help/alphafine/RemindPane.java index 17cb6e456..32431d745 100644 --- a/designer_base/src/com/fr/design/actions/help/alphafine/RemindPane.java +++ b/designer_base/src/com/fr/design/actions/help/alphafine/RemindPane.java @@ -46,10 +46,9 @@ public class RemindPane extends JPanel { openButton.addMouseListener(new MouseAdapter() { @Override public void mousePressed(MouseEvent e) { - System.out.print(e.getLocationOnScreen() + "\n"); - //manager.setOperateCount(0); dialog.dispose(); AlphafineContext.fireAlphaFineContextListener(); + } }); backgroundLabel = new UILabel(Inter.getLocText("FR-Designer-Alphafine_No_Remind"));