Skip to content

Commit

Permalink
Need to sort serach results
Browse files Browse the repository at this point in the history
Signed-off-by: Vitalii Parfonov <vparfonov@redhat.com>
  • Loading branch information
vparfonov committed Dec 19, 2017
1 parent 23d79ae commit 3e5dd4b
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 25 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,16 @@
import org.eclipse.che.api.promises.client.OperationException;
import org.eclipse.che.ide.api.app.AppContext;
import org.eclipse.che.ide.api.editor.EditorAgent;
import org.eclipse.che.ide.api.filetypes.FileType;
import org.eclipse.che.ide.api.filetypes.FileTypeRegistry;
import org.eclipse.che.ide.api.resources.File;
import org.eclipse.che.ide.dto.DtoFactory;
import org.eclipse.che.ide.resource.Path;
import org.eclipse.che.ide.util.loging.Log;

import java.util.List;
import java.util.function.Consumer;

/**
* Presenter for file navigation (find file by name and open it).
*
Expand All @@ -40,24 +45,36 @@ public class NavigateToFilePresenter implements NavigateToFileView.ActionDelegat

private final EditorAgent editorAgent;
private final RequestTransmitter requestTransmitter;
private final FileTypeRegistry fileTypeRegistry;
private final DtoFactory dtoFactory;
private final NavigateToFileView view;
private final AppContext appContext;
private String pattern;

@Inject
public NavigateToFilePresenter(
NavigateToFileView view,
AppContext appContext,
EditorAgent editorAgent,
RequestTransmitter requestTransmitter,
FileTypeRegistry fileTypeRegistry,
DtoFactory dtoFactory) {
this.view = view;
this.appContext = appContext;
this.editorAgent = editorAgent;
this.requestTransmitter = requestTransmitter;
this.fileTypeRegistry = fileTypeRegistry;
this.dtoFactory = dtoFactory;

this.view.setDelegate(this);

List<FileType> registeredFileTypes = fileTypeRegistry.getRegisteredFileTypes();
registeredFileTypes.forEach(new Consumer<FileType>() {
@Override
public void accept(FileType fileType) {
pattern = pattern + "|" + fileType.getExtension();
}
});
}

/** Show dialog with view for navigation. */
Expand Down Expand Up @@ -94,7 +111,9 @@ public void onFileNameChanged(String fileName) {
dtoFactory
.createDto(ProjectSearchRequestDto.class)
.withPath("")
.withName("(.+?)((\\.java))$");
.withName(".*.(" + pattern + ")");

Log.info(getClass(), ">>>> " + requestParams.getName());

requestTransmitter
.newRequest()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
import org.eclipse.che.api.promises.client.Promise;
import org.eclipse.che.ide.api.app.AppContext;
import org.eclipse.che.ide.api.editor.EditorAgent;
import org.eclipse.che.ide.api.filetypes.FileTypeRegistry;
import org.eclipse.che.ide.api.resources.Container;
import org.eclipse.che.ide.api.resources.File;
import org.eclipse.che.ide.dto.DtoFactory;
Expand Down Expand Up @@ -49,6 +50,7 @@ public class NavigateToFilePresenterTest {
@Mock private Promise<Optional<File>> optFilePromise;
@Mock private AppContext appContext;
@Mock private EditorAgent editorAgent;
@Mock private FileTypeRegistry fileTypeRegistry;
@Mock private DtoFactory dtoFactory;
@Mock private RequestTransmitter requestTransmitter;

Expand All @@ -60,7 +62,7 @@ public void setUp() {
when(container.getFile(any(Path.class))).thenReturn(optFilePromise);

presenter =
new NavigateToFilePresenter(view, appContext, editorAgent, requestTransmitter, dtoFactory);
new NavigateToFilePresenter(view, appContext, editorAgent, requestTransmitter, fileTypeRegistry, dtoFactory);
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
import java.nio.file.Paths;
import java.util.Collections;
import java.util.List;
import java.util.function.Consumer;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

Expand Down Expand Up @@ -57,20 +58,6 @@ public static boolean validateFileExtn(String userName){
return false;
}

@Test
public void test(){
System.out.println("Is 'java2novice.pdf' allowed file? "
+validateFileExtn("java2novice.pdf"));
System.out.println("Is 'cric.doc' allowed file? "
+validateFileExtn("cric.doc"));
System.out.println("Is 'java.gif' allowed file? "
+validateFileExtn("java.gif"));
System.out.println("Is 'novice.mp3' allowed file? "
+validateFileExtn("novice.mp3"));
System.out.println("Is 'java_2.jpeg' allowed file? "
+validateFileExtn("java_2.jpeg"));
}

@BeforeMethod
public void setUp() throws Exception {

Expand All @@ -90,13 +77,11 @@ public void tearDown() throws Exception {
@Test
public void initializesIndexForExistedFiles() throws Exception {
tempDirectory = Files.createTempDirectory("testsSearch");
Path tmp1 = Files.createFile(Paths.get(tempDirectory.toString(), "xxx.txt"));
Path tmp2 = Files.createFile(Paths.get(tempDirectory.toString(), "zzz.txt"));
Path tmp3 = Files.createFile(Paths.get(tempDirectory.toString(), "wer.vbd"));

Files.write(tmp1, TEST_CONTENT[1].getBytes());
Files.write(tmp2, TEST_CONTENT[2].getBytes());
Files.write(tmp3, TEST_CONTENT[3].getBytes());
Files.createFile(Paths.get(tempDirectory.toString(), "xxx.txt"));
Files.createFile(Paths.get(tempDirectory.toString(), "zzz.java"));
Files.createFile(Paths.get(tempDirectory.toString(), "aaa.yaml"));
Files.createFile(Paths.get(tempDirectory.toString(), "bbb.java"));
Files.createFile(Paths.get(tempDirectory.toString(), "zzz.txt"));
searcher =
new LuceneSearcher(
Collections.emptySet(),
Expand All @@ -115,10 +100,17 @@ public String transform(Path fsPath) {
});
searcher.initialize();
Thread.sleep(1000);
QueryExpression query = new QueryExpression().setName(".*.(txt|vbd)");
QueryExpression query = new QueryExpression().setName(".*.(xml|txt|json|md|java|yaml|yml)");
SearchResult search = searcher.search(query);
List<SearchResultEntry> results = search.getResults();
assertEquals(results.size(), 3);
assertEquals(results.size(), 5);
//TODO: result must be sorted by file extension and file name
results.forEach(searchResultEntry -> {
String filePath = searchResultEntry.getFilePath();
System.out.println(filePath);
});


}


Expand Down

0 comments on commit 3e5dd4b

Please sign in to comment.