From f11a5605c66567f462848b09ec0ddcc185bb20ce Mon Sep 17 00:00:00 2001 From: richie Date: Fri, 19 Apr 2019 11:19:01 +0800 Subject: [PATCH] =?UTF-8?q?KERNEL-442=20=E6=B2=A1=E6=9C=89=E8=B5=84?= =?UTF-8?q?=E6=BA=90=E6=96=87=E4=BB=B6=E6=97=B6=E7=9A=84=E4=B8=8B=E8=BD=BD?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/fr/design/upm/UpmBridge.java | 33 +++++++--- .../main/java/com/fr/design/upm/UpmPane.java | 2 +- .../fr/design/upm/event/DownloadEvent.java | 2 +- .../main/resources/com/fr/design/upm/warn.js | 63 +++++++++++++++---- 4 files changed, 79 insertions(+), 21 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/upm/UpmBridge.java b/designer-base/src/main/java/com/fr/design/upm/UpmBridge.java index 8984e41913..bc2fe0b037 100644 --- a/designer-base/src/main/java/com/fr/design/upm/UpmBridge.java +++ b/designer-base/src/main/java/com/fr/design/upm/UpmBridge.java @@ -18,6 +18,7 @@ import com.fr.design.upm.event.CertificateEvent; import com.fr.design.upm.event.DownloadEvent; import com.fr.design.upm.exec.UpmBrowserExecutor; import com.fr.design.upm.task.UpmTaskWorker; +import com.fr.event.Event; import com.fr.event.EventDispatcher; import com.fr.general.CloudCenter; import com.fr.general.GeneralUtils; @@ -60,14 +61,30 @@ public class UpmBridge { this.window = browser.executeJavaScriptAndReturnValue("window").asObject(); } - public void startDownload() { - try { - UpmResourceLoader.INSTANCE.download(); - UpmResourceLoader.INSTANCE.install(); - } catch (Exception e) { - FineLoggerFactory.getLogger().error(e.getMessage(), e); - } - EventDispatcher.fire(DownloadEvent.FINISH, "start"); + public void startDownload(final JSFunction callback) { + + new SwingWorker(){ + @Override + protected Void doInBackground() throws Exception { + callback.invoke(window, Toolkit.i18nText("Fine-Design_Basic_Update_Plugin_Manager_Download_Start")); + UpmResourceLoader.INSTANCE.download(); + UpmResourceLoader.INSTANCE.install(); + return null; + } + + @Override + protected void done() { + try { + get(); + callback.invoke(window, Toolkit.i18nText("Fine-Design_Basic_Update_Plugin_Manager_Download_Success")); + EventDispatcher.fire(DownloadEvent.SUCCESS, "success"); + } catch (Exception e) { + callback.invoke(window, Toolkit.i18nText("Fine-Design_Basic_Update_Plugin_Manager_Download_Error")); + FineLoggerFactory.getLogger().error(e.getMessage(), e); + EventDispatcher.fire(DownloadEvent.ERROR, "error"); + } + } + }.execute(); } @JSBridge diff --git a/designer-base/src/main/java/com/fr/design/upm/UpmPane.java b/designer-base/src/main/java/com/fr/design/upm/UpmPane.java index ec0b542f4f..3e4ccc5814 100644 --- a/designer-base/src/main/java/com/fr/design/upm/UpmPane.java +++ b/designer-base/src/main/java/com/fr/design/upm/UpmPane.java @@ -50,7 +50,7 @@ public class UpmPane extends BasicPane { window.asObject().setProperty("PluginHelper", UpmBridge.getBridge(event.getBrowser())); } }).build(); - EventDispatcher.listen(DownloadEvent.FINISH, new Listener() { + EventDispatcher.listen(DownloadEvent.SUCCESS, new Listener() { @Override public void on(Event event, String param) { modernUIPane.redirect(UpmFinder.getMainResourcePath()); diff --git a/designer-base/src/main/java/com/fr/design/upm/event/DownloadEvent.java b/designer-base/src/main/java/com/fr/design/upm/event/DownloadEvent.java index 7ac53dd17d..e07156b83e 100644 --- a/designer-base/src/main/java/com/fr/design/upm/event/DownloadEvent.java +++ b/designer-base/src/main/java/com/fr/design/upm/event/DownloadEvent.java @@ -9,5 +9,5 @@ import com.fr.event.Event; */ public enum DownloadEvent implements Event { - FINISH + SUCCESS, ERROR } diff --git a/designer-base/src/main/resources/com/fr/design/upm/warn.js b/designer-base/src/main/resources/com/fr/design/upm/warn.js index 7b9d5d84ae..1eb5fb6407 100644 --- a/designer-base/src/main/resources/com/fr/design/upm/warn.js +++ b/designer-base/src/main/resources/com/fr/design/upm/warn.js @@ -1,20 +1,61 @@ window.onload = function () { - let button = BI.createWidget({ - type : "bi.button", - text : PluginHelper.i18nText("Fine-Design_Basic_Update_Plugin_Manager_Resource_Warn"), + let label = BI.createWidget({ + type: "bi.label", + text: PluginHelper.i18nText("Fine-Design_Basic_Update_Plugin_Manager_Resource_Warn"), + height: 30 + }); + let callback = function(text) { + download.setValue(text); + }; + let buttonOK = BI.createWidget({ + type: "bi.button", + text: PluginHelper.i18nText("Fine-Design_Basic_Update_Plugin_Manager_Download"), level: 'common', height: 30, - handler : function () { - PluginHelper.startDownload(); + handler: function () { + PluginHelper.startDownload(callback); } }); + let buttonClose = BI.createWidget({ + type: "bi.button", + text: PluginHelper.i18nText("Fine-Design_Basic_Update_Plugin_Manager_Close"), + level: 'warning', + height: 30, + handler: function () { + PluginHelper.closeWindow(); + } + }); + + let download = BI.createWidget({ + type: "bi.label", + height: 30 + }); + let left = 300; + let top = 200; BI.createWidget({ - type:"bi.absolute", + type: "bi.absolute", element: "body", - items: [{ - el: button, - left: 100, - top: 100 - }] + items: [ + { + el: label, + left: left, + top: top + }, + { + el : buttonOK, + left : left, + top : top + 40 + }, + { + el : buttonClose, + left : left + 100, + top : top + 40 + }, + { + el : download, + left : left, + top : top + 80 + } + ] }); }; \ No newline at end of file