Browse Source

Merge pull request #1570 in BA/design from ~XIAOXIA/design:feature/9.0 to feature/9.0

* commit 'ba4afc50ae8f2a803265660ac90c024a3a0c65c7':
  代码质量
  rt
  远程设计搜索bug
  搜索bug
  rt
  rt
superman 7 years ago
parent
commit
520d1e314b
  1. 52
      designer/src/com/fr/design/mainframe/alphafine/search/manager/impl/FileSearchManager.java

52
designer/src/com/fr/design/mainframe/alphafine/search/manager/impl/FileSearchManager.java

@ -15,15 +15,12 @@ import com.fr.general.ComparatorUtils;
import com.fr.general.FRLogger; import com.fr.general.FRLogger;
import com.fr.general.Inter; import com.fr.general.Inter;
import com.fr.json.JSONObject; import com.fr.json.JSONObject;
import com.fr.stable.StableUtils;
import com.fr.stable.StringUtils; import com.fr.stable.StringUtils;
import com.fr.stable.project.ProjectConstants; import com.fr.stable.project.ProjectConstants;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.File; import java.io.File;
import java.io.FileInputStream; import java.io.InputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader; import java.io.InputStreamReader;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -40,6 +37,7 @@ public class FileSearchManager implements AlphaFineSearchProvider {
private SearchResult filterModelList; private SearchResult filterModelList;
private SearchResult lessModelList; private SearchResult lessModelList;
private SearchResult moreModelList; private SearchResult moreModelList;
private String searchText;
private List<FileNode> fileNodes = null; private List<FileNode> fileNodes = null;
//停止搜索 //停止搜索
private boolean stopSearch = false; private boolean stopSearch = false;
@ -75,8 +73,8 @@ public class FileSearchManager implements AlphaFineSearchProvider {
this.filterModelList = new SearchResult(); this.filterModelList = new SearchResult();
this.lessModelList = new SearchResult(); this.lessModelList = new SearchResult();
this.moreModelList = new SearchResult(); this.moreModelList = new SearchResult();
searchText = dealWithSearchText(searchText); this.searchText = dealWithSearchText(searchText);
if (StringUtils.isBlank(searchText) || ComparatorUtils.equals(searchText, DS_NAME)) { if (StringUtils.isBlank(this.searchText) || ComparatorUtils.equals(this.searchText, DS_NAME)) {
lessModelList.add(new MoreModel(Inter.getLocText("FR-Designer_Templates"))); lessModelList.add(new MoreModel(Inter.getLocText("FR-Designer_Templates")));
return lessModelList; return lessModelList;
} }
@ -86,7 +84,7 @@ public class FileSearchManager implements AlphaFineSearchProvider {
AlphaFineHelper.checkCancel(); AlphaFineHelper.checkCancel();
isContainCpt = true; isContainCpt = true;
isContainFrm = true; isContainFrm = true;
doSearch(searchText, true, env); doSearch(this.searchText, true, env);
if (stopSearch) { if (stopSearch) {
lessModelList.add(0, new MoreModel(Inter.getLocText("FR-Designer_Templates"), Inter.getLocText("FR-Designer_AlphaFine_ShowAll"), true, CellType.FILE)); lessModelList.add(0, new MoreModel(Inter.getLocText("FR-Designer_Templates"), Inter.getLocText("FR-Designer_AlphaFine_ShowAll"), true, CellType.FILE));
lessModelList.addAll(filterModelList.subList(0, AlphaFineConstants.SHOW_SIZE)); lessModelList.addAll(filterModelList.subList(0, AlphaFineConstants.SHOW_SIZE));
@ -107,14 +105,12 @@ public class FileSearchManager implements AlphaFineSearchProvider {
return moreModelList; return moreModelList;
} }
this.filterModelList = new SearchResult(); this.filterModelList = new SearchResult();
this.lessModelList = new SearchResult();
this.moreModelList = new SearchResult(); this.moreModelList = new SearchResult();
searchText = dealWithSearchText(searchText);
Env env = FRContext.getCurrentEnv(); Env env = FRContext.getCurrentEnv();
AlphaFineHelper.checkCancel(); AlphaFineHelper.checkCancel();
isContainCpt = true; isContainCpt = true;
isContainFrm = true; isContainFrm = true;
doSearch(searchText, false, env); doSearch(this.searchText, false, env);
moreModelList.addAll(filterModelList.subList(AlphaFineConstants.SHOW_SIZE, filterModelList.size())); moreModelList.addAll(filterModelList.subList(AlphaFineConstants.SHOW_SIZE, filterModelList.size()));
return moreModelList; return moreModelList;
} }
@ -122,10 +118,13 @@ public class FileSearchManager implements AlphaFineSearchProvider {
private void doSearch(String searchText, boolean needMore, Env env) { private void doSearch(String searchText, boolean needMore, Env env) {
for (FileNode node : fileNodes) { for (FileNode node : fileNodes) {
boolean isAlreadyContain = false; boolean isAlreadyContain = false;
String fileEnvPath = node.getEnvPath();
String filePath = StableUtils.pathJoin(env.getPath(), fileEnvPath);
isAlreadyContain = searchFile(searchText, node, isAlreadyContain, needMore); isAlreadyContain = searchFile(searchText, node, isAlreadyContain, needMore);
searchFileContent(searchText, node, isAlreadyContain, filePath, needMore); if (DesignerEnvManager.getEnvManager().getAlphaFineConfigManager().isContainFileContent() && node.getLock() == null) {
searchFileContent(env, searchText, node, isAlreadyContain, needMore);
}
if (filterModelList.size() > AlphaFineConstants.SHOW_SIZE && stopSearch) {
return;
}
} }
} }
@ -147,13 +146,11 @@ public class FileSearchManager implements AlphaFineSearchProvider {
* @param searchText * @param searchText
* @param node * @param node
* @param isAlreadyContain * @param isAlreadyContain
* @param filePath
*/ */
private void searchFileContent(String searchText, FileNode node, boolean isAlreadyContain, String filePath, boolean needMore) { private void searchFileContent(Env env, String searchText, FileNode node, boolean isAlreadyContain, boolean needMore) {
if (DesignerEnvManager.getEnvManager().getAlphaFineConfigManager().isContainFileContent()) {
try { try {
InputStreamReader isr = new InputStreamReader(new FileInputStream(new File(filePath)), "UTF-8"); InputStream inputStream = env.readBean(node.getEnvPath().substring(ProjectConstants.REPORTLETS_NAME.length() + 1), ProjectConstants.REPORTLETS_NAME);
InputStreamReader isr = new InputStreamReader(inputStream, "UTF-8");
BufferedReader reader = new BufferedReader(isr); BufferedReader reader = new BufferedReader(isr);
String line; String line;
int columnNumber; int columnNumber;
@ -168,6 +165,7 @@ public class FileSearchManager implements AlphaFineSearchProvider {
if (isFoundInContent && !isAlreadyContain) { if (isFoundInContent && !isAlreadyContain) {
FileModel model = new FileModel(node.getName(), node.getEnvPath()); FileModel model = new FileModel(node.getName(), node.getEnvPath());
if (!AlphaFineHelper.getFilterResult().contains(model)) { if (!AlphaFineHelper.getFilterResult().contains(model)) {
AlphaFineHelper.checkCancel();
filterModelList.add(model); filterModelList.add(model);
} }
if (this.filterModelList.size() > AlphaFineConstants.SHOW_SIZE && needMore) { if (this.filterModelList.size() > AlphaFineConstants.SHOW_SIZE && needMore) {
@ -176,11 +174,8 @@ public class FileSearchManager implements AlphaFineSearchProvider {
} }
isr.close(); isr.close();
reader.close(); reader.close();
} catch (FileNotFoundException e) { } catch (Exception e) {
FRLogger.getLogger().error(e.getMessage()); FRLogger.getLogger().error("file read error: " + e.getMessage());
} catch (IOException e) {
FRLogger.getLogger().error(e.getMessage());
}
} }
} }
@ -197,9 +192,10 @@ public class FileSearchManager implements AlphaFineSearchProvider {
if (node.getName().toLowerCase().contains(searchText)) { if (node.getName().toLowerCase().contains(searchText)) {
FileModel model = new FileModel(node.getName(), node.getEnvPath()); FileModel model = new FileModel(node.getName(), node.getEnvPath());
if (!AlphaFineHelper.getFilterResult().contains(model)) { if (!AlphaFineHelper.getFilterResult().contains(model)) {
AlphaFineHelper.checkCancel();
filterModelList.add(model); filterModelList.add(model);
} }
if(filterModelList.size() > AlphaFineConstants.SHOW_SIZE && needMore) { if (filterModelList.size() > AlphaFineConstants.SHOW_SIZE && needMore) {
stopSearch = true; stopSearch = true;
} }
isAlreadyContain = true; isAlreadyContain = true;
@ -286,4 +282,12 @@ public class FileSearchManager implements AlphaFineSearchProvider {
public void setMoreModelList(SearchResult moreModelList) { public void setMoreModelList(SearchResult moreModelList) {
this.moreModelList = moreModelList; this.moreModelList = moreModelList;
} }
public String getSearchText() {
return searchText;
}
public void setSearchText(String searchText) {
this.searchText = searchText;
}
} }
Loading…
Cancel
Save