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"));