use of org.eclipse.search.ui.text.MatchEvent 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]);
}
use of org.eclipse.search.ui.text.MatchEvent in project eclipse.platform.text by eclipse.
the class TestSearchResult method testBatchedMatchEvent.
@Test
public void testBatchedMatchEvent() {
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.addMatches(new Match[] { match1 });
assertTrue(wasAdded[0]);
wasAdded[0] = false;
result.addMatches(new Match[] { match1 });
assertFalse(wasAdded[0]);
Match match2 = new Match(object, 0, 0);
result.addMatches(new Match[] { match2 });
assertTrue(wasAdded[0]);
wasAdded[0] = false;
result.removeMatches(new Match[] { match2 });
assertTrue(wasRemoved[0]);
wasRemoved[0] = false;
result.removeMatches(new Match[] { match2 });
assertFalse(wasRemoved[0]);
}
use of org.eclipse.search.ui.text.MatchEvent in project eclipse.platform.text by eclipse.
the class EditorAnnotationManager method searchResultChanged.
@Override
public synchronized void searchResultChanged(SearchResultEvent e) {
ISearchResult searchResult = e.getSearchResult();
if (searchResult instanceof AbstractTextSearchResult) {
AbstractTextSearchResult result = (AbstractTextSearchResult) searchResult;
if (e instanceof MatchEvent) {
MatchEvent me = (MatchEvent) e;
Match[] matchesInEditor = getMatchesInEditor(me.getMatches(), result);
if (matchesInEditor != null) {
if (me.getKind() == MatchEvent.ADDED) {
addAnnotations(matchesInEditor);
} else {
removeAnnotations(matchesInEditor);
}
}
} else if (e instanceof RemoveAllEvent) {
removeAnnotations(result);
} else if (e instanceof FilterUpdateEvent) {
Match[] matchesInEditor = getMatchesInEditor(((FilterUpdateEvent) e).getUpdatedMatches(), result);
if (matchesInEditor != null) {
removeAnnotations(matchesInEditor);
addAnnotations(matchesInEditor);
}
}
}
}
use of org.eclipse.search.ui.text.MatchEvent in project eclipse.platform.text by eclipse.
the class PositionTracker method searchResultChanged.
// tracking matches ---------------------------------------------------------------------
@Override
public void searchResultChanged(SearchResultEvent e) {
if (e instanceof MatchEvent) {
MatchEvent evt = (MatchEvent) e;
Match[] matches = evt.getMatches();
int kind = evt.getKind();
AbstractTextSearchResult result = (AbstractTextSearchResult) e.getSearchResult();
for (Match match : matches) {
ITextFileBuffer fb = getTrackedFileBuffer(result, match.getElement());
if (fb != null) {
updateMatch(match, fb, kind, result);
}
}
} else if (e instanceof RemoveAllEvent) {
RemoveAllEvent evt = (RemoveAllEvent) e;
ISearchResult result = evt.getSearchResult();
untrackAll((AbstractTextSearchResult) result);
}
}
Aggregations