From 3b309e8b2ab9de91bc9c4a7698b453a211f94ab8 Mon Sep 17 00:00:00 2001 From: "Link.Zhao" Date: Wed, 31 Aug 2022 11:36:34 +0800 Subject: [PATCH 1/5] =?UTF-8?q?REPORT-79456=20=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=E8=BF=9C?= =?UTF-8?q?=E7=A8=8B=E8=AE=BE=E8=AE=A1=E4=B8=8B=20=E7=AB=8B=E5=8D=B3?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=E4=B8=8B=E8=BD=BD=E4=B8=8D=E6=88=90=E5=8A=9F?= =?UTF-8?q?=20=E8=BF=9C=E7=A8=8B=E8=AE=BE=E8=AE=A1=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E7=9A=84=E4=B8=8B=E8=BD=BD=E8=B7=AF=E5=BE=84=E6=98=AF=E4=B8=AA?= =?UTF-8?q?url=EF=BC=8C=E4=B8=8D=E5=8F=AF=E7=94=A8=20=E6=94=B9=E4=B8=BA?= =?UTF-8?q?=E4=B8=8B=E8=BD=BD=E5=88=B0=E6=A1=8C=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../alphafine/action/StartUseAction.java | 23 +++++++++++-------- .../download/FineMarketDownloadManager.java | 6 ++--- 2 files changed, 17 insertions(+), 12 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 330d23069..de813883f 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 @@ -54,28 +54,33 @@ public class StartUseAction implements ActionListener { }.execute(); } + /** + * 打开模板并打开文件目录 + * */ void open(String fileName) throws IOException { if (Strings.isEmpty(fileName)) { return; } + // 打开模板 + openInDesigner(fileName); + + // 打开系统文件夹 + File parentDir = new File(fileName).getParentFile(); + Desktop.getDesktop().open(parentDir); + } + + void openInDesigner(String fileName) { File fileNeedOpen = new File(fileName); if (fileName.endsWith(FineMarketConstants.ZIP)) { File[] files = fileNeedOpen.getParentFile().listFiles(); fileNeedOpen = getFirstCptOrFrm(files); } else if (fileName.endsWith(FineMarketConstants.RAR)) { - // rar直接打开系统文件夹 - File parentDir = new File(fileName).getParentFile(); - Desktop.getDesktop().open(parentDir); + // rar资源没有解压,所以不用打开模板 return; } - openInDesigner(fileNeedOpen); - } - void openInDesigner(File file) { - // 刷新目录 - DesignerFrameFileDealerPane.getInstance().refresh(); // 打开模板 - DesignerContext.getDesignerFrame().openTemplate(new FileFILE(file)); + DesignerContext.getDesignerFrame().openTemplate(new FileFILE(fileNeedOpen)); } 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 08a785311..c95ee8bde 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 @@ -13,9 +13,9 @@ import com.fr.design.mainframe.alphafine.search.helper.FineMarketClientHelper; import com.fr.design.mainframe.toast.SimpleToast; import com.fr.log.FineLoggerFactory; import com.fr.third.jodd.io.ZipUtil; -import com.fr.workspace.WorkContext; import javax.swing.SwingUtilities; +import javax.swing.filechooser.FileSystemView; import java.awt.Window; import java.io.File; import java.io.IOException; @@ -57,8 +57,8 @@ public class FineMarketDownloadManager { } private String install(TemplateResource resource, Window parentWindow) { - // 获取报表录作为下载位置 - String workDir = WorkContext.getCurrent().getPath() + FineMarketConstants.REPORTLETS; + // 默认下载到桌面 + String workDir = FileSystemView.getFileSystemView().getHomeDirectory().getPath(); File destDir = new File(workDir); DownloadProcess downloadProcess = new DownloadProcess(parentWindow); From 472445f829d55b5a58a2d72019d08d8e9e05dc79 Mon Sep 17 00:00:00 2001 From: roger Date: Wed, 31 Aug 2022 16:21:10 +0800 Subject: [PATCH 2/5] =?UTF-8?q?REPORT-79492=20=E5=A4=8D=E5=88=B6=E5=A4=9A?= =?UTF-8?q?=E5=BC=A0=E6=A8=A1=E6=9D=BF=EF=BC=8C=E5=88=A0=E9=99=A4=E4=B8=80?= =?UTF-8?q?=E9=83=A8=E5=88=86=EF=BC=8C=E8=A7=A6=E5=8F=91=E7=B2=98=E8=B4=B4?= =?UTF-8?q?=E5=90=8E=E6=B2=A1=E6=9C=89=E5=AE=9A=E4=BD=8D=E5=88=B0=E7=B2=98?= =?UTF-8?q?=E8=B4=B4=E7=9A=84=E4=BD=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/file/DefaultTemplateTreeDefineProcessor.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/file/DefaultTemplateTreeDefineProcessor.java b/designer-base/src/main/java/com/fr/design/file/DefaultTemplateTreeDefineProcessor.java index 103bf5ee3..03486a612 100644 --- a/designer-base/src/main/java/com/fr/design/file/DefaultTemplateTreeDefineProcessor.java +++ b/designer-base/src/main/java/com/fr/design/file/DefaultTemplateTreeDefineProcessor.java @@ -215,7 +215,7 @@ public class DefaultTemplateTreeDefineProcessor extends AbstractTemplateTreeDefi WARNING_MESSAGE); return; } - doPaste(targetDir, pasteNodes); + doPaste(targetDir, treeNodeList); } /** @@ -256,7 +256,10 @@ public class DefaultTemplateTreeDefineProcessor extends AbstractTemplateTreeDefi for (ExpandMutableTreeNode node : pasteNodes) { if (node.getUserObject() instanceof FileNode) { FileNode fileNode = (FileNode) node.getUserObject(); - targetFile = FileOperationHelper.getInstance().copyFile(fileNode, targetDir); + String newTargetFile = FileOperationHelper.getInstance().copyFile(fileNode, targetDir); + if (TemplateResourceManager.getResource().exist(newTargetFile)) { + targetFile = newTargetFile; + } FineLoggerFactory.getLogger().debug("Template: {} paste to {} success.", fileNode.getEnvPath(), targetDir); } } From 8d7c05e302f9bc81aee61a75e9d5e594ff5d4503 Mon Sep 17 00:00:00 2001 From: roger Date: Wed, 31 Aug 2022 16:50:54 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E6=94=B9=E4=B8=80=E4=B8=8B=E5=86=99?= =?UTF-8?q?=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../file/DefaultTemplateTreeDefineProcessor.java | 2 +- .../java/com/fr/design/file/FileOperationHelper.java | 12 ++++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/file/DefaultTemplateTreeDefineProcessor.java b/designer-base/src/main/java/com/fr/design/file/DefaultTemplateTreeDefineProcessor.java index 03486a612..feb1e696f 100644 --- a/designer-base/src/main/java/com/fr/design/file/DefaultTemplateTreeDefineProcessor.java +++ b/designer-base/src/main/java/com/fr/design/file/DefaultTemplateTreeDefineProcessor.java @@ -257,7 +257,7 @@ public class DefaultTemplateTreeDefineProcessor extends AbstractTemplateTreeDefi if (node.getUserObject() instanceof FileNode) { FileNode fileNode = (FileNode) node.getUserObject(); String newTargetFile = FileOperationHelper.getInstance().copyFile(fileNode, targetDir); - if (TemplateResourceManager.getResource().exist(newTargetFile)) { + if (StringUtils.isNotEmpty(newTargetFile)) { targetFile = newTargetFile; } FineLoggerFactory.getLogger().debug("Template: {} paste to {} success.", fileNode.getEnvPath(), targetDir); diff --git a/designer-base/src/main/java/com/fr/design/file/FileOperationHelper.java b/designer-base/src/main/java/com/fr/design/file/FileOperationHelper.java index 2cf2ef9d1..21eb34d90 100644 --- a/designer-base/src/main/java/com/fr/design/file/FileOperationHelper.java +++ b/designer-base/src/main/java/com/fr/design/file/FileOperationHelper.java @@ -119,12 +119,20 @@ public class FileOperationHelper { } private String copyFile(FileNode sourceFile, String targetDir, boolean withCopyVcs) { + String sourcePath = sourceFile.getEnvPath(); + if (!TemplateResourceManager.getResource().exist(sourcePath)) { + FineJOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), + Toolkit.i18nText("Fine-Design_Basic_Source_File_Not_Exist", sourcePath), + Toolkit.i18nText("Fine-Design_Basic_Alert"), + WARNING_MESSAGE); + return StringUtils.EMPTY; + } String name = getNoRepeatedName4Paste(targetDir, sourceFile.getName()); String targetFile = StableUtils.pathJoin(targetDir, name); if (sourceFile.isDirectory()) { - copyDir(sourceFile.getEnvPath(), targetFile, withCopyVcs); + copyDir(sourcePath, targetFile, withCopyVcs); } else { - copyFile(sourceFile.getEnvPath(), targetFile, withCopyVcs); + copyFile(sourcePath, targetFile, withCopyVcs); } return targetFile; } From 5cdc79bbbfc56fb3c042df747ae50e2f4567b13f Mon Sep 17 00:00:00 2001 From: "Link.Zhao" Date: Wed, 31 Aug 2022 20:16:42 +0800 Subject: [PATCH 4/5] =?UTF-8?q?REPORT-79096=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=E4=BA=A4?= =?UTF-8?q?=E4=BA=92=E9=97=AE=E9=A2=98=E9=9B=86=E5=90=88=E4=BA=8C=20REPORT?= =?UTF-8?q?-79341=E3=80=90=E8=BF=90=E8=90=A5=E4=BA=A7=E5=93=81=E5=8C=96?= =?UTF-8?q?=E4=BA=8C=E6=9C=9F=E3=80=91=E7=AB=8B=E5=8D=B3=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E4=B8=8B=E8=BD=BD=E7=9A=84=E6=A8=A1=E6=9D=BF=E5=90=8D=E7=A7=B0?= =?UTF-8?q?=E7=9B=AE=E5=89=8D=E6=98=AF=E5=BC=80=E5=A4=B4=E5=8A=A0=E4=BA=86?= =?UTF-8?q?=EF=BC=881=EF=BC=89=EF=BC=8C=E6=98=AF=E5=90=A6=E5=8F=AF?= =?UTF-8?q?=E6=8C=89=E6=B5=8F=E8=A7=88=E5=99=A8=E8=A7=84=E5=88=99=201?= =?UTF-8?q?=E3=80=81=E6=94=B9ui=202=E3=80=81=E6=94=B9=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E9=87=8D=E5=90=8D=E8=A7=84=E5=88=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../component/RecommendSearchPane.java | 16 ++++---- .../component/TemplateResourceImagePanel.java | 8 +++- .../TemplateResourcePageGridPane.java | 1 + .../component/TemplateResourcePanel.java | 29 ++++++++------ .../preview/TemplateResourceDetailPane.java | 5 ++- .../search/helper/FineMarketClientHelper.java | 39 ++++++++++++------- 6 files changed, 62 insertions(+), 36 deletions(-) diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/component/RecommendSearchPane.java b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/component/RecommendSearchPane.java index a0b0ef4bf..41d488160 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/component/RecommendSearchPane.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/component/RecommendSearchPane.java @@ -27,27 +27,27 @@ public class RecommendSearchPane extends TemplateResourcePanel { this.setBorder(BorderFactory.createLineBorder(BORDER_WHITE, 1)); this.add(getNorthPane(), BorderLayout.NORTH); - this.add(getSouthPane(), BorderLayout.SOUTH); + this.add(getCenterPane(), BorderLayout.CENTER); } private void initComponent() { createNorthPane(); - createSouthPane(); + createCenterPane(); } - private void createSouthPane() { - setSouthPane(new JPanel(new FlowLayout(FlowLayout.LEFT))); - JPanel southPane = getSouthPane(); - southPane.setBackground(Color.WHITE); + private void createCenterPane() { + setCenterPane(new JPanel(new FlowLayout(FlowLayout.LEFT))); + JPanel centerPane = getCenterPane(); + centerPane.setBackground(Color.WHITE); JLabel recommend = new JLabel(Toolkit.i18nText("Fine-Design_Report_AlphaFine_Template_Resource_Recommend_For_You")); - southPane.add(recommend); + centerPane.add(recommend); List searchKeys = getTemplateResource().getRecommendSearchKey(); for (String key : searchKeys) { JLabel keyLabel = new SearchKeyLabel(key); - southPane.add(keyLabel); + centerPane.add(keyLabel); } } diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/component/TemplateResourceImagePanel.java b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/component/TemplateResourceImagePanel.java index 13d29d76f..2c70e06c4 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/component/TemplateResourceImagePanel.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/component/TemplateResourceImagePanel.java @@ -5,8 +5,10 @@ import com.fr.design.mainframe.alphafine.model.TemplateResource; import com.fr.third.jodd.util.StringUtil; import javax.swing.JPanel; +import java.awt.AlphaComposite; import java.awt.Color; import java.awt.Dimension; +import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Image; @@ -17,7 +19,9 @@ public class TemplateResourceImagePanel extends JPanel { private static final int BACKGROUND_HEIGHT = 20; - private static final Color BACKGROUND_COLOR = new Color(116, 181, 249); + private static final Color BACKGROUND_COLOR = new Color(0x419BF9); + + private static final Font TAG_FONT = new Font("PingFang SC", Font.PLAIN, 12); private static final Color COVER_COLOR = new Color(116, 181, 249, 26); @@ -56,10 +60,12 @@ public class TemplateResourceImagePanel extends JPanel { String tagName = templateResource.getType().getName(); if (!StringUtil.isEmpty(tagName)) { + g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, .8f)); g2.setColor(BACKGROUND_COLOR); g2.fillRect(0, getHeight() - BACKGROUND_HEIGHT, getWidth(), BACKGROUND_HEIGHT); g2.setColor(Color.WHITE); int x = (getWidth() - GraphHelper.getWidth(tagName, g2.getFont())) / 2; + g2.setFont(TAG_FONT); g2.drawString(tagName, x, getHeight() - 5); } g2.setColor(defaultColor); diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/component/TemplateResourcePageGridPane.java b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/component/TemplateResourcePageGridPane.java index 2bafebc56..fc0458769 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/component/TemplateResourcePageGridPane.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/component/TemplateResourcePageGridPane.java @@ -126,6 +126,7 @@ public class TemplateResourcePageGridPane extends JPanel { this.add(pageButtonPane, BorderLayout.SOUTH); } this.setBackground(Color.WHITE); + this.setBorder(BorderFactory.createEmptyBorder()); } private void initComponents() { diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/component/TemplateResourcePanel.java b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/component/TemplateResourcePanel.java index 4eba18c63..8447d9dbd 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/component/TemplateResourcePanel.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/component/TemplateResourcePanel.java @@ -12,6 +12,7 @@ import javax.swing.JPanel; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; +import java.awt.Font; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; @@ -19,11 +20,13 @@ import java.awt.event.MouseEvent; public class TemplateResourcePanel extends JPanel { private JPanel northPane; - private JPanel southPane; + private JPanel centerPane; private TemplateResource templateResource; private static final Color PANEL_BORDER_COLOR = new Color(0xe8e8e9); private static final Color DEMO_LABEL_FOREGROUND = new Color(0x419bf9); + private static final Font RESOURCE_NAME_FONT = new Font("PingFang SC", Font.PLAIN, 12); + private static final Color RESOURCE_NAME_COLOR = new Color(0x5c5c5d); protected TemplateResourcePanel() { @@ -35,7 +38,7 @@ public class TemplateResourcePanel extends JPanel { this.setLayout(new BorderLayout()); this.setBorder(BorderFactory.createLineBorder(PANEL_BORDER_COLOR, 1)); this.add(northPane, BorderLayout.NORTH); - this.add(southPane, BorderLayout.SOUTH); + this.add(centerPane, BorderLayout.CENTER); addAction(); } @@ -60,8 +63,8 @@ public class TemplateResourcePanel extends JPanel { public JPanel getNorthPane() { return northPane; } - public JPanel getSouthPane() { - return southPane; + public JPanel getCenterPane() { + return centerPane; } public TemplateResource getTemplateResource() { return templateResource; @@ -71,8 +74,8 @@ public class TemplateResourcePanel extends JPanel { this.northPane = northPane; } - public void setSouthPane(JPanel southPane) { - this.southPane = southPane; + public void setCenterPane(JPanel centerPane) { + this.centerPane = centerPane; } public void setTemplateResource(TemplateResource templateResource) { @@ -81,15 +84,17 @@ public class TemplateResourcePanel extends JPanel { private void initComponent() { createNorthPane(); - createSouthPane(); + createCenterPane(); } protected void createNorthPane() { northPane = new TemplateResourceImagePanel(templateResource); } - private void createSouthPane() { + private void createCenterPane() { JLabel nameLabel = new JLabel(templateResource.getName()); + nameLabel.setFont(RESOURCE_NAME_FONT); + nameLabel.setForeground(RESOURCE_NAME_COLOR); nameLabel.setBackground(Color.WHITE); nameLabel.setBorder(BorderFactory.createEmptyBorder()); @@ -109,10 +114,10 @@ public class TemplateResourcePanel extends JPanel { }); } - southPane = new JPanel(new BorderLayout()); - southPane.setBackground(Color.WHITE); - southPane.add(nameLabel, BorderLayout.WEST); - southPane.add(demoLabel, BorderLayout.EAST); + centerPane = new JPanel(new BorderLayout()); + centerPane.setBackground(Color.WHITE); + centerPane.add(nameLabel, BorderLayout.WEST); + centerPane.add(demoLabel, BorderLayout.EAST); } @Override 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 8d0ef703b..74de64329 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 @@ -66,8 +66,8 @@ public class TemplateResourceDetailPane extends JPanel { private static final Color INFO_PANE_FOREGROUND = new Color(0x5b5b5c); private static final Color MORE_INFO_LINK = new Color(0x419bf9); - private static final String HTML_FORMAT = "%s"; - private static final String DETAIL_INFO_HTML_FORMAT = "

" + DETAIL_INFO + "

%s"; + private static final String HTML_FORMAT = "%s"; + private static final String DETAIL_INFO_HTML_FORMAT = "

" + DETAIL_INFO + "

%s"; private static final String HTML_P_TAG_FORMAT = "

%s

"; @@ -208,6 +208,7 @@ public class TemplateResourceDetailPane extends JPanel { content.setBackground(INFO_PANE_BACKGROUND); content.setForeground(INFO_PANE_FOREGROUND); infoScrollPane = new UIScrollPane(content); + infoScrollPane.setForeground(INFO_PANE_FOREGROUND); infoScrollPane.setPreferredSize(new Dimension(SCROLL_PANE_WIDTH, SCROLL_PANE_HEIGHT)); infoScrollPane.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0)); } 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 07fd402fb..0767df4e6 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 @@ -161,17 +161,36 @@ public class FineMarketClientHelper { finalDir.mkdir(); } - // 获取文件名(含后缀) fileName = resource.getFileName(); - String prefix = fileName.substring(0, fileName.length() - 4); - String suffix = fileName.substring(fileName.length() - 4); + fileName = rename(fileName, finalDir); - // 处理重复文件名 + File destFile = new File(StableUtils.pathJoin(FileCommonUtils.getAbsolutePath(finalDir), fileName)); + return destFile; + } catch (Exception e) { + FineLoggerFactory.getLogger().error(e, e.getMessage()); + } + fileName = UUID.randomUUID() + fileName; + File dest = new File(StableUtils.pathJoin(FileCommonUtils.getAbsolutePath(finalDir), fileName)); + return dest; + } + + /** + * 处理下文件名,比如重复下载需要处理重名的情况 + * */ + String rename(String fileName, File parentDir) { + // 获取文件名(含后缀) + String prefix = fileName.substring(0, fileName.length() - 4); + String suffix = fileName.substring(fileName.length() - 4); + + + File file = new File(StableUtils.pathJoin(FileCommonUtils.getAbsolutePath(parentDir), fileName)); + // 处理重复文件名 + if (file.exists()) { String fileNameFormat = prefix + "(%d)" + suffix; Pattern pattern = Pattern.compile(prefix + "\\((\\d)\\)" + suffix); int cnt = 0; - File[] files = finalDir.listFiles(); + File[] files = parentDir.listFiles(); for (File f : files) { Matcher matcher = pattern.matcher(f.getName()); if (matcher.find()) { @@ -180,15 +199,9 @@ public class FineMarketClientHelper { } cnt++; fileName = String.format(fileNameFormat, cnt); - - File destFile = new File(StableUtils.pathJoin(FileCommonUtils.getAbsolutePath(finalDir), fileName)); - return destFile; - } catch (Exception e) { - FineLoggerFactory.getLogger().error(e, e.getMessage()); } - fileName = UUID.randomUUID() + fileName; - File dest = new File(StableUtils.pathJoin(FileCommonUtils.getAbsolutePath(finalDir), fileName)); - return dest; + return fileName; + } private static CloseableHttpResponse getDownloadHttpResponse(String url) throws Exception { From d0e965a8dcf132f0c7b7fbde40f22188092122fc Mon Sep 17 00:00:00 2001 From: "Link.Zhao" Date: Thu, 1 Sep 2022 11:02:56 +0800 Subject: [PATCH 5/5] =?UTF-8?q?REPORT-79096=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=E4=BA=A4?= =?UTF-8?q?=E4=BA=92=E9=97=AE=E9=A2=98=E9=9B=86=E5=90=88=E4=BA=8C=20REPORT?= =?UTF-8?q?-79341=E3=80=90=E8=BF=90=E8=90=A5=E4=BA=A7=E5=93=81=E5=8C=96?= =?UTF-8?q?=E4=BA=8C=E6=9C=9F=E3=80=91=E7=AB=8B=E5=8D=B3=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E4=B8=8B=E8=BD=BD=E7=9A=84=E6=A8=A1=E6=9D=BF=E5=90=8D=E7=A7=B0?= =?UTF-8?q?=E7=9B=AE=E5=89=8D=E6=98=AF=E5=BC=80=E5=A4=B4=E5=8A=A0=E4=BA=86?= =?UTF-8?q?=EF=BC=881=EF=BC=89=EF=BC=8C=E6=98=AF=E5=90=A6=E5=8F=AF?= =?UTF-8?q?=E6=8C=89=E6=B5=8F=E8=A7=88=E5=99=A8=E8=A7=84=E5=88=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1、维护代码质量 --- .../main/java/com/fr/design/utils/LinkStrUtils.java | 13 +++++++++++++ .../component/TemplateResourceImagePanel.java | 4 +++- .../alphafine/component/TemplateResourcePanel.java | 3 ++- .../preview/TemplateResourceDetailPane.java | 8 ++++++-- .../search/helper/FineMarketClientHelper.java | 9 ++++++++- 5 files changed, 32 insertions(+), 5 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/utils/LinkStrUtils.java b/designer-base/src/main/java/com/fr/design/utils/LinkStrUtils.java index 2bb245b44..666d17b84 100644 --- a/designer-base/src/main/java/com/fr/design/utils/LinkStrUtils.java +++ b/designer-base/src/main/java/com/fr/design/utils/LinkStrUtils.java @@ -59,6 +59,19 @@ public class LinkStrUtils { return style.toString(); } + + public static String generateStyle(Font font, Color fontColor) { + + // 构建相同风格样式 + StringBuilder style = new StringBuilder("font-family:" + font.getFamily() + ";"); + + style.append("font-weight:").append(font.isBold() ? "bold" : "normal").append(";"); + style.append("font-size:").append(font.getSize()).append("pt;"); + style.append("color:rgb(").append(fontColor.getRed()).append(",").append(fontColor.getGreen()).append(",").append(fontColor.getBlue()).append(");"); + return style.toString(); + } + + public static String generateDefaultStyle() { diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/component/TemplateResourceImagePanel.java b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/component/TemplateResourceImagePanel.java index 2c70e06c4..9697bfc2c 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/component/TemplateResourceImagePanel.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/component/TemplateResourceImagePanel.java @@ -2,6 +2,8 @@ package com.fr.design.mainframe.alphafine.component; import com.fr.base.GraphHelper; import com.fr.design.mainframe.alphafine.model.TemplateResource; +import com.fr.design.utils.DesignUtils; +import com.fr.general.FRFont; import com.fr.third.jodd.util.StringUtil; import javax.swing.JPanel; @@ -21,7 +23,7 @@ public class TemplateResourceImagePanel extends JPanel { private static final Color BACKGROUND_COLOR = new Color(0x419BF9); - private static final Font TAG_FONT = new Font("PingFang SC", Font.PLAIN, 12); + private static final Font TAG_FONT = DesignUtils.getDefaultGUIFont().applySize(12); private static final Color COVER_COLOR = new Color(116, 181, 249, 26); diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/component/TemplateResourcePanel.java b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/component/TemplateResourcePanel.java index 8447d9dbd..967f0a41f 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/component/TemplateResourcePanel.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/component/TemplateResourcePanel.java @@ -4,6 +4,7 @@ import com.fr.design.i18n.Toolkit; import com.fr.design.mainframe.alphafine.model.TemplateResource; import com.fr.design.mainframe.alphafine.preview.TemplateShopPane; import com.fr.design.utils.BrowseUtils; +import com.fr.design.utils.DesignUtils; import com.fr.log.FineLoggerFactory; import javax.swing.BorderFactory; @@ -25,7 +26,7 @@ public class TemplateResourcePanel extends JPanel { private static final Color PANEL_BORDER_COLOR = new Color(0xe8e8e9); private static final Color DEMO_LABEL_FOREGROUND = new Color(0x419bf9); - private static final Font RESOURCE_NAME_FONT = new Font("PingFang SC", Font.PLAIN, 12); + private static final Font RESOURCE_NAME_FONT = DesignUtils.getDefaultGUIFont().applySize(12); private static final Color RESOURCE_NAME_COLOR = new Color(0x5c5c5d); protected TemplateResourcePanel() { 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 74de64329..f43d16e63 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 @@ -9,6 +9,7 @@ import com.fr.design.mainframe.alphafine.action.StartUseAction; import com.fr.design.mainframe.alphafine.component.TemplateResourceImagePanel; import com.fr.design.mainframe.alphafine.model.TemplateResourceDetail; import com.fr.design.utils.BrowseUtils; +import com.fr.design.utils.DesignUtils; import com.fr.design.utils.LinkStrUtils; import com.fr.stable.StringUtils; @@ -20,6 +21,7 @@ import javax.swing.SwingUtilities; import java.awt.Color; import java.awt.Dimension; import java.awt.FlowLayout; +import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.RenderingHints; @@ -66,8 +68,10 @@ public class TemplateResourceDetailPane extends JPanel { private static final Color INFO_PANE_FOREGROUND = new Color(0x5b5b5c); private static final Color MORE_INFO_LINK = new Color(0x419bf9); - private static final String HTML_FORMAT = "%s"; - private static final String DETAIL_INFO_HTML_FORMAT = "

" + DETAIL_INFO + "

%s"; + private static final Font HTML_FONT = DesignUtils.getDefaultGUIFont().applySize(12); + private static final Color HTML_COLOR = new Color(0x5c5c5d); + private static final String HTML_FORMAT = "%s"; + private static final String DETAIL_INFO_HTML_FORMAT = "

" + DETAIL_INFO + "

%s"; private static final String HTML_P_TAG_FORMAT = "

%s

"; 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 0767df4e6..f4add755e 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 @@ -61,6 +61,8 @@ public class FineMarketClientHelper { public static final String TAGS_ITEMS = "items"; public static final String TAG_NAME = "name"; public static final String TAG_ID = "id"; + private static final String FILENAME_FORMAT = ".+?(.zip|.rar|.cpt|.frm)"; + private static final Pattern FILENAME_PATTERN = Pattern.compile(FILENAME_FORMAT); // 缓存下所有tag标签 private Map tags; @@ -177,7 +179,12 @@ public class FineMarketClientHelper { /** * 处理下文件名,比如重复下载需要处理重名的情况 * */ - String rename(String fileName, File parentDir) { + String rename(String fileName, File parentDir) throws Exception { + + if (!FILENAME_PATTERN.matcher(fileName).matches()) { + throw new Exception("fileName format error: " + fileName); + } + // 获取文件名(含后缀) String prefix = fileName.substring(0, fileName.length() - 4); String suffix = fileName.substring(fileName.length() - 4);