01: /*******************************************************************************
02: * Copyright (c) 2006, 2007 IBM Corporation and others.
03: * All rights reserved. This program and the accompanying materials
04: * are made available under the terms of the Eclipse Public License v1.0
05: * which accompanies this distribution, and is available at
06: * http://www.eclipse.org/legal/epl-v10.html
07: *
08: * Contributors:
09: * IBM Corporation - initial API and implementation
10: *******************************************************************************/package org.eclipse.jface.viewers;
11:
12: import org.eclipse.core.commands.common.EventManager;
13: import org.eclipse.jface.util.SafeRunnable;
14:
15: /**
16: * BaseLabelProvider is a default concrete implementation of
17: * {@link IBaseLabelProvider}
18: *
19: * @since 3.3
20: *
21: */
22: public class BaseLabelProvider extends EventManager implements
23: IBaseLabelProvider {
24:
25: /* (non-Javadoc)
26: * Method declared on IBaseLabelProvider.
27: */
28: public void addListener(ILabelProviderListener listener) {
29: addListenerObject(listener);
30: }
31:
32: /**
33: * The <code>BaseLabelProvider</code> implementation of this
34: * <code>IBaseLabelProvider</code> method clears its internal listener list.
35: * Subclasses may extend but should call the super implementation.
36: */
37: public void dispose() {
38: clearListeners();
39: }
40:
41: /**
42: * The <code>BaseLabelProvider</code> implementation of this
43: * <code>IBaseLabelProvider</code> method returns <code>true</code>. Subclasses may
44: * override.
45: */
46: public boolean isLabelProperty(Object element, String property) {
47: return true;
48: }
49:
50: /* (non-Javadoc)
51: * @see org.eclipse.jface.viewers.IBaseLabelProvider#removeListener(org.eclipse.jface.viewers.ILabelProviderListener)
52: */
53: public void removeListener(ILabelProviderListener listener) {
54: removeListenerObject(listener);
55: }
56:
57: /**
58: * Fires a label provider changed event to all registered listeners Only
59: * listeners registered at the time this method is called are notified.
60: *
61: * @param event
62: * a label provider changed event
63: *
64: * @see ILabelProviderListener#labelProviderChanged
65: */
66: protected void fireLabelProviderChanged(
67: final LabelProviderChangedEvent event) {
68: Object[] listeners = getListeners();
69: for (int i = 0; i < listeners.length; ++i) {
70: final ILabelProviderListener l = (ILabelProviderListener) listeners[i];
71: SafeRunnable.run(new SafeRunnable() {
72: public void run() {
73: l.labelProviderChanged(event);
74: }
75: });
76:
77: }
78: }
79: }
|