From a2d18be9a27b3f0cd006632613ce38cc3a27dd52 Mon Sep 17 00:00:00 2001 From: kerry Date: Sat, 30 Sep 2017 14:59:32 +0800 Subject: [PATCH] =?UTF-8?q?REPORT-4850=20[9.0=E6=8F=92=E4=BB=B6]=E6=8E=A7?= =?UTF-8?q?=E4=BB=B6=E7=B1=BB=E5=9E=8B=E7=9A=84=E6=8F=92=E4=BB=B6=EF=BC=8C?= =?UTF-8?q?=E6=8E=A7=E4=BB=B6=E5=B1=9E=E6=80=A7=E9=9D=A2=E6=9D=BF=E6=B2=A1?= =?UTF-8?q?=E6=9C=89=E9=80=82=E9=85=8D=E6=96=B0=E7=89=88=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../component/CompositeComponentAdapter.java | 2 +- .../creator/CRPropertyDescriptorPane.java | 16 +++++++-- .../designer/creator/PropertyGroupPane.java | 33 +++++-------------- .../widget/ui/FormWidgetCardPane.java | 27 ++++++++------- 4 files changed, 40 insertions(+), 38 deletions(-) diff --git a/designer_form/src/com/fr/design/designer/beans/adapters/component/CompositeComponentAdapter.java b/designer_form/src/com/fr/design/designer/beans/adapters/component/CompositeComponentAdapter.java index 9ddad6640..176e6e159 100644 --- a/designer_form/src/com/fr/design/designer/beans/adapters/component/CompositeComponentAdapter.java +++ b/designer_form/src/com/fr/design/designer/beans/adapters/component/CompositeComponentAdapter.java @@ -108,7 +108,7 @@ public class CompositeComponentAdapter implements ComponentAdapter { ArrayList groups = new ArrayList(); for (String groupName : groupNames) { ArrayList groupProperties = maps.get(groupName); - PropertyGroupPane propertyGroupPane = new PropertyGroupPane(groupProperties.toArray(new CRPropertyDescriptor[0]), xCreator, groupName); + PropertyGroupPane propertyGroupPane = new PropertyGroupPane(groupProperties.toArray(new CRPropertyDescriptor[0]), xCreator, groupName, designer); groups.add(propertyGroupPane); } return groups; diff --git a/designer_form/src/com/fr/design/designer/creator/CRPropertyDescriptorPane.java b/designer_form/src/com/fr/design/designer/creator/CRPropertyDescriptorPane.java index da0f4d9bc..906769eaa 100644 --- a/designer_form/src/com/fr/design/designer/creator/CRPropertyDescriptorPane.java +++ b/designer_form/src/com/fr/design/designer/creator/CRPropertyDescriptorPane.java @@ -2,10 +2,12 @@ package com.fr.design.designer.creator; import com.fr.base.FRContext; import com.fr.design.designer.IntervalConstants; +import com.fr.design.designer.beans.events.DesignerEvent; import com.fr.design.gui.icheckbox.UICheckBox; import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.xtable.TableUtils; import com.fr.design.layout.TableLayoutHelper; +import com.fr.design.mainframe.FormDesigner; import com.fr.design.mainframe.WidgetPropertyPane; import com.fr.design.mainframe.widget.editors.ExtendedPropertyEditor; import com.fr.design.mainframe.widget.editors.StringEditor; @@ -27,10 +29,12 @@ public class CRPropertyDescriptorPane { private XCreator xCreator; private PropertyEditor propertyEditor; private boolean isPopulate = true; + private FormDesigner designer; - public CRPropertyDescriptorPane(CRPropertyDescriptor crPropertyDescriptor, XCreator xCreator) { + public CRPropertyDescriptorPane(CRPropertyDescriptor crPropertyDescriptor, XCreator xCreator, FormDesigner designer) { this.crPropertyDescriptor = crPropertyDescriptor; this.xCreator = xCreator; + this.designer = designer; } public Component[] createTableLayoutComponent() { @@ -49,7 +53,7 @@ public class CRPropertyDescriptorPane { } - private Component initEditorComponent(CRPropertyDescriptor crPropertyDescriptor, final XCreator xCreator) { + private Component initEditorComponent(final CRPropertyDescriptor crPropertyDescriptor, final XCreator xCreator) { Component component = null; try { // 如果已有的编辑器就生成对应的component @@ -87,6 +91,14 @@ public class CRPropertyDescriptorPane { if (extendEditor.refreshInTime()) { WidgetPropertyPane.getInstance().refreshDockingView(); } + if (designer == null) { + return; + } + if ("widgetName".equals(crPropertyDescriptor.getName())) { + designer.getEditListenerTable().fireCreatorModified(xCreator, DesignerEvent.CREATOR_RENAMED); + } else { + designer.fireTargetModified(); + } } }); diff --git a/designer_form/src/com/fr/design/designer/creator/PropertyGroupPane.java b/designer_form/src/com/fr/design/designer/creator/PropertyGroupPane.java index 890595ffe..bb3c3a42f 100644 --- a/designer_form/src/com/fr/design/designer/creator/PropertyGroupPane.java +++ b/designer_form/src/com/fr/design/designer/creator/PropertyGroupPane.java @@ -1,19 +1,16 @@ package com.fr.design.designer.creator; -import com.fr.base.FRContext; import com.fr.design.designer.IntervalConstants; import com.fr.design.dialog.BasicPane; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.layout.TableLayoutHelper; -import com.fr.form.ui.FreeButton; +import com.fr.design.mainframe.FormDesigner; import com.fr.form.ui.Widget; import javax.swing.BorderFactory; -import javax.swing.JFrame; import javax.swing.JPanel; import java.awt.BorderLayout; import java.awt.Component; -import java.awt.Dimension; /** * Created by kerry on 2017/9/7. @@ -23,6 +20,7 @@ public class PropertyGroupPane extends BasicPane { private CRPropertyDescriptorPane[] crPropertyDescriptorPanes; private XCreator xCreator; private String groupName; + private FormDesigner designer; public String getGroupName() { return groupName; @@ -36,22 +34,25 @@ public class PropertyGroupPane extends BasicPane { public PropertyGroupPane(CRPropertyDescriptor[] crPropertyDescriptors, XCreator xCreator) { this.crPropertyDescriptors = crPropertyDescriptors; this.xCreator = xCreator; - this.setLayout(FRGUIPaneFactory.createBorderLayout()); initComponent(); } - public PropertyGroupPane(CRPropertyDescriptor[] crPropertyDescriptors, XCreator xCreator, String groupName) { - this(crPropertyDescriptors, xCreator); + public PropertyGroupPane(CRPropertyDescriptor[] crPropertyDescriptors, XCreator xCreator, String groupName, FormDesigner designer) { + this.designer = designer; this.groupName = groupName; + this.crPropertyDescriptors = crPropertyDescriptors; + this.xCreator = xCreator; + initComponent(); } public void initComponent() { + this.setLayout(FRGUIPaneFactory.createBorderLayout()); int count = crPropertyDescriptors.length; crPropertyDescriptorPanes = new CRPropertyDescriptorPane[count]; Component[][] components = new Component[count][]; for (int i = 0; i < count; i++) { - crPropertyDescriptorPanes[i] = new CRPropertyDescriptorPane(crPropertyDescriptors[i], xCreator); + crPropertyDescriptorPanes[i] = new CRPropertyDescriptorPane(crPropertyDescriptors[i], xCreator, designer); components[i] = crPropertyDescriptorPanes[i].createTableLayoutComponent(); } @@ -71,21 +72,5 @@ public class PropertyGroupPane extends BasicPane { return "PropertyGroupPane"; } - public static void main(String[] args) { - try { - XCreator xCreator = new XButton(new FreeButton(), new Dimension(100, 100)); - PropertyGroupPane propertyGroupPane = new PropertyGroupPane(xCreator.supportedDescriptor(), xCreator); - JFrame jf = new JFrame("jFrame"); - jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - JPanel content = (JPanel) jf.getContentPane(); - content.setLayout(new BorderLayout()); - content.add(propertyGroupPane, BorderLayout.CENTER); - jf.setSize(439, 400); - jf.setVisible(true); - } catch (Exception e) { - FRContext.getLogger().error(e.getMessage()); - } - - } } diff --git a/designer_form/src/com/fr/design/mainframe/widget/ui/FormWidgetCardPane.java b/designer_form/src/com/fr/design/mainframe/widget/ui/FormWidgetCardPane.java index 6eefcba6d..66339e178 100644 --- a/designer_form/src/com/fr/design/mainframe/widget/ui/FormWidgetCardPane.java +++ b/designer_form/src/com/fr/design/mainframe/widget/ui/FormWidgetCardPane.java @@ -133,7 +133,18 @@ public class FormWidgetCardPane extends AbstractAttrNoScrollPane { jPanel.add(attriCardPane, BorderLayout.CENTER); jPanel.setBorder(BorderFactory.createEmptyBorder(0, 5, 0, 0)); - if(FormWidgetDefinePaneFactoryBase.isExtraXWidget(innerCreator.toData())){ + final boolean isExtraWidget = FormWidgetDefinePaneFactoryBase.isExtraXWidget(innerCreator.toData()); + this.listener = new AttributeChangeListener() { + @Override + public void attributeChange() { + if(!isExtraWidget){ + updateCreator(); + } + updateWidgetBound(); + } + }; + + if(isExtraWidget){ return; } @@ -143,13 +154,6 @@ public class FormWidgetCardPane extends AbstractAttrNoScrollPane { jPanel.add(uiExpandablePane, BorderLayout.NORTH); - this.listener = new AttributeChangeListener() { - @Override - public void attributeChange() { - updateCreator(); - } - }; - } private void initDefinePane() { @@ -212,12 +216,14 @@ public class FormWidgetCardPane extends AbstractAttrNoScrollPane { designer.getEditListenerTable().fireCreatorModified(xCreator, DesignerEvent.CREATOR_RENAMED); return; } + fireValueChanged(); + } + public void updateWidgetBound (){ if (widgetBoundPane != null && ComparatorUtils.equals(getGlobalName(), Inter.getLocText("FR-Designer_Coords_And_Size"))) { widgetBoundPane.update(); } - - fireValueChanged(); + designer.refreshDesignerUI(); } @@ -233,7 +239,6 @@ public class FormWidgetCardPane extends AbstractAttrNoScrollPane { XCreator creator = getXCreatorDedicated(); creator.firePropertyChange(); designer.fireTargetModified(); - designer.refreshDesignerUI(); } public String getIconPath() {