diff --git a/designer-form/src/main/java/com/fr/design/designer/beans/models/SelectionModel.java b/designer-form/src/main/java/com/fr/design/designer/beans/models/SelectionModel.java index 33312483e..a8adfeb27 100644 --- a/designer-form/src/main/java/com/fr/design/designer/beans/models/SelectionModel.java +++ b/designer-form/src/main/java/com/fr/design/designer/beans/models/SelectionModel.java @@ -258,11 +258,11 @@ public class SelectionModel { designer.removeParaComponent(); } removeCreatorFromContainer(creator, creator.getWidth(), creator.getHeight()); + FormDesignerUtils.removeWidgetProcessInfo(creator.toData()); creator.deleteRelatedComponent(creator, designer); creator.removeAll(); // 清除被选中的组件 selection.reset(); - FormDesignerUtils.removeWidgetProcessInfo(creator.toData()); } diff --git a/designer-form/src/main/java/com/fr/design/mainframe/template/info/ComponentOperate.java b/designer-form/src/main/java/com/fr/design/mainframe/template/info/ComponentOperate.java index d82bc1688..b6fd79d27 100644 --- a/designer-form/src/main/java/com/fr/design/mainframe/template/info/ComponentOperate.java +++ b/designer-form/src/main/java/com/fr/design/mainframe/template/info/ComponentOperate.java @@ -7,6 +7,7 @@ import com.fr.form.ui.Widget; import com.fr.form.ui.container.WAbsoluteBodyLayout; import com.fr.form.ui.container.WAbsoluteLayout; import com.fr.form.ui.container.WCardLayout; +import com.fr.form.ui.container.WTitleLayout; import com.fr.general.ComparatorUtils; import com.fr.json.JSONObject; @@ -23,7 +24,11 @@ public abstract class ComponentOperate implements TemplateOperate { private Widget widget; public ComponentOperate(Widget widget) { - this.widget = widget; + if (widget.acceptType(WTitleLayout.class)) { + this.widget = ((WTitleLayout) widget).getBodyBoundsWidget().getWidget(); + }else { + this.widget = widget; + } } @Override diff --git a/designer-form/src/test/java/com/fr/design/mainframe/template/info/ComponentCreateOperateTest.java b/designer-form/src/test/java/com/fr/design/mainframe/template/info/ComponentCreateOperateTest.java index 2a6ec4ba6..e11c33c55 100644 --- a/designer-form/src/test/java/com/fr/design/mainframe/template/info/ComponentCreateOperateTest.java +++ b/designer-form/src/test/java/com/fr/design/mainframe/template/info/ComponentCreateOperateTest.java @@ -9,14 +9,31 @@ import com.fr.form.ui.Widget; import com.fr.form.ui.container.WAbsoluteBodyLayout; import com.fr.form.ui.container.WAbsoluteLayout; import com.fr.form.ui.container.WCardLayout; +import com.fr.form.ui.container.WTitleLayout; +import com.fr.general.ComparatorUtils; import com.fr.json.JSONObject; import org.junit.Assert; import org.junit.Test; +import java.awt.Rectangle; + /** * Created by kerry on 2020-05-08 */ public class ComponentCreateOperateTest { + + @Test + public void testConstructor(){ + ElementCaseEditor caseEditor = new ElementCaseEditor(); + caseEditor.setWidgetName("report0"); + caseEditor.setWidgetID("xxxx0"); + WTitleLayout wTitleLayout = new WTitleLayout(); + wTitleLayout.addBody(caseEditor, new Rectangle()); + ComponentOperate componentOperate0 = new ComponentCreateOperate(caseEditor); + ComponentOperate componentOperate1 = new ComponentCreateOperate(wTitleLayout); + ComparatorUtils.equals(componentOperate0.toJSONObject(), componentOperate1.toJSONObject()); + } + @Test public void testToJSONObject() { Widget button = new FreeButton();