diff --git a/designer-base/src/main/java/com/fr/design/condition/ObjectLiteConditionPane.java b/designer-base/src/main/java/com/fr/design/condition/ObjectLiteConditionPane.java index b863717f6..c39d5b744 100644 --- a/designer-base/src/main/java/com/fr/design/condition/ObjectLiteConditionPane.java +++ b/designer-base/src/main/java/com/fr/design/condition/ObjectLiteConditionPane.java @@ -77,7 +77,7 @@ public class ObjectLiteConditionPane extends LiteConditionPane } }); - conditionValuePane = ValueEditorPaneFactory.createAllValueEditorPane(); + conditionValuePane = ValueEditorPaneFactory.createAllValueEditorPaneWithGlobalListener(); Component[][] components = { { new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_ConditionB_Operator") + ":"), new UILabel() }, { conditionOPComboBox, conditionValuePane } }; diff --git a/designer-base/src/main/java/com/fr/design/editor/ValueEditorPaneFactory.java b/designer-base/src/main/java/com/fr/design/editor/ValueEditorPaneFactory.java index 71959b72d..462292099 100644 --- a/designer-base/src/main/java/com/fr/design/editor/ValueEditorPaneFactory.java +++ b/designer-base/src/main/java/com/fr/design/editor/ValueEditorPaneFactory.java @@ -19,17 +19,18 @@ import com.fr.design.editor.editor.TextEditor; import com.fr.design.editor.editor.WidgetNameEditor; import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.itableeditorpane.ParameterTableModel; +import com.fr.design.i18n.Toolkit; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.stable.StringUtils; -import javax.swing.*; -import java.awt.*; +import java.awt.BorderLayout; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; +import javax.swing.JPanel; public class ValueEditorPaneFactory { @@ -155,6 +156,16 @@ public class ValueEditorPaneFactory { return createValueEditorPane(allEditors(), StringUtils.EMPTY, StringUtils.EMPTY); } + /** + * 带有所有编辑器的ValueEditorPane + * 同时需要注册全局监听的编辑器注册下监听 + * + * @return 值编辑器面板 + */ + public static ValueEditorPane createAllValueEditorPaneWithGlobalListener() { + return createValueEditorPane(allEditorsWithGlobalListener(), StringUtils.EMPTY, StringUtils.EMPTY); + } + /** * 创建不带公式面板的pane * @@ -359,6 +370,29 @@ public class ValueEditorPaneFactory { }; } + /** + * 所有类型的编辑器 + * 同时注册需要的监听 + * + * @return 值编辑器 + */ + public static Editor[] allEditorsWithGlobalListener() { + FormulaEditor formulaEditor = new FormulaEditor(Toolkit.i18nText("Fine-Design_Basic_Parameter_Formula")); + ColumnSelectedEditor columnSelectedEditor = new ColumnSelectedEditor(); + columnSelectedEditor.registerDSChangeListener(); + return new Editor[]{ + new TextEditor(), + new IntegerEditor(), + new DoubleEditor(), + new DateEditor(true, Toolkit.i18nText("Fine-Design_Basic_Date")), + new BooleanEditor(), + formulaEditor, + new ParameterEditor(), + new ColumnRowEditor(Toolkit.i18nText("Fine-Design_Basic_Cell")), + columnSelectedEditor, + }; + } + /** * 不带公式编辑器 * diff --git a/designer-base/src/main/java/com/fr/design/editor/editor/ColumnSelectedEditor.java b/designer-base/src/main/java/com/fr/design/editor/editor/ColumnSelectedEditor.java index ade55ae8b..5260ce175 100644 --- a/designer-base/src/main/java/com/fr/design/editor/editor/ColumnSelectedEditor.java +++ b/designer-base/src/main/java/com/fr/design/editor/editor/ColumnSelectedEditor.java @@ -3,6 +3,7 @@ package com.fr.design.editor.editor; import com.fr.design.data.DesignTableDataManager; import com.fr.data.SimpleDSColumn; import com.fr.design.data.datapane.TableDataComboBox; +import com.fr.design.data.tabledata.Prepare4DataSourceChange; import com.fr.design.data.tabledata.wrapper.TableDataWrapper; import com.fr.design.gui.icombobox.UIComboBox; import com.fr.design.layout.FRGUIPaneFactory; @@ -22,7 +23,7 @@ import java.util.regex.Pattern; * @author zhou * @since 2012-3-29下午6:05:08 */ -public class ColumnSelectedEditor extends Editor { +public class ColumnSelectedEditor extends Editor implements Prepare4DataSourceChange { TableDataComboBox tableDataComboBox; private UIComboBox columnNameComboBox; protected String[] columnNames; @@ -107,4 +108,9 @@ public class ColumnSelectedEditor extends Editor { tableDataComboBox.setSelectedItem(null); columnNameComboBox.setSelectedItem(null); } + + @Override + public void registerDSChangeListener() { + tableDataComboBox.registerGlobalDSChangeListener(); + } } diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/JWorkBook.java b/designer-realize/src/main/java/com/fr/design/mainframe/JWorkBook.java index 05830dfd0..7cc0ca283 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/JWorkBook.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/JWorkBook.java @@ -776,6 +776,7 @@ public class JWorkBook extends JTemplate { if (hasParameterPane()) { parameterPane.populate(u.getApplyTarget()); setAutoHeightForCenterPane(); + reportComposite.setSelectedIndex(u.getSelectedReportIndex()); DesignModuleFactory.getFormHierarchyPane().refreshRoot(); } } else {