From d92939c0b55785bab5025ce4a23007686d5c485b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?John=2EYing-=E5=BA=94=E5=BF=97=E6=B5=A9?= Date: Mon, 13 Mar 2023 12:47:06 +0800 Subject: [PATCH 1/2] =?UTF-8?q?REPORT-91591=20=E5=8D=95=E5=85=83=E6=A0=BC?= =?UTF-8?q?=E6=8E=A7=E4=BB=B6=E7=9A=84=E8=87=AA=E5=AE=9A=E4=B9=89=E6=A0=B7?= =?UTF-8?q?=E5=BC=8F=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fun/WidgetAdvancedPaneProvider.java | 8 ++ .../design/widget/ui/CheckBoxDefinePane.java | 74 +++++++++++++++++-- .../widget/ui/CheckBoxGroupDefinePane.java | 41 +++++++++- .../design/widget/ui/ComboBoxDefinePane.java | 24 ++++++ .../widget/ui/ComboCheckBoxDefinePane.java | 23 ++++++ .../widget/ui/DateEditorDefinePane.java | 31 ++++++-- .../ui/DirectWriteEditorDefinePane.java | 18 ++++- .../widget/ui/FieldEditorDefinePane.java | 52 ++++++++++++- .../widget/ui/NumberEditorDefinePane.java | 50 ++++++++++++- .../design/widget/ui/PasswordDefinePane.java | 25 +++++++ .../widget/ui/RadioGroupDefinePane.java | 52 ++++++++++++- .../design/widget/ui/TextAreaDefinePane.java | 26 +++++++ .../widget/ui/TextFieldEditorDefinePane.java | 36 ++++++++- .../ui/TreeComboBoxEditorDefinePane.java | 23 ++++++ .../widget/ui/TreeEditorDefinePane.java | 35 ++++++++- 15 files changed, 492 insertions(+), 26 deletions(-) diff --git a/designer-form/src/main/java/com/fr/design/fun/WidgetAdvancedPaneProvider.java b/designer-form/src/main/java/com/fr/design/fun/WidgetAdvancedPaneProvider.java index 7ba5a3c8c..8b9503ad2 100644 --- a/designer-form/src/main/java/com/fr/design/fun/WidgetAdvancedPaneProvider.java +++ b/designer-form/src/main/java/com/fr/design/fun/WidgetAdvancedPaneProvider.java @@ -33,6 +33,14 @@ public interface WidgetAdvancedPaneProvider extends Mutable { */ boolean accept(XCreator creator); + /** + * 根据Class判断是否需要处理 + * + * @param creator + * @return true:需要处理;false:不处理 + */ + boolean accept(Class creator); + /** * 创建控件高级设置项的追加面板 * diff --git a/designer-realize/src/main/java/com/fr/design/widget/ui/CheckBoxDefinePane.java b/designer-realize/src/main/java/com/fr/design/widget/ui/CheckBoxDefinePane.java index 5581449cf..d7b2631b1 100644 --- a/designer-realize/src/main/java/com/fr/design/widget/ui/CheckBoxDefinePane.java +++ b/designer-realize/src/main/java/com/fr/design/widget/ui/CheckBoxDefinePane.java @@ -1,21 +1,34 @@ package com.fr.design.widget.ui; +import com.fr.design.ExtraDesignClassManager; +import com.fr.design.beans.BasicBeanPane; import com.fr.design.designer.IntervalConstants; import com.fr.design.foldablepane.UIExpandablePane; +import com.fr.design.fun.WidgetAdvancedPaneProvider; import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.itextfield.UITextField; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.layout.TableLayout; import com.fr.design.layout.TableLayoutHelper; import com.fr.form.ui.CheckBox; +import com.fr.general.GeneralContext; +import com.fr.plugin.observer.PluginEvent; +import com.fr.plugin.observer.PluginEventListener; import javax.swing.*; import java.awt.*; +import java.util.ArrayList; +import java.util.List; +import java.util.Set; public class CheckBoxDefinePane extends AbstractDataModify { private UITextField text; + protected final List> extraPaneList = new ArrayList<>(); + protected JPanel extraPane; + protected static double F = TableLayout.FILL; + protected static double P = TableLayout.PREFERRED; public CheckBoxDefinePane() { this.iniComponents(); } @@ -23,14 +36,14 @@ public class CheckBoxDefinePane extends AbstractDataModify { private void iniComponents() { this.setLayout(FRGUIPaneFactory.createBorderLayout()); text = new UITextField(); - double f = TableLayout.FILL; - double p = TableLayout.PREFERRED; + initExtraPane(); Component[][] components = new Component[][]{ new Component[]{new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Text")), text}, + new Component[]{extraPane, null}, }; - double[] rowSize = {p}; - double[] columnSize = {p, f}; - int[][] rowCount = {{1, 1}}; + double[] rowSize = {P,P}; + double[] columnSize = {P, F}; + int[][] rowCount = {{1, 1}, {1, 1}}; JPanel pane = TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, IntervalConstants.INTERVAL_W3, IntervalConstants.INTERVAL_L1); UIExpandablePane uiExpandablePane = new UIExpandablePane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Advanced"), 280, 24, pane); @@ -39,6 +52,51 @@ public class CheckBoxDefinePane extends AbstractDataModify { this.add(uiExpandablePane); } + protected void initExtraPane() { + initPluginListener(); + refreshExtraAdvancedPane(); + } + + protected void refreshExtraAdvancedPane() { + extraPaneList.clear(); + boolean containsExtraPane = false; + Set> providers = ExtraDesignClassManager.getInstance().getArray(WidgetAdvancedPaneProvider.XML_TAG); + for (WidgetAdvancedPaneProvider provider : providers) { + if (!provider.accept(CheckBox.class)) { + continue; + } + insertShortCut(provider.getInsertPosition(extraPaneList.size()), provider.createExtraAdvancedPane()); + containsExtraPane = true; + } + if (containsExtraPane) { + extraPane = FRGUIPaneFactory.createYBoxEmptyBorderPane(); + for (BasicBeanPane pane : extraPaneList) { + extraPane.add(pane); + } + } + } + + protected void initPluginListener() { + GeneralContext.listenPluginRunningChanged(new PluginEventListener() { + @Override + public void on(PluginEvent event) { + refreshExtraAdvancedPane(); + } + }, pluginContext -> pluginContext.getRuntime().contain(WidgetAdvancedPaneProvider.XML_TAG)); + } + + /** + * 插入配置项面板 + * + * @param index 插入的位置 + * @param pane 配置项面板 + */ + protected void insertShortCut(int index, BasicBeanPane pane) { + int size = extraPaneList.size(); + index = Math.min(index, size); + extraPaneList.add(index, pane); + } + @Override protected String title4PopupWindow() { return "CheckBox"; @@ -47,12 +105,18 @@ public class CheckBoxDefinePane extends AbstractDataModify { @Override public void populateBean(CheckBox check) { text.setText(check.getText()); + for (BasicBeanPane pane : extraPaneList) { + pane.populateBean(check); + } } @Override public CheckBox updateBean() { CheckBox box = new CheckBox(); box.setText(text.getText()); + for (BasicBeanPane pane : extraPaneList) { + pane.updateBean(box); + } return box; } } diff --git a/designer-realize/src/main/java/com/fr/design/widget/ui/CheckBoxGroupDefinePane.java b/designer-realize/src/main/java/com/fr/design/widget/ui/CheckBoxGroupDefinePane.java index cddcf991d..43aa175c5 100644 --- a/designer-realize/src/main/java/com/fr/design/widget/ui/CheckBoxGroupDefinePane.java +++ b/designer-realize/src/main/java/com/fr/design/widget/ui/CheckBoxGroupDefinePane.java @@ -1,11 +1,19 @@ package com.fr.design.widget.ui; import java.awt.*; +import java.util.Set; import javax.swing.BorderFactory; import javax.swing.JPanel; +import javax.swing.SwingConstants; + +import com.fr.design.ExtraDesignClassManager; +import com.fr.design.beans.BasicBeanPane; import com.fr.design.data.DataCreatorUI; +import com.fr.design.designer.IntervalConstants; +import com.fr.design.fun.WidgetAdvancedPaneProvider; import com.fr.design.gui.icheckbox.UICheckBox; +import com.fr.design.gui.ilable.UILabel; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.layout.TableLayout; import com.fr.design.layout.TableLayoutHelper; @@ -43,21 +51,50 @@ public class CheckBoxGroupDefinePane extends FieldEditorDefinePane> providers = ExtraDesignClassManager.getInstance().getArray(WidgetAdvancedPaneProvider.XML_TAG); + for (WidgetAdvancedPaneProvider provider : providers) { + if (!provider.accept(CheckBoxGroup.class)) { + continue; + } + insertShortCut(provider.getInsertPosition(extraPaneList.size()), provider.createExtraAdvancedPane()); + containsExtraPane = true; + } + if (containsExtraPane) { + extraPane = FRGUIPaneFactory.createYBoxEmptyBorderPane(); + for (BasicBeanPane pane : extraPaneList) { + extraPane.add(pane); + } + } else { + Component[][] components = new Component[][]{ + new Component[]{new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Font_Size"), SwingConstants.LEFT)} + }; + double[] rowSize = {P}; + double[] columnSize = {P, F}; + int[][] rowCount = {{1, 1}}; + extraPane = TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, IntervalConstants.INTERVAL_W1, IntervalConstants.INTERVAL_L1); + } + } + @Override protected void populateSubFieldEditorBean(CheckBoxGroup ob) { returnTypePane.populate(ob); diff --git a/designer-realize/src/main/java/com/fr/design/widget/ui/ComboBoxDefinePane.java b/designer-realize/src/main/java/com/fr/design/widget/ui/ComboBoxDefinePane.java index be3b9bd52..8a94c1de2 100644 --- a/designer-realize/src/main/java/com/fr/design/widget/ui/ComboBoxDefinePane.java +++ b/designer-realize/src/main/java/com/fr/design/widget/ui/ComboBoxDefinePane.java @@ -3,15 +3,20 @@ package com.fr.design.widget.ui; import javax.swing.*; import com.fr.data.Dictionary; +import com.fr.design.ExtraDesignClassManager; +import com.fr.design.beans.BasicBeanPane; import com.fr.design.data.DataCreatorUI; import com.fr.design.designer.IntervalConstants; +import com.fr.design.fun.WidgetAdvancedPaneProvider; import com.fr.design.gui.ilable.UILabel; +import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.layout.TableLayoutHelper; import com.fr.design.mainframe.widget.accessibles.AccessibleDictionaryEditor; import com.fr.form.ui.ComboBox; import java.awt.*; +import java.util.Set; public class ComboBoxDefinePane extends CustomWritableRepeatEditorPane { protected AccessibleDictionaryEditor dictPane; @@ -33,6 +38,25 @@ public class ComboBoxDefinePane extends CustomWritableRepeatEditorPane return jPanel; } + protected void refreshExtraAdvancedPane() { + extraPaneList.clear(); + boolean containsExtraPane = false; + Set> providers = ExtraDesignClassManager.getInstance().getArray(WidgetAdvancedPaneProvider.XML_TAG); + for (WidgetAdvancedPaneProvider provider : providers) { + if (!provider.accept(ComboBox.class)) { + continue; + } + insertShortCut(provider.getInsertPosition(extraPaneList.size()), provider.createExtraAdvancedPane()); + containsExtraPane = true; + } + if (containsExtraPane) { + extraPane = FRGUIPaneFactory.createYBoxEmptyBorderPane(); + for (BasicBeanPane pane : extraPaneList) { + extraPane.add(pane); + } + } + } + protected void populateSubCustomWritableRepeatEditorBean(ComboBox e) { this.dictPane.setValue(e.getDictionary()); } diff --git a/designer-realize/src/main/java/com/fr/design/widget/ui/ComboCheckBoxDefinePane.java b/designer-realize/src/main/java/com/fr/design/widget/ui/ComboCheckBoxDefinePane.java index 879234ccf..00968771e 100644 --- a/designer-realize/src/main/java/com/fr/design/widget/ui/ComboCheckBoxDefinePane.java +++ b/designer-realize/src/main/java/com/fr/design/widget/ui/ComboCheckBoxDefinePane.java @@ -1,8 +1,11 @@ package com.fr.design.widget.ui; import com.fr.data.Dictionary; +import com.fr.design.ExtraDesignClassManager; +import com.fr.design.beans.BasicBeanPane; import com.fr.design.data.DataCreatorUI; import com.fr.design.designer.IntervalConstants; +import com.fr.design.fun.WidgetAdvancedPaneProvider; import com.fr.design.gui.icheckbox.UICheckBox; import com.fr.design.gui.ilable.UILabel; import com.fr.design.layout.FRGUIPaneFactory; @@ -15,6 +18,7 @@ import com.fr.form.ui.ComboCheckBox; import javax.swing.*; import java.awt.*; +import java.util.Set; public class ComboCheckBoxDefinePane extends CustomWritableRepeatEditorPane { private ReturnTypePane returnTypePane; @@ -49,6 +53,25 @@ public class ComboCheckBoxDefinePane extends CustomWritableRepeatEditorPane> providers = ExtraDesignClassManager.getInstance().getArray(WidgetAdvancedPaneProvider.XML_TAG); + for (WidgetAdvancedPaneProvider provider : providers) { + if (!provider.accept(ComboCheckBox.class)) { + continue; + } + insertShortCut(provider.getInsertPosition(extraPaneList.size()), provider.createExtraAdvancedPane()); + containsExtraPane = true; + } + if (containsExtraPane) { + extraPane = FRGUIPaneFactory.createYBoxEmptyBorderPane(); + for (BasicBeanPane pane : extraPaneList) { + extraPane.add(pane); + } + } + } + @Override protected void populateSubCustomWritableRepeatEditorBean(ComboCheckBox e) { this.dictPane.setValue(e.getDictionary()); diff --git a/designer-realize/src/main/java/com/fr/design/widget/ui/DateEditorDefinePane.java b/designer-realize/src/main/java/com/fr/design/widget/ui/DateEditorDefinePane.java index 0a3f3d288..d7b8491ad 100644 --- a/designer-realize/src/main/java/com/fr/design/widget/ui/DateEditorDefinePane.java +++ b/designer-realize/src/main/java/com/fr/design/widget/ui/DateEditorDefinePane.java @@ -2,9 +2,12 @@ package com.fr.design.widget.ui; import com.fr.base.FRContext; import com.fr.data.core.FormatField; +import com.fr.design.ExtraDesignClassManager; +import com.fr.design.beans.BasicBeanPane; import com.fr.design.border.UIRoundedBorder; import com.fr.design.constants.UIConstants; import com.fr.design.designer.IntervalConstants; +import com.fr.design.fun.WidgetAdvancedPaneProvider; import com.fr.design.gui.ibutton.UIButtonGroup; import com.fr.design.gui.icombobox.UIComboBox; import com.fr.design.gui.ilable.UILabel; @@ -28,6 +31,7 @@ import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.text.SimpleDateFormat; import java.util.Date; +import java.util.Set; public class DateEditorDefinePane extends DirectWriteEditorDefinePane { private UIButtonGroup returnTypeComboBox; @@ -53,10 +57,8 @@ public class DateEditorDefinePane extends DirectWriteEditorDefinePane(new String[] {com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Date") , com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_String")}); JPanel formatHead = createFormatHead(); - startDv = new DateValuePane(); endDv = new DateValuePane(); - double f = TableLayout.FILL; double p = TableLayout.PREFERRED; UILabel formatLabel = new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Engine_Format")); @@ -65,23 +67,42 @@ public class DateEditorDefinePane extends DirectWriteEditorDefinePane> providers = ExtraDesignClassManager.getInstance().getArray(WidgetAdvancedPaneProvider.XML_TAG); + for (WidgetAdvancedPaneProvider provider : providers) { + if (!provider.accept(DateEditor.class)) { + continue; + } + insertShortCut(provider.getInsertPosition(extraPaneList.size()), provider.createExtraAdvancedPane()); + containsExtraPane = true; + } + if (containsExtraPane) { + extraPane = FRGUIPaneFactory.createYBoxEmptyBorderPane(); + for (BasicBeanPane pane : extraPaneList) { + extraPane.add(pane); + } + } + } + private JPanel createFormatPane(UIComboBox formatComboBox, UILabel sampleLabel){ JPanel previewPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); diff --git a/designer-realize/src/main/java/com/fr/design/widget/ui/DirectWriteEditorDefinePane.java b/designer-realize/src/main/java/com/fr/design/widget/ui/DirectWriteEditorDefinePane.java index 535c13496..a675cd401 100644 --- a/designer-realize/src/main/java/com/fr/design/widget/ui/DirectWriteEditorDefinePane.java +++ b/designer-realize/src/main/java/com/fr/design/widget/ui/DirectWriteEditorDefinePane.java @@ -1,7 +1,10 @@ package com.fr.design.widget.ui; + +import com.fr.design.designer.IntervalConstants; import com.fr.design.gui.icheckbox.UICheckBox; import com.fr.design.layout.FRGUIPaneFactory; +import com.fr.design.layout.TableLayoutHelper; import com.fr.design.utils.gui.GUICoreUtils; import com.fr.form.ui.DirectWriteEditor; @@ -9,6 +12,7 @@ import com.fr.form.ui.DirectWriteEditor; import javax.swing.*; import java.awt.*; + //richer:需要提供能否直接编辑的控件设置面板——下拉框、复选框、时间、日期、下拉树 public abstract class DirectWriteEditorDefinePane extends FieldEditorDefinePane { public UICheckBox directWriteCheckBox; @@ -25,9 +29,17 @@ public abstract class DirectWriteEditorDefinePane e contentPane.setBorder(BorderFactory.createEmptyBorder(0, 2, 0, 0)); directWriteCheckBox = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Allow_Edit"), false); directWriteCheckBox.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0)); - waterMarkDictPane = new WaterMarkDictPane(); - contentPane.add(waterMarkDictPane, BorderLayout.NORTH); + initExtraPane(); + Component[][] components = new Component[][]{ + new Component[]{waterMarkDictPane, null}, + new Component[]{extraPane, null}, + }; + double[] rowSize = {P, P}; + double[] columnSize = {P, F}; + int[][] rowCount = {{1, 1}, {1, 1}}; + JPanel panel = TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, IntervalConstants.INTERVAL_L2, IntervalConstants.INTERVAL_L1); + contentPane.add(panel, BorderLayout.NORTH); JPanel otherContentPane = this.setSecondContentPane(); if (otherContentPane != null) { contentPane.add(otherContentPane, BorderLayout.CENTER); @@ -35,8 +47,6 @@ public abstract class DirectWriteEditorDefinePane e return contentPane; } - - public JPanel setValidatePane(){ JPanel otherContentPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); JPanel jPanel = GUICoreUtils.createFlowPane(new JComponent[]{directWriteCheckBox}, FlowLayout.LEFT, 0); diff --git a/designer-realize/src/main/java/com/fr/design/widget/ui/FieldEditorDefinePane.java b/designer-realize/src/main/java/com/fr/design/widget/ui/FieldEditorDefinePane.java index 07faec922..b260e6e8f 100644 --- a/designer-realize/src/main/java/com/fr/design/widget/ui/FieldEditorDefinePane.java +++ b/designer-realize/src/main/java/com/fr/design/widget/ui/FieldEditorDefinePane.java @@ -1,18 +1,24 @@ package com.fr.design.widget.ui; import com.fr.design.ExtraDesignClassManager; +import com.fr.design.beans.BasicBeanPane; import com.fr.design.beans.ErrorMsgTextFieldAdapter; import com.fr.design.beans.UITextFieldAdapter; import com.fr.design.constants.LayoutConstants; import com.fr.design.designer.IntervalConstants; import com.fr.design.foldablepane.UIExpandablePane; import com.fr.design.fun.TextFieldAdapterProvider; +import com.fr.design.fun.WidgetAdvancedPaneProvider; import com.fr.design.gui.icheckbox.UICheckBox; import com.fr.design.gui.ilable.UILabel; import com.fr.design.layout.FRGUIPaneFactory; +import com.fr.design.layout.TableLayout; import com.fr.design.layout.TableLayoutHelper; import com.fr.form.ui.FieldEditor; +import com.fr.general.GeneralContext; import com.fr.log.FineLoggerFactory; +import com.fr.plugin.observer.PluginEvent; +import com.fr.plugin.observer.PluginEventListener; import javax.swing.BorderFactory; import javax.swing.JPanel; @@ -20,6 +26,8 @@ import java.awt.BorderLayout; import java.awt.Component; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; +import java.util.ArrayList; +import java.util.List; public abstract class FieldEditorDefinePane extends AbstractDataModify { protected UICheckBox allowBlankCheckBox; @@ -27,6 +35,11 @@ public abstract class FieldEditorDefinePane extends Abstr protected ErrorMsgTextFieldAdapter errorMsgTextField; protected JPanel validatePane; + protected final List> extraPaneList = new ArrayList<>(); + protected JPanel extraPane; + + protected static double F = TableLayout.FILL; + protected static double P = TableLayout.PREFERRED; public FieldEditorDefinePane() { this.initComponents(); } @@ -60,11 +73,23 @@ public abstract class FieldEditorDefinePane extends Abstr } } + protected void initExtraPane() { + initPluginListener(); + refreshExtraAdvancedPane(); + } + + protected void refreshExtraAdvancedPane() { + // do nothing + } + + @Override public void populateBean(T ob) { this.allowBlankCheckBox.setSelected(ob.isAllowBlank()); this.errorMsgTextField.setText(ob.getErrorMessage()); - + for (BasicBeanPane pane : extraPaneList) { + pane.populateBean(ob); + } populateSubFieldEditorBean(ob); } @@ -76,7 +101,9 @@ public abstract class FieldEditorDefinePane extends Abstr e.setAllowBlank(this.allowBlankCheckBox.isSelected()); e.setErrorMessage(this.errorMsgTextField.getText()); - + for (BasicBeanPane pane : extraPaneList) { + pane.updateBean(e); + } return e; } @@ -131,5 +158,26 @@ public abstract class FieldEditorDefinePane extends Abstr return null; } + /** + * 插入配置项面板 + * + * @param index 插入的位置 + * @param pane 配置项面板 + */ + protected void insertShortCut(int index, BasicBeanPane pane) { + int size = extraPaneList.size(); + index = Math.min(index, size); + extraPaneList.add(index, pane); + } + + protected void initPluginListener() { + GeneralContext.listenPluginRunningChanged(new PluginEventListener() { + @Override + public void on(PluginEvent event) { + refreshExtraAdvancedPane(); + } + }, pluginContext -> pluginContext.getRuntime().contain(WidgetAdvancedPaneProvider.XML_TAG)); + } + } diff --git a/designer-realize/src/main/java/com/fr/design/widget/ui/NumberEditorDefinePane.java b/designer-realize/src/main/java/com/fr/design/widget/ui/NumberEditorDefinePane.java index 278aa3745..51749f9a2 100644 --- a/designer-realize/src/main/java/com/fr/design/widget/ui/NumberEditorDefinePane.java +++ b/designer-realize/src/main/java/com/fr/design/widget/ui/NumberEditorDefinePane.java @@ -1,11 +1,19 @@ package com.fr.design.widget.ui; import javax.swing.JPanel; +import javax.swing.SwingConstants; + +import com.fr.design.ExtraDesignClassManager; +import com.fr.design.beans.BasicBeanPane; +import com.fr.design.designer.IntervalConstants; +import com.fr.design.fun.WidgetAdvancedPaneProvider; +import com.fr.design.gui.ilable.UILabel; import com.fr.design.layout.FRGUIPaneFactory; +import com.fr.design.layout.TableLayoutHelper; import com.fr.design.widget.component.NumberEditorValidatePane; import com.fr.form.ui.NumberEditor; - -import java.awt.BorderLayout; +import java.awt.Component; +import java.util.Set; public class NumberEditorDefinePane extends FieldEditorDefinePane { /** @@ -29,10 +37,46 @@ public class NumberEditorDefinePane extends FieldEditorDefinePane protected JPanel setFirstContentPane() { JPanel content = FRGUIPaneFactory.createBorderLayout_S_Pane(); waterMarkDictPane = new WaterMarkDictPane(); - content.add(waterMarkDictPane, BorderLayout.CENTER); + initExtraPane(); + Component[][] components = new Component[][]{ + new Component[]{waterMarkDictPane, null}, + new Component[]{extraPane, null} + }; + double[] rowSize = {P, P}; + double[] columnSize = {P, F}; + int[][] rowCount = {{1, 1}, {1, 1}}; + final JPanel panel = TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, IntervalConstants.INTERVAL_W1, IntervalConstants.INTERVAL_L1); + content.add(panel); return content; } + protected void refreshExtraAdvancedPane() { + extraPaneList.clear(); + boolean containsExtraPane = false; + Set> providers = ExtraDesignClassManager.getInstance().getArray(WidgetAdvancedPaneProvider.XML_TAG); + for (WidgetAdvancedPaneProvider provider : providers) { + if (!provider.accept(NumberEditor.class)) { + continue; + } + insertShortCut(provider.getInsertPosition(extraPaneList.size()), provider.createExtraAdvancedPane()); + containsExtraPane = true; + } + if (containsExtraPane) { + extraPane = FRGUIPaneFactory.createYBoxEmptyBorderPane(); + for (BasicBeanPane pane : extraPaneList) { + extraPane.add(pane); + } + } else { + Component[][] components = new Component[][]{ + new Component[]{new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Font_Size"), SwingConstants.LEFT)} + }; + double[] rowSize = {P}; + double[] columnSize = {P, F}; + int[][] rowCount = {{1, 1}}; + extraPane = TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, IntervalConstants.INTERVAL_W1, IntervalConstants.INTERVAL_L1); + } + } + public JPanel setValidatePane() { numberEditorValidatePane = new NumberEditorValidatePane(); return numberEditorValidatePane; diff --git a/designer-realize/src/main/java/com/fr/design/widget/ui/PasswordDefinePane.java b/designer-realize/src/main/java/com/fr/design/widget/ui/PasswordDefinePane.java index af0c98c34..d86bdc44b 100644 --- a/designer-realize/src/main/java/com/fr/design/widget/ui/PasswordDefinePane.java +++ b/designer-realize/src/main/java/com/fr/design/widget/ui/PasswordDefinePane.java @@ -1,10 +1,16 @@ package com.fr.design.widget.ui; +import com.fr.design.ExtraDesignClassManager; +import com.fr.design.beans.BasicBeanPane; +import com.fr.design.fun.WidgetAdvancedPaneProvider; import com.fr.design.gui.frpane.RegFieldPane; import com.fr.design.gui.frpane.RegPane; +import com.fr.design.layout.FRGUIPaneFactory; import com.fr.form.ui.Password; import com.fr.form.ui.TextEditor; +import java.util.Set; + public class PasswordDefinePane extends TextFieldEditorDefinePane { private static final long serialVersionUID = 4737910705071750562L; @@ -16,4 +22,23 @@ public class PasswordDefinePane extends TextFieldEditorDefinePane { protected RegFieldPane createRegPane() { return new RegFieldPane(RegPane.PASSWORD_REG_TYPE); } + + protected void refreshExtraAdvancedPane() { + extraPaneList.clear(); + boolean containsExtraPane = false; + Set> providers = ExtraDesignClassManager.getInstance().getArray(WidgetAdvancedPaneProvider.XML_TAG); + for (WidgetAdvancedPaneProvider provider : providers) { + if (!provider.accept(Password.class)) { + continue; + } + insertShortCut(provider.getInsertPosition(extraPaneList.size()), provider.createExtraAdvancedPane()); + containsExtraPane = true; + } + if (containsExtraPane) { + extraPane = FRGUIPaneFactory.createYBoxEmptyBorderPane(); + for (BasicBeanPane pane : extraPaneList) { + extraPane.add(pane); + } + } + } } \ No newline at end of file diff --git a/designer-realize/src/main/java/com/fr/design/widget/ui/RadioGroupDefinePane.java b/designer-realize/src/main/java/com/fr/design/widget/ui/RadioGroupDefinePane.java index 912e6c942..fa99fb4cc 100644 --- a/designer-realize/src/main/java/com/fr/design/widget/ui/RadioGroupDefinePane.java +++ b/designer-realize/src/main/java/com/fr/design/widget/ui/RadioGroupDefinePane.java @@ -1,9 +1,21 @@ package com.fr.design.widget.ui; import javax.swing.JPanel; +import javax.swing.SwingConstants; + +import com.fr.design.ExtraDesignClassManager; +import com.fr.design.beans.BasicBeanPane; import com.fr.design.data.DataCreatorUI; +import com.fr.design.designer.IntervalConstants; +import com.fr.design.fun.WidgetAdvancedPaneProvider; +import com.fr.design.gui.ilable.UILabel; +import com.fr.design.layout.FRGUIPaneFactory; +import com.fr.design.layout.TableLayoutHelper; import com.fr.form.ui.RadioGroup; +import java.awt.Component; +import java.util.Set; + public class RadioGroupDefinePane extends FieldEditorDefinePane { private ButtonGroupDictPane buttonGroupDictPane; @@ -21,7 +33,45 @@ public class RadioGroupDefinePane extends FieldEditorDefinePane { @Override protected JPanel setFirstContentPane() { buttonGroupDictPane = new ButtonGroupDictPane(); - return buttonGroupDictPane; + initExtraPane(); + Component[][] components = new Component[][]{ + new Component[]{buttonGroupDictPane, null}, + new Component[]{extraPane, null} + }; + double[] rowSize = {P, P, P, P}; + double[] columnSize = {P, F}; + int[][] rowCount = {{1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}}; + final JPanel panel = TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, IntervalConstants.INTERVAL_W1, IntervalConstants.INTERVAL_L1); + JPanel content = FRGUIPaneFactory.createBorderLayout_S_Pane(); + content.add(panel); + return content; + } + + protected void refreshExtraAdvancedPane() { + extraPaneList.clear(); + boolean containsExtraPane = false; + Set> providers = ExtraDesignClassManager.getInstance().getArray(WidgetAdvancedPaneProvider.XML_TAG); + for (WidgetAdvancedPaneProvider provider : providers) { + if (!provider.accept(RadioGroup.class)) { + continue; + } + insertShortCut(provider.getInsertPosition(extraPaneList.size()), provider.createExtraAdvancedPane()); + containsExtraPane = true; + } + if (containsExtraPane) { + extraPane = FRGUIPaneFactory.createYBoxEmptyBorderPane(); + for (BasicBeanPane pane : extraPaneList) { + extraPane.add(pane); + } + } else { + Component[][] components = new Component[][]{ + new Component[]{new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Font_Size"), SwingConstants.LEFT)} + }; + double[] rowSize = {P}; + double[] columnSize = {P, F}; + int[][] rowCount = {{1, 1}}; + extraPane = TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, IntervalConstants.INTERVAL_W1, IntervalConstants.INTERVAL_L1); + } } @Override diff --git a/designer-realize/src/main/java/com/fr/design/widget/ui/TextAreaDefinePane.java b/designer-realize/src/main/java/com/fr/design/widget/ui/TextAreaDefinePane.java index de2fef022..87c38ef55 100644 --- a/designer-realize/src/main/java/com/fr/design/widget/ui/TextAreaDefinePane.java +++ b/designer-realize/src/main/java/com/fr/design/widget/ui/TextAreaDefinePane.java @@ -1,11 +1,18 @@ package com.fr.design.widget.ui; +import com.fr.design.ExtraDesignClassManager; +import com.fr.design.beans.BasicBeanPane; +import com.fr.design.fun.WidgetAdvancedPaneProvider; import com.fr.design.gui.frpane.RegFieldPane; import com.fr.design.gui.frpane.RegPane; +import com.fr.design.layout.FRGUIPaneFactory; import com.fr.form.ui.TextArea; import com.fr.form.ui.TextEditor; +import java.util.Set; + + public class TextAreaDefinePane extends TextFieldEditorDefinePane { @Override @@ -16,4 +23,23 @@ public class TextAreaDefinePane extends TextFieldEditorDefinePane { protected RegFieldPane createRegPane() { return new RegFieldPane(RegPane.TEXTAREA_REG_TYPE); } + + protected void refreshExtraAdvancedPane() { + extraPaneList.clear(); + boolean containsExtraPane = false; + Set> providers = ExtraDesignClassManager.getInstance().getArray(WidgetAdvancedPaneProvider.XML_TAG); + for (WidgetAdvancedPaneProvider provider : providers) { + if (!provider.accept(TextArea.class)) { + continue; + } + insertShortCut(provider.getInsertPosition(extraPaneList.size()), provider.createExtraAdvancedPane()); + containsExtraPane = true; + } + if (containsExtraPane) { + extraPane = FRGUIPaneFactory.createYBoxEmptyBorderPane(); + for (BasicBeanPane pane : extraPaneList) { + extraPane.add(pane); + } + } + } } \ No newline at end of file diff --git a/designer-realize/src/main/java/com/fr/design/widget/ui/TextFieldEditorDefinePane.java b/designer-realize/src/main/java/com/fr/design/widget/ui/TextFieldEditorDefinePane.java index 72e93e28c..37aeddd8c 100644 --- a/designer-realize/src/main/java/com/fr/design/widget/ui/TextFieldEditorDefinePane.java +++ b/designer-realize/src/main/java/com/fr/design/widget/ui/TextFieldEditorDefinePane.java @@ -1,18 +1,23 @@ package com.fr.design.widget.ui; import com.fr.design.ExtraDesignClassManager; +import com.fr.design.beans.BasicBeanPane; +import com.fr.design.designer.IntervalConstants; import com.fr.design.fun.RegPaneProvider; +import com.fr.design.fun.WidgetAdvancedPaneProvider; import com.fr.design.gui.frpane.RegFieldPane; import com.fr.design.gui.frpane.RegPane; import com.fr.design.layout.FRGUIPaneFactory; +import com.fr.design.layout.TableLayoutHelper; import com.fr.form.ui.TextEditor; import com.fr.log.FineLoggerFactory; import com.fr.stable.StringUtils; import javax.swing.JPanel; -import java.awt.BorderLayout; +import java.awt.Component; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; +import java.util.Set; public class TextFieldEditorDefinePane extends FieldEditorDefinePane { protected RegFieldPane regPane; @@ -51,8 +56,17 @@ public class TextFieldEditorDefinePane extends FieldEditorDefinePane waterMarkDictPane.removeInputKeyListener(this); } }); + initExtraPane(); + Component[][] components = new Component[][]{ + new Component[]{waterMarkDictPane, null}, + new Component[]{extraPane, null} + }; + double[] rowSize = {P, P}; + double[] columnSize = {P, F}; + int[][] rowCount = {{1, 1}, {1, 1}}; + final JPanel panel = TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, IntervalConstants.INTERVAL_W1, IntervalConstants.INTERVAL_L1); JPanel content = FRGUIPaneFactory.createBorderLayout_S_Pane(); - content.add(waterMarkDictPane, BorderLayout.CENTER); + content.add(panel); return content; } @@ -60,6 +74,24 @@ public class TextFieldEditorDefinePane extends FieldEditorDefinePane return regPane; } + protected void refreshExtraAdvancedPane() { + extraPaneList.clear(); + boolean containsExtraPane = false; + Set> providers = ExtraDesignClassManager.getInstance().getArray(WidgetAdvancedPaneProvider.XML_TAG); + for (WidgetAdvancedPaneProvider provider : providers) { + if (!provider.accept(TextEditor.class)) { + continue; + } + insertShortCut(provider.getInsertPosition(extraPaneList.size()), provider.createExtraAdvancedPane()); + containsExtraPane = true; + } + if (containsExtraPane) { + extraPane = FRGUIPaneFactory.createYBoxEmptyBorderPane(); + for (BasicBeanPane pane : extraPaneList) { + extraPane.add(pane); + } + } + } protected RegFieldPane createRegPane() { RegPaneProvider provider = ExtraDesignClassManager.getInstance().getSingle(RegPaneProvider.XML_TAG); diff --git a/designer-realize/src/main/java/com/fr/design/widget/ui/TreeComboBoxEditorDefinePane.java b/designer-realize/src/main/java/com/fr/design/widget/ui/TreeComboBoxEditorDefinePane.java index ac436970f..90264d707 100644 --- a/designer-realize/src/main/java/com/fr/design/widget/ui/TreeComboBoxEditorDefinePane.java +++ b/designer-realize/src/main/java/com/fr/design/widget/ui/TreeComboBoxEditorDefinePane.java @@ -1,12 +1,16 @@ package com.fr.design.widget.ui; import java.awt.*; +import java.util.Set; import javax.swing.BorderFactory; import javax.swing.JPanel; +import com.fr.design.ExtraDesignClassManager; +import com.fr.design.beans.BasicBeanPane; import com.fr.design.data.DataCreatorUI; import com.fr.design.designer.IntervalConstants; +import com.fr.design.fun.WidgetAdvancedPaneProvider; import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.itree.refreshabletree.TreeRootPane; import com.fr.design.layout.FRGUIPaneFactory; @@ -60,6 +64,25 @@ public class TreeComboBoxEditorDefinePane extends CustomWritableRepeatEditorPane return jPanel; } + protected void refreshExtraAdvancedPane() { + extraPaneList.clear(); + boolean containsExtraPane = false; + Set> providers = ExtraDesignClassManager.getInstance().getArray(WidgetAdvancedPaneProvider.XML_TAG); + for (WidgetAdvancedPaneProvider provider : providers) { + if (!provider.accept(TreeComboBoxEditor.class)) { + continue; + } + insertShortCut(provider.getInsertPosition(extraPaneList.size()), provider.createExtraAdvancedPane()); + containsExtraPane = true; + } + if (containsExtraPane) { + extraPane = FRGUIPaneFactory.createYBoxEmptyBorderPane(); + for (BasicBeanPane pane : extraPaneList) { + extraPane.add(pane); + } + } + } + @Override protected String title4PopupWindow() { diff --git a/designer-realize/src/main/java/com/fr/design/widget/ui/TreeEditorDefinePane.java b/designer-realize/src/main/java/com/fr/design/widget/ui/TreeEditorDefinePane.java index 086ef8883..7e662de6a 100644 --- a/designer-realize/src/main/java/com/fr/design/widget/ui/TreeEditorDefinePane.java +++ b/designer-realize/src/main/java/com/fr/design/widget/ui/TreeEditorDefinePane.java @@ -1,7 +1,10 @@ package com.fr.design.widget.ui; +import com.fr.design.ExtraDesignClassManager; +import com.fr.design.beans.BasicBeanPane; import com.fr.design.data.DataCreatorUI; import com.fr.design.designer.IntervalConstants; +import com.fr.design.fun.WidgetAdvancedPaneProvider; import com.fr.design.gui.icheckbox.UICheckBox; import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.itree.refreshabletree.TreeRootPane; @@ -14,6 +17,7 @@ import com.fr.form.ui.TreeEditor; import javax.swing.*; import java.awt.*; +import java.util.Set; /* @@ -65,11 +69,19 @@ public class TreeEditorDefinePane extends FieldEditorDefinePane { createTree.setBorder(BorderFactory.createEmptyBorder(0, 0, 10, 0)); JPanel contentPane = FRGUIPaneFactory.createBorderLayout_L_Pane(); JPanel contenter = FRGUIPaneFactory.createBorderLayout_S_Pane(); - + initExtraPane(); + double[] rowSize = {P, P}; + double[] columnSize = {P, F}; + int[][] rowCount = {{1, 1},{1, 1}}; + Component[][] components = new Component[][]{ + new Component[]{createTree, null}, + new Component[]{extraPane, null}, + }; + JPanel panel = TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, IntervalConstants.INTERVAL_L2, IntervalConstants.INTERVAL_L1); contentPane.add(contenter,BorderLayout.NORTH); removeRepeatCheckBox = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Remove_Repeat_Data"), false); removeRepeatCheckBox.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0)); - contenter.add(createTree, BorderLayout.NORTH); + contenter.add(panel, BorderLayout.NORTH); contenter.add(removeRepeatCheckBox, BorderLayout.CENTER); JPanel otherContentPane = this.setThirdContentPane(); if (otherContentPane != null) { @@ -78,6 +90,25 @@ public class TreeEditorDefinePane extends FieldEditorDefinePane { return contentPane; } + protected void refreshExtraAdvancedPane() { + extraPaneList.clear(); + boolean containsExtraPane = false; + Set> providers = ExtraDesignClassManager.getInstance().getArray(WidgetAdvancedPaneProvider.XML_TAG); + for (WidgetAdvancedPaneProvider provider : providers) { + if (!provider.accept(TreeEditor.class)) { + continue; + } + insertShortCut(provider.getInsertPosition(extraPaneList.size()), provider.createExtraAdvancedPane()); + containsExtraPane = true; + } + if (containsExtraPane) { + extraPane = FRGUIPaneFactory.createYBoxEmptyBorderPane(); + for (BasicBeanPane pane : extraPaneList) { + extraPane.add(pane); + } + } + } + protected JPanel setThirdContentPane() { JPanel content = FRGUIPaneFactory.createBorderLayout_L_Pane(); treeRootPane = new TreeRootPane(); From 991fbb1418d7772568b3f7859fc180c3e416009d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?John=2EYing-=E5=BA=94=E5=BF=97=E6=B5=A9?= Date: Mon, 13 Mar 2023 16:47:49 +0800 Subject: [PATCH 2/2] =?UTF-8?q?REPORT-91591=20=E5=8D=95=E5=85=83=E6=A0=BC?= =?UTF-8?q?=E6=8E=A7=E4=BB=B6=E7=9A=84=E8=87=AA=E5=AE=9A=E4=B9=89=E6=A0=B7?= =?UTF-8?q?=E5=BC=8F=E8=AE=BE=E7=BD=AE--=E4=BB=A3=E7=A0=81=E6=A0=BC?= =?UTF-8?q?=E5=BC=8F=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/widget/ui/CheckBoxDefinePane.java | 5 ++-- .../widget/ui/CheckBoxGroupDefinePane.java | 26 ++----------------- .../design/widget/ui/ComboBoxDefinePane.java | 18 ++----------- .../widget/ui/ComboCheckBoxDefinePane.java | 18 ++----------- .../widget/ui/DateEditorDefinePane.java | 18 ++----------- .../widget/ui/FieldEditorDefinePane.java | 19 ++++++++++++++ .../widget/ui/NumberEditorDefinePane.java | 26 ++----------------- .../design/widget/ui/PasswordDefinePane.java | 18 ++----------- .../widget/ui/RadioGroupDefinePane.java | 26 ++----------------- .../design/widget/ui/TextAreaDefinePane.java | 18 ++----------- .../widget/ui/TextFieldEditorDefinePane.java | 18 ++----------- .../ui/TreeComboBoxEditorDefinePane.java | 18 ++----------- .../widget/ui/TreeEditorDefinePane.java | 18 ++----------- 13 files changed, 44 insertions(+), 202 deletions(-) diff --git a/designer-realize/src/main/java/com/fr/design/widget/ui/CheckBoxDefinePane.java b/designer-realize/src/main/java/com/fr/design/widget/ui/CheckBoxDefinePane.java index d7b2631b1..4e0a60fde 100644 --- a/designer-realize/src/main/java/com/fr/design/widget/ui/CheckBoxDefinePane.java +++ b/designer-realize/src/main/java/com/fr/design/widget/ui/CheckBoxDefinePane.java @@ -16,8 +16,9 @@ import com.fr.plugin.observer.PluginEvent; import com.fr.plugin.observer.PluginEventListener; -import javax.swing.*; -import java.awt.*; +import javax.swing.BorderFactory; +import javax.swing.JPanel; +import java.awt.Component; import java.util.ArrayList; import java.util.List; import java.util.Set; diff --git a/designer-realize/src/main/java/com/fr/design/widget/ui/CheckBoxGroupDefinePane.java b/designer-realize/src/main/java/com/fr/design/widget/ui/CheckBoxGroupDefinePane.java index 43aa175c5..ea7a774a4 100644 --- a/designer-realize/src/main/java/com/fr/design/widget/ui/CheckBoxGroupDefinePane.java +++ b/designer-realize/src/main/java/com/fr/design/widget/ui/CheckBoxGroupDefinePane.java @@ -68,31 +68,9 @@ public class CheckBoxGroupDefinePane extends FieldEditorDefinePane> providers = ExtraDesignClassManager.getInstance().getArray(WidgetAdvancedPaneProvider.XML_TAG); - for (WidgetAdvancedPaneProvider provider : providers) { - if (!provider.accept(CheckBoxGroup.class)) { - continue; - } - insertShortCut(provider.getInsertPosition(extraPaneList.size()), provider.createExtraAdvancedPane()); - containsExtraPane = true; - } - if (containsExtraPane) { - extraPane = FRGUIPaneFactory.createYBoxEmptyBorderPane(); - for (BasicBeanPane pane : extraPaneList) { - extraPane.add(pane); - } - } else { - Component[][] components = new Component[][]{ - new Component[]{new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Font_Size"), SwingConstants.LEFT)} - }; - double[] rowSize = {P}; - double[] columnSize = {P, F}; - int[][] rowCount = {{1, 1}}; - extraPane = TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, IntervalConstants.INTERVAL_W1, IntervalConstants.INTERVAL_L1); - } + refreshExtraAdvancedPane(CheckBoxGroup.class); } @Override diff --git a/designer-realize/src/main/java/com/fr/design/widget/ui/ComboBoxDefinePane.java b/designer-realize/src/main/java/com/fr/design/widget/ui/ComboBoxDefinePane.java index 8a94c1de2..848341337 100644 --- a/designer-realize/src/main/java/com/fr/design/widget/ui/ComboBoxDefinePane.java +++ b/designer-realize/src/main/java/com/fr/design/widget/ui/ComboBoxDefinePane.java @@ -38,23 +38,9 @@ public class ComboBoxDefinePane extends CustomWritableRepeatEditorPane return jPanel; } + @Override protected void refreshExtraAdvancedPane() { - extraPaneList.clear(); - boolean containsExtraPane = false; - Set> providers = ExtraDesignClassManager.getInstance().getArray(WidgetAdvancedPaneProvider.XML_TAG); - for (WidgetAdvancedPaneProvider provider : providers) { - if (!provider.accept(ComboBox.class)) { - continue; - } - insertShortCut(provider.getInsertPosition(extraPaneList.size()), provider.createExtraAdvancedPane()); - containsExtraPane = true; - } - if (containsExtraPane) { - extraPane = FRGUIPaneFactory.createYBoxEmptyBorderPane(); - for (BasicBeanPane pane : extraPaneList) { - extraPane.add(pane); - } - } + refreshExtraAdvancedPane(ComboBox.class); } protected void populateSubCustomWritableRepeatEditorBean(ComboBox e) { diff --git a/designer-realize/src/main/java/com/fr/design/widget/ui/ComboCheckBoxDefinePane.java b/designer-realize/src/main/java/com/fr/design/widget/ui/ComboCheckBoxDefinePane.java index 00968771e..270377d42 100644 --- a/designer-realize/src/main/java/com/fr/design/widget/ui/ComboCheckBoxDefinePane.java +++ b/designer-realize/src/main/java/com/fr/design/widget/ui/ComboCheckBoxDefinePane.java @@ -53,23 +53,9 @@ public class ComboCheckBoxDefinePane extends CustomWritableRepeatEditorPane> providers = ExtraDesignClassManager.getInstance().getArray(WidgetAdvancedPaneProvider.XML_TAG); - for (WidgetAdvancedPaneProvider provider : providers) { - if (!provider.accept(ComboCheckBox.class)) { - continue; - } - insertShortCut(provider.getInsertPosition(extraPaneList.size()), provider.createExtraAdvancedPane()); - containsExtraPane = true; - } - if (containsExtraPane) { - extraPane = FRGUIPaneFactory.createYBoxEmptyBorderPane(); - for (BasicBeanPane pane : extraPaneList) { - extraPane.add(pane); - } - } + refreshExtraAdvancedPane(ComboCheckBox.class); } @Override diff --git a/designer-realize/src/main/java/com/fr/design/widget/ui/DateEditorDefinePane.java b/designer-realize/src/main/java/com/fr/design/widget/ui/DateEditorDefinePane.java index d7b8491ad..a5b05dbcc 100644 --- a/designer-realize/src/main/java/com/fr/design/widget/ui/DateEditorDefinePane.java +++ b/designer-realize/src/main/java/com/fr/design/widget/ui/DateEditorDefinePane.java @@ -84,23 +84,9 @@ public class DateEditorDefinePane extends DirectWriteEditorDefinePane> providers = ExtraDesignClassManager.getInstance().getArray(WidgetAdvancedPaneProvider.XML_TAG); - for (WidgetAdvancedPaneProvider provider : providers) { - if (!provider.accept(DateEditor.class)) { - continue; - } - insertShortCut(provider.getInsertPosition(extraPaneList.size()), provider.createExtraAdvancedPane()); - containsExtraPane = true; - } - if (containsExtraPane) { - extraPane = FRGUIPaneFactory.createYBoxEmptyBorderPane(); - for (BasicBeanPane pane : extraPaneList) { - extraPane.add(pane); - } - } + refreshExtraAdvancedPane(DateEditor.class); } private JPanel createFormatPane(UIComboBox formatComboBox, UILabel sampleLabel){ diff --git a/designer-realize/src/main/java/com/fr/design/widget/ui/FieldEditorDefinePane.java b/designer-realize/src/main/java/com/fr/design/widget/ui/FieldEditorDefinePane.java index b260e6e8f..a9208c772 100644 --- a/designer-realize/src/main/java/com/fr/design/widget/ui/FieldEditorDefinePane.java +++ b/designer-realize/src/main/java/com/fr/design/widget/ui/FieldEditorDefinePane.java @@ -28,6 +28,7 @@ import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.util.ArrayList; import java.util.List; +import java.util.Set; public abstract class FieldEditorDefinePane extends AbstractDataModify { protected UICheckBox allowBlankCheckBox; @@ -82,6 +83,24 @@ public abstract class FieldEditorDefinePane extends Abstr // do nothing } + protected void refreshExtraAdvancedPane(Class cls) { + extraPaneList.clear(); + boolean containsExtraPane = false; + Set> providers = ExtraDesignClassManager.getInstance().getArray(WidgetAdvancedPaneProvider.XML_TAG); + for (WidgetAdvancedPaneProvider provider : providers) { + if (!provider.accept(cls)) { + continue; + } + insertShortCut(provider.getInsertPosition(extraPaneList.size()), provider.createExtraAdvancedPane()); + containsExtraPane = true; + } + if (containsExtraPane) { + extraPane = FRGUIPaneFactory.createYBoxEmptyBorderPane(); + for (BasicBeanPane pane : extraPaneList) { + extraPane.add(pane); + } + } + } @Override public void populateBean(T ob) { diff --git a/designer-realize/src/main/java/com/fr/design/widget/ui/NumberEditorDefinePane.java b/designer-realize/src/main/java/com/fr/design/widget/ui/NumberEditorDefinePane.java index 51749f9a2..8285abbf3 100644 --- a/designer-realize/src/main/java/com/fr/design/widget/ui/NumberEditorDefinePane.java +++ b/designer-realize/src/main/java/com/fr/design/widget/ui/NumberEditorDefinePane.java @@ -50,31 +50,9 @@ public class NumberEditorDefinePane extends FieldEditorDefinePane return content; } + @Override protected void refreshExtraAdvancedPane() { - extraPaneList.clear(); - boolean containsExtraPane = false; - Set> providers = ExtraDesignClassManager.getInstance().getArray(WidgetAdvancedPaneProvider.XML_TAG); - for (WidgetAdvancedPaneProvider provider : providers) { - if (!provider.accept(NumberEditor.class)) { - continue; - } - insertShortCut(provider.getInsertPosition(extraPaneList.size()), provider.createExtraAdvancedPane()); - containsExtraPane = true; - } - if (containsExtraPane) { - extraPane = FRGUIPaneFactory.createYBoxEmptyBorderPane(); - for (BasicBeanPane pane : extraPaneList) { - extraPane.add(pane); - } - } else { - Component[][] components = new Component[][]{ - new Component[]{new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Font_Size"), SwingConstants.LEFT)} - }; - double[] rowSize = {P}; - double[] columnSize = {P, F}; - int[][] rowCount = {{1, 1}}; - extraPane = TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, IntervalConstants.INTERVAL_W1, IntervalConstants.INTERVAL_L1); - } + refreshExtraAdvancedPane(NumberEditor.class); } public JPanel setValidatePane() { diff --git a/designer-realize/src/main/java/com/fr/design/widget/ui/PasswordDefinePane.java b/designer-realize/src/main/java/com/fr/design/widget/ui/PasswordDefinePane.java index d86bdc44b..c3119a65f 100644 --- a/designer-realize/src/main/java/com/fr/design/widget/ui/PasswordDefinePane.java +++ b/designer-realize/src/main/java/com/fr/design/widget/ui/PasswordDefinePane.java @@ -23,22 +23,8 @@ public class PasswordDefinePane extends TextFieldEditorDefinePane { return new RegFieldPane(RegPane.PASSWORD_REG_TYPE); } + @Override protected void refreshExtraAdvancedPane() { - extraPaneList.clear(); - boolean containsExtraPane = false; - Set> providers = ExtraDesignClassManager.getInstance().getArray(WidgetAdvancedPaneProvider.XML_TAG); - for (WidgetAdvancedPaneProvider provider : providers) { - if (!provider.accept(Password.class)) { - continue; - } - insertShortCut(provider.getInsertPosition(extraPaneList.size()), provider.createExtraAdvancedPane()); - containsExtraPane = true; - } - if (containsExtraPane) { - extraPane = FRGUIPaneFactory.createYBoxEmptyBorderPane(); - for (BasicBeanPane pane : extraPaneList) { - extraPane.add(pane); - } - } + refreshExtraAdvancedPane(Password.class); } } \ No newline at end of file diff --git a/designer-realize/src/main/java/com/fr/design/widget/ui/RadioGroupDefinePane.java b/designer-realize/src/main/java/com/fr/design/widget/ui/RadioGroupDefinePane.java index fa99fb4cc..22f7a31d5 100644 --- a/designer-realize/src/main/java/com/fr/design/widget/ui/RadioGroupDefinePane.java +++ b/designer-realize/src/main/java/com/fr/design/widget/ui/RadioGroupDefinePane.java @@ -47,31 +47,9 @@ public class RadioGroupDefinePane extends FieldEditorDefinePane { return content; } + @Override protected void refreshExtraAdvancedPane() { - extraPaneList.clear(); - boolean containsExtraPane = false; - Set> providers = ExtraDesignClassManager.getInstance().getArray(WidgetAdvancedPaneProvider.XML_TAG); - for (WidgetAdvancedPaneProvider provider : providers) { - if (!provider.accept(RadioGroup.class)) { - continue; - } - insertShortCut(provider.getInsertPosition(extraPaneList.size()), provider.createExtraAdvancedPane()); - containsExtraPane = true; - } - if (containsExtraPane) { - extraPane = FRGUIPaneFactory.createYBoxEmptyBorderPane(); - for (BasicBeanPane pane : extraPaneList) { - extraPane.add(pane); - } - } else { - Component[][] components = new Component[][]{ - new Component[]{new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Font_Size"), SwingConstants.LEFT)} - }; - double[] rowSize = {P}; - double[] columnSize = {P, F}; - int[][] rowCount = {{1, 1}}; - extraPane = TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, IntervalConstants.INTERVAL_W1, IntervalConstants.INTERVAL_L1); - } + refreshExtraAdvancedPane(RadioGroup.class); } @Override diff --git a/designer-realize/src/main/java/com/fr/design/widget/ui/TextAreaDefinePane.java b/designer-realize/src/main/java/com/fr/design/widget/ui/TextAreaDefinePane.java index 87c38ef55..00969b1e7 100644 --- a/designer-realize/src/main/java/com/fr/design/widget/ui/TextAreaDefinePane.java +++ b/designer-realize/src/main/java/com/fr/design/widget/ui/TextAreaDefinePane.java @@ -24,22 +24,8 @@ public class TextAreaDefinePane extends TextFieldEditorDefinePane { return new RegFieldPane(RegPane.TEXTAREA_REG_TYPE); } + @Override protected void refreshExtraAdvancedPane() { - extraPaneList.clear(); - boolean containsExtraPane = false; - Set> providers = ExtraDesignClassManager.getInstance().getArray(WidgetAdvancedPaneProvider.XML_TAG); - for (WidgetAdvancedPaneProvider provider : providers) { - if (!provider.accept(TextArea.class)) { - continue; - } - insertShortCut(provider.getInsertPosition(extraPaneList.size()), provider.createExtraAdvancedPane()); - containsExtraPane = true; - } - if (containsExtraPane) { - extraPane = FRGUIPaneFactory.createYBoxEmptyBorderPane(); - for (BasicBeanPane pane : extraPaneList) { - extraPane.add(pane); - } - } + refreshExtraAdvancedPane(TextArea.class); } } \ No newline at end of file diff --git a/designer-realize/src/main/java/com/fr/design/widget/ui/TextFieldEditorDefinePane.java b/designer-realize/src/main/java/com/fr/design/widget/ui/TextFieldEditorDefinePane.java index 37aeddd8c..abc7a382d 100644 --- a/designer-realize/src/main/java/com/fr/design/widget/ui/TextFieldEditorDefinePane.java +++ b/designer-realize/src/main/java/com/fr/design/widget/ui/TextFieldEditorDefinePane.java @@ -74,23 +74,9 @@ public class TextFieldEditorDefinePane extends FieldEditorDefinePane return regPane; } + @Override protected void refreshExtraAdvancedPane() { - extraPaneList.clear(); - boolean containsExtraPane = false; - Set> providers = ExtraDesignClassManager.getInstance().getArray(WidgetAdvancedPaneProvider.XML_TAG); - for (WidgetAdvancedPaneProvider provider : providers) { - if (!provider.accept(TextEditor.class)) { - continue; - } - insertShortCut(provider.getInsertPosition(extraPaneList.size()), provider.createExtraAdvancedPane()); - containsExtraPane = true; - } - if (containsExtraPane) { - extraPane = FRGUIPaneFactory.createYBoxEmptyBorderPane(); - for (BasicBeanPane pane : extraPaneList) { - extraPane.add(pane); - } - } + refreshExtraAdvancedPane(TextEditor.class); } protected RegFieldPane createRegPane() { diff --git a/designer-realize/src/main/java/com/fr/design/widget/ui/TreeComboBoxEditorDefinePane.java b/designer-realize/src/main/java/com/fr/design/widget/ui/TreeComboBoxEditorDefinePane.java index 90264d707..54bf00a38 100644 --- a/designer-realize/src/main/java/com/fr/design/widget/ui/TreeComboBoxEditorDefinePane.java +++ b/designer-realize/src/main/java/com/fr/design/widget/ui/TreeComboBoxEditorDefinePane.java @@ -64,23 +64,9 @@ public class TreeComboBoxEditorDefinePane extends CustomWritableRepeatEditorPane return jPanel; } + @Override protected void refreshExtraAdvancedPane() { - extraPaneList.clear(); - boolean containsExtraPane = false; - Set> providers = ExtraDesignClassManager.getInstance().getArray(WidgetAdvancedPaneProvider.XML_TAG); - for (WidgetAdvancedPaneProvider provider : providers) { - if (!provider.accept(TreeComboBoxEditor.class)) { - continue; - } - insertShortCut(provider.getInsertPosition(extraPaneList.size()), provider.createExtraAdvancedPane()); - containsExtraPane = true; - } - if (containsExtraPane) { - extraPane = FRGUIPaneFactory.createYBoxEmptyBorderPane(); - for (BasicBeanPane pane : extraPaneList) { - extraPane.add(pane); - } - } + refreshExtraAdvancedPane(TreeComboBoxEditor.class); } diff --git a/designer-realize/src/main/java/com/fr/design/widget/ui/TreeEditorDefinePane.java b/designer-realize/src/main/java/com/fr/design/widget/ui/TreeEditorDefinePane.java index 7e662de6a..1abc355f9 100644 --- a/designer-realize/src/main/java/com/fr/design/widget/ui/TreeEditorDefinePane.java +++ b/designer-realize/src/main/java/com/fr/design/widget/ui/TreeEditorDefinePane.java @@ -90,23 +90,9 @@ public class TreeEditorDefinePane extends FieldEditorDefinePane { return contentPane; } + @Override protected void refreshExtraAdvancedPane() { - extraPaneList.clear(); - boolean containsExtraPane = false; - Set> providers = ExtraDesignClassManager.getInstance().getArray(WidgetAdvancedPaneProvider.XML_TAG); - for (WidgetAdvancedPaneProvider provider : providers) { - if (!provider.accept(TreeEditor.class)) { - continue; - } - insertShortCut(provider.getInsertPosition(extraPaneList.size()), provider.createExtraAdvancedPane()); - containsExtraPane = true; - } - if (containsExtraPane) { - extraPane = FRGUIPaneFactory.createYBoxEmptyBorderPane(); - for (BasicBeanPane pane : extraPaneList) { - extraPane.add(pane); - } - } + refreshExtraAdvancedPane(TreeEditor.class); } protected JPanel setThirdContentPane() {