From c4e1dedba902ee9cb045fb0db94468f3172e0b20 Mon Sep 17 00:00:00 2001 From: zhouping Date: Thu, 20 Oct 2016 11:37:53 +0800 Subject: [PATCH] =?UTF-8?q?REPORT-533=20=E8=A1=A8=E5=8D=95=E5=88=9D?= =?UTF-8?q?=E5=A7=8B=E5=8C=96=E5=B8=83=E5=B1=80=E6=96=B0=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=20bugfix:=E4=BF=AE=E5=A4=8Dscalelayout=E7=B1=BB=E7=9A=84?= =?UTF-8?q?=E6=8E=A7=E4=BB=B6=E5=9C=A8=E5=B8=83=E5=B1=80=E9=97=B4=E5=88=87?= =?UTF-8?q?=E6=8D=A2=E5=87=BA=E7=8E=B0=E9=97=AE=E9=A2=98=E7=9A=84=E6=83=85?= =?UTF-8?q?=E5=86=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...RAbsoluteBodyLayoutPropertiesGroupModel.java | 17 +++++++++++------ .../FRFitLayoutPropertiesGroupModel.java | 12 +++++++++--- 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/designer_form/src/com/fr/design/designer/properties/FRAbsoluteBodyLayoutPropertiesGroupModel.java b/designer_form/src/com/fr/design/designer/properties/FRAbsoluteBodyLayoutPropertiesGroupModel.java index 7ac4764b7d..3613f7fdc5 100644 --- a/designer_form/src/com/fr/design/designer/properties/FRAbsoluteBodyLayoutPropertiesGroupModel.java +++ b/designer_form/src/com/fr/design/designer/properties/FRAbsoluteBodyLayoutPropertiesGroupModel.java @@ -1,8 +1,6 @@ package com.fr.design.designer.properties; -import com.fr.design.designer.creator.XCreator; -import com.fr.design.designer.creator.XWAbsoluteBodyLayout; -import com.fr.design.designer.creator.XWFitLayout; +import com.fr.design.designer.creator.*; import com.fr.design.designer.creator.cardlayout.XWCardMainBorderLayout; import com.fr.design.mainframe.FormDesigner; import com.fr.design.mainframe.FormSelectionUtils; @@ -106,10 +104,16 @@ public class FRAbsoluteBodyLayoutPropertiesGroupModel extends FRAbsoluteLayoutPr xfl.toData().setLayoutType(WBodyLayoutType.FIT); for (Component comp : components) { - xfl.add(comp); + XCreator xCreator = (XCreator)comp; + if (xCreator.shouldScaleCreator()){ + XLayoutContainer parentPanel = xCreator.initCreatorWrapper(xCreator.getHeight()); + xfl.add(parentPanel, xCreator.toData().getWidgetName()); + continue; + } + xfl.add(xCreator); } //这边计算的时候会先把组件间隔去掉 - moveComponents2FitLayout(xfl, components); + moveComponents2FitLayout(xfl); FormDesigner formDesigner = WidgetPropertyPane.getInstance().getEditingFormDesigner(); formDesigner.getSelectionModel().setSelectedCreator(xfl); xfl.convert(); @@ -159,8 +163,9 @@ public class FRAbsoluteBodyLayoutPropertiesGroupModel extends FRAbsoluteLayoutPr } //把绝对布局中的元素按规则移动到自适应布局中 - private void moveComponents2FitLayout(XWFitLayout xwFitLayout, Component[] components) { + private void moveComponents2FitLayout(XWFitLayout xwFitLayout) { int eachRowCount = 4; + Component[] components = xwFitLayout.getComponents(); if (components.length <= 1){ return; } diff --git a/designer_form/src/com/fr/design/designer/properties/FRFitLayoutPropertiesGroupModel.java b/designer_form/src/com/fr/design/designer/properties/FRFitLayoutPropertiesGroupModel.java index c7d999c3e6..c9654e26d0 100644 --- a/designer_form/src/com/fr/design/designer/properties/FRFitLayoutPropertiesGroupModel.java +++ b/designer_form/src/com/fr/design/designer/properties/FRFitLayoutPropertiesGroupModel.java @@ -4,9 +4,7 @@ package com.fr.design.designer.properties; import com.fr.design.beans.GroupModel; -import com.fr.design.designer.creator.XLayoutContainer; -import com.fr.design.designer.creator.XWAbsoluteBodyLayout; -import com.fr.design.designer.creator.XWFitLayout; +import com.fr.design.designer.creator.*; import com.fr.design.mainframe.FormDesigner; import com.fr.design.mainframe.FormSelectionUtils; import com.fr.design.mainframe.WidgetPropertyPane; @@ -156,6 +154,14 @@ public class FRFitLayoutPropertiesGroupModel implements GroupModel { XWAbsoluteBodyLayout xwAbsoluteBodyLayout = new XWAbsoluteBodyLayout(wAbsoluteBodyLayout, new Dimension(0,0)); xfl.getLayoutAdapter().addBean(xwAbsoluteBodyLayout, 0, 0); for (Component component : components) { + XCreator xCreator = (XCreator)component; + //部分控件被ScaleLayout包裹着,绝对布局里面要放出来 + if (xCreator.acceptType(XWScaleLayout.class)){ + if (xCreator.getComponentCount() > 0 && ((XCreator)xCreator.getComponent(0)).shouldScaleCreator()) { + component = xCreator.getComponent(0); + component.setBounds(xCreator.getBounds()); + } + } xwAbsoluteBodyLayout.add(component); } FormDesigner formDesigner = WidgetPropertyPane.getInstance().getEditingFormDesigner();