Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
View | Details | Raw Unified | Return to bug 413346 | Differences between
and this patch

Collapse All | Expand All

(-)a/core/plugins/org.eclipse.dltk.ui/META-INF/MANIFEST.MF (-1 / +1 lines)
Lines 2-8 Link Here
2
Bundle-ManifestVersion: 2
2
Bundle-ManifestVersion: 2
3
Bundle-Name: %pluginName
3
Bundle-Name: %pluginName
4
Bundle-SymbolicName: org.eclipse.dltk.ui;singleton:=true
4
Bundle-SymbolicName: org.eclipse.dltk.ui;singleton:=true
5
Bundle-Version: 5.0.0.qualifier
5
Bundle-Version: 5.1.0.qualifier
6
Bundle-Activator: org.eclipse.dltk.ui.DLTKUIPlugin
6
Bundle-Activator: org.eclipse.dltk.ui.DLTKUIPlugin
7
Bundle-Vendor: %pluginProvider
7
Bundle-Vendor: %pluginProvider
8
Bundle-Localization: plugin
8
Bundle-Localization: plugin
(-)a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/editor/ScriptOutlinePage.java (-2 / +2 lines)
Lines 49-57 Link Here
49
import org.eclipse.dltk.ui.actions.OpenViewActionGroup;
49
import org.eclipse.dltk.ui.actions.OpenViewActionGroup;
50
import org.eclipse.dltk.ui.actions.SearchActionGroup;
50
import org.eclipse.dltk.ui.actions.SearchActionGroup;
51
import org.eclipse.dltk.ui.viewsupport.AppearanceAwareLabelProvider;
51
import org.eclipse.dltk.ui.viewsupport.AppearanceAwareLabelProvider;
52
import org.eclipse.dltk.ui.viewsupport.DecoratingModelLabelProvider;
53
import org.eclipse.dltk.ui.viewsupport.SourcePositionSorter;
52
import org.eclipse.dltk.ui.viewsupport.SourcePositionSorter;
54
import org.eclipse.dltk.ui.viewsupport.StatusBarUpdater;
53
import org.eclipse.dltk.ui.viewsupport.StatusBarUpdater;
54
import org.eclipse.dltk.ui.viewsupport.StyledDecoratingModelLabelProvider;
55
import org.eclipse.jface.action.Action;
55
import org.eclipse.jface.action.Action;
56
import org.eclipse.jface.action.GroupMarker;
56
import org.eclipse.jface.action.GroupMarker;
57
import org.eclipse.jface.action.IAction;
57
import org.eclipse.jface.action.IAction;
Lines 673-679 Link Here
673
		fOutlineViewer = new ScriptOutlineViewer(tree);
673
		fOutlineViewer = new ScriptOutlineViewer(tree);
674
		initDragAndDrop();
674
		initDragAndDrop();
675
		fOutlineViewer.setContentProvider(new ChildrenProvider());
675
		fOutlineViewer.setContentProvider(new ChildrenProvider());
676
		fOutlineViewer.setLabelProvider(new DecoratingModelLabelProvider(
676
		fOutlineViewer.setLabelProvider(new StyledDecoratingModelLabelProvider(
677
				lprovider));
677
				lprovider));
678
678
679
		Object[] listeners = fSelectionChangedListeners.getListeners();
679
		Object[] listeners = fSelectionChangedListeners.getListeners();
(-)a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/viewsupport/DecoratingModelLabelProvider.java (+3 lines)
Lines 16-21 Link Here
16
import org.eclipse.swt.graphics.Color;
16
import org.eclipse.swt.graphics.Color;
17
import org.eclipse.ui.PlatformUI;
17
import org.eclipse.ui.PlatformUI;
18
18
19
/**
20
 * @deprecated use StyledDecoratingModelLabelProvider instead
21
 */
19
public class DecoratingModelLabelProvider extends DecoratingLabelProvider
22
public class DecoratingModelLabelProvider extends DecoratingLabelProvider
20
		implements IColorProvider {
23
		implements IColorProvider {
21
24
(-)a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/viewsupport/ScriptUILabelProvider.java (-22 / +46 lines)
Lines 24-40 Link Here
24
import org.eclipse.dltk.ui.ScriptElementLabels;
24
import org.eclipse.dltk.ui.ScriptElementLabels;
25
import org.eclipse.jface.resource.CompositeImageDescriptor;
25
import org.eclipse.jface.resource.CompositeImageDescriptor;
26
import org.eclipse.jface.util.SafeRunnable;
26
import org.eclipse.jface.util.SafeRunnable;
27
import org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelProvider;
27
import org.eclipse.jface.viewers.IColorProvider;
28
import org.eclipse.jface.viewers.IColorProvider;
28
import org.eclipse.jface.viewers.ILabelDecorator;
29
import org.eclipse.jface.viewers.ILabelDecorator;
29
import org.eclipse.jface.viewers.ILabelProvider;
30
import org.eclipse.jface.viewers.ILabelProvider;
30
import org.eclipse.jface.viewers.ILabelProviderListener;
31
import org.eclipse.jface.viewers.ILabelProviderListener;
31
import org.eclipse.jface.viewers.LabelProviderChangedEvent;
32
import org.eclipse.jface.viewers.LabelProviderChangedEvent;
33
import org.eclipse.jface.viewers.StyledCellLabelProvider;
34
import org.eclipse.jface.viewers.StyledString;
32
import org.eclipse.swt.graphics.Color;
35
import org.eclipse.swt.graphics.Color;
33
import org.eclipse.swt.graphics.Image;
36
import org.eclipse.swt.graphics.Image;
34
import org.eclipse.swt.graphics.ImageData;
37
import org.eclipse.swt.graphics.ImageData;
35
import org.eclipse.swt.graphics.Point;
38
import org.eclipse.swt.graphics.Point;
36
39
37
public class ScriptUILabelProvider implements ILabelProvider, IColorProvider {
40
public class ScriptUILabelProvider implements ILabelProvider, IColorProvider,  IStyledLabelProvider {
38
41
39
	protected ListenerList fListeners = new ListenerList(1);
42
	protected ListenerList fListeners = new ListenerList(1);
40
43
Lines 200-226 Link Here
200
	}
203
	}
201
204
202
	public String getText(Object element) {
205
	public String getText(Object element) {
203
		ILabelProvider[] providers = getProviders(element);
206
		StyledString styledText = getStyledText(element);
204
		String result = null;
207
		if (styledText != null)
205
		if (providers != null) {
208
			return styledText.toString();
206
			for (int i = 0; i < providers.length; i++) {
209
		return null;
207
				String text = providers[i].getText(element);
208
				if (text != null) {
209
					result = text;
210
					break;
211
				}
212
			}
213
		}
214
		if (result == null) {
215
			result = ScriptElementLabels.getDefault().getTextLabel(element,
216
					evaluateTextFlags(element));
217
		}
218
219
		if (result.length() == 0 && (element instanceof IStorage)) {
220
			result = fStorageLabelProvider.getText(element);
221
		}
222
223
		return decorateText(result, element);
224
	}
210
	}
225
211
226
	private ILabelProvider[] getProviders(Object element) {
212
	private ILabelProvider[] getProviders(Object element) {
Lines 337-340 Link Here
337
		}
323
		}
338
		return text;
324
		return text;
339
	}
325
	}
326
	
327
	/**
328
	 * @since 5.1
329
	 */
330
	public StyledString getStyledText(Object element) {
331
		ILabelProvider[] providers = getProviders(element);
332
		StyledString result = null;
333
		if (providers != null) {
334
			for (int i = 0; i < providers.length; i++) {
335
				if (providers[i] instanceof IStyledLabelProvider) {
336
					StyledString string = ((IStyledLabelProvider) providers[i]).getStyledText(element);
337
					if (string != null) {
338
						result = string;
339
						break;
340
					}
341
				} else {
342
					String text = providers[i].getText(element);
343
					if (text != null) {
344
						result = new StyledString(text);
345
						break;
346
					}
347
				}
348
			}
349
		}
350
		if (result == null) {
351
			result = new StyledString(ScriptElementLabels.getDefault().getTextLabel(element, evaluateTextFlags(element)));
352
		}
353
354
		if (result.length() == 0 && (element instanceof IStorage)) {
355
			result = new StyledString(fStorageLabelProvider.getText(element));
356
		}
357
358
		String decorated = decorateText(result.getString(), element);
359
		if (decorated != null) {
360
			return StyledCellLabelProvider.styleDecoratedString(decorated, StyledString.DECORATIONS_STYLER, result);
361
		}
362
		return result;
363
	}
340
}
364
}
(-)a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/viewsupport/StyledDecoratingModelLabelProvider.java (+81 lines)
Added Link Here
1
/*******************************************************************************
2
 * Copyright (c) 2000, 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
 
9
 *******************************************************************************/
10
package org.eclipse.dltk.ui.viewsupport;
11
12
import org.eclipse.dltk.ui.ProblemsLabelDecorator;
13
import org.eclipse.jface.viewers.DecoratingStyledCellLabelProvider;
14
import org.eclipse.jface.viewers.DecorationContext;
15
import org.eclipse.jface.viewers.ILabelProvider;
16
import org.eclipse.ui.PlatformUI;
17
18
/**
19
 * a DecoratingModelLabelProvider which support StyledText
20
 * 
21
 * replace org.eclipse.dltk.ui.viewsupport.StyledDecoratingModelLabelProvider
22
 * 
23
 * @since 5.1
24
 */
25
public class StyledDecoratingModelLabelProvider extends DecoratingStyledCellLabelProvider implements ILabelProvider {
26
27
	/**
28
	 * Decorating label provider for DLTK. Combines a ScriptUILabelProvider with
29
	 * problem and override indicuator with the workbench decorator (label
30
	 * decorator extension point).
31
	 */
32
	public StyledDecoratingModelLabelProvider(ScriptUILabelProvider labelProvider) {
33
		this(labelProvider, true);
34
	}
35
36
	/**
37
	 * Decorating label provider for dltk. Combines a ScriptUILabelProvider (if
38
	 * enabled with problem indicator) with the workbench decorator (label
39
	 * decorator extension point).
40
	 */
41
	public StyledDecoratingModelLabelProvider(ScriptUILabelProvider labelProvider,
42
			boolean errorTick) {
43
		this(labelProvider, errorTick, true);
44
	}
45
46
	/**
47
	 * Decorating label provider for dltk. Combines a ScriptUILabelProvider (if
48
	 * enabled with problem indicator) with the workbench decorator (label
49
	 * decorator extension point).
50
	 */
51
	public StyledDecoratingModelLabelProvider(ScriptUILabelProvider labelProvider,
52
			boolean errorTick, boolean flatPackageMode) {
53
		super(labelProvider, PlatformUI.getWorkbench().getDecoratorManager()
54
				.getLabelDecorator(),null);
55
56
		if (errorTick) {
57
			labelProvider.addLabelDecorator(new ProblemsLabelDecorator(null));
58
		}
59
		setFlatPackageMode(flatPackageMode);
60
	}
61
62
	/**
63
	 * Tells the label decorator if the view presents packages flat or
64
	 * hierarchical.
65
	 * 
66
	 * @param enable
67
	 *            If set, packages are presented in flat mode.
68
	 */
69
	public void setFlatPackageMode(boolean enable) {
70
		if (enable) {
71
			setDecorationContext(DecorationContext.DEFAULT_CONTEXT);
72
		} else {
73
			setDecorationContext(DecorationContext.DEFAULT_CONTEXT);
74
			// TODO setDecorationContext(HierarchicalDecorationContext.CONTEXT);
75
		}
76
	}
77
78
	public String getText(Object element) {
79
		return getStyledText(element).toString();
80
	}
81
}

Return to bug 413346