From 182b9164dcda7cd6e67ad1ce7ab23d7865e2f662 Mon Sep 17 00:00:00 2001 From: hades Date: Wed, 11 Aug 2021 13:34:56 +0800 Subject: [PATCH] =?UTF-8?q?REPORT-55795=20=E3=80=9010.0.19=E3=80=91?= =?UTF-8?q?=E6=8A=A5=E9=94=99=E8=A7=84=E8=8C=83=E2=80=94=E2=80=94=E8=AE=BE?= =?UTF-8?q?=E8=AE=A1=E5=99=A8=E8=BF=9C=E7=A8=8B=E8=AE=BE=E8=AE=A1=E8=BF=9E?= =?UTF-8?q?=E6=8E=A5=E9=83=A8=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/fr/design/EnvChangeEntrance.java | 2 ++ .../fr/design/dialog/UIDetailErrorLinkDialog.java | 14 +++++++++++++- .../src/main/java/com/fr/env/HelpLink.java | 12 ++++++++++-- .../src/main/java/com/fr/env/RemoteEnvPane.java | 1 + .../com/fr/env/handler/impl/CancelHandler.java | 2 ++ .../com/fr/env/handler/impl/CommonHandler.java | 1 + 6 files changed, 29 insertions(+), 3 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/EnvChangeEntrance.java b/designer-base/src/main/java/com/fr/design/EnvChangeEntrance.java index 785f3b92b..606013ed1 100644 --- a/designer-base/src/main/java/com/fr/design/EnvChangeEntrance.java +++ b/designer-base/src/main/java/com/fr/design/EnvChangeEntrance.java @@ -20,6 +20,7 @@ import com.fr.design.notification.NotificationCenter; import com.fr.design.utils.DesignUtils; import com.fr.design.versioncheck.VersionCheckUtils; import com.fr.env.EnvListPane; +import com.fr.env.HelpLink; import com.fr.env.handler.RemoteDesignExceptionHandler; import com.fr.exit.DesignerExiter; import com.fr.general.GeneralUtils; @@ -139,6 +140,7 @@ public class EnvChangeEntrance { pluginErrorRemind(); } catch (Exception exception) { // 失败的处理 + HelpLink.setConnectionInfo(connectionInfo); RemoteDesignExceptionHandler.getInstance().handleInSwitch(exception, selectedEnv); return false; } diff --git a/designer-base/src/main/java/com/fr/design/dialog/UIDetailErrorLinkDialog.java b/designer-base/src/main/java/com/fr/design/dialog/UIDetailErrorLinkDialog.java index b487714f9..b9854c6bc 100644 --- a/designer-base/src/main/java/com/fr/design/dialog/UIDetailErrorLinkDialog.java +++ b/designer-base/src/main/java/com/fr/design/dialog/UIDetailErrorLinkDialog.java @@ -44,6 +44,7 @@ public class UIDetailErrorLinkDialog extends UIDialog { private static final int GAP_10 = 10; private static final String TAG_A_START = ""; private static final String TAG_A_END = ""; + private static final double SCALE = 1.2; private final Dimension dimension = new Dimension(300, 180); @@ -99,6 +100,7 @@ public class UIDetailErrorLinkDialog extends UIDialog { this.getContentPane().add(actionPane, BorderLayout.SOUTH); this.setSize(dimension); this.setResizable(false); + this.setModal(true); GUICoreUtils.centerWindow(this); } @@ -139,11 +141,21 @@ public class UIDetailErrorLinkDialog extends UIDialog { UILabel solutionLabel = new UILabel(solution); panel.add(solutionLabel, BorderLayout.CENTER); } - dimension.width = Math.max(maxWidth, GraphHelper.getWidth(solution, DesignUtils.getDefaultGUIFont())); + dimension.width = getMaxDimensionWidth(maxWidth, solution); return panel; } + private int getMaxDimensionWidth(int width, String solution) { + int maxWidth = GraphHelper.getWidth(solution, DesignUtils.getDefaultGUIFont()); + if (maxWidth >= width) { + maxWidth = (int) (SCALE * maxWidth); + } else { + maxWidth = width; + } + return maxWidth; + } + @Override public void checkValid() throws Exception { // do nothing diff --git a/designer-base/src/main/java/com/fr/env/HelpLink.java b/designer-base/src/main/java/com/fr/env/HelpLink.java index 87975761f..dda75a924 100644 --- a/designer-base/src/main/java/com/fr/env/HelpLink.java +++ b/designer-base/src/main/java/com/fr/env/HelpLink.java @@ -5,28 +5,36 @@ import com.fr.design.env.DesignerWorkspaceInfo; import com.fr.general.locale.LocaleCenter; import com.fr.general.locale.LocaleMark; import com.fr.locale.InterProviderFactory; +import com.fr.workspace.connect.WorkspaceConnectionInfo; import java.util.HashMap; import java.util.Map; /** + * 错误提示中的跳转链接管理 + * * @author hades * @version 10.0 * Created by hades on 2021/8/9 */ public class HelpLink { + private static WorkspaceConnectionInfo connectionInfo; + public static String getLink(String solution) { Map map = new HashMap<>(); String currentName = DesignerEnvManager.getEnvManager().getCurEnvName(); DesignerWorkspaceInfo workspaceInfo = DesignerEnvManager.getEnvManager().getWorkspaceInfo(currentName); LocaleMark linkMark = LocaleCenter.getMark(RemoteDesignLocaleMark.class); String link = linkMark.getValue(); - map.put(InterProviderFactory.getProvider().getLocText("Fine-Core_Remote_Design_Change_PassWord"), workspaceInfo.getConnection().getUrl() + RemoteWorkspaceURL.SYSTEM_LOGIN_PATH); + String url = connectionInfo == null ? workspaceInfo.getConnection().getUrl() : connectionInfo.getUrl(); + map.put(InterProviderFactory.getProvider().getLocText("Fine-Core_Remote_Design_Change_PassWord"), url + RemoteWorkspaceURL.SYSTEM_LOGIN_PATH); map.put(InterProviderFactory.getProvider().getLocText("Fine-Core_Remote_Design_Cert_Error_Solution"), link); map.put(InterProviderFactory.getProvider().getLocText("Fine-Core_Remote_Design_Connection_Unknown_Error_Solution"), link); map.put(InterProviderFactory.getProvider().getLocText("Fine-Core_Remote_Design_NetWork_Connection_Error_Solution"), link); return map.get(solution); } - + public static void setConnectionInfo(WorkspaceConnectionInfo connectionInfo) { + HelpLink.connectionInfo = connectionInfo; + } } diff --git a/designer-base/src/main/java/com/fr/env/RemoteEnvPane.java b/designer-base/src/main/java/com/fr/env/RemoteEnvPane.java index 1ea909ccc..6d34cd7c0 100644 --- a/designer-base/src/main/java/com/fr/env/RemoteEnvPane.java +++ b/designer-base/src/main/java/com/fr/env/RemoteEnvPane.java @@ -596,6 +596,7 @@ public class RemoteEnvPane extends BasicBeanPane { } } catch (Exception e) { dialog.dispose(); + HelpLink.setConnectionInfo(connection); RemoteDesignExceptionHandler.getInstance().handleInTest(e); } dialogDownPane.remove(cancelButton); diff --git a/designer-base/src/main/java/com/fr/env/handler/impl/CancelHandler.java b/designer-base/src/main/java/com/fr/env/handler/impl/CancelHandler.java index 28b324def..dc36cb4db 100644 --- a/designer-base/src/main/java/com/fr/env/handler/impl/CancelHandler.java +++ b/designer-base/src/main/java/com/fr/env/handler/impl/CancelHandler.java @@ -5,6 +5,8 @@ import com.fr.env.handler.ResultWrapper; import java.util.concurrent.CancellationException; /** + * 取消测试连接时的处理器 + * * @author hades * @version 10.0 * Created by hades on 2021/8/5 diff --git a/designer-base/src/main/java/com/fr/env/handler/impl/CommonHandler.java b/designer-base/src/main/java/com/fr/env/handler/impl/CommonHandler.java index 9449ba11e..dd6a1e52e 100644 --- a/designer-base/src/main/java/com/fr/env/handler/impl/CommonHandler.java +++ b/designer-base/src/main/java/com/fr/env/handler/impl/CommonHandler.java @@ -40,6 +40,7 @@ public class CommonHandler implements Handler { setLink(HelpLink.getLink(exceptionDescriptor.solution())). setThrowable(e).build(); detailErrorLinkDialog.setVisible(true); + HelpLink.setConnectionInfo(null); } }); }