From ec3e355d6cebba7def3173ddc3045b9847495c1a Mon Sep 17 00:00:00 2001 From: rinoux Date: Tue, 6 Sep 2022 14:04:47 +0800 Subject: [PATCH 1/4] =?UTF-8?q?REPORT-79845=20=E5=90=8C=E4=B8=80=E4=B8=AA?= =?UTF-8?q?=E5=A4=9A=E7=BB=93=E6=9E=9C=E6=95=B0=E6=8D=AE=E9=9B=86equals?= =?UTF-8?q?=E4=B8=BAfalse=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/data/BasicTableDataTreePane.java | 2 +- .../wrapper/MultiResultTableDataWrapper.java | 19 +++++++++++++++---- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/data/BasicTableDataTreePane.java b/designer-base/src/main/java/com/fr/design/data/BasicTableDataTreePane.java index 3dbcf81873..fa1fe545ed 100644 --- a/designer-base/src/main/java/com/fr/design/data/BasicTableDataTreePane.java +++ b/designer-base/src/main/java/com/fr/design/data/BasicTableDataTreePane.java @@ -444,7 +444,7 @@ public abstract class BasicTableDataTreePane extends DockingView implements Resp ((MultiResultTableData) (((TableDataWrapper) data).getTableData())).resetDataModelList(); if (data instanceof MultiResultTableDataWrapper) { MultiResultTableDataWrapper oldSdw = ((MultiResultTableDataWrapper) data); - MultiResultTableDataWrapper newSdw = new MultiResultTableDataWrapper((MultiResultTableData) oldSdw.getTableData(), oldSdw.getTableDataName(), oldSdw.getDataModelName()); + MultiResultTableDataWrapper newSdw = new MultiResultTableDataWrapper((MultiResultTableData) oldSdw.getTableData(), oldSdw.getMultiResultTableDataName(), oldSdw.getTableDataName()); newSdw.previewData(MultiResultTableDataWrapper.PREVIEW_ONE); } else { MultiResultTableData tableData = (MultiResultTableData) ((TableDataWrapper) data).getTableData(); diff --git a/designer-base/src/main/java/com/fr/design/data/tabledata/wrapper/MultiResultTableDataWrapper.java b/designer-base/src/main/java/com/fr/design/data/tabledata/wrapper/MultiResultTableDataWrapper.java index 6cce86fd20..58521283e6 100644 --- a/designer-base/src/main/java/com/fr/design/data/tabledata/wrapper/MultiResultTableDataWrapper.java +++ b/designer-base/src/main/java/com/fr/design/data/tabledata/wrapper/MultiResultTableDataWrapper.java @@ -287,7 +287,8 @@ public final class MultiResultTableDataWrapper implements TableDataWrapper { @Override public String getTableDataName() { - return tableDataName; + // todo 这里返回数据集结果名称,带_的 + return dataModelName; } public String getDataModelName() { @@ -299,6 +300,15 @@ public final class MultiResultTableDataWrapper implements TableDataWrapper { return tableData; } + + /** + * 获取当前节点所属可编辑的数据集名称 + * @return + */ + public String getMultiResultTableDataName() { + return tableDataName; + } + /** * 是否异常 * @@ -312,9 +322,10 @@ public final class MultiResultTableDataWrapper implements TableDataWrapper { @Override public boolean equals(Object obj) { return obj instanceof MultiResultTableDataWrapper - && ComparatorUtils.equals(this.dataModelName, ((MultiResultTableDataWrapper) obj).getTableDataName()) - && ComparatorUtils.equals(this.tableData, ((MultiResultTableDataWrapper) obj).getTableData()) - && ComparatorUtils.equals(this.tableDataName, ((MultiResultTableDataWrapper) obj).getTableDataName()); + && ComparatorUtils.equals(this.getDataModelName(), ((MultiResultTableDataWrapper) obj).getDataModelName()) + && ComparatorUtils.equals(this.getTableData(), ((MultiResultTableDataWrapper) obj).getTableData()) + && ComparatorUtils.equals(this.getMultiResultTableDataName(), ((MultiResultTableDataWrapper) obj).getMultiResultTableDataName()) + && ComparatorUtils.equals(this.getTableDataName(), ((MultiResultTableDataWrapper) obj).getTableDataName()); } From a323dbbb399be87fb9ba282d097f6d51abf0e6b5 Mon Sep 17 00:00:00 2001 From: rinoux Date: Wed, 7 Sep 2022 10:01:27 +0800 Subject: [PATCH 2/4] =?UTF-8?q?REPORT-79881=20=E5=A4=9A=E7=BB=93=E6=9E=9C?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E9=9B=86=E6=A0=91=E8=8A=82=E7=82=B9=E5=9B=BE?= =?UTF-8?q?=E6=A0=87=E6=9F=A5=E6=89=BE=E6=80=A7=E8=83=BD=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MultiResultTableDataNameWrapper.java | 7 +-- .../wrapper/MultiResultTableDataWrapper.java | 18 ++++--- .../MultiResultTableDataWrapperHelper.java | 54 +++++++++++++++++++ 3 files changed, 67 insertions(+), 12 deletions(-) create mode 100644 designer-base/src/main/java/com/fr/design/data/tabledata/wrapper/MultiResultTableDataWrapperHelper.java diff --git a/designer-base/src/main/java/com/fr/design/data/tabledata/wrapper/MultiResultTableDataNameWrapper.java b/designer-base/src/main/java/com/fr/design/data/tabledata/wrapper/MultiResultTableDataNameWrapper.java index 610aac3c58..b527503799 100644 --- a/designer-base/src/main/java/com/fr/design/data/tabledata/wrapper/MultiResultTableDataNameWrapper.java +++ b/designer-base/src/main/java/com/fr/design/data/tabledata/wrapper/MultiResultTableDataNameWrapper.java @@ -68,12 +68,7 @@ public final class MultiResultTableDataNameWrapper implements TableDataWrapper { @Override public Icon getIcon() { - for (TableDataNameObjectCreator creator : TableDataCreatorProducer.getInstance().createReportTableDataCreator()) { - if (creator.createObject().getClass().isAssignableFrom(this.tableData.getClass())) { - return IOUtils.readIcon(creator.getIconPath()); - } - } - return IOUtils.readIcon("/com/fr/design/images/data/multi.png"); + return MultiResultTableDataWrapperHelper.getIcon(this.tableData.getClass()); } private void createResult(boolean needLoadingBar) { diff --git a/designer-base/src/main/java/com/fr/design/data/tabledata/wrapper/MultiResultTableDataWrapper.java b/designer-base/src/main/java/com/fr/design/data/tabledata/wrapper/MultiResultTableDataWrapper.java index 58521283e6..662b47ba8c 100644 --- a/designer-base/src/main/java/com/fr/design/data/tabledata/wrapper/MultiResultTableDataWrapper.java +++ b/designer-base/src/main/java/com/fr/design/data/tabledata/wrapper/MultiResultTableDataWrapper.java @@ -10,13 +10,21 @@ import com.fr.design.data.datapane.TableDataCreatorProducer; import com.fr.design.data.datapane.TableDataNameObjectCreator; import com.fr.design.data.datapane.preview.PreviewTablePane; import com.fr.design.dialog.FineJOptionPane; +import com.fr.design.fun.ServerTableDataDefineProvider; +import com.fr.design.fun.TableDataDefineProvider; import com.fr.design.gui.iprogressbar.AutoProgressBar; import com.fr.design.gui.itree.refreshabletree.ExpandMutableTreeNode; import com.fr.design.i18n.Toolkit; import com.fr.design.mainframe.DesignerContext; +import com.fr.event.Event; +import com.fr.event.EventDispatcher; +import com.fr.event.Listener; import com.fr.general.ComparatorUtils; import com.fr.general.IOUtils; import com.fr.log.FineLoggerFactory; +import com.fr.plugin.context.PluginContext; +import com.fr.plugin.observer.PluginEventType; +import com.fr.stable.Filter; import javax.swing.Icon; import javax.swing.JFrame; @@ -24,7 +32,9 @@ import javax.swing.SwingWorker; import java.awt.Component; import java.util.ArrayList; import java.util.Arrays; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.concurrent.CancellationException; /** @@ -163,12 +173,7 @@ public final class MultiResultTableDataWrapper implements TableDataWrapper { @Override public Icon getIcon() { - for (TableDataNameObjectCreator creator : TableDataCreatorProducer.getInstance().createReportTableDataCreator()) { - if (creator.createObject().getClass().isAssignableFrom(this.tableData.getClass())) { - return IOUtils.readIcon(creator.getIconPath()); - } - } - return IOUtils.readIcon("/com/fr/design/images/data/multi.png"); + return MultiResultTableDataWrapperHelper.getIcon(this.tableData.getClass()); } /** @@ -303,6 +308,7 @@ public final class MultiResultTableDataWrapper implements TableDataWrapper { /** * 获取当前节点所属可编辑的数据集名称 + * * @return */ public String getMultiResultTableDataName() { diff --git a/designer-base/src/main/java/com/fr/design/data/tabledata/wrapper/MultiResultTableDataWrapperHelper.java b/designer-base/src/main/java/com/fr/design/data/tabledata/wrapper/MultiResultTableDataWrapperHelper.java new file mode 100644 index 0000000000..91ca35d7fb --- /dev/null +++ b/designer-base/src/main/java/com/fr/design/data/tabledata/wrapper/MultiResultTableDataWrapperHelper.java @@ -0,0 +1,54 @@ +package com.fr.design.data.tabledata.wrapper; + +import com.fr.base.TableData; +import com.fr.design.data.datapane.TableDataCreatorProducer; +import com.fr.design.data.datapane.TableDataNameObjectCreator; +import com.fr.design.fun.ServerTableDataDefineProvider; +import com.fr.design.fun.TableDataDefineProvider; +import com.fr.event.Event; +import com.fr.event.EventDispatcher; +import com.fr.event.Listener; +import com.fr.general.IOUtils; +import com.fr.plugin.context.PluginContext; +import com.fr.plugin.observer.PluginEventType; +import com.fr.stable.Filter; +import org.jetbrains.annotations.NotNull; + +import javax.swing.Icon; +import java.util.HashMap; +import java.util.Map; + +/** + * @author rinoux + * @version 11.0 + * Created by rinoux on 2022/9/7 + */ +class MultiResultTableDataWrapperHelper { + private static final Map, Icon> TABLE_DATA_ICON_PATHS = new HashMap<>(); + private static final String DEFAULT_MULTI_RESULT_TD_ICON = "/com/fr/design/images/data/multi.png"; + + + static { + Listener listener = new Listener() { + @Override + public void on(Event event, PluginContext param) { + TABLE_DATA_ICON_PATHS.clear(); + } + }; + Filter filter = pluginContext -> pluginContext.contain(TableDataDefineProvider.XML_TAG) || pluginContext.contain(ServerTableDataDefineProvider.XML_TAG); + EventDispatcher.listen(PluginEventType.AfterRun, listener, filter); + EventDispatcher.listen(PluginEventType.BeforeStop, listener, filter); + } + + + public static @NotNull Icon getIcon(@NotNull Class tableDataClass) { + return TABLE_DATA_ICON_PATHS.computeIfAbsent(tableDataClass, cls -> { + for (TableDataNameObjectCreator creator : TableDataCreatorProducer.getInstance().createReportTableDataCreator()) { + if (creator.createObject().getClass().isAssignableFrom(tableDataClass)) { + return IOUtils.readIcon(creator.getIconPath()); + } + } + return IOUtils.readIcon(DEFAULT_MULTI_RESULT_TD_ICON); + }); + } +} From 89fc3da190a751c60d542036e2deef72aa9ec8bf Mon Sep 17 00:00:00 2001 From: rinoux Date: Wed, 7 Sep 2022 10:05:43 +0800 Subject: [PATCH 3/4] import --- .../wrapper/MultiResultTableDataNameWrapper.java | 3 --- .../wrapper/MultiResultTableDataWrapper.java | 13 ------------- 2 files changed, 16 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/data/tabledata/wrapper/MultiResultTableDataNameWrapper.java b/designer-base/src/main/java/com/fr/design/data/tabledata/wrapper/MultiResultTableDataNameWrapper.java index b527503799..97bf701a62 100644 --- a/designer-base/src/main/java/com/fr/design/data/tabledata/wrapper/MultiResultTableDataNameWrapper.java +++ b/designer-base/src/main/java/com/fr/design/data/tabledata/wrapper/MultiResultTableDataNameWrapper.java @@ -4,11 +4,8 @@ import com.fr.base.TableData; import com.fr.data.MultiResultTableData; import com.fr.data.impl.NameDataModel; import com.fr.design.data.DesignTableDataManager; -import com.fr.design.data.datapane.TableDataCreatorProducer; -import com.fr.design.data.datapane.TableDataNameObjectCreator; import com.fr.design.data.datapane.preview.PreviewTablePane; import com.fr.design.gui.itree.refreshabletree.ExpandMutableTreeNode; -import com.fr.general.IOUtils; import com.fr.log.FineLoggerFactory; import com.fr.workspace.WorkContext; diff --git a/designer-base/src/main/java/com/fr/design/data/tabledata/wrapper/MultiResultTableDataWrapper.java b/designer-base/src/main/java/com/fr/design/data/tabledata/wrapper/MultiResultTableDataWrapper.java index 662b47ba8c..ae68bd112b 100644 --- a/designer-base/src/main/java/com/fr/design/data/tabledata/wrapper/MultiResultTableDataWrapper.java +++ b/designer-base/src/main/java/com/fr/design/data/tabledata/wrapper/MultiResultTableDataWrapper.java @@ -6,25 +6,14 @@ import com.fr.data.impl.NameDataModel; import com.fr.data.impl.storeproc.StoreProcedure; import com.fr.data.operator.DataOperator; import com.fr.design.data.DesignTableDataManager; -import com.fr.design.data.datapane.TableDataCreatorProducer; -import com.fr.design.data.datapane.TableDataNameObjectCreator; import com.fr.design.data.datapane.preview.PreviewTablePane; import com.fr.design.dialog.FineJOptionPane; -import com.fr.design.fun.ServerTableDataDefineProvider; -import com.fr.design.fun.TableDataDefineProvider; import com.fr.design.gui.iprogressbar.AutoProgressBar; import com.fr.design.gui.itree.refreshabletree.ExpandMutableTreeNode; import com.fr.design.i18n.Toolkit; import com.fr.design.mainframe.DesignerContext; -import com.fr.event.Event; -import com.fr.event.EventDispatcher; -import com.fr.event.Listener; import com.fr.general.ComparatorUtils; -import com.fr.general.IOUtils; import com.fr.log.FineLoggerFactory; -import com.fr.plugin.context.PluginContext; -import com.fr.plugin.observer.PluginEventType; -import com.fr.stable.Filter; import javax.swing.Icon; import javax.swing.JFrame; @@ -32,9 +21,7 @@ import javax.swing.SwingWorker; import java.awt.Component; import java.util.ArrayList; import java.util.Arrays; -import java.util.HashMap; import java.util.List; -import java.util.Map; import java.util.concurrent.CancellationException; /** From 46c2a983fe848640c353c31bef02ebbeec28efba Mon Sep 17 00:00:00 2001 From: rinoux Date: Wed, 7 Sep 2022 10:57:32 +0800 Subject: [PATCH 4/4] =?UTF-8?q?REPORT-79889=20=E8=BF=9C=E7=A8=8B=E8=AE=BE?= =?UTF-8?q?=E8=AE=A1=E4=B8=8B=E5=AD=98=E5=82=A8=E8=BF=87=E7=A8=8B=E7=BB=93?= =?UTF-8?q?=E6=9E=9C=E5=88=97=E8=A1=A8=E7=BC=93=E5=AD=98=E5=88=B7=E6=96=B0?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../data/tabledata/tabledatapane/ProcedureDataPane.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/ProcedureDataPane.java b/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/ProcedureDataPane.java index b57ca864fd..ad07f9b6fb 100644 --- a/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/ProcedureDataPane.java +++ b/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/ProcedureDataPane.java @@ -289,16 +289,16 @@ public class ProcedureDataPane extends AbstractTableDataPane imp @Override protected Void doInBackground() throws Exception { DesignTableDataManager.setThreadLocal(DesignTableDataManager.NO_PARAMETER); - // sp.setCalculating(true); + sp.setCalculating(true); ProcedureDataModel[] dataModels = (ProcedureDataModel[]) DesignTableDataManager.createLazyDataModel(sp, false); - //sp.refreshDataModelListAndResultNames(dataModels); + sp.refreshResults(dataModels); return null; } @Override public void done() { DesignTableDataManager.setThreadLocal(DesignTableDataManager.NO_PARAMETER); - // sp.setCalculating(false); + sp.setCalculating(false); doAfterProcudureDone(); fireDSChanged(); TableDataTreePane.getInstance(DesignModelAdapter.getCurrentModelAdapter());