SearchQuery implements ISearchQuery
SearchResult extends AbstractTextSearchResult implements IEditorMatchAdapter
SearchPage extends DialogPage implements ISearchPage
SearchResultPage extends AbstractTextSearchViewPage
SearchContentProvider implements IStructuredContentProvider
private void selectLine(ITextEditor textEditor, int lineNumber)
throws CoreException, BadLocationException {
if (lineNumber > 0) {
IEditorInput input = textEditor.getEditorInput();
int offset = 0;
int length = 0;
IDocumentProvider provider = textEditor.getDocumentProvider();
try {
provider.connect(input);
IDocument document = provider.getDocument(input);
IRegion region = document.getLineInformation(lineNumber - 1);
offset = region.getOffset();
length = region.getLength();
} finally {
provider.disconnect(input);
}
if (offset >= 0 && length >= 0) {
textEditor.selectAndReveal(offset, length);
}
}
}
@Override
protected void showMatch(Match match, int currentOffset, int currentLength,
boolean activate) throws PartInitException {
IEditorPart editor = editorOpener.openMatch(match);
if (editor != null) {
if (activate) {
editor.getEditorSite().getPage().activate(editor);
}
if (editor instanceof XMLMultiPageEditorPart) {
TextEditor textEditor = (TextEditor) editor
.getAdapter(TextEditor.class);
try {
selectLine(textEditor, currentOffset);
} catch (CoreException e) {
e.printStackTrace();
} catch (BadLocationException e) {
e.printStackTrace();
}
} else if (editor instanceof JavaEditor) {
if (match.getElement() instanceof TreeObject) {
TreeObject treeObject = (TreeObject) match.getElement();
IMember member = (IMember) treeObject
.getAdapter(IMember.class);
if (member != null) {
try {
ISourceRange range = member.getNameRange();
EditorUtility.revealInEditor(editor, range
.getOffset(), range.getLength());
// ((JavaEditor)editor).selectAndReveal(range.
// getOffset(), range.getLength());
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}
}
JavaUI.revealInEditor(part, (IJavaElement)element);
search.zip