1 /*******************************************************************************
2 * Copyright (c) 2000, 2011 IBM Corporation and others.
3 * All rights reserved. This program and the accompanying materials
4 * are made available under the terms of the Eclipse Public License v1.0
5 * which accompanies this distribution, and is available at
6 * http://www.eclipse.org/legal/epl-v10.html
9 * IBM Corporation - initial API and implementation
10 *******************************************************************************/
12 package org.eclipse.jdt.internal.ui.refactoring.nls.search;
14 import org.eclipse.core.runtime.IAdaptable;
16 import org.eclipse.jface.viewers.TableViewer;
17 import org.eclipse.jface.viewers.TreeViewer;
18 import org.eclipse.jface.viewers.ViewerComparator;
20 import org.eclipse.ui.IEditorPart;
21 import org.eclipse.ui.PartInitException;
22 import org.eclipse.ui.part.IShowInTargetList;
24 import org.eclipse.ui.texteditor.ITextEditor;
26 import org.eclipse.search.ui.text.AbstractTextSearchViewPage;
27 import org.eclipse.search.ui.text.Match;
29 import org.eclipse.jdt.internal.ui.search.JavaSearchResultPage;
30 import org.eclipse.jdt.internal.ui.search.TextSearchTableContentProvider;
31 import org.eclipse.jdt.internal.ui.viewsupport.ColoringLabelProvider;
34 public class NLSSearchResultPage extends AbstractTextSearchViewPage implements IAdaptable {
36 private TextSearchTableContentProvider fContentProvider;
37 private NLSSearchEditorOpener fEditorOpener= new NLSSearchEditorOpener();
39 public NLSSearchResultPage() {
40 super(AbstractTextSearchViewPage.FLAG_LAYOUT_FLAT);
44 * @see org.eclipse.search.ui.text.AbstractTextSearchViewPage#showMatch(org.eclipse.search.ui.text.Match,
48 protected void showMatch(Match match, int currentOffset, int currentLength, boolean activate) throws PartInitException {
49 IEditorPart editor= fEditorOpener.openMatch(match);
50 if (editor != null && activate)
51 editor.getEditorSite().getPage().activate(editor);
52 if (editor instanceof ITextEditor) {
53 ITextEditor textEditor= (ITextEditor) editor;
54 textEditor.selectAndReveal(currentOffset, currentLength);
59 * @see org.eclipse.search.ui.text.AbstractTextSearchViewPage#elementsChanged(java.lang.Object[])
62 protected void elementsChanged(Object[] objects) {
63 if (fContentProvider != null)
64 fContentProvider.elementsChanged(objects);
68 * @see org.eclipse.search.ui.text.AbstractTextSearchViewPage#clear()
71 protected void clear() {
72 if (fContentProvider != null)
73 fContentProvider.clear();
77 * @see org.eclipse.search.ui.text.AbstractTextSearchViewPage#configureTreeViewer(org.eclipse.jface.viewers.TreeViewer)
80 protected void configureTreeViewer(TreeViewer viewer) {
81 throw new IllegalStateException("Doesn't support tree mode."); //$NON-NLS-1$
85 * @see org.eclipse.search.ui.text.AbstractTextSearchViewPage#configureTableViewer(org.eclipse.jface.viewers.TableViewer)
88 protected void configureTableViewer(TableViewer viewer) {
89 viewer.setComparator(new ViewerComparator() {
91 public int category(Object element) {
92 if (element instanceof FileEntry) {
99 viewer.setLabelProvider(new ColoringLabelProvider(new NLSSearchResultLabelProvider2(this)));
100 fContentProvider= new TextSearchTableContentProvider();
101 viewer.setContentProvider(fContentProvider);
105 * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
107 public Object getAdapter(Class adapter) {
108 if (IShowInTargetList.class.equals(adapter)) {
109 return JavaSearchResultPage.SHOW_IN_TARGET_LIST;