]> git.uio.no Git - ifi-stolz-refaktor.git/blob - case-study/jdt-before/ui refactoring/org/eclipse/jdt/internal/ui/refactoring/nls/search/NLSSearchResultPage.java
Case Study: adding data and statistics
[ifi-stolz-refaktor.git] / case-study / jdt-before / ui refactoring / org / eclipse / jdt / internal / ui / refactoring / nls / search / NLSSearchResultPage.java
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
7  *
8  * Contributors:
9  *     IBM Corporation - initial API and implementation
10  *******************************************************************************/
11
12 package org.eclipse.jdt.internal.ui.refactoring.nls.search;
13
14 import org.eclipse.core.runtime.IAdaptable;
15
16 import org.eclipse.jface.viewers.TableViewer;
17 import org.eclipse.jface.viewers.TreeViewer;
18 import org.eclipse.jface.viewers.ViewerComparator;
19
20 import org.eclipse.ui.IEditorPart;
21 import org.eclipse.ui.PartInitException;
22 import org.eclipse.ui.part.IShowInTargetList;
23
24 import org.eclipse.ui.texteditor.ITextEditor;
25
26 import org.eclipse.search.ui.text.AbstractTextSearchViewPage;
27 import org.eclipse.search.ui.text.Match;
28
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;
32
33
34 public class NLSSearchResultPage extends AbstractTextSearchViewPage  implements IAdaptable {
35
36         private TextSearchTableContentProvider fContentProvider;
37         private NLSSearchEditorOpener fEditorOpener= new NLSSearchEditorOpener();
38
39         public NLSSearchResultPage() {
40                 super(AbstractTextSearchViewPage.FLAG_LAYOUT_FLAT);
41         }
42
43         /*
44          * @see org.eclipse.search.ui.text.AbstractTextSearchViewPage#showMatch(org.eclipse.search.ui.text.Match,
45          *      int, int)
46          */
47         @Override
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);
55                 }
56         }
57
58         /*
59          * @see org.eclipse.search.ui.text.AbstractTextSearchViewPage#elementsChanged(java.lang.Object[])
60          */
61         @Override
62         protected void elementsChanged(Object[] objects) {
63                 if (fContentProvider != null)
64                         fContentProvider.elementsChanged(objects);
65         }
66
67         /*
68          * @see org.eclipse.search.ui.text.AbstractTextSearchViewPage#clear()
69          */
70         @Override
71         protected void clear() {
72                 if (fContentProvider != null)
73                         fContentProvider.clear();
74         }
75
76         /*
77          * @see org.eclipse.search.ui.text.AbstractTextSearchViewPage#configureTreeViewer(org.eclipse.jface.viewers.TreeViewer)
78          */
79         @Override
80         protected void configureTreeViewer(TreeViewer viewer) {
81                 throw new IllegalStateException("Doesn't support tree mode."); //$NON-NLS-1$
82         }
83
84         /*
85          * @see org.eclipse.search.ui.text.AbstractTextSearchViewPage#configureTableViewer(org.eclipse.jface.viewers.TableViewer)
86          */
87         @Override
88         protected void configureTableViewer(TableViewer viewer) {
89                 viewer.setComparator(new ViewerComparator() {
90                         @Override
91                         public int category(Object element) {
92                                 if (element instanceof FileEntry) {
93                                         return 0;
94                                 } else {
95                                         return 1;
96                                 }
97                         }
98                 });
99                 viewer.setLabelProvider(new ColoringLabelProvider(new NLSSearchResultLabelProvider2(this)));
100                 fContentProvider= new TextSearchTableContentProvider();
101                 viewer.setContentProvider(fContentProvider);
102         }
103
104         /* (non-Javadoc)
105          * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
106          */
107         public Object getAdapter(Class adapter) {
108                 if (IShowInTargetList.class.equals(adapter)) {
109                         return JavaSearchResultPage.SHOW_IN_TARGET_LIST;
110                 }
111                 return null;
112         }
113
114
115 }