From f45634e3bb790274280ddd51091b706180e66998 Mon Sep 17 00:00:00 2001 From: pengda Date: Mon, 2 Nov 2020 14:05:06 +0800 Subject: [PATCH 1/5] =?UTF-8?q?REPORT-39772=20=E6=8F=90=E7=A4=BA=E6=8E=A7?= =?UTF-8?q?=E4=BB=B6/=E7=BB=84=E4=BB=B6=E5=90=8D=E7=A7=B0=E4=B8=8D?= =?UTF-8?q?=E8=83=BD=E4=B8=BA=E7=A9=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../creator/CRPropertyDescriptorPane.java | 16 ++++++++++++++-- .../mainframe/widget/ui/FormWidgetCardPane.java | 5 ++++- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/designer-form/src/main/java/com/fr/design/designer/creator/CRPropertyDescriptorPane.java b/designer-form/src/main/java/com/fr/design/designer/creator/CRPropertyDescriptorPane.java index be4a81d4e..5e5558e80 100644 --- a/designer-form/src/main/java/com/fr/design/designer/creator/CRPropertyDescriptorPane.java +++ b/designer-form/src/main/java/com/fr/design/designer/creator/CRPropertyDescriptorPane.java @@ -6,15 +6,18 @@ 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.DesignerContext; 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; import com.fr.form.ui.Widget; import com.fr.general.ComparatorUtils; +import com.fr.general.IOUtils; import com.fr.log.FineLoggerFactory; import javax.swing.BorderFactory; +import javax.swing.JOptionPane; import javax.swing.JPanel; import java.awt.Component; import java.beans.PropertyChangeEvent; @@ -31,7 +34,6 @@ public class CRPropertyDescriptorPane { private PropertyEditor propertyEditor; private boolean isPopulate = true; private FormDesigner designer; - public CRPropertyDescriptorPane(CRPropertyDescriptor crPropertyDescriptor, XCreator xCreator, FormDesigner designer) { this.crPropertyDescriptor = crPropertyDescriptor; this.xCreator = xCreator; @@ -136,8 +138,18 @@ public class CRPropertyDescriptorPane { try { Object value = propertyEditor.getValue(); Method m = crPropertyDescriptor.getWriteMethod(); + if (ComparatorUtils.equals(m.getName(), "setWidgetName")) { + String toSetWidgetName = value.toString(); + String currentWidgetName = widget.getWidgetName(); + boolean exist = designer.getTarget().isNameExist(toSetWidgetName) && !ComparatorUtils.equals(toSetWidgetName, currentWidgetName); + if (toSetWidgetName.isEmpty()) { + value = currentWidgetName; + } else if (exist) { + JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Widget_Rename_Failure"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Joption_News"), JOptionPane.ERROR_MESSAGE, IOUtils.readIcon("com/fr/design/form/images/joption_failure.png")); + return; + } + } m.invoke(widget, value); - crPropertyDescriptor.firePropertyChanged(); } catch (Exception e) { diff --git a/designer-form/src/main/java/com/fr/design/mainframe/widget/ui/FormWidgetCardPane.java b/designer-form/src/main/java/com/fr/design/mainframe/widget/ui/FormWidgetCardPane.java index 5e57557e7..59c62c999 100644 --- a/designer-form/src/main/java/com/fr/design/mainframe/widget/ui/FormWidgetCardPane.java +++ b/designer-form/src/main/java/com/fr/design/mainframe/widget/ui/FormWidgetCardPane.java @@ -219,7 +219,10 @@ public class FormWidgetCardPane extends AbstractAttrNoScrollPane { String toSetWidgetName = widgetNameField.getText(); String currentWidgetName = widget.getWidgetName(); boolean exist = designer.getTarget().isNameExist(toSetWidgetName) && !ComparatorUtils.equals(toSetWidgetName, currentWidgetName); - if (exist) { + if (toSetWidgetName.isEmpty()) { + widgetNameField.setText(currentWidgetName); + return; + } else if (exist) { widgetNameField.setText(currentWidgetName); JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Widget_Rename_Failure"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Joption_News"), JOptionPane.ERROR_MESSAGE, IOUtils.readIcon("com/fr/design/form/images/joption_failure.png")); return; From 9ba4fe8874f0b8a7efacfe768496ef6d844b6be0 Mon Sep 17 00:00:00 2001 From: pengda Date: Mon, 2 Nov 2020 14:06:53 +0800 Subject: [PATCH 2/5] =?UTF-8?q?REPORT-39772=20=E6=8F=90=E7=A4=BA=E6=8E=A7?= =?UTF-8?q?=E4=BB=B6/=E7=BB=84=E4=BB=B6=E5=90=8D=E7=A7=B0=E4=B8=8D?= =?UTF-8?q?=E8=83=BD=E4=B8=BA=E7=A9=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/designer/creator/CRPropertyDescriptorPane.java | 1 + 1 file changed, 1 insertion(+) diff --git a/designer-form/src/main/java/com/fr/design/designer/creator/CRPropertyDescriptorPane.java b/designer-form/src/main/java/com/fr/design/designer/creator/CRPropertyDescriptorPane.java index 5e5558e80..f175f49fa 100644 --- a/designer-form/src/main/java/com/fr/design/designer/creator/CRPropertyDescriptorPane.java +++ b/designer-form/src/main/java/com/fr/design/designer/creator/CRPropertyDescriptorPane.java @@ -34,6 +34,7 @@ public class CRPropertyDescriptorPane { private PropertyEditor propertyEditor; private boolean isPopulate = true; private FormDesigner designer; + public CRPropertyDescriptorPane(CRPropertyDescriptor crPropertyDescriptor, XCreator xCreator, FormDesigner designer) { this.crPropertyDescriptor = crPropertyDescriptor; this.xCreator = xCreator; From 88323745b6ec0f3fef84417c4f473d16b3a75e85 Mon Sep 17 00:00:00 2001 From: pengda Date: Mon, 2 Nov 2020 17:48:10 +0800 Subject: [PATCH 3/5] =?UTF-8?q?REPORT-39772=20=E6=8F=90=E7=A4=BA=E6=8E=A7?= =?UTF-8?q?=E4=BB=B6/=E7=BB=84=E4=BB=B6=E5=90=8D=E7=A7=B0=E4=B8=8D?= =?UTF-8?q?=E8=83=BD=E4=B8=BA=E7=A9=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../creator/CRPropertyDescriptorPane.java | 28 +++++++++++++------ .../widget/ui/FormWidgetCardPane.java | 2 -- 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/designer-form/src/main/java/com/fr/design/designer/creator/CRPropertyDescriptorPane.java b/designer-form/src/main/java/com/fr/design/designer/creator/CRPropertyDescriptorPane.java index f175f49fa..af0d9b9c1 100644 --- a/designer-form/src/main/java/com/fr/design/designer/creator/CRPropertyDescriptorPane.java +++ b/designer-form/src/main/java/com/fr/design/designer/creator/CRPropertyDescriptorPane.java @@ -139,15 +139,9 @@ public class CRPropertyDescriptorPane { try { Object value = propertyEditor.getValue(); Method m = crPropertyDescriptor.getWriteMethod(); - if (ComparatorUtils.equals(m.getName(), "setWidgetName")) { - String toSetWidgetName = value.toString(); - String currentWidgetName = widget.getWidgetName(); - boolean exist = designer.getTarget().isNameExist(toSetWidgetName) && !ComparatorUtils.equals(toSetWidgetName, currentWidgetName); - if (toSetWidgetName.isEmpty()) { - value = currentWidgetName; - } else if (exist) { - JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Widget_Rename_Failure"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Joption_News"), JOptionPane.ERROR_MESSAGE, IOUtils.readIcon("com/fr/design/form/images/joption_failure.png")); - return; + if (ComparatorUtils.equals(m.getName(), "setWidgetName") && value != null) { + if (!isWidgetNameValid(value, widget)) { + value = widget.getWidgetName(); } } m.invoke(widget, value); @@ -157,4 +151,20 @@ public class CRPropertyDescriptorPane { } } + /** + * 设置控件名之前校验一下,不能为空,不能重名 + */ + public boolean isWidgetNameValid(Object value, Widget widget) { + String toSetWidgetName = value.toString(); + String currentWidgetName = widget.getWidgetName(); + boolean exist = designer.getTarget().isNameExist(toSetWidgetName) && !ComparatorUtils.equals(toSetWidgetName, currentWidgetName); + if (toSetWidgetName.isEmpty()) { + return false; + } else if (exist) { + //控件重名,弹出提示 + JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Widget_Rename_Failure"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Joption_News"), JOptionPane.ERROR_MESSAGE, IOUtils.readIcon("com/fr/design/form/images/joption_failure.png")); + return false; + } + return true; + } } diff --git a/designer-form/src/main/java/com/fr/design/mainframe/widget/ui/FormWidgetCardPane.java b/designer-form/src/main/java/com/fr/design/mainframe/widget/ui/FormWidgetCardPane.java index 59c62c999..57cbba501 100644 --- a/designer-form/src/main/java/com/fr/design/mainframe/widget/ui/FormWidgetCardPane.java +++ b/designer-form/src/main/java/com/fr/design/mainframe/widget/ui/FormWidgetCardPane.java @@ -42,7 +42,6 @@ import javax.swing.JOptionPane; import javax.swing.JPanel; import java.awt.BorderLayout; - /** * Created by ibm on 2017/7/25. */ @@ -221,7 +220,6 @@ public class FormWidgetCardPane extends AbstractAttrNoScrollPane { boolean exist = designer.getTarget().isNameExist(toSetWidgetName) && !ComparatorUtils.equals(toSetWidgetName, currentWidgetName); if (toSetWidgetName.isEmpty()) { widgetNameField.setText(currentWidgetName); - return; } else if (exist) { widgetNameField.setText(currentWidgetName); JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Widget_Rename_Failure"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Joption_News"), JOptionPane.ERROR_MESSAGE, IOUtils.readIcon("com/fr/design/form/images/joption_failure.png")); From 161e1b7cab95681fc64e2e74df57897ddae966b3 Mon Sep 17 00:00:00 2001 From: pengda Date: Tue, 3 Nov 2020 11:36:44 +0800 Subject: [PATCH 4/5] =?UTF-8?q?REPORT-39772=20=E6=8F=90=E7=A4=BA=E6=8E=A7?= =?UTF-8?q?=E4=BB=B6/=E7=BB=84=E4=BB=B6=E5=90=8D=E7=A7=B0=E4=B8=8D?= =?UTF-8?q?=E8=83=BD=E4=B8=BA=E7=A9=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../designer/creator/CRPropertyDescriptorPane.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/designer-form/src/main/java/com/fr/design/designer/creator/CRPropertyDescriptorPane.java b/designer-form/src/main/java/com/fr/design/designer/creator/CRPropertyDescriptorPane.java index af0d9b9c1..ca7933e03 100644 --- a/designer-form/src/main/java/com/fr/design/designer/creator/CRPropertyDescriptorPane.java +++ b/designer-form/src/main/java/com/fr/design/designer/creator/CRPropertyDescriptorPane.java @@ -139,7 +139,7 @@ public class CRPropertyDescriptorPane { try { Object value = propertyEditor.getValue(); Method m = crPropertyDescriptor.getWriteMethod(); - if (ComparatorUtils.equals(m.getName(), "setWidgetName") && value != null) { + if (ComparatorUtils.equals(m.getName(), "setWidgetName")) { if (!isWidgetNameValid(value, widget)) { value = widget.getWidgetName(); } @@ -154,8 +154,13 @@ public class CRPropertyDescriptorPane { /** * 设置控件名之前校验一下,不能为空,不能重名 */ - public boolean isWidgetNameValid(Object value, Widget widget) { - String toSetWidgetName = value.toString(); + private boolean isWidgetNameValid(Object value, Widget widget) { + String toSetWidgetName; + if (value != null) { + toSetWidgetName = value.toString(); + } else { + return false; + } String currentWidgetName = widget.getWidgetName(); boolean exist = designer.getTarget().isNameExist(toSetWidgetName) && !ComparatorUtils.equals(toSetWidgetName, currentWidgetName); if (toSetWidgetName.isEmpty()) { From f0ba8f9dac7b5faf320c9661e73e6e3d012d0920 Mon Sep 17 00:00:00 2001 From: pengda Date: Tue, 3 Nov 2020 14:01:13 +0800 Subject: [PATCH 5/5] =?UTF-8?q?REPORT-39772=20=E6=8F=90=E7=A4=BA=E6=8E=A7?= =?UTF-8?q?=E4=BB=B6/=E7=BB=84=E4=BB=B6=E5=90=8D=E7=A7=B0=E4=B8=8D?= =?UTF-8?q?=E8=83=BD=E4=B8=BA=E7=A9=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/mainframe/widget/ui/FormWidgetCardPane.java | 1 + 1 file changed, 1 insertion(+) diff --git a/designer-form/src/main/java/com/fr/design/mainframe/widget/ui/FormWidgetCardPane.java b/designer-form/src/main/java/com/fr/design/mainframe/widget/ui/FormWidgetCardPane.java index 57cbba501..8267c53b8 100644 --- a/designer-form/src/main/java/com/fr/design/mainframe/widget/ui/FormWidgetCardPane.java +++ b/designer-form/src/main/java/com/fr/design/mainframe/widget/ui/FormWidgetCardPane.java @@ -220,6 +220,7 @@ public class FormWidgetCardPane extends AbstractAttrNoScrollPane { boolean exist = designer.getTarget().isNameExist(toSetWidgetName) && !ComparatorUtils.equals(toSetWidgetName, currentWidgetName); if (toSetWidgetName.isEmpty()) { widgetNameField.setText(currentWidgetName); + return; } else if (exist) { widgetNameField.setText(currentWidgetName); JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Widget_Rename_Failure"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Joption_News"), JOptionPane.ERROR_MESSAGE, IOUtils.readIcon("com/fr/design/form/images/joption_failure.png"));