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..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 @@ -1,21 +1,35 @@ 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 javax.swing.BorderFactory; +import javax.swing.JPanel; +import java.awt.Component; +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 +37,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 +53,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 +106,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..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 @@ -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,28 @@ public class CheckBoxGroupDefinePane extends FieldEditorDefinePane { protected AccessibleDictionaryEditor dictPane; @@ -33,6 +38,11 @@ public class ComboBoxDefinePane extends CustomWritableRepeatEditorPane return jPanel; } + @Override + protected void refreshExtraAdvancedPane() { + refreshExtraAdvancedPane(ComboBox.class); + } + 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..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 @@ -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,11 @@ public class ComboCheckBoxDefinePane extends CustomWritableRepeatEditorPane { 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,28 @@ public class DateEditorDefinePane extends 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..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 @@ -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,9 @@ 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; +import java.util.Set; public abstract class FieldEditorDefinePane extends AbstractDataModify { protected UICheckBox allowBlankCheckBox; @@ -27,6 +36,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 +74,41 @@ public abstract class FieldEditorDefinePane extends Abstr } } + protected void initExtraPane() { + initPluginListener(); + refreshExtraAdvancedPane(); + } + + protected void refreshExtraAdvancedPane() { + // 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) { this.allowBlankCheckBox.setSelected(ob.isAllowBlank()); this.errorMsgTextField.setText(ob.getErrorMessage()); - + for (BasicBeanPane pane : extraPaneList) { + pane.populateBean(ob); + } populateSubFieldEditorBean(ob); } @@ -76,7 +120,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 +177,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..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 @@ -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,24 @@ 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; } + @Override + protected void refreshExtraAdvancedPane() { + refreshExtraAdvancedPane(NumberEditor.class); + } + 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..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 @@ -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,9 @@ public class PasswordDefinePane extends TextFieldEditorDefinePane { protected RegFieldPane createRegPane() { return new RegFieldPane(RegPane.PASSWORD_REG_TYPE); } + + @Override + protected void refreshExtraAdvancedPane() { + 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 912e6c942..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 @@ -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,23 @@ 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; + } + + @Override + protected void refreshExtraAdvancedPane() { + 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 de2fef022..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 @@ -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,9 @@ public class TextAreaDefinePane extends TextFieldEditorDefinePane { protected RegFieldPane createRegPane() { return new RegFieldPane(RegPane.TEXTAREA_REG_TYPE); } + + @Override + protected void refreshExtraAdvancedPane() { + 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 72e93e28c..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 @@ -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,10 @@ public class TextFieldEditorDefinePane extends FieldEditorDefinePane return regPane; } + @Override + protected void refreshExtraAdvancedPane() { + refreshExtraAdvancedPane(TextEditor.class); + } 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..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 @@ -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,11 @@ public class TreeComboBoxEditorDefinePane extends CustomWritableRepeatEditorPane return jPanel; } + @Override + protected void refreshExtraAdvancedPane() { + refreshExtraAdvancedPane(TreeComboBoxEditor.class); + } + @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..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 @@ -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,11 @@ public class TreeEditorDefinePane extends FieldEditorDefinePane { return contentPane; } + @Override + protected void refreshExtraAdvancedPane() { + refreshExtraAdvancedPane(TreeEditor.class); + } + protected JPanel setThirdContentPane() { JPanel content = FRGUIPaneFactory.createBorderLayout_L_Pane(); treeRootPane = new TreeRootPane();