Browse Source

Merging in latest from upstream (ST/design:refs/heads/release/9.0)

* commit '7fd15e3191e136c39acd56a585d7cdc9a5434b92':
  REPORT-3975 插件商城配合插件版本兼容变化
master
MoMeak 7 years ago
parent
commit
682c174ce1
  1. 12
      designer_base/src/com/fr/design/extra/PluginOperateUtils.java
  2. 22
      designer_base/src/com/fr/design/extra/PluginUtils.java
  3. 2
      designer_base/src/com/fr/design/extra/exe/callback/InstallFromDiskCallback.java

12
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();
}
}

22
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());
}
}

2
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);
}
}
}

Loading…
Cancel
Save