Mercurial > projects > dwt-addons
comparison dwtx/jface/viewers/BaseLabelProvider.d @ 10:b6c35faf97c8
Viewers
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Mon, 31 Mar 2008 00:47:19 +0200 |
parents | |
children | 644f1334b451 |
comparison
equal
deleted
inserted
replaced
9:6c14e54dfc11 | 10:b6c35faf97c8 |
---|---|
1 /******************************************************************************* | |
2 * Copyright (c) 2006, 2007 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 * Port to the D programming language: | |
11 * Frank Benoit <benoit@tionex.de> | |
12 *******************************************************************************/ | |
13 | |
14 module dwtx.jface.viewers.BaseLabelProvider; | |
15 | |
16 import dwtx.jface.viewers.IBaseLabelProvider; | |
17 import dwtx.jface.viewers.ILabelProviderListener; | |
18 import dwtx.jface.viewers.LabelProviderChangedEvent; | |
19 | |
20 import dwtx.core.commands.common.EventManager; | |
21 import dwtx.jface.util.SafeRunnable; | |
22 | |
23 import dwt.dwthelper.utils; | |
24 | |
25 /** | |
26 * BaseLabelProvider is a default concrete implementation of | |
27 * {@link IBaseLabelProvider} | |
28 * | |
29 * @since 3.3 | |
30 * | |
31 */ | |
32 public class BaseLabelProvider : EventManager, IBaseLabelProvider { | |
33 | |
34 /* (non-Javadoc) | |
35 * Method declared on IBaseLabelProvider. | |
36 */ | |
37 public void addListener(ILabelProviderListener listener) { | |
38 addListenerObject(cast(Object)listener); | |
39 } | |
40 | |
41 /** | |
42 * The <code>BaseLabelProvider</code> implementation of this | |
43 * <code>IBaseLabelProvider</code> method clears its internal listener list. | |
44 * Subclasses may extend but should call the super implementation. | |
45 */ | |
46 public void dispose() { | |
47 clearListeners(); | |
48 } | |
49 | |
50 /** | |
51 * The <code>BaseLabelProvider</code> implementation of this | |
52 * <code>IBaseLabelProvider</code> method returns <code>true</code>. Subclasses may | |
53 * override. | |
54 */ | |
55 public bool isLabelProperty(Object element, String property) { | |
56 return true; | |
57 } | |
58 | |
59 | |
60 /* (non-Javadoc) | |
61 * @see dwtx.jface.viewers.IBaseLabelProvider#removeListener(dwtx.jface.viewers.ILabelProviderListener) | |
62 */ | |
63 public void removeListener(ILabelProviderListener listener) { | |
64 removeListenerObject(cast(Object)listener); | |
65 } | |
66 | |
67 /** | |
68 * Fires a label provider changed event to all registered listeners Only | |
69 * listeners registered at the time this method is called are notified. | |
70 * | |
71 * @param event | |
72 * a label provider changed event | |
73 * | |
74 * @see ILabelProviderListener#labelProviderChanged | |
75 */ | |
76 protected void fireLabelProviderChanged(LabelProviderChangedEvent event) { | |
77 Object[] listeners = getListeners(); | |
78 for (int i = 0; i < listeners.length; ++i) { | |
79 SafeRunnable.run(new class SafeRunnable { | |
80 LabelProviderChangedEvent event_; | |
81 ILabelProviderListener l; | |
82 this(){ | |
83 event_=event; | |
84 l = cast(ILabelProviderListener) listeners[i]; | |
85 } | |
86 public void run() { | |
87 l.labelProviderChanged(event_); | |
88 } | |
89 }); | |
90 | |
91 } | |
92 } | |
93 } |