KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > eclipse > ui > internal > navigator > filters > ContentDescriptorContentProvider


1 /*******************************************************************************
2  * Copyright (c) 2006 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.ui.internal.navigator.filters;
13
14 import org.eclipse.jface.viewers.CheckboxTableViewer;
15 import org.eclipse.jface.viewers.ITreeContentProvider;
16 import org.eclipse.jface.viewers.Viewer;
17 import org.eclipse.swt.widgets.TableItem;
18 import org.eclipse.ui.navigator.INavigatorContentDescriptor;
19 import org.eclipse.ui.navigator.INavigatorContentService;
20
21 class ContentDescriptorContentProvider implements ITreeContentProvider {
22
23     private static final Object JavaDoc[] NO_CHILDREN = new Object JavaDoc[0];
24
25     private INavigatorContentService contentService;
26
27     private CheckboxTableViewer talbleViewer;
28
29     public void inputChanged(Viewer aViewer, Object JavaDoc anOldInput, Object JavaDoc aNewInput) {
30
31         if (aNewInput != null) {
32
33             if (aNewInput instanceof INavigatorContentService) {
34                 contentService = (INavigatorContentService) aNewInput;
35             }
36
37             if (aViewer instanceof CheckboxTableViewer) {
38                 talbleViewer = (CheckboxTableViewer) aViewer;
39             }
40
41             updateCheckState();
42         } else {
43             contentService = null;
44             talbleViewer = null;
45         }
46
47     }
48
49     /*
50      * (non-Javadoc)
51      *
52      * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
53      */

54     public Object JavaDoc[] getChildren(Object JavaDoc aParentElement) {
55         return NO_CHILDREN;
56     }
57
58     /*
59      * (non-Javadoc)
60      *
61      * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)
62      */

63     public Object JavaDoc getParent(Object JavaDoc anElement) {
64         return null;
65     }
66
67     /*
68      * (non-Javadoc)
69      *
70      * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
71      */

72     public boolean hasChildren(Object JavaDoc anElement) {
73         return getChildren(anElement).length != 0;
74     }
75
76     /*
77      * (non-Javadoc)
78      *
79      * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
80      */

81     public Object JavaDoc[] getElements(Object JavaDoc anInputElement) {
82         return contentService != null ? contentService.getVisibleExtensions()
83                 : NO_CHILDREN;
84     }
85
86     /*
87      * (non-Javadoc)
88      *
89      * @see org.eclipse.jface.viewers.IContentProvider#dispose()
90      */

91     public void dispose() {
92
93     }
94
95     private void updateCheckState() {
96         if (talbleViewer == null || contentService == null) {
97             return;
98         }
99
100         INavigatorContentDescriptor descriptor;
101         boolean enabled;
102
103         TableItem[] descriptorTableItems = talbleViewer.getTable().getItems();
104         for (int i = 0; i < descriptorTableItems.length; i++) {
105             if (descriptorTableItems[i].getData() instanceof INavigatorContentDescriptor) {
106                 descriptor = (INavigatorContentDescriptor) descriptorTableItems[i]
107                         .getData();
108                 enabled = contentService.getActivationService()
109                         .isNavigatorExtensionActive(descriptor.getId());
110                 talbleViewer.setChecked(descriptor, enabled);
111             }
112         }
113     }
114
115 }
Popular Tags