Browse Source

KERNEL-8038 设计器存在一些静态方法导致最近关闭的模板对象不释放内存

feature/10.0
Henry.Wang 3 years ago
parent
commit
8fc5323b5d
  1. 11
      designer-form/src/main/java/com/fr/design/gui/controlpane/EventPropertyPane.java
  2. 1
      designer-form/src/main/java/com/fr/design/mainframe/JForm.java
  3. 9
      designer-form/src/main/java/com/fr/design/mainframe/WidgetPropertyPane.java
  4. 17
      designer-form/src/main/java/com/fr/design/mainframe/widget/ui/FormWidgetCardPane.java

11
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");
}

1
designer-form/src/main/java/com/fr/design/mainframe/JForm.java

@ -859,7 +859,6 @@ public class JForm extends JTemplate<Form, FormUndoState> implements BaseJForm<F
EastRegionContainerPane.getInstance().addParameterPane(parameterPropertyPane);
refreshWidgetLibPane();
System.out.println(this.getEditingFILE());
currentFormDesign = formDesign;
}

9
designer-form/src/main/java/com/fr/design/mainframe/WidgetPropertyPane.java

@ -75,6 +75,13 @@ public class WidgetPropertyPane extends FormDockView implements BaseWidgetProper
if (eventTable != null) {
eventTable.releaseResources();
}
if (formWidgetCardPane != null) {
formWidgetCardPane.releaseResources();
}
if (wsp != null) {
wsp.removeAll();
}
designer.getSelectionModel().reset();
formWidgetCardPane = null;
eventTable = null;
widgetPropertyTables = null;
@ -84,7 +91,7 @@ public class WidgetPropertyPane extends FormDockView implements BaseWidgetProper
wsp = null;
tabsHeaderIconPane = null;
lastAffectedCreator = null;
removeAll();
this.removeAll();
}
@Override

17
designer-form/src/main/java/com/fr/design/mainframe/widget/ui/FormWidgetCardPane.java

@ -14,6 +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.HistoryTemplateListCache;
import com.fr.design.foldablepane.UIExpandablePane;
import com.fr.design.gui.frpane.AbstractAttrNoScrollPane;
@ -23,6 +24,7 @@ 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;
@ -48,7 +50,7 @@ import java.awt.BorderLayout;
/**
* Created by ibm on 2017/7/25.
*/
public class FormWidgetCardPane extends AbstractAttrNoScrollPane {
public class FormWidgetCardPane extends AbstractAttrNoScrollPane implements CloseReleasable {
private AttributeChangeListener listener;
private FormDesigner designer;
//当前的编辑器属性定义面板
@ -86,7 +88,7 @@ public class FormWidgetCardPane extends AbstractAttrNoScrollPane {
return null;
} else if (xLayoutContainer.acceptType(XWAbsoluteLayout.class)) {
return new WidgetAbsoluteBoundPane(xCreator);
} else if(xCreator.acceptType(XWCardTagLayout.class)){
} else if (xCreator.acceptType(XWCardTagLayout.class)) {
return new WidgetCardTagBoundPane(xCreator);
}
return new WidgetBoundPane(xCreator);
@ -281,4 +283,15 @@ public class FormWidgetCardPane extends AbstractAttrNoScrollPane {
designer.getEditListenerTable().fireCreatorModified(DesignerEvent.CREATOR_EDITED);
}
@Override
public void releaseResources() {
listener = null;
designer = null;
currentEditorDefinePane = null;
widgetPropertyPane = null;
attriCardPane = null;
xCreator = null;
widgetBoundPane = null;
this.removeAll();
}
}

Loading…
Cancel
Save