From 40d94dfc032c10f9c03123eb19a04df26a6030d1 Mon Sep 17 00:00:00 2001 From: kerry Date: Fri, 3 Nov 2017 17:00:51 +0800 Subject: [PATCH] =?UTF-8?q?REPORT-5387=20[9.0=E4=B8=89=E8=BD=AE=E5=9B=9E?= =?UTF-8?q?=E5=BD=92]=E8=AE=BE=E8=AE=A1=E5=99=A8=E6=8C=89=E9=92=AE?= =?UTF-8?q?=E6=8E=A7=E4=BB=B6=E7=9A=84=E5=9B=BE=E6=A0=87=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E6=97=A0=E6=95=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../exe/GetPluginCategoriesExecutor.java | 42 ++++++++++++ .../extra/exe/GetPluginFromStoreExecutor.java | 68 +++++++++++++++++++ .../extra/exe/ReadUpdateOnlineExecutor.java | 51 ++++++++++++++ .../extra/exe/SearchOnlineExecutor.java | 47 +++++++++++++ .../src/com/fr/design/web/CustomIconPane.java | 5 +- 5 files changed, 212 insertions(+), 1 deletion(-) create mode 100644 designer_base/src/com/fr/design/extra/exe/GetPluginCategoriesExecutor.java create mode 100644 designer_base/src/com/fr/design/extra/exe/GetPluginFromStoreExecutor.java create mode 100644 designer_base/src/com/fr/design/extra/exe/ReadUpdateOnlineExecutor.java create mode 100644 designer_base/src/com/fr/design/extra/exe/SearchOnlineExecutor.java diff --git a/designer_base/src/com/fr/design/extra/exe/GetPluginCategoriesExecutor.java b/designer_base/src/com/fr/design/extra/exe/GetPluginCategoriesExecutor.java new file mode 100644 index 000000000..92aa0bbe8 --- /dev/null +++ b/designer_base/src/com/fr/design/extra/exe/GetPluginCategoriesExecutor.java @@ -0,0 +1,42 @@ +package com.fr.design.extra.exe; + +import com.fr.design.extra.PluginHelper; +import com.fr.design.extra.Process; +import com.fr.general.SiteCenter; +import com.fr.general.http.HttpClient; + +/** + * Created by vito on 16/5/16. + */ +public class GetPluginCategoriesExecutor implements Executor { + private String result = "[]"; + + @Override + public String getTaskFinishMessage() { + return result; + } + + @Override + public Command[] getCommands() { + return new Command[]{ + new Command() { + @Override + public String getExecuteMessage() { + return null; + } + + @Override + public void run(Process process) { + String url = SiteCenter.getInstance().acquireUrlByKind("plugin.category"); + if (url != null) { + HttpClient httpClient = new HttpClient(url); + result = httpClient.getResponseText(); + } else { + result = PluginHelper.CONNECTION_404; + } + + } + } + }; + } +} diff --git a/designer_base/src/com/fr/design/extra/exe/GetPluginFromStoreExecutor.java b/designer_base/src/com/fr/design/extra/exe/GetPluginFromStoreExecutor.java new file mode 100644 index 000000000..9bd7e2bbe --- /dev/null +++ b/designer_base/src/com/fr/design/extra/exe/GetPluginFromStoreExecutor.java @@ -0,0 +1,68 @@ +package com.fr.design.extra.exe; + +import com.fr.design.extra.PluginHelper; +import com.fr.design.extra.Process; +import com.fr.general.FRLogger; +import com.fr.general.SiteCenter; +import com.fr.general.http.HttpClient; +import com.fr.stable.StringUtils; + +/** + * Created by vito on 16/4/18. + * 获取插件分类信息 + */ +public class GetPluginFromStoreExecutor implements Executor { + private String result = "[]"; + private String category; + private String seller; + private String fee; + + public GetPluginFromStoreExecutor(String category, String seller, String fee) { + this.category = category; + this.seller = seller; + this.fee = fee; + } + + @Override + public String getTaskFinishMessage() { + return result; + } + + @Override + public Command[] getCommands() { + return new Command[]{ + new Command() { + @Override + public String getExecuteMessage() { + return StringUtils.EMPTY; + } + + @Override + public void run(Process process) { + String plistUrl = SiteCenter.getInstance().acquireUrlByKind("plugin.plist"); + if (StringUtils.isNotBlank(plistUrl)) { + StringBuilder url = new StringBuilder(); + url.append(plistUrl); + if (StringUtils.isNotBlank(category)) { + url.append("&cid=").append(category.split("-")[1]); + } + if (StringUtils.isNotBlank(seller)) { + url.append("&seller=").append(seller.split("-")[1]); + } + if (StringUtils.isNotBlank(fee)) { + url.append("&fee=").append(fee.split("-")[1]); + } + try { + HttpClient httpClient = new HttpClient(url.toString()); + result = httpClient.getResponseText(); + } catch (Exception e) { + FRLogger.getLogger().error(e.getMessage()); + } + } else { + result = PluginHelper.CONNECTION_404; + } + } + } + }; + } +} diff --git a/designer_base/src/com/fr/design/extra/exe/ReadUpdateOnlineExecutor.java b/designer_base/src/com/fr/design/extra/exe/ReadUpdateOnlineExecutor.java new file mode 100644 index 000000000..c510a67cc --- /dev/null +++ b/designer_base/src/com/fr/design/extra/exe/ReadUpdateOnlineExecutor.java @@ -0,0 +1,51 @@ +package com.fr.design.extra.exe; + +import com.fr.design.extra.PluginsReaderFromStore; +import com.fr.design.extra.Process; +import com.fr.general.FRLogger; + +import com.fr.plugin.Plugin; +import com.fr.stable.StringUtils; +import org.json.JSONArray; +import org.json.JSONObject; + +/** + * Created by vito on 16/4/19. + */ +public class ReadUpdateOnlineExecutor implements Executor { + private Plugin[] plugins; + private String result; + + @Override + public String getTaskFinishMessage() { + return result; + } + + @Override + public Command[] getCommands() { + return new Command[]{ + new Command() { + @Override + public String getExecuteMessage() { + return StringUtils.EMPTY; + } + + @Override + public void run(Process process) { + try { + plugins = PluginsReaderFromStore.readPluginsForUpdate(); + JSONArray jsonArray = new JSONArray(); + for (Plugin plugin : plugins) { + JSONObject jsonObject = new JSONObject(); + jsonObject.put("pluginid", plugin.getId()); + jsonArray.put(jsonObject); + } + result = jsonArray.toString(); + } catch (Exception e) { + FRLogger.getLogger().error(e.getMessage()); + } + } + } + }; + } +} diff --git a/designer_base/src/com/fr/design/extra/exe/SearchOnlineExecutor.java b/designer_base/src/com/fr/design/extra/exe/SearchOnlineExecutor.java new file mode 100644 index 000000000..089173c98 --- /dev/null +++ b/designer_base/src/com/fr/design/extra/exe/SearchOnlineExecutor.java @@ -0,0 +1,47 @@ +package com.fr.design.extra.exe; + +import com.fr.design.extra.Process; +import com.fr.general.FRLogger; +import com.fr.general.SiteCenter; +import com.fr.general.http.HttpClient; +import com.fr.stable.StringUtils; + +/** + * Created by vito on 16/4/18. + */ +public class SearchOnlineExecutor implements Executor { + private String result; + private String keyword; + + public SearchOnlineExecutor(String keyword) { + this.keyword = keyword; + } + + @Override + public String getTaskFinishMessage() { + return result; + } + + @Override + public Command[] getCommands() { + return new Command[]{ + new Command() { + @Override + public String getExecuteMessage() { + return StringUtils.EMPTY; + } + + @Override + public void run(Process process) { + try { + HttpClient httpClient = new HttpClient(SiteCenter.getInstance().acquireUrlByKind("plugin.plist") + "&keyword=" + keyword); + result = httpClient.getResponseText(); + + } catch (Exception e) { + FRLogger.getLogger().error(e.getMessage()); + } + } + } + }; + } +} diff --git a/designer_base/src/com/fr/design/web/CustomIconPane.java b/designer_base/src/com/fr/design/web/CustomIconPane.java index dbf4b37b8..eebd65d52 100644 --- a/designer_base/src/com/fr/design/web/CustomIconPane.java +++ b/designer_base/src/com/fr/design/web/CustomIconPane.java @@ -232,6 +232,9 @@ public class CustomIconPane extends BasicPane { } private void updateButtonPane() { + if (editButton == null || removeButton == null){ + return; + } if (iconManager.isSystemIcon(selectedIconName)) { editButton.setEnabled(false); removeButton.setEnabled(false); @@ -298,7 +301,7 @@ public class CustomIconPane extends BasicPane { } catch (RuntimeException re) { return; } - updateButtonPane(); + updateButtonPane(); } private class IconButton extends JToggleButton implements ActionListener{