diff --git a/designer-base/src/main/java/com/fr/design/DesignerEnvManager.java b/designer-base/src/main/java/com/fr/design/DesignerEnvManager.java index 199834fb7..43d3edd35 100644 --- a/designer-base/src/main/java/com/fr/design/DesignerEnvManager.java +++ b/designer-base/src/main/java/com/fr/design/DesignerEnvManager.java @@ -1021,6 +1021,14 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter, AsyncXmlReada designerLoginConfigManager.setUseOldVersionLogin(useOldVersionLogin); } + public boolean isUseNewPluginFirst() { + return designerLoginConfigManager.isUseNewPluginFirst(); + } + + public void setUseNewPluginFirst(boolean useNewPluginFirst) { + designerLoginConfigManager.setUseNewPluginFirst(useNewPluginFirst); + } + /** * 内置服务器是否使用时启动 * diff --git a/designer-base/src/main/java/com/fr/design/actions/file/PreferencePane.java b/designer-base/src/main/java/com/fr/design/actions/file/PreferencePane.java index 46485409b..3da135e7f 100644 --- a/designer-base/src/main/java/com/fr/design/actions/file/PreferencePane.java +++ b/designer-base/src/main/java/com/fr/design/actions/file/PreferencePane.java @@ -811,8 +811,7 @@ public class PreferencePane extends BasicPane { this.portEditor.setValue(new Integer(designerEnvManager.getEmbedServerPort())); if (useOptimizedUPMCheckbox != null) { - useOptimizedUPMCheckbox.setSelected(ServerPreferenceConfig.getInstance().isUseOptimizedUPM() - || DesignerEnvManager.getEnvManager().isUseOptimizedUPM4Adapter()); + useOptimizedUPMCheckbox.setSelected(checkOptimizedUPMUse()); } if (useNewVersionLoginCheckbox != null) { @@ -856,6 +855,15 @@ public class PreferencePane extends BasicPane { this.startupPageEnabledCheckBox.setSelected(designerEnvManager.isStartupPageEnabled()); } + private boolean checkOptimizedUPMUse() { + //如果是没手动配置过则默认开启 + //isUseNewPluginFirst如果为true说明没手动配置过,直接开启 + //走到这里说明checkBox不为空,机型肯定符合 + return DesignerEnvManager.getEnvManager().isUseNewPluginFirst() + || ServerPreferenceConfig.getInstance().isUseOptimizedUPM() + || DesignerEnvManager.getEnvManager().isUseOptimizedUPM4Adapter(); + } + private int chooseCase(int sign) { switch (sign) { case 0: @@ -913,7 +921,10 @@ public class PreferencePane extends BasicPane { designerEnvManager.setJoinProductImprove(this.joinProductImproveCheckBox.isSelected()); designerEnvManager.setEmbedServerLazyStartup(this.embedServerLazyStartupCheckBox.isSelected()); designerEnvManager.setImageCompress(this.imageCompressPanelCheckBox.isSelected()); - designerEnvManager.setUseOptimizedUPM4Adapter(this.useOptimizedUPMCheckbox != null && this.useOptimizedUPMCheckbox.isSelected()); + boolean optimizedUPMFlag = this.useOptimizedUPMCheckbox != null && this.useOptimizedUPMCheckbox.isSelected(); + designerEnvManager.setUseOptimizedUPM4Adapter(optimizedUPMFlag); + //只有取消掉使用新插件管理器这个选项才需要把useNewPluginFirst置false(意味着用户手动配置了,如果勾选着的话,这个useNewPluginFirst为true就行了) + designerEnvManager.setUseNewPluginFirst(optimizedUPMFlag); designerEnvManager.setCloudAnalyticsDelay(this.cloudAnalyticsDelayCheckBox.isSelected()); VcsConfigManager vcsConfigManager = designerEnvManager.getVcsConfigManager(); vcsConfigManager.setSaveInterval(this.saveIntervalEditor.getValue()); diff --git a/designer-base/src/main/java/com/fr/design/extra/PluginOperateUtils.java b/designer-base/src/main/java/com/fr/design/extra/PluginOperateUtils.java index 8baccba84..1248dea6e 100644 --- a/designer-base/src/main/java/com/fr/design/extra/PluginOperateUtils.java +++ b/designer-base/src/main/java/com/fr/design/extra/PluginOperateUtils.java @@ -112,27 +112,7 @@ public class PluginOperateUtils { } - /** - * 批量启用或禁用插件 - * - * @param pluginIDs 要处理的插件信息 - * @param jsCallback 回调函数 - */ - public static void setPluginActive(JSArray pluginIDs, JSCallback jsCallback) { - SwingUtilities.invokeLater(new Runnable() { - @Override - public void run() { - int len = pluginIDs.length(); - BatchModifyStatusCallback modifyStatusCallback = new BatchModifyStatusCallback(jsCallback, len); - for (int i = 0; i < len; i++) { - String pluginInfo = pluginIDs.get(i).asString().getValue(); - PluginMarker pluginMarker = PluginUtils.createPluginMarker(pluginInfo); - dealWithPluginActive(pluginMarker, modifyStatusCallback); - } - } - }); - } private static void dealWithPluginActive(PluginMarker pluginMarker, BatchModifyStatusCallback modifyStatusCallback) { PluginContext plugin = PluginManager.getContext(pluginMarker); @@ -180,6 +160,27 @@ public class PluginOperateUtils { }); } + /** + * 批量启用或禁用插件 + * + * @param pluginIDs 要处理的插件信息 + * @param jsCallback 回调函数 + */ + public static void setPluginActive(List pluginIDs, JSCallback jsCallback) { + SwingUtilities.invokeLater(new Runnable() { + + @Override + public void run() { + int len = pluginIDs.size(); + BatchModifyStatusCallback modifyStatusCallback = new BatchModifyStatusCallback(jsCallback, len); + for (String pluginInfo : pluginIDs) { + PluginMarker pluginMarker = PluginUtils.createPluginMarker(pluginInfo); + dealWithPluginActive(pluginMarker, modifyStatusCallback); + } + } + }); + } + public static void uninstallPlugin(final String pluginInfo, final boolean isForce, final JSCallback jsCallback) { SwingUtilities.invokeLater(new Runnable() { diff --git a/designer-base/src/main/java/com/fr/design/login/config/DesignerLoginConfigManager.java b/designer-base/src/main/java/com/fr/design/login/config/DesignerLoginConfigManager.java index b0fb0e292..35e97add6 100644 --- a/designer-base/src/main/java/com/fr/design/login/config/DesignerLoginConfigManager.java +++ b/designer-base/src/main/java/com/fr/design/login/config/DesignerLoginConfigManager.java @@ -75,6 +75,13 @@ public class DesignerLoginConfigManager implements XMLReadable, XMLWriter { */ private boolean useOldVersionLogin = false; + /** + * 是否手动配置过新插件管理 + *
  • 11.0.18版本开始全部认为没有手动配置过,符合机型的都默认开启新插件管理,如果需要关闭需要再次手动配置
  • + *
  • 如果手动配置过则置为false
  • + */ + private boolean useNewPluginFirst = true; + private DesignerLoginConfigManager() { } @@ -103,6 +110,7 @@ public class DesignerLoginConfigManager implements XMLReadable, XMLWriter { this.setLoginRemindBeforeJumpBBS(reader.getAttrAsBoolean("loginRemindBeforeJumpBBS", true)); this.setPluginRemindOnFirstLaunch(reader.getAttrAsBoolean("pluginRemindOnFirstLaunch", true)); this.setUseOldVersionLogin(reader.getAttrAsBoolean("useOldVersionLogin", false)); + this.setUseNewPluginFirst(reader.getAttrAsBoolean("useNewPluginFirst", true)); } } @@ -123,6 +131,7 @@ public class DesignerLoginConfigManager implements XMLReadable, XMLWriter { writer.attr("loginRemindBeforeJumpBBS", loginRemindBeforeJumpBBS); writer.attr("pluginRemindOnFirstLaunch", pluginRemindOnFirstLaunch); writer.attr("useOldVersionLogin", useOldVersionLogin); + writer.attr("useNewPluginFirst", useNewPluginFirst); writer.end(); } @@ -237,4 +246,12 @@ public class DesignerLoginConfigManager implements XMLReadable, XMLWriter { public void setUseOldVersionLogin(boolean useOldVersionLogin) { this.useOldVersionLogin = useOldVersionLogin; } + + public boolean isUseNewPluginFirst() { + return useNewPluginFirst; + } + + public void setUseNewPluginFirst(boolean useNewPluginFirst) { + this.useNewPluginFirst = useNewPluginFirst; + } } 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 16944da06..d4daa8f8b 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 @@ -24,12 +24,18 @@ public class PMDialogAction implements OSBasedAction { DesignUtils.visitEnvServerByParameters( PLUGIN_MANAGER_ROUTE,null,null); return; } - if (ServerPreferenceConfig.getInstance().isUseOptimizedUPM() - || SupportOSImpl.MACOS_NEW_PLUGIN_MANAGEMENT.support() - || DesignerEnvManager.getEnvManager().isUseOptimizedUPM4Adapter()) { + if (checkUPMSupport()) { UpmFinder.showUPMDialog(); } else { WebViewDlgHelper.createPluginDialog(); } } + + private boolean checkUPMSupport() { + return ServerPreferenceConfig.getInstance().isUseOptimizedUPM() + || SupportOSImpl.MACOS_NEW_PLUGIN_MANAGEMENT.support() + || DesignerEnvManager.getEnvManager().isUseOptimizedUPM4Adapter() + //默认开启 + || DesignerEnvManager.getEnvManager().isUseNewPluginFirst(); + } } diff --git a/designer-base/src/main/java/com/fr/design/upm/UpmBridge.java b/designer-base/src/main/java/com/fr/design/upm/UpmBridge.java index 34ae1ac00..8f44ae197 100644 --- a/designer-base/src/main/java/com/fr/design/upm/UpmBridge.java +++ b/designer-base/src/main/java/com/fr/design/upm/UpmBridge.java @@ -306,7 +306,12 @@ public class UpmBridge { @JSBridge public void setAllPluginActive(JSArray pluginIDs, final JSFunction callback) { JSCallback jsCallback = new JSCallback(UpmBrowserExecutor.create(window, callback)); - PluginOperateUtils.setPluginActive(pluginIDs, jsCallback); + List list = new ArrayList<>(); + int len = pluginIDs.length(); + for (int i = 0; i < len; i++) { + list.add(pluginIDs.get(i).asString().getValue()); + } + PluginOperateUtils.setPluginActive(list, jsCallback); } /** diff --git a/designer-base/src/main/java/com/fr/design/upm/UpmBridgeV7.java b/designer-base/src/main/java/com/fr/design/upm/UpmBridgeV7.java index a7714621b..f35ed11ac 100644 --- a/designer-base/src/main/java/com/fr/design/upm/UpmBridgeV7.java +++ b/designer-base/src/main/java/com/fr/design/upm/UpmBridgeV7.java @@ -28,7 +28,7 @@ import com.fr.stable.StringUtils; import com.teamdev.jxbrowser.js.JsAccessible; import com.teamdev.jxbrowser.js.JsFunction; import com.teamdev.jxbrowser.js.JsObject; - +import com.teamdev.jxbrowser.js.internal.JsArrayImpl; import javax.swing.JFileChooser; import javax.swing.SwingUtilities; import javax.swing.SwingWorker; @@ -265,6 +265,21 @@ public class UpmBridgeV7 extends UpmBridge { PluginOperateUtils.uninstallPlugin(pluginInfo, isForce, jsCallback); } + /** + * 批量修改选中的插件的活跃状态 + * + * @param pluginIDs 要处理的插件ID + * @param callback 回调函数 + */ + @JSBridge + @JsAccessible + public void setAllPluginActive(JsObject pluginIDs, final JsFunction callback) { + JSCallback jsCallback = new JSCallback(NewUpmBrowserExecutor.create(jsObject, callback)); + List array = ((JsArrayImpl) pluginIDs).toList(); + PluginOperateUtils.setPluginActive(array, jsCallback); + } + + /** * 从插件服务器上安装插件 *