From ac73c3f1699f26a23ed742cad05e380a678fe5dd Mon Sep 17 00:00:00 2001 From: "Link.Zhao" Date: Wed, 28 Sep 2022 10:58:20 +0800 Subject: [PATCH 1/2] =?UTF-8?q?REPORT-81231=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=91alphafine?= =?UTF-8?q?=E4=B8=8D=E9=80=89=E6=8B=A9=E4=BB=BB=E4=BD=95TAB=EF=BC=8C?= =?UTF-8?q?=E7=82=B9=E5=87=BBalphafine,=E6=97=A5=E5=BF=97=E4=B8=AD?= =?UTF-8?q?=E5=87=BA=E7=8E=B0=E6=8A=A5=E9=94=99=20REPORT-81241=E3=80=90?= =?UTF-8?q?=E8=BF=90=E8=90=A5=E4=BA=A7=E5=93=81=E5=8C=96=E4=BA=8C=E6=9C=9F?= =?UTF-8?q?=E3=80=91=E6=8F=92=E4=BB=B6=E4=B8=AD=E5=BF=83=E6=96=AD=E7=BD=91?= =?UTF-8?q?=E5=90=8E=E7=9A=84=E9=87=8D=E6=96=B0=E5=8A=A0=E8=BD=BD=E6=97=A0?= =?UTF-8?q?=E5=8F=8D=E5=BA=94=20REPORT-80752=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=8A=A8?= =?UTF-8?q?=E6=80=81=E6=97=A0=E6=B3=95=E6=98=BE=E7=A4=BA=E5=87=BA=E6=9D=A5?= =?UTF-8?q?=EF=BC=8C=E8=8B=A5=E6=8F=92=E4=BB=B6=E4=B8=AD=E5=BF=83=E5=9C=A8?= =?UTF-8?q?=E9=A6=96=E4=B8=AA=E4=B9=9F=E6=97=A0=E6=B3=95=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=20REPORT-81211=E3=80=90=E8=BF=90=E8=90=A5=E4=BA=A7=E5=93=81?= =?UTF-8?q?=E5=8C=96=E4=BA=8C=E6=9C=9F=E3=80=91=E6=8F=92=E4=BB=B6=E6=A8=A1?= =?UTF-8?q?=E5=9D=97=E6=9F=A5=E8=AF=A2=E7=9A=84=E6=8E=A8=E8=8D=90=E4=B8=8E?= =?UTF-8?q?=E8=A7=86=E8=A7=89=E5=9B=BEUI=E4=B8=8D=E4=B8=80=E8=87=B4=201?= =?UTF-8?q?=E3=80=81=E5=B1=8F=E8=94=BD=E6=8A=A5=E9=94=99=202=E3=80=81?= =?UTF-8?q?=E6=B2=A1=E6=9C=89=E8=AE=BE=E7=BD=AEreload=E6=96=B9=E6=B3=95=20?= =?UTF-8?q?3=E3=80=81=E6=94=B9=E4=B8=8Bui?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../alphafine/AlphaFineConfigManager.java | 8 +++ .../fr/design/remote/button/IconButton.java | 10 +++- .../mainframe/alphafine/AlphaFineHelper.java | 2 +- .../alphafine/component/AlphaFineFrame.java | 1 + .../component/RecommendSearchLabel.java | 2 +- .../alphafine/component/SearchHintPane.java | 5 +- .../download/FineMarketDownloadManager.java | 9 +-- .../alphafine/preview/DefaultContentPane.java | 8 +++ .../preview/DefaultPluginContentPane.java | 58 ++++++++++++++++--- .../alphafine/search/SearchWorkerManager.java | 3 +- 10 files changed, 83 insertions(+), 23 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/actions/help/alphafine/AlphaFineConfigManager.java b/designer-base/src/main/java/com/fr/design/actions/help/alphafine/AlphaFineConfigManager.java index c74ddaa65..2e78d1062 100644 --- a/designer-base/src/main/java/com/fr/design/actions/help/alphafine/AlphaFineConfigManager.java +++ b/designer-base/src/main/java/com/fr/design/actions/help/alphafine/AlphaFineConfigManager.java @@ -484,6 +484,14 @@ public class AlphaFineConfigManager implements XMLable { this.showTemplateShop = showTemplateShop; } + /** + * 是否展示alphafine窗口,设置-搜索范围 0勾选,则不显示 + */ + public boolean needShowAlphaFineDialog() { + return hasTemplateShop() || isContainDocument() || isContainPlugin() || + isContainAction() || isProductDynamics() || isContainMyTemplate(); + } + /** * 返回tab显示顺序 */ diff --git a/designer-base/src/main/java/com/fr/design/remote/button/IconButton.java b/designer-base/src/main/java/com/fr/design/remote/button/IconButton.java index 598ec7f05..d2d04b8d4 100644 --- a/designer-base/src/main/java/com/fr/design/remote/button/IconButton.java +++ b/designer-base/src/main/java/com/fr/design/remote/button/IconButton.java @@ -4,6 +4,7 @@ import com.fr.base.BaseUtils; import com.fr.design.utils.gui.GUICoreUtils; import com.fr.stable.StringUtils; +import javax.swing.Icon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; @@ -15,14 +16,19 @@ import java.awt.Graphics2D; import java.awt.Point; public final class IconButton extends JButton { - public IconButton() { + + public IconButton(Icon icon) { super(StringUtils.EMPTY); setContentAreaFilled(false); setFocusPainted(false); - setIcon(BaseUtils.readIcon("com/fr/design/remote/images/icon_tab_close_normal.png")); + setIcon(icon); setBorder(null); } + public IconButton() { + this(BaseUtils.readIcon("com/fr/design/remote/images/icon_tab_close_normal.png")); + } + @Override protected void paintBorder(Graphics g) { } diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/AlphaFineHelper.java b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/AlphaFineHelper.java index 441bd03ac..126e883d9 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/AlphaFineHelper.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/AlphaFineHelper.java @@ -58,7 +58,7 @@ public class AlphaFineHelper { * 弹出alphafine搜索面板 */ public static void showAlphaFineDialog(boolean forceOpen) { - if (!AlphaFineConfigManager.isALPHALicAvailable()) { + if (!AlphaFineConfigManager.isALPHALicAvailable() || !AlphaFineConfigManager.getInstance().needShowAlphaFineDialog()) { return; } if (alphaFineDialog == null) { diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/component/AlphaFineFrame.java b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/component/AlphaFineFrame.java index 8e9a4d3cd..0269480b6 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/component/AlphaFineFrame.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/component/AlphaFineFrame.java @@ -920,6 +920,7 @@ public class AlphaFineFrame extends JFrame { this.productNewsSearchWorkerManager.doSearch(searchTextBean); this.documentWorkerManager.doSearch(searchTextBean); this.pluginSearchWorkerManager.doSearch(searchTextBean); + this.templateResourceSearchWorkerManager.doSearch(searchTextBean); } /** diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/component/RecommendSearchLabel.java b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/component/RecommendSearchLabel.java index 8d3b76070..f7e017024 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/component/RecommendSearchLabel.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/component/RecommendSearchLabel.java @@ -23,7 +23,7 @@ public class RecommendSearchLabel extends JPanel { private static final Color RECOMMEND_SEARCH_KEY_BLUE = new Color(0x419bf9); public RecommendSearchLabel(String title, @NotNull List tips) { - this.setLayout(new FlowLayout(FlowLayout.LEFT)); + this.setLayout(new FlowLayout(FlowLayout.CENTER)); this.setBackground(Color.WHITE); JLabel recommend = new JLabel(title); this.add(recommend); diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/component/SearchHintPane.java b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/component/SearchHintPane.java index adc5fc835..83a2fdffc 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/component/SearchHintPane.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/component/SearchHintPane.java @@ -31,8 +31,9 @@ public class SearchHintPane extends JPanel { private static final String TITLE = Toolkit.i18nText("Fine-Design_Report_AlphaFine_Search_Title"); private static final String RECOMMEND = Toolkit.i18nText("Fine-Design_Report_AlphaFine_Recommend_Search"); private static final Icon ICON = IconUtils.readIcon("com/fr/design/mainframe/alphafine/images/search_hint.svg"); - private static final int HEIGHT = 305; + private static final int HEIGHT = 200; private static final int WIDTH = 300; + private static final int TITLE_LABEL_HEIGHT = 30; private static final int TITLE_FONT_SIZE = 14; public SearchHintPane() { @@ -45,6 +46,7 @@ public class SearchHintPane extends JPanel { public SearchHintPane(List hints, Icon icon, String title) { setLayout(new BorderLayout()); + setBorder(BorderFactory.createEmptyBorder(40,0,0,0)); setBackground(Color.white); setPreferredSize(new Dimension(WIDTH, HEIGHT)); setAlignmentY(SwingConstants.CENTER); @@ -64,6 +66,7 @@ public class SearchHintPane extends JPanel { description.setFont(DesignUtils.getDefaultGUIFont().applySize(TITLE_FONT_SIZE)); description.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0)); description.setHorizontalAlignment(SwingConstants.CENTER); + description.setPreferredSize(new Dimension(WIDTH, TITLE_LABEL_HEIGHT)); return description; } diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/download/FineMarketDownloadManager.java b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/download/FineMarketDownloadManager.java index 29172f94e..127d2002b 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/download/FineMarketDownloadManager.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/download/FineMarketDownloadManager.java @@ -2,7 +2,6 @@ package com.fr.design.mainframe.alphafine.download; import com.fr.base.svg.IconUtils; import com.fr.common.util.Strings; -import com.fr.decision.webservice.v10.log.download.utils.LogZipUtils; import com.fr.design.DesignerEnvManager; import com.fr.design.extra.Process; import com.fr.design.i18n.Toolkit; @@ -14,7 +13,6 @@ import com.fr.design.mainframe.alphafine.search.helper.FineMarketClientHelper; import com.fr.design.mainframe.toast.SimpleToast; import com.fr.general.IOUtils; import com.fr.log.FineLoggerFactory; -import com.fr.stable.pinyin.ChineseHelper; import javax.swing.SwingUtilities; import javax.swing.filechooser.FileSystemView; @@ -82,11 +80,8 @@ public class FineMarketDownloadManager { if (fileName.endsWith(FineMarketConstants.ZIP)) { File file = new File(fileName); File parentDir = file.getParentFile(); - if (ChineseHelper.containChinese(fileName)) { - IOUtils.unzip(file, parentDir.getAbsolutePath(), LogZipUtils.GBK); - } else { - IOUtils.unzip(file, parentDir.getAbsolutePath()); - } + // TODO:之前用的gbk解码太容易乱码了。这里应该自动识别编码,然后解压,但是要添加1个三方包,可能会赶不上发布。所以先暂时用utf8顶着。 + IOUtils.unzip(file, parentDir.getAbsolutePath(), "UTF-8"); } } diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/preview/DefaultContentPane.java b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/preview/DefaultContentPane.java index 56c14dc28..99c312e88 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/preview/DefaultContentPane.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/preview/DefaultContentPane.java @@ -35,6 +35,14 @@ public class DefaultContentPane extends JPanel { this.searchWorkerManager.showDefault(this); } + /** + * 显示搜索结果 + */ + public void showResult(JPanel result) { + add(result); + repaint(); + } + public DefaultContentPane() { } diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/preview/DefaultPluginContentPane.java b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/preview/DefaultPluginContentPane.java index fc9838e9f..9ed5003d3 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/preview/DefaultPluginContentPane.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/preview/DefaultPluginContentPane.java @@ -10,8 +10,9 @@ import com.fr.design.mainframe.alphafine.search.manager.SearchProviderRegistry; import com.fr.general.CloudCenter; import com.fr.log.FineLoggerFactory; +import javax.swing.JPanel; import javax.swing.SwingWorker; -import java.awt.BorderLayout; +import java.awt.CardLayout; import java.util.ArrayList; import java.util.List; @@ -25,18 +26,46 @@ import java.util.List; public class DefaultPluginContentPane extends DefaultContentPane { private static final String[] HINTS = CloudCenter.getInstance().acquireConf("alphafine.plugin.recommend", "JS,API,JSON").split(","); - // 左边展示内容,右边展示搜索提示 + private static final String LOADING_PANE = "loading"; + private static final String NETWORK_ERROR = "networkError"; + private static final String RESULT_PANE = "result"; private SearchWorkerManager searchWorkerManager; private CellType cellType; + private AlphaFineFrame parentWindow; + private CardLayout cardLayout; + private SearchLoadingPane searchLoadingPane; + private NetWorkFailedPane netWorkFailedPane; + private SwingWorker worker; + public DefaultPluginContentPane(CellType cellType, AlphaFineFrame parentWindow) { super(); - this.setLayout(new BorderLayout()); + this.cellType = cellType; + this.parentWindow = parentWindow; + this.cardLayout = new CardLayout(); + this.setLayout(cardLayout); this.setPreferredSize(AlphaFineConstants.PREVIEW_SIZE); - new SwingWorker() { + initPanel(); + add(searchLoadingPane, LOADING_PANE); + add(netWorkFailedPane, NETWORK_ERROR); + worker = createWorker(); + worker.execute(); + } + + private void initPanel() { + this.searchLoadingPane = new SearchLoadingPane(); + this.netWorkFailedPane = new NetWorkFailedPane(()-> reload()); + } + + private void switchPane(String tag) { + cardLayout.show(this, tag); + } + + private SwingWorker createWorker() { + return new SwingWorker() { @Override protected Boolean doInBackground() throws Exception { - add(new SearchLoadingPane()); + switchPane(LOADING_PANE); return AlphaFineHelper.isNetworkOk(); } @@ -45,9 +74,8 @@ public class DefaultPluginContentPane extends DefaultContentPane { super.done(); try { boolean networkOk = get(); - removeAll(); if (!networkOk) { - add(new NetWorkFailedPane()); + switchPane(NETWORK_ERROR); } else { List searchKeys = new ArrayList<>(); for (String s : HINTS) { @@ -64,10 +92,22 @@ public class DefaultPluginContentPane extends DefaultContentPane { } catch (Exception e) { FineLoggerFactory.getLogger().error(e, e.getMessage()); } - } - }.execute(); + }; + } + + @Override + public void showResult(JPanel result) { + add(result, RESULT_PANE); + switchPane(RESULT_PANE); + } + /** + * 网络异常时,重新加载 + */ + public void reload() { + worker = createWorker(); + worker.execute(); } public CellType getCellType() { diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/search/SearchWorkerManager.java b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/search/SearchWorkerManager.java index bca8904a1..cdacd681d 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/search/SearchWorkerManager.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/search/SearchWorkerManager.java @@ -135,8 +135,7 @@ public class SearchWorkerManager implements SearchManager { searchResultPane.getSearchResultList().setModel(searchListModel); searchResultPane.getSearchResultList().setSelectedIndex(0); searchResultPane.getSearchResultList().requestFocus(); - defaultContentPane.add(searchResultPane); - SwingUtilities.invokeLater(()->defaultContentPane.repaint()); + SwingUtilities.invokeLater(()->defaultContentPane.showResult(searchResultPane)); } @Override From 1c781a2c9be59d2b5a8829d9cb8afd2bf2d3a30e Mon Sep 17 00:00:00 2001 From: "Link.Zhao" Date: Wed, 28 Sep 2022 11:02:33 +0800 Subject: [PATCH 2/2] =?UTF-8?q?REPORT-81231=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=91alphafine?= =?UTF-8?q?=E4=B8=8D=E9=80=89=E6=8B=A9=E4=BB=BB=E4=BD=95TAB=EF=BC=8C?= =?UTF-8?q?=E7=82=B9=E5=87=BBalphafine,=E6=97=A5=E5=BF=97=E4=B8=AD?= =?UTF-8?q?=E5=87=BA=E7=8E=B0=E6=8A=A5=E9=94=99=20REPORT-81241=E3=80=90?= =?UTF-8?q?=E8=BF=90=E8=90=A5=E4=BA=A7=E5=93=81=E5=8C=96=E4=BA=8C=E6=9C=9F?= =?UTF-8?q?=E3=80=91=E6=8F=92=E4=BB=B6=E4=B8=AD=E5=BF=83=E6=96=AD=E7=BD=91?= =?UTF-8?q?=E5=90=8E=E7=9A=84=E9=87=8D=E6=96=B0=E5=8A=A0=E8=BD=BD=E6=97=A0?= =?UTF-8?q?=E5=8F=8D=E5=BA=94=20REPORT-80752=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=8A=A8?= =?UTF-8?q?=E6=80=81=E6=97=A0=E6=B3=95=E6=98=BE=E7=A4=BA=E5=87=BA=E6=9D=A5?= =?UTF-8?q?=EF=BC=8C=E8=8B=A5=E6=8F=92=E4=BB=B6=E4=B8=AD=E5=BF=83=E5=9C=A8?= =?UTF-8?q?=E9=A6=96=E4=B8=AA=E4=B9=9F=E6=97=A0=E6=B3=95=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=20REPORT-81211=E3=80=90=E8=BF=90=E8=90=A5=E4=BA=A7=E5=93=81?= =?UTF-8?q?=E5=8C=96=E4=BA=8C=E6=9C=9F=E3=80=91=E6=8F=92=E4=BB=B6=E6=A8=A1?= =?UTF-8?q?=E5=9D=97=E6=9F=A5=E8=AF=A2=E7=9A=84=E6=8E=A8=E8=8D=90=E4=B8=8E?= =?UTF-8?q?=E8=A7=86=E8=A7=89=E5=9B=BEUI=E4=B8=8D=E4=B8=80=E8=87=B4=201?= =?UTF-8?q?=E3=80=81=E4=BF=AE=E6=94=B9pr?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../alphafine/download/FineMarketDownloadManager.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/download/FineMarketDownloadManager.java b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/download/FineMarketDownloadManager.java index 127d2002b..bc195865a 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/download/FineMarketDownloadManager.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/download/FineMarketDownloadManager.java @@ -11,6 +11,7 @@ import com.fr.design.mainframe.alphafine.AlphaFineHelper; import com.fr.design.mainframe.alphafine.model.TemplateResource; import com.fr.design.mainframe.alphafine.search.helper.FineMarketClientHelper; import com.fr.design.mainframe.toast.SimpleToast; +import com.fr.file.FileCommonUtils; import com.fr.general.IOUtils; import com.fr.log.FineLoggerFactory; @@ -81,7 +82,7 @@ public class FineMarketDownloadManager { File file = new File(fileName); File parentDir = file.getParentFile(); // TODO:之前用的gbk解码太容易乱码了。这里应该自动识别编码,然后解压,但是要添加1个三方包,可能会赶不上发布。所以先暂时用utf8顶着。 - IOUtils.unzip(file, parentDir.getAbsolutePath(), "UTF-8"); + IOUtils.unzip(file, FileCommonUtils.getAbsolutePath(parentDir), "UTF-8"); } }