diff --git a/designer-base/src/main/java/com/fr/design/mainframe/vcs/VcsExceptionUtils.java b/designer-base/src/main/java/com/fr/design/mainframe/vcs/VcsExceptionUtils.java new file mode 100644 index 000000000..9ab310bba --- /dev/null +++ b/designer-base/src/main/java/com/fr/design/mainframe/vcs/VcsExceptionUtils.java @@ -0,0 +1,37 @@ +package com.fr.design.mainframe.vcs; + +import com.fr.design.i18n.Toolkit; + +import java.io.IOException; +import java.util.HashMap; + +/** + * 版本管理异常处理工具类 + * + * @author Destiny.Lin + * @since 11.0 + * Created on 2023/7/24 + */ +public class VcsExceptionUtils { + + public static final HashMap EXCEPTION_MAP = new HashMap() { + { + put(IOException.class, Toolkit.i18nText("Fine-Design_Vcs_Exception_IO")); + put(UnsupportedOperationException.class, Toolkit.i18nText("Fine-Design_Vcs_Exception_Un_Support")); + } + }; + + + /** + * 根据异常返回结果描述文案 + */ + public static String createDetailByException(Exception e) { + for (Class key : EXCEPTION_MAP.keySet()) { + if (key.isAssignableFrom(e.getClass())) { + return EXCEPTION_MAP.get(key); + } + } + return Toolkit.i18nText("Fine-Design_Vcs_Exception_Unknown"); + } + +} diff --git a/designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/VcsMovePanel.java b/designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/VcsMovePanel.java index c724c16b8..211a3d24a 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/VcsMovePanel.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/VcsMovePanel.java @@ -15,6 +15,7 @@ import com.fr.design.i18n.Toolkit; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.layout.VerticalFlowLayout; import com.fr.design.mainframe.DesignerContext; +import com.fr.design.mainframe.vcs.VcsExceptionUtils; import com.fr.design.mainframe.vcs.common.VcsHelper; import com.fr.design.utils.DesignUtils; import com.fr.design.utils.ThemeUtils; @@ -375,7 +376,7 @@ public class VcsMovePanel extends BasicPane { return parentPane; } - private void initFailedPane() { + private void initFailedPane(String detail) { JPanel failedPane = new JPanel(); JPanel body = FRGUIPaneFactory.createY_AXISBoxInnerContainer_L_Pane(); failedButton = new UIButton(Toolkit.i18nText("Fine-Design_Vcs_Move_Failed_Go")); @@ -383,7 +384,7 @@ public class VcsMovePanel extends BasicPane { failedIconLabel = new UILabel(IconUtils.readIcon("/com/fr/design/vcs/move_failed.svg")); failedLabel = new UILabel(Toolkit.i18nText("Fine-Design_Vcs_Move_Failed")); failedLabel.setFont(FONT); - failedTipLabel = new UILabel(Toolkit.i18nText("Fine-Design_Vcs_Move_Failed_Tip")); + failedTipLabel = new UILabel(Toolkit.i18nText("Fine-Design_Vcs_Move_Failed_Tip", detail)); initStatusPane(failedTipLabel, failedIconLabel, failedLabel, failedButton, body, FAILED, failedPane); } @@ -409,6 +410,7 @@ public class VcsMovePanel extends BasicPane { private class MoveWorker extends SwingWorker { private VcsMoveStrategy strategy; + private String detail = StringUtils.EMPTY; public MoveWorker(VcsMoveStrategy strategy) { this.strategy = strategy; @@ -431,6 +433,7 @@ public class VcsMovePanel extends BasicPane { }, strategy); } catch (Exception e) { VcsMoveService.getInstance().stopMoving(); + detail = VcsExceptionUtils.createDetailByException(e); return false; } return true; @@ -450,7 +453,7 @@ public class VcsMovePanel extends BasicPane { VcsMovePanel.this.getParentCard().show(getParentPane(), SUCCESS); VcsHelper.getInstance().updateLegacyMode(); } else { - initFailedPane(); + initFailedPane(detail); VcsMovePanel.this.getParentCard().show(getParentPane(), FAILED); FineLoggerFactory.getLogger().error("[VcsV2] Vcs move failed!"); }