KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > eclipse > jface > internal > databinding > provisional > viewers > ViewerLabelProvider


1 /*******************************************************************************
2  * Copyright (c) 2005, 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 package org.eclipse.jface.internal.databinding.provisional.viewers;
12
13 import java.util.ArrayList JavaDoc;
14 import java.util.Collection JavaDoc;
15 import java.util.List JavaDoc;
16
17 import org.eclipse.jface.internal.databinding.provisional.swt.SWTUtil;
18 import org.eclipse.jface.viewers.ILabelProvider;
19 import org.eclipse.jface.viewers.ILabelProviderListener;
20 import org.eclipse.jface.viewers.IViewerLabelProvider;
21 import org.eclipse.jface.viewers.LabelProviderChangedEvent;
22 import org.eclipse.jface.viewers.ViewerLabel;
23 import org.eclipse.swt.graphics.Image;
24
25 /**
26  * NON-API - Generic viewer label provider.
27  * @since 1.1
28  *
29  */

30 public class ViewerLabelProvider implements IViewerLabelProvider,
31         ILabelProvider {
32
33     private List JavaDoc listeners = new ArrayList JavaDoc();
34
35     /**
36      * Subclasses should override this method. They should not call the base
37      * class implementation.
38      */

39     public void updateLabel(ViewerLabel label, Object JavaDoc element) {
40         label.setText(element.toString());
41     }
42
43     protected final void fireChangeEvent(Collection JavaDoc changes) {
44         final LabelProviderChangedEvent event = new LabelProviderChangedEvent(
45                 this, changes.toArray());
46         ILabelProviderListener[] listenerArray = (ILabelProviderListener[]) listeners
47                 .toArray(new ILabelProviderListener[listeners.size()]);
48         for (int i = 0; i < listenerArray.length; i++) {
49             ILabelProviderListener listener = listenerArray[i];
50             try {
51                 listener.labelProviderChanged(event);
52             } catch (Exception JavaDoc e) {
53                 SWTUtil.logException(e);
54             }
55         }
56     }
57
58     public final Image getImage(Object JavaDoc element) {
59         ViewerLabel label = new ViewerLabel("", null); //$NON-NLS-1$
60
updateLabel(label, element);
61         return label.getImage();
62     }
63
64     public final String JavaDoc getText(Object JavaDoc element) {
65         ViewerLabel label = new ViewerLabel("", null); //$NON-NLS-1$
66
updateLabel(label, element);
67         return label.getText();
68     }
69
70     public void addListener(ILabelProviderListener listener) {
71         listeners.add(listener);
72     }
73
74     public void dispose() {
75         listeners.clear();
76     }
77
78     public final boolean isLabelProperty(Object JavaDoc element, String JavaDoc property) {
79         return true;
80     }
81
82     public void removeListener(ILabelProviderListener listener) {
83         listeners.remove(listener);
84     }
85
86 }
87
Popular Tags