From 0a76edfca6ba19f4eb1363fd172b47cdf802afc1 Mon Sep 17 00:00:00 2001 From: "yaoh.wu" Date: Wed, 22 Mar 2017 20:23:30 +0800 Subject: [PATCH] rename --- .../creator/DedicateLayoutContainer.java | 134 ++++++++++-------- .../design/mainframe/FormSelectionUtils.java | 33 +++-- .../design/mainframe/WidgetPropertyPane.java | 3 +- 3 files changed, 92 insertions(+), 78 deletions(-) diff --git a/designer_form/src/com/fr/design/designer/creator/DedicateLayoutContainer.java b/designer_form/src/com/fr/design/designer/creator/DedicateLayoutContainer.java index 5b2f35c05..a31999f68 100644 --- a/designer_form/src/com/fr/design/designer/creator/DedicateLayoutContainer.java +++ b/designer_form/src/com/fr/design/designer/creator/DedicateLayoutContainer.java @@ -1,5 +1,5 @@ /** - * + * */ package com.fr.design.designer.creator; @@ -11,78 +11,86 @@ import java.util.ArrayList; /** * 一些控件专属的容器,如标题容器,sclae容器 + * * @author jim * @date 2014-11-7 */ public abstract class DedicateLayoutContainer extends XLayoutContainer { - public DedicateLayoutContainer(WLayout widget, Dimension initSize) { - super(widget, initSize); - } - - /** - * 得到属性名 + public DedicateLayoutContainer(WLayout widget, Dimension initSize) { + super(widget, initSize); + } + + /** + * 得到属性名 + * * @return 属性名 * @throws IntrospectionException */ - public CRPropertyDescriptor[] supportedDescriptor() throws IntrospectionException { - return new CRPropertyDescriptor[0]; - } - - /** - * 返回容器图标 - * - * @return - */ - @Override - public String getIconPath() { - if(this.getXCreator(XWScaleLayout.INDEX) != null){ + public CRPropertyDescriptor[] supportedDescriptor() throws IntrospectionException { + return new CRPropertyDescriptor[0]; + } + + /** + * 返回容器图标 + * + * @return + */ + @Override + public String getIconPath() { + if (this.getXCreator(XWScaleLayout.INDEX) != null) { return this.getXCreator(XWScaleLayout.INDEX).getIconPath(); } - return "/com/fr/web/images/form/resources/text_field_16.png"; - } + return "/com/fr/web/images/form/resources/text_field_16.png"; + } + - - /** - * 控件树不显示此组件 - * @param path 控件树list - */ - public void notShowInComponentTree(ArrayList path) { - path.remove(path.size()-1); - } - - /** - * 重置组件的名称 - * @param name 名称 - */ - public void resetCreatorName(String name) { - super.resetCreatorName(name); - XCreator child = getXCreator(XWScaleLayout.INDEX); - child.toData().setWidgetName(name); - } - - /** - * 返回对应属性表的组件,scale和title返回其子组件 - * @return 组件 - */ - public XCreator getPropertyDescriptorCreator() { - return getXCreator(XWScaleLayout.INDEX); - } - - /** - * 是否作为控件树的叶子节点 - * @return 是则返回true - */ - public boolean isComponentTreeLeaf() { - return true; - } - - /** - * 是否为sclae和title专属容器 - * @return 是则返回true - */ - public boolean isDedicateContainer() { - return true; - } + /** + * 控件树不显示此组件 + * + * @param path 控件树list + */ + public void notShowInComponentTree(ArrayList path) { + path.remove(path.size() - 1); + } + + /** + * 重置组件的名称 + * + * @param name 名称 + */ + public void resetCreatorName(String name) { + super.resetCreatorName(name); + XCreator child = getXCreator(XWScaleLayout.INDEX); + //TODO 这里是怎么实现改名的 + child.toData().setWidgetName(name); + } + + /** + * 返回对应属性表的组件,scale和title返回其子组件 + * + * @return 组件 + */ + public XCreator getPropertyDescriptorCreator() { + return getXCreator(XWScaleLayout.INDEX); + } + + /** + * 是否作为控件树的叶子节点 + * + * @return 是则返回true + */ + public boolean isComponentTreeLeaf() { + return true; + } + + /** + * 是否为sclae和title专属容器 + * + * @return 是则返回true + */ + public boolean isDedicateContainer() { + return true; + } } \ No newline at end of file diff --git a/designer_form/src/com/fr/design/mainframe/FormSelectionUtils.java b/designer_form/src/com/fr/design/mainframe/FormSelectionUtils.java index 202537c4a..e96080e4d 100644 --- a/designer_form/src/com/fr/design/mainframe/FormSelectionUtils.java +++ b/designer_form/src/com/fr/design/mainframe/FormSelectionUtils.java @@ -7,14 +7,12 @@ import java.util.List; import com.fr.base.FRContext; import com.fr.design.designer.beans.adapters.layout.AbstractLayoutAdapter; +import com.fr.design.designer.creator.*; import com.fr.form.ui.container.WLayout; +import com.fr.form.ui.container.WTitleLayout; import com.fr.general.ComparatorUtils; import com.fr.design.designer.beans.LayoutAdapter; import com.fr.design.designer.beans.events.DesignerEvent; -import com.fr.design.designer.creator.XCreator; -import com.fr.design.designer.creator.XCreatorUtils; -import com.fr.design.designer.creator.XLayoutContainer; -import com.fr.design.designer.creator.XWAbsoluteLayout; import com.fr.form.ui.Widget; public class FormSelectionUtils { @@ -44,7 +42,7 @@ public class FormSelectionUtils { Rectangle rec = clipBoard.getSelctionBounds(); for (XCreator creator : clipBoard.getSelectedCreators()) { try { - Widget copied = copyWidget(designer, creator.toData()); + Widget copied = copyWidget(designer, creator); XCreator copiedCreator = XCreatorUtils.createXCreator(copied, creator.getSize()); // 获取位置 Point point = getPasteLocation((AbstractLayoutAdapter) adapter, @@ -121,17 +119,23 @@ public class FormSelectionUtils { } - private static Widget copyWidget(FormDesigner formDesigner, Widget widget) throws + private static Widget copyWidget(FormDesigner formDesigner, XCreator xCreator) throws CloneNotSupportedException { ArrayList clonedNameList = new ArrayList(); - Widget copied = (Widget) widget.clone(); + Widget copied = (Widget) xCreator.toData().clone(); //重命名拷贝的组件 - setCopiedName(formDesigner, copied, clonedNameList); - if (copied instanceof WLayout) { - for (int i = 0; i < ((WLayout) copied).getWidgetCount(); i++) { - setCopiedName(formDesigner, ((WLayout) copied).getWidget(i), clonedNameList); - } + String name = getCopiedName(formDesigner, copied, clonedNameList); + if (copied instanceof WTitleLayout) { + XWTitleLayout xwTitleLayout = new XWTitleLayout((WTitleLayout) copied, xCreator.getSize()); + xwTitleLayout.resetCreatorName(name); + } else { + copied.setWidgetName(name); } +// if (copied instanceof WLayout) { +// for (int i = 0; i < ((WLayout) copied).getWidgetCount(); i++) { +// setCopiedName(formDesigner, ((WLayout) copied).getWidget(i), clonedNameList); +// } +// } return copied; } @@ -141,14 +145,15 @@ public class FormSelectionUtils { * @param formDesigner * @param copied * @param clonedNameList + * @return name */ - private static void setCopiedName(FormDesigner formDesigner, Widget copied, ArrayList clonedNameList) { + private static String getCopiedName(FormDesigner formDesigner, Widget copied, ArrayList clonedNameList) { String name = copied.getWidgetName(); do { name += postfix; } while (formDesigner.getTarget().isNameExist(name) || clonedNameList.contains(name)); - copied.setWidgetName(name); clonedNameList.add(name); + return name; } public static void rebuildSelection(FormDesigner designer) { diff --git a/designer_form/src/com/fr/design/mainframe/WidgetPropertyPane.java b/designer_form/src/com/fr/design/mainframe/WidgetPropertyPane.java index 9ea163d65..533ca9dc0 100644 --- a/designer_form/src/com/fr/design/mainframe/WidgetPropertyPane.java +++ b/designer_form/src/com/fr/design/mainframe/WidgetPropertyPane.java @@ -147,7 +147,8 @@ public class WidgetPropertyPane extends FormDockView implements BaseWidgetProper designer.addDesignerEditListener(new mobileWidgetDesignerAdapter()); centerPane = FRGUIPaneFactory.createCardLayout_S_Pane(); cardLayout = (CardLayout) centerPane.getLayout(); - centerPane.add(mobileParaWidgetTable, PARA);// 采用卡片布局的容器必须指定卡片名字,如果没有卡片名字 + centerPane.add(mobileParaWidgetTable, PARA); + // 采用卡片布局的容器必须指定卡片名字,如果没有卡片名字 // 就会出现:Exception in thread "main" java.lang.IllegalArgumentException: // cannot add to layout: constraint must be a string // 第二个参数代表卡片的名字。后来show方法调用时通过名字找到要显示的卡片