From 80acf12674b07b8b54d530225a93610dc3f13fe1 Mon Sep 17 00:00:00 2001 From: "Mata.Li" Date: Tue, 17 Jul 2018 10:42:40 +0800 Subject: [PATCH 1/4] REPORT-97399 --- .../design/dscolumn/SelectedDataColumnPane.java | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/designer-realize/src/main/java/com/fr/design/dscolumn/SelectedDataColumnPane.java b/designer-realize/src/main/java/com/fr/design/dscolumn/SelectedDataColumnPane.java index aec849e41..76ea00a02 100644 --- a/designer-realize/src/main/java/com/fr/design/dscolumn/SelectedDataColumnPane.java +++ b/designer-realize/src/main/java/com/fr/design/dscolumn/SelectedDataColumnPane.java @@ -88,6 +88,10 @@ public class SelectedDataColumnPane extends BasicPane { private static final Pattern COLUMN_NAME_PATTERN = Pattern.compile("[^\\d]"); + //数据集和数据列上次的名称 + private String oldDsName; + private String oldColumnName; + /** * 数据集下拉框变动后修改数据列下拉框加载状态的监听器 */ @@ -232,10 +236,19 @@ public class SelectedDataColumnPane extends BasicPane { DSColumn dsColumn = (DSColumn) value; String dsName = dsColumn.getDSName(); tableNameComboBox.setSelectedTableDataByName(dsName); - columnNameComboBox.setSelectedItem(TableDataColumn.getColumnName(dsColumn.getColumn())); + //数据列名称 + String dsColumnName = TableDataColumn.getColumnName(dsColumn.getColumn()); + columnNameComboBox.setSelectedItem(dsColumnName); ps = dsColumn.getParameters(); addListener(); + //比较上一次的数据集名称和数据列,不一样的话需要加载 + if(!StringUtils.equals(dsName,oldDsName) || !StringUtils.equals(dsColumnName,oldColumnName)){ + columnNameComboBox.setLoaded(false); + + oldDsName = dsName; + oldColumnName = dsColumnName; + } } /** From e508415a4cfebd0eedb2910168315d78c83b3ec1 Mon Sep 17 00:00:00 2001 From: "Mata.Li" Date: Tue, 17 Jul 2018 11:45:48 +0800 Subject: [PATCH 2/4] REPORT-97399 --- .../com/fr/design/gui/icombobox/LazyComboBox.java | 14 ++++++++++++++ .../design/dscolumn/SelectedDataColumnPane.java | 15 +++++---------- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/gui/icombobox/LazyComboBox.java b/designer-base/src/main/java/com/fr/design/gui/icombobox/LazyComboBox.java index 575ab630b..9ac46a429 100644 --- a/designer-base/src/main/java/com/fr/design/gui/icombobox/LazyComboBox.java +++ b/designer-base/src/main/java/com/fr/design/gui/icombobox/LazyComboBox.java @@ -5,6 +5,7 @@ package com.fr.design.gui.icombobox; import com.fr.log.FineLoggerFactory; import com.fr.general.Inter; +import com.fr.stable.StringUtils; import javax.swing.DefaultComboBoxModel; import javax.swing.SwingWorker; @@ -35,6 +36,10 @@ public abstract class LazyComboBox extends UIComboBox implements PopupMenuListen */ private Object initialSelected = null; + //数据集和模板的名称 + private String oldDsName; + private String oldTemplateName; + protected LazyComboBox() { super(); @@ -53,6 +58,15 @@ public abstract class LazyComboBox extends UIComboBox implements PopupMenuListen */ public abstract Object[] load(); + public void changeLoaded(String dsName, String templateName){ + if (!StringUtils.equals(dsName, oldDsName) || !StringUtils.equals(templateName, oldTemplateName)){ + this.setLoaded(false); + + oldDsName = dsName; + oldTemplateName = templateName; + } + } + @Override public void setSelectedItem(Object anObject) { initialSelected = anObject; diff --git a/designer-realize/src/main/java/com/fr/design/dscolumn/SelectedDataColumnPane.java b/designer-realize/src/main/java/com/fr/design/dscolumn/SelectedDataColumnPane.java index 76ea00a02..181c5fb7f 100644 --- a/designer-realize/src/main/java/com/fr/design/dscolumn/SelectedDataColumnPane.java +++ b/designer-realize/src/main/java/com/fr/design/dscolumn/SelectedDataColumnPane.java @@ -9,6 +9,7 @@ import com.fr.design.data.tabledata.wrapper.TableDataWrapper; import com.fr.design.dialog.BasicDialog; import com.fr.design.dialog.BasicPane; import com.fr.design.dialog.DialogActionAdapter; +import com.fr.design.file.HistoryTemplateListPane; import com.fr.design.gui.ibutton.UIButton; import com.fr.design.gui.icombobox.LazyComboBox; import com.fr.design.gui.ilable.UILabel; @@ -88,9 +89,6 @@ public class SelectedDataColumnPane extends BasicPane { private static final Pattern COLUMN_NAME_PATTERN = Pattern.compile("[^\\d]"); - //数据集和数据列上次的名称 - private String oldDsName; - private String oldColumnName; /** * 数据集下拉框变动后修改数据列下拉框加载状态的监听器 @@ -240,15 +238,12 @@ public class SelectedDataColumnPane extends BasicPane { String dsColumnName = TableDataColumn.getColumnName(dsColumn.getColumn()); columnNameComboBox.setSelectedItem(dsColumnName); ps = dsColumn.getParameters(); + //模板名称 + String templateName = HistoryTemplateListPane.getInstance().getCurrentEditingTemplate().getEditingFILE().getName(); addListener(); - //比较上一次的数据集名称和数据列,不一样的话需要加载 - if(!StringUtils.equals(dsName,oldDsName) || !StringUtils.equals(dsColumnName,oldColumnName)){ - columnNameComboBox.setLoaded(false); - - oldDsName = dsName; - oldColumnName = dsColumnName; - } + //比较上一次的数据集名称和模板名称,不一样的话需要加载 + columnNameComboBox.changeLoaded(dsName, templateName); } /** From 37f3c96c58d9c34d58b805e50ee2358fde75fb72 Mon Sep 17 00:00:00 2001 From: "Mata.Li" Date: Tue, 17 Jul 2018 12:43:40 +0800 Subject: [PATCH 3/4] REPORT-97399 --- .../com/fr/design/gui/icombobox/LazyComboBox.java | 13 ------------- .../fr/design/dscolumn/SelectedDataColumnPane.java | 6 ++---- 2 files changed, 2 insertions(+), 17 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/gui/icombobox/LazyComboBox.java b/designer-base/src/main/java/com/fr/design/gui/icombobox/LazyComboBox.java index 9ac46a429..095d3f302 100644 --- a/designer-base/src/main/java/com/fr/design/gui/icombobox/LazyComboBox.java +++ b/designer-base/src/main/java/com/fr/design/gui/icombobox/LazyComboBox.java @@ -36,10 +36,6 @@ public abstract class LazyComboBox extends UIComboBox implements PopupMenuListen */ private Object initialSelected = null; - //数据集和模板的名称 - private String oldDsName; - private String oldTemplateName; - protected LazyComboBox() { super(); @@ -58,15 +54,6 @@ public abstract class LazyComboBox extends UIComboBox implements PopupMenuListen */ public abstract Object[] load(); - public void changeLoaded(String dsName, String templateName){ - if (!StringUtils.equals(dsName, oldDsName) || !StringUtils.equals(templateName, oldTemplateName)){ - this.setLoaded(false); - - oldDsName = dsName; - oldTemplateName = templateName; - } - } - @Override public void setSelectedItem(Object anObject) { initialSelected = anObject; diff --git a/designer-realize/src/main/java/com/fr/design/dscolumn/SelectedDataColumnPane.java b/designer-realize/src/main/java/com/fr/design/dscolumn/SelectedDataColumnPane.java index 181c5fb7f..54aa686b0 100644 --- a/designer-realize/src/main/java/com/fr/design/dscolumn/SelectedDataColumnPane.java +++ b/designer-realize/src/main/java/com/fr/design/dscolumn/SelectedDataColumnPane.java @@ -238,12 +238,10 @@ public class SelectedDataColumnPane extends BasicPane { String dsColumnName = TableDataColumn.getColumnName(dsColumn.getColumn()); columnNameComboBox.setSelectedItem(dsColumnName); ps = dsColumn.getParameters(); - //模板名称 - String templateName = HistoryTemplateListPane.getInstance().getCurrentEditingTemplate().getEditingFILE().getName(); addListener(); - //比较上一次的数据集名称和模板名称,不一样的话需要加载 - columnNameComboBox.changeLoaded(dsName, templateName); + //重新设置需要加载 + columnNameComboBox.setLoaded(false); } /** From c252a560ad3e406c3fe2502bb439363cc21e21f4 Mon Sep 17 00:00:00 2001 From: "Mata.Li" Date: Tue, 17 Jul 2018 12:45:13 +0800 Subject: [PATCH 4/4] REPORT-97399 --- .../main/java/com/fr/design/gui/icombobox/LazyComboBox.java | 1 - .../java/com/fr/design/dscolumn/SelectedDataColumnPane.java | 5 +---- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/gui/icombobox/LazyComboBox.java b/designer-base/src/main/java/com/fr/design/gui/icombobox/LazyComboBox.java index 095d3f302..575ab630b 100644 --- a/designer-base/src/main/java/com/fr/design/gui/icombobox/LazyComboBox.java +++ b/designer-base/src/main/java/com/fr/design/gui/icombobox/LazyComboBox.java @@ -5,7 +5,6 @@ package com.fr.design.gui.icombobox; import com.fr.log.FineLoggerFactory; import com.fr.general.Inter; -import com.fr.stable.StringUtils; import javax.swing.DefaultComboBoxModel; import javax.swing.SwingWorker; diff --git a/designer-realize/src/main/java/com/fr/design/dscolumn/SelectedDataColumnPane.java b/designer-realize/src/main/java/com/fr/design/dscolumn/SelectedDataColumnPane.java index 54aa686b0..fbe7d228a 100644 --- a/designer-realize/src/main/java/com/fr/design/dscolumn/SelectedDataColumnPane.java +++ b/designer-realize/src/main/java/com/fr/design/dscolumn/SelectedDataColumnPane.java @@ -9,7 +9,6 @@ import com.fr.design.data.tabledata.wrapper.TableDataWrapper; import com.fr.design.dialog.BasicDialog; import com.fr.design.dialog.BasicPane; import com.fr.design.dialog.DialogActionAdapter; -import com.fr.design.file.HistoryTemplateListPane; import com.fr.design.gui.ibutton.UIButton; import com.fr.design.gui.icombobox.LazyComboBox; import com.fr.design.gui.ilable.UILabel; @@ -234,9 +233,7 @@ public class SelectedDataColumnPane extends BasicPane { DSColumn dsColumn = (DSColumn) value; String dsName = dsColumn.getDSName(); tableNameComboBox.setSelectedTableDataByName(dsName); - //数据列名称 - String dsColumnName = TableDataColumn.getColumnName(dsColumn.getColumn()); - columnNameComboBox.setSelectedItem(dsColumnName); + columnNameComboBox.setSelectedItem(TableDataColumn.getColumnName(dsColumn.getColumn())); ps = dsColumn.getParameters(); addListener();