From 631dbe489307e99e5df8780a50f4bae87a020eec Mon Sep 17 00:00:00 2001 From: "Henry.Wang" Date: Wed, 16 Jun 2021 13:55:55 +0800 Subject: [PATCH 1/5] =?UTF-8?q?KERNEL-8038=20=E8=AE=BE=E8=AE=A1=E5=99=A8?= =?UTF-8?q?=E5=AD=98=E5=9C=A8=E4=B8=80=E4=BA=9B=E9=9D=99=E6=80=81=E6=96=B9?= =?UTF-8?q?=E6=B3=95=E5=AF=BC=E8=87=B4=E6=9C=80=E8=BF=91=E5=85=B3=E9=97=AD?= =?UTF-8?q?=E7=9A=84=E6=A8=A1=E6=9D=BF=E5=AF=B9=E8=B1=A1=E4=B8=8D=E9=87=8A?= =?UTF-8?q?=E6=94=BE=E5=86=85=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/file/CloseReleasable.java | 5 +++++ .../design/gui/icombobox/FRTreeComboBox.java | 5 +++++ .../gui/controlpane/EventPropertyPane.java | 12 ++++++++++- .../design/mainframe/FormParaWidgetPane.java | 12 ++++++++++- .../mainframe/FormWidgetDetailPane.java | 8 ++++++- .../java/com/fr/design/mainframe/JForm.java | 20 +++++++++++++++++- .../design/mainframe/WidgetPropertyPane.java | 21 ++++++++++++++++++- 7 files changed, 78 insertions(+), 5 deletions(-) create mode 100644 designer-base/src/main/java/com/fr/design/file/CloseReleasable.java diff --git a/designer-base/src/main/java/com/fr/design/file/CloseReleasable.java b/designer-base/src/main/java/com/fr/design/file/CloseReleasable.java new file mode 100644 index 0000000000..b76c2b18e6 --- /dev/null +++ b/designer-base/src/main/java/com/fr/design/file/CloseReleasable.java @@ -0,0 +1,5 @@ +package com.fr.design.file; + +public interface CloseReleasable { + void releaseResources(); +} diff --git a/designer-base/src/main/java/com/fr/design/gui/icombobox/FRTreeComboBox.java b/designer-base/src/main/java/com/fr/design/gui/icombobox/FRTreeComboBox.java index 8fe79d41ed..e96ae92960 100644 --- a/designer-base/src/main/java/com/fr/design/gui/icombobox/FRTreeComboBox.java +++ b/designer-base/src/main/java/com/fr/design/gui/icombobox/FRTreeComboBox.java @@ -248,6 +248,11 @@ public class FRTreeComboBox extends UIComboBox { private static TreePopup treePopup; + + public static void releaseTreePopup(){ + treePopup = null; + } + private static class FRTreeComboBoxUI extends BasicComboBoxUI implements MouseListener{ private boolean isRollover = false; diff --git a/designer-form/src/main/java/com/fr/design/gui/controlpane/EventPropertyPane.java b/designer-form/src/main/java/com/fr/design/gui/controlpane/EventPropertyPane.java index 72ff969829..cf235191ee 100644 --- a/designer-form/src/main/java/com/fr/design/gui/controlpane/EventPropertyPane.java +++ b/designer-form/src/main/java/com/fr/design/gui/controlpane/EventPropertyPane.java @@ -2,6 +2,8 @@ package com.fr.design.gui.controlpane; import com.fr.design.designer.creator.XCreator; import com.fr.design.designer.properties.EventPropertyTable; +import com.fr.design.file.CloseReleasable; +import com.fr.design.gui.icombobox.FRTreeComboBox; import com.fr.design.i18n.Toolkit; import com.fr.design.mainframe.FormDesigner; import com.fr.design.widget.EventCreator; @@ -13,7 +15,7 @@ import com.fr.stable.Nameable; /** * Created by kerry on 5/17/21 */ -public class EventPropertyPane extends UIListGroupControlPane { +public class EventPropertyPane extends UIListGroupControlPane implements CloseReleasable { private XCreator creator; private FormDesigner designer; @@ -24,6 +26,14 @@ public class EventPropertyPane extends UIListGroupControlPane { this.designer = designer; } + @Override + public void releaseResources() { + Widget widget = creator.toData(); + if (widget.getListenerSize() > 0) { + FRTreeComboBox.releaseTreePopup(); + } + } + /** * 刷新 diff --git a/designer-form/src/main/java/com/fr/design/mainframe/FormParaWidgetPane.java b/designer-form/src/main/java/com/fr/design/mainframe/FormParaWidgetPane.java index b8f3ff6380..32fa71a680 100644 --- a/designer-form/src/main/java/com/fr/design/mainframe/FormParaWidgetPane.java +++ b/designer-form/src/main/java/com/fr/design/mainframe/FormParaWidgetPane.java @@ -7,6 +7,7 @@ import com.fr.design.constants.UIConstants; import com.fr.design.designer.beans.events.DesignerEditListener; import com.fr.design.designer.beans.events.DesignerEvent; import com.fr.design.designer.creator.XCreatorUtils; +import com.fr.design.file.CloseReleasable; import com.fr.design.fun.FormWidgetOptionProvider; import com.fr.design.gui.core.FormWidgetOption; import com.fr.design.gui.core.UserDefinedWidgetOption; @@ -56,7 +57,7 @@ import java.awt.event.MouseEvent; /** * @author null */ -public class FormParaWidgetPane extends JPanel { +public class FormParaWidgetPane extends JPanel implements CloseReleasable { private static FormParaWidgetPane THIS; private final static int BORDER = 5; private final static int WIDGET_WIDTHGAP = 4; @@ -119,6 +120,15 @@ public class FormParaWidgetPane extends JPanel { return THIS; } + public static FormParaWidgetPane getInstance(){ + return THIS; + } + + @Override + public void releaseResources() { + designer = null; + } + public FormParaWidgetPane() { setLayout(new FlowLayout(FlowLayout.LEFT)); DesignerContext.getDesignerFrame().getCenterTemplateCardPane().addComponentListener(new ComponentAdapter() { diff --git a/designer-form/src/main/java/com/fr/design/mainframe/FormWidgetDetailPane.java b/designer-form/src/main/java/com/fr/design/mainframe/FormWidgetDetailPane.java index 8fbc4d06db..a53f1e3660 100644 --- a/designer-form/src/main/java/com/fr/design/mainframe/FormWidgetDetailPane.java +++ b/designer-form/src/main/java/com/fr/design/mainframe/FormWidgetDetailPane.java @@ -2,6 +2,7 @@ package com.fr.design.mainframe; import com.fr.base.BaseUtils; import com.fr.design.dialog.BasicPane; +import com.fr.design.file.CloseReleasable; import com.fr.design.gui.ibutton.UIHeadGroup; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.mainframe.reuse.ComponentReuseNotificationInfo; @@ -23,7 +24,7 @@ import java.util.List; * Date: 14-7-8 * Time: 下午8:18 */ -public class FormWidgetDetailPane extends FormDockView{ +public class FormWidgetDetailPane extends FormDockView implements CloseReleasable { private static final int ONLINE_TAB = 1; private JPanel centerPane; @@ -52,6 +53,11 @@ public class FormWidgetDetailPane extends FormDockView{ private static FormWidgetDetailPane singleton = new FormWidgetDetailPane(); } + @Override + public void releaseResources() { + setEditingFormDesigner(null); + } + public String getViewTitle() { return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Widget_Tree_And_Table"); } diff --git a/designer-form/src/main/java/com/fr/design/mainframe/JForm.java b/designer-form/src/main/java/com/fr/design/mainframe/JForm.java index 3ddc16c9c9..3aab1ca0a1 100644 --- a/designer-form/src/main/java/com/fr/design/mainframe/JForm.java +++ b/designer-form/src/main/java/com/fr/design/mainframe/JForm.java @@ -116,7 +116,8 @@ public class JForm extends JTemplate implements BaseJForm implements BaseJForm implements BaseJForm Date: Wed, 16 Jun 2021 19:20:10 +0800 Subject: [PATCH 2/5] =?UTF-8?q?KERNEL-8038=20=E8=AE=BE=E8=AE=A1=E5=99=A8?= =?UTF-8?q?=E5=AD=98=E5=9C=A8=E4=B8=80=E4=BA=9B=E9=9D=99=E6=80=81=E6=96=B9?= =?UTF-8?q?=E6=B3=95=E5=AF=BC=E8=87=B4=E6=9C=80=E8=BF=91=E5=85=B3=E9=97=AD?= =?UTF-8?q?=E7=9A=84=E6=A8=A1=E6=9D=BF=E5=AF=B9=E8=B1=A1=E4=B8=8D=E9=87=8A?= =?UTF-8?q?=E6=94=BE=E5=86=85=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gui/controlpane/EventPropertyPane.java | 11 ++++------- .../java/com/fr/design/mainframe/JForm.java | 1 - .../fr/design/mainframe/WidgetPropertyPane.java | 9 ++++++++- .../mainframe/widget/ui/FormWidgetCardPane.java | 17 +++++++++++++++-- 4 files changed, 27 insertions(+), 11 deletions(-) diff --git a/designer-form/src/main/java/com/fr/design/gui/controlpane/EventPropertyPane.java b/designer-form/src/main/java/com/fr/design/gui/controlpane/EventPropertyPane.java index cf235191ee..7ba3b6e252 100644 --- a/designer-form/src/main/java/com/fr/design/gui/controlpane/EventPropertyPane.java +++ b/designer-form/src/main/java/com/fr/design/gui/controlpane/EventPropertyPane.java @@ -28,13 +28,11 @@ public class EventPropertyPane extends UIListGroupControlPane implements CloseRe @Override public void releaseResources() { - Widget widget = creator.toData(); - if (widget.getListenerSize() > 0) { - FRTreeComboBox.releaseTreePopup(); - } + creator = null; + designer = null; + this.removeAll(); } - /** * 刷新 */ @@ -54,7 +52,6 @@ public class EventPropertyPane extends UIListGroupControlPane implements CloseRe } - public void populateNameObjects() { Widget widget = creator.toData(); populateNameObjects(widget); @@ -103,7 +100,7 @@ public class EventPropertyPane extends UIListGroupControlPane implements CloseRe return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Add_Event"); } - protected String getWrapperLabelText(){ + protected String getWrapperLabelText() { return Toolkit.i18nText("Fine-Design_Report_Event"); } diff --git a/designer-form/src/main/java/com/fr/design/mainframe/JForm.java b/designer-form/src/main/java/com/fr/design/mainframe/JForm.java index 3aab1ca0a1..eee57c99f4 100644 --- a/designer-form/src/main/java/com/fr/design/mainframe/JForm.java +++ b/designer-form/src/main/java/com/fr/design/mainframe/JForm.java @@ -859,7 +859,6 @@ public class JForm extends JTemplate implements BaseJForm Date: Wed, 16 Jun 2021 19:22:03 +0800 Subject: [PATCH 3/5] =?UTF-8?q?KERNEL-8038=20=E8=AE=BE=E8=AE=A1=E5=99=A8?= =?UTF-8?q?=E5=AD=98=E5=9C=A8=E4=B8=80=E4=BA=9B=E9=9D=99=E6=80=81=E6=96=B9?= =?UTF-8?q?=E6=B3=95=E5=AF=BC=E8=87=B4=E6=9C=80=E8=BF=91=E5=85=B3=E9=97=AD?= =?UTF-8?q?=E7=9A=84=E6=A8=A1=E6=9D=BF=E5=AF=B9=E8=B1=A1=E4=B8=8D=E9=87=8A?= =?UTF-8?q?=E6=94=BE=E5=86=85=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/fr/design/gui/icombobox/FRTreeComboBox.java | 5 ----- 1 file changed, 5 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/gui/icombobox/FRTreeComboBox.java b/designer-base/src/main/java/com/fr/design/gui/icombobox/FRTreeComboBox.java index e96ae92960..8fe79d41ed 100644 --- a/designer-base/src/main/java/com/fr/design/gui/icombobox/FRTreeComboBox.java +++ b/designer-base/src/main/java/com/fr/design/gui/icombobox/FRTreeComboBox.java @@ -248,11 +248,6 @@ public class FRTreeComboBox extends UIComboBox { private static TreePopup treePopup; - - public static void releaseTreePopup(){ - treePopup = null; - } - private static class FRTreeComboBoxUI extends BasicComboBoxUI implements MouseListener{ private boolean isRollover = false; From d2a07364126d28f90cfc1552e11ef99fd0641185 Mon Sep 17 00:00:00 2001 From: "Henry.Wang" Date: Wed, 16 Jun 2021 19:53:47 +0800 Subject: [PATCH 4/5] =?UTF-8?q?KERNEL-8038=20=E8=AE=BE=E8=AE=A1=E5=99=A8?= =?UTF-8?q?=E5=AD=98=E5=9C=A8=E4=B8=80=E4=BA=9B=E9=9D=99=E6=80=81=E6=96=B9?= =?UTF-8?q?=E6=B3=95=E5=AF=BC=E8=87=B4=E6=9C=80=E8=BF=91=E5=85=B3=E9=97=AD?= =?UTF-8?q?=E7=9A=84=E6=A8=A1=E6=9D=BF=E5=AF=B9=E8=B1=A1=E4=B8=8D=E9=87=8A?= =?UTF-8?q?=E6=94=BE=E5=86=85=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/mainframe/widget/ui/FormWidgetCardPane.java | 1 - 1 file changed, 1 deletion(-) diff --git a/designer-form/src/main/java/com/fr/design/mainframe/widget/ui/FormWidgetCardPane.java b/designer-form/src/main/java/com/fr/design/mainframe/widget/ui/FormWidgetCardPane.java index 5cf563292c..2f7b100e44 100644 --- a/designer-form/src/main/java/com/fr/design/mainframe/widget/ui/FormWidgetCardPane.java +++ b/designer-form/src/main/java/com/fr/design/mainframe/widget/ui/FormWidgetCardPane.java @@ -24,7 +24,6 @@ import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.mainframe.DesignerContext; import com.fr.design.mainframe.EastRegionContainerPane; import com.fr.design.mainframe.FormDesigner; -import com.fr.design.mainframe.FormSelectionUtils; import com.fr.design.mainframe.JForm; import com.fr.design.widget.DataModify; import com.fr.design.widget.FormWidgetDefinePaneFactoryBase; From d240aba665366092c3872e986ef409b81c755da0 Mon Sep 17 00:00:00 2001 From: "Henry.Wang" Date: Thu, 17 Jun 2021 10:44:41 +0800 Subject: [PATCH 5/5] =?UTF-8?q?KERNEL-8038=20=E8=AE=BE=E8=AE=A1=E5=99=A8?= =?UTF-8?q?=E5=AD=98=E5=9C=A8=E4=B8=80=E4=BA=9B=E9=9D=99=E6=80=81=E6=96=B9?= =?UTF-8?q?=E6=B3=95=E5=AF=BC=E8=87=B4=E6=9C=80=E8=BF=91=E5=85=B3=E9=97=AD?= =?UTF-8?q?=E7=9A=84=E6=A8=A1=E6=9D=BF=E5=AF=B9=E8=B1=A1=E4=B8=8D=E9=87=8A?= =?UTF-8?q?=E6=94=BE=E5=86=85=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/file/{CloseReleasable.java => Releasable.java} | 2 +- .../com/fr/design/gui/controlpane/EventPropertyPane.java | 5 ++--- .../java/com/fr/design/mainframe/FormParaWidgetPane.java | 4 ++-- .../java/com/fr/design/mainframe/FormWidgetDetailPane.java | 4 ++-- .../java/com/fr/design/mainframe/WidgetPropertyPane.java | 4 ++-- .../fr/design/mainframe/widget/ui/FormWidgetCardPane.java | 4 ++-- 6 files changed, 11 insertions(+), 12 deletions(-) rename designer-base/src/main/java/com/fr/design/file/{CloseReleasable.java => Releasable.java} (63%) diff --git a/designer-base/src/main/java/com/fr/design/file/CloseReleasable.java b/designer-base/src/main/java/com/fr/design/file/Releasable.java similarity index 63% rename from designer-base/src/main/java/com/fr/design/file/CloseReleasable.java rename to designer-base/src/main/java/com/fr/design/file/Releasable.java index b76c2b18e6..cb78789e6f 100644 --- a/designer-base/src/main/java/com/fr/design/file/CloseReleasable.java +++ b/designer-base/src/main/java/com/fr/design/file/Releasable.java @@ -1,5 +1,5 @@ package com.fr.design.file; -public interface CloseReleasable { +public interface Releasable { void releaseResources(); } diff --git a/designer-form/src/main/java/com/fr/design/gui/controlpane/EventPropertyPane.java b/designer-form/src/main/java/com/fr/design/gui/controlpane/EventPropertyPane.java index 7ba3b6e252..834b6b4a87 100644 --- a/designer-form/src/main/java/com/fr/design/gui/controlpane/EventPropertyPane.java +++ b/designer-form/src/main/java/com/fr/design/gui/controlpane/EventPropertyPane.java @@ -2,8 +2,7 @@ package com.fr.design.gui.controlpane; import com.fr.design.designer.creator.XCreator; import com.fr.design.designer.properties.EventPropertyTable; -import com.fr.design.file.CloseReleasable; -import com.fr.design.gui.icombobox.FRTreeComboBox; +import com.fr.design.file.Releasable; import com.fr.design.i18n.Toolkit; import com.fr.design.mainframe.FormDesigner; import com.fr.design.widget.EventCreator; @@ -15,7 +14,7 @@ import com.fr.stable.Nameable; /** * Created by kerry on 5/17/21 */ -public class EventPropertyPane extends UIListGroupControlPane implements CloseReleasable { +public class EventPropertyPane extends UIListGroupControlPane implements Releasable { private XCreator creator; private FormDesigner designer; diff --git a/designer-form/src/main/java/com/fr/design/mainframe/FormParaWidgetPane.java b/designer-form/src/main/java/com/fr/design/mainframe/FormParaWidgetPane.java index 32fa71a680..d8b604e195 100644 --- a/designer-form/src/main/java/com/fr/design/mainframe/FormParaWidgetPane.java +++ b/designer-form/src/main/java/com/fr/design/mainframe/FormParaWidgetPane.java @@ -7,7 +7,7 @@ import com.fr.design.constants.UIConstants; import com.fr.design.designer.beans.events.DesignerEditListener; import com.fr.design.designer.beans.events.DesignerEvent; import com.fr.design.designer.creator.XCreatorUtils; -import com.fr.design.file.CloseReleasable; +import com.fr.design.file.Releasable; import com.fr.design.fun.FormWidgetOptionProvider; import com.fr.design.gui.core.FormWidgetOption; import com.fr.design.gui.core.UserDefinedWidgetOption; @@ -57,7 +57,7 @@ import java.awt.event.MouseEvent; /** * @author null */ -public class FormParaWidgetPane extends JPanel implements CloseReleasable { +public class FormParaWidgetPane extends JPanel implements Releasable { private static FormParaWidgetPane THIS; private final static int BORDER = 5; private final static int WIDGET_WIDTHGAP = 4; diff --git a/designer-form/src/main/java/com/fr/design/mainframe/FormWidgetDetailPane.java b/designer-form/src/main/java/com/fr/design/mainframe/FormWidgetDetailPane.java index a53f1e3660..f22592ee73 100644 --- a/designer-form/src/main/java/com/fr/design/mainframe/FormWidgetDetailPane.java +++ b/designer-form/src/main/java/com/fr/design/mainframe/FormWidgetDetailPane.java @@ -2,7 +2,7 @@ package com.fr.design.mainframe; import com.fr.base.BaseUtils; import com.fr.design.dialog.BasicPane; -import com.fr.design.file.CloseReleasable; +import com.fr.design.file.Releasable; import com.fr.design.gui.ibutton.UIHeadGroup; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.mainframe.reuse.ComponentReuseNotificationInfo; @@ -24,7 +24,7 @@ import java.util.List; * Date: 14-7-8 * Time: 下午8:18 */ -public class FormWidgetDetailPane extends FormDockView implements CloseReleasable { +public class FormWidgetDetailPane extends FormDockView implements Releasable { private static final int ONLINE_TAB = 1; private JPanel centerPane; diff --git a/designer-form/src/main/java/com/fr/design/mainframe/WidgetPropertyPane.java b/designer-form/src/main/java/com/fr/design/mainframe/WidgetPropertyPane.java index 927fe892b4..9be0d84b2c 100644 --- a/designer-form/src/main/java/com/fr/design/mainframe/WidgetPropertyPane.java +++ b/designer-form/src/main/java/com/fr/design/mainframe/WidgetPropertyPane.java @@ -9,7 +9,7 @@ import com.fr.design.designer.creator.*; import com.fr.design.designer.creator.cardlayout.XWCardTagLayout; import com.fr.design.designer.properties.mobile.MobileBookMarkPropertyUI; import com.fr.design.designer.properties.mobile.MobileStylePropertyUI; -import com.fr.design.file.CloseReleasable; +import com.fr.design.file.Releasable; import com.fr.design.form.util.FormDesignerUtils; import com.fr.design.fun.WidgetPropertyUIProvider; import com.fr.design.gui.controlpane.EventPropertyPane; @@ -33,7 +33,7 @@ import java.util.Set; * 控件属性表绘制 * Modified by fanglei */ -public class WidgetPropertyPane extends FormDockView implements BaseWidgetPropertyPane, CloseReleasable { +public class WidgetPropertyPane extends FormDockView implements BaseWidgetPropertyPane, Releasable { private static final int PADDING = 10; private static final int PADDING_M = 12; diff --git a/designer-form/src/main/java/com/fr/design/mainframe/widget/ui/FormWidgetCardPane.java b/designer-form/src/main/java/com/fr/design/mainframe/widget/ui/FormWidgetCardPane.java index 2f7b100e44..609e45b5da 100644 --- a/designer-form/src/main/java/com/fr/design/mainframe/widget/ui/FormWidgetCardPane.java +++ b/designer-form/src/main/java/com/fr/design/mainframe/widget/ui/FormWidgetCardPane.java @@ -14,7 +14,7 @@ import com.fr.design.designer.creator.XWTitleLayout; import com.fr.design.designer.creator.cardlayout.XWCardTagLayout; import com.fr.design.dialog.AttrScrollPane; import com.fr.design.dialog.BasicScrollPane; -import com.fr.design.file.CloseReleasable; +import com.fr.design.file.Releasable; import com.fr.design.file.HistoryTemplateListCache; import com.fr.design.foldablepane.UIExpandablePane; import com.fr.design.gui.frpane.AbstractAttrNoScrollPane; @@ -49,7 +49,7 @@ import java.awt.BorderLayout; /** * Created by ibm on 2017/7/25. */ -public class FormWidgetCardPane extends AbstractAttrNoScrollPane implements CloseReleasable { +public class FormWidgetCardPane extends AbstractAttrNoScrollPane implements Releasable { private AttributeChangeListener listener; private FormDesigner designer; //当前的编辑器属性定义面板