package com.fr.startup.ui; import com.fr.base.svg.SVGIcon; import com.fr.design.env.DesignerWorkspaceType; import com.fr.log.FineLoggerFactory; import com.fr.stable.StringUtils; import javax.swing.Icon; import javax.swing.JComponent; import javax.swing.JRootPane; import java.net.URL; /** * created by Harrison on 2022/07/11 **/ public class StartupPageUtil { public static final int INVALID_PORT = -1; public static final String COLON = ":"; /** * 获取最近区域的 ICON * * @param workspaceBean 工作目录 * @return 图标 */ public static Icon getIcon4RecentAreaByWorkspace(StartupWorkspaceBean workspaceBean) { if (workspaceBean.getType() == DesignerWorkspaceType.Local) { return SVGIcon.readSVGIcon("/com/fr/design/startup/local_server_background_36.svg", 36, 36); } return SVGIcon.readSVGIcon("/com/fr/design/startup/remote_server_background_36.svg", 36, 36); } /** * 获取工作目录描述区域的 ICON * * @param workspaceBean 工作目录 * @return 图标 */ public static Icon getIcon4DescAreaByWorkspace(StartupWorkspaceBean workspaceBean) { if (workspaceBean.getType() == DesignerWorkspaceType.Local) { return SVGIcon.readSVGIcon("/com/fr/design/startup/local_server_background_28.svg", 28, 28); } return SVGIcon.readSVGIcon("/com/fr/design/startup/remote_server_background_28.svg", 28, 28); } /** * 返回 ip : port * * @param urlStr 完整的 url 值,例如 https://localhost:3090/xxx * @return localhost:3090 */ public static String getRemoteAddress(String urlStr) { try { if (StringUtils.isEmpty(urlStr)) { return StringUtils.EMPTY; } URL url = new URL(urlStr); String host = url.getHost(); int port = url.getPort(); if (port == INVALID_PORT) { return host; } return host + COLON + port; } catch (Exception e) { FineLoggerFactory.getLogger().debug(e.getMessage(), e); return urlStr; } } /** * 透明的背景,需要从根节点重绘 * * @param component 组件 */ public static void repaintAll(JComponent component) { JRootPane rootPane = component.getRootPane(); if (rootPane != null) { rootPane.repaint(); } } }