1 /*******************************************************************************
2 * Copyright (c) 2000, 2003 IBM Corporation and others.
3 * All rights reserved. This program and the accompanying materials
4 * are made available under the terms of the Common Public License v1.0
5 * which accompanies this distribution, and is available at
6 * http://www.eclipse.org/legal/cpl-v10.html
9 * IBM Corporation - initial API and implementation
10 *******************************************************************************/
11 package net.sourceforge.phpdt.internal.ui.viewsupport;
13 import net.sourceforge.phpdt.ui.OverrideIndicatorLabelDecorator;
14 import net.sourceforge.phpdt.ui.ProblemsLabelDecorator;
15 import net.sourceforge.phpeclipse.PHPeclipsePlugin;
17 import org.eclipse.core.runtime.CoreException;
18 import org.eclipse.jface.viewers.DecoratingLabelProvider;
19 import org.eclipse.swt.graphics.Image;
20 import org.eclipse.ui.IDecoratorManager;
21 import org.eclipse.ui.PlatformUI;
24 * Decorator prepared for the switch to use lightweight label decorators:
25 * uncomment the lbale decorator entries in plugin.xml and change
26 * USE_LIGHTWEIGHT to true.
27 * Certain views don't want problems or override indicators, so they signal this
28 * in the constructor. So on each getImage the corrsponding decorators are
29 * turned off and on again.
31 public class DecoratingJavaLabelProvider extends DecoratingLabelProvider {
33 private static final boolean USE_LIGHTWEIGHT= false;
35 private static final String PROBLEM_DECORATOR_ID= "net.sourceforge.phpdt.ui.problem.decorator"; //$NON-NLS-1$
36 private static final String OVERRIDE_DECORATOR_ID= "net.sourceforge.phpdt.ui.override.decorator"; //$NON-NLS-1$
38 private boolean fUseErrorTick;
39 private boolean fUseOverride;
42 * Decorating label provider for Java. Combines a JavaUILabelProvider
43 * with problem and override indicuator with the workbench decorator (label
44 * decorator extension point).
46 public DecoratingJavaLabelProvider(JavaUILabelProvider labelProvider) {
47 this(labelProvider, true, true);
51 * Decorating label provider for Java. Combines a JavaUILabelProvider
52 * (if enabled with problem and override indicator) with the workbench
53 * decorator (label decorator extension point).
55 public DecoratingJavaLabelProvider(JavaUILabelProvider labelProvider, boolean errorTick, boolean override) {
56 super(labelProvider, PlatformUI.getWorkbench().getDecoratorManager().getLabelDecorator());
57 fUseErrorTick= errorTick;
58 fUseOverride= override;
59 if (!USE_LIGHTWEIGHT) {
61 labelProvider.addLabelDecorator(new ProblemsLabelDecorator(null));
64 labelProvider.addLabelDecorator(new OverrideIndicatorLabelDecorator(null));
70 * @see org.eclipse.jface.viewers.ILabelProvider#getImage(java.lang.Object)
72 public Image getImage(Object element) {
73 if (USE_LIGHTWEIGHT) {
74 IDecoratorManager manager= PlatformUI.getWorkbench().getDecoratorManager();
76 boolean disableErrorTick= manager.getEnabled(PROBLEM_DECORATOR_ID) && !fUseErrorTick;
77 boolean disableOverride= manager.getEnabled(OVERRIDE_DECORATOR_ID) && !fUseOverride;
79 if (disableErrorTick) {
80 manager.setEnabled(PROBLEM_DECORATOR_ID, false);
82 if (disableOverride) {
83 manager.setEnabled(OVERRIDE_DECORATOR_ID, false);
85 Image image= super.getImage(element);
86 if (disableErrorTick) {
87 manager.setEnabled(PROBLEM_DECORATOR_ID, true);
89 if (disableOverride) {
90 manager.setEnabled(OVERRIDE_DECORATOR_ID, true);
93 } catch (CoreException e) {
94 PHPeclipsePlugin.log(e);
97 return super.getImage(element);
101 * @see org.eclipse.jface.viewers.ILabelProvider#getText(java.lang.Object)
103 public String getText(Object element) {
104 if (USE_LIGHTWEIGHT) {
105 IDecoratorManager manager= PlatformUI.getWorkbench().getDecoratorManager();
107 boolean disableErrorTick= manager.getEnabled(PROBLEM_DECORATOR_ID) && !fUseErrorTick;
108 boolean disableOverride= manager.getEnabled(OVERRIDE_DECORATOR_ID) && !fUseOverride;
110 if (disableErrorTick) {
111 manager.setEnabled(PROBLEM_DECORATOR_ID, false);
113 if (disableOverride) {
114 manager.setEnabled(OVERRIDE_DECORATOR_ID, false);
116 String text= super.getText(element);
117 if (disableErrorTick) {
118 manager.setEnabled(PROBLEM_DECORATOR_ID, true);
120 if (disableOverride) {
121 manager.setEnabled(OVERRIDE_DECORATOR_ID, true);
124 } catch (CoreException e) {
125 PHPeclipsePlugin.log(e);
128 return super.getText(element);