diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/AlphaFineConstants.java b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/AlphaFineConstants.java index 6be6b16e9..935d2d0e3 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/AlphaFineConstants.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/AlphaFineConstants.java @@ -81,6 +81,8 @@ public class AlphaFineConstants { public static final Color WHITE = new Color(0xf9f9f9); + public static final Color LABEL_SELECTED = new Color(0x419bf9); + public static final Color GRAY = new Color(0xd2d2d2); public static final Color LIGHT_GRAY = new Color(0xcccccc); @@ -154,7 +156,7 @@ public class AlphaFineConstants { public static final String ALPHA_PREVIEW = CloudCenter.getInstance().acquireUrlByKind("af.preview"); - public static final String ALPHA_CID = CloudCenter.getInstance().acquireUrlByKind("af.cid"); + public static final String ALPHA_CID = CloudCenter.getInstance().acquireUrlByKind("af.cid.new"); public static final String ALPHA_CID_USER_GROUP_INFO = CloudCenter.getInstance().acquireUrlByKind("af.cid.user.group.info"); 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 d8ddfe27b..0afd89308 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,7 @@ package com.fr.design.mainframe.alphafine.action; import com.fr.design.mainframe.alphafine.model.TemplateResourceDetail; import com.fr.design.mainframe.alphafine.search.helper.FineMarketClientHelper; -import com.fr.design.utils.BrowseUtils; + import java.awt.event.ActionEvent; import java.awt.event.ActionListener; @@ -11,6 +11,8 @@ import java.awt.event.ActionListener; * alphaFine - 模板资源 - 二级界面 - 开始使用按钮的绑定事件 * * 点击后跳转至帆软市场下载对应模板资源 + * + * TODO:可以参考mini组件商城的下载@ComponentsPackageInstallation#install * */ public class StartUseAction implements ActionListener { @@ -22,11 +24,6 @@ public class StartUseAction implements ActionListener { @Override public void actionPerformed(ActionEvent e) { - String url = FineMarketClientHelper.getInstance().getResourceDownloadUrl(resourceDetail.getRoot()); - if (url == null) { - // 如果获取失败,跳转到所有模板页面 - url = FineMarketClientHelper.getInstance().getFineMarketTemplateUrl(); - } - BrowseUtils.browser(url); + FineMarketClientHelper.getInstance().openBrowserAndDownload(resourceDetail.getRoot()); } } \ No newline at end of file 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 deab122e7..d653fae95 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 @@ -156,6 +156,18 @@ public class AlphaFineFrame extends JFrame { private JPanel tabPane; + private JPanel labelPane; + + private JPanel labelContentPane; + + private JPanel labelEastPane; + + private JPanel labelWestPane; + + private UILabel tabLabel; + + private UILabel readLabel; + private SelectedLabel selectedTab; private String beforeSearchStr = StringUtils.EMPTY; @@ -422,20 +434,21 @@ public class AlphaFineFrame extends JFrame { // label区,border layout - JPanel labelPane = new JPanel(new BorderLayout()); + labelPane = new JPanel(new BorderLayout()); labelPane.setBorder(BorderFactory.createEmptyBorder(0, 20, 0, 20)); labelPane.setBackground(Color.WHITE); - JPanel labelContentPane = new JPanel(new BorderLayout()); - UILabel tabLabel = new UILabel(PRODUCT_NEWS); + labelContentPane = new JPanel(new BorderLayout()); + tabLabel = new UILabel(PRODUCT_NEWS); tabLabel.setForeground(AlphaFineConstants.FOREGROUND_COLOR_6); tabLabel.setBorder(BorderFactory.createEmptyBorder(0, 10, 0, 0)); - tabLabel.setPreferredSize(new Dimension(100, 30)); - JPanel westPane = new JPanel(new FlowLayout(FlowLayout.LEFT, 0, 0)); - westPane.add(tabLabel); - labelContentPane.add(westPane, BorderLayout.WEST); - JPanel eastPane = new JPanel(new FlowLayout(FlowLayout.RIGHT, 0, 0)); + tabLabel.setPreferredSize(new Dimension(60, 30)); + tabLabel.setForeground(AlphaFineConstants.LABEL_SELECTED); + labelWestPane = new JPanel(new FlowLayout(FlowLayout.LEFT, 0, 0)); + labelWestPane.add(tabLabel); + labelContentPane.add(labelWestPane, BorderLayout.WEST); + labelEastPane = new JPanel(new FlowLayout(FlowLayout.RIGHT, 0, 0)); // 一键已读 - UILabel readLabel = new UILabel(ONE_CLICK_READ); + readLabel = new UILabel(ONE_CLICK_READ); readLabel.setHorizontalAlignment(SwingConstants.RIGHT); readLabel.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 10));; readLabel.setPreferredSize(new Dimension(100, 30)); @@ -447,8 +460,8 @@ public class AlphaFineFrame extends JFrame { showPane.repaint(); } }); - eastPane.add(readLabel); - labelContentPane.add(eastPane, BorderLayout.EAST); + labelEastPane.add(readLabel); + labelContentPane.add(labelEastPane, BorderLayout.EAST); labelContentPane.setBackground(new Color(245, 245, 247)); labelPane.add(labelContentPane); labelPane.setPreferredSize(new Dimension(AlphaFineConstants.FULL_SIZE.width, 30)); @@ -478,6 +491,14 @@ public class AlphaFineFrame extends JFrame { return showPane; } + public JPanel getLabelWestPane() { + return labelWestPane; + } + + public UILabel getTabLabel() { + return tabLabel; + } + private MouseAdapter createMouseListener(List selectedLabelList, SelectedLabel selectedLabel, JPanel tabPane, UILabel tabLabel, UILabel readLabel) { return new MouseAdapter() { @@ -499,6 +520,9 @@ public class AlphaFineFrame extends JFrame { tabLabel.setText(selectedLabel.getText()); } + // 刷新westlabelpane + refreshLabelPane(); + // 将已读设置不可见 readLabel.setVisible(false); @@ -562,6 +586,11 @@ public class AlphaFineFrame extends JFrame { } } + private void refreshLabelPane() { + labelWestPane.removeAll(); + labelWestPane.add(tabLabel); + } + private List createSelectedLabelList() { List selectedLabelList = new ArrayList<>(); AlphaFineConfigManager alphaFineConfigManager = DesignerEnvManager.getEnvManager().getAlphaFineConfigManager(); @@ -832,6 +861,7 @@ public class AlphaFineFrame extends JFrame { } private void doSearch(String text) { + refreshLabelPane(); initSearchLoadingPane(); SearchTextBean searchTextBean = generateSearchTextBean(text); this.productNewsSearchWorkerManager.doSearch(searchTextBean); @@ -954,6 +984,7 @@ public class AlphaFineFrame extends JFrame { @Override public void setVisible(boolean b) { super.setVisible(b); + switchTab(selectedTab.getCellType(), readLabel); QuestionWindow.getInstance().setVisible(!b); if (!b) { AlphaFineHelper.resetAlphaFineDialog(); diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/model/TemplateResourceDetail.java b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/model/TemplateResourceDetail.java index 468e3f9d4..74b470d53 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/model/TemplateResourceDetail.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/model/TemplateResourceDetail.java @@ -6,6 +6,7 @@ import com.fr.design.mainframe.alphafine.search.manager.impl.TemplateResourceSea import com.fr.json.JSONArray; import com.fr.json.JSONObject; import com.fr.log.FineLoggerFactory; +import com.fr.stable.StringUtils; import java.util.ArrayList; import java.util.Arrays; @@ -104,7 +105,11 @@ public class TemplateResourceDetail { } public void setParentPkgName(String parentPkgName) { - this.parentPkgName = parentPkgName; + if (StringUtils.isEmpty(parentPkgName)) { + this.parentPkgName = ""; + } else { + this.parentPkgName = parentPkgName; + } } public String getResourceUrl() { diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/preview/TemplateResourceDetailPane.java b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/preview/TemplateResourceDetailPane.java index 4433754f9..fe2e1bbc5 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/preview/TemplateResourceDetailPane.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/preview/TemplateResourceDetailPane.java @@ -1,5 +1,6 @@ package com.fr.design.mainframe.alphafine.preview; +import com.fr.design.gui.ibutton.UIButton; import com.fr.design.gui.icontainer.UIScrollPane; import com.fr.design.i18n.Toolkit; import com.fr.design.mainframe.alphafine.action.StartUseAction; @@ -8,7 +9,6 @@ import com.fr.design.mainframe.alphafine.model.TemplateResourceDetail; import com.fr.design.utils.BrowseUtils; import javax.swing.BorderFactory; -import javax.swing.JButton; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.SwingConstants; @@ -93,8 +93,9 @@ public class TemplateResourceDetailPane extends JPanel { operatePane = new JPanel(new FlowLayout(FlowLayout.LEFT)); JLabel emptyLabel = new JLabel(); - emptyLabel.setPreferredSize(new Dimension(115, 25)); + emptyLabel.setPreferredSize(new Dimension(140, 25)); JLabel priceLabel = new JLabel(); + priceLabel.setForeground(Color.RED); if (data.getPrice() == 0) { priceLabel.setText(FREE); } else { @@ -128,8 +129,8 @@ public class TemplateResourceDetailPane extends JPanel { BrowseUtils.browser(url); } - JButton createStartUseButton() { - JButton starUseButton = new JButton(START_USE); + UIButton createStartUseButton() { + UIButton starUseButton = new UIButton(START_USE); starUseButton.addActionListener(new StartUseAction(data)); return starUseButton; } diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/preview/TemplateShopPane.java b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/preview/TemplateShopPane.java index 83485f2d1..7acb30537 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/preview/TemplateShopPane.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/preview/TemplateShopPane.java @@ -1,6 +1,8 @@ package com.fr.design.mainframe.alphafine.preview; +import com.fr.design.gui.ilable.UILabel; import com.fr.design.mainframe.alphafine.AlphaFineConstants; +import com.fr.design.mainframe.alphafine.AlphaFineHelper; import com.fr.design.mainframe.alphafine.component.TemplateResourcePageGridPane; import com.fr.design.mainframe.alphafine.model.TemplateResource; import com.fr.design.mainframe.alphafine.model.TemplateResourceDetail; @@ -11,6 +13,8 @@ import com.fr.third.apache.logging.log4j.util.Strings; import javax.swing.JPanel; import javax.swing.SwingWorker; import java.awt.CardLayout; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; import java.util.List; public class TemplateShopPane extends JPanel { @@ -26,7 +30,7 @@ public class TemplateShopPane extends JPanel { public static final String DETAIL_PANEL = "detailPane"; public static final String LOADING_PANEL = "loadingPane"; private String currentCard = Strings.EMPTY; - + private static final String SLASH = "/"; private CardLayout cardLayout = new CardLayout(); private JPanel defaultPagePane; @@ -71,6 +75,9 @@ public class TemplateShopPane extends JPanel { // 打开二级页面,显示详细信息 public void searchAndShowDetailPane(TemplateResource resource) { + + changeLabel(resource.getName()); + switchCard(LOADING_PANEL); new SwingWorker() { @@ -99,6 +106,35 @@ public class TemplateShopPane extends JPanel { } + + + private void changeLabel(String resourceName) { + JPanel labelNamePane = AlphaFineHelper.getAlphaFineDialog().getLabelWestPane(); + UILabel tabLabel = AlphaFineHelper.getAlphaFineDialog().getTabLabel(); + tabLabel.setForeground(AlphaFineConstants.DARK_GRAY); + + UILabel slash = new UILabel(SLASH); + slash.setForeground(AlphaFineConstants.DARK_GRAY); + + UILabel resourceLabel = new UILabel(resourceName); + resourceLabel.setForeground(AlphaFineConstants.LABEL_SELECTED); + + labelNamePane.add(slash); + labelNamePane.add(resourceLabel); + + + tabLabel.addMouseListener(new MouseAdapter() { + @Override + public void mouseClicked(MouseEvent e) { + super.mouseClicked(e); + switchCard(PAGE_PANEL); + tabLabel.setForeground(AlphaFineConstants.LABEL_SELECTED); + labelNamePane.remove(slash); + labelNamePane.remove(resourceLabel); + } + }); + } + // 方便埋点,勿删 public String getCurrentCard() { return currentCard; diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/search/helper/FineMarketClientHelper.java b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/search/helper/FineMarketClientHelper.java index 97e31609a..81a165ca0 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/search/helper/FineMarketClientHelper.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/search/helper/FineMarketClientHelper.java @@ -1,6 +1,7 @@ package com.fr.design.mainframe.alphafine.search.helper; import com.fr.design.mainframe.alphafine.model.TemplateResource; +import com.fr.design.utils.BrowseUtils; import com.fr.general.CloudCenter; import com.fr.general.http.HttpToolbox; import com.fr.json.JSONArray; @@ -19,8 +20,9 @@ public class FineMarketClientHelper { return INSTANCE; } - public static final String FINE_MARKET_TEMPLATE_INFO = CloudCenter.getInstance().acquireUrlByKind("market.template.info", "https://market.fanruan.com/templates/"); - public static final String FINE_MARKET_TEMPLATE_URL = CloudCenter.getInstance().acquireUrlByKind("market.template.url", "https://market.fanruan.com/template/"); + public static final String FINE_MARKET_TEMPLATE_INFO = CloudCenter.getInstance().acquireUrlByKind("market.template.info"); + public static final String FINE_MARKET_TEMPLATE_URL = CloudCenter.getInstance().acquireUrlByKind("market.template.url"); + public static final String LOGIN_FINE_CLUB_AND_REDIRECT_SHOP = CloudCenter.getInstance().acquireUrlByKind("af.login.redirect.market"); public static final String FILE_DOWNLOAD = "file/"; public static final String PACKAGE_DOWNLOAD = "package/download/"; public static final String TEMPLATES_PARENT_PACKAGE = "parent/"; @@ -51,11 +53,21 @@ public class FineMarketClientHelper { } + public void openBrowserAndDownload(TemplateResource templateResource) { + String url = LOGIN_FINE_CLUB_AND_REDIRECT_SHOP; + if (TemplateResource.Type.SCENARIO_SOLUTION.equals(templateResource.getType())) { + url += getPackageDownloadUrl(templateResource.getId()); + } else { + url += getFileDownLoadUrl(templateResource.getId()); + } + BrowseUtils.browser(url); + } + /** - * 打开浏览器,打包并下载模板资源包,可能会很慢 + * 暂时没有package的下载接口,需要用户在浏览器点击下载 * */ private String getPackageDownloadUrl(String id) { - return FINE_MARKET_TEMPLATE_INFO + PACKAGE_DOWNLOAD + id; + return getTemplateUrlById(id); } /** 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 1fc9f19f8..2a8c76751 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 @@ -43,7 +43,7 @@ public class TemplateResourceSearchManager { if (resourceList.isEmpty()) { List localResource = getEmbedResourceList(); localResource.stream().forEach(resource->{ - if (resource.getName().contains(searchText)) { + if (resource.getName().toLowerCase().contains(searchText)) { resourceList.add(resource); } }); @@ -81,7 +81,7 @@ public class TemplateResourceSearchManager { public List getRecommendSearchKeys() { List searchKey = new ArrayList<>(); - String[] keys = CloudCenter.getInstance().acquireConf("alphafine.tempalte.recommend", "库存,指标,可视化").split(","); + String[] keys = CloudCenter.getInstance().acquireConf("alphafine.tempalte.recommend", "跑马灯,填报,地图").split(","); for (String k : keys) { searchKey.add(k); }