From 69384a369d11b4c58b51af4c2671028aa631f8b2 Mon Sep 17 00:00:00 2001 From: hades Date: Mon, 8 Mar 2021 17:30:02 +0800 Subject: [PATCH 1/2] =?UTF-8?q?REPORT-48204=20=E3=80=9010.0.15=E3=80=91JDK?= =?UTF-8?q?11=E8=AE=BE=E8=AE=A1=E5=99=A8=E9=81=97=E7=95=99=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/os/impl/PMDialogAction.java | 4 +-- .../com/fr/design/os/impl/SupportOSImpl.java | 28 +++++++++++++++++++ .../fr/design/utils/gui/GUIPaintUtils.java | 6 ++-- .../fr/design/os/impl/SupportOSImplTest.java | 10 +++++++ 4 files changed, 44 insertions(+), 4 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/os/impl/PMDialogAction.java b/designer-base/src/main/java/com/fr/design/os/impl/PMDialogAction.java index 7e74e7651..990e73ee9 100644 --- a/designer-base/src/main/java/com/fr/design/os/impl/PMDialogAction.java +++ b/designer-base/src/main/java/com/fr/design/os/impl/PMDialogAction.java @@ -19,11 +19,11 @@ public class PMDialogAction implements OSBasedAction { private static String PLUGIN_MANAGER_ROUTE = "#management/plugin"; @Override public void execute(Object... objects) { - if(Arch.getArch() == Arch.ARM || OperatingSystem.isLinux()){ + if(Arch.getArch() == Arch.ARM || OperatingSystem.isLinux() || SupportOSImpl.MACOS_WEB_PLUGIN_MANAGEMENT.support()){ DesignUtils.visitEnvServerByParameters( PLUGIN_MANAGER_ROUTE,null,null); return; } - if (ServerPreferenceConfig.getInstance().isUseOptimizedUPM() && JdkVersion.LE_8.support()) { + if (ServerPreferenceConfig.getInstance().isUseOptimizedUPM() || SupportOSImpl.MACOS_NEW_PLUGIN_MANAGEMENT.support()) { UpmFinder.showUPMDialog(); } else { WebViewDlgHelper.createPluginDialog(); diff --git a/designer-base/src/main/java/com/fr/design/os/impl/SupportOSImpl.java b/designer-base/src/main/java/com/fr/design/os/impl/SupportOSImpl.java index 88fe2a275..a25d2606a 100644 --- a/designer-base/src/main/java/com/fr/design/os/impl/SupportOSImpl.java +++ b/designer-base/src/main/java/com/fr/design/os/impl/SupportOSImpl.java @@ -1,6 +1,7 @@ package com.fr.design.os.impl; import com.fr.base.FRContext; +import com.fr.design.jdk.JdkVersion; import com.fr.general.CloudCenter; import com.fr.general.GeneralContext; import com.fr.json.JSON; @@ -124,6 +125,33 @@ public enum SupportOSImpl implements SupportOS { public boolean support() { return OperatingSystem.isWindows(); } + }, + + MACOS_NEW_PLUGIN_MANAGEMENT { + @Override + public boolean support() { + return JdkVersion.GE_9.support() && OperatingSystem.isMacos() && getMacOsVersion() < BIG_SUR_VERSION_NUMBER; + } + }, + + + MACOS_WEB_PLUGIN_MANAGEMENT { + @Override + public boolean support() { + return JdkVersion.GE_9.support() && OperatingSystem.isMacos() && getMacOsVersion() >= BIG_SUR_VERSION_NUMBER; + } + }; + + private static final int BIG_SUR_VERSION_NUMBER = 16; + + protected int getMacOsVersion() { + String version = System.getProperty("os.version"); + String[] versionSlice = version.split("\\."); + try { + return Integer.parseInt(versionSlice[1]); + } catch (Exception ignored) { + return 0; + } } } diff --git a/designer-base/src/main/java/com/fr/design/utils/gui/GUIPaintUtils.java b/designer-base/src/main/java/com/fr/design/utils/gui/GUIPaintUtils.java index 30984197c..c4efc0282 100644 --- a/designer-base/src/main/java/com/fr/design/utils/gui/GUIPaintUtils.java +++ b/designer-base/src/main/java/com/fr/design/utils/gui/GUIPaintUtils.java @@ -1,6 +1,5 @@ package com.fr.design.utils.gui; -import com.fr.base.BaseUtils; import com.fr.base.vcs.DesignerMode; import com.fr.design.constants.UIConstants; import com.fr.stable.Constants; @@ -40,7 +39,10 @@ public class GUIPaintUtils { g2d.drawLine(x, y, x, height - 1); g2d.drawLine(x, height - 1, x + 3, height - 1); } else { - g2d.drawRoundRect(x, y, width - 1, height - 1, UIConstants.ARC, UIConstants.ARC); + double offsetX = Math.min(GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getDefaultConfiguration().getDefaultTransform().getScaleX() - 1, 0.5d); + double offsetY = Math.min(GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getDefaultConfiguration().getDefaultTransform().getScaleY() - 1, 0.5d); + Shape shape = new RoundRectangle2D.Double(x + offsetX, y + offsetY, width - 1d, height - 1d, UIConstants.ARC, UIConstants.ARC); + g2d.draw(shape); } g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_OFF); } else { diff --git a/designer-base/src/test/java/com/fr/design/os/impl/SupportOSImplTest.java b/designer-base/src/test/java/com/fr/design/os/impl/SupportOSImplTest.java index 188753797..ee0804d36 100644 --- a/designer-base/src/test/java/com/fr/design/os/impl/SupportOSImplTest.java +++ b/designer-base/src/test/java/com/fr/design/os/impl/SupportOSImplTest.java @@ -6,6 +6,7 @@ import org.junit.Assert; import org.junit.Test; import java.util.Locale; +import org.powermock.reflect.Whitebox; /** * @author hades @@ -21,4 +22,13 @@ public class SupportOSImplTest extends TestCase { Assert.assertFalse(SupportOSImpl.AUTOPUSHUPDATE.support()); } + @Test + public void testGetMacOsVersion() throws Exception { + String backUp = System.getProperty("os.version"); + System.setProperty("os.version", "10.16"); + int number = Whitebox.invokeMethod(SupportOSImpl.MACOS_WEB_PLUGIN_MANAGEMENT, "getMacOsVersion"); + Assert.assertEquals(16, number); + System.setProperty("os.version", backUp); + } + } \ No newline at end of file From aeeb2f15cef5669fdf3a8dc30358fea76740db5f Mon Sep 17 00:00:00 2001 From: "Henry.Wang" Date: Tue, 9 Mar 2021 16:13:23 +0800 Subject: [PATCH 2/2] =?UTF-8?q?REPORT-48933=20=E8=AE=BE=E8=AE=A1=E5=99=A8?= =?UTF-8?q?=E8=8F=9C=E5=8D=95-=E7=A4=BE=E5=8C=BA=E4=B8=8B=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E2=80=9C=E5=B7=A5=E5=8D=95=E4=B8=AD=E5=BF=83=E2=80=9D?= =?UTF-8?q?=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../community/WorkOrderCenterAction.java | 26 ++++++++++++++++++ .../mainframe/toolbar/ToolBarMenuDock.java | 14 ++-------- .../fr/design/images/bbs/workOrderCenter.png | Bin 0 -> 207 bytes .../images/bbs/workOrderCenter_normal.svg | 7 +++++ 4 files changed, 35 insertions(+), 12 deletions(-) create mode 100644 designer-base/src/main/java/com/fr/design/actions/community/WorkOrderCenterAction.java create mode 100644 designer-base/src/main/resources/com/fr/design/images/bbs/workOrderCenter.png create mode 100644 designer-base/src/main/resources/com/fr/design/images/bbs/workOrderCenter_normal.svg diff --git a/designer-base/src/main/java/com/fr/design/actions/community/WorkOrderCenterAction.java b/designer-base/src/main/java/com/fr/design/actions/community/WorkOrderCenterAction.java new file mode 100644 index 000000000..d556548c1 --- /dev/null +++ b/designer-base/src/main/java/com/fr/design/actions/community/WorkOrderCenterAction.java @@ -0,0 +1,26 @@ +package com.fr.design.actions.community; + + +import com.fr.design.i18n.Toolkit; +import com.fr.design.utils.BrowseUtils; +import com.fr.general.CloudCenter; + +import java.awt.event.ActionEvent; + +/** + * @Description 工单中心 + * @Author Henry.Wang + * @Date 2021/3/8 14:02 + **/ +public class WorkOrderCenterAction extends UpAction { + public WorkOrderCenterAction() { + this.setSmallIcon("/com/fr/design/images/bbs/workOrderCenter"); + this.setName(Toolkit.i18nText("Fine-Design_Basic_Commuinity_Work_Order_Center")); + } + + @Override + public void actionPerformed(ActionEvent arg0) { + String url = CloudCenter.getInstance().acquireUrlByKind("bbs.work.order.center"); + BrowseUtils.browser(url); + } +} \ No newline at end of file diff --git a/designer-base/src/main/java/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java b/designer-base/src/main/java/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java index 33a2aaadf..aca9bcc36 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java @@ -9,17 +9,7 @@ import com.fr.design.DesignState; import com.fr.design.DesignerEnvManager; import com.fr.design.ExtraDesignClassManager; import com.fr.design.actions.UpdateAction; -import com.fr.design.actions.community.BBSAction; -import com.fr.design.actions.community.BugAction; -import com.fr.design.actions.community.BugNeedAction; -import com.fr.design.actions.community.CenterAction; -import com.fr.design.actions.community.FacebookFansAction; -import com.fr.design.actions.community.NeedAction; -import com.fr.design.actions.community.QuestionAction; -import com.fr.design.actions.community.SignAction; -import com.fr.design.actions.community.TechSolutionAction; -import com.fr.design.actions.community.TechSupportAction; -import com.fr.design.actions.community.VideoAction; +import com.fr.design.actions.community.*; import com.fr.design.actions.file.CloseCurrentTemplateAction; import com.fr.design.actions.file.ExitDesignerAction; import com.fr.design.actions.file.OpenRecentReportMenuDef; @@ -625,7 +615,7 @@ public abstract class ToolBarMenuDock { }, SupportLocaleImpl.TECH_SUPPORT_COMMUNITY); shortCuts.add(SeparatorDef.DEFAULT); - + shortCuts.add(new WorkOrderCenterAction()); shortCuts.add(new CenterAction()); shortCuts.add(new SignAction()); LocaleCenter.buildAction(new LocaleAction() { diff --git a/designer-base/src/main/resources/com/fr/design/images/bbs/workOrderCenter.png b/designer-base/src/main/resources/com/fr/design/images/bbs/workOrderCenter.png new file mode 100644 index 0000000000000000000000000000000000000000..6374a0e8d9e90c578f3b039a17da59c96272bdee GIT binary patch literal 207 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;So-U3d z7J|tM3j_=feUX-){il6n=fd;zY?-ffhxvCgp2(Wnv5|MalvvKB6J`phlP#n*I@Q!5c2enNAo)M@L_Lf4}}sdcu$WQfUkqHzuT}sn{f8TEXTG56^!%aH)gi&Y*Lb9XjyN=_P0WYALt?mPgg&ebxsLQ E0N?6NH2?qr literal 0 HcmV?d00001 diff --git a/designer-base/src/main/resources/com/fr/design/images/bbs/workOrderCenter_normal.svg b/designer-base/src/main/resources/com/fr/design/images/bbs/workOrderCenter_normal.svg new file mode 100644 index 000000000..da3a6a3a9 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/bbs/workOrderCenter_normal.svg @@ -0,0 +1,7 @@ + + + icon/社区/工单中心_normal + + + + \ No newline at end of file