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 8984e4191..bc2fe0b03 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 ec0b542f4..3e4ccc581 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 7ac53dd17..e07156b83 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 7b9d5d84a..1eb5fb640 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