From 3d6a95e5a7184df01cfe0b5158b43703fcd1eb84 Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Mon, 22 May 2017 15:19:23 +0800 Subject: [PATCH] =?UTF-8?q?alphafine=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../alphafine/AlphaFineConstants.java | 2 + .../mainframe/alphafine/AlphaFineHelper.java | 16 +++- .../alphafine/cell/CellModelHelper.java | 18 +++-- .../alphafine/cell/cellModel/ActionModel.java | 25 +++---- .../cell/cellModel/AlphaCellModel.java | 3 +- .../cell/cellModel/DocumentModel.java | 29 ++++++-- .../alphafine/cell/cellModel/FileModel.java | 8 +- .../alphafine/cell/cellModel/ModelHandel.java | 13 ---- .../alphafine/cell/cellModel/PluginModel.java | 56 +++++++------- .../alphafine/component/AlphaFineDialog.java | 26 +++++-- .../alphafine/images/default_product.png | Bin 0 -> 2736 bytes .../searchManager/ActionSearchManager.java | 55 +++++++++----- .../searchManager/AlphaSearchManager.java | 26 +------ .../searchManager/ConcludeSearchManager.java | 38 +++++++++- .../searchManager/DocumentSearchManager.java | 56 +++++++------- .../searchManager/FileSearchManager.java | 8 ++ .../searchManager/LatestSearchManager.java | 59 --------------- .../searchManager/PluginSearchManager.java | 69 ++++++++++-------- .../RecentSearchManager.java | 43 ++++++++--- 19 files changed, 286 insertions(+), 264 deletions(-) delete mode 100644 designer/src/com/fr/design/mainframe/alphafine/cell/cellModel/ModelHandel.java create mode 100644 designer/src/com/fr/design/mainframe/alphafine/images/default_product.png delete mode 100644 designer/src/com/fr/design/mainframe/alphafine/searchManager/LatestSearchManager.java rename designer/src/com/fr/design/mainframe/alphafine/{recentSearch => searchManager}/RecentSearchManager.java (89%) diff --git a/designer/src/com/fr/design/mainframe/alphafine/AlphaFineConstants.java b/designer/src/com/fr/design/mainframe/alphafine/AlphaFineConstants.java index eaff21c5d..93d389d11 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/AlphaFineConstants.java +++ b/designer/src/com/fr/design/mainframe/alphafine/AlphaFineConstants.java @@ -82,6 +82,8 @@ public class AlphaFineConstants { public static final String DOCUMENT_SEARCH_URL = "http://help.finereport.com/?api-search-title-"; + public static final String DOCUMENT_INFORMATION_URL = "http://help.finereport.com/?api-search-did-"; + public static final String PLUGIN_IMAGE_URL = "http://shopres.finereport.com/"; public static final String SERVER_URL = "http://cloud.fanruan.com/api/monitor/record_of_afsearch/single"; diff --git a/designer/src/com/fr/design/mainframe/alphafine/AlphaFineHelper.java b/designer/src/com/fr/design/mainframe/alphafine/AlphaFineHelper.java index b25c6af30..cfc028b90 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/AlphaFineHelper.java +++ b/designer/src/com/fr/design/mainframe/alphafine/AlphaFineHelper.java @@ -5,6 +5,7 @@ import com.fr.design.mainframe.DesignerContext; import com.fr.design.mainframe.alphafine.cell.cellModel.*; import com.fr.design.mainframe.alphafine.component.AlphaFineDialog; import com.fr.stable.StableUtils; +import com.fr.stable.StringUtils; import java.io.File; @@ -23,14 +24,23 @@ public class AlphaFineHelper { } public static String findFolderName (String text) { - String[] textArray = text.split("/"); - if (textArray != null && textArray.length > 1) { - return textArray[textArray.length - 2]; + return getSplitText(text, 2); + } + private static String getSplitText(String text, int index) { + if (StringUtils.isNotBlank(text)) { + String[] textArray = text.split("/"); + if (textArray != null && textArray.length > 1) { + return textArray[textArray.length - index]; + } } return null; } + public static String findFileName (String text) { + return getSplitText(text, 1); + } + diff --git a/designer/src/com/fr/design/mainframe/alphafine/cell/CellModelHelper.java b/designer/src/com/fr/design/mainframe/alphafine/cell/CellModelHelper.java index 11ae7f8a9..993803407 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/cell/CellModelHelper.java +++ b/designer/src/com/fr/design/mainframe/alphafine/cell/CellModelHelper.java @@ -2,6 +2,10 @@ package com.fr.design.mainframe.alphafine.cell; import com.fr.design.mainframe.alphafine.CellType; import com.fr.design.mainframe.alphafine.cell.cellModel.*; +import com.fr.design.mainframe.alphafine.searchManager.ActionSearchManager; +import com.fr.design.mainframe.alphafine.searchManager.DocumentSearchManager; +import com.fr.design.mainframe.alphafine.searchManager.FileSearchManager; +import com.fr.design.mainframe.alphafine.searchManager.PluginSearchManager; import com.fr.json.JSONObject; /** @@ -12,14 +16,14 @@ public class CellModelHelper { int cellType = object.optInt("cellType"); switch (CellType.parse(cellType)) { case ACTION: - return ActionModel.jsonToModel(object); + return ActionSearchManager.getModelFromCloud(object.optString("result")); case DOCUMENT: - return DocumentModel.jsonToModel(object); + return DocumentSearchManager.getModelFromCloud(object.optJSONObject("result")); case FILE: - return FileModel.jsonToModel(object); + return FileSearchManager.getModelFromCloud(object.optString("result")); case PLUGIN: case REUSE: - return PluginModel.jsonToModel(object); + return PluginSearchManager.getModelFromCloud(object.optJSONObject("result")); } return null; @@ -28,14 +32,14 @@ public class CellModelHelper { public static String getResultValueFromModel(AlphaCellModel cellModel) { switch (cellModel.getType()) { case ACTION: - return cellModel.getName(); + return ((ActionModel)cellModel).getActionName(); case DOCUMENT: - return ((DocumentModel)cellModel).getDocumentUrl(); + return ((DocumentModel)cellModel).getInformationUrl(); case FILE: return ((FileModel)cellModel).getFilePath(); case REUSE: case PLUGIN: - return ((PluginModel)cellModel).getPluginUrl(); + return ((PluginModel)cellModel).getInformationUrl(); } return null; } diff --git a/designer/src/com/fr/design/mainframe/alphafine/cell/cellModel/ActionModel.java b/designer/src/com/fr/design/mainframe/alphafine/cell/cellModel/ActionModel.java index c3c7f7153..2e8a4510b 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/cell/cellModel/ActionModel.java +++ b/designer/src/com/fr/design/mainframe/alphafine/cell/cellModel/ActionModel.java @@ -14,6 +14,8 @@ import java.io.Serializable; public class ActionModel extends AlphaCellModel implements Serializable { private Action action; + private String actionName; + public ActionModel(String name, String content, CellType type) { super(name, content, type); } @@ -50,27 +52,18 @@ public class ActionModel extends AlphaCellModel implements Serializable { public JSONObject ModelToJson() { JSONObject object = JSONObject.create(); try { - object.put("name", getName()).put("action", getAction().getClass().getName()).put("cellType", getType().getCellType()); + object.put("result", getAction().getClass().getName()).put("cellType", getType().getCellType()); } catch (JSONException e) { FRLogger.getLogger().error(e.getMessage()); } return object; } - public static ActionModel jsonToModel(JSONObject object ) { - String name = object.optString("name"); - String actionName = object.optString("action"); - Action action = null; - try { - Class className = Class.forName(actionName); - action = (Action) className.newInstance(); - } catch (ClassNotFoundException e) { - FRLogger.getLogger().error(e.getMessage()); - } catch (IllegalAccessException e) { - FRLogger.getLogger().error(e.getMessage()); - } catch (InstantiationException e) { - FRLogger.getLogger().error(e.getMessage()); - } - return new ActionModel(name, action); + public String getActionName() { + return getAction().getClass().getName(); + } + + public void setActionName(String actionName) { + this.actionName = actionName; } } diff --git a/designer/src/com/fr/design/mainframe/alphafine/cell/cellModel/AlphaCellModel.java b/designer/src/com/fr/design/mainframe/alphafine/cell/cellModel/AlphaCellModel.java index c8a42d78e..81de0b33a 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/cell/cellModel/AlphaCellModel.java +++ b/designer/src/com/fr/design/mainframe/alphafine/cell/cellModel/AlphaCellModel.java @@ -8,7 +8,7 @@ import com.fr.json.JSONObject; /** * Created by XiaXiang on 2017/3/23. */ -public abstract class AlphaCellModel implements ModelHandel { +public abstract class AlphaCellModel { private String name; private String content; private String description; @@ -60,7 +60,6 @@ public abstract class AlphaCellModel implements ModelHandel { this.description = description; } - @Override public JSONObject ModelToJson() throws JSONException { return null; } diff --git a/designer/src/com/fr/design/mainframe/alphafine/cell/cellModel/DocumentModel.java b/designer/src/com/fr/design/mainframe/alphafine/cell/cellModel/DocumentModel.java index 5be4ccbf3..ab9397a68 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/cell/cellModel/DocumentModel.java +++ b/designer/src/com/fr/design/mainframe/alphafine/cell/cellModel/DocumentModel.java @@ -11,14 +11,18 @@ import com.fr.json.JSONObject; */ public class DocumentModel extends AlphaCellModel { private String documentUrl; + private String informationUrl; + private int documentId; public DocumentModel(String name, String content, CellType type) { super(name, content, type); } - public DocumentModel(String name, String content, String documentUrl) { + public DocumentModel(String name, String content, int documentId) { super(name, content, CellType.DOCUMENT); - this.documentUrl = documentUrl; + this.documentId = documentId; + this.informationUrl = AlphaFineConstants.DOCUMENT_INFORMATION_URL + documentId; + this.documentUrl = AlphaFineConstants.DOCUMENT_DOC_URL + documentId + ".html"; } public String getDocumentUrl() { @@ -33,7 +37,7 @@ public class DocumentModel extends AlphaCellModel { public JSONObject ModelToJson() { JSONObject object = JSONObject.create(); try { - object.put("name", getName()).put("content", getContent()).put("documentUrl", getDocumentUrl()).put("cellType", getType().getCellType()); + object.put("result", getInformationUrl()).put("cellType", getType().getCellType()); } catch (JSONException e) { FRLogger.getLogger().error(e.getMessage()); } @@ -55,10 +59,19 @@ public class DocumentModel extends AlphaCellModel { return documentUrl != null ? documentUrl.hashCode() : 0; } - public static DocumentModel jsonToModel(JSONObject object) { - String name = object.optString("title"); - String content = object.optString("summary"); - String documentUrl = AlphaFineConstants.DOCUMENT_DOC_URL + object.optString("did") + ".html"; - return new DocumentModel(name, content, documentUrl); + public int getDocumentId() { + return documentId; + } + + public void setDocumentId(int documentId) { + this.documentId = documentId; + } + + public String getInformationUrl() { + return informationUrl; + } + + public void setInformationUrl(String informationUrl) { + this.informationUrl = informationUrl; } } diff --git a/designer/src/com/fr/design/mainframe/alphafine/cell/cellModel/FileModel.java b/designer/src/com/fr/design/mainframe/alphafine/cell/cellModel/FileModel.java index 5ca5e0870..aa295a04c 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/cell/cellModel/FileModel.java +++ b/designer/src/com/fr/design/mainframe/alphafine/cell/cellModel/FileModel.java @@ -34,19 +34,13 @@ public class FileModel extends AlphaCellModel{ public JSONObject ModelToJson() { JSONObject object = JSONObject.create(); try { - object.put("name", getName()).put("content", getContent()).put("filePath", getFilePath()).put("cellType", getType().getCellType()); + object.put("result", getFilePath()).put("cellType", getType().getCellType()); } catch (JSONException e) { FRLogger.getLogger().error(e.getMessage()); } return object; } - public static FileModel jsonToModel(JSONObject object) { - String name = object.optString("name"); - String content = object.optString("content"); - String filePath = object.optString("filePath"); - return new FileModel(name, content, filePath); - } @Override public boolean equals(Object o) { diff --git a/designer/src/com/fr/design/mainframe/alphafine/cell/cellModel/ModelHandel.java b/designer/src/com/fr/design/mainframe/alphafine/cell/cellModel/ModelHandel.java deleted file mode 100644 index 99609cda2..000000000 --- a/designer/src/com/fr/design/mainframe/alphafine/cell/cellModel/ModelHandel.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.fr.design.mainframe.alphafine.cell.cellModel; - -import com.fr.json.JSONException; -import com.fr.json.JSONObject; - -/** - * Created by XiaXiang on 2017/5/16. - */ -public interface ModelHandel { - - JSONObject ModelToJson() throws JSONException; - -} diff --git a/designer/src/com/fr/design/mainframe/alphafine/cell/cellModel/PluginModel.java b/designer/src/com/fr/design/mainframe/alphafine/cell/cellModel/PluginModel.java index ddbfa34e8..eb26d0fa9 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/cell/cellModel/PluginModel.java +++ b/designer/src/com/fr/design/mainframe/alphafine/cell/cellModel/PluginModel.java @@ -19,15 +19,27 @@ public class PluginModel extends AlphaCellModel { private String version; private String jartime; private String link; + private String informationUrl; + private int pluginId; private int price; + private static final String PLUGIN_INFORMATION_URL = "http://shop.finereport.com/ShopServer?pg=plugin&pid="; + private static final String REUSE_INFORMATION_URL = "http://shop.finereport.com/reuses/"; public PluginModel(String name, String content, CellType type) { super(name, content, type); } - public PluginModel(String name, String content, String pluginUrl, String imageUrl, String version, String jartime, CellType type, int price) { + public PluginModel(String name, String content, String imageUrl, String version, String jartime, CellType type, int price, int pluginId) { super(name, content); setType(type); - this.pluginUrl = pluginUrl; + this.pluginId = pluginId; + if (getType() == CellType.PLUGIN) { + this.pluginUrl = AlphaFineConstants.PLUGIN_URL + pluginId; + this.informationUrl = PLUGIN_INFORMATION_URL + this.pluginId; + } else { + this.pluginUrl = AlphaFineConstants.REUSE_URL + pluginId; + this.informationUrl = REUSE_INFORMATION_URL + this.pluginId; + + } this.imageUrl = imageUrl; this.jartime = jartime; this.version = version; @@ -86,7 +98,7 @@ public class PluginModel extends AlphaCellModel { public JSONObject ModelToJson() { JSONObject object = JSONObject.create(); try { - object.put("name", getName()).put("content", getContent()).put("pluginUrl", getPluginUrl()).put("imageUrl", getImageUrl()).put("cellType", getType().getCellType()).put("jartime", getJartime()).put("version", getVersion()).put("price", getPrice()); + object.put("result", getInformationUrl()).put("cellType", getType().getCellType()); } catch (JSONException e) { FRLogger.getLogger().error(e.getMessage()); } @@ -110,27 +122,21 @@ public class PluginModel extends AlphaCellModel { return pluginUrl != null ? pluginUrl.hashCode() : 0; } - public static PluginModel jsonToModel(JSONObject object) { - String name = object.optString("name"); - String content = object.optString("description"); - String pluginUrl = AlphaFineConstants.REUSE_URL + object.optString("id"); - String imageUrl = null; - try { - imageUrl = AlphaFineConstants.PLUGIN_IMAGE_URL + URLEncoder.encode(object.optString("pic").toString().substring(AlphaFineConstants.PLUGIN_IMAGE_URL.length()), "utf8"); - } catch (UnsupportedEncodingException e) { - FRLogger.getLogger().error(e.getMessage()); - } - String version = null; - String jartime = null; - CellType type = CellType.REUSE; - String link = object.optString("link"); - if (ComparatorUtils.equals(link, "plugin")) { - version = object.optString("version"); - jartime = object.optString("jartime"); - type = CellType.PLUGIN; - pluginUrl = AlphaFineConstants.PLUGIN_URL + object.optString("id"); - } - int price = object.optInt("price"); - return new PluginModel(name, content, pluginUrl, imageUrl, version, jartime, type, price); + + + public int getPluginId() { + return pluginId; + } + + public void setPluginId(int pluginId) { + this.pluginId = pluginId; + } + + public String getInformationUrl() { + return informationUrl; + } + + public void setInformationUrl(String informationUrl) { + this.informationUrl = informationUrl; } } diff --git a/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java b/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java index 675466cd1..51f3b427d 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java +++ b/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java @@ -20,7 +20,7 @@ import com.fr.design.mainframe.alphafine.previewPane.DocumentPreviewPane; import com.fr.design.mainframe.alphafine.previewPane.FilePreviewPane; import com.fr.design.mainframe.alphafine.previewPane.PluginPreviewPane; import com.fr.design.mainframe.alphafine.searchManager.*; -import com.fr.design.mainframe.alphafine.recentSearch.RecentSearchManager; +import com.fr.design.mainframe.alphafine.searchManager.RecentSearchManager; import com.fr.file.FileNodeFILE; import com.fr.file.filetree.FileNode; import com.fr.form.main.Form; @@ -216,7 +216,7 @@ public class AlphaFineDialog extends UIDialog { this.searchWorker = new SwingWorker() { @Override - protected SearchListModel doInBackground() throws Exception { + protected SearchListModel doInBackground() { return setjListModel(new SearchListModel(AlphaSearchManager.getSearchManager().showLessSearchResult(searchText))); } @@ -366,8 +366,17 @@ public class AlphaFineDialog extends UIDialog { } this.searchWorker = new SwingWorker() { @Override - protected Image doInBackground() throws Exception { - BufferedImage bufferedImage = ImageIO.read(new URL(((PluginModel) selectedValue).getImageUrl())); + protected Image doInBackground() { + BufferedImage bufferedImage = null; + try { + bufferedImage = ImageIO.read(new URL(((PluginModel) selectedValue).getImageUrl())); + } catch (IOException e) { + try { + bufferedImage = ImageIO.read(getClass().getResource("/com/fr/design/mainframe/alphafine/images/default_product.png")); + } catch (IOException e1) { + FRLogger.getLogger().error(e.getMessage()); + } + } return bufferedImage; } @@ -560,7 +569,9 @@ public class AlphaFineDialog extends UIDialog { } /** - *todo:还没做上传服务器 + * 上传数据到服务器 + * @param searchKey + * @param cellModel */ private void sendToServer(String searchKey, AlphaCellModel cellModel) { String username = DesignerEnvManager.getEnvManager().getBBSName(); @@ -583,12 +594,10 @@ public class AlphaFineDialog extends UIDialog { HttpClient httpClient = new HttpClient(AlphaFineConstants.testurl, para, true); httpClient.setTimeout(5000); httpClient.asGet(); - if (!httpClient.isServerAlive()) { - //return false; + FRLogger.getLogger().error("404"); } - String res = httpClient.getResponseText(); } private void rebuildShowMoreList(int index, MoreModel selectedValue) { @@ -656,6 +665,7 @@ public class AlphaFineDialog extends UIDialog { public SearchListModel setjListModel(SearchListModel jListModel) { this.searchListModel = jListModel; + System.out.print(this.searchListModel); return this.searchListModel; } diff --git a/designer/src/com/fr/design/mainframe/alphafine/images/default_product.png b/designer/src/com/fr/design/mainframe/alphafine/images/default_product.png new file mode 100644 index 0000000000000000000000000000000000000000..8a6a096d95258ee1db69307ed6f000d030f2bbde GIT binary patch literal 2736 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 g#j!MzeoB-<H}Q!77wX_Wpa1{> literal 0 HcmV?d00001 diff --git a/designer/src/com/fr/design/mainframe/alphafine/searchManager/ActionSearchManager.java b/designer/src/com/fr/design/mainframe/alphafine/searchManager/ActionSearchManager.java index fa12b13af..3ed38b79f 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/searchManager/ActionSearchManager.java +++ b/designer/src/com/fr/design/mainframe/alphafine/searchManager/ActionSearchManager.java @@ -8,7 +8,9 @@ import com.fr.design.mainframe.alphafine.cell.cellModel.MoreModel; import com.fr.design.mainframe.alphafine.cell.cellModel.ActionModel; import com.fr.design.mainframe.alphafine.model.SearchResult; import com.fr.design.mainframe.toolbar.UpdateActionManager; +import com.fr.general.FRLogger; import com.fr.general.Inter; +import com.fr.json.JSONObject; import java.util.List; @@ -17,9 +19,9 @@ import java.util.List; */ public class ActionSearchManager implements AlphaFineSearchProcessor { private static ActionSearchManager actionSearchManager = null; - private SearchResult filterModelList; - private SearchResult lessModelList; - private SearchResult moreModelList; + private SearchResult filterModelList = new SearchResult(); + private SearchResult lessModelList = new SearchResult(); + private SearchResult moreModelList = new SearchResult(); public synchronized static ActionSearchManager getActionSearchManager() { if (actionSearchManager == null) { @@ -30,9 +32,6 @@ public class ActionSearchManager implements AlphaFineSearchProcessor { @Override public synchronized SearchResult showLessSearchResult(String searchText) { - this.filterModelList = new SearchResult(); - this.lessModelList = new SearchResult(); - this.moreModelList = new SearchResult(); if (DesignerEnvManager.getEnvManager().getAlphafineConfigManager().isContainAction()) { List updateActions = UpdateActionManager.getUpdateActionManager().getUpdateActions(); for (UpdateAction updateAction : updateActions) { @@ -40,20 +39,23 @@ public class ActionSearchManager implements AlphaFineSearchProcessor { filterModelList.add(new ActionModel(updateAction.getName() ,updateAction)); } } - final int length = Math.min(AlphaFineConstants.SHOW_SIZE, filterModelList.size()); - for (int i = 0; i < length; i++) { - lessModelList.add(filterModelList.get(i)); - } - for (int i = length; i < filterModelList.size(); i++) { - moreModelList.add(filterModelList.get(i)); - } - if (filterModelList.size() > 0) { - if (filterModelList.size() > AlphaFineConstants.SHOW_SIZE) { - lessModelList.add(0, new MoreModel(Inter.getLocText("FR-Designer_Set"), Inter.getLocText("FR-Designer_AlphaFine_ShowAll"),true, CellType.ACTION)); - } else { - lessModelList.add(0, new MoreModel(Inter.getLocText("FR-Designer_Set"), CellType.ACTION)); + if (filterModelList != null && filterModelList.size() >0) { + final int length = Math.min(AlphaFineConstants.SHOW_SIZE, filterModelList.size()); + for (int i = 0; i < length; i++) { + lessModelList.add(filterModelList.get(i)); + } + for (int i = length; i < filterModelList.size(); i++) { + moreModelList.add(filterModelList.get(i)); + } + if (filterModelList.size() > 0) { + if (filterModelList.size() > AlphaFineConstants.SHOW_SIZE) { + lessModelList.add(0, new MoreModel(Inter.getLocText("FR-Designer_Set"), Inter.getLocText("FR-Designer_AlphaFine_ShowAll"),true, CellType.ACTION)); + } else { + lessModelList.add(0, new MoreModel(Inter.getLocText("FR-Designer_Set"), CellType.ACTION)); + } } } + } return lessModelList; } @@ -62,4 +64,21 @@ public class ActionSearchManager implements AlphaFineSearchProcessor { public SearchResult showMoreSearchResult() { return moreModelList; } + + public static ActionModel getModelFromCloud(String actionName ) { + UpdateAction action = null; + String name = null; + try { + Class className = Class.forName(actionName); + action = (UpdateAction) className.newInstance(); + name = action.getName(); + } catch (ClassNotFoundException e) { + FRLogger.getLogger().error(e.getMessage()); + } catch (IllegalAccessException e) { + FRLogger.getLogger().error(e.getMessage()); + } catch (InstantiationException e) { + FRLogger.getLogger().error(e.getMessage()); + } + return new ActionModel(name, action); + } } diff --git a/designer/src/com/fr/design/mainframe/alphafine/searchManager/AlphaSearchManager.java b/designer/src/com/fr/design/mainframe/alphafine/searchManager/AlphaSearchManager.java index a5e862e55..abb036a09 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/searchManager/AlphaSearchManager.java +++ b/designer/src/com/fr/design/mainframe/alphafine/searchManager/AlphaSearchManager.java @@ -1,12 +1,9 @@ package com.fr.design.mainframe.alphafine.searchManager; -import com.fr.design.mainframe.alphafine.AlphaFineHelper; import com.fr.design.mainframe.alphafine.cell.cellModel.MoreModel; import com.fr.design.mainframe.alphafine.model.SearchResult; import com.fr.general.Inter; -import java.io.*; - /** * Created by XiaXiang on 2017/3/28. */ @@ -17,7 +14,7 @@ public class AlphaSearchManager implements AlphaFineSearchProcessor { private static FileSearchManager fileSearchManager; private static ActionSearchManager actionSearchManager; private static ConcludeSearchManager concludeSearchManager; - private static LatestSearchManager latestSearchManager; + private static RecentSearchManager recentSearchManager; public synchronized static AlphaSearchManager getSearchManager() { init(); @@ -33,13 +30,13 @@ public class AlphaSearchManager implements AlphaFineSearchProcessor { fileSearchManager = FileSearchManager.getFileSearchManager(); actionSearchManager = ActionSearchManager.getActionSearchManager(); concludeSearchManager = ConcludeSearchManager.getConcludeSearchManager(); - latestSearchManager = LatestSearchManager.getLatestSearchManager(); + recentSearchManager = RecentSearchManager.getInstance(); } } @Override public synchronized SearchResult showLessSearchResult(String searchText) { - SearchResult latestModelList = latestSearchManager.showLessSearchResult(searchText); + SearchResult latestModelList = recentSearchManager.showLessSearchResult(searchText); SearchResult concludeModelList = concludeSearchManager.showLessSearchResult(searchText); SearchResult actionModelList = actionSearchManager.showLessSearchResult(searchText); SearchResult fileModelList = fileSearchManager.showLessSearchResult(searchText); @@ -69,21 +66,4 @@ public class AlphaSearchManager implements AlphaFineSearchProcessor { return null; } - public SearchResult getLatestSearchResult() { - ObjectInputStream is; - SearchResult searchResult; - try { - is = new ObjectInputStream(new FileInputStream(AlphaFineHelper.getInfoFile())); - searchResult = (SearchResult) is.readObject(); - - } catch (IOException e) { - searchResult = new SearchResult(); - } catch (ClassNotFoundException e) { - searchResult = new SearchResult(); - - } - return searchResult; - - } - } diff --git a/designer/src/com/fr/design/mainframe/alphafine/searchManager/ConcludeSearchManager.java b/designer/src/com/fr/design/mainframe/alphafine/searchManager/ConcludeSearchManager.java index e4ab5ef48..435a8836f 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/searchManager/ConcludeSearchManager.java +++ b/designer/src/com/fr/design/mainframe/alphafine/searchManager/ConcludeSearchManager.java @@ -1,8 +1,17 @@ package com.fr.design.mainframe.alphafine.searchManager; +import com.fr.design.mainframe.alphafine.cell.CellModelHelper; +import com.fr.design.mainframe.alphafine.cell.cellModel.AlphaCellModel; +import com.fr.design.mainframe.alphafine.cell.cellModel.DocumentModel; import com.fr.design.mainframe.alphafine.cell.cellModel.MoreModel; import com.fr.design.mainframe.alphafine.model.SearchResult; +import com.fr.general.FRLogger; import com.fr.general.Inter; +import com.fr.general.http.HttpClient; +import com.fr.json.JSONArray; +import com.fr.json.JSONException; +import com.fr.json.JSONObject; +import com.fr.stable.CodeUtils; /** * Created by XiaXiang on 2017/3/31. @@ -10,6 +19,7 @@ import com.fr.general.Inter; public class ConcludeSearchManager implements AlphaFineSearchProcessor { private static ConcludeSearchManager concludeSearchManager = null; private SearchResult modelList; + private static final String SEARCHAPI = "http://localhost:8080/monitor/alphafine/search/?searchKey="; public synchronized static ConcludeSearchManager getConcludeSearchManager() { if (concludeSearchManager == null) { @@ -19,15 +29,37 @@ public class ConcludeSearchManager implements AlphaFineSearchProcessor { } @Override public synchronized SearchResult showLessSearchResult(String searchText) { - //todo: 猜您喜欢逻辑需要重新设计 + String result; this.modelList = new SearchResult(); - modelList.add(new MoreModel(Inter.getLocText("FR-Designer_AlphaFine_Conclude"), false)); + HttpClient httpClient = new HttpClient(SEARCHAPI + CodeUtils.cjkEncode(searchText)); + httpClient.asGet(); + result = httpClient.getResponseText(); + try { + JSONObject jsonObject = new JSONObject(result); + if (jsonObject.optString("status").equals("success")) { + JSONArray jsonArray = jsonObject.optJSONArray("result"); + if (jsonArray != null && jsonArray.length() > 0) { + for (int i = 0; i < jsonArray.length(); i++) { + AlphaCellModel alphaCellModel = CellModelHelper.jsonToModel((JSONObject) jsonArray.get(i)); + if (!RecentSearchManager.getInstance().getRecentModelList().contains(alphaCellModel)) { + this.modelList.add(alphaCellModel); + } + } + } + } + + } catch (JSONException e) { + FRLogger.getLogger().error(e.getMessage()); + } + if (modelList.size() > 0) { + modelList.add(0, new MoreModel(Inter.getLocText("FR-Designer_AlphaFine_Conclude"), false)); + } return modelList; } @Override public SearchResult showMoreSearchResult() { - return null; + return new SearchResult(); } } diff --git a/designer/src/com/fr/design/mainframe/alphafine/searchManager/DocumentSearchManager.java b/designer/src/com/fr/design/mainframe/alphafine/searchManager/DocumentSearchManager.java index 2074245ef..8472d68f4 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/searchManager/DocumentSearchManager.java +++ b/designer/src/com/fr/design/mainframe/alphafine/searchManager/DocumentSearchManager.java @@ -13,15 +13,13 @@ import com.fr.json.JSONArray; import com.fr.json.JSONException; import com.fr.json.JSONObject; -import java.security.AlgorithmConstraints; - /** * Created by XiaXiang on 2017/3/27. */ public class DocumentSearchManager implements AlphaFineSearchProcessor { private static DocumentSearchManager documentSearchManager = null; - private SearchResult lessModelList; - private SearchResult moreModelList; + private SearchResult lessModelList = new SearchResult(); + private SearchResult moreModelList = new SearchResult(); public synchronized static DocumentSearchManager getDocumentSearchManager() { if (documentSearchManager == null) { @@ -33,8 +31,6 @@ public class DocumentSearchManager implements AlphaFineSearchProcessor { @Override public synchronized SearchResult showLessSearchResult(String searchText) { - this.lessModelList = new SearchResult(); - this.moreModelList = new SearchResult(); if (DesignerEnvManager.getEnvManager().getAlphafineConfigManager().isContainDocument()) { String result; String url = AlphaFineConstants.DOCUMENT_SEARCH_URL + searchText + "-1"; @@ -44,26 +40,24 @@ public class DocumentSearchManager implements AlphaFineSearchProcessor { result = httpClient.getResponseText(); try { JSONObject jsonObject = new JSONObject(result); - JSONArray jsonArray = null; - if (jsonObject.get("docdata") != null) { - jsonArray = (JSONArray) jsonObject.get("docdata"); - } - if (jsonArray.length() > 0) { - if (jsonArray.length() > AlphaFineConstants.SHOW_SIZE) { - lessModelList.add(new MoreModel(Inter.getLocText("FR-Designer_COMMUNITY_HELP"), Inter.getLocText("FR-Designer_AlphaFine_ShowAll"),true, CellType.DOCUMENT)); - } else { - lessModelList.add(new MoreModel(Inter.getLocText("FR-Designer_COMMUNITY_HELP"), CellType.DOCUMENT)); + JSONArray jsonArray = jsonObject.optJSONArray("docdata"); + if (jsonArray != null && jsonArray.length() > 0) { + final int length = Math.min(AlphaFineConstants.SHOW_SIZE, jsonArray.length()); + for (int i = 0; i < length; i++) { + DocumentModel cellModel = getModelFromCloud(jsonArray.optJSONObject(i)); + this.lessModelList.add(cellModel); + } + for (int i = length; i < jsonArray.length(); i++) { + DocumentModel cellModel = getModelFromCloud(jsonArray.optJSONObject(i)); + this.moreModelList.add(cellModel); + } + if (jsonArray.length() > 0) { + if (jsonArray.length() > AlphaFineConstants.SHOW_SIZE) { + lessModelList.add(0, new MoreModel(Inter.getLocText("FR-Designer_COMMUNITY_HELP"), Inter.getLocText("FR-Designer_AlphaFine_ShowAll"),true, CellType.DOCUMENT)); + } else { + lessModelList.add(0, new MoreModel(Inter.getLocText("FR-Designer_COMMUNITY_HELP"), CellType.DOCUMENT)); + } } - } - - final int length = Math.min(AlphaFineConstants.SHOW_SIZE, jsonArray.length()); - for (int i = 0; i < length; i++) { - DocumentModel cellModel = getDocumentModel(jsonArray, i); - this.lessModelList.add(cellModel); - } - for (int i = length; i < jsonArray.length(); i++) { - DocumentModel cellModel = getDocumentModel(jsonArray, i); - this.moreModelList.add(cellModel); } } catch (JSONException e) { @@ -71,16 +65,16 @@ public class DocumentSearchManager implements AlphaFineSearchProcessor { return lessModelList; } + } return lessModelList; } - private DocumentModel getDocumentModel(JSONArray jsonArray, int i) throws JSONException { - JSONObject object = jsonArray.getJSONObject(i); - String name = (String) object.get("title"); - String content = ((String) object.get("summary")); - String documentUrl = AlphaFineConstants.DOCUMENT_DOC_URL + object.get("did") + ".html"; - return new DocumentModel(name, content, documentUrl); + public static DocumentModel getModelFromCloud(JSONObject object) { + String name = object.optString("title"); + String content = object.optString("summary"); + int documentId = object.optInt("did"); + return new DocumentModel(name, content, documentId); } @Override diff --git a/designer/src/com/fr/design/mainframe/alphafine/searchManager/FileSearchManager.java b/designer/src/com/fr/design/mainframe/alphafine/searchManager/FileSearchManager.java index e502dea68..b42049592 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/searchManager/FileSearchManager.java +++ b/designer/src/com/fr/design/mainframe/alphafine/searchManager/FileSearchManager.java @@ -4,6 +4,7 @@ import com.fr.base.Env; import com.fr.base.FRContext; import com.fr.design.DesignerEnvManager; import com.fr.design.mainframe.alphafine.AlphaFineConstants; +import com.fr.design.mainframe.alphafine.AlphaFineHelper; import com.fr.design.mainframe.alphafine.CellType; import com.fr.design.mainframe.alphafine.cell.cellModel.FileModel; import com.fr.design.mainframe.alphafine.cell.cellModel.MoreModel; @@ -11,6 +12,7 @@ import com.fr.design.mainframe.alphafine.model.SearchResult; import com.fr.file.filetree.FileNode; import com.fr.general.FRLogger; import com.fr.general.Inter; +import com.fr.json.JSONObject; import com.fr.stable.StableUtils; import com.fr.stable.project.ProjectConstants; @@ -148,4 +150,10 @@ public class FileSearchManager implements AlphaFineSearchProcessor { } } + public static FileModel getModelFromCloud(String filePath) { + String name = AlphaFineHelper.findFileName(filePath); + String content = AlphaFineHelper.findFolderName(filePath); + return new FileModel(name, content, filePath); + } + } diff --git a/designer/src/com/fr/design/mainframe/alphafine/searchManager/LatestSearchManager.java b/designer/src/com/fr/design/mainframe/alphafine/searchManager/LatestSearchManager.java deleted file mode 100644 index 9d35de211..000000000 --- a/designer/src/com/fr/design/mainframe/alphafine/searchManager/LatestSearchManager.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.fr.design.mainframe.alphafine.searchManager; - -import com.fr.design.mainframe.alphafine.cell.cellModel.MoreModel; -import com.fr.design.mainframe.alphafine.model.SearchResult; -import com.fr.design.mainframe.alphafine.recentSearch.RecentSearchManager; -import com.fr.general.Inter; - -/** - * Created by XiaXiang on 2017/3/31. - */ -public class LatestSearchManager implements AlphaFineSearchProcessor { - private static LatestSearchManager latestSearchManager = null; - private SearchResult modelList; - private SearchResult latestModelList; - - public synchronized static LatestSearchManager getLatestSearchManager() { - if (latestSearchManager == null) { - latestSearchManager = new LatestSearchManager(); - } - return latestSearchManager; - } - @Override - public synchronized SearchResult showLessSearchResult(String searchText) { - this.modelList = new SearchResult(); - modelList.add(new MoreModel(Inter.getLocText("FR-Designer_AlphaFine_Latest"), false)); - //todo: 本地常用逻辑需要重新设计 - if (RecentSearchManager.getInstance().getRecentModelList(searchText) != null) { - modelList.addAll(RecentSearchManager.getInstance().getRecentModelList(searchText)); - } -// if (getLatestModelList() != null && getLatestModelList().size() > 0) { -// modelList.addAll(getLatestModelList()); -// } - return modelList; - } - - @Override - public SearchResult showMoreSearchResult() { - return null; - } - - public SearchResult getModelList() { - return modelList; - } - - public void setModelList(SearchResult modelList) { - this.modelList = modelList; - } - - public SearchResult getLatestModelList() { - if(this.latestModelList != null && this.latestModelList.size() > 0) { - return this.latestModelList; - } - return AlphaSearchManager.getSearchManager().getLatestSearchResult(); - } - - public void setLatestModelList(SearchResult latestModelList) { - this.latestModelList = latestModelList; - } -} diff --git a/designer/src/com/fr/design/mainframe/alphafine/searchManager/PluginSearchManager.java b/designer/src/com/fr/design/mainframe/alphafine/searchManager/PluginSearchManager.java index 71f9a7697..2ac650181 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/searchManager/PluginSearchManager.java +++ b/designer/src/com/fr/design/mainframe/alphafine/searchManager/PluginSearchManager.java @@ -13,6 +13,7 @@ import com.fr.general.http.HttpClient; import com.fr.json.JSONArray; import com.fr.json.JSONException; import com.fr.json.JSONObject; +import com.fr.plugin.chart.designer.other.HyperlinkMapFactory; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; @@ -49,26 +50,28 @@ public class PluginSearchManager implements AlphaFineSearchProcessor { result = httpClient.getResponseText(); JSONObject jsonObject = new JSONObject(result); JSONArray jsonArray = null; - if (jsonObject.get("result") != null) { - jsonArray = (JSONArray) jsonObject.get("result"); + if (jsonObject.optJSONObject("result") != null) { + jsonArray = jsonObject.optJSONArray("result"); } - if (jsonArray.length() > 0) { - if (jsonArray.length() > AlphaFineConstants.SHOW_SIZE) { - lessModelList.add(new MoreModel(Inter.getLocText("FR-Designer-Plugin_Addon"), Inter.getLocText("FR-Designer_AlphaFine_ShowAll"),true, CellType.PLUGIN)); - } else { - lessModelList.add(new MoreModel(Inter.getLocText("FR-Designer-Plugin_Addon"), CellType.PLUGIN)); + if (jsonArray != null && jsonArray.length() > 0) { + int length = Math.min(AlphaFineConstants.SHOW_SIZE, jsonArray.length()); + for (int i = 0; i < length; i++) { + PluginModel cellModel = getPluginModel(jsonArray.optJSONObject(i), false); + this.lessModelList.add(cellModel); + } + for (int i = length; i < jsonArray.length(); i++) { + PluginModel cellModel = getPluginModel(jsonArray.optJSONObject(i), false); + this.moreModelList.add(cellModel); + } + if (jsonArray.length() > 0) { + if (jsonArray.length() > AlphaFineConstants.SHOW_SIZE) { + lessModelList.add(0, new MoreModel(Inter.getLocText("FR-Designer-Plugin_Addon"), Inter.getLocText("FR-Designer_AlphaFine_ShowAll"),true, CellType.PLUGIN)); + } else { + lessModelList.add(0, new MoreModel(Inter.getLocText("FR-Designer-Plugin_Addon"), CellType.PLUGIN)); + } } } - int length = Math.min(5, jsonArray.length()); - for (int i = 0; i < length; i++) { - PluginModel cellModel = getPluginModel(jsonArray, i); - this.lessModelList.add(cellModel); - } - for (int i = length; i < jsonArray.length(); i++) { - PluginModel cellModel = getPluginModel(jsonArray, i); - this.moreModelList.add(cellModel); - } } catch (Exception e) { FRLogger.getLogger().error(e.getMessage()); return lessModelList; @@ -77,29 +80,29 @@ public class PluginSearchManager implements AlphaFineSearchProcessor { return this.lessModelList; } - private PluginModel getPluginModel(JSONArray jsonArray, int i) throws JSONException { - JSONObject object = jsonArray.getJSONObject(i); - String name = (String) object.get("name"); - String content = ((String) object.get("description")); - String pluginUrl = AlphaFineConstants.REUSE_URL + object.get("id"); + private static PluginModel getPluginModel(JSONObject object, boolean isFromCloud) { + String name = object.optString("name"); + String content = object.optString("description"); + int pluginId = object.optInt("id"); String imageUrl = null; try { - imageUrl = AlphaFineConstants.PLUGIN_IMAGE_URL + URLEncoder.encode(object.get("pic").toString().substring(AlphaFineConstants.PLUGIN_IMAGE_URL.length()), "utf8"); + imageUrl = AlphaFineConstants.PLUGIN_IMAGE_URL + URLEncoder.encode(object.optString("pic").toString().substring(AlphaFineConstants.PLUGIN_IMAGE_URL.length()), "utf8"); } catch (UnsupportedEncodingException e) { FRLogger.getLogger().error(e.getMessage()); } String version = null; String jartime = null; - CellType type = CellType.REUSE; - String link = (String) object.get("link"); + CellType type; + String link = object.optString("link"); if (ComparatorUtils.equals(link, "plugin")) { - version = (String) object.get("version"); - jartime = (String) object.get("jartime"); + version = isFromCloud? object.optString("pluginversion") : object.optString("version"); + jartime = object.optString("jartime"); type = CellType.PLUGIN; - pluginUrl = AlphaFineConstants.PLUGIN_URL + object.get("id"); + } else { + type = CellType.REUSE; } - int price = (int) object.get("price"); - return new PluginModel(name, content, pluginUrl, imageUrl, version, jartime, type, price); + int price = object.optInt("price"); + return new PluginModel(name, content, imageUrl, version, jartime, type, price, pluginId); } @Override @@ -107,6 +110,14 @@ public class PluginSearchManager implements AlphaFineSearchProcessor { return this.moreModelList; } + public static PluginModel getModelFromCloud(JSONObject object) { + JSONObject jsonObject = object.optJSONObject("result"); + if (jsonObject != null) { + return getPluginModel(jsonObject, true); + } + return null; + } + diff --git a/designer/src/com/fr/design/mainframe/alphafine/recentSearch/RecentSearchManager.java b/designer/src/com/fr/design/mainframe/alphafine/searchManager/RecentSearchManager.java similarity index 89% rename from designer/src/com/fr/design/mainframe/alphafine/recentSearch/RecentSearchManager.java rename to designer/src/com/fr/design/mainframe/alphafine/searchManager/RecentSearchManager.java index ce0302d97..0e979d2a2 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/recentSearch/RecentSearchManager.java +++ b/designer/src/com/fr/design/mainframe/alphafine/searchManager/RecentSearchManager.java @@ -1,14 +1,16 @@ -package com.fr.design.mainframe.alphafine.recentSearch; +package com.fr.design.mainframe.alphafine.searchManager; import com.fr.base.FRContext; import com.fr.base.Utils; import com.fr.design.mainframe.alphafine.AlphaFineConstants; -import com.fr.design.mainframe.alphafine.AlphaFineHelper; import com.fr.design.mainframe.alphafine.cell.CellModelHelper; import com.fr.design.mainframe.alphafine.cell.cellModel.AlphaCellModel; +import com.fr.design.mainframe.alphafine.cell.cellModel.MoreModel; +import com.fr.design.mainframe.alphafine.model.SearchResult; import com.fr.file.XMLFileManager; import com.fr.general.FRLogger; import com.fr.general.IOUtils; +import com.fr.general.Inter; import com.fr.json.JSONException; import com.fr.json.JSONObject; import com.fr.stable.ProductConstants; @@ -29,7 +31,7 @@ import java.util.Map; /** * Created by XiaXiang on 2017/5/15. */ -public class RecentSearchManager extends XMLFileManager { +public class RecentSearchManager extends XMLFileManager implements AlphaFineSearchProcessor { private static final String XML_TAG = "AlphafineRecent"; private static RecentSearchManager recentSearchManager = null; @@ -37,8 +39,7 @@ public class RecentSearchManager extends XMLFileManager { private List fileList; private List actionList; private List documentList; - - //private List recentKVModelList = new ArrayList<>(); + private SearchResult modelList; private List pluginList; private List recentModelList = new ArrayList<>(); private Map> recentKVModelMap = new HashMap<>(); @@ -63,7 +64,7 @@ public class RecentSearchManager extends XMLFileManager { public void readXML(XMLableReader reader) { if (reader.isChildNode()) { String nodeName = reader.getTagName(); - if (nodeName.equals("RecentModel")) { + if (nodeName.equals("RecentModelList")) { String key = reader.getAttrAsString("searchKey", StringUtils.EMPTY); final ArrayList list = new ArrayList(); reader.readXMLObject(new XMLReadable() { @@ -71,7 +72,7 @@ public class RecentSearchManager extends XMLFileManager { public void readXML(XMLableReader reader) { if (reader.isChildNode()) { String nodeName = reader.getTagName(); - if (nodeName.equals("modelList")) { + if (nodeName.equals("model")) { String name = reader.getAttrAsString("cellModel", StringUtils.EMPTY); try { list.add(CellModelHelper.jsonToModel(new JSONObject(name))); @@ -97,18 +98,20 @@ public class RecentSearchManager extends XMLFileManager { writer.startTAG(XML_TAG); if (!recentKVModelMap.isEmpty()) { for (String key : recentKVModelMap.keySet()) { - writer.startTAG("RecentModel"); + writer.startTAG("RecentModelList"); writer.attr("searchKey", key); - writer.startTAG("modelList"); + for (AlphaCellModel model : recentKVModelMap.get(key)) { try { String name = model.ModelToJson().toString(); + writer.startTAG("model"); writer.attr("cellModel", name); + writer.end(); } catch (JSONException e) { FRLogger.getLogger().error(e.getMessage()); } } - writer.end(); + writer.end(); } } @@ -222,12 +225,12 @@ public class RecentSearchManager extends XMLFileManager { public List getRecentModelList(String searchText) { for (String key : recentKVModelMap.keySet()) { - if (recentKVModelMap.keySet().contains(searchText)) { + if (key.equals(searchText)) { List list = recentKVModelMap.get(searchText); return list; } } - return null; + return recentModelList; } public void addRecentModel(String searchKey, AlphaCellModel cellModel) { @@ -284,6 +287,22 @@ public class RecentSearchManager extends XMLFileManager { this.recentKVModelMap = recentKVModelMap; } + @Override + public SearchResult showLessSearchResult(String searchText) { + this.modelList = new SearchResult(); + recentModelList = getRecentModelList(searchText); + if (recentModelList != null && recentModelList.size() > 0) { + modelList.add(new MoreModel(Inter.getLocText("FR-Designer_AlphaFine_Latest"), false)); + } + modelList.addAll(recentModelList); + return modelList; + } + + @Override + public SearchResult showMoreSearchResult() { + return new SearchResult(); + } + // public List getRecentKVModelList() { // return recentKVModelList; // }