From ec81dc46e957b9cd4cdf7528fa4f5ed2064b774d Mon Sep 17 00:00:00 2001 From: kerry Date: Wed, 30 Aug 2017 14:00:29 +0800 Subject: [PATCH] =?UTF-8?q?REPORT-3975=20=E6=8F=92=E4=BB=B6=E5=95=86?= =?UTF-8?q?=E5=9F=8E=E9=85=8D=E5=90=88=E6=8F=92=E4=BB=B6=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E5=85=BC=E5=AE=B9=E5=8F=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/extra/PluginOperateUtils.java | 12 +++++++--- .../src/com/fr/design/extra/PluginUtils.java | 22 +++++++++++++++++++ .../exe/callback/InstallFromDiskCallback.java | 2 +- 3 files changed, 32 insertions(+), 4 deletions(-) diff --git a/designer_base/src/com/fr/design/extra/PluginOperateUtils.java b/designer_base/src/com/fr/design/extra/PluginOperateUtils.java index a590a6712..7fe4101d3 100644 --- a/designer_base/src/com/fr/design/extra/PluginOperateUtils.java +++ b/designer_base/src/com/fr/design/extra/PluginOperateUtils.java @@ -140,7 +140,8 @@ public class PluginOperateUtils { String result = httpClient.getResponseText(); JSONObject jsonObject = new JSONObject(result); JSONArray jsonArray = jsonObject.getJSONArray("result"); - jsCallback.execute(jsonArray.toString()); + JSONArray resultJSONArray = PluginUtils.filterPluginsFromVersion(jsonArray); + jsCallback.execute(resultJSONArray.toString()); } catch (Exception e) { FRLogger.getLogger().error(e.getMessage()); } @@ -171,7 +172,8 @@ public class PluginOperateUtils { String result = httpClient.getResponseText(); JSONObject resultJSONObject = new JSONObject(result); JSONArray resultArr = resultJSONObject.getJSONArray("result"); - jsCallback.execute(resultArr.toString()); + JSONArray resultJSONArray = PluginUtils.filterPluginsFromVersion(resultArr); + jsCallback.execute(resultJSONArray.toString()); } catch (Exception e) { FRLogger.getLogger().error(e.getMessage()); } @@ -190,7 +192,9 @@ public class PluginOperateUtils { try { HttpClient httpClient = new HttpClient(plistUrl.toString()); String result = httpClient.getResponseText(); - jsCallback.execute(result); + JSONArray jsonArray = new JSONArray(result); + JSONArray resultJSONArray = PluginUtils.filterPluginsFromVersion(jsonArray); + jsCallback.execute(resultJSONArray.toString()); } catch (Exception e) { FRLogger.getLogger().error(e.getMessage()); } @@ -300,4 +304,6 @@ public class PluginOperateUtils { return pluginInfo.toString(); } + + } diff --git a/designer_base/src/com/fr/design/extra/PluginUtils.java b/designer_base/src/com/fr/design/extra/PluginUtils.java index 186b466dd..7ef3eaaad 100644 --- a/designer_base/src/com/fr/design/extra/PluginUtils.java +++ b/designer_base/src/com/fr/design/extra/PluginUtils.java @@ -7,6 +7,8 @@ import com.fr.general.SiteCenter; import com.fr.general.http.HttpClient; import com.fr.json.JSONArray; import com.fr.json.JSONObject; +import com.fr.plugin.basic.version.Version; +import com.fr.plugin.basic.version.VersionIntervalFactory; import com.fr.plugin.context.PluginContext; import com.fr.plugin.context.PluginMarker; @@ -184,4 +186,24 @@ public class PluginUtils { } return null; } + + /** + * 在不同设计器版本下展示不同插件 + * @return 插件 + */ + public static JSONArray filterPluginsFromVersion(JSONArray oriJSONArray) throws Exception{ + JSONArray resultJSONArray = JSONArray.create(); + for(int i = 0; i < oriJSONArray.length(); i++){ + JSONObject jo = oriJSONArray.getJSONObject(i); + String envVersion = jo.optString("env-version"); + if(isCompatibleCurrentEnv(envVersion)){ + resultJSONArray.put(jo); + } + } + return resultJSONArray; + } + + private static boolean isCompatibleCurrentEnv(String envVersion){ + return VersionIntervalFactory.create(envVersion).contain(Version.currentEnvVersion()); + } } diff --git a/designer_base/src/com/fr/design/extra/exe/callback/InstallFromDiskCallback.java b/designer_base/src/com/fr/design/extra/exe/callback/InstallFromDiskCallback.java index 28c2c139d..834f4370d 100644 --- a/designer_base/src/com/fr/design/extra/exe/callback/InstallFromDiskCallback.java +++ b/designer_base/src/com/fr/design/extra/exe/callback/InstallFromDiskCallback.java @@ -77,7 +77,7 @@ public class InstallFromDiskCallback extends AbstractPluginTaskCallback { }else { jsCallback.execute("failed"); FRLogger.getLogger().info(Inter.getLocText("FR-Plugin_Install_Failed")); - JOptionPane.showMessageDialog(null, PluginUtils.getMessageByErrorCode(result.errorCode()), Inter.getLocText("FR-Designer-Plugin_Warning"), JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(null, PluginUtils.getMessageByErrorCode(result.errorCode()), Inter.getLocText("FR-Plugin_Install_Failed"), JOptionPane.ERROR_MESSAGE); } } }