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 1b975f948..eb986cb13 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java +++ b/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java @@ -16,6 +16,7 @@ import com.fr.design.mainframe.alphafine.listener.ComponentHandler; import com.fr.design.mainframe.alphafine.listener.DocumentAdapter; import com.fr.design.mainframe.alphafine.model.SearchListModel; import com.fr.design.mainframe.alphafine.model.SearchResult; +import com.fr.design.mainframe.alphafine.preview.ActionPreviewPane; import com.fr.design.mainframe.alphafine.preview.DocumentPreviewPane; import com.fr.design.mainframe.alphafine.preview.FilePreviewPane; import com.fr.design.mainframe.alphafine.preview.PluginPreviewPane; @@ -70,6 +71,20 @@ public class AlphaFineDialog extends UIDialog { //是否强制打开,因为面板是否关闭绑定了全局鼠标事件,这里需要处理一下 private boolean forceOpen; + private static final String ACTION_MARK_SHORT = "k:1 "; + private static final String ACTION_MARK = "k:setting "; + private static final String DOCUMENT_MARK_SHORT = "k:2 "; + private static final String DOCUMENT_MARK = "k:help "; + private static final String FILE_MARK_SHORT = "k:3 "; + private static final String FILE_MARK = "k:reportlets "; + private static final String CPT_MARK = "k:cpt "; + private static final String FRM_MARK = "k:frm "; + private static final String DS_MARK = "k:ds "; + private static final String DS_NAME = "dsname=\""; + private static final String PLUGIN_MARK_SHORT = "k:4 "; + private static final String PLUGIN_MARK = "k:shop "; + + public AlphaFineDialog(Frame parent, boolean forceOpen) { super(parent); this.forceOpen = forceOpen; @@ -246,14 +261,15 @@ public class AlphaFineDialog extends UIDialog { this.searchWorker = new SwingWorker() { @Override protected Object doInBackground() throws Exception { - rebuildList(searchTextField.getText()); + rebuildList(searchTextField.getText().toLowerCase()); return null; } @Override protected void done() { - if (!isCancelled()) { + if (!isCancelled() && searchListModel.getSize() > 0) { searchResultList.setSelectedIndex(1); + showResult(searchResultList.getSelectedIndex(), searchResultList.getSelectedValue()); } } }; @@ -262,10 +278,42 @@ public class AlphaFineDialog extends UIDialog { /** * 重新构建搜索结果列表 + * 先根据输入判断是不是隐藏的搜索功能 * @param searchText */ private void rebuildList(String searchText) { searchListModel.removeAllElements(); + if (searchText.startsWith(ACTION_MARK_SHORT) || searchText.startsWith(ACTION_MARK)) { + getActionList(searchText.substring(searchText.indexOf(" ") + 1, searchText.length())); + return; + } else if (searchText.startsWith(DOCUMENT_MARK_SHORT) || searchText.startsWith(DOCUMENT_MARK)) { + getDocumentList(searchText.substring(searchText.indexOf(" ") + 1, searchText.length())); + return; + + } else if (searchText.startsWith(FILE_MARK_SHORT) || searchText.startsWith(FILE_MARK)) { + getFileList(searchText.substring(searchText.indexOf(" ") + 1, searchText.length())); + return; + + } else if (searchText.startsWith(CPT_MARK) || searchText.startsWith(FRM_MARK)) { + getFileList(searchText); + return; + } else if (searchText.startsWith(DS_MARK)) { + getFileList(DS_NAME + searchText.substring(searchText.indexOf(" ") + 1, searchText.length())); + return; + + } else if (searchText.startsWith(PLUGIN_MARK_SHORT) || searchText.startsWith(PLUGIN_MARK)) { + getPluginList(searchText.substring(searchText.indexOf(" ") + 1, searchText.length())); + return; + + } + doNormalSearch(searchText.trim()); + } + + /** + * 普通搜索 + * @param searchText + */ + private void doNormalSearch(String searchText) { getRecentList(searchText); getRecommendList(searchText); getActionList(searchText); @@ -275,18 +323,13 @@ public class AlphaFineDialog extends UIDialog { } - private synchronized void getDocumentList(final String searchText) { - SearchResult documentModelList = DocumentSearchManager.getDocumentSearchManager().getLessSearchResult(searchText); for (Object object : documentModelList) { AlphaFineHelper.checkCancel(); searchListModel.addElement(object); } - - - } private synchronized void getFileList(final String searchText) { @@ -502,7 +545,10 @@ public class AlphaFineDialog extends UIDialog { this.searchWorker.execute(); } else if (selectedValue instanceof ActionModel) { - showDefaultPreviewPane(); + rightSearchResultPane.removeAll(); + rightSearchResultPane.add(new ActionPreviewPane()); + validate(); + repaint(); } } diff --git a/designer/src/com/fr/design/mainframe/alphafine/images/noresult.png b/designer/src/com/fr/design/mainframe/alphafine/images/noresult.png new file mode 100644 index 000000000..388bb84ff Binary files /dev/null and b/designer/src/com/fr/design/mainframe/alphafine/images/noresult.png differ diff --git a/designer/src/com/fr/design/mainframe/alphafine/preview/ActionPreviewPane.java b/designer/src/com/fr/design/mainframe/alphafine/preview/ActionPreviewPane.java index ec2d6ca38..416c9512b 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/preview/ActionPreviewPane.java +++ b/designer/src/com/fr/design/mainframe/alphafine/preview/ActionPreviewPane.java @@ -1,8 +1,36 @@ package com.fr.design.mainframe.alphafine.preview; + +import com.fr.design.gui.ilable.UILabel; +import com.fr.design.mainframe.alphafine.AlphaFineConstants; +import com.fr.general.IOUtils; +import com.fr.general.Inter; + +import javax.swing.*; +import java.awt.*; + + /** * Created by XiaXiang on 2017/5/5. */ -public class ActionPreviewPane { - //todo:还没确定要不要使用面板截图 +public class ActionPreviewPane extends JPanel { + private static final Font NAME = new Font("Song_TypeFace",0,14); + public ActionPreviewPane() { + setLayout(new BorderLayout()); + setBackground(null); + setBorder(BorderFactory.createEmptyBorder(135,0,0,0)); + UILabel image = new UILabel(); + image.setPreferredSize(new Dimension(150,111)); + image.setHorizontalAlignment(SwingConstants.CENTER); + image.setBorder(BorderFactory.createEmptyBorder(0, 0, 10, 0)); + image.setIcon(IOUtils.readIcon("/com/fr/design/mainframe/alphafine/images/noresult.png")); + UILabel description = new UILabel(Inter.getLocText("FR-Designer_NoResult")); + description.setForeground(AlphaFineConstants.MEDIUM_GRAY); + description.setFont(NAME); + description.setBorder(BorderFactory.createEmptyBorder(10, 0, 10, 0)); + description.setHorizontalAlignment(SwingConstants.CENTER); + this.add(image, BorderLayout.CENTER); + this.add(description, BorderLayout.SOUTH); + } + } diff --git a/designer/src/com/fr/design/mainframe/alphafine/search/manager/ActionSearchManager.java b/designer/src/com/fr/design/mainframe/alphafine/search/manager/ActionSearchManager.java index 85c43b794..928f68a3d 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/search/manager/ActionSearchManager.java +++ b/designer/src/com/fr/design/mainframe/alphafine/search/manager/ActionSearchManager.java @@ -23,9 +23,7 @@ public class ActionSearchManager implements AlphaFineSearchProcessor { private SearchResult filterModelList; private SearchResult lessModelList; private SearchResult moreModelList; - private static final MoreModel TITLE_MODEL = new MoreModel(Inter.getLocText("FR-Designer_Set"), CellType.ACTION); - private static final MoreModel MORE_MODEL = new MoreModel(Inter.getLocText("FR-Designer_Set"), Inter.getLocText("FR-Designer_AlphaFine_ShowAll"), true, CellType.ACTION); public synchronized static ActionSearchManager getActionSearchManager() { if (actionSearchManager == null) { @@ -39,11 +37,15 @@ public class ActionSearchManager implements AlphaFineSearchProcessor { filterModelList = new SearchResult(); lessModelList = new SearchResult(); moreModelList = new SearchResult(); + if (StringUtils.isBlank(searchText)) { + lessModelList.add(TITLE_MODEL); + return lessModelList; + } if (DesignerEnvManager.getEnvManager().getAlphaFineConfigManager().isContainAction()) { List updateActions = UpdateActionManager.getUpdateActionManager().getUpdateActions(); for (UpdateActionModel updateActionModel : updateActions) { if (StringUtils.isNotBlank(updateActionModel.getSearchKey())) { - if (updateActionModel.getSearchKey().toLowerCase().contains(searchText.toLowerCase()) && updateActionModel.getAction().isEnabled()) { + if (updateActionModel.getSearchKey().contains(searchText) && updateActionModel.getAction().isEnabled()) { filterModelList.add(new ActionModel(updateActionModel.getActionName(), updateActionModel.getParentName(), updateActionModel.getAction())); } } @@ -63,7 +65,7 @@ public class ActionSearchManager implements AlphaFineSearchProcessor { lessModelList.addAll(result); } } else { - lessModelList.add(0, MORE_MODEL); + lessModelList.add(0, new MoreModel(Inter.getLocText("FR-Designer_Set"), Inter.getLocText("FR-Designer_AlphaFine_ShowAll"), true, CellType.ACTION)); lessModelList.addAll(result.subList(0, AlphaFineConstants.SHOW_SIZE)); moreModelList.addAll(result.subList(AlphaFineConstants.SHOW_SIZE, result.size())); } @@ -85,7 +87,7 @@ public class ActionSearchManager implements AlphaFineSearchProcessor { public static ActionModel getModelFromCloud(String actionName ) { List updateActions = UpdateActionManager.getUpdateActionManager().getUpdateActions(); for (UpdateActionModel updateActionModel : updateActions) { - if (ComparatorUtils.equals(actionName, updateActionModel.getClassName())) { + if (ComparatorUtils.equals(actionName, updateActionModel.getClassName()) && updateActionModel.getAction().isEnabled()) { return new ActionModel(updateActionModel.getActionName(), updateActionModel.getParentName(), updateActionModel.getAction()); } } diff --git a/designer/src/com/fr/design/mainframe/alphafine/search/manager/DocumentSearchManager.java b/designer/src/com/fr/design/mainframe/alphafine/search/manager/DocumentSearchManager.java index 4fb8a060d..fc10e8f9c 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/search/manager/DocumentSearchManager.java +++ b/designer/src/com/fr/design/mainframe/alphafine/search/manager/DocumentSearchManager.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.stable.StringUtils; /** * Created by XiaXiang on 2017/3/27. @@ -22,7 +23,6 @@ public class DocumentSearchManager implements AlphaFineSearchProcessor { private SearchResult lessModelList; private SearchResult moreModelList; private static final MoreModel TITLE_MODEL = new MoreModel(Inter.getLocText("FR-Designer_COMMUNITY_HELP"), CellType.DOCUMENT); - private static final MoreModel MORE_MODEL = new MoreModel(Inter.getLocText("FR-Designer_COMMUNITY_HELP"), Inter.getLocText("FR-Designer_AlphaFine_ShowAll"),true, CellType.DOCUMENT); public synchronized static DocumentSearchManager getDocumentSearchManager() { if (documentSearchManager == null) { @@ -36,6 +36,10 @@ public class DocumentSearchManager implements AlphaFineSearchProcessor { public synchronized SearchResult getLessSearchResult(String searchText) { lessModelList = new SearchResult(); moreModelList = new SearchResult(); + if (StringUtils.isBlank(searchText)) { + lessModelList.add(TITLE_MODEL); + return lessModelList; + } if (DesignerEnvManager.getEnvManager().getAlphaFineConfigManager().isContainDocument()) { String result; String url = AlphaFineConstants.DOCUMENT_SEARCH_URL + searchText + "-1"; @@ -67,16 +71,15 @@ public class DocumentSearchManager implements AlphaFineSearchProcessor { lessModelList.addAll(searchResult); } } else { - lessModelList.add(0, MORE_MODEL); + lessModelList.add(0, new MoreModel(Inter.getLocText("FR-Designer_COMMUNITY_HELP"), Inter.getLocText("FR-Designer_AlphaFine_ShowAll"),true, CellType.DOCUMENT)); lessModelList.addAll(searchResult.subList(0, AlphaFineConstants.SHOW_SIZE)); moreModelList.addAll(searchResult.subList(AlphaFineConstants.SHOW_SIZE, searchResult.size())); } } - } catch (JSONException e) { FRLogger.getLogger().error("document search error: " + e.getMessage()); + return lessModelList; } - } return lessModelList; } diff --git a/designer/src/com/fr/design/mainframe/alphafine/search/manager/FileSearchManager.java b/designer/src/com/fr/design/mainframe/alphafine/search/manager/FileSearchManager.java index 6fe9f5d23..a7d9fbe65 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/search/manager/FileSearchManager.java +++ b/designer/src/com/fr/design/mainframe/alphafine/search/manager/FileSearchManager.java @@ -10,9 +10,11 @@ import com.fr.design.mainframe.alphafine.cell.model.FileModel; import com.fr.design.mainframe.alphafine.cell.model.MoreModel; import com.fr.design.mainframe.alphafine.model.SearchResult; import com.fr.file.filetree.FileNode; +import com.fr.general.ComparatorUtils; import com.fr.general.FRLogger; import com.fr.general.Inter; import com.fr.stable.StableUtils; +import com.fr.stable.StringUtils; import com.fr.stable.project.ProjectConstants; import java.io.*; @@ -23,14 +25,17 @@ import java.util.List; * Created by XiaXiang on 2017/3/27. */ public class FileSearchManager implements AlphaFineSearchProcessor { + private static final int MARK_LENGTH = 6; + private static final String DS_NAME = "dsname=\""; + private static final MoreModel TITLE_MODEL = new MoreModel(Inter.getLocText("FR-Designer_Templates"), CellType.FILE); + private static FileSearchManager fileSearchManager = null; private SearchResult filterModelList; private SearchResult lessModelList; private SearchResult moreModelList; private List fileNodes = null; - private static FileSearchManager fileSearchManager = null; - - private static final MoreModel TITLE_MODEL = new MoreModel(Inter.getLocText("FR-Designer_Templates"), CellType.FILE); - private static final MoreModel MORE_MODEL = new MoreModel(Inter.getLocText("FR-Designer_Templates"), Inter.getLocText("FR-Designer_AlphaFine_ShowAll"),true, CellType.FILE); + //隐藏的搜索功能,可根据特殊的字符标记判断搜索分类 + private boolean isContainCpt = true; + private boolean isContainFrm = true; public synchronized static FileSearchManager getFileSearchManager() { init(); @@ -43,47 +48,72 @@ public class FileSearchManager implements AlphaFineSearchProcessor { } } + /** + * 根据文件路径获取文件模型 + * + * @param filePath + * @return + */ + public static FileModel getModelFromCloud(String filePath) { + String name = AlphaFineHelper.findFileName(filePath); + return new FileModel(name, filePath); + } + public synchronized SearchResult getLessSearchResult(String searchText) { this.filterModelList = new SearchResult(); this.lessModelList = new SearchResult(); this.moreModelList = new SearchResult(); - if (DesignerEnvManager.getEnvManager().getAlphaFineConfigManager().isContainTemplate()) { - Env env = FRContext.getCurrentEnv(); - fileNodes = new ArrayList<>(); - fileNodes = listTpl(env, ProjectConstants.REPORTLETS_NAME, true); - for (FileNode node : fileNodes) { - boolean isAlreadyContain = false; - String fileEnvPath = node.getEnvPath(); - String filePath = StableUtils.pathJoin(env.getPath(), fileEnvPath); - isAlreadyContain = searchFile(searchText, node, isAlreadyContain); - searchFileContent(searchText, node, isAlreadyContain, filePath); + if (searchText.startsWith("k:frm ")) { + isContainCpt = false; + searchText = searchText.substring(MARK_LENGTH, searchText.length()); + } else if (searchText.startsWith("k:cpt ")) { + isContainFrm = false; + searchText = searchText.substring(MARK_LENGTH, searchText.length()); + } + if (StringUtils.isBlank(searchText) || ComparatorUtils.equals(searchText, DS_NAME)) { + lessModelList.add(TITLE_MODEL); + return lessModelList; + } - } - SearchResult result = new SearchResult(); - for (Object object : filterModelList) { - if (!AlphaFineHelper.getFilterResult().contains(object)) { - result.add(object); - } + Env env = FRContext.getCurrentEnv(); + fileNodes = new ArrayList<>(); + fileNodes = listTpl(env, ProjectConstants.REPORTLETS_NAME, true); + isContainCpt = true; + isContainFrm = true; + for (FileNode node : fileNodes) { + boolean isAlreadyContain = false; + String fileEnvPath = node.getEnvPath(); + String filePath = StableUtils.pathJoin(env.getPath(), fileEnvPath); + isAlreadyContain = searchFile(searchText, node, isAlreadyContain); + searchFileContent(searchText, node, isAlreadyContain, filePath); + } + SearchResult result = new SearchResult(); + for (Object object : filterModelList) { + if (!AlphaFineHelper.getFilterResult().contains(object)) { + result.add(object); } - if (result.size() < AlphaFineConstants.SHOW_SIZE + 1) { - lessModelList.add(0, TITLE_MODEL); - if (result.size() == 0) { - lessModelList.add(AlphaFineHelper.NO_RESULT_MODEL); - } else { - lessModelList.addAll(result); - } + + } + if (result.size() < AlphaFineConstants.SHOW_SIZE + 1) { + lessModelList.add(0, TITLE_MODEL); + if (result.size() == 0) { + lessModelList.add(AlphaFineHelper.NO_RESULT_MODEL); } else { - lessModelList.add(0, MORE_MODEL); - lessModelList.addAll(result.subList(0, AlphaFineConstants.SHOW_SIZE)); - moreModelList.addAll(result.subList(AlphaFineConstants.SHOW_SIZE, result.size())); + lessModelList.addAll(result); } + } else { + lessModelList.add(0, new MoreModel(Inter.getLocText("FR-Designer_Templates"), Inter.getLocText("FR-Designer_AlphaFine_ShowAll"), true, CellType.FILE)); + lessModelList.addAll(result.subList(0, AlphaFineConstants.SHOW_SIZE)); + moreModelList.addAll(result.subList(AlphaFineConstants.SHOW_SIZE, result.size())); } + return this.lessModelList; } /** * 搜索文件内容 + * * @param searchText * @param node * @param isAlreadyContain @@ -118,6 +148,7 @@ public class FileSearchManager implements AlphaFineSearchProcessor { /** * 搜索模板 + * * @param searchText * @param node * @param isAlreadyContain @@ -125,7 +156,7 @@ public class FileSearchManager implements AlphaFineSearchProcessor { */ private boolean searchFile(String searchText, FileNode node, boolean isAlreadyContain) { if (DesignerEnvManager.getEnvManager().getAlphaFineConfigManager().isContainTemplate()) { - if (node.getName().toLowerCase().contains(searchText.toLowerCase())) { + if (node.getName().toLowerCase().contains(searchText)) { FileModel model = new FileModel(node.getName(), node.getEnvPath()); this.filterModelList.add(model); isAlreadyContain = true; @@ -141,6 +172,7 @@ public class FileSearchManager implements AlphaFineSearchProcessor { /** * 获取工作目录下所有符合要求的模板 + * * @param env * @param rootFilePath * @param recurse @@ -151,13 +183,14 @@ public class FileSearchManager implements AlphaFineSearchProcessor { try { listAll(env, rootFilePath, fileNodeList, recurse); } catch (Exception e) { - FRContext.getLogger().error(e.getMessage(), e); + FRContext.getLogger().error("file search error: " + e.getMessage(), e); } return fileNodeList; } /** * 获取当前工作目录下所有模板 + * * @param env * @param rootFilePath * @param nodeList @@ -174,20 +207,37 @@ public class FileSearchManager implements AlphaFineSearchProcessor { } else { nodeList.add(fns[i]); } - } else if (fileNode.isFileType("cpt") || fileNode.isFileType("frm")) { + } else if (isContainCpt && fileNode.isFileType("cpt")) { + nodeList.add(fileNode); + } else if (isContainFrm && fileNode.isFileType("frm")) { nodeList.add(fileNode); } } } /** - * 根据文件路径获取文件模型 - * @param filePath + * 是否包含cpt + * * @return */ - public static FileModel getModelFromCloud(String filePath) { - String name = AlphaFineHelper.findFileName(filePath); - return new FileModel(name, filePath); + public boolean isContainCpt() { + return isContainCpt; + } + + public void setContainCpt(boolean containCpt) { + isContainCpt = containCpt; + } + + /** + * 是否包含frm + * + * @return + */ + public boolean isContainFrm() { + return isContainFrm; } + public void setContainFrm(boolean containFrm) { + isContainFrm = containFrm; + } } diff --git a/designer/src/com/fr/design/mainframe/alphafine/search/manager/PluginSearchManager.java b/designer/src/com/fr/design/mainframe/alphafine/search/manager/PluginSearchManager.java index 53fc0bb17..cadbbe119 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/search/manager/PluginSearchManager.java +++ b/designer/src/com/fr/design/mainframe/alphafine/search/manager/PluginSearchManager.java @@ -14,6 +14,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.stable.StringUtils; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; @@ -23,10 +24,7 @@ import java.net.URLEncoder; */ public class PluginSearchManager implements AlphaFineSearchProcessor { private static PluginSearchManager pluginSearchManager = null; - private static final MoreModel TITLE_MODEL = new MoreModel(Inter.getLocText("FR-Designer-Plugin_Addon"), CellType.PLUGIN); - private static final MoreModel MORE_MODEL = new MoreModel(Inter.getLocText("FR-Designer-Plugin_Addon"), Inter.getLocText("FR-Designer_AlphaFine_ShowAll"),true, CellType.PLUGIN); - private SearchResult lessModelList; private SearchResult moreModelList; @@ -43,6 +41,10 @@ public class PluginSearchManager implements AlphaFineSearchProcessor { public synchronized SearchResult getLessSearchResult(String searchText) { this.lessModelList = new SearchResult(); this.moreModelList = new SearchResult(); + if (StringUtils.isBlank(searchText)) { + lessModelList.add(TITLE_MODEL); + return lessModelList; + } if (DesignerEnvManager.getEnvManager().getAlphaFineConfigManager().isContainPlugin()) { String result; try { @@ -74,13 +76,11 @@ public class PluginSearchManager implements AlphaFineSearchProcessor { lessModelList.addAll(searchResult); } } else { - lessModelList.add(0, MORE_MODEL); + lessModelList.add(0, new MoreModel(Inter.getLocText("FR-Designer-Plugin_Addon"), Inter.getLocText("FR-Designer_AlphaFine_ShowAll"),true, CellType.PLUGIN)); lessModelList.addAll(searchResult.subList(0, AlphaFineConstants.SHOW_SIZE)); moreModelList.addAll(searchResult.subList(AlphaFineConstants.SHOW_SIZE, searchResult.size())); } - } - } catch (JSONException e) { FRLogger.getLogger().error("plugin search json error :" + e.getMessage()); } catch (UnsupportedEncodingException e) { @@ -88,8 +88,6 @@ public class PluginSearchManager implements AlphaFineSearchProcessor { } } return this.lessModelList; - - } private SearchResult getNoConnectList() { @@ -105,7 +103,7 @@ public class PluginSearchManager implements AlphaFineSearchProcessor { int pluginId = object.optInt("id"); String imageUrl = null; try { - imageUrl = AlphaFineConstants.PLUGIN_IMAGE_URL + URLEncoder.encode(object.optString("pic").toString().substring(AlphaFineConstants.PLUGIN_IMAGE_URL.length()), "utf8"); + imageUrl = isFromCloud? AlphaFineConstants.PLUGIN_IMAGE_URL + URLEncoder.encode(object.optString("pic").toString().substring(AlphaFineConstants.PLUGIN_IMAGE_URL.length()), "utf8") : object.optString("pic"); } catch (UnsupportedEncodingException e) { FRLogger.getLogger().error(e.getMessage()); } diff --git a/designer/src/com/fr/design/mainframe/alphafine/search/manager/RecommendSearchManager.java b/designer/src/com/fr/design/mainframe/alphafine/search/manager/RecommendSearchManager.java index 051c8e66e..9b38f7144 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/search/manager/RecommendSearchManager.java +++ b/designer/src/com/fr/design/mainframe/alphafine/search/manager/RecommendSearchManager.java @@ -13,6 +13,7 @@ import com.fr.json.JSONArray; import com.fr.json.JSONException; import com.fr.json.JSONObject; import com.fr.stable.CodeUtils; +import com.fr.stable.StringUtils; import java.util.ArrayList; import java.util.List; @@ -36,6 +37,7 @@ public class RecommendSearchManager implements AlphaFineSearchProcessor { @Override public synchronized SearchResult getLessSearchResult(String searchText) { this.modelList = new SearchResult(); + this.recommendModelList = new ArrayList<>(); if (DesignerEnvManager.getEnvManager().getAlphaFineConfigManager().isContainRecommend()) { String result; HttpClient httpClient = new HttpClient(SEARCHAPI + CodeUtils.cjkEncode(searchText)); @@ -64,7 +66,7 @@ public class RecommendSearchManager implements AlphaFineSearchProcessor { } catch (JSONException e) { FRLogger.getLogger().error("recommend search error! :" + e.getMessage()); } - if (modelList.size() > 0) { + if (recommendModelList.size() > 0) { modelList.add(new MoreModel(Inter.getLocText("FR-Designer_AlphaFine_Recommend"), false)); modelList.addAll(recommendModelList); } diff --git a/designer_base/src/com/fr/design/locale/designer.properties b/designer_base/src/com/fr/design/locale/designer.properties index 1453ff2df..96aaff01c 100644 --- a/designer_base/src/com/fr/design/locale/designer.properties +++ b/designer_base/src/com/fr/design/locale/designer.properties @@ -2008,4 +2008,5 @@ FR-Designer_AlphaFine_ShowLess=show less FR-Designer_Alphafine=AlphaFine FR-Designer-Alphafine_No_Remind= FR-Designer_AlphaFine_NoResult=no results -FR-Designer_ConnectionFailed=connection failed \ No newline at end of file +FR-Designer_ConnectionFailed=connection failed +FR-Designer_NoResult=No results \ No newline at end of file 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 96d737429..8c8e4046a 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 @@ -2009,3 +2009,4 @@ FR-Designer_AlphaFine_NoResult=No results FR-Designer_ConnectionFailed=Connection failed FR-Designer_AlphaFine_EnableAlphaFine=Enable AlphaFine FR-Designer_AlphaFine_EnableInternet=Internet +FR-Designer_NoResult=No results 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 d63b22e16..f37ed736f 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 @@ -2005,3 +2005,4 @@ FR-Designer_Alphafine=AlphaFine\u667A\u80FD\u641C\u7D22 FR-Designer-Alphafine_No_Remind=\u4E0D\u518D\u63D0\u793A FR-Designer_AlphaFine_NoResult=\u6682\u65E0\u76F8\u5173\u5185\u5BB9 FR-Designer_ConnectionFailed=\u94FE\u63A5\u5931\u8D25 +FR-Designer_NoResult=\u6682\u4E0D\u652F\u6301\u663E\u793A 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 9e59a18a0..01fb047ff 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,3 +2003,4 @@ FR-Designer_AlphaFine_ShowAll=\u986F\u793A\u5168\u90E8 FR-Designer-Alphafine_No_Remind=\u4E0D\u518D\u63D0\u793A FR-Designer_AlphaFine_NoResult=\u66AB\u7121\u76F8\u95DC\u5167\u5BB9 FR-Designer_ConnectionFailed=\u93C8\u63A5\u5931\u6557 +FR-Designer_NoResult=\u66AB\u4E0D\u652F\u6301\u986F\u793A diff --git a/designer_base/src/com/fr/design/mainframe/toolbar/UpdateActionModel.java b/designer_base/src/com/fr/design/mainframe/toolbar/UpdateActionModel.java index 4ded05f71..cb16c62ee 100644 --- a/designer_base/src/com/fr/design/mainframe/toolbar/UpdateActionModel.java +++ b/designer_base/src/com/fr/design/mainframe/toolbar/UpdateActionModel.java @@ -40,7 +40,7 @@ public class UpdateActionModel { .append(SEPARATOR).append(PinyinHelper.getShortPinyin(parentName)).append(SEPARATOR) .append(actionName).append(SEPARATOR).append(PinyinHelper.convertToPinyinString(actionName, "", PinyinFormat.WITHOUT_TONE)) .append(SEPARATOR).append(PinyinHelper.getShortPinyin(actionName)).append(action.getSearchText()); - this.searchKey = buffer.toString(); + this.searchKey = buffer.toString().toLowerCase(); } /**