Search in sources :

Example 16 with Match

use of org.eclipse.search.ui.text.Match in project eclipse.platform.text by eclipse.

the class SortingTest method testSorted.

@Test
public void testSorted() throws Exception {
    NewSearchUI.activateSearchResultView();
    NewSearchUI.runQueryInForeground(null, fQuery1);
    AbstractTextSearchResult result = (AbstractTextSearchResult) fQuery1.getSearchResult();
    int originalMatchCount = result.getMatchCount();
    List<Match> allMatches = new ArrayList<>(originalMatchCount);
    // first, collect all matches
    Object[] elements = result.getElements();
    for (int i = 0; i < elements.length; i++) {
        Match[] matches = result.getMatches(elements[i]);
        for (int j = 0; j < matches.length; j++) {
            allMatches.add(matches[j]);
        }
    }
    // now remove them and readd them in reverse order
    result.removeAll();
    assertTrue("removed all matches", result.getMatchCount() == 0);
    for (int i = allMatches.size() - 1; i >= 0; i--) {
        result.addMatch(allMatches.get(i));
    }
    assertEquals("Test that all matches have been added again", result.getMatchCount(), originalMatchCount);
    // now check that they're ordered by position.
    for (int i = 0; i < elements.length; i++) {
        Match[] matches = result.getMatches(elements[i]);
        assertTrue("has matches", matches.length > 0);
        for (int j = 1; j < matches.length; j++) {
            assertTrue("order problem", isLessOrEqual(matches[j - 1], matches[j]));
        }
    }
}
Also used : ArrayList(java.util.ArrayList) AbstractTextSearchResult(org.eclipse.search.ui.text.AbstractTextSearchResult) Match(org.eclipse.search.ui.text.Match) Test(org.junit.Test)

Example 17 with Match

use of org.eclipse.search.ui.text.Match in project eclipse.platform.text by eclipse.

the class TestSearchResult method testAddMatchDifferentStart.

@Test
public void testAddMatchDifferentStart() {
    ISearchQuery query = new NullQuery();
    AbstractTextSearchResult result = (AbstractTextSearchResult) query.getSearchResult();
    // $NON-NLS-1$
    String object = "object";
    Match match1 = new Match(object, 2, 0);
    result.addMatch(match1);
    assertEquals(result.getMatchCount(), 1);
    Match match2 = new Match(object, 1, 1);
    result.addMatch(match2);
    Match match3 = new Match(object, 0, 2);
    result.addMatch(match3);
    Match[] matches = result.getMatches(object);
    assertTrue("matches[0]", matches[0] == match3);
    assertTrue("matches[1]", matches[1] == match2);
    assertTrue("matches[2]", matches[2] == match1);
}
Also used : AbstractTextSearchResult(org.eclipse.search.ui.text.AbstractTextSearchResult) ISearchQuery(org.eclipse.search.ui.ISearchQuery) Match(org.eclipse.search.ui.text.Match) Test(org.junit.Test)

Example 18 with Match

use of org.eclipse.search.ui.text.Match in project eclipse.platform.text by eclipse.

the class TestSearchResult method testMatchEvent.

@Test
public void testMatchEvent() {
    final boolean[] wasAdded = { false };
    final boolean[] wasRemoved = { false };
    ISearchQuery query = new NullQuery();
    AbstractTextSearchResult result = (AbstractTextSearchResult) query.getSearchResult();
    result.addListener(new ISearchResultListener() {

        @Override
        public void searchResultChanged(SearchResultEvent e) {
            if (e instanceof MatchEvent) {
                MatchEvent evt = (MatchEvent) e;
                if (evt.getKind() == MatchEvent.ADDED) {
                    wasAdded[0] = true;
                } else {
                    wasRemoved[0] = true;
                }
            }
        }
    });
    // $NON-NLS-1$
    String object = "object";
    Match match1 = new Match(object, 0, 0);
    result.addMatch(match1);
    assertTrue(wasAdded[0]);
    wasAdded[0] = false;
    result.addMatch(match1);
    assertFalse(wasAdded[0]);
    Match match2 = new Match(object, 0, 0);
    result.addMatch(match2);
    assertTrue(wasAdded[0]);
    wasAdded[0] = false;
    result.removeMatch(match2);
    assertTrue(wasRemoved[0]);
    wasRemoved[0] = false;
    result.removeMatch(match2);
    assertFalse(wasRemoved[0]);
}
Also used : SearchResultEvent(org.eclipse.search.ui.SearchResultEvent) MatchEvent(org.eclipse.search.ui.text.MatchEvent) ISearchResultListener(org.eclipse.search.ui.ISearchResultListener) AbstractTextSearchResult(org.eclipse.search.ui.text.AbstractTextSearchResult) ISearchQuery(org.eclipse.search.ui.ISearchQuery) Match(org.eclipse.search.ui.text.Match) Test(org.junit.Test)

Example 19 with Match

use of org.eclipse.search.ui.text.Match in project eclipse.platform.text by eclipse.

the class TestSearchResult method testRemoveMatch.

@Test
public void testRemoveMatch() {
    ISearchQuery query = new NullQuery();
    AbstractTextSearchResult result = (AbstractTextSearchResult) query.getSearchResult();
    // $NON-NLS-1$
    String object = "object";
    Match match1 = new Match(object, 0, 0);
    result.addMatch(match1);
    Match match2 = new Match(object, 0, 0);
    result.addMatch(match2);
    assertEquals(result.getMatchCount(), 2);
    result.removeMatch(match1);
    assertEquals(result.getMatchCount(), 1);
    result.removeMatch(match1);
    assertEquals(result.getMatchCount(), 1);
}
Also used : AbstractTextSearchResult(org.eclipse.search.ui.text.AbstractTextSearchResult) ISearchQuery(org.eclipse.search.ui.ISearchQuery) Match(org.eclipse.search.ui.text.Match) Test(org.junit.Test)

Example 20 with Match

use of org.eclipse.search.ui.text.Match in project titan.EclipsePlug-ins by eclipse.

the class LogSearchResultPage method configureTreeViewer.

@Override
protected void configureTreeViewer(final TreeViewer viewer) {
    treeViewer = viewer;
    contentProvider = new TreeContentProvider(this);
    viewer.setContentProvider(contentProvider);
    viewer.setLabelProvider(new SearchLabelProvider());
    viewer.setInput(ResourcesPlugin.getWorkspace().getRoot());
    treeViewer.addSelectionChangedListener(new ISelectionChangedListener() {

        @Override
        public void selectionChanged(final SelectionChangedEvent event) {
            try {
                Object selectedElement = ((TreeSelection) event.getSelection()).getFirstElement();
                if (selectedElement instanceof Match) {
                    showMatch((Match) selectedElement, 0, 0, true);
                    return;
                }
            } catch (PartInitException e) {
                ErrorReporter.logExceptionStackTrace(e);
                // $NON-NLS-1$
                TitanLogExceptionHandler.handleException(new TechnicalException("Could not show the selected match. Reason: " + e.getMessage()));
            }
        }
    });
}
Also used : TreeContentProvider(org.eclipse.titan.log.viewer.search.TreeContentProvider) TechnicalException(org.eclipse.titan.log.viewer.exceptions.TechnicalException) SearchLabelProvider(org.eclipse.titan.log.viewer.search.SearchLabelProvider) ISelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener) SelectionChangedEvent(org.eclipse.jface.viewers.SelectionChangedEvent) PartInitException(org.eclipse.ui.PartInitException) Match(org.eclipse.search.ui.text.Match)

Aggregations

Match (org.eclipse.search.ui.text.Match)45 AbstractTextSearchResult (org.eclipse.search.ui.text.AbstractTextSearchResult)19 Test (org.junit.Test)14 ISearchQuery (org.eclipse.search.ui.ISearchQuery)11 ITextFileBuffer (org.eclipse.core.filebuffers.ITextFileBuffer)7 IFile (org.eclipse.core.resources.IFile)7 Position (org.eclipse.jface.text.Position)7 Annotation (org.eclipse.jface.text.source.Annotation)6 ArrayList (java.util.ArrayList)5 BadLocationException (org.eclipse.jface.text.BadLocationException)5 IDocument (org.eclipse.jface.text.IDocument)5 HashMap (java.util.HashMap)4 HashSet (java.util.HashSet)4 IAnnotationModel (org.eclipse.jface.text.source.IAnnotationModel)4 ISearchResult (org.eclipse.search.ui.ISearchResult)4 IResource (org.eclipse.core.resources.IResource)3 MatchEvent (org.eclipse.search.ui.text.MatchEvent)3 IStatus (org.eclipse.core.runtime.IStatus)2 Status (org.eclipse.core.runtime.Status)2 IJavaElement (org.eclipse.jdt.core.IJavaElement)2