|
|
@ -2,6 +2,7 @@ package com.fr.design.extra; |
|
|
|
|
|
|
|
|
|
|
|
import com.fr.base.TemplateUtils; |
|
|
|
import com.fr.base.TemplateUtils; |
|
|
|
import com.fr.design.dialog.FineJOptionPane; |
|
|
|
import com.fr.design.dialog.FineJOptionPane; |
|
|
|
|
|
|
|
import com.fr.design.i18n.Toolkit; |
|
|
|
import com.fr.general.CloudCenter; |
|
|
|
import com.fr.general.CloudCenter; |
|
|
|
import com.fr.general.http.HttpClient; |
|
|
|
import com.fr.general.http.HttpClient; |
|
|
|
import com.fr.json.JSONArray; |
|
|
|
import com.fr.json.JSONArray; |
|
|
@ -12,8 +13,8 @@ import com.fr.plugin.basic.version.Version; |
|
|
|
import com.fr.plugin.basic.version.VersionIntervalFactory; |
|
|
|
import com.fr.plugin.basic.version.VersionIntervalFactory; |
|
|
|
import com.fr.plugin.context.PluginContext; |
|
|
|
import com.fr.plugin.context.PluginContext; |
|
|
|
import com.fr.plugin.context.PluginMarker; |
|
|
|
import com.fr.plugin.context.PluginMarker; |
|
|
|
import com.fr.plugin.error.PluginErrorCode; |
|
|
|
|
|
|
|
import com.fr.plugin.error.PluginBaseErrorCode; |
|
|
|
import com.fr.plugin.error.PluginBaseErrorCode; |
|
|
|
|
|
|
|
import com.fr.plugin.error.PluginErrorCode; |
|
|
|
import com.fr.plugin.manage.PluginManager; |
|
|
|
import com.fr.plugin.manage.PluginManager; |
|
|
|
import com.fr.plugin.view.PluginView; |
|
|
|
import com.fr.plugin.view.PluginView; |
|
|
|
import com.fr.stable.EncodeConstants; |
|
|
|
import com.fr.stable.EncodeConstants; |
|
|
@ -21,11 +22,12 @@ import com.fr.stable.ProductConstants; |
|
|
|
import com.fr.stable.StableUtils; |
|
|
|
import com.fr.stable.StableUtils; |
|
|
|
import com.fr.stable.StringUtils; |
|
|
|
import com.fr.stable.StringUtils; |
|
|
|
|
|
|
|
|
|
|
|
import javax.swing.JOptionPane; |
|
|
|
import javax.swing.*; |
|
|
|
import java.io.File; |
|
|
|
import java.io.File; |
|
|
|
import java.io.FileOutputStream; |
|
|
|
import java.io.FileOutputStream; |
|
|
|
import java.io.IOException; |
|
|
|
import java.io.IOException; |
|
|
|
import java.io.InputStream; |
|
|
|
import java.io.InputStream; |
|
|
|
|
|
|
|
import java.io.UnsupportedEncodingException; |
|
|
|
import java.net.HttpURLConnection; |
|
|
|
import java.net.HttpURLConnection; |
|
|
|
import java.net.URLDecoder; |
|
|
|
import java.net.URLDecoder; |
|
|
|
import java.text.SimpleDateFormat; |
|
|
|
import java.text.SimpleDateFormat; |
|
|
@ -46,8 +48,7 @@ public class PluginUtils { |
|
|
|
public static PluginMarker createPluginMarker(String pluginInfo) { |
|
|
|
public static PluginMarker createPluginMarker(String pluginInfo) { |
|
|
|
//todo 判空
|
|
|
|
//todo 判空
|
|
|
|
String[] plugin = pluginInfo.split("_"); |
|
|
|
String[] plugin = pluginInfo.split("_"); |
|
|
|
PluginMarker pluginMarker = PluginMarker.create(plugin[0], plugin[1]); |
|
|
|
return PluginMarker.create(plugin[0], plugin[1]); |
|
|
|
return pluginMarker; |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public static JSONObject getLatestPluginInfo(String pluginID) throws Exception { |
|
|
|
public static JSONObject getLatestPluginInfo(String pluginID) throws Exception { |
|
|
@ -90,7 +91,11 @@ public class PluginUtils { |
|
|
|
InputStream reader = null; |
|
|
|
InputStream reader = null; |
|
|
|
FileOutputStream writer = null; |
|
|
|
FileOutputStream writer = null; |
|
|
|
try { |
|
|
|
try { |
|
|
|
HttpClient httpClient = new HttpClient(getDownloadPath(id)); |
|
|
|
String downloadPath = getDownloadPath(id); |
|
|
|
|
|
|
|
if (StringUtils.isBlank(downloadPath)) { |
|
|
|
|
|
|
|
throw new PluginVerifyException(Toolkit.i18nText("Fine-Design_Basic_Plugin_Connect_Server_Error")); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
HttpClient httpClient = new HttpClient(downloadPath); |
|
|
|
if (httpClient.getResponseCode() == HttpURLConnection.HTTP_OK) { |
|
|
|
if (httpClient.getResponseCode() == HttpURLConnection.HTTP_OK) { |
|
|
|
int totalSize = httpClient.getContentLength(); |
|
|
|
int totalSize = httpClient.getContentLength(); |
|
|
|
reader = httpClient.getResponseStream(); |
|
|
|
reader = httpClient.getResponseStream(); |
|
|
@ -108,12 +113,12 @@ public class PluginUtils { |
|
|
|
p.process(totalBytesRead / (double) totalSize); |
|
|
|
p.process(totalBytesRead / (double) totalSize); |
|
|
|
} |
|
|
|
} |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
throw new com.fr.plugin.PluginVerifyException(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Plugin_Connect_Server_Error")); |
|
|
|
throw new PluginVerifyException(Toolkit.i18nText("Fine-Design_Basic_Plugin_Connect_Server_Error")); |
|
|
|
} |
|
|
|
} |
|
|
|
} catch (PluginVerifyException e) { |
|
|
|
} catch (PluginVerifyException e) { |
|
|
|
FineJOptionPane.showMessageDialog(null, e.getMessage(), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Plugin_Warning"), JOptionPane.ERROR_MESSAGE); |
|
|
|
FineJOptionPane.showMessageDialog(null, e.getMessage(), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Plugin_Warning"), JOptionPane.ERROR_MESSAGE); |
|
|
|
return false; |
|
|
|
return false; |
|
|
|
} catch (Exception e) { |
|
|
|
} catch (IOException e) { |
|
|
|
FineLoggerFactory.getLogger().error(e.getMessage(), e); |
|
|
|
FineLoggerFactory.getLogger().error(e.getMessage(), e); |
|
|
|
return false; |
|
|
|
return false; |
|
|
|
} finally { |
|
|
|
} finally { |
|
|
@ -136,19 +141,27 @@ public class PluginUtils { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private static String getDownloadPath(String id) throws Exception { |
|
|
|
private static String getDownloadPath(String id) { |
|
|
|
HashMap<String, String> map = new HashMap<String, String>(); |
|
|
|
String url = CloudCenter.getInstance().acquireUrlByKind("shop.script.download"); |
|
|
|
map.put("id", id); |
|
|
|
if (StringUtils.isBlank(url)) { |
|
|
|
HttpClient httpClient = new HttpClient(CloudCenter.getInstance().acquireUrlByKind("shop.script.download")+ "?" + FR_VERSION + "=" + ProductConstants.VERSION); |
|
|
|
return StringUtils.EMPTY; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
HttpClient httpClient = new HttpClient(url + "?" + FR_VERSION + "=" + ProductConstants.VERSION); |
|
|
|
httpClient.asGet(); |
|
|
|
httpClient.asGet(); |
|
|
|
|
|
|
|
if (httpClient.getResponseCode() == HttpURLConnection.HTTP_OK) { |
|
|
|
String resText = httpClient.getResponseText(); |
|
|
|
String resText = httpClient.getResponseText(); |
|
|
|
JSONObject resultJSONObject = new JSONObject(resText); |
|
|
|
JSONObject resultJSONObject = new JSONObject(resText); |
|
|
|
String scriptUrl = resultJSONObject.optString("result"); |
|
|
|
String scriptUrl = resultJSONObject.optString("result"); |
|
|
|
String charSet = EncodeConstants.ENCODING_UTF_8; |
|
|
|
String charSet = EncodeConstants.ENCODING_UTF_8; |
|
|
|
|
|
|
|
try { |
|
|
|
scriptUrl = URLDecoder.decode(URLDecoder.decode(scriptUrl, charSet), charSet); |
|
|
|
scriptUrl = URLDecoder.decode(URLDecoder.decode(scriptUrl, charSet), charSet); |
|
|
|
|
|
|
|
} catch (UnsupportedEncodingException e) { |
|
|
|
|
|
|
|
FineLoggerFactory.getLogger().error(e.getMessage(), e); |
|
|
|
|
|
|
|
} |
|
|
|
return scriptUrl; |
|
|
|
return scriptUrl; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
return StringUtils.EMPTY; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public static boolean isPluginMatch(PluginView pluginView, String text) { |
|
|
|
public static boolean isPluginMatch(PluginView pluginView, String text) { |
|
|
|
return StringUtils.contains(pluginView.getID(), text) |
|
|
|
return StringUtils.contains(pluginView.getID(), text) |
|
|
@ -219,9 +232,10 @@ public class PluginUtils { |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* 在不同设计器版本下展示不同插件 |
|
|
|
* 在不同设计器版本下展示不同插件 |
|
|
|
|
|
|
|
* |
|
|
|
* @return 插件 |
|
|
|
* @return 插件 |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
public static JSONArray filterPluginsFromVersion(JSONArray oriJSONArray) throws Exception{ |
|
|
|
public static JSONArray filterPluginsFromVersion(JSONArray oriJSONArray) { |
|
|
|
JSONArray resultJSONArray = JSONArray.create(); |
|
|
|
JSONArray resultJSONArray = JSONArray.create(); |
|
|
|
for (int i = 0; i < oriJSONArray.length(); i++) { |
|
|
|
for (int i = 0; i < oriJSONArray.length(); i++) { |
|
|
|
JSONObject jo = oriJSONArray.getJSONObject(i); |
|
|
|
JSONObject jo = oriJSONArray.getJSONObject(i); |
|
|
|