diff --git a/designer-base/src/main/java/com/fr/design/DesignModelAdapter.java b/designer-base/src/main/java/com/fr/design/DesignModelAdapter.java index 7a237ffb5..04fcd5144 100644 --- a/designer-base/src/main/java/com/fr/design/DesignModelAdapter.java +++ b/designer-base/src/main/java/com/fr/design/DesignModelAdapter.java @@ -283,6 +283,9 @@ public abstract class DesignModelAdapter map, Filter filter) { + + // 兼容下通过老数据集参数获取 + tableDataParameters = getLatestTableDataParameters(); // 处理初始化添加 if (tableDataParametersMap.isEmpty()) { diff --git a/designer-base/src/main/java/com/fr/design/data/datapane/ChoosePane.java b/designer-base/src/main/java/com/fr/design/data/datapane/ChoosePane.java index 6460cadb9..2a8446f89 100644 --- a/designer-base/src/main/java/com/fr/design/data/datapane/ChoosePane.java +++ b/designer-base/src/main/java/com/fr/design/data/datapane/ChoosePane.java @@ -1,7 +1,6 @@ package com.fr.design.data.datapane; import com.fr.base.TableData; -import com.fr.concurrent.NamedThreadFactory; import com.fr.data.core.DataCoreUtils; import com.fr.data.core.db.DBUtils; import com.fr.data.core.db.TableProcedure; @@ -18,7 +17,7 @@ import com.fr.design.data.datapane.preview.PreviewLabel.Previewable; import com.fr.design.data.datapane.preview.PreviewTablePane; import com.fr.design.data.tabledata.Prepare4DataSourceChange; import com.fr.design.dialog.FineJOptionPane; -import com.fr.design.gui.icombobox.SearchPreTaskTreeComboBox; +import com.fr.design.gui.icombobox.FRTreeComboBox; import com.fr.design.gui.icombobox.FilterableComboBoxModel; import com.fr.design.gui.icombobox.UIComboBox; import com.fr.design.gui.icombobox.UIComboBoxEditor; @@ -60,10 +59,6 @@ import java.util.Collection; import java.util.Enumeration; import java.util.List; import java.util.Set; -import java.util.concurrent.Callable; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.concurrent.FutureTask; /** * @author zhou @@ -85,25 +80,20 @@ public class ChoosePane extends BasicBeanPane implements Refresha /** * 表名 */ - protected SearchPreTaskTreeComboBox tableNameComboBox; + protected FRTreeComboBox tableNameComboBox; private SwingWorker populateWorker; - private static final ExecutorService SERVICE = Executors.newSingleThreadExecutor(new NamedThreadFactory("ChoosePaneThread")); - private PopupMenuListener popupMenuListener = new PopupMenuListener() { @Override public void popupMenuWillBecomeVisible(PopupMenuEvent e) { - FutureTask task = new FutureTask(new Callable() { + new Thread() { @Override - public Object call() { + public void run() { calculateTableDataNames(); - return null; } - }); - SERVICE.submit(task); - tableNameComboBox.setPreSearchTask(task); + }.start(); } @Override @@ -167,7 +157,7 @@ public class ChoosePane extends BasicBeanPane implements Refresha schemaBox = new StringUIComboBox(); schemaBox.setEditor(new ComboBoxEditor()); - tableNameComboBox = new SearchPreTaskTreeComboBox(new JTree(new DefaultMutableTreeNode()), tableNameTreeRenderer, false); + tableNameComboBox = new FRTreeComboBox(new JTree(new DefaultMutableTreeNode()), tableNameTreeRenderer, false); tableNameComboBox.setEditable(true); tableNameComboBox.setRenderer(listCellRenderer); registerDSChangeListener(); diff --git a/designer-base/src/main/java/com/fr/design/gui/icombobox/SearchPreTaskTreeComboBox.java b/designer-base/src/main/java/com/fr/design/gui/icombobox/SearchPreTaskTreeComboBox.java index 9e453471e..9ee2a5949 100644 --- a/designer-base/src/main/java/com/fr/design/gui/icombobox/SearchPreTaskTreeComboBox.java +++ b/designer-base/src/main/java/com/fr/design/gui/icombobox/SearchPreTaskTreeComboBox.java @@ -1,5 +1,6 @@ package com.fr.design.gui.icombobox; +import com.fr.design.ui.util.UIUtil; import com.fr.log.FineLoggerFactory; import javax.swing.JTree; @@ -64,7 +65,12 @@ public class SearchPreTaskTreeComboBox extends FRTreeComboBox { // 任务执行后置空,否则会被别的操作重复触发 setPreSearchTask(null); } - search(); + UIUtil.invokeLaterIfNeeded(new Runnable() { + @Override + public void run() { + search(); + } + }); return null; } }.execute(); diff --git a/designer-base/src/main/resources/com/fr/design/images/m_file/preview_disabled.svg b/designer-base/src/main/resources/com/fr/design/images/m_file/preview_disabled.svg index 217f23e15..6f2c4afa1 100644 --- a/designer-base/src/main/resources/com/fr/design/images/m_file/preview_disabled.svg +++ b/designer-base/src/main/resources/com/fr/design/images/m_file/preview_disabled.svg @@ -1,11 +1,7 @@ - - icon_报表web属性_打印预览_normal - - - - - - + + icon_预览_disabled + + - + \ No newline at end of file