KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > eclipse > help > ui > internal > search > ResultTableContentProvider


1 /*******************************************************************************
2  * Copyright (c) 2000, 2004 IBM Corporation and others. All rights reserved.
3  * This program and the accompanying materials are made available under the
4  * terms of the Common Public License v1.0 which accompanies this distribution,
5  * and is available at http://www.eclipse.org/legal/cpl-v10.html
6  *
7  * Contributors: IBM Corporation - initial API and implementation
8  ******************************************************************************/

9 package org.eclipse.help.ui.internal.search;
10 import org.eclipse.jface.viewers.*;
11 import org.eclipse.search.ui.text.*;
12 public class ResultTableContentProvider implements IStructuredContentProvider {
13     protected final Object JavaDoc[] EMPTY_ARRAY = new Object JavaDoc[0];
14     private AbstractTextSearchResult searchResult;
15     private TableViewer tableViewer;
16     public Object JavaDoc[] getElements(Object JavaDoc inputElement) {
17         if (inputElement instanceof AbstractTextSearchResult)
18             return ((AbstractTextSearchResult) inputElement).getElements();
19         return EMPTY_ARRAY;
20     }
21     public void dispose() {
22     }
23     public void inputChanged(Viewer viewer, Object JavaDoc oldInput, Object JavaDoc newInput) {
24         tableViewer = (TableViewer) viewer;
25         searchResult = (AbstractTextSearchResult) newInput;
26     }
27     public void elementsChanged(Object JavaDoc[] updatedElements) {
28         for (int i = 0; i < updatedElements.length; i++) {
29             if (searchResult.getMatchCount(updatedElements[i]) > 0) {
30                 if (tableViewer.testFindItem(updatedElements[i]) != null)
31                     tableViewer.refresh(updatedElements[i]);
32                 else
33                     tableViewer.add(updatedElements[i]);
34             } else {
35                 tableViewer.remove(updatedElements[i]);
36             }
37         }
38     }
39     public void clear() {
40         tableViewer.refresh();
41     }
42 }
Popular Tags