diff --git a/designer-base/src/com/fr/design/mainframe/JTemplate.java b/designer-base/src/com/fr/design/mainframe/JTemplate.java index bec2dcf2e..14ac74539 100644 --- a/designer-base/src/com/fr/design/mainframe/JTemplate.java +++ b/designer-base/src/com/fr/design/mainframe/JTemplate.java @@ -1000,10 +1000,24 @@ public abstract class JTemplate> return UIConstants.RUN_BIG_ICON; } + /** + * 获取所有参数 + * + * @return + */ public Parameter[] getParameters() { return new Parameter[0]; } + /** + * 获取模板参数 + * + * @return + */ + public Parameter[] getJTemplateParameters() { + return new Parameter[0]; + } + /** * 请求表单焦点 */ diff --git a/designer-base/src/com/fr/design/mainframe/widget/BasicPropertyPane.java b/designer-base/src/com/fr/design/mainframe/widget/BasicPropertyPane.java index 12b83b3e7..d69f4c282 100644 --- a/designer-base/src/com/fr/design/mainframe/widget/BasicPropertyPane.java +++ b/designer-base/src/com/fr/design/mainframe/widget/BasicPropertyPane.java @@ -13,6 +13,10 @@ import javax.swing.BorderFactory; import javax.swing.JPanel; import java.awt.BorderLayout; import java.awt.Component; +import java.awt.event.FocusEvent; +import java.awt.event.FocusListener; +import java.awt.event.KeyAdapter; +import java.awt.event.KeyEvent; /** * Created by plough on 2017/8/7. @@ -27,7 +31,31 @@ public class BasicPropertyPane extends BasicPane { protected void initContentPane() { this.setLayout(FRGUIPaneFactory.createBorderLayout()); this.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0)); - widgetName = new UITextField(); + widgetName = new UITextField() { + protected void initListener() { + if (shouldResponseChangeListener()) { + addFocusListener(new FocusListener() { + @Override + public void focusGained(FocusEvent e) { + + } + + @Override + public void focusLost(FocusEvent e) { + attributeChange(); + } + }); + addKeyListener(new KeyAdapter() { + @Override + public void keyPressed(KeyEvent e) { + if (e.getKeyCode() == KeyEvent.VK_ENTER) { + attributeChange(); + } + } + }); + } + } + }; widgetName.setGlobalName(Inter.getLocText("FR-Designer_Basic")); double f = TableLayout.FILL; double p = TableLayout.PREFERRED; diff --git a/designer-form/src/com/fr/design/form/images/joption_failure.png b/designer-form/src/com/fr/design/form/images/joption_failure.png new file mode 100755 index 000000000..bea459040 Binary files /dev/null and b/designer-form/src/com/fr/design/form/images/joption_failure.png differ diff --git a/designer-form/src/com/fr/design/form/images/joption_success.png b/designer-form/src/com/fr/design/form/images/joption_success.png new file mode 100755 index 000000000..4bafb56d9 Binary files /dev/null and b/designer-form/src/com/fr/design/form/images/joption_success.png differ diff --git a/designer-form/src/com/fr/design/mainframe/JForm.java b/designer-form/src/com/fr/design/mainframe/JForm.java index 8897dfb78..b62ffa4a4 100644 --- a/designer-form/src/com/fr/design/mainframe/JForm.java +++ b/designer-form/src/com/fr/design/mainframe/JForm.java @@ -2,6 +2,7 @@ package com.fr.design.mainframe; import com.fr.base.BaseUtils; import com.fr.base.PaperSize; +import com.fr.base.Parameter; import com.fr.design.DesignState; import com.fr.design.actions.core.WorkBookSupportable; import com.fr.design.actions.file.WebPreviewUtils; @@ -680,6 +681,11 @@ public class JForm extends JTemplate implements BaseJForm { return UIConstants.RUN_BIG_ICON; } + @Override + public Parameter[] getJTemplateParameters() { + return this.getTarget().getTemplateParameters(); + } + @Override /** * 创建菜单项Preview 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 841e9c290..538f26099 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 @@ -1,5 +1,6 @@ package com.fr.design.mainframe.widget.ui; +import com.fr.base.BaseUtils; import com.fr.design.data.DataCreatorUI; import com.fr.design.designer.beans.events.DesignerEvent; import com.fr.design.designer.creator.XCreator; @@ -16,7 +17,9 @@ import com.fr.design.dialog.BasicScrollPane; import com.fr.design.foldablepane.UIExpandablePane; import com.fr.design.gui.frpane.AbstractAttrNoScrollPane; import com.fr.design.gui.frpane.AttributeChangeListener; +import com.fr.design.gui.itextfield.UITextField; import com.fr.design.layout.FRGUIPaneFactory; +import com.fr.design.mainframe.DesignerContext; import com.fr.design.mainframe.FormDesigner; import com.fr.design.widget.DataModify; import com.fr.design.widget.FormWidgetDefinePaneFactoryBase; @@ -34,6 +37,7 @@ import com.fr.stable.StringUtils; import javax.swing.BorderFactory; import javax.swing.JComponent; +import javax.swing.JOptionPane; import javax.swing.JPanel; import java.awt.BorderLayout; @@ -208,6 +212,12 @@ public class FormWidgetCardPane extends AbstractAttrNoScrollPane { currentEditorDefinePane.setGlobalName(getGlobalName()); Widget widget = currentEditorDefinePane.updateBean(); if (ComparatorUtils.equals(getGlobalName(), Inter.getLocText("FR-Designer_Basic")) && widgetPropertyPane != null) { + UITextField widgetNameField = widgetPropertyPane.getWidgetNameField(); + if (designer.getTarget().isNameExist(widgetNameField.getText()) && !ComparatorUtils.equals(widgetNameField.getText(), widget.getWidgetName())) { + widgetNameField.setText(widget.getWidgetName()); + JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), Inter.getLocText("FR-Designer_Form_Widget_Rename_Failure"), Inter.getLocText("FR-Designer_Joption_News"), JOptionPane.ERROR_MESSAGE, BaseUtils.readIcon("com/fr/design/form/images/joption_failure.png")); + return; + } widgetPropertyPane.update(widget); xCreator.resetCreatorName(widget.getWidgetName()); xCreator.resetVisible(widget.isVisible()); diff --git a/designer-realize/src/com/fr/design/mainframe/JWorkBook.java b/designer-realize/src/com/fr/design/mainframe/JWorkBook.java index 472231b7e..7f885b59f 100644 --- a/designer-realize/src/com/fr/design/mainframe/JWorkBook.java +++ b/designer-realize/src/com/fr/design/mainframe/JWorkBook.java @@ -1027,6 +1027,11 @@ public class JWorkBook extends JTemplate { return ps; } + @Override + public Parameter[] getJTemplateParameters() { + return this.parameterPane.getAllParameters(); + } + /** * 请求单元格区域的焦点 */