From 19bd30d0f611b2c7fa53ee4dd59652538559f227 Mon Sep 17 00:00:00 2001 From: "Link.Zhao" Date: Mon, 5 Sep 2022 12:02:46 +0800 Subject: [PATCH 1/5] =?UTF-8?q?REPORT-79344=E3=80=90=E8=BF=90=E8=90=A5?= =?UTF-8?q?=E4=BA=A7=E5=93=81=E5=8C=96=E4=BA=8C=E6=9C=9F=E3=80=91=E5=9F=8B?= =?UTF-8?q?=E7=82=B9=E6=9A=82=E4=B8=8D=E7=94=9F=E6=95=88=201=E3=80=81relea?= =?UTF-8?q?se=E6=8F=90=E4=BA=A4=E4=B8=80=E4=BB=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mainframe/alphafine/action/StartUseAction.java | 8 ++++++-- .../alphafine/cell/model/DocumentModel.java | 14 ++++++++++---- .../alphafine/model/TemplateResource.java | 13 +++++++++++++ .../impl/TemplateResourceSearchManager.java | 4 +++- 4 files changed, 32 insertions(+), 7 deletions(-) diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/action/StartUseAction.java b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/action/StartUseAction.java index de813883f8..4a7375f74e 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/action/StartUseAction.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/action/StartUseAction.java @@ -2,7 +2,6 @@ package com.fr.design.mainframe.alphafine.action; import com.fr.common.util.Strings; import com.fr.design.mainframe.DesignerContext; -import com.fr.design.mainframe.DesignerFrameFileDealerPane; import com.fr.design.mainframe.alphafine.AlphaFineHelper; import com.fr.design.mainframe.alphafine.download.FineMarketConstants; import com.fr.design.mainframe.alphafine.download.FineMarketDownloadManager; @@ -80,7 +79,12 @@ public class StartUseAction implements ActionListener { } // 打开模板 - DesignerContext.getDesignerFrame().openTemplate(new FileFILE(fileNeedOpen)); + if (fileNeedOpen == null) { + //有可能压缩包解压出来还是压缩包 + FineLoggerFactory.getLogger().error("AlphaFine open resource error: " + fileName); + } else { + DesignerContext.getDesignerFrame().openTemplate(new FileFILE(fileNeedOpen)); + } } diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/cell/model/DocumentModel.java b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/cell/model/DocumentModel.java index e83b4be764..7456daffce 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/cell/model/DocumentModel.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/cell/model/DocumentModel.java @@ -2,11 +2,10 @@ package com.fr.design.mainframe.alphafine.cell.model; import com.fr.design.mainframe.alphafine.AlphaFineConstants; import com.fr.design.mainframe.alphafine.CellType; -import com.fr.log.FineLoggerFactory; -import com.fr.json.JSONException; import com.fr.json.JSONObject; +import com.fr.log.FineLoggerFactory; -import java.awt.*; +import java.awt.Desktop; import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; @@ -60,8 +59,15 @@ public class DocumentModel extends AlphaCellModel { @Override public void doAction() { + openInBrowser(getDocumentUrl()); + } + + /** + * 方便埋点 + * */ + void openInBrowser(String url) { try { - Desktop.getDesktop().browse(new URI(getDocumentUrl())); + Desktop.getDesktop().browse(new URI(url)); } catch (IOException e) { FineLoggerFactory.getLogger().error(e.getMessage(), e); } catch (URISyntaxException e) { diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/model/TemplateResource.java b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/model/TemplateResource.java index 56cc25a0c0..b7ace8a3fc 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/model/TemplateResource.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/model/TemplateResource.java @@ -63,6 +63,7 @@ public class TemplateResource { private String fileName; private int pkgSize; private List recommendSearchKey; + private boolean embed; public static List createByJson(JSONArray jsonArray) { List list = new ArrayList<>(); @@ -158,6 +159,18 @@ public class TemplateResource { return this; } + + /** + * 判断是否为内置模板资源 + * */ + public boolean isEmbed() { + return embed; + } + + public void setEmbed(boolean embed) { + this.embed = embed; + } + public String getName() { return name; } diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/search/manager/impl/TemplateResourceSearchManager.java b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/search/manager/impl/TemplateResourceSearchManager.java index 2a8c767518..61dceaa008 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/search/manager/impl/TemplateResourceSearchManager.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/search/manager/impl/TemplateResourceSearchManager.java @@ -69,7 +69,9 @@ public class TemplateResourceSearchManager { List resourceList = new ArrayList<>(); JSONArray jsonArray = getEmbedResourceJSONArray(); for (int i = 0; i < jsonArray.size(); i++) { - resourceList.add(TemplateResource.createByJson(jsonArray.getJSONObject(i))); + TemplateResource resource = TemplateResource.createByJson(jsonArray.getJSONObject(i)); + resource.setEmbed(true); + resourceList.add(resource); } return resourceList; } From ec3e355d6cebba7def3173ddc3045b9847495c1a Mon Sep 17 00:00:00 2001 From: rinoux Date: Tue, 6 Sep 2022 14:04:47 +0800 Subject: [PATCH 2/5] =?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 3/5] =?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 4/5] 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 5/5] =?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());