From 18840749a43c5bca2a9e3c2ffc01f0e09affeef5 Mon Sep 17 00:00:00 2001 From: kerry Date: Wed, 21 Jun 2017 15:47:57 +0800 Subject: [PATCH 1/9] =?UTF-8?q?REPORT-2354=20=E5=B0=86=E5=B9=B3=E5=8F=B0?= =?UTF-8?q?=E7=9A=84=E6=8F=92=E4=BB=B6=E7=AE=A1=E7=90=86=E5=92=8C=E8=AE=BE?= =?UTF-8?q?=E8=AE=A1=E5=99=A8=E7=9A=84=E6=8F=92=E4=BB=B6=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E7=BB=9F=E4=B8=80=E8=B5=B7=E6=9D=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/extra/PluginOperateUtils.java | 61 ++++++++++++++----- .../com/fr/design/extra/PluginWebBridge.java | 3 +- .../callback/InstallDependenceCallback.java | 38 ++++++++++++ .../exe/callback/InstallFromDiskCallback.java | 29 ++++++++- .../exe/callback/InstallOnlineCallback.java | 31 ++++++++-- .../exe/callback/UninstallPluginCallback.java | 1 + .../callback/UpdateDependenceCallback.java | 39 ++++++++++++ .../exe/callback/UpdateFromDiskCallback.java | 29 ++++++++- .../exe/callback/UpdateOnlineCallback.java | 11 +++- .../exe/extratask/InstallDependenceTask.java | 24 ++++++++ .../exe/extratask/UpdateDependenceTask.java | 26 ++++++++ .../com/fr/design/locale/designer.properties | 7 +++ .../design/locale/designer_en_US.properties | 7 +++ .../design/locale/designer_ja_JP.properties | 7 +++ .../design/locale/designer_ko_KR.properties | 7 +++ .../design/locale/designer_zh_CN.properties | 7 +++ .../design/locale/designer_zh_TW.properties | 7 +++ 17 files changed, 310 insertions(+), 24 deletions(-) create mode 100644 designer_base/src/com/fr/design/extra/exe/callback/InstallDependenceCallback.java create mode 100644 designer_base/src/com/fr/design/extra/exe/callback/UpdateDependenceCallback.java create mode 100644 designer_base/src/com/fr/design/extra/exe/extratask/InstallDependenceTask.java create mode 100644 designer_base/src/com/fr/design/extra/exe/extratask/UpdateDependenceTask.java diff --git a/designer_base/src/com/fr/design/extra/PluginOperateUtils.java b/designer_base/src/com/fr/design/extra/PluginOperateUtils.java index 5b4f44515..6515a4ce3 100644 --- a/designer_base/src/com/fr/design/extra/PluginOperateUtils.java +++ b/designer_base/src/com/fr/design/extra/PluginOperateUtils.java @@ -3,9 +3,12 @@ package com.fr.design.extra; import com.fr.base.FRContext; import com.fr.design.DesignerEnvManager; import com.fr.design.extra.exe.callback.*; +import com.fr.design.extra.exe.extratask.InstallDependenceTask; import com.fr.design.extra.exe.extratask.InstallPluginTask; +import com.fr.design.extra.exe.extratask.UpdateDependenceTask; import com.fr.design.extra.exe.extratask.UpdatePluginTask; import com.fr.general.FRLogger; +import com.fr.general.Inter; import com.fr.general.SiteCenter; import com.fr.general.http.HttpClient; import com.fr.json.JSONArray; @@ -19,6 +22,7 @@ import com.fr.plugin.manage.control.PluginTaskCallback; import com.fr.plugin.view.PluginView; import com.fr.stable.StringUtils; +import javax.swing.*; import java.io.File; import java.util.List; @@ -28,12 +32,11 @@ import java.util.List; */ public class PluginOperateUtils { - public static void installPluginOnline(final String pluginInfo, JSCallback jsCallback) { + public static void installPluginOnline(final PluginMarker pluginMarker, JSCallback jsCallback) { //下载插件 if (!BBSPluginLogin.getInstance().hasLogin()) { LoginCheckContext.fireLoginCheckListener(); } - PluginMarker pluginMarker = PluginUtils.createPluginMarker(pluginInfo); if (BBSPluginLogin.getInstance().hasLogin()) { PluginManager.getController().download(pluginMarker, new DownloadCallback(new InstallPluginTask(pluginMarker, jsCallback), jsCallback)); } @@ -43,29 +46,50 @@ public class PluginOperateUtils { PluginManager.getController().install(zipFile, new InstallFromDiskCallback(zipFile, jsCallback)); } + public static void installPluginDependence(PluginMarker pluginMarker, JSCallback jsCallback){ + PluginManager.getController().download(pluginMarker, new DownloadCallback(new InstallDependenceTask(pluginMarker, jsCallback), jsCallback)); + } + public static void updatePluginOnline(List pluginMarkerList, JSCallback jsCallback) { if (!(BBSPluginLogin.getInstance().hasLogin())) { LoginCheckContext.fireLoginCheckListener(); } if (BBSPluginLogin.getInstance().hasLogin()) { for (int i = 0; i < pluginMarkerList.size(); i++) { - try { - JSONObject latestPluginInfo = PluginUtils.getLatestPluginInfo(pluginMarkerList.get(i).getPluginID()); - String latestPluginVersion = (String) latestPluginInfo.get("version"); - PluginMarker pluginMarker = pluginMarkerList.get(i); - PluginMarker toPluginMarker = PluginMarker.create(pluginMarkerList.get(i).getPluginID(), latestPluginVersion); - PluginManager.getController().download(pluginMarkerList.get(i), new DownloadCallback(new UpdatePluginTask(pluginMarker, toPluginMarker, jsCallback), jsCallback)); - } catch (Exception e) { - FRContext.getLogger().error(e.getMessage(), e); - } + updatePluginOnline(pluginMarkerList.get(i), jsCallback); } } } + public static void updatePluginOnline(PluginMarker pluginMarker, JSCallback jsCallback) { + try { + JSONObject latestPluginInfo = PluginUtils.getLatestPluginInfo(pluginMarker.getPluginID()); + String latestPluginVersion = (String) latestPluginInfo.get("version"); + PluginMarker toPluginMarker = PluginMarker.create(pluginMarker.getPluginID(), latestPluginVersion); + PluginManager.getController().download(pluginMarker, new DownloadCallback(new UpdatePluginTask(pluginMarker, toPluginMarker, jsCallback), jsCallback)); + } catch (Exception e) { + FRContext.getLogger().error(e.getMessage(), e); + } + + } + + public static void updatePluginFromDisk(final String filePath, JSCallback jsCallback) { PluginManager.getController().update(new File(filePath), new UpdateFromDiskCallback(new File(filePath), jsCallback)); } + public static void updatePluginDependence(PluginMarker pluginMarker, JSCallback jsCallback){ + try { + JSONObject latestPluginInfo = PluginUtils.getLatestPluginInfo(pluginMarker.getPluginID()); + String latestPluginVersion = (String) latestPluginInfo.get("version"); + PluginMarker toPluginMarker = PluginMarker.create(pluginMarker.getPluginID(), latestPluginVersion); + PluginManager.getController().download(pluginMarker, new DownloadCallback(new UpdateDependenceTask(pluginMarker, toPluginMarker, jsCallback), jsCallback)); + } catch (Exception e) { + FRContext.getLogger().error(e.getMessage(), e); + } + + } + public static void setPluginActive(String pluginInfo, JSCallback jsCallback) { PluginMarker pluginMarker = PluginUtils.createPluginMarker(pluginInfo); PluginContext plugin = PluginManager.getContext(pluginMarker); @@ -79,8 +103,17 @@ public class PluginOperateUtils { } public static void uninstallPlugin(final String pluginInfo, final boolean isForce, JSCallback jsCallback) { - PluginMarker pluginMarker = PluginUtils.createPluginMarker(pluginInfo); - PluginManager.getController().uninstall(pluginMarker, isForce, new UninstallPluginCallback(pluginMarker, jsCallback)); + int rv = JOptionPane.showConfirmDialog( + null, + Inter.getLocText("FR-Designer-Plugin_Delete_Confirmed"), + Inter.getLocText("FR-Designer-Plugin_Warning"), + JOptionPane.OK_CANCEL_OPTION, + JOptionPane.INFORMATION_MESSAGE + ); + if (rv == JOptionPane.OK_OPTION) { + PluginMarker pluginMarker = PluginUtils.createPluginMarker(pluginInfo); + PluginManager.getController().uninstall(pluginMarker, isForce, new UninstallPluginCallback(pluginMarker, jsCallback)); + } } public static void readUpdateOnline(final JSCallback jsCallback) { @@ -237,7 +270,7 @@ public class PluginOperateUtils { } public static void getLoginInfo(JSCallback jsCallback) { - + if (!BBSPluginLogin.getInstance().hasLogin()) { String userName = DesignerEnvManager.getEnvManager().getBBSName(); String password = DesignerEnvManager.getEnvManager().getBBSPassword(); diff --git a/designer_base/src/com/fr/design/extra/PluginWebBridge.java b/designer_base/src/com/fr/design/extra/PluginWebBridge.java index 126a85fa9..b468f351d 100644 --- a/designer_base/src/com/fr/design/extra/PluginWebBridge.java +++ b/designer_base/src/com/fr/design/extra/PluginWebBridge.java @@ -148,7 +148,8 @@ public class PluginWebBridge { */ public void installPluginOnline(final String pluginInfo, final JSObject callback) { JSCallback jsCallback = new JSCallback(webEngine, callback); - PluginOperateUtils.installPluginOnline(pluginInfo, jsCallback); + PluginMarker pluginMarker = PluginUtils.createPluginMarker(pluginInfo); + PluginOperateUtils.installPluginOnline(pluginMarker, jsCallback); } diff --git a/designer_base/src/com/fr/design/extra/exe/callback/InstallDependenceCallback.java b/designer_base/src/com/fr/design/extra/exe/callback/InstallDependenceCallback.java new file mode 100644 index 000000000..4edc0c112 --- /dev/null +++ b/designer_base/src/com/fr/design/extra/exe/callback/InstallDependenceCallback.java @@ -0,0 +1,38 @@ +package com.fr.design.extra.exe.callback; + +import com.fr.general.FRLogger; +import com.fr.general.Inter; +import com.fr.plugin.context.PluginMarker; +import com.fr.plugin.manage.control.PluginTaskResult; + +import javax.swing.*; + +/** + * Created by ibm on 2017/6/21. + */ +public class InstallDependenceCallback extends AbstractPluginTaskCallback { + protected JSCallback jsCallback; + private static int HUNDRED_PERCENT = 100; + + public InstallDependenceCallback(PluginMarker pluginMarker, JSCallback jsCallback){ + this.pluginMarker = pluginMarker; + this.jsCallback = jsCallback; + } + + @Override + public void updateProgress(String description, double aProgress) { + jsCallback.execute(String.valueOf(aProgress * HUNDRED_PERCENT + "%")); + } + + + @Override + public void done(PluginTaskResult result) { + if (result.isSuccess()) { + FRLogger.getLogger().info(Inter.getLocText("FR-Designer-Plugin-Install_Dependence_Success")); + }else { + FRLogger.getLogger().info(Inter.getLocText("FR-Designer-Plugin-Install_Dependence_Failed")); + JOptionPane.showMessageDialog(null, result.getMessage(), Inter.getLocText("FR-Designer-Plugin_Warning"), JOptionPane.ERROR_MESSAGE); + } + } +} + 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 7a3f4be6c..317293e4e 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 @@ -1,13 +1,17 @@ package com.fr.design.extra.exe.callback; +import com.fr.design.extra.PluginOperateUtils; import com.fr.general.FRLogger; import com.fr.general.Inter; +import com.fr.plugin.context.PluginMarker; import com.fr.plugin.error.PluginErrorCode; import com.fr.plugin.manage.PluginManager; +import com.fr.plugin.manage.control.PluginTask; import com.fr.plugin.manage.control.PluginTaskResult; import javax.swing.*; import java.io.File; +import java.util.List; /** * Created by ibm on 2017/5/26. @@ -30,8 +34,8 @@ public class InstallFromDiskCallback extends AbstractPluginTaskCallback { @Override public void done(PluginTaskResult result) { - jsCallback.execute("success"); if (result.isSuccess()) { + jsCallback.execute("success"); FRLogger.getLogger().info(Inter.getLocText("FR-Designer-Plugin_Install_Success")); JOptionPane.showMessageDialog(null, Inter.getLocText("FR-Designer-Plugin_Install_Success")); } else if (result.errorCode() == PluginErrorCode.NeedDealWithPluginDependency) { @@ -48,8 +52,29 @@ public class InstallFromDiskCallback extends AbstractPluginTaskCallback { if (rv == JOptionPane.CANCEL_OPTION || rv == JOptionPane.CLOSED_OPTION) { return; } + List pluginTasks = result.getPreTasks(); + for(PluginTask pluginTask : pluginTasks){ + PluginMarker marker = pluginTask.getMarker(); + PluginOperateUtils.installPluginDependence(marker, jsCallback); + } PluginManager.getController().install(zipFile, new InstallFromDiskCallback(zipFile, jsCallback)); - } else { + } else if(result.errorCode() == PluginErrorCode.HasLowerPluginWhenInstall){ + int rv = JOptionPane.showOptionDialog( + null, + Inter.getLocText("FR-Designer-Plugin_Has_Install_Lower"), + Inter.getLocText("FR-Designer-Plugin_Warning"), + JOptionPane.YES_NO_CANCEL_OPTION, + JOptionPane.INFORMATION_MESSAGE, + null, + null, + null + ); + if (rv == JOptionPane.CANCEL_OPTION || rv == JOptionPane.CLOSED_OPTION) { + return; + } + PluginOperateUtils.updatePluginOnline(pluginMarker, jsCallback); + }else { + jsCallback.execute("failed"); FRLogger.getLogger().info(Inter.getLocText("FR-Designer-Plugin_Install_Failed")); JOptionPane.showMessageDialog(null, result.getMessage(), Inter.getLocText("FR-Designer-Plugin_Warning"), JOptionPane.ERROR_MESSAGE); } diff --git a/designer_base/src/com/fr/design/extra/exe/callback/InstallOnlineCallback.java b/designer_base/src/com/fr/design/extra/exe/callback/InstallOnlineCallback.java index f13e55fa0..e0f678c16 100644 --- a/designer_base/src/com/fr/design/extra/exe/callback/InstallOnlineCallback.java +++ b/designer_base/src/com/fr/design/extra/exe/callback/InstallOnlineCallback.java @@ -1,13 +1,15 @@ package com.fr.design.extra.exe.callback; +import com.fr.design.extra.PluginOperateUtils; import com.fr.general.FRLogger; import com.fr.general.Inter; import com.fr.plugin.context.PluginMarker; import com.fr.plugin.error.PluginErrorCode; -import com.fr.plugin.manage.PluginManager; +import com.fr.plugin.manage.control.PluginTask; import com.fr.plugin.manage.control.PluginTaskResult; import javax.swing.*; +import java.util.List; /** * Created by ibm on 2017/5/26. @@ -29,8 +31,8 @@ public class InstallOnlineCallback extends AbstractPluginTaskCallback { @Override public void done(PluginTaskResult result) { - jsCallback.execute("success"); if (result.isSuccess()) { + jsCallback.execute("success"); FRLogger.getLogger().info(Inter.getLocText("FR-Designer-Plugin_Install_Success")); JOptionPane.showMessageDialog(null, Inter.getLocText("FR-Designer-Plugin_Install_Success")); } else if (result.errorCode() == PluginErrorCode.NeedDealWithPluginDependency) { @@ -47,9 +49,30 @@ public class InstallOnlineCallback extends AbstractPluginTaskCallback { if (rv == JOptionPane.CANCEL_OPTION || rv == JOptionPane.CLOSED_OPTION) { return; } + List pluginTasks = result.getPreTasks(); + for(PluginTask pluginTask : pluginTasks){ + PluginMarker marker = pluginTask.getMarker(); + PluginOperateUtils.installPluginDependence(marker, jsCallback ); + } //执行JS回调 - PluginManager.getController().install(pluginMarker, new InstallOnlineCallback(pluginMarker, jsCallback)); - } else { + PluginOperateUtils.installPluginOnline(pluginMarker, jsCallback); + } else if(result.errorCode() == PluginErrorCode.HasLowerPluginWhenInstall){ + int rv = JOptionPane.showOptionDialog( + null, + Inter.getLocText("FR-Designer-Plugin_Has_Install_Lower"), + Inter.getLocText("FR-Designer-Plugin_Warning"), + JOptionPane.YES_NO_CANCEL_OPTION, + JOptionPane.INFORMATION_MESSAGE, + null, + null, + null + ); + if (rv == JOptionPane.CANCEL_OPTION || rv == JOptionPane.CLOSED_OPTION) { + return; + } + PluginOperateUtils.updatePluginOnline(pluginMarker, jsCallback); + }else { + jsCallback.execute("failed"); FRLogger.getLogger().info(Inter.getLocText("FR-Designer-Plugin_Install_Failed")); JOptionPane.showMessageDialog(null, result.getMessage(), Inter.getLocText("FR-Designer-Plugin_Warning"), JOptionPane.ERROR_MESSAGE); } diff --git a/designer_base/src/com/fr/design/extra/exe/callback/UninstallPluginCallback.java b/designer_base/src/com/fr/design/extra/exe/callback/UninstallPluginCallback.java index 0a9664d5e..9342b2b60 100644 --- a/designer_base/src/com/fr/design/extra/exe/callback/UninstallPluginCallback.java +++ b/designer_base/src/com/fr/design/extra/exe/callback/UninstallPluginCallback.java @@ -42,6 +42,7 @@ public class UninstallPluginCallback extends AbstractPluginTaskCallback { } PluginManager.getController().uninstall(pluginMarker, true, new UninstallPluginCallback(pluginMarker, jsCallback)); } else { + jsCallback.execute("failed"); FRLogger.getLogger().info(Inter.getLocText("FR-Designer-Plugin_Delete_Failed")); JOptionPane.showMessageDialog(null, result.getMessage(), Inter.getLocText("FR-Designer-Plugin_Warning"), JOptionPane.ERROR_MESSAGE); } diff --git a/designer_base/src/com/fr/design/extra/exe/callback/UpdateDependenceCallback.java b/designer_base/src/com/fr/design/extra/exe/callback/UpdateDependenceCallback.java new file mode 100644 index 000000000..47e6bc20f --- /dev/null +++ b/designer_base/src/com/fr/design/extra/exe/callback/UpdateDependenceCallback.java @@ -0,0 +1,39 @@ +package com.fr.design.extra.exe.callback; + +import com.fr.general.FRLogger; +import com.fr.general.Inter; +import com.fr.plugin.context.PluginMarker; +import com.fr.plugin.manage.control.PluginTaskResult; + +import javax.swing.*; + +/** + * Created by ibm on 2017/6/21. + */ +public class UpdateDependenceCallback extends AbstractPluginTaskCallback { + public PluginMarker toPluginMarker; + protected JSCallback jsCallback; + private static int HUNDRED_PERCENT = 100; + + public UpdateDependenceCallback(PluginMarker pluginMarker, PluginMarker toPluginMarker, JSCallback jsCallback){ + this.pluginMarker = pluginMarker; + this.toPluginMarker = toPluginMarker; + this.jsCallback = jsCallback; + } + + @Override + public void updateProgress(String description, double aProgress) { + jsCallback.execute(String.valueOf(aProgress * HUNDRED_PERCENT + "%")); + } + + + @Override + public void done(PluginTaskResult result) { + if (result.isSuccess()) { + FRLogger.getLogger().info(Inter.getLocText("FR-Designer-Plugin-Update_Dependence_Success")); + }else { + FRLogger.getLogger().info(Inter.getLocText("FR-Designer-Plugin-Update_Dependence_Failed")); + JOptionPane.showMessageDialog(null, result.getMessage(), Inter.getLocText("FR-Designer-Plugin_Warning"), JOptionPane.ERROR_MESSAGE); + } + } +} \ No newline at end of file diff --git a/designer_base/src/com/fr/design/extra/exe/callback/UpdateFromDiskCallback.java b/designer_base/src/com/fr/design/extra/exe/callback/UpdateFromDiskCallback.java index 10d8cd82b..ea3883609 100644 --- a/designer_base/src/com/fr/design/extra/exe/callback/UpdateFromDiskCallback.java +++ b/designer_base/src/com/fr/design/extra/exe/callback/UpdateFromDiskCallback.java @@ -1,13 +1,17 @@ package com.fr.design.extra.exe.callback; +import com.fr.design.extra.PluginOperateUtils; import com.fr.general.FRLogger; import com.fr.general.Inter; +import com.fr.plugin.context.PluginMarker; import com.fr.plugin.error.PluginErrorCode; import com.fr.plugin.manage.PluginManager; +import com.fr.plugin.manage.control.PluginTask; import com.fr.plugin.manage.control.PluginTaskResult; import javax.swing.*; import java.io.File; +import java.util.List; /** * Created by ibm on 2017/5/27. @@ -30,8 +34,8 @@ public class UpdateFromDiskCallback extends AbstractPluginTaskCallback { @Override public void done(PluginTaskResult result) { - jsCallback.execute("success"); if (result.isSuccess()) { + jsCallback.execute("success"); FRLogger.getLogger().info(Inter.getLocText("FR-Designer-Plugin_Update_Success")); JOptionPane.showMessageDialog(null, Inter.getLocText("FR-Designer-Plugin_Update_Success")); } else if (result.errorCode() == PluginErrorCode.NeedDealWithPluginDependency) { @@ -48,8 +52,29 @@ public class UpdateFromDiskCallback extends AbstractPluginTaskCallback { if (rv == JOptionPane.CANCEL_OPTION || rv == JOptionPane.CLOSED_OPTION) { return; } + List pluginTasks = result.getPreTasks(); + for(PluginTask pluginTask : pluginTasks){ + PluginMarker marker = pluginTask.getMarker(); + PluginOperateUtils.updatePluginDependence(marker, jsCallback); + } PluginManager.getController().update(zipFile, new UpdateFromDiskCallback(zipFile, jsCallback)); - } else { + } else if(result.errorCode() == PluginErrorCode.NoPluginToUpdate){ + int rv = JOptionPane.showOptionDialog( + null, + Inter.getLocText("FR-Designer-Plugin_No_Plugin_Update"), + Inter.getLocText("FR-Designer-Plugin_Warning"), + JOptionPane.YES_NO_CANCEL_OPTION, + JOptionPane.INFORMATION_MESSAGE, + null, + null, + null + ); + if (rv == JOptionPane.CANCEL_OPTION || rv == JOptionPane.CLOSED_OPTION) { + return; + } + PluginOperateUtils.installPluginFromDisk(zipFile, jsCallback); + }else { + jsCallback.execute("failed"); FRLogger.getLogger().info(Inter.getLocText("FR-Designer-Plugin_Update_Failed")); JOptionPane.showMessageDialog(null, result.getMessage(), Inter.getLocText("FR-Designer-Plugin_Warning"), JOptionPane.ERROR_MESSAGE); } diff --git a/designer_base/src/com/fr/design/extra/exe/callback/UpdateOnlineCallback.java b/designer_base/src/com/fr/design/extra/exe/callback/UpdateOnlineCallback.java index 91bf4983c..ca9876b56 100644 --- a/designer_base/src/com/fr/design/extra/exe/callback/UpdateOnlineCallback.java +++ b/designer_base/src/com/fr/design/extra/exe/callback/UpdateOnlineCallback.java @@ -1,13 +1,16 @@ package com.fr.design.extra.exe.callback; +import com.fr.design.extra.PluginOperateUtils; import com.fr.general.FRLogger; import com.fr.general.Inter; import com.fr.plugin.context.PluginMarker; import com.fr.plugin.error.PluginErrorCode; import com.fr.plugin.manage.PluginManager; +import com.fr.plugin.manage.control.PluginTask; import com.fr.plugin.manage.control.PluginTaskResult; import javax.swing.*; +import java.util.List; /** * Created by ibm on 2017/5/26. @@ -30,8 +33,8 @@ public class UpdateOnlineCallback extends AbstractPluginTaskCallback { @Override public void done(PluginTaskResult result) { - jsCallback.execute("success"); if (result.isSuccess()) { + jsCallback.execute("success"); FRLogger.getLogger().info(Inter.getLocText("FR-Designer-Plugin_Update_Success")); JOptionPane.showMessageDialog(null, Inter.getLocText("FR-Designer-Plugin_Update_Success")); } else if (result.errorCode() == PluginErrorCode.NeedDealWithPluginDependency) { @@ -48,8 +51,14 @@ public class UpdateOnlineCallback extends AbstractPluginTaskCallback { if (rv == JOptionPane.CANCEL_OPTION || rv == JOptionPane.CLOSED_OPTION) { return; } + List pluginTasks = result.getPreTasks(); + for(PluginTask pluginTask : pluginTasks){ + PluginMarker marker = pluginTask.getMarker(); + PluginOperateUtils.updatePluginDependence(marker, jsCallback); + } PluginManager.getController().update(pluginMarker, toPluginMarker, new UpdateOnlineCallback(pluginMarker, toPluginMarker, jsCallback)); } else { + jsCallback.execute("failed"); FRLogger.getLogger().info(Inter.getLocText("FR-Designer-Plugin_Update_Failed")); JOptionPane.showMessageDialog(null, result.getMessage(), Inter.getLocText("FR-Designer-Plugin_Warning"), JOptionPane.ERROR_MESSAGE); } diff --git a/designer_base/src/com/fr/design/extra/exe/extratask/InstallDependenceTask.java b/designer_base/src/com/fr/design/extra/exe/extratask/InstallDependenceTask.java new file mode 100644 index 000000000..4c0d731ff --- /dev/null +++ b/designer_base/src/com/fr/design/extra/exe/extratask/InstallDependenceTask.java @@ -0,0 +1,24 @@ +package com.fr.design.extra.exe.extratask; + +import com.fr.design.extra.exe.callback.InstallDependenceCallback; +import com.fr.design.extra.exe.callback.JSCallback; +import com.fr.plugin.context.PluginMarker; +import com.fr.plugin.manage.PluginManager; + +/** + * Created by ibm on 2017/6/21. + */ +public class InstallDependenceTask extends AbstractExtraPluginTask { + protected JSCallback jsCallback; + + + public InstallDependenceTask(PluginMarker pluginMarker, JSCallback jsCallback) { + this.pluginMarker = pluginMarker; + this.jsCallback = jsCallback; + } + + @Override + public void doExtraPluginTask() { + PluginManager.getController().install(pluginMarker, new InstallDependenceCallback(pluginMarker, jsCallback)); + } +} \ No newline at end of file diff --git a/designer_base/src/com/fr/design/extra/exe/extratask/UpdateDependenceTask.java b/designer_base/src/com/fr/design/extra/exe/extratask/UpdateDependenceTask.java new file mode 100644 index 000000000..2751fb7e6 --- /dev/null +++ b/designer_base/src/com/fr/design/extra/exe/extratask/UpdateDependenceTask.java @@ -0,0 +1,26 @@ +package com.fr.design.extra.exe.extratask; + +import com.fr.design.extra.exe.callback.JSCallback; +import com.fr.design.extra.exe.callback.UpdateDependenceCallback; +import com.fr.plugin.context.PluginMarker; +import com.fr.plugin.manage.PluginManager; + +/** + * Created by ibm on 2017/6/21. + */ +public class UpdateDependenceTask extends AbstractExtraPluginTask { + + public PluginMarker toPluginMarker; + protected JSCallback jsCallback; + + public UpdateDependenceTask(PluginMarker pluginMarker, PluginMarker toPluginMarker, JSCallback jsCallback) { + this.pluginMarker = pluginMarker; + this.toPluginMarker = toPluginMarker; + this.jsCallback = jsCallback; + } + + @Override + public void doExtraPluginTask() { + PluginManager.getController().update(pluginMarker, toPluginMarker, new UpdateDependenceCallback(pluginMarker, toPluginMarker, jsCallback)); + } +} diff --git a/designer_base/src/com/fr/design/locale/designer.properties b/designer_base/src/com/fr/design/locale/designer.properties index 5e197ba34..c85ee3f37 100644 --- a/designer_base/src/com/fr/design/locale/designer.properties +++ b/designer_base/src/com/fr/design/locale/designer.properties @@ -2005,7 +2005,14 @@ FR-Designer-Alphafine_No_Remind= FR-Designer-Plugin_Install_Success= FR-Designer-Plugin_Install_Failed= FR-Designer-Plugin_Install_Dependence= +FR-Designer-Plugin_Has_Install_Lower= +FR-Designer-Plugin_No_Plugin_Update= FR-Designer-Plugin-Install_Package= +FR-Designer-Plugin-Update_Dependence_Success= +FR-Designer-Plugin-Update_Dependence_Failed= +FR-Designer-Plugin-Install_Dependence_Success= +FR-Designer-Plugin-Install_Dependence_Failed= +FR-Designer-Plugin_Delete_Confirmed= FR-Designer-Plugin_Delete_Dependence= FR-Designer-Plugin_Delete_Success= FR-Designer-Plugin_Delete_Failed= diff --git a/designer_base/src/com/fr/design/locale/designer_en_US.properties b/designer_base/src/com/fr/design/locale/designer_en_US.properties index 0d48fd184..97529a5dd 100644 --- a/designer_base/src/com/fr/design/locale/designer_en_US.properties +++ b/designer_base/src/com/fr/design/locale/designer_en_US.properties @@ -2003,7 +2003,14 @@ FR-Designer-Alphafine_No_Remind=don't remind Designer-Plugin_Install_Success= FR-Designer-Plugin_Install_Failed= FR-Designer-Plugin_Install_Dependence= +FR-Designer-Plugin_Has_Install_Lower= +FR-Designer-Plugin_No_Plugin_Update= FR-Designer-Plugin-Install_Package= +FR-Designer-Plugin-Update_Dependence_Success= +FR-Designer-Plugin-Update_Dependence_Failed= +FR-Designer-Plugin-Install_Dependence_Success= +FR-Designer-Plugin-Install_Dependence_Failed= +FR-Designer-Plugin_Delete_Confirmed= FR-Designer-Plugin_Delete_Dependence= FR-Designer-Plugin_Delete_Success= FR-Designer-Plugin_Delete_Failed= diff --git a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties index 45715f666..ad2005631 100644 --- a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties +++ b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties @@ -1985,7 +1985,14 @@ FormulaD-Data_Fields=\u30C7\u30FC\u30BF\u30D5\u30A3\u30FC\u30EB\u30C9 Designer-Plugin_Install_Success= FR-Designer-Plugin_Install_Failed= FR-Designer-Plugin_Install_Dependence= +FR-Designer-Plugin_Has_Install_Lower= +FR-Designer-Plugin_No_Plugin_Update= FR-Designer-Plugin-Install_Package= +FR-Designer-Plugin-Update_Dependence_Success= +FR-Designer-Plugin-Update_Dependence_Failed= +FR-Designer-Plugin-Install_Dependence_Success= +FR-Designer-Plugin-Install_Dependence_Failed= +FR-Designer-Plugin_Delete_Confirmed= FR-Designer-Plugin_Delete_Dependence= FR-Designer-Plugin_Delete_Success= FR-Designer-Plugin_Delete_Failed= diff --git a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties index d7d7b0401..112c1eeeb 100644 --- a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties +++ b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties @@ -1986,7 +1986,14 @@ FormulaD-Data_Fields=\uB370\uC774\uD130\uD56D\uBAA9 Designer-Plugin_Install_Success= FR-Designer-Plugin_Install_Failed= FR-Designer-Plugin_Install_Dependence= +FR-Designer-Plugin_Has_Install_Lower= +FR-Designer-Plugin_No_Plugin_Update= FR-Designer-Plugin-Install_Package= +FR-Designer-Plugin-Update_Dependence_Success= +FR-Designer-Plugin-Update_Dependence_Failed= +FR-Designer-Plugin-Install_Dependence_Success= +FR-Designer-Plugin-Install_Dependence_Failed= +FR-Designer-Plugin_Delete_Confirmed= FR-Designer-Plugin_Delete_Dependence= FR-Designer-Plugin_Delete_Success= FR-Designer-Plugin_Delete_Failed= diff --git a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties index ed27f84a9..2bbcdabe4 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties @@ -2002,7 +2002,14 @@ FR-Designer-Alphafine_No_Remind=\u4E0D\u518D\u63D0\u793A FR-Designer-Plugin_Install_Success=\u63D2\u4EF6\u5B89\u88C5\u6210\u529F FR-Designer-Plugin_Install_Failed=\u63D2\u4EF6\u5B89\u88C5\u5931\u8D25 FR-Designer-Plugin_Install_Dependence=\u662F\u5426\u5B89\u88C5\u4F9D\u8D56\u73AF\u5883 +FR-Designer-Plugin_Has_Install_Lower=\u5DF2\u7ECF\u5B89\u88C5\u4F4E\u7248\u672C\u63D2\u4EF6\uFF0C\u662F\u5426\u8FDB\u884C\u66F4\u65B0\uFF1F +FR-Designer-Plugin_No_Plugin_Update=\u6CA1\u6709\u627E\u5230\u5BF9\u5E94\u7684\u63D2\u4EF6\uFF0C\u662F\u5426\u5B89\u88C5\uFF1F FR-Designer-Plugin-Install_Package=\u63D2\u4EF6\u5B89\u88C5\u5305 +FR-Designer-Plugin-Update_Dependence_Success=\u4F9D\u8D56\u63D2\u4EF6\u66F4\u65B0\u6210\u529F +FR-Designer-Plugin-Update_Dependence_Failed=\u4F9D\u8D56\u63D2\u4EF6\u66F4\u65B0\u5931\u8D25 +FR-Designer-Plugin-Install_Dependence_Success=\u4F9D\u8D56\u63D2\u4EF6\u5B89\u88C5\u6210\u529F +FR-Designer-Plugin-Install_Dependence_Failed=\u4F9D\u8D56\u63D2\u4EF6\u5B89\u88C5\u5931\u8D25 +FR-Designer-Plugin_Delete_Confirmed=\u786E\u5B9A\u5220\u9664\u6B64\u63D2\u4EF6\uFF1F FR-Designer-Plugin_Delete_Dependence=\u662F\u5426\u5220\u9664\u4F9D\u8D56\u73AF\u5883 FR-Designer-Plugin_Delete_Success=\u63D2\u4EF6\u5220\u9664\u6210\u529F FR-Designer-Plugin_Delete_Failed=\u63D2\u4EF6\u5220\u9664\u5931\u8D25 diff --git a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties index 4e7fa5056..0c07222dd 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties @@ -2003,7 +2003,14 @@ FR-Designer-Alphafine_No_Remind=\u4E0D\u518D\u63D0\u793A Designer-Plugin_Install_Success= FR-Designer-Plugin_Install_Failed= FR-Designer-Plugin_Install_Dependence= +FR-Designer-Plugin_Has_Install_Lower= +FR-Designer-Plugin_No_Plugin_Update= FR-Designer-Plugin-Install_Package= +FR-Designer-Plugin-Update_Dependence_Success= +FR-Designer-Plugin-Update_Dependence_Failed= +FR-Designer-Plugin-Install_Dependence_Success= +FR-Designer-Plugin-Install_Dependence_Failed= +FR-Designer-Plugin_Delete_Confirmed= FR-Designer-Plugin_Delete_Dependence= FR-Designer-Plugin_Delete_Success= FR-Designer-Plugin_Delete_Failed= From cb41e8098cae5c96bbd5692e0966da09d8f5e715 Mon Sep 17 00:00:00 2001 From: kerry Date: Wed, 21 Jun 2017 17:46:22 +0800 Subject: [PATCH 2/9] =?UTF-8?q?REPORT-2354=20=E5=B0=86=E5=B9=B3=E5=8F=B0?= =?UTF-8?q?=E7=9A=84=E6=8F=92=E4=BB=B6=E7=AE=A1=E7=90=86=E5=92=8C=E8=AE=BE?= =?UTF-8?q?=E8=AE=A1=E5=99=A8=E7=9A=84=E6=8F=92=E4=BB=B6=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E7=BB=9F=E4=B8=80=E8=B5=B7=E6=9D=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../callback/InstallDependenceCallback.java | 38 ------------------ .../exe/callback/InstallFromDiskCallback.java | 9 +++-- .../exe/callback/InstallOnlineCallback.java | 10 +++-- .../design/extra/exe/callback/JSCallback.java | 22 +++++------ .../design/extra/exe/callback/JSExecutor.java | 8 ++++ .../callback/UpdateDependenceCallback.java | 39 ------------------- .../exe/callback/UpdateFromDiskCallback.java | 9 +++-- .../exe/callback/UpdateOnlineCallback.java | 9 +++-- .../exe/extratask/InstallDependenceTask.java | 24 ------------ .../exe/extratask/UpdateDependenceTask.java | 26 ------------- 10 files changed, 42 insertions(+), 152 deletions(-) delete mode 100644 designer_base/src/com/fr/design/extra/exe/callback/InstallDependenceCallback.java create mode 100644 designer_base/src/com/fr/design/extra/exe/callback/JSExecutor.java delete mode 100644 designer_base/src/com/fr/design/extra/exe/callback/UpdateDependenceCallback.java delete mode 100644 designer_base/src/com/fr/design/extra/exe/extratask/InstallDependenceTask.java delete mode 100644 designer_base/src/com/fr/design/extra/exe/extratask/UpdateDependenceTask.java diff --git a/designer_base/src/com/fr/design/extra/exe/callback/InstallDependenceCallback.java b/designer_base/src/com/fr/design/extra/exe/callback/InstallDependenceCallback.java deleted file mode 100644 index 4edc0c112..000000000 --- a/designer_base/src/com/fr/design/extra/exe/callback/InstallDependenceCallback.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.fr.design.extra.exe.callback; - -import com.fr.general.FRLogger; -import com.fr.general.Inter; -import com.fr.plugin.context.PluginMarker; -import com.fr.plugin.manage.control.PluginTaskResult; - -import javax.swing.*; - -/** - * Created by ibm on 2017/6/21. - */ -public class InstallDependenceCallback extends AbstractPluginTaskCallback { - protected JSCallback jsCallback; - private static int HUNDRED_PERCENT = 100; - - public InstallDependenceCallback(PluginMarker pluginMarker, JSCallback jsCallback){ - this.pluginMarker = pluginMarker; - this.jsCallback = jsCallback; - } - - @Override - public void updateProgress(String description, double aProgress) { - jsCallback.execute(String.valueOf(aProgress * HUNDRED_PERCENT + "%")); - } - - - @Override - public void done(PluginTaskResult result) { - if (result.isSuccess()) { - FRLogger.getLogger().info(Inter.getLocText("FR-Designer-Plugin-Install_Dependence_Success")); - }else { - FRLogger.getLogger().info(Inter.getLocText("FR-Designer-Plugin-Install_Dependence_Failed")); - JOptionPane.showMessageDialog(null, result.getMessage(), Inter.getLocText("FR-Designer-Plugin_Warning"), JOptionPane.ERROR_MESSAGE); - } - } -} - 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 317293e4e..cd5b44b50 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 @@ -3,6 +3,7 @@ package com.fr.design.extra.exe.callback; import com.fr.design.extra.PluginOperateUtils; import com.fr.general.FRLogger; import com.fr.general.Inter; +import com.fr.plugin.context.PluginContext; import com.fr.plugin.context.PluginMarker; import com.fr.plugin.error.PluginErrorCode; import com.fr.plugin.manage.PluginManager; @@ -35,9 +36,11 @@ public class InstallFromDiskCallback extends AbstractPluginTaskCallback { @Override public void done(PluginTaskResult result) { if (result.isSuccess()) { + PluginContext pluginContext = PluginManager.getContext(pluginMarker); + String pluginName = pluginContext.getName(); jsCallback.execute("success"); - FRLogger.getLogger().info(Inter.getLocText("FR-Designer-Plugin_Install_Success")); - JOptionPane.showMessageDialog(null, Inter.getLocText("FR-Designer-Plugin_Install_Success")); + FRLogger.getLogger().info(pluginName + Inter.getLocText("FR-Designer-Plugin_Install_Success")); + JOptionPane.showMessageDialog(null, pluginName + Inter.getLocText("FR-Designer-Plugin_Install_Success")); } else if (result.errorCode() == PluginErrorCode.NeedDealWithPluginDependency) { int rv = JOptionPane.showOptionDialog( null, @@ -55,7 +58,7 @@ public class InstallFromDiskCallback extends AbstractPluginTaskCallback { List pluginTasks = result.getPreTasks(); for(PluginTask pluginTask : pluginTasks){ PluginMarker marker = pluginTask.getMarker(); - PluginOperateUtils.installPluginDependence(marker, jsCallback); + PluginOperateUtils.installPluginOnline(marker, jsCallback); } PluginManager.getController().install(zipFile, new InstallFromDiskCallback(zipFile, jsCallback)); } else if(result.errorCode() == PluginErrorCode.HasLowerPluginWhenInstall){ diff --git a/designer_base/src/com/fr/design/extra/exe/callback/InstallOnlineCallback.java b/designer_base/src/com/fr/design/extra/exe/callback/InstallOnlineCallback.java index e0f678c16..c12395021 100644 --- a/designer_base/src/com/fr/design/extra/exe/callback/InstallOnlineCallback.java +++ b/designer_base/src/com/fr/design/extra/exe/callback/InstallOnlineCallback.java @@ -3,8 +3,10 @@ package com.fr.design.extra.exe.callback; import com.fr.design.extra.PluginOperateUtils; import com.fr.general.FRLogger; import com.fr.general.Inter; +import com.fr.plugin.context.PluginContext; import com.fr.plugin.context.PluginMarker; import com.fr.plugin.error.PluginErrorCode; +import com.fr.plugin.manage.PluginManager; import com.fr.plugin.manage.control.PluginTask; import com.fr.plugin.manage.control.PluginTaskResult; @@ -32,9 +34,11 @@ public class InstallOnlineCallback extends AbstractPluginTaskCallback { @Override public void done(PluginTaskResult result) { if (result.isSuccess()) { + PluginContext pluginContext = PluginManager.getContext(pluginMarker); + String pluginName = pluginContext.getName(); jsCallback.execute("success"); - FRLogger.getLogger().info(Inter.getLocText("FR-Designer-Plugin_Install_Success")); - JOptionPane.showMessageDialog(null, Inter.getLocText("FR-Designer-Plugin_Install_Success")); + FRLogger.getLogger().info(pluginName + Inter.getLocText("FR-Designer-Plugin_Install_Success")); + JOptionPane.showMessageDialog(null, pluginName + Inter.getLocText("FR-Designer-Plugin_Install_Success")); } else if (result.errorCode() == PluginErrorCode.NeedDealWithPluginDependency) { int rv = JOptionPane.showOptionDialog( null, @@ -52,7 +56,7 @@ public class InstallOnlineCallback extends AbstractPluginTaskCallback { List pluginTasks = result.getPreTasks(); for(PluginTask pluginTask : pluginTasks){ PluginMarker marker = pluginTask.getMarker(); - PluginOperateUtils.installPluginDependence(marker, jsCallback ); + PluginOperateUtils.installPluginOnline(marker, jsCallback ); } //执行JS回调 PluginOperateUtils.installPluginOnline(pluginMarker, jsCallback); diff --git a/designer_base/src/com/fr/design/extra/exe/callback/JSCallback.java b/designer_base/src/com/fr/design/extra/exe/callback/JSCallback.java index acb74dd78..931c40717 100644 --- a/designer_base/src/com/fr/design/extra/exe/callback/JSCallback.java +++ b/designer_base/src/com/fr/design/extra/exe/callback/JSCallback.java @@ -1,10 +1,7 @@ package com.fr.design.extra.exe.callback; import com.fr.stable.StringUtils; -import javafx.application.Platform; -import javafx.beans.value.ChangeListener; -import javafx.beans.value.ObservableValue; -import javafx.concurrent.Task; +import javafx.application.Platform;; import javafx.scene.web.WebEngine; import netscape.javascript.JSObject; @@ -14,22 +11,24 @@ import java.util.regex.Pattern; /** * Created by ibm on 2017/5/27. */ -public class JSCallback extends Task { +public class JSCallback { + private JSExecutor executeScript; public JSCallback(final WebEngine webEngine, final JSObject callback) { init(webEngine, callback); } public void init(final WebEngine webEngine, final JSObject callback){ - messageProperty().addListener(new ChangeListener() { + executeScript = new JSExecutor() { @Override - public void changed(ObservableValue observable, String oldValue, final String newValue) { + public void executor(String newValue) { Platform.runLater(new Runnable() { @Override public void run() { String fun = "(" + callback + ")(\"" + trimText(newValue) + "\")"; try { + System.out.print("###"+newValue); webEngine.executeScript(fun); } catch (Exception e) { webEngine.executeScript("alert(\"" + e.getMessage() + "\")"); @@ -37,15 +36,11 @@ public class JSCallback extends Task { } }); } - }); - } - @Override - protected T call() throws Exception { - return null; + }; } public void execute(String newValue) { - updateMessage(newValue); + executeScript.executor(newValue); } @@ -88,5 +83,6 @@ public class JSCallback extends Task { } + } diff --git a/designer_base/src/com/fr/design/extra/exe/callback/JSExecutor.java b/designer_base/src/com/fr/design/extra/exe/callback/JSExecutor.java new file mode 100644 index 000000000..2adbadc87 --- /dev/null +++ b/designer_base/src/com/fr/design/extra/exe/callback/JSExecutor.java @@ -0,0 +1,8 @@ +package com.fr.design.extra.exe.callback; + +/** + * Created by ibm on 2017/6/21. + */ +public interface JSExecutor { + void executor(String newValue); +} diff --git a/designer_base/src/com/fr/design/extra/exe/callback/UpdateDependenceCallback.java b/designer_base/src/com/fr/design/extra/exe/callback/UpdateDependenceCallback.java deleted file mode 100644 index 47e6bc20f..000000000 --- a/designer_base/src/com/fr/design/extra/exe/callback/UpdateDependenceCallback.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.fr.design.extra.exe.callback; - -import com.fr.general.FRLogger; -import com.fr.general.Inter; -import com.fr.plugin.context.PluginMarker; -import com.fr.plugin.manage.control.PluginTaskResult; - -import javax.swing.*; - -/** - * Created by ibm on 2017/6/21. - */ -public class UpdateDependenceCallback extends AbstractPluginTaskCallback { - public PluginMarker toPluginMarker; - protected JSCallback jsCallback; - private static int HUNDRED_PERCENT = 100; - - public UpdateDependenceCallback(PluginMarker pluginMarker, PluginMarker toPluginMarker, JSCallback jsCallback){ - this.pluginMarker = pluginMarker; - this.toPluginMarker = toPluginMarker; - this.jsCallback = jsCallback; - } - - @Override - public void updateProgress(String description, double aProgress) { - jsCallback.execute(String.valueOf(aProgress * HUNDRED_PERCENT + "%")); - } - - - @Override - public void done(PluginTaskResult result) { - if (result.isSuccess()) { - FRLogger.getLogger().info(Inter.getLocText("FR-Designer-Plugin-Update_Dependence_Success")); - }else { - FRLogger.getLogger().info(Inter.getLocText("FR-Designer-Plugin-Update_Dependence_Failed")); - JOptionPane.showMessageDialog(null, result.getMessage(), Inter.getLocText("FR-Designer-Plugin_Warning"), JOptionPane.ERROR_MESSAGE); - } - } -} \ No newline at end of file diff --git a/designer_base/src/com/fr/design/extra/exe/callback/UpdateFromDiskCallback.java b/designer_base/src/com/fr/design/extra/exe/callback/UpdateFromDiskCallback.java index ea3883609..42aa922fd 100644 --- a/designer_base/src/com/fr/design/extra/exe/callback/UpdateFromDiskCallback.java +++ b/designer_base/src/com/fr/design/extra/exe/callback/UpdateFromDiskCallback.java @@ -3,6 +3,7 @@ package com.fr.design.extra.exe.callback; import com.fr.design.extra.PluginOperateUtils; import com.fr.general.FRLogger; import com.fr.general.Inter; +import com.fr.plugin.context.PluginContext; import com.fr.plugin.context.PluginMarker; import com.fr.plugin.error.PluginErrorCode; import com.fr.plugin.manage.PluginManager; @@ -35,9 +36,11 @@ public class UpdateFromDiskCallback extends AbstractPluginTaskCallback { @Override public void done(PluginTaskResult result) { if (result.isSuccess()) { + PluginContext pluginContext = PluginManager.getContext(pluginMarker); + String pluginName = pluginContext.getName(); jsCallback.execute("success"); - FRLogger.getLogger().info(Inter.getLocText("FR-Designer-Plugin_Update_Success")); - JOptionPane.showMessageDialog(null, Inter.getLocText("FR-Designer-Plugin_Update_Success")); + FRLogger.getLogger().info(pluginName + Inter.getLocText("FR-Designer-Plugin_Update_Success")); + JOptionPane.showMessageDialog(null, pluginName + Inter.getLocText("FR-Designer-Plugin_Update_Success")); } else if (result.errorCode() == PluginErrorCode.NeedDealWithPluginDependency) { int rv = JOptionPane.showOptionDialog( null, @@ -55,7 +58,7 @@ public class UpdateFromDiskCallback extends AbstractPluginTaskCallback { List pluginTasks = result.getPreTasks(); for(PluginTask pluginTask : pluginTasks){ PluginMarker marker = pluginTask.getMarker(); - PluginOperateUtils.updatePluginDependence(marker, jsCallback); + PluginOperateUtils.updatePluginOnline(marker, jsCallback); } PluginManager.getController().update(zipFile, new UpdateFromDiskCallback(zipFile, jsCallback)); } else if(result.errorCode() == PluginErrorCode.NoPluginToUpdate){ diff --git a/designer_base/src/com/fr/design/extra/exe/callback/UpdateOnlineCallback.java b/designer_base/src/com/fr/design/extra/exe/callback/UpdateOnlineCallback.java index ca9876b56..720a6da83 100644 --- a/designer_base/src/com/fr/design/extra/exe/callback/UpdateOnlineCallback.java +++ b/designer_base/src/com/fr/design/extra/exe/callback/UpdateOnlineCallback.java @@ -3,6 +3,7 @@ package com.fr.design.extra.exe.callback; import com.fr.design.extra.PluginOperateUtils; import com.fr.general.FRLogger; import com.fr.general.Inter; +import com.fr.plugin.context.PluginContext; import com.fr.plugin.context.PluginMarker; import com.fr.plugin.error.PluginErrorCode; import com.fr.plugin.manage.PluginManager; @@ -34,9 +35,11 @@ public class UpdateOnlineCallback extends AbstractPluginTaskCallback { @Override public void done(PluginTaskResult result) { if (result.isSuccess()) { + PluginContext pluginContext = PluginManager.getContext(pluginMarker); + String pluginName = pluginContext.getName(); jsCallback.execute("success"); - FRLogger.getLogger().info(Inter.getLocText("FR-Designer-Plugin_Update_Success")); - JOptionPane.showMessageDialog(null, Inter.getLocText("FR-Designer-Plugin_Update_Success")); + FRLogger.getLogger().info(pluginName + Inter.getLocText("FR-Designer-Plugin_Update_Success")); + JOptionPane.showMessageDialog(null,pluginName + Inter.getLocText("FR-Designer-Plugin_Update_Success")); } else if (result.errorCode() == PluginErrorCode.NeedDealWithPluginDependency) { int rv = JOptionPane.showOptionDialog( null, @@ -54,7 +57,7 @@ public class UpdateOnlineCallback extends AbstractPluginTaskCallback { List pluginTasks = result.getPreTasks(); for(PluginTask pluginTask : pluginTasks){ PluginMarker marker = pluginTask.getMarker(); - PluginOperateUtils.updatePluginDependence(marker, jsCallback); + PluginOperateUtils.updatePluginOnline(marker, jsCallback); } PluginManager.getController().update(pluginMarker, toPluginMarker, new UpdateOnlineCallback(pluginMarker, toPluginMarker, jsCallback)); } else { diff --git a/designer_base/src/com/fr/design/extra/exe/extratask/InstallDependenceTask.java b/designer_base/src/com/fr/design/extra/exe/extratask/InstallDependenceTask.java deleted file mode 100644 index 4c0d731ff..000000000 --- a/designer_base/src/com/fr/design/extra/exe/extratask/InstallDependenceTask.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.fr.design.extra.exe.extratask; - -import com.fr.design.extra.exe.callback.InstallDependenceCallback; -import com.fr.design.extra.exe.callback.JSCallback; -import com.fr.plugin.context.PluginMarker; -import com.fr.plugin.manage.PluginManager; - -/** - * Created by ibm on 2017/6/21. - */ -public class InstallDependenceTask extends AbstractExtraPluginTask { - protected JSCallback jsCallback; - - - public InstallDependenceTask(PluginMarker pluginMarker, JSCallback jsCallback) { - this.pluginMarker = pluginMarker; - this.jsCallback = jsCallback; - } - - @Override - public void doExtraPluginTask() { - PluginManager.getController().install(pluginMarker, new InstallDependenceCallback(pluginMarker, jsCallback)); - } -} \ No newline at end of file diff --git a/designer_base/src/com/fr/design/extra/exe/extratask/UpdateDependenceTask.java b/designer_base/src/com/fr/design/extra/exe/extratask/UpdateDependenceTask.java deleted file mode 100644 index 2751fb7e6..000000000 --- a/designer_base/src/com/fr/design/extra/exe/extratask/UpdateDependenceTask.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.fr.design.extra.exe.extratask; - -import com.fr.design.extra.exe.callback.JSCallback; -import com.fr.design.extra.exe.callback.UpdateDependenceCallback; -import com.fr.plugin.context.PluginMarker; -import com.fr.plugin.manage.PluginManager; - -/** - * Created by ibm on 2017/6/21. - */ -public class UpdateDependenceTask extends AbstractExtraPluginTask { - - public PluginMarker toPluginMarker; - protected JSCallback jsCallback; - - public UpdateDependenceTask(PluginMarker pluginMarker, PluginMarker toPluginMarker, JSCallback jsCallback) { - this.pluginMarker = pluginMarker; - this.toPluginMarker = toPluginMarker; - this.jsCallback = jsCallback; - } - - @Override - public void doExtraPluginTask() { - PluginManager.getController().update(pluginMarker, toPluginMarker, new UpdateDependenceCallback(pluginMarker, toPluginMarker, jsCallback)); - } -} From 88a2c6d11eca5907e8e301ae2c6bd8844682e5d9 Mon Sep 17 00:00:00 2001 From: kerry Date: Wed, 21 Jun 2017 17:47:26 +0800 Subject: [PATCH 3/9] =?UTF-8?q?REPORT-2354=20=E5=B0=86=E5=B9=B3=E5=8F=B0?= =?UTF-8?q?=E7=9A=84=E6=8F=92=E4=BB=B6=E7=AE=A1=E7=90=86=E5=92=8C=E8=AE=BE?= =?UTF-8?q?=E8=AE=A1=E5=99=A8=E7=9A=84=E6=8F=92=E4=BB=B6=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E7=BB=9F=E4=B8=80=E8=B5=B7=E6=9D=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/extra/PluginOperateUtils.java | 16 ---------------- .../fr/design/locale/designer_zh_CN.properties | 4 ++-- 2 files changed, 2 insertions(+), 18 deletions(-) diff --git a/designer_base/src/com/fr/design/extra/PluginOperateUtils.java b/designer_base/src/com/fr/design/extra/PluginOperateUtils.java index 6515a4ce3..eee7cfb8f 100644 --- a/designer_base/src/com/fr/design/extra/PluginOperateUtils.java +++ b/designer_base/src/com/fr/design/extra/PluginOperateUtils.java @@ -3,9 +3,7 @@ package com.fr.design.extra; import com.fr.base.FRContext; import com.fr.design.DesignerEnvManager; import com.fr.design.extra.exe.callback.*; -import com.fr.design.extra.exe.extratask.InstallDependenceTask; import com.fr.design.extra.exe.extratask.InstallPluginTask; -import com.fr.design.extra.exe.extratask.UpdateDependenceTask; import com.fr.design.extra.exe.extratask.UpdatePluginTask; import com.fr.general.FRLogger; import com.fr.general.Inter; @@ -46,9 +44,6 @@ public class PluginOperateUtils { PluginManager.getController().install(zipFile, new InstallFromDiskCallback(zipFile, jsCallback)); } - public static void installPluginDependence(PluginMarker pluginMarker, JSCallback jsCallback){ - PluginManager.getController().download(pluginMarker, new DownloadCallback(new InstallDependenceTask(pluginMarker, jsCallback), jsCallback)); - } public static void updatePluginOnline(List pluginMarkerList, JSCallback jsCallback) { if (!(BBSPluginLogin.getInstance().hasLogin())) { @@ -78,17 +73,6 @@ public class PluginOperateUtils { PluginManager.getController().update(new File(filePath), new UpdateFromDiskCallback(new File(filePath), jsCallback)); } - public static void updatePluginDependence(PluginMarker pluginMarker, JSCallback jsCallback){ - try { - JSONObject latestPluginInfo = PluginUtils.getLatestPluginInfo(pluginMarker.getPluginID()); - String latestPluginVersion = (String) latestPluginInfo.get("version"); - PluginMarker toPluginMarker = PluginMarker.create(pluginMarker.getPluginID(), latestPluginVersion); - PluginManager.getController().download(pluginMarker, new DownloadCallback(new UpdateDependenceTask(pluginMarker, toPluginMarker, jsCallback), jsCallback)); - } catch (Exception e) { - FRContext.getLogger().error(e.getMessage(), e); - } - - } public static void setPluginActive(String pluginInfo, JSCallback jsCallback) { PluginMarker pluginMarker = PluginUtils.createPluginMarker(pluginInfo); diff --git a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties index 2bbcdabe4..5f2ceb50f 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties @@ -2001,7 +2001,7 @@ FR-Designer_Alphafine=AlphaFine\u667A\u80FD\u641C\u7D22 FR-Designer-Alphafine_No_Remind=\u4E0D\u518D\u63D0\u793A FR-Designer-Plugin_Install_Success=\u63D2\u4EF6\u5B89\u88C5\u6210\u529F FR-Designer-Plugin_Install_Failed=\u63D2\u4EF6\u5B89\u88C5\u5931\u8D25 -FR-Designer-Plugin_Install_Dependence=\u662F\u5426\u5B89\u88C5\u4F9D\u8D56\u73AF\u5883 +FR-Designer-Plugin_Install_Dependence=\u662F\u5426\u5B89\u88C5\u4F9D\u8D56\u63D2\u4EF6 FR-Designer-Plugin_Has_Install_Lower=\u5DF2\u7ECF\u5B89\u88C5\u4F4E\u7248\u672C\u63D2\u4EF6\uFF0C\u662F\u5426\u8FDB\u884C\u66F4\u65B0\uFF1F FR-Designer-Plugin_No_Plugin_Update=\u6CA1\u6709\u627E\u5230\u5BF9\u5E94\u7684\u63D2\u4EF6\uFF0C\u662F\u5426\u5B89\u88C5\uFF1F FR-Designer-Plugin-Install_Package=\u63D2\u4EF6\u5B89\u88C5\u5305 @@ -2013,7 +2013,7 @@ FR-Designer-Plugin_Delete_Confirmed=\u786E\u5B9A\u5220\u9664\u6B64\u63D2\u4EF6\u FR-Designer-Plugin_Delete_Dependence=\u662F\u5426\u5220\u9664\u4F9D\u8D56\u73AF\u5883 FR-Designer-Plugin_Delete_Success=\u63D2\u4EF6\u5220\u9664\u6210\u529F FR-Designer-Plugin_Delete_Failed=\u63D2\u4EF6\u5220\u9664\u5931\u8D25 -FR-Designer-Plugin_Update_Dependence=\u662F\u5426\u66F4\u65B0\u4F9D\u8D56\u73AF\u5883 +FR-Designer-Plugin_Update_Dependence=\u662F\u5426\u66F4\u65B0\u4F9D\u8D56\u63D2\u4EF6 FR-Designer-Plugin_Update_Success=\u63D2\u4EF6\u66F4\u65B0\u6210\u529F FR-Designer-Plugin_Update_Failed=\u63D2\u4EF6\u66F4\u65B0\u5931\u8D25 FR-Designer-Plugin_Actived=\u63D2\u4EF6\u5DF2\u88AB\u542F\u7528 From 0273043249bfbc078437f28668f963962f7d1adf Mon Sep 17 00:00:00 2001 From: kerry Date: Wed, 21 Jun 2017 18:24:18 +0800 Subject: [PATCH 4/9] PMD --- .../src/com/fr/design/extra/exe/callback/JSCallback.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/designer_base/src/com/fr/design/extra/exe/callback/JSCallback.java b/designer_base/src/com/fr/design/extra/exe/callback/JSCallback.java index 931c40717..a4614e89b 100644 --- a/designer_base/src/com/fr/design/extra/exe/callback/JSCallback.java +++ b/designer_base/src/com/fr/design/extra/exe/callback/JSCallback.java @@ -1,7 +1,7 @@ package com.fr.design.extra.exe.callback; import com.fr.stable.StringUtils; -import javafx.application.Platform;; +import javafx.application.Platform; import javafx.scene.web.WebEngine; import netscape.javascript.JSObject; From 31afffc78f0d1fada76b48d316834a6e5231292b Mon Sep 17 00:00:00 2001 From: kerry Date: Wed, 21 Jun 2017 18:25:30 +0800 Subject: [PATCH 5/9] PMD --- .../src/com/fr/design/extra/exe/callback/JSCallback.java | 1 - 1 file changed, 1 deletion(-) diff --git a/designer_base/src/com/fr/design/extra/exe/callback/JSCallback.java b/designer_base/src/com/fr/design/extra/exe/callback/JSCallback.java index a4614e89b..a46f73b30 100644 --- a/designer_base/src/com/fr/design/extra/exe/callback/JSCallback.java +++ b/designer_base/src/com/fr/design/extra/exe/callback/JSCallback.java @@ -28,7 +28,6 @@ public class JSCallback { public void run() { String fun = "(" + callback + ")(\"" + trimText(newValue) + "\")"; try { - System.out.print("###"+newValue); webEngine.executeScript(fun); } catch (Exception e) { webEngine.executeScript("alert(\"" + e.getMessage() + "\")"); From da26d091fe513978e282fbd6bb88b7e9ed202f84 Mon Sep 17 00:00:00 2001 From: kerry Date: Wed, 21 Jun 2017 19:39:53 +0800 Subject: [PATCH 6/9] =?UTF-8?q?REPORT-2354=20=E5=B0=86=E5=B9=B3=E5=8F=B0?= =?UTF-8?q?=E7=9A=84=E6=8F=92=E4=BB=B6=E7=AE=A1=E7=90=86=E5=92=8C=E8=AE=BE?= =?UTF-8?q?=E8=AE=A1=E5=99=A8=E7=9A=84=E6=8F=92=E4=BB=B6=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E7=BB=9F=E4=B8=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/fr/design/extra/PluginOperateUtils.java | 2 +- .../design/extra/exe/callback/InstallFromDiskCallback.java | 6 ++---- .../design/extra/exe/callback/UpdateFromDiskCallback.java | 6 ++---- .../fr/design/extra/exe/callback/UpdateOnlineCallback.java | 2 +- 4 files changed, 6 insertions(+), 10 deletions(-) diff --git a/designer_base/src/com/fr/design/extra/PluginOperateUtils.java b/designer_base/src/com/fr/design/extra/PluginOperateUtils.java index eee7cfb8f..516d1f0e1 100644 --- a/designer_base/src/com/fr/design/extra/PluginOperateUtils.java +++ b/designer_base/src/com/fr/design/extra/PluginOperateUtils.java @@ -61,7 +61,7 @@ public class PluginOperateUtils { JSONObject latestPluginInfo = PluginUtils.getLatestPluginInfo(pluginMarker.getPluginID()); String latestPluginVersion = (String) latestPluginInfo.get("version"); PluginMarker toPluginMarker = PluginMarker.create(pluginMarker.getPluginID(), latestPluginVersion); - PluginManager.getController().download(pluginMarker, new DownloadCallback(new UpdatePluginTask(pluginMarker, toPluginMarker, jsCallback), jsCallback)); + PluginManager.getController().download(toPluginMarker, new DownloadCallback(new UpdatePluginTask(pluginMarker, toPluginMarker, jsCallback), jsCallback)); } catch (Exception e) { FRContext.getLogger().error(e.getMessage(), e); } 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 cd5b44b50..16c46ebe7 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 @@ -36,11 +36,9 @@ public class InstallFromDiskCallback extends AbstractPluginTaskCallback { @Override public void done(PluginTaskResult result) { if (result.isSuccess()) { - PluginContext pluginContext = PluginManager.getContext(pluginMarker); - String pluginName = pluginContext.getName(); jsCallback.execute("success"); - FRLogger.getLogger().info(pluginName + Inter.getLocText("FR-Designer-Plugin_Install_Success")); - JOptionPane.showMessageDialog(null, pluginName + Inter.getLocText("FR-Designer-Plugin_Install_Success")); + FRLogger.getLogger().info(Inter.getLocText("FR-Designer-Plugin_Install_Success")); + JOptionPane.showMessageDialog(null, Inter.getLocText("FR-Designer-Plugin_Install_Success")); } else if (result.errorCode() == PluginErrorCode.NeedDealWithPluginDependency) { int rv = JOptionPane.showOptionDialog( null, diff --git a/designer_base/src/com/fr/design/extra/exe/callback/UpdateFromDiskCallback.java b/designer_base/src/com/fr/design/extra/exe/callback/UpdateFromDiskCallback.java index 42aa922fd..8a37b7b7d 100644 --- a/designer_base/src/com/fr/design/extra/exe/callback/UpdateFromDiskCallback.java +++ b/designer_base/src/com/fr/design/extra/exe/callback/UpdateFromDiskCallback.java @@ -36,11 +36,9 @@ public class UpdateFromDiskCallback extends AbstractPluginTaskCallback { @Override public void done(PluginTaskResult result) { if (result.isSuccess()) { - PluginContext pluginContext = PluginManager.getContext(pluginMarker); - String pluginName = pluginContext.getName(); jsCallback.execute("success"); - FRLogger.getLogger().info(pluginName + Inter.getLocText("FR-Designer-Plugin_Update_Success")); - JOptionPane.showMessageDialog(null, pluginName + Inter.getLocText("FR-Designer-Plugin_Update_Success")); + FRLogger.getLogger().info(Inter.getLocText("FR-Designer-Plugin_Update_Success")); + JOptionPane.showMessageDialog(null, Inter.getLocText("FR-Designer-Plugin_Update_Success")); } else if (result.errorCode() == PluginErrorCode.NeedDealWithPluginDependency) { int rv = JOptionPane.showOptionDialog( null, diff --git a/designer_base/src/com/fr/design/extra/exe/callback/UpdateOnlineCallback.java b/designer_base/src/com/fr/design/extra/exe/callback/UpdateOnlineCallback.java index 720a6da83..f68f34b95 100644 --- a/designer_base/src/com/fr/design/extra/exe/callback/UpdateOnlineCallback.java +++ b/designer_base/src/com/fr/design/extra/exe/callback/UpdateOnlineCallback.java @@ -35,7 +35,7 @@ public class UpdateOnlineCallback extends AbstractPluginTaskCallback { @Override public void done(PluginTaskResult result) { if (result.isSuccess()) { - PluginContext pluginContext = PluginManager.getContext(pluginMarker); + PluginContext pluginContext = PluginManager.getContext(toPluginMarker); String pluginName = pluginContext.getName(); jsCallback.execute("success"); FRLogger.getLogger().info(pluginName + Inter.getLocText("FR-Designer-Plugin_Update_Success")); From e6cf95ef5e709e9a4339f139ea86575e845d4f53 Mon Sep 17 00:00:00 2001 From: kerry Date: Thu, 22 Jun 2017 10:19:55 +0800 Subject: [PATCH 7/9] =?UTF-8?q?REPORT-2354=20=E5=95=86=E5=9F=8E=E8=84=9A?= =?UTF-8?q?=E6=9C=AC=E4=B8=8B=E8=BD=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/extra/PluginStoreConstants.java | 4 +- .../src/com/fr/design/extra/PluginUtils.java | 9 +- .../com/fr/design/extra/WebViewDlgHelper.java | 83 +++++++++++++------ 3 files changed, 67 insertions(+), 29 deletions(-) diff --git a/designer_base/src/com/fr/design/extra/PluginStoreConstants.java b/designer_base/src/com/fr/design/extra/PluginStoreConstants.java index 8bd7740bf..84416fb25 100644 --- a/designer_base/src/com/fr/design/extra/PluginStoreConstants.java +++ b/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) { } } diff --git a/designer_base/src/com/fr/design/extra/PluginUtils.java b/designer_base/src/com/fr/design/extra/PluginUtils.java index 20f19c144..cda7e286a 100644 --- a/designer_base/src/com/fr/design/extra/PluginUtils.java +++ b/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) { diff --git a/designer_base/src/com/fr/design/extra/WebViewDlgHelper.java b/designer_base/src/com/fr/design/extra/WebViewDlgHelper.java index bccc259f2..7580a45ac 100644 --- a/designer_base/src/com/fr/design/extra/WebViewDlgHelper.java +++ b/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() { @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; From eb2a39b6b93eb9413396e7caf95b01b18d39ec1f Mon Sep 17 00:00:00 2001 From: kerry Date: Thu, 22 Jun 2017 10:22:50 +0800 Subject: [PATCH 8/9] PMD --- designer_base/src/com/fr/design/extra/WebViewDlgHelper.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/designer_base/src/com/fr/design/extra/WebViewDlgHelper.java b/designer_base/src/com/fr/design/extra/WebViewDlgHelper.java index 7580a45ac..4864868a4 100644 --- a/designer_base/src/com/fr/design/extra/WebViewDlgHelper.java +++ b/designer_base/src/com/fr/design/extra/WebViewDlgHelper.java @@ -34,6 +34,7 @@ public class WebViewDlgHelper { private static final int VERSION_8 = 8; // 调试时,使用installHome = ClassLoader.getSystemResource("").getPath()代替下面 private static String installHome = StableUtils.getInstallHome(); + private static final int BYTES_NUM = 1024; public static void createPluginDialog() { if (StableUtils.getMajorJavaVersion() >= VERSION_8) { @@ -85,7 +86,7 @@ public class WebViewDlgHelper { if (mainJsFile.exists()) { InputStream inStream = new FileInputStream(mainJsPath); FileOutputStream fs = new FileOutputStream(indexPath); - byte[] buffer = new byte[1444]; + byte[] buffer = new byte[BYTES_NUM]; while ((byteread = inStream.read(buffer)) != -1) { fs.write(buffer, 0, byteread); } From f6058bf98d130cda369a4a2cb98e85096f63ab8a Mon Sep 17 00:00:00 2001 From: kerry Date: Thu, 22 Jun 2017 10:49:09 +0800 Subject: [PATCH 9/9] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E5=9C=B0=E5=9D=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- designer_base/src/com/fr/design/extra/WebViewDlgHelper.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/designer_base/src/com/fr/design/extra/WebViewDlgHelper.java b/designer_base/src/com/fr/design/extra/WebViewDlgHelper.java index 4864868a4..d00d0b870 100644 --- a/designer_base/src/com/fr/design/extra/WebViewDlgHelper.java +++ b/designer_base/src/com/fr/design/extra/WebViewDlgHelper.java @@ -214,7 +214,7 @@ public class WebViewDlgHelper { new SwingWorker() { @Override protected Void doInBackground() throws Exception { - HttpClient httpClient = new HttpClient(SiteCenter.getInstance().acquireUrlByKind("shop.plugin.checkversion") + "&version=" + PluginStoreConstants.VERSION); + HttpClient httpClient = new HttpClient(SiteCenter.getInstance().acquireUrlByKind("shop.plugin.cv") + "&version=" + PluginStoreConstants.VERSION); httpClient.asGet(); if (httpClient.getResponseCode() == HttpURLConnection.HTTP_OK) { String text = httpClient.getResponseText();