From 21a58f1a0b37c7f104fcc67b3ee7d22281938a68 Mon Sep 17 00:00:00 2001 From: "Destiny.Lin" Date: Fri, 14 Jul 2023 15:49:18 +0800 Subject: [PATCH] =?UTF-8?q?REPORT-98345=20=E7=89=88=E6=9C=AC=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E4=B8=89=E6=9C=9F=20=E4=BF=AE=E6=94=B9=E7=BA=BF?= =?UTF-8?q?=E7=A8=8B=E6=B1=A0=EF=BC=8C=E4=BF=AE=E6=94=B9=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E8=A7=84=E8=8C=83=EF=BC=8C=E6=B7=BB=E5=8A=A0=E9=83=A8=E5=88=86?= =?UTF-8?q?=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/file/TemplateTreePane.java | 17 +++--- .../DesignerFrameFileDealerPane.java | 6 +-- .../fr/design/mainframe/vcs/VcsService.java | 53 +++++-------------- 3 files changed, 28 insertions(+), 48 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/file/TemplateTreePane.java b/designer-base/src/main/java/com/fr/design/file/TemplateTreePane.java index 8951ab3657..fbfe52bdba 100644 --- a/designer-base/src/main/java/com/fr/design/file/TemplateTreePane.java +++ b/designer-base/src/main/java/com/fr/design/file/TemplateTreePane.java @@ -62,6 +62,7 @@ import java.util.Objects; import java.util.Observable; import java.util.Observer; import java.util.Set; +import java.util.concurrent.ExecutionException; import java.util.stream.Collectors; import org.jetbrains.annotations.Nullable; @@ -399,10 +400,10 @@ public class TemplateTreePane extends JPanel implements FileOperations { } private void deleteNodes(Collection nodes) { - new SwingWorker(){ - boolean success = true; + new SwingWorker(){ @Override - protected Void doInBackground() throws Exception { + protected Boolean doInBackground() throws Exception { + boolean success = true; for (ExpandMutableTreeNode treeNode : nodes) { Object node = treeNode.getUserObject(); if (node instanceof FileNode) { @@ -417,12 +418,16 @@ public class TemplateTreePane extends JPanel implements FileOperations { } } } - return null; + return success; } @Override protected void done() { - if (!success) { - showErrorDialog(); + try { + if (!get()) { + showErrorDialog(); + } + } catch (InterruptedException | ExecutionException e) { + throw new RuntimeException(e); } } }.execute(); diff --git a/designer-base/src/main/java/com/fr/design/mainframe/DesignerFrameFileDealerPane.java b/designer-base/src/main/java/com/fr/design/mainframe/DesignerFrameFileDealerPane.java index 1309d311a9..6ef68afe7e 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/DesignerFrameFileDealerPane.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/DesignerFrameFileDealerPane.java @@ -336,7 +336,7 @@ public class DesignerFrameFileDealerPane extends JPanel implements FileToolbarSt vcsAction.setName(Toolkit.i18nText("Fine-Design_Vcs_NotSupportRemote")); } toolbarDef.addShortCut(vcsAction); - //新版本加个回收站 + //11.0.19及其之后加入回收站逻辑 if (!VcsHelper.getInstance().isLegacyMode()) { recycleAction = new RecycleAction(); toolbarDef.addShortCut(recycleAction); @@ -502,9 +502,9 @@ public class DesignerFrameFileDealerPane extends JPanel implements FileToolbarSt String path = DesignerFrameFileDealerPane.getInstance().getSelectedOperation().getFilePath(); path = StableUtils.pathJoin(ProjectConstants.REPORTLETS_NAME, path); if (VcsHelper.getInstance().isLegacyMode()) { - boolean isCurrentEditing = isCurrentEditing(path); + boolean currentEditing = isCurrentEditing(path); // 如果模板已经打开了,关掉,避免出现2个同名tab(1个是模板,1个是版本) - closeOpenedTemplate(path, isCurrentEditing); + closeOpenedTemplate(path, currentEditing); FileVersionsPanel fileVersionTablePanel = FileVersionsPanel.getInstance(); fileVersionTablePanel.showFileVersionsPane(); stateChange(); diff --git a/designer-base/src/main/java/com/fr/design/mainframe/vcs/VcsService.java b/designer-base/src/main/java/com/fr/design/mainframe/vcs/VcsService.java index 0391d15cbf..e83b0212e9 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/vcs/VcsService.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/vcs/VcsService.java @@ -21,11 +21,16 @@ import java.util.concurrent.Executors; */ public class VcsService { - private static final String RESTORE = "VcsRestore"; - private static final String DELETE = "VcsDelete"; - private static final String UPDATE = "VcsUpdate"; + private static final String SERVICE = "VcsService"; private static final VcsService INSTANCE = new VcsService(); + private static final ExecutorService executorService = Executors.newFixedThreadPool(5, new NamedThreadFactory(SERVICE)); + + /** + * 获取单例 + * + * @return + */ public static VcsService getInstance() { return INSTANCE; } @@ -53,10 +58,8 @@ public class VcsService { * @param vcsEntities */ public void doRestore(List vcsEntities) { - ExecutorService executorService = null; try { - executorService = Executors.newSingleThreadExecutor(new NamedThreadFactory(RESTORE)); - executorService.submit(new Runnable() { + executorService.execute(new Runnable() { @Override public void run() { VcsOperator operator = WorkContext.getCurrent().get(VcsOperator.class); @@ -68,10 +71,6 @@ public class VcsService { }); } catch (Exception e) { FineLoggerFactory.getLogger().error(e.getMessage(), e); - } finally { - if (executorService != null) { - executorService.shutdown(); - } } } @@ -82,10 +81,8 @@ public class VcsService { * @param vcsEntities */ public void doDelete(List vcsEntities, boolean all) { - ExecutorService executorService = null; try { - executorService = Executors.newSingleThreadExecutor(new NamedThreadFactory(DELETE)); - executorService.submit(new Runnable() { + executorService.execute(new Runnable() { @Override public void run() { VcsOperator operator = WorkContext.getCurrent().get(VcsOperator.class); @@ -101,10 +98,6 @@ public class VcsService { }); } catch (Exception e) { FineLoggerFactory.getLogger().error(e.getMessage(), e); - } finally { - if (executorService != null) { - executorService.shutdown(); - } } } @@ -114,10 +107,8 @@ public class VcsService { * @param entity VcsEntity */ public void deleteEntity(VcsEntity entity) { - ExecutorService executorService = null; try { - executorService = Executors.newSingleThreadExecutor(new NamedThreadFactory(DELETE)); - executorService.submit(new Runnable() { + executorService.execute(new Runnable() { @Override public void run() { VcsOperator vcsOperator = WorkContext.getCurrent().get(VcsOperator.class); @@ -127,10 +118,6 @@ public class VcsService { }); } catch (Exception e) { FineLoggerFactory.getLogger().error(e.getMessage(), e); - } finally { - if (executorService != null) { - executorService.shutdown(); - } } } @@ -141,10 +128,8 @@ public class VcsService { * @param version 版本号 */ public void deleteEntity(String fileName, int version) { - ExecutorService executorService = null; try { - executorService = Executors.newSingleThreadExecutor(new NamedThreadFactory(DELETE)); - executorService.submit(new Runnable() { + executorService.execute(new Runnable() { @Override public void run() { VcsOperator vcsOperator = WorkContext.getCurrent().get(VcsOperator.class); @@ -153,23 +138,17 @@ public class VcsService { }); } catch (Exception e) { FineLoggerFactory.getLogger().error(e.getMessage(), e); - } finally { - if (executorService != null) { - executorService.shutdown(); - } } } /** * 更新版本 * - * @param entity 版本 + * @param entity 版本 */ public void updateEntityAnnotation(VcsEntity entity) { - ExecutorService executorService = null; try { - executorService = Executors.newSingleThreadExecutor(new NamedThreadFactory(UPDATE)); - executorService.submit(new Runnable() { + executorService.execute(new Runnable() { @Override public void run() { VcsOperator vcsOperator = WorkContext.getCurrent().get(VcsOperator.class); @@ -178,10 +157,6 @@ public class VcsService { }); } catch (Exception e) { FineLoggerFactory.getLogger().error(e.getMessage(), e); - } finally { - if (executorService != null) { - executorService.shutdown(); - } } } }