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 8951ab365..fbfe52bdb 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 1309d311a..6ef68afe7 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 0391d15cb..e83b0212e 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(); - } } } }