X-Git-Url: http://secure.phpeclipse.com
diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/viewsupport/JavaUILabelProvider.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/viewsupport/JavaUILabelProvider.java
new file mode 100644
index 0000000..09b8826
--- /dev/null
+++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/viewsupport/JavaUILabelProvider.java
@@ -0,0 +1,240 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2003 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package net.sourceforge.phpdt.internal.ui.viewsupport;
+
+import java.util.ArrayList;
+
+import org.eclipse.core.resources.IStorage;
+import org.eclipse.jface.viewers.ILabelDecorator;
+import org.eclipse.jface.viewers.ILabelProviderListener;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.swt.graphics.Image;
+
+public class JavaUILabelProvider extends LabelProvider {
+
+ protected JavaElementImageProvider fImageLabelProvider;
+
+ protected StorageLabelProvider fStorageLabelProvider;
+
+ protected ArrayList fLabelDecorators;
+
+ private int fImageFlags;
+
+ private int fTextFlags;
+
+ /**
+ * Creates a new label provider with default flags.
+ */
+// public JavaUILabelProvider() {
+// this(JavaElementLabels.M_PARAMETER_TYPES,
+// JavaElementImageProvider.OVERLAY_ICONS);
+// }
+
+ /**
+ * @param textFlags
+ * Flags defined in JavaElementLabels
.
+ * @param imageFlags
+ * Flags defined in JavaElementImageProvider
.
+ */
+ public JavaUILabelProvider(int textFlags, int imageFlags) {
+ fImageLabelProvider = new JavaElementImageProvider();
+ fLabelDecorators = null;
+
+ fStorageLabelProvider = new StorageLabelProvider();
+ fImageFlags = imageFlags;
+ fTextFlags = textFlags;
+ }
+
+ /**
+ * Adds a decorator to the label provider
+ */
+ public void addLabelDecorator(ILabelDecorator decorator) {
+ if (fLabelDecorators == null) {
+ fLabelDecorators = new ArrayList(2);
+ }
+ fLabelDecorators.add(decorator);
+ }
+
+ /**
+ * Sets the textFlags.
+ *
+ * @param textFlags
+ * The textFlags to set
+ */
+ public final void setTextFlags(int textFlags) {
+ fTextFlags = textFlags;
+ }
+
+ /**
+ * Sets the imageFlags
+ *
+ * @param imageFlags
+ * The imageFlags to set
+ */
+ public final void setImageFlags(int imageFlags) {
+ fImageFlags = imageFlags;
+ }
+
+ /**
+ * Gets the image flags. Can be overwriten by super classes.
+ *
+ * @return Returns a int
+ */
+ public final int getImageFlags() {
+ return fImageFlags;
+ }
+
+ /**
+ * Gets the text flags.
+ *
+ * @return Returns a int
+ */
+ public final int getTextFlags() {
+ return fTextFlags;
+ }
+
+ /**
+ * Evaluates the image flags for a element. Can be overwriten by super
+ * classes.
+ *
+ * @return Returns a int
+ */
+ protected int evaluateImageFlags(Object element) {
+ return getImageFlags();
+ }
+
+ /**
+ * Evaluates the text flags for a element. Can be overwriten by super
+ * classes.
+ *
+ * @return Returns a int
+ */
+ protected int evaluateTextFlags(Object element) {
+ return getTextFlags();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see ILabelProvider#getImage
+ */
+ public Image getImage(Object element) {
+ Image result = fImageLabelProvider.getImageLabel(element,
+ evaluateImageFlags(element));
+ if (result == null && (element instanceof IStorage)) {
+ result = fStorageLabelProvider.getImage(element);
+ }
+ if (fLabelDecorators != null && result != null) {
+ for (int i = 0; i < fLabelDecorators.size(); i++) {
+ ILabelDecorator decorator = (ILabelDecorator) fLabelDecorators
+ .get(i);
+ result = decorator.decorateImage(result, element);
+ }
+ }
+ return result;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see ILabelProvider#getText
+ */
+ public String getText(Object element) {
+ String result = JavaElementLabels.getTextLabel(element,
+ evaluateTextFlags(element));
+ if (result.length() == 0 && (element instanceof IStorage)) {
+ result = fStorageLabelProvider.getText(element);
+ }
+ if (fLabelDecorators != null && result.length() > 0) {
+ for (int i = 0; i < fLabelDecorators.size(); i++) {
+ ILabelDecorator decorator = (ILabelDecorator) fLabelDecorators
+ .get(i);
+ result = decorator.decorateText(result, element);
+ }
+ }
+ return result;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see IBaseLabelProvider#dispose
+ */
+ public void dispose() {
+ if (fLabelDecorators != null) {
+ for (int i = 0; i < fLabelDecorators.size(); i++) {
+ ILabelDecorator decorator = (ILabelDecorator) fLabelDecorators
+ .get(i);
+ decorator.dispose();
+ }
+ fLabelDecorators = null;
+ }
+ fStorageLabelProvider.dispose();
+ fImageLabelProvider.dispose();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see IBaseLabelProvider#addListener(ILabelProviderListener)
+ */
+ public void addListener(ILabelProviderListener listener) {
+ if (fLabelDecorators != null) {
+ for (int i = 0; i < fLabelDecorators.size(); i++) {
+ ILabelDecorator decorator = (ILabelDecorator) fLabelDecorators
+ .get(i);
+ decorator.addListener(listener);
+ }
+ }
+ super.addListener(listener);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see IBaseLabelProvider#isLabelProperty(Object, String)
+ */
+ public boolean isLabelProperty(Object element, String property) {
+ return true;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see IBaseLabelProvider#removeListener(ILabelProviderListener)
+ */
+ public void removeListener(ILabelProviderListener listener) {
+ if (fLabelDecorators != null) {
+ for (int i = 0; i < fLabelDecorators.size(); i++) {
+ ILabelDecorator decorator = (ILabelDecorator) fLabelDecorators
+ .get(i);
+ decorator.removeListener(listener);
+ }
+ }
+ super.removeListener(listener);
+ }
+
+// public static ILabelDecorator[] getDecorators(boolean errortick,
+// ILabelDecorator extra) {
+// if (errortick) {
+// if (extra == null) {
+// return new ILabelDecorator[] {};
+// } else {
+// return new ILabelDecorator[] { extra };
+// }
+// }
+// if (extra != null) {
+// return new ILabelDecorator[] { extra };
+// }
+// return null;
+// }
+
+}