Browse Source

REPORT-2354 商城脚本下载

master
kerry 8 years ago
parent
commit
e6cf95ef5e
  1. 4
      designer_base/src/com/fr/design/extra/PluginStoreConstants.java
  2. 9
      designer_base/src/com/fr/design/extra/PluginUtils.java
  3. 83
      designer_base/src/com/fr/design/extra/WebViewDlgHelper.java

4
designer_base/src/com/fr/design/extra/PluginStoreConstants.java

@ -1,9 +1,9 @@
package com.fr.design.extra;
import com.fr.base.FRContext;
import com.fr.stable.StableUtils;
import com.fr.stable.StringUtils;
import java.io.File;
import java.io.FileInputStream;
import java.util.Properties;
@ -20,7 +20,7 @@ public class PluginStoreConstants {
if (PROP == null) {
PROP = new Properties();
try {
PROP.load(new FileInputStream(StableUtils.pathJoin(new File(StableUtils.getInstallHome()).getAbsolutePath(), "scripts/store/web/plugin_store.properties")));
PROP.load(new FileInputStream(StableUtils.pathJoin(FRContext.getCurrentEnv().getWebReportPath(), "scripts/store/web/plugin_store.properties")));
} catch (Exception e) {
}
}

9
designer_base/src/com/fr/design/extra/PluginUtils.java

@ -105,12 +105,15 @@ public class PluginUtils {
map.put("id", id);
map.put("username", username);
map.put("password", password);
HttpClient httpClient = new HttpClient(SiteCenter.getInstance().acquireUrlByKind("plugin.download"), map);
HttpClient httpClient = new HttpClient(SiteCenter.getInstance().acquireUrlByKind("shop.plugin.scripts"));
httpClient.asGet();
String resText = httpClient.getResponseText();
JSONObject resultJSONObject = new JSONObject(resText);
String scriptUrl = resultJSONObject.optString("result");
String charSet = EncodeConstants.ENCODING_UTF_8;
resText = URLDecoder.decode(URLDecoder.decode(resText, charSet), charSet);
scriptUrl = URLDecoder.decode(URLDecoder.decode(scriptUrl, charSet), charSet);
return resText;
return scriptUrl;
}
public static boolean isPluginMatch(PluginView pluginView, String text) {

83
designer_base/src/com/fr/design/extra/WebViewDlgHelper.java

@ -12,12 +12,16 @@ import com.fr.general.IOUtils;
import com.fr.general.Inter;
import com.fr.general.SiteCenter;
import com.fr.general.http.HttpClient;
import com.fr.json.JSONObject;
import com.fr.plugin.PluginVerifyException;
import com.fr.stable.StableUtils;
import javax.swing.*;
import java.awt.*;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.util.concurrent.ExecutionException;
@ -33,23 +37,26 @@ public class WebViewDlgHelper {
public static void createPluginDialog() {
if (StableUtils.getMajorJavaVersion() >= VERSION_8) {
String relativePath = "index.html";
String relativePath = "/scripts/store/web/index.html";
String mainJsPath = StableUtils.pathJoin(FRContext.getCurrentEnv().getWebReportPath(), relativePath);
File file = new File(mainJsPath);
if (!file.exists()) {
// int rv = JOptionPane.showConfirmDialog(
// null,
// Inter.getLocText("FR-Designer-Plugin_Shop_Need_Install"),
// Inter.getLocText("FR-Designer-Plugin_Warning"),
// JOptionPane.OK_CANCEL_OPTION,
// JOptionPane.INFORMATION_MESSAGE
// );
// if (rv == JOptionPane.OK_OPTION) {
// downloadShopScripts(SHOP_SCRIPTS);
// }
int rv = JOptionPane.showConfirmDialog(
null,
Inter.getLocText("FR-Designer-Plugin_Shop_Need_Install"),
Inter.getLocText("FR-Designer-Plugin_Warning"),
JOptionPane.OK_CANCEL_OPTION,
JOptionPane.INFORMATION_MESSAGE
);
if (rv == JOptionPane.OK_OPTION) {
downloadShopScripts(SHOP_SCRIPTS);
}
} else {
String indexPath = "index.html";
String mainIndexPath = StableUtils.pathJoin(FRContext.getCurrentEnv().getWebReportPath(), indexPath);
checkAndCopyMainFile(mainIndexPath, mainJsPath);
updateShopScripts(SHOP_SCRIPTS);
showPluginDlg(mainJsPath);
showPluginDlg(mainIndexPath);
}
} else {
BasicPane traditionalStorePane = new BasicPane() {
@ -65,6 +72,31 @@ public class WebViewDlgHelper {
}
}
/**
* 检查script文件夹中的index.html文件
*
*/
public static void checkAndCopyMainFile(String indexPath, String mainJsPath){
File file = new File(indexPath);
if (!file.exists()) {
try {
File mainJsFile = new File(mainJsPath);
int byteread = 0;
if (mainJsFile.exists()) {
InputStream inStream = new FileInputStream(mainJsPath);
FileOutputStream fs = new FileOutputStream(indexPath);
byte[] buffer = new byte[1444];
while ((byteread = inStream.read(buffer)) != -1) {
fs.write(buffer, 0, byteread);
}
inStream.close();
}
} catch (Exception e) {
FRContext.getLogger().error(e.getMessage());
}
}
}
/**
* 以关键词打开设计器商店
*
@ -181,20 +213,23 @@ public class WebViewDlgHelper {
new SwingWorker<Void, Void>() {
@Override
protected Void doInBackground() throws Exception {
HttpClient httpClient = new HttpClient(SiteCenter.getInstance().acquireUrlByKind("store.version") + "&version=" + PluginStoreConstants.VERSION);
HttpClient httpClient = new HttpClient(SiteCenter.getInstance().acquireUrlByKind("shop.plugin.checkversion") + "&version=" + PluginStoreConstants.VERSION);
httpClient.asGet();
if (httpClient.getResponseCode() == HttpURLConnection.HTTP_OK) {
String text = httpClient.getResponseText();
if (!ComparatorUtils.equals(text, LATEST)) {
// int rv = JOptionPane.showConfirmDialog(
// null,
// Inter.getLocText("FR-Designer-Plugin_Shop_Need_Update"),
// Inter.getLocText("FR-Designer-Plugin_Warning"),
// JOptionPane.OK_CANCEL_OPTION,
// JOptionPane.INFORMATION_MESSAGE
// );
// if (rv == JOptionPane.OK_OPTION) {
// downloadShopScripts(scriptsId);
// }
JSONObject resultJSONObject = new JSONObject(text);
String isLatest = resultJSONObject.optString("result");
if (!ComparatorUtils.equals(isLatest, LATEST)) {
int rv = JOptionPane.showConfirmDialog(
null,
Inter.getLocText("FR-Designer-Plugin_Shop_Need_Update"),
Inter.getLocText("FR-Designer-Plugin_Warning"),
JOptionPane.OK_CANCEL_OPTION,
JOptionPane.INFORMATION_MESSAGE
);
if (rv == JOptionPane.OK_OPTION) {
downloadShopScripts(scriptsId);
}
}
}
return null;

Loading…
Cancel
Save