Project

General

Profile

Download (7.37 KB) Statistics
| Branch: | Tag: | Revision:
1
/*******************************************************************************
2
 * Copyright (c) 2003, 2009 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
 * 	   Anton Leherbauer, Wind River - bug 146788
11
 *     rob.stryker@jboss.com - bug 243824 [CommonNavigator] lacks table / tree-table support
12
 * 
13
 *******************************************************************************/
14
package org.eclipse.ui.internal.navigator.extensions;
15

    
16
import org.eclipse.jface.viewers.IColorProvider;
17
import org.eclipse.jface.viewers.IFontProvider;
18
import org.eclipse.jface.viewers.ILabelProvider;
19
import org.eclipse.jface.viewers.ILabelProviderListener;
20
import org.eclipse.jface.viewers.ITableLabelProvider;
21
import org.eclipse.jface.viewers.ITreePathLabelProvider;
22
// RAP [bmichalik]
23
//import org.eclipse.jface.viewers.StyledString;
24
import org.eclipse.jface.viewers.TreePath;
25
import org.eclipse.jface.viewers.ViewerLabel;
26
// RAP [bmichalik]
27
//import org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelProvider;
28
import org.eclipse.swt.graphics.Color;
29
import org.eclipse.swt.graphics.Font;
30
import org.eclipse.swt.graphics.Image;
31
import org.eclipse.ui.IMemento;
32
import org.eclipse.ui.navigator.ICommonContentExtensionSite;
33
import org.eclipse.ui.navigator.ICommonLabelProvider;
34
import org.eclipse.ui.navigator.IDescriptionProvider;
35

    
36
/**
37
 * @since 3.2
38
 */
39
// RAP [bmichalik]: removal of unsupported plug-in implementation
40
//public class SafeDelegateCommonLabelProvider implements ICommonLabelProvider, IColorProvider, IFontProvider, ITreePathLabelProvider, ITableLabelProvider, IStyledLabelProvider {
41
public class SafeDelegateCommonLabelProvider implements ICommonLabelProvider, IColorProvider, IFontProvider, ITreePathLabelProvider, ITableLabelProvider {
42

    
43
	private final ILabelProvider delegateLabelProvider;
44

    
45
	/**
46
	 * @param aLabelProvider
47
	 *            A non-null label provider.
48
	 * 
49
	 */
50
	public SafeDelegateCommonLabelProvider(ILabelProvider aLabelProvider) {
51
		super();
52
		delegateLabelProvider = aLabelProvider;
53
	}
54

    
55
	/**
56
	 * <p>
57
	 * No-op.
58
	 * </p>
59
	 * 
60
	 * @see org.eclipse.ui.navigator.ICommonLabelProvider#init(ICommonContentExtensionSite)
61
	 */
62
	public void init(ICommonContentExtensionSite aConfig) {
63
	}
64

    
65
	/**
66
	 * <p>
67
	 * If the delegate label provider implements <code>IDescriptionProvider</code>,
68
	 * it is used to retrieve the status bar message. 
69
	 * </p>
70
	 * <p>
71
	 * Returns <b>null </b> otherwise, forcing the CommonNavigator to provide the default
72
	 * message.
73
	 * </p>
74
	 * 
75
	 * @see org.eclipse.ui.navigator.ICommonLabelProvider#getDescription(java.lang.Object)
76
	 */
77
	public String getDescription(Object element) {
78
		/* The following few lines were contributed as part of a patch. */
79
		if (delegateLabelProvider instanceof IDescriptionProvider) {
80
			IDescriptionProvider provider = (IDescriptionProvider) delegateLabelProvider;
81
			return provider.getDescription(element);
82
		}
83
		return null;
84
	}
85

    
86
	/**
87
	 * @param listener
88
	 */
89
	public void addListener(ILabelProviderListener listener) {
90
		delegateLabelProvider.addListener(listener);
91
	}
92

    
93
	/**
94
	 * 
95
	 */
96
	public void dispose() {
97
		delegateLabelProvider.dispose();
98
	}
99

    
100
	/*
101
	 * (non-Javadoc)
102
	 * 
103
	 * @see java.lang.Object#equals(java.lang.Object)
104
	 */
105
	public boolean equals(Object obj) {
106
		return delegateLabelProvider.equals(obj);
107
	}
108

    
109
	public Image getImage(Object element) {
110
		return delegateLabelProvider.getImage(element);
111
	}
112

    
113
	public String getText(Object element) {
114
		return delegateLabelProvider.getText(element);
115
	}
116

    
117
// RAP [bmichalik]: removal of unsupported plug-in implementation
118
//	/* (non-Javadoc)
119
//	 * @see org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelProvider#getStyledText(java.lang.Object)
120
//	 */
121
//	public StyledString getStyledText(Object element) {
122
//		if (delegateLabelProvider instanceof IStyledLabelProvider) {
123
//			return ((IStyledLabelProvider)delegateLabelProvider).getStyledText(element);
124
//		}
125
//		String text= getText(element);
126
//		if (text == null)
127
//			text= ""; //$NON-NLS-1$
128
//		return new StyledString(text);
129
//	}	
130

    
131
	/* (non-Javadoc)
132
	 * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnImage(java.lang.Object, int)
133
	 */
134
	public Image getColumnImage(Object element, int columnIndex) {
135
		if (delegateLabelProvider instanceof ITableLabelProvider) {
136
			return ((ITableLabelProvider)delegateLabelProvider).getColumnImage(element, columnIndex);
137
		}
138
		return getImage(element);
139
	}
140

    
141
	/* (non-Javadoc)
142
	 * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnText(java.lang.Object, int)
143
	 */
144
	public String getColumnText(Object element, int columnIndex) {
145
		if (delegateLabelProvider instanceof ITableLabelProvider) {
146
			return ((ITableLabelProvider)delegateLabelProvider).getColumnText(element, columnIndex);
147
		}
148
		return getText(element);
149
	}
150
	
151
	/*
152
	 * (non-Javadoc)
153
	 * 
154
	 * @see java.lang.Object#hashCode()
155
	 */
156
	public int hashCode() {
157
		return delegateLabelProvider.hashCode();
158
	}
159

    
160
	public boolean isLabelProperty(Object element, String property) {
161
		return delegateLabelProvider.isLabelProperty(element, property);
162
	}
163

    
164
	/**
165
	 * @param listener
166
	 */
167
	public void removeListener(ILabelProviderListener listener) {
168
		delegateLabelProvider.removeListener(listener);
169
	}
170

    
171
	/*
172
	 * (non-Javadoc)
173
	 * 
174
	 * @see java.lang.Object#toString()
175
	 */
176
	public String toString() {
177
		return delegateLabelProvider.toString();
178
	}
179

    
180
	public void restoreState(IMemento aMemento) {
181

    
182
	}
183

    
184
	public void saveState(IMemento aMemento) {
185

    
186
	}
187

    
188
	/* (non-Javadoc)
189
	 * @see org.eclipse.jface.viewers.ITreePathLabelProvider#updateLabel(org.eclipse.jface.viewers.ViewerLabel, org.eclipse.jface.viewers.TreePath)
190
	 */
191
	public void updateLabel(ViewerLabel label, TreePath elementPath) {
192
		if (delegateLabelProvider instanceof ITreePathLabelProvider) {
193
			ITreePathLabelProvider tplp = (ITreePathLabelProvider) delegateLabelProvider;
194
			String text = label.getText() != null ? label.getText() : ""; //$NON-NLS-1$
195
			Image image = label.getImage();
196
			tplp.updateLabel(label, elementPath);
197
			if(label.getText() == null)
198
				label.setText(text);
199
			if(label.getImage() == null && image != null)
200
				label.setImage(image);
201
		} else {
202
			Image image = getImage(elementPath.getLastSegment());
203
			if(image != null)
204
				label.setImage(image);
205
			String text = getText(elementPath.getLastSegment());
206
			if(text != null)
207
				label.setText(text);
208
		}
209
	}
210

    
211
	/* (non-Javadoc)
212
	 * @see org.eclipse.jface.viewers.IColorProvider#getForeground(java.lang.Object)
213
	 */
214
	public Color getForeground(Object element) {
215
		if(delegateLabelProvider instanceof IColorProvider) {
216
			return ((IColorProvider)delegateLabelProvider).getForeground(element);
217
		}
218
		return null;
219
	}
220

    
221
	/* (non-Javadoc)
222
	 * @see org.eclipse.jface.viewers.IColorProvider#getBackground(java.lang.Object)
223
	 */
224
	public Color getBackground(Object element) {
225
		if(delegateLabelProvider instanceof IColorProvider) {
226
			return ((IColorProvider)delegateLabelProvider).getBackground(element);
227
		}
228
		return null;
229
	}
230

    
231
	/* (non-Javadoc)
232
	 * @see org.eclipse.jface.viewers.IFontProvider#getFont(java.lang.Object)
233
	 */
234
	public Font getFont(Object element) {
235
		if(delegateLabelProvider instanceof IFontProvider) {
236
			return ((IFontProvider)delegateLabelProvider).getFont(element);
237
		}
238
		return null;
239
	}
240
}
(22-22/29)