Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport')
-rw-r--r--bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/AppearanceAwareLabelProvider.java120
-rw-r--r--bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/BindingLabelProvider.java424
-rw-r--r--bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/ColoredJavaElementLabels.java895
-rw-r--r--bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/ColoredString.java173
-rw-r--r--bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/ColoredViewersManager.java218
-rw-r--r--bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/DecoratingJavaLabelProvider.java101
-rw-r--r--bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/FilterUpdater.java78
-rw-r--r--bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/HistoryDropDownAction.java153
-rw-r--r--bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/HistoryListAction.java242
-rw-r--r--bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/IProblemChangedListener.java31
-rw-r--r--bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/IRichLabelProvider.java19
-rw-r--r--bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/ISelectionListenerWithAST.java35
-rw-r--r--bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/IViewPartInputProvider.java25
-rw-r--r--bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/ImageDescriptorRegistry.java91
-rw-r--r--bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/ImageDisposer.java46
-rw-r--r--bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/ImageImageDescriptor.java52
-rw-r--r--bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/JavaElementImageProvider.java399
-rw-r--r--bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/JavaUILabelProvider.java278
-rw-r--r--bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/JavaViewerFilter.java56
-rw-r--r--bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/LabelProviderDisposer.java35
-rw-r--r--bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/LibraryFilter.java33
-rw-r--r--bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/MemberFilter.java104
-rw-r--r--bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/MemberFilterAction.java49
-rw-r--r--bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/OwnerDrawSupport.java163
-rw-r--r--bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/ProblemMarkerManager.java180
-rw-r--r--bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/ProblemTableViewer.java141
-rw-r--r--bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/ProblemTreeViewer.java328
-rw-r--r--bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/ProjectTemplateStore.java172
-rw-r--r--bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/ResourceToItemsMapper.java179
-rw-r--r--bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/SelectionListenerWithASTManager.java211
-rw-r--r--bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/SelectionProviderMediator.java206
-rw-r--r--bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/SourcePositionComparator.java113
-rw-r--r--bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/StatusBarUpdater.java106
-rw-r--r--bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/StorageLabelProvider.java136
-rw-r--r--bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/TreeHierarchyLayoutProblemsDecorator.java74
-rw-r--r--bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/ViewHistory.java103
36 files changed, 0 insertions, 5769 deletions
diff --git a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/AppearanceAwareLabelProvider.java b/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/AppearanceAwareLabelProvider.java
deleted file mode 100644
index d091d2b8..00000000
--- a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/AppearanceAwareLabelProvider.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.internal.ui.viewsupport;
-
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.jface.viewers.LabelProviderChangedEvent;
-import org.eclipse.ui.IEditorRegistry;
-import org.eclipse.ui.IPropertyListener;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.jsdt.ui.JavaScriptElementLabels;
-import org.eclipse.wst.jsdt.ui.PreferenceConstants;
-
-/**
- * JavaUILabelProvider that respects settings from the Appearance preference page.
- * Triggers a viewer update when a preference changes.
- */
-public class AppearanceAwareLabelProvider extends JavaUILabelProvider implements IPropertyChangeListener, IPropertyListener {
-
- public final static long DEFAULT_TEXTFLAGS= JavaScriptElementLabels.ROOT_VARIABLE | JavaScriptElementLabels.T_TYPE_PARAMETERS | JavaScriptElementLabels.M_PARAMETER_NAMES |
- JavaScriptElementLabels.M_APP_TYPE_PARAMETERS | JavaScriptElementLabels.M_APP_RETURNTYPE | JavaScriptElementLabels.REFERENCED_ROOT_POST_QUALIFIED;
- public final static int DEFAULT_IMAGEFLAGS= JavaElementImageProvider.OVERLAY_ICONS;
-
- private long fTextFlagMask;
- private int fImageFlagMask;
-
- /**
- * Constructor for AppearanceAwareLabelProvider.
- */
- public AppearanceAwareLabelProvider(long textFlags, int imageFlags) {
- super(textFlags, imageFlags);
- initMasks();
- PreferenceConstants.getPreferenceStore().addPropertyChangeListener(this);
- PlatformUI.getWorkbench().getEditorRegistry().addPropertyListener(this);
- }
-
- /**
- * Creates a labelProvider with DEFAULT_TEXTFLAGS and DEFAULT_IMAGEFLAGS
- */
- public AppearanceAwareLabelProvider() {
- this(DEFAULT_TEXTFLAGS, DEFAULT_IMAGEFLAGS);
- }
-
- private void initMasks() {
- IPreferenceStore store= PreferenceConstants.getPreferenceStore();
- fTextFlagMask= -1;
- if (!store.getBoolean(PreferenceConstants.APPEARANCE_METHOD_RETURNTYPE)) {
- fTextFlagMask ^= JavaScriptElementLabels.M_APP_RETURNTYPE;
- }
- if (!store.getBoolean(PreferenceConstants.APPEARANCE_METHOD_TYPEPARAMETERS)) {
- fTextFlagMask ^= JavaScriptElementLabels.M_APP_TYPE_PARAMETERS;
- }
- if (!store.getBoolean(PreferenceConstants.APPEARANCE_COMPRESS_PACKAGE_NAMES)) {
- fTextFlagMask ^= JavaScriptElementLabels.P_COMPRESSED;
- }
- if (!store.getBoolean(PreferenceConstants.APPEARANCE_CATEGORY)) {
- fTextFlagMask ^= JavaScriptElementLabels.ALL_CATEGORY;
- }
-
- fImageFlagMask= -1;
- }
-
- /*
- * @see IPropertyChangeListener#propertyChange(PropertyChangeEvent)
- */
- public void propertyChange(PropertyChangeEvent event) {
- String property= event.getProperty();
- if (property.equals(PreferenceConstants.APPEARANCE_METHOD_RETURNTYPE)
- || property.equals(PreferenceConstants.APPEARANCE_METHOD_TYPEPARAMETERS)
- || property.equals(PreferenceConstants.APPEARANCE_CATEGORY)
- || property.equals(PreferenceConstants.APPEARANCE_PKG_NAME_PATTERN_FOR_PKG_VIEW)
- || property.equals(PreferenceConstants.APPEARANCE_COMPRESS_PACKAGE_NAMES)) {
- initMasks();
- LabelProviderChangedEvent lpEvent= new LabelProviderChangedEvent(this, null); // refresh all
- fireLabelProviderChanged(lpEvent);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.IPropertyListener#propertyChanged(java.lang.Object, int)
- */
- public void propertyChanged(Object source, int propId) {
- if (propId == IEditorRegistry.PROP_CONTENTS) {
- fireLabelProviderChanged(new LabelProviderChangedEvent(this, null)); // refresh all
- }
- }
-
- /*
- * @see IBaseLabelProvider#dispose()
- */
- public void dispose() {
- PreferenceConstants.getPreferenceStore().removePropertyChangeListener(this);
- PlatformUI.getWorkbench().getEditorRegistry().removePropertyListener(this);
- super.dispose();
- }
-
- /*
- * @see JavaUILabelProvider#evaluateImageFlags()
- */
- protected int evaluateImageFlags(Object element) {
- return getImageFlags() & fImageFlagMask;
- }
-
- /*
- * @see JavaUILabelProvider#evaluateTextFlags()
- */
- protected long evaluateTextFlags(Object element) {
- return getTextFlags() & fTextFlagMask;
- }
-
-}
diff --git a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/BindingLabelProvider.java b/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/BindingLabelProvider.java
deleted file mode 100644
index ed06655c..00000000
--- a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/BindingLabelProvider.java
+++ /dev/null
@@ -1,424 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.internal.ui.viewsupport;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.wst.jsdt.core.dom.IBinding;
-import org.eclipse.wst.jsdt.core.dom.IFunctionBinding;
-import org.eclipse.wst.jsdt.core.dom.IPackageBinding;
-import org.eclipse.wst.jsdt.core.dom.ITypeBinding;
-import org.eclipse.wst.jsdt.core.dom.IVariableBinding;
-import org.eclipse.wst.jsdt.core.dom.Modifier;
-import org.eclipse.wst.jsdt.internal.corext.util.Messages;
-import org.eclipse.wst.jsdt.internal.ui.JavaScriptPlugin;
-import org.eclipse.wst.jsdt.internal.ui.JavaPluginImages;
-import org.eclipse.wst.jsdt.internal.ui.JavaUIMessages;
-import org.eclipse.wst.jsdt.ui.JavaScriptElementImageDescriptor;
-import org.eclipse.wst.jsdt.ui.JavaScriptElementLabels;
-
-/**
- * Label provider to render bindings in viewers.
- *
- *
- */
-public class BindingLabelProvider extends LabelProvider {
-
-
- private static int getAdornmentFlags(IBinding binding, int flags) {
- int adornments= 0;
- if (binding instanceof IFunctionBinding && ((IFunctionBinding) binding).isConstructor())
- adornments|= JavaScriptElementImageDescriptor.CONSTRUCTOR;
- final int modifiers= binding.getModifiers();
- if (Modifier.isAbstract(modifiers))
- adornments|= JavaScriptElementImageDescriptor.ABSTRACT;
- if (Modifier.isFinal(modifiers))
- adornments|= JavaScriptElementImageDescriptor.FINAL;
- if (Modifier.isSynchronized(modifiers))
- adornments|= JavaScriptElementImageDescriptor.SYNCHRONIZED;
- if (Modifier.isStatic(modifiers))
- adornments|= JavaScriptElementImageDescriptor.STATIC;
- if (binding.isDeprecated())
- adornments|= JavaScriptElementImageDescriptor.DEPRECATED;
- if (binding instanceof IVariableBinding && ((IVariableBinding) binding).isField()) {
- if (Modifier.isTransient(modifiers))
- adornments|= JavaScriptElementImageDescriptor.TRANSIENT;
- if (Modifier.isVolatile(modifiers))
- adornments|= JavaScriptElementImageDescriptor.VOLATILE;
- }
- return adornments;
- }
-
- private static ImageDescriptor getBaseImageDescriptor(IBinding binding, int flags) {
- if (binding instanceof ITypeBinding) {
- ITypeBinding typeBinding= (ITypeBinding) binding;
- if (typeBinding.isArray()) {
- typeBinding= typeBinding.getElementType();
- }
- return getTypeImageDescriptor(typeBinding.getDeclaringClass() != null, typeBinding, flags);
- } else if (binding instanceof IFunctionBinding) {
- return getMethodImageDescriptor(binding.getModifiers());
- } else if (binding instanceof IVariableBinding)
- return getFieldImageDescriptor((IVariableBinding) binding);
- return JavaPluginImages.DESC_OBJS_UNKNOWN;
- }
-
- private static ImageDescriptor getClassImageDescriptor(int modifiers) {
- if (Modifier.isPublic(modifiers) || Modifier.isProtected(modifiers) || Modifier.isPrivate(modifiers))
- return JavaPluginImages.DESC_OBJS_CLASS;
- else
- return JavaPluginImages.DESC_OBJS_CLASS_DEFAULT;
- }
-
- private static ImageDescriptor getFieldImageDescriptor(IVariableBinding binding) {
- final int modifiers= binding.getModifiers();
- if (Modifier.isPublic(modifiers))
- return JavaPluginImages.DESC_FIELD_PUBLIC;
- if (Modifier.isProtected(modifiers))
- return JavaPluginImages.DESC_FIELD_PROTECTED;
- if (Modifier.isPrivate(modifiers))
- return JavaPluginImages.DESC_FIELD_PRIVATE;
-
- return JavaPluginImages.DESC_FIELD_DEFAULT;
- }
-
- private static void getFieldLabel(IVariableBinding binding, long flags, StringBuffer buffer) {
- if (((flags & JavaScriptElementLabels.F_PRE_TYPE_SIGNATURE) != 0)) {
- getTypeLabel(binding.getType(), (flags & JavaScriptElementLabels.T_TYPE_PARAMETERS), buffer);
- buffer.append(' ');
- }
- // qualification
-
- if ((flags & JavaScriptElementLabels.F_FULLY_QUALIFIED) != 0) {
- ITypeBinding declaringClass= binding.getDeclaringClass();
- if (declaringClass != null) { // test for array.length
- getTypeLabel(declaringClass, JavaScriptElementLabels.T_FULLY_QUALIFIED | (flags & JavaScriptElementLabels.P_COMPRESSED), buffer);
- buffer.append('.');
- }
- }
- buffer.append(binding.getName());
- if (((flags & JavaScriptElementLabels.F_APP_TYPE_SIGNATURE) != 0)) {
- buffer.append(JavaScriptElementLabels.DECL_STRING);
- getTypeLabel(binding.getType(), (flags & JavaScriptElementLabels.T_TYPE_PARAMETERS), buffer);
- }
- // post qualification
- if ((flags & JavaScriptElementLabels.F_POST_QUALIFIED) != 0) {
- ITypeBinding declaringClass= binding.getDeclaringClass();
- if (declaringClass != null) { // test for array.length
- buffer.append(JavaScriptElementLabels.CONCAT_STRING);
- getTypeLabel(declaringClass, JavaScriptElementLabels.T_FULLY_QUALIFIED | (flags & JavaScriptElementLabels.P_COMPRESSED), buffer);
- }
- }
- }
-
- private static void getLocalVariableLabel(IVariableBinding binding, long flags, StringBuffer buffer) {
- if (((flags & JavaScriptElementLabels.F_PRE_TYPE_SIGNATURE) != 0)) {
- getTypeLabel(binding.getType(), (flags & JavaScriptElementLabels.T_TYPE_PARAMETERS), buffer);
- buffer.append(' ');
- }
- if (((flags & JavaScriptElementLabels.F_FULLY_QUALIFIED) != 0)) {
- IFunctionBinding declaringMethod= binding.getDeclaringMethod();
- if (declaringMethod != null) {
- getMethodLabel(declaringMethod, flags, buffer);
- buffer.append('.');
- }
- }
- buffer.append(binding.getName());
- if (((flags & JavaScriptElementLabels.F_APP_TYPE_SIGNATURE) != 0)) {
- buffer.append(JavaScriptElementLabels.DECL_STRING);
- getTypeLabel(binding.getType(), (flags & JavaScriptElementLabels.T_TYPE_PARAMETERS), buffer);
- }
- }
-
- private static ImageDescriptor getInnerClassImageDescriptor(int modifiers) {
- if (Modifier.isPublic(modifiers))
- return JavaPluginImages.DESC_OBJS_INNER_CLASS_PUBLIC;
- else if (Modifier.isPrivate(modifiers))
- return JavaPluginImages.DESC_OBJS_INNER_CLASS_PRIVATE;
- else if (Modifier.isProtected(modifiers))
- return JavaPluginImages.DESC_OBJS_INNER_CLASS_PROTECTED;
- else
- return JavaPluginImages.DESC_OBJS_INNER_CLASS_DEFAULT;
- }
-
-// private static ImageDescriptor getInnerInterfaceImageDescriptor(int modifiers) {
-// if (Modifier.isPublic(modifiers))
-// return JavaPluginImages.DESC_OBJS_INNER_INTERFACE_PUBLIC;
-// else if (Modifier.isPrivate(modifiers))
-// return JavaPluginImages.DESC_OBJS_INNER_INTERFACE_PRIVATE;
-// else if (Modifier.isProtected(modifiers))
-// return JavaPluginImages.DESC_OBJS_INNER_INTERFACE_PROTECTED;
-// else
-// return JavaPluginImages.DESC_OBJS_INTERFACE_DEFAULT;
-// }
-//
-// private static ImageDescriptor getInterfaceImageDescriptor(int modifiers) {
-// if (Modifier.isPublic(modifiers) || Modifier.isProtected(modifiers) || Modifier.isPrivate(modifiers))
-// return JavaPluginImages.DESC_OBJS_INTERFACE;
-// else
-// return JavaPluginImages.DESC_OBJS_INTERFACE_DEFAULT;
-// }
-
- private static ImageDescriptor getMethodImageDescriptor(int modifiers) {
- if (Modifier.isPublic(modifiers))
- return JavaPluginImages.DESC_MISC_PUBLIC;
- if (Modifier.isProtected(modifiers))
- return JavaPluginImages.DESC_MISC_PROTECTED;
- if (Modifier.isPrivate(modifiers))
- return JavaPluginImages.DESC_MISC_PRIVATE;
-
- return JavaPluginImages.DESC_MISC_DEFAULT;
- }
-
- private static void appendDimensions(int dim, StringBuffer buffer) {
- for (int i=0 ; i < dim; i++) {
- buffer.append('[').append(']');
- }
- }
-
-
- private static void getMethodLabel(IFunctionBinding binding, long flags, StringBuffer buffer) {
- // return type
- if (((flags & JavaScriptElementLabels.M_PRE_RETURNTYPE) != 0) && !binding.isConstructor()) {
- getTypeLabel(binding.getReturnType(), (flags & JavaScriptElementLabels.T_TYPE_PARAMETERS), buffer);
- buffer.append(' ');
- }
- // qualification
- if ((flags & JavaScriptElementLabels.M_FULLY_QUALIFIED) != 0) {
- getTypeLabel(binding.getDeclaringClass(), JavaScriptElementLabels.T_FULLY_QUALIFIED | (flags & JavaScriptElementLabels.P_COMPRESSED), buffer);
- buffer.append('.');
- }
- buffer.append(binding.getName());
-
- // parameters
- buffer.append('(');
- if ((flags & JavaScriptElementLabels.M_PARAMETER_TYPES | JavaScriptElementLabels.M_PARAMETER_NAMES) != 0) {
- ITypeBinding[] parameters= ((flags & JavaScriptElementLabels.M_PARAMETER_TYPES) != 0) ? binding.getParameterTypes() : null;
- if (parameters != null) {
- for (int index= 0; index < parameters.length; index++) {
- if (index > 0) {
- buffer.append(JavaScriptElementLabels.COMMA_STRING);
- }
- ITypeBinding paramType= parameters[index];
- if (binding.isVarargs() && (index == parameters.length - 1)) {
- getTypeLabel(paramType.getElementType(), (flags & JavaScriptElementLabels.T_TYPE_PARAMETERS), buffer);
- appendDimensions(paramType.getDimensions() - 1, buffer);
- buffer.append(JavaScriptElementLabels.ELLIPSIS_STRING);
- } else {
- getTypeLabel(paramType, (flags & JavaScriptElementLabels.T_TYPE_PARAMETERS), buffer);
- }
- }
- }
- } else {
- if (binding.getParameterTypes().length > 0) {
- buffer.append(JavaScriptElementLabels.ELLIPSIS_STRING);
- }
- }
- buffer.append(')');
-
- if (((flags & JavaScriptElementLabels.M_APP_RETURNTYPE) != 0) && !binding.isConstructor()) {
- buffer.append(JavaScriptElementLabels.DECL_STRING);
- getTypeLabel(binding.getReturnType(), (flags & JavaScriptElementLabels.T_TYPE_PARAMETERS), buffer);
- }
- // post qualification
- if ((flags & JavaScriptElementLabels.M_POST_QUALIFIED) != 0) {
- buffer.append(JavaScriptElementLabels.CONCAT_STRING);
- getTypeLabel(binding.getDeclaringClass(), JavaScriptElementLabels.T_FULLY_QUALIFIED | (flags & JavaScriptElementLabels.P_COMPRESSED), buffer);
- }
- }
-
- private static ImageDescriptor getTypeImageDescriptor(boolean inner, ITypeBinding binding, int flags) {
- if (binding.isClass()) {
- if ((flags & JavaElementImageProvider.LIGHT_TYPE_ICONS) != 0)
- return JavaPluginImages.DESC_OBJS_CLASSALT;
- if (inner)
- return getInnerClassImageDescriptor(binding.getModifiers());
- return getClassImageDescriptor(binding.getModifiers());
- }
- // primitive type, wildcard
- return null;
- }
-
-
- private static void getTypeLabel(ITypeBinding binding, long flags, StringBuffer buffer) {
- if ((flags & JavaScriptElementLabels.T_FULLY_QUALIFIED) != 0) {
- final IPackageBinding pack= binding.getPackage();
- if (pack != null && !pack.isUnnamed()) {
- buffer.append(pack.getName());
- buffer.append('.');
- }
- }
- if ((flags & (JavaScriptElementLabels.T_FULLY_QUALIFIED | JavaScriptElementLabels.T_CONTAINER_QUALIFIED)) != 0) {
- final ITypeBinding declaring= binding.getDeclaringClass();
- if (declaring != null) {
- getTypeLabel(declaring, JavaScriptElementLabels.T_CONTAINER_QUALIFIED | (flags & JavaScriptElementLabels.P_COMPRESSED), buffer);
- buffer.append('.');
- }
- final IFunctionBinding declaringMethod= binding.getDeclaringMethod();
- if (declaringMethod != null) {
- getMethodLabel(declaringMethod, 0, buffer);
- buffer.append('.');
- }
- }
-
- if (binding.isArray()) {
- getTypeLabel(binding.getElementType(), flags & JavaScriptElementLabels.T_TYPE_PARAMETERS, buffer);
- appendDimensions(binding.getDimensions(), buffer);
- } else { // type variables, primitive, reftype
- String name= binding.getTypeDeclaration().getName();
- if (name.length() == 0) {
- if (binding.isAnonymous()) {
- ITypeBinding baseType= binding.getSuperclass();
-
- if (baseType != null) {
- StringBuffer anonymBaseType= new StringBuffer();
- getTypeLabel(baseType, flags & JavaScriptElementLabels.T_TYPE_PARAMETERS, anonymBaseType);
- buffer.append(Messages.format(JavaUIMessages.JavaElementLabels_anonym_type, anonymBaseType.toString()));
- } else {
- buffer.append(JavaUIMessages.JavaElementLabels_anonym);
- }
- } else {
- buffer.append("UNKNOWN"); //$NON-NLS-1$
- }
- } else {
- buffer.append(name);
- }
- }
-
-
- if ((flags & JavaScriptElementLabels.T_POST_QUALIFIED) != 0) {
- final IFunctionBinding declaringMethod= binding.getDeclaringMethod();
- final ITypeBinding declaringType= binding.getDeclaringClass();
- if (declaringMethod != null) {
- buffer.append(JavaScriptElementLabels.CONCAT_STRING);
- getMethodLabel(declaringMethod, JavaScriptElementLabels.T_FULLY_QUALIFIED | (flags & JavaScriptElementLabels.P_COMPRESSED), buffer);
- } else if (declaringType != null) {
- buffer.append(JavaScriptElementLabels.CONCAT_STRING);
- getTypeLabel(declaringType, JavaScriptElementLabels.T_FULLY_QUALIFIED | (flags & JavaScriptElementLabels.P_COMPRESSED), buffer);
- } else {
- final IPackageBinding pack= binding.getPackage();
- if (pack != null && !pack.isUnnamed()) {
- buffer.append(JavaScriptElementLabels.CONCAT_STRING);
- buffer.append(pack.getName());
- }
- }
- }
- }
-
-// private static void getTypeArgumentsLabel(ITypeBinding[] typeArgs, long flags, StringBuffer buf) {
-// if (typeArgs.length > 0) {
-// buf.append('<');
-// for (int i = 0; i < typeArgs.length; i++) {
-// if (i > 0) {
-// buf.append(JavaScriptElementLabels.COMMA_STRING);
-// }
-// getTypeLabel(typeArgs[i], flags & JavaScriptElementLabels.T_TYPE_PARAMETERS, buf);
-// }
-// buf.append('>');
-// }
-// }
-
- /**
- * Returns the label for a Java element with the flags as defined by {@link JavaScriptElementLabels}.
- * @param binding The binding to render.
- * @param flags The text flags as defined in {@link JavaScriptElementLabels}
- * @return the label of the binding
- */
- public static String getBindingLabel(IBinding binding, long flags) {
- StringBuffer buffer= new StringBuffer(60);
- if (binding instanceof ITypeBinding) {
- getTypeLabel(((ITypeBinding) binding), flags, buffer);
- } else if (binding instanceof IFunctionBinding) {
- getMethodLabel(((IFunctionBinding) binding), flags, buffer);
- } else if (binding instanceof IVariableBinding) {
- final IVariableBinding variable= (IVariableBinding) binding;
- if (variable.isField())
- getFieldLabel(variable, flags, buffer);
- else
- getLocalVariableLabel(variable, flags, buffer);
- }
- return buffer.toString();
- }
-
- /**
- * Returns the image descriptor for a binding with the flags as defined by {@link JavaElementImageProvider}.
- * @param binding The binding to get the image for.
- * @param imageFlags The image flags as defined in {@link JavaElementImageProvider}.
- * @return the image of the binding or null if there is no image
- */
- public static ImageDescriptor getBindingImageDescriptor(IBinding binding, int imageFlags) {
- ImageDescriptor baseImage= getBaseImageDescriptor(binding, imageFlags);
- if (baseImage != null) {
- int adornmentFlags= getAdornmentFlags(binding, imageFlags);
- Point size= ((imageFlags & JavaElementImageProvider.SMALL_ICONS) != 0) ? JavaElementImageProvider.SMALL_SIZE : JavaElementImageProvider.BIG_SIZE;
- return new JavaScriptElementImageDescriptor(baseImage, adornmentFlags, size);
- }
- return null;
- }
-
-
- public static final long DEFAULT_TEXTFLAGS= JavaScriptElementLabels.ALL_DEFAULT;
- public static final int DEFAULT_IMAGEFLAGS= JavaElementImageProvider.OVERLAY_ICONS;
-
-
- final private long fTextFlags;
- final private int fImageFlags;
-
- private ImageDescriptorRegistry fRegistry;
-
- /**
- * Creates a new binding label provider with default text and image flags
- */
- public BindingLabelProvider() {
- this(DEFAULT_TEXTFLAGS, DEFAULT_IMAGEFLAGS);
- }
-
- /**
- * @param textFlags Flags defined in {@link JavaScriptElementLabels}.
- * @param imageFlags Flags defined in {@link JavaElementImageProvider}.
- */
- public BindingLabelProvider(final long textFlags, final int imageFlags) {
- fImageFlags= imageFlags;
- fTextFlags= textFlags;
- fRegistry= null;
- }
-
- /*
- * @see org.eclipse.jface.viewers.ILabelProvider#getImage(java.lang.Object)
- */
- public Image getImage(Object element) {
- if (element instanceof IBinding) {
- ImageDescriptor baseImage= getBindingImageDescriptor((IBinding) element, fImageFlags);
- if (baseImage != null) {
- return getRegistry().get(baseImage);
- }
- }
- return super.getImage(element);
- }
-
- private ImageDescriptorRegistry getRegistry() {
- if (fRegistry == null)
- fRegistry= JavaScriptPlugin.getImageDescriptorRegistry();
- return fRegistry;
- }
-
- /*
- * @see org.eclipse.jface.viewers.ILabelProvider#getText(java.lang.Object)
- */
- public String getText(Object element) {
- if (element instanceof IBinding) {
- return getBindingLabel((IBinding) element, fTextFlags);
- }
- return super.getText(element);
- }
-}
diff --git a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/ColoredJavaElementLabels.java b/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/ColoredJavaElementLabels.java
deleted file mode 100644
index 9ee81d55..00000000
--- a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/ColoredJavaElementLabels.java
+++ /dev/null
@@ -1,895 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.internal.ui.viewsupport;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.wst.jsdt.core.BindingKey;
-import org.eclipse.wst.jsdt.core.Flags;
-import org.eclipse.wst.jsdt.core.IClassFile;
-import org.eclipse.wst.jsdt.core.IField;
-import org.eclipse.wst.jsdt.core.IFunction;
-import org.eclipse.wst.jsdt.core.IIncludePathEntry;
-import org.eclipse.wst.jsdt.core.IInitializer;
-import org.eclipse.wst.jsdt.core.IJavaScriptElement;
-import org.eclipse.wst.jsdt.core.IJavaScriptProject;
-import org.eclipse.wst.jsdt.core.IJavaScriptUnit;
-import org.eclipse.wst.jsdt.core.IJsGlobalScopeContainer;
-import org.eclipse.wst.jsdt.core.ILocalVariable;
-import org.eclipse.wst.jsdt.core.IMember;
-import org.eclipse.wst.jsdt.core.IPackageFragment;
-import org.eclipse.wst.jsdt.core.IPackageFragmentRoot;
-import org.eclipse.wst.jsdt.core.IType;
-import org.eclipse.wst.jsdt.core.JavaScriptCore;
-import org.eclipse.wst.jsdt.core.JavaScriptModelException;
-import org.eclipse.wst.jsdt.core.JsGlobalScopeContainerInitializer;
-import org.eclipse.wst.jsdt.core.Signature;
-import org.eclipse.wst.jsdt.internal.corext.util.JavaModelUtil;
-import org.eclipse.wst.jsdt.internal.corext.util.Messages;
-import org.eclipse.wst.jsdt.internal.ui.JavaScriptPlugin;
-import org.eclipse.wst.jsdt.internal.ui.JavaUIMessages;
-import org.eclipse.wst.jsdt.internal.ui.packageview.JsGlobalScopeContainer;
-import org.eclipse.wst.jsdt.internal.ui.viewsupport.ColoredString.Style;
-import org.eclipse.wst.jsdt.launching.JavaRuntime;
-import org.eclipse.wst.jsdt.ui.JavaScriptElementLabels;
-
-public class ColoredJavaElementLabels {
-
- public static final Style QUALIFIER_STYLE= new Style(ColoredViewersManager.QUALIFIER_COLOR_NAME);
- public static final Style COUNTER_STYLE= new Style(ColoredViewersManager.COUNTER_COLOR_NAME);
- public static final Style DECORATIONS_STYLE= new Style(ColoredViewersManager.DECORATIONS_COLOR_NAME);
-
- private static final Style APPENDED_TYPE_STYLE= DECORATIONS_STYLE;
-
- public final static long COLORIZE= 1L << 55;
-
- private final static long QUALIFIER_FLAGS= JavaScriptElementLabels.P_COMPRESSED | JavaScriptElementLabels.USE_RESOLVED;
-
-
- private static final boolean getFlag(long flags, long flag) {
- return (flags & flag) != 0;
- }
-
- /**
- * Returns the label of the given object. The object must be of type {@link IJavaScriptElement} or adapt to {@link org.eclipse.ui.model.IWorkbenchAdapter}. The empty string is returned
- * if the element type is not known.
- * @param obj Object to get the label from.
- * @param flags The rendering flags
- * @return Returns the label or the empty string if the object type is not supported.
- */
- public static ColoredString getTextLabel(Object obj, long flags) {
- if (obj instanceof IJavaScriptElement) {
- return getElementLabel((IJavaScriptElement) obj, flags);
- } else if (obj instanceof IResource) {
- return new ColoredString(((IResource) obj).getName());
- } else if (obj instanceof JsGlobalScopeContainer) {
- JsGlobalScopeContainer container= (JsGlobalScopeContainer) obj;
- return getContainerEntryLabel(container.getClasspathEntry().getPath(), container.getJavaProject());
- }
- return new ColoredString(JavaScriptElementLabels.getTextLabel(obj, flags));
- }
-
- /**
- * Returns the label for a Java element with the flags as defined by this class.
- * @param element The element to render.
- * @param flags The rendering flags.
- * @return the label of the Java element
- */
- public static ColoredString getElementLabel(IJavaScriptElement element, long flags) {
- ColoredString result= new ColoredString();
- getElementLabel(element, flags, result);
- return result;
- }
-
- /**
- * Returns the label for a Java element with the flags as defined by this class.
- * @param element The element to render.
- * @param flags The rendering flags.
- * @param result The buffer to append the resulting label to.
- */
- public static void getElementLabel(IJavaScriptElement element, long flags, ColoredString result) {
- int type= element.getElementType();
- IPackageFragmentRoot root= null;
-
- if (type != IJavaScriptElement.JAVASCRIPT_MODEL && type != IJavaScriptElement.JAVASCRIPT_PROJECT && type != IJavaScriptElement.PACKAGE_FRAGMENT_ROOT)
- root= JavaModelUtil.getPackageFragmentRoot(element);
- if (root != null && getFlag(flags, JavaScriptElementLabels.PREPEND_ROOT_PATH)) {
- getPackageFragmentRootLabel(root, JavaScriptElementLabels.ROOT_QUALIFIED, result);
- result.append(JavaScriptElementLabels.CONCAT_STRING);
- }
-
- switch (type) {
- case IJavaScriptElement.METHOD:
- getMethodLabel((IFunction) element, flags, result);
- break;
- case IJavaScriptElement.FIELD:
- getFieldLabel((IField) element, flags, result);
- break;
- case IJavaScriptElement.LOCAL_VARIABLE:
- getLocalVariableLabel((ILocalVariable) element, flags, result);
- break;
- case IJavaScriptElement.INITIALIZER:
- getInitializerLabel((IInitializer) element, flags, result);
- break;
- case IJavaScriptElement.TYPE:
- getTypeLabel((IType) element, flags, result);
- break;
- case IJavaScriptElement.CLASS_FILE:
- getClassFileLabel((IClassFile) element, flags, result);
- break;
- case IJavaScriptElement.JAVASCRIPT_UNIT:
- getCompilationUnitLabel((IJavaScriptUnit) element, flags, result);
- break;
- case IJavaScriptElement.PACKAGE_FRAGMENT:
- getPackageFragmentLabel((IPackageFragment) element, flags, result);
- break;
- case IJavaScriptElement.PACKAGE_FRAGMENT_ROOT:
- getPackageFragmentRootLabel((IPackageFragmentRoot) element, flags, result);
- break;
- case IJavaScriptElement.IMPORT_CONTAINER:
- case IJavaScriptElement.IMPORT_DECLARATION:
- getDeclarationLabel(element, flags, result);
- break;
- case IJavaScriptElement.JAVASCRIPT_PROJECT:
- case IJavaScriptElement.JAVASCRIPT_MODEL:
- result.append(element.getElementName());
- break;
- default:
- result.append(element.getElementName());
- }
-
- if (root != null && getFlag(flags, JavaScriptElementLabels.APPEND_ROOT_PATH)) {
- int offset= result.length();
- result.append(JavaScriptElementLabels.CONCAT_STRING);
- getPackageFragmentRootLabel(root, JavaScriptElementLabels.ROOT_QUALIFIED, result);
-
- if (getFlag(flags, COLORIZE)) {
- result.colorize(offset, result.length() - offset, QUALIFIER_STYLE);
- }
-
- }
- }
-
- /**
- * Appends the label for a method to a {@link ColoredString}. Considers the M_* flags.
- * @param method The element to render.
- * @param flags The rendering flags. Flags with names starting with 'M_' are considered.
- * @param result The buffer to append the resulting label to.
- */
- public static void getMethodLabel(IFunction method, long flags, ColoredString result) {
- try {
- BindingKey resolvedKey= getFlag(flags, JavaScriptElementLabels.USE_RESOLVED) && method.isResolved() ? new BindingKey(method.getKey()) : null;
- String resolvedSig= (resolvedKey != null) ? resolvedKey.toSignature() : null;
-
- // return type
- if (getFlag(flags, JavaScriptElementLabels.M_PRE_RETURNTYPE) && method.exists() && !method.isConstructor()) {
- String returnTypeSig= resolvedSig != null ? Signature.getReturnType(resolvedSig) : method.getReturnType();
- getTypeSignatureLabel(returnTypeSig, flags, result);
- result.append(' ');
- }
-
- // qualification
- if (getFlag(flags, JavaScriptElementLabels.M_FULLY_QUALIFIED)) {
- getTypeLabel(method.getDeclaringType(), JavaScriptElementLabels.T_FULLY_QUALIFIED | (flags & QUALIFIER_FLAGS), result);
- result.append('.');
- }
-
- result.append(method.getElementName());
-
- // parameters
- result.append('(');
- if (getFlag(flags, JavaScriptElementLabels.M_PARAMETER_TYPES | JavaScriptElementLabels.M_PARAMETER_NAMES)) {
- String[] types= null;
- int nParams= 0;
- boolean renderVarargs= false;
- if (getFlag(flags, JavaScriptElementLabels.M_PARAMETER_TYPES)) {
- if (resolvedSig != null) {
- types= Signature.getParameterTypes(resolvedSig);
- } else {
- types= method.getParameterTypes();
- }
- nParams= types.length;
- renderVarargs= method.exists() && Flags.isVarargs(method.getFlags());
- }
- String[] names= null;
- if (getFlag(flags, JavaScriptElementLabels.M_PARAMETER_NAMES) && method.exists()) {
- names= method.getParameterNames();
- if (types == null) {
- nParams= names.length;
- } else { // types != null
- if (nParams != names.length) {
- if (resolvedSig != null && types.length > names.length) {
- // see https://bugs.eclipse.org/bugs/show_bug.cgi?id=99137
- nParams= names.length;
- String[] typesWithoutSyntheticParams= new String[nParams];
- System.arraycopy(types, types.length - nParams, typesWithoutSyntheticParams, 0, nParams);
- types= typesWithoutSyntheticParams;
- } else {
- // https://bugs.eclipse.org/bugs/show_bug.cgi?id=101029
- // JavaScriptPlugin.logErrorMessage("JavaScriptElementLabels: Number of param types(" + nParams + ") != number of names(" + names.length + "): " + method.getElementName()); //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$
- names= null; // no names rendered
- }
- }
- }
- }
-
- for (int i= 0; i < nParams; i++) {
- if (i > 0) {
- result.append(JavaScriptElementLabels.COMMA_STRING);
- }
- if (types != null) {
- String paramSig= types[i];
- if (renderVarargs && (i == nParams - 1)) {
- int newDim= Signature.getArrayCount(paramSig) - 1;
- getTypeSignatureLabel(Signature.getElementType(paramSig), flags, result);
- for (int k= 0; k < newDim; k++) {
- result.append('[').append(']');
- }
- result.append(JavaScriptElementLabels.ELLIPSIS_STRING);
- } else {
- getTypeSignatureLabel(paramSig, flags, result);
- }
- }
- if (names != null) {
- if (types != null) {
- result.append(' ');
- }
- result.append(names[i]);
- }
- }
- } else {
- if (method.getParameterTypes().length > 0) {
- result.append(JavaScriptElementLabels.ELLIPSIS_STRING);
- }
- }
- result.append(')');
-
- if (getFlag(flags, JavaScriptElementLabels.M_EXCEPTIONS)) {
- String[] types;
- if (resolvedKey != null) {
- //types= resolvedKey.getThrownExceptions();
- types = new String[0];
- } else {
- types= new String[0];
- }
- if (types.length > 0) {
- result.append(" throws "); //$NON-NLS-1$
- for (int i= 0; i < types.length; i++) {
- if (i > 0) {
- result.append(JavaScriptElementLabels.COMMA_STRING);
- }
- getTypeSignatureLabel(types[i], flags, result);
- }
- }
- }
-
- if (getFlag(flags, JavaScriptElementLabels.M_APP_TYPE_PARAMETERS)) {
- int offset= result.length();
- if (getFlag(flags, COLORIZE)) {
- result.colorize(offset, result.length() - offset, APPENDED_TYPE_STYLE);
- }
- }
-
- if (getFlag(flags, JavaScriptElementLabels.M_APP_RETURNTYPE) && method.exists() && !method.isConstructor()) {
- int offset= result.length();
- result.append(JavaScriptElementLabels.DECL_STRING);
- String returnTypeSig= resolvedSig != null ? Signature.getReturnType(resolvedSig) : method.getReturnType();
- getTypeSignatureLabel(returnTypeSig, flags, result);
- if (getFlag(flags, COLORIZE)) {
- result.colorize(offset, result.length() - offset, APPENDED_TYPE_STYLE);
- }
- }
-
- // category
- if (getFlag(flags, JavaScriptElementLabels.M_CATEGORY) && method.exists())
- getCategoryLabel(method, result);
-
- // post qualification
- if (getFlag(flags, JavaScriptElementLabels.M_POST_QUALIFIED)) {
- int offset= result.length();
- result.append(JavaScriptElementLabels.CONCAT_STRING);
- if (method.getDeclaringType()!=null)
- getTypeLabel(method.getDeclaringType(), JavaScriptElementLabels.T_FULLY_QUALIFIED | (flags & QUALIFIER_FLAGS), result);
- if (getFlag(flags, COLORIZE)) {
- result.colorize(offset, result.length() - offset, QUALIFIER_STYLE);
- }
- }
-
- } catch (JavaScriptModelException e) {
- JavaScriptPlugin.log(e); // NotExistsException will not reach this point
- }
- }
-
- private static void getCategoryLabel(IMember member, ColoredString result) throws JavaScriptModelException {
- String[] categories= member.getCategories();
- if (categories.length > 0) {
- ColoredString categoriesBuf= new ColoredString();
- for (int i= 0; i < categories.length; i++) {
- if (i > 0)
- categoriesBuf.append(JavaUIMessages.JavaElementLabels_category_separator_string);
- categoriesBuf.append(categories[i]);
- }
- result.append(JavaScriptElementLabels.CONCAT_STRING);
- result.append(Messages.format(JavaUIMessages.JavaElementLabels_category , categoriesBuf.toString()));
- }
- }
-
- /**
- * Appends the label for a field to a {@link ColoredString}. Considers the F_* flags.
- * @param field The element to render.
- * @param flags The rendering flags. Flags with names starting with 'F_' are considered.
- * @param result The buffer to append the resulting label to.
- */
- public static void getFieldLabel(IField field, long flags, ColoredString result) {
- try {
-
- if (getFlag(flags, JavaScriptElementLabels.F_PRE_TYPE_SIGNATURE) && field.exists()) {
- if (getFlag(flags, JavaScriptElementLabels.USE_RESOLVED) && field.isResolved()) {
- getTypeSignatureLabel(new BindingKey(field.getKey()).toSignature(), flags, result);
- } else {
- getTypeSignatureLabel(field.getTypeSignature(), flags, result);
- }
- result.append(' ');
- }
-
- // qualification
- if (getFlag(flags, JavaScriptElementLabels.F_FULLY_QUALIFIED)) {
- getTypeLabel(field.getDeclaringType(), JavaScriptElementLabels.T_FULLY_QUALIFIED | (flags & QUALIFIER_FLAGS), result);
- result.append('.');
- }
- result.append(field.getElementName());
-
- if (getFlag(flags, JavaScriptElementLabels.F_APP_TYPE_SIGNATURE) && field.exists()) {
- int offset= result.length();
- result.append(JavaScriptElementLabels.DECL_STRING);
- if (getFlag(flags, JavaScriptElementLabels.USE_RESOLVED) && field.isResolved()) {
- getTypeSignatureLabel(new BindingKey(field.getKey()).toSignature(), flags, result);
- } else {
- getTypeSignatureLabel(field.getTypeSignature(), flags, result);
- }
- if (getFlag(flags, COLORIZE)) {
- result.colorize(offset, result.length() - offset, APPENDED_TYPE_STYLE);
- }
- }
-
- // category
- if (getFlag(flags, JavaScriptElementLabels.F_CATEGORY) && field.exists())
- getCategoryLabel(field, result);
-
- // post qualification
- if (getFlag(flags, JavaScriptElementLabels.F_POST_QUALIFIED)) {
- int offset= result.length();
- result.append(JavaScriptElementLabels.CONCAT_STRING);
- getTypeLabel(field.getDeclaringType(), JavaScriptElementLabels.T_FULLY_QUALIFIED | (flags & QUALIFIER_FLAGS), result);
- if (getFlag(flags, COLORIZE)) {
- result.colorize(offset, result.length() - offset, QUALIFIER_STYLE);
- }
- }
-
- } catch (JavaScriptModelException e) {
- JavaScriptPlugin.log(e); // NotExistsException will not reach this point
- }
- }
-
- /**
- * Appends the label for a local variable to a {@link ColoredString}.
- * @param localVariable The element to render.
- * @param flags The rendering flags. Flags with names starting with 'F_' are considered.
- * @param result The buffer to append the resulting label to.
- */
- public static void getLocalVariableLabel(ILocalVariable localVariable, long flags, ColoredString result) {
- if (getFlag(flags, JavaScriptElementLabels.F_PRE_TYPE_SIGNATURE)) {
- getTypeSignatureLabel(localVariable.getTypeSignature(), flags, result);
- result.append(' ');
- }
-
- if (getFlag(flags, JavaScriptElementLabels.F_FULLY_QUALIFIED)) {
- getElementLabel(localVariable.getParent(), JavaScriptElementLabels.M_PARAMETER_TYPES | JavaScriptElementLabels.M_FULLY_QUALIFIED | JavaScriptElementLabels.T_FULLY_QUALIFIED | (flags & QUALIFIER_FLAGS), result);
- result.append('.');
- }
-
- result.append(localVariable.getElementName());
-
- if (getFlag(flags, JavaScriptElementLabels.F_APP_TYPE_SIGNATURE)) {
- int offset= result.length();
- result.append(JavaScriptElementLabels.DECL_STRING);
- getTypeSignatureLabel(localVariable.getTypeSignature(), flags, result);
- if (getFlag(flags, COLORIZE)) {
- result.colorize(offset, result.length() - offset, APPENDED_TYPE_STYLE);
- }
- }
-
- // post qualification
- if (getFlag(flags, JavaScriptElementLabels.F_POST_QUALIFIED)) {
- result.append(JavaScriptElementLabels.CONCAT_STRING);
- getElementLabel(localVariable.getParent(), JavaScriptElementLabels.M_PARAMETER_TYPES | JavaScriptElementLabels.M_FULLY_QUALIFIED | JavaScriptElementLabels.T_FULLY_QUALIFIED | (flags & QUALIFIER_FLAGS), result);
- }
- }
-
- /**
- * Appends the label for a initializer to a {@link ColoredString}. Considers the I_* flags.
- * @param initializer The element to render.
- * @param flags The rendering flags. Flags with names starting with 'I_' are considered.
- * @param result The buffer to append the resulting label to.
- */
- public static void getInitializerLabel(IInitializer initializer, long flags, ColoredString result) {
- // qualification
- if (getFlag(flags, JavaScriptElementLabels.I_FULLY_QUALIFIED)) {
- getTypeLabel(initializer.getDeclaringType(), JavaScriptElementLabels.T_FULLY_QUALIFIED | (flags & QUALIFIER_FLAGS), result);
- result.append('.');
- }
- result.append(JavaUIMessages.JavaElementLabels_initializer);
-
- // post qualification
- if (getFlag(flags, JavaScriptElementLabels.I_POST_QUALIFIED)) {
- int offset= result.length();
- result.append(JavaScriptElementLabels.CONCAT_STRING);
- getTypeLabel(initializer.getDeclaringType(), JavaScriptElementLabels.T_FULLY_QUALIFIED | (flags & QUALIFIER_FLAGS), result);
- if (getFlag(flags, COLORIZE)) {
- result.colorize(offset, result.length() - offset, QUALIFIER_STYLE);
- }
- }
- }
-
- private static void getTypeSignatureLabel(String typeSig, long flags, ColoredString result) {
- int sigKind= Signature.getTypeSignatureKind(typeSig);
- switch (sigKind) {
- case Signature.BASE_TYPE_SIGNATURE:
- result.append(Signature.toString(typeSig));
- break;
- case Signature.ARRAY_TYPE_SIGNATURE:
- getTypeSignatureLabel(Signature.getElementType(typeSig), flags, result);
- for (int dim= Signature.getArrayCount(typeSig); dim > 0; dim--) {
- result.append('[').append(']');
- }
- break;
- case Signature.CLASS_TYPE_SIGNATURE:
- String baseType= Signature.toString(typeSig);
- result.append(Signature.getSimpleName(baseType));
-
- getTypeArgumentSignaturesLabel(new String[0], flags, result);
- break;
- default:
- // unknown
- }
- }
-
- private static void getTypeArgumentSignaturesLabel(String[] typeArgsSig, long flags, ColoredString result) {
- if (typeArgsSig.length > 0) {
- result.append('<');
- for (int i = 0; i < typeArgsSig.length; i++) {
- if (i > 0) {
- result.append(JavaScriptElementLabels.COMMA_STRING);
- }
- getTypeSignatureLabel(typeArgsSig[i], flags, result);
- }
- result.append('>');
- }
- }
-
- private static void getTypeParameterSignaturesLabel(String[] typeParamSigs, long flags, ColoredString result) {
- if (typeParamSigs.length > 0) {
- result.append('<');
- for (int i = 0; i < typeParamSigs.length; i++) {
- if (i > 0) {
- result.append(JavaScriptElementLabels.COMMA_STRING);
- }
- result.append(Signature.getTypeVariable(typeParamSigs[i]));
- }
- result.append('>');
- }
- }
-
-
- /**
- * Appends the label for a type to a {@link ColoredString}. Considers the T_* flags.
- * @param type The element to render.
- * @param flags The rendering flags. Flags with names starting with 'T_' are considered.
- * @param result The buffer to append the resulting label to.
- */
- public static void getTypeLabel(IType type, long flags, ColoredString result) {
-
- if (getFlag(flags, JavaScriptElementLabels.T_FULLY_QUALIFIED)) {
- IPackageFragment pack= type.getPackageFragment();
- if (!pack.isDefaultPackage()) {
- getPackageFragmentLabel(pack, (flags & QUALIFIER_FLAGS), result);
- result.append('.');
- }
- }
- if (getFlag(flags, JavaScriptElementLabels.T_FULLY_QUALIFIED | JavaScriptElementLabels.T_CONTAINER_QUALIFIED)) {
- IType declaringType= type.getDeclaringType();
- if (declaringType != null) {
- getTypeLabel(declaringType, JavaScriptElementLabels.T_CONTAINER_QUALIFIED | (flags & QUALIFIER_FLAGS), result);
- result.append('.');
- }
- int parentType= type.getParent().getElementType();
- if (parentType == IJavaScriptElement.METHOD || parentType == IJavaScriptElement.FIELD || parentType == IJavaScriptElement.INITIALIZER) { // anonymous or local
- getElementLabel(type.getParent(), 0, result);
- result.append('.');
- }
- }
-
- String typeName= type.getElementName();
- if (typeName.length() == 0) { // anonymous
- try {
- String supertypeName= Signature.getSimpleName(type.getSuperclassName());
-
- typeName= Messages.format(JavaUIMessages.JavaElementLabels_anonym_type , supertypeName);
-
- } catch (JavaScriptModelException e) {
- //ignore
- typeName= JavaUIMessages.JavaElementLabels_anonym;
- }
- }
- result.append(typeName);
- if (getFlag(flags, JavaScriptElementLabels.T_TYPE_PARAMETERS)) {
- if (getFlag(flags, JavaScriptElementLabels.USE_RESOLVED) && type.isResolved()) {
- BindingKey key= new BindingKey(type.getKey());
- getTypeParameterSignaturesLabel(new String[0], flags, result);
- }
- }
-
- // category
- if (getFlag(flags, JavaScriptElementLabels.T_CATEGORY) && type.exists()) {
- try {
- getCategoryLabel(type, result);
- } catch (JavaScriptModelException e) {
- // ignore
- }
- }
-
- // post qualification
- if (getFlag(flags, JavaScriptElementLabels.T_POST_QUALIFIED)) {
- int offset= result.length();
- result.append(JavaScriptElementLabels.CONCAT_STRING);
- IType declaringType= type.getDeclaringType();
- if (declaringType != null) {
- getTypeLabel(declaringType, JavaScriptElementLabels.T_FULLY_QUALIFIED | (flags & QUALIFIER_FLAGS), result);
- int parentType= type.getParent().getElementType();
- if (parentType == IJavaScriptElement.METHOD || parentType == IJavaScriptElement.FIELD || parentType == IJavaScriptElement.INITIALIZER) { // anonymous or local
- result.append('.');
- getElementLabel(type.getParent(), 0, result);
- }
- } else {
- getPackageFragmentLabel(type.getPackageFragment(), flags & QUALIFIER_FLAGS, result);
- }
- if (getFlag(flags, COLORIZE)) {
- result.colorize(offset, result.length() - offset, QUALIFIER_STYLE);
- }
- }
- }
-
- /**
- * Appends the label for a import container, import or package declaration to a {@link ColoredString}. Considers the D_* flags.
- * @param declaration The element to render.
- * @param flags The rendering flags. Flags with names starting with 'D_' are considered.
- * @param result The buffer to append the resulting label to.
- */
- public static void getDeclarationLabel(IJavaScriptElement declaration, long flags, ColoredString result) {
- if (getFlag(flags, JavaScriptElementLabels.D_QUALIFIED)) {
- IJavaScriptElement openable= (IJavaScriptElement) declaration.getOpenable();
- if (openable != null) {
- result.append(getElementLabel(openable, JavaScriptElementLabels.CF_QUALIFIED | JavaScriptElementLabels.CU_QUALIFIED | (flags & QUALIFIER_FLAGS)));
- result.append('/');
- }
- }
- if (declaration.getElementType() == IJavaScriptElement.IMPORT_CONTAINER) {
- result.append(JavaUIMessages.JavaElementLabels_import_container);
- } else {
- result.append(declaration.getElementName());
- }
- // post qualification
- if (getFlag(flags, JavaScriptElementLabels.D_POST_QUALIFIED)) {
- int offset= result.length();
- IJavaScriptElement openable= (IJavaScriptElement) declaration.getOpenable();
- if (openable != null) {
- result.append(JavaScriptElementLabels.CONCAT_STRING);
- result.append(getElementLabel(openable, JavaScriptElementLabels.CF_QUALIFIED | JavaScriptElementLabels.CU_QUALIFIED | (flags & QUALIFIER_FLAGS)));
- }
- if (getFlag(flags, COLORIZE)) {
- result.colorize(offset, result.length() - offset, QUALIFIER_STYLE);
- }
- }
- }
-
- /**
- * Appends the label for a class file to a {@link ColoredString}. Considers the CF_* flags.
- * @param classFile The element to render.
- * @param flags The rendering flags. Flags with names starting with 'CF_' are considered.
- * @param result The buffer to append the resulting label to.
- */
- public static void getClassFileLabel(IClassFile classFile, long flags, ColoredString result) {
- if (getFlag(flags, JavaScriptElementLabels.CF_QUALIFIED)) {
- IPackageFragment pack= (IPackageFragment) classFile.getParent();
- if (!pack.isDefaultPackage()) {
- getPackageFragmentLabel(pack, (flags & QUALIFIER_FLAGS), result);
- result.append('.');
- }
- }
- result.append(classFile.getElementName());
-
- if (getFlag(flags, JavaScriptElementLabels.CF_POST_QUALIFIED)) {
- int offset= result.length();
- result.append(JavaScriptElementLabels.CONCAT_STRING);
- getPackageFragmentLabel((IPackageFragment) classFile.getParent(), flags & QUALIFIER_FLAGS, result);
- if (getFlag(flags, COLORIZE)) {
- result.colorize(offset, result.length() - offset, QUALIFIER_STYLE);
- }
- }
- }
-
- /**
- * Appends the label for a compilation unit to a {@link ColoredString}. Considers the CU_* flags.
- * @param cu The element to render.
- * @param flags The rendering flags. Flags with names starting with 'CU_' are considered.
- * @param result The buffer to append the resulting label to.
- */
- public static void getCompilationUnitLabel(IJavaScriptUnit cu, long flags, ColoredString result) {
- if (getFlag(flags, JavaScriptElementLabels.CU_QUALIFIED)) {
- IPackageFragment pack= (IPackageFragment) cu.getParent();
- if (!pack.isDefaultPackage()) {
- getPackageFragmentLabel(pack, (flags & QUALIFIER_FLAGS), result);
- result.append('.');
- }
- }
- result.append(cu.getElementName());
-
- if (getFlag(flags, JavaScriptElementLabels.CU_POST_QUALIFIED)) {
- int offset= result.length();
- result.append(JavaScriptElementLabels.CONCAT_STRING);
- getPackageFragmentLabel((IPackageFragment) cu.getParent(), flags & QUALIFIER_FLAGS, result);
- if (getFlag(flags, COLORIZE)) {
- result.colorize(offset, result.length() - offset, QUALIFIER_STYLE);
- }
- }
- }
-
- /**
- * Appends the label for a package fragment to a {@link ColoredString}. Considers the P_* flags.
- * @param pack The element to render.
- * @param flags The rendering flags. Flags with names starting with P_' are considered.
- * @param result The buffer to append the resulting label to.
- */
- public static void getPackageFragmentLabel(IPackageFragment pack, long flags, ColoredString result) {
- if (getFlag(flags, JavaScriptElementLabels.P_QUALIFIED)) {
- getPackageFragmentRootLabel((IPackageFragmentRoot) pack.getParent(), JavaScriptElementLabels.ROOT_QUALIFIED, result);
- result.append('/');
- }
- if (pack.isDefaultPackage()) {
- result.append(JavaScriptElementLabels.DEFAULT_PACKAGE);
- } else if (getFlag(flags, JavaScriptElementLabels.P_COMPRESSED)) {
- StringBuffer buf= new StringBuffer();
- JavaScriptElementLabels.getPackageFragmentLabel(pack, JavaScriptElementLabels.P_COMPRESSED, buf);
- result.append(buf.toString());
- } else {
- result.append(pack.getElementName());
- }
- if (getFlag(flags, JavaScriptElementLabels.P_POST_QUALIFIED)) {
- int offset= result.length();
- result.append(JavaScriptElementLabels.CONCAT_STRING);
- getPackageFragmentRootLabel((IPackageFragmentRoot) pack.getParent(), JavaScriptElementLabels.ROOT_QUALIFIED, result);
- if (getFlag(flags, COLORIZE)) {
- result.colorize(offset, result.length() - offset, QUALIFIER_STYLE);
- }
- }
- }
-
- /**
- * Appends the label for a package fragment root to a {@link ColoredString}. Considers the ROOT_* flags.
- * @param root The element to render.
- * @param flags The rendering flags. Flags with names starting with ROOT_' are considered.
- * @param result The buffer to append the resulting label to.
- */
- public static void getPackageFragmentRootLabel(IPackageFragmentRoot root, long flags, ColoredString result) {
- if (root.isArchive())
- getArchiveLabel(root, flags, result);
- else
- getFolderLabel(root, flags, result);
- }
-
- private static void getArchiveLabel(IPackageFragmentRoot root, long flags, ColoredString result) {
- // Handle variables different
- if (getFlag(flags, JavaScriptElementLabels.ROOT_VARIABLE) && getVariableLabel(root, flags, result))
- return;
- boolean external= root.isExternal();
- if (external)
- getExternalArchiveLabel(root, flags, result);
- else
- getInternalArchiveLabel(root, flags, result);
- }
-
- private static boolean getVariableLabel(IPackageFragmentRoot root, long flags, ColoredString result) {
- try {
- IIncludePathEntry rawEntry= root.getRawIncludepathEntry();
- if (rawEntry != null && rawEntry.getEntryKind() == IIncludePathEntry.CPE_VARIABLE) {
- IPath path= rawEntry.getPath().makeRelative();
- int offset= result.length();
- if (getFlag(flags, JavaScriptElementLabels.REFERENCED_ROOT_POST_QUALIFIED)) {
- int segements= path.segmentCount();
- if (segements > 0) {
- result.append(path.segment(segements - 1));
- if (segements > 1) {
- result.append(JavaScriptElementLabels.CONCAT_STRING);
- result.append(path.removeLastSegments(1).toOSString());
- }
- } else {
- result.append(path.toString());
- }
- } else {
- result.append(path.toString());
- }
- result.append(JavaScriptElementLabels.CONCAT_STRING);
- if (root.isExternal())
- result.append(root.getPath().toOSString());
- else
- result.append(root.getPath().makeRelative().toString());
-
- if (getFlag(flags, COLORIZE)) {
- result.colorize(offset, result.length() - offset, QUALIFIER_STYLE);
- }
- return true;
- }
- } catch (JavaScriptModelException e) {
- JavaScriptPlugin.log(e); // problems with class path
- }
- return false;
- }
-
- private static void getExternalArchiveLabel(IPackageFragmentRoot root, long flags, ColoredString result) {
- IPath path= root.getPath();
- if (getFlag(flags, JavaScriptElementLabels.REFERENCED_ROOT_POST_QUALIFIED)) {
- int segements= path.segmentCount();
- if (segements > 0) {
- result.append(path.segment(segements - 1));
- int offset= result.length();
- if (segements > 1 || path.getDevice() != null) {
- result.append(JavaScriptElementLabels.CONCAT_STRING);
- result.append(path.removeLastSegments(1).toOSString());
- }
- if (getFlag(flags, COLORIZE)) {
- result.colorize(offset, result.length() - offset, QUALIFIER_STYLE);
- }
- } else {
- result.append(path.toOSString());
- }
- } else {
- result.append(path.toOSString());
- }
- }
-
- private static void getInternalArchiveLabel(IPackageFragmentRoot root, long flags, ColoredString result) {
- IResource resource= root.getResource();
- boolean rootQualified= getFlag(flags, JavaScriptElementLabels.ROOT_QUALIFIED);
- boolean referencedQualified= getFlag(flags, JavaScriptElementLabels.REFERENCED_ROOT_POST_QUALIFIED) && isReferenced(root);
- if (rootQualified) {
- result.append(root.getPath().makeRelative().toString());
- } else {
- result.append(root.getElementName());
- int offset= result.length();
- if (referencedQualified) {
- result.append(JavaScriptElementLabels.CONCAT_STRING);
- result.append(resource.getParent().getFullPath().makeRelative().toString());
- } else if (getFlag(flags, JavaScriptElementLabels.ROOT_POST_QUALIFIED)) {
- result.append(JavaScriptElementLabels.CONCAT_STRING);
- result.append(root.getParent().getPath().makeRelative().toString());
- } else {
- return;
- }
- if (getFlag(flags, COLORIZE)) {
- result.colorize(offset, result.length() - offset, QUALIFIER_STYLE);
- }
- }
- }
-
- private static void getFolderLabel(IPackageFragmentRoot root, long flags, ColoredString result) {
- IResource resource= root.getResource();
- boolean rootQualified= getFlag(flags, JavaScriptElementLabels.ROOT_QUALIFIED);
- boolean referencedQualified= getFlag(flags, JavaScriptElementLabels.REFERENCED_ROOT_POST_QUALIFIED) && isReferenced(root);
- if (rootQualified) {
- result.append(root.getPath().makeRelative().toString());
- } else {
- if (resource != null) {
- IPath projectRelativePath= resource.getProjectRelativePath();
- if (projectRelativePath.segmentCount() == 0) {
- result.append(resource.getName());
- referencedQualified= false;
- } else {
- result.append(projectRelativePath.toString());
- }
- } else
- result.append(root.getElementName());
- int offset= result.length();
- if (referencedQualified) {
- result.append(JavaScriptElementLabels.CONCAT_STRING);
- result.append(resource.getProject().getName());
- } else if (getFlag(flags, JavaScriptElementLabels.ROOT_POST_QUALIFIED)) {
- result.append(JavaScriptElementLabels.CONCAT_STRING);
- result.append(root.getParent().getElementName());
- } else {
- return;
- }
- if (getFlag(flags, COLORIZE)) {
- result.colorize(offset, result.length() - offset, QUALIFIER_STYLE);
- }
- }
- }
-
- /**
- * @param root
- * @return <code>true</code> if the given package fragment root is
- * referenced. This means it is owned by a different project but is referenced
- * by the root's parent. Returns <code>false</code> if the given root
- * doesn't have an underlying resource.
- */
- private static boolean isReferenced(IPackageFragmentRoot root) {
- IResource resource= root.getResource();
- if (resource != null) {
- IProject jarProject= resource.getProject();
- IProject container= root.getJavaScriptProject().getProject();
- return !container.equals(jarProject);
- }
- return false;
- }
-
- /**
- * Returns the label of a classpath container
- * @param containerPath The path of the container.
- * @param project The project the container is resolved in.
- * @return Returns the label of the classpath container
- */
- public static ColoredString getContainerEntryLabel(IPath containerPath, IJavaScriptProject project) {
- try {
- IJsGlobalScopeContainer container= JavaScriptCore.getJsGlobalScopeContainer(containerPath, project);
- String description= null;
- if (container != null) {
- description= container.getDescription();
- }
- if (description == null) {
- JsGlobalScopeContainerInitializer initializer= JavaScriptCore.getJsGlobalScopeContainerInitializer(containerPath.segment(0));
- if (initializer != null) {
- description= initializer.getDescription(containerPath, project);
- }
- }
- if (description != null) {
- ColoredString str= new ColoredString(description);
- if (containerPath.segmentCount() > 0 && JavaRuntime.JRE_CONTAINER.equals(containerPath.segment(0))) {
- int index= description.indexOf('[');
- if (index != -1) {
- str.colorize(index, description.length() - index, DECORATIONS_STYLE);
- }
- }
- return str;
- }
- } catch (JavaScriptModelException e) {
- // ignore
- }
- return new ColoredString(containerPath.toString());
- }
-
- public static ColoredString decorateColoredString(ColoredString string, String decorated, Style color) {
- String label= string.getString();
- int originalStart= decorated.indexOf(label);
- if (originalStart == -1) {
- return new ColoredString(decorated); // the decorator did something wild
- }
- if (originalStart > 0) {
- ColoredString newString= new ColoredString(decorated.substring(0, originalStart), color);
- newString.append(string);
- string= newString;
- }
- if (decorated.length() > originalStart + label.length()) { // decorator appended something
- return string.append(decorated.substring(originalStart + label.length()), color);
- }
- return string; // no change
- }
-
-}
diff --git a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/ColoredString.java b/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/ColoredString.java
deleted file mode 100644
index 6753ad42..00000000
--- a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/ColoredString.java
+++ /dev/null
@@ -1,173 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.internal.ui.viewsupport;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-
-
-public class ColoredString {
-
- public static class Style {
- private final String fForegroundColorName;
-
- public Style(String foregroundColorName) {
- fForegroundColorName= foregroundColorName;
- }
-
- public String getForegroundColorName() {
- return fForegroundColorName;
- }
- }
-
- public static final Style DEFAULT_STYLE= null;
-
- private StringBuffer fBuffer;
- private ArrayList fRanges;
-
- public ColoredString() {
- fBuffer= new StringBuffer();
- fRanges= null;
- }
-
- public ColoredString(String text) {
- this(text, ColoredString.DEFAULT_STYLE);
- }
-
- public ColoredString(String text, Style style) {
- this();
- append(text, style);
- }
-
- public String getString() {
- return fBuffer.toString();
- }
-
- public int length() {
- return fBuffer.length();
- }
-
- public Iterator getRanges() {
- if (!hasRanges())
- return Collections.EMPTY_LIST.iterator();
- return getRangesList().iterator();
- }
-
- public ColoredString append(String text) {
- return append(text, DEFAULT_STYLE);
- }
-
- public ColoredString append(char ch) {
- return append(String.valueOf(ch), DEFAULT_STYLE);
- }
-
- public ColoredString append(ColoredString string) {
- int offset= fBuffer.length();
- fBuffer.append(string.getString());
- for (Iterator iterator= string.getRanges(); iterator.hasNext();) {
- StyleRange curr= (StyleRange) iterator.next();
- addRange(new StyleRange(offset + curr.offset, curr.length, curr.style));
- }
- return this;
- }
-
- public ColoredString append(String text, Style style) {
- if (text.length() == 0)
- return this;
-
- int offset= fBuffer.length();
- fBuffer.append(text);
- if (style != null) {
- int nRanges= getNumberOfRanges();
- if (nRanges > 0) {
- StyleRange last= getRange(nRanges - 1);
- if (last.offset + last.length == offset && style.equals(last.style)) {
- last.length += text.length();
- return this;
- }
- }
- addRange(new StyleRange(offset, text.length(), style));
- }
- return this;
- }
-
- public void colorize(int offset, int length, Style style) {
- if (offset < 0 || offset + length > fBuffer.length()) {
- throw new IllegalArgumentException("Invalid offset (" + offset + ") or length (" + length + ")"); //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$
- }
-
- int insertPos= 0;
- int nRanges= getNumberOfRanges();
- for (int i= 0; i < nRanges; i++) {
- StyleRange curr= getRange(i);
- if (curr.offset + curr.length <= offset) {
- insertPos= i + 1;
- }
- }
- if (insertPos < nRanges) {
- StyleRange curr= getRange(insertPos);
- if (curr.offset > offset + length) {
- throw new IllegalArgumentException("Overlapping ranges"); //$NON-NLS-1$
- }
- }
- addRange(insertPos, new StyleRange(offset, length, style));
- }
-
- /* (non-Javadoc)
- * @see java.lang.Object#toString()
- */
- public String toString() {
- return fBuffer.toString();
- }
-
- private boolean hasRanges() {
- return fRanges != null && !fRanges.isEmpty();
- }
-
- private int getNumberOfRanges() {
- return fRanges == null ? 0 : fRanges.size();
- }
-
- private StyleRange getRange(int index) {
- if (fRanges != null) {
- return (StyleRange) fRanges.get(index);
- }
- throw new IndexOutOfBoundsException();
- }
-
- private void addRange(StyleRange range) {
- getRangesList().add(range);
- }
-
- private void addRange(int index, StyleRange range) {
- getRangesList().add(index, range);
- }
-
- private List getRangesList() {
- if (fRanges == null)
- fRanges= new ArrayList(2);
- return fRanges;
- }
-
- public static class StyleRange {
- public int offset;
- public int length;
- public Style style;
-
- public StyleRange(int offset, int length, Style style) {
- this.offset= offset;
- this.length= length;
- this.style= style;
- }
- }
-}
diff --git a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/ColoredViewersManager.java b/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/ColoredViewersManager.java
deleted file mode 100644
index 1ef91525..00000000
--- a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/ColoredViewersManager.java
+++ /dev/null
@@ -1,218 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.internal.ui.viewsupport;
-
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
-import org.eclipse.jface.resource.ColorRegistry;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.jface.viewers.IBaseLabelProvider;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Item;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.swt.widgets.TreeItem;
-import org.eclipse.wst.jsdt.internal.ui.preferences.AppearancePreferencePage;
-import org.eclipse.wst.jsdt.ui.PreferenceConstants;
-
-public class ColoredViewersManager implements IPropertyChangeListener {
-
- public static final String QUALIFIER_COLOR_NAME= "org.eclipse.wst.jsdt.ui.ColoredLabels.qualifier"; //$NON-NLS-1$
- public static final String DECORATIONS_COLOR_NAME= "org.eclipse.wst.jsdt.ui.ColoredLabels.decorations"; //$NON-NLS-1$
- public static final String COUNTER_COLOR_NAME= "org.eclipse.wst.jsdt.ui.ColoredLabels.counter"; //$NON-NLS-1$
- public static final String INHERITED_COLOR_NAME= "org.eclipse.wst.jsdt.ui.ColoredLabels.inherited"; //$NON-NLS-1$
-
- private static ColoredViewersManager fgInstance= new ColoredViewersManager();
-
- private Map fManagedViewers;
- private ColorRegistry fColorRegisty;
-
- public ColoredViewersManager() {
- fManagedViewers= new HashMap();
- fColorRegisty= JFaceResources.getColorRegistry();
- }
-
- public void installColoredLabels(StructuredViewer viewer) {
- if (fManagedViewers.containsKey(viewer)) {
- return; // already installed
- }
- if (fManagedViewers.isEmpty()) {
- // first viewer installed
- PreferenceConstants.getPreferenceStore().addPropertyChangeListener(this);
- fColorRegisty.addListener(this);
- }
- fManagedViewers.put(viewer, new ManagedViewer(viewer));
- }
-
-
- public void uninstallColoredLabels(StructuredViewer viewer) {
- ManagedViewer mv= (ManagedViewer) fManagedViewers.remove(viewer);
- if (mv == null)
- return; // not installed
-
- if (fManagedViewers.isEmpty()) {
- PreferenceConstants.getPreferenceStore().removePropertyChangeListener(this);
- fColorRegisty.removeListener(this);
- // last viewer uninstalled
- }
- }
-
- public Color getColorForName(String symbolicName) {
- return fColorRegisty.get(symbolicName);
- }
-
-
- public void propertyChange(PropertyChangeEvent event) {
- String property= event.getProperty();
- if (property.equals(QUALIFIER_COLOR_NAME) || property.equals(COUNTER_COLOR_NAME) || property.equals(DECORATIONS_COLOR_NAME)
- || property.equals(AppearancePreferencePage.PREF_COLORED_LABELS)) {
- Display.getDefault().asyncExec(new Runnable() {
- public void run() {
- refreshAllViewers();
- }
- });
- }
- }
-
- protected final void refreshAllViewers() {
- for (Iterator iterator= fManagedViewers.values().iterator(); iterator.hasNext();) {
- ManagedViewer viewer= (ManagedViewer) iterator.next();
- viewer.refresh();
- }
- }
-
- private class ManagedViewer implements DisposeListener {
-
- private static final String COLORED_LABEL_KEY= "coloredlabel"; //$NON-NLS-1$
-
- private StructuredViewer fViewer;
- private OwnerDrawSupport fOwnerDrawSupport;
-
- private ManagedViewer(StructuredViewer viewer) {
- fViewer= viewer;
- fOwnerDrawSupport= null;
- fViewer.getControl().addDisposeListener(this);
- if (showColoredLabels()) {
- installOwnerDraw();
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.swt.events.DisposeListener#widgetDisposed(org.eclipse.swt.events.DisposeEvent)
- */
- public void widgetDisposed(DisposeEvent e) {
- uninstallColoredLabels(fViewer);
- }
-
- public final void refresh() {
- Control control= fViewer.getControl();
- if (!control.isDisposed()) {
- if (showColoredLabels()) {
- installOwnerDraw();
- } else {
- uninstallOwnerDraw();
- }
- }
- }
-
- protected void installOwnerDraw() {
- if (fOwnerDrawSupport == null) {
- // not yet installed
- fOwnerDrawSupport= new OwnerDrawSupport(fViewer.getControl()) { // will install itself as listeners
- public ColoredString getColoredLabel(Item item) {
- return getColoredLabelForView(item);
- }
-
- public Color getColor(String foregroundColorName, Display display) {
- return getColorForName(foregroundColorName);
- }
- };
- }
- refreshViewer();
- }
-
- protected void uninstallOwnerDraw() {
- if (fOwnerDrawSupport == null)
- return; // not installed
-
- fOwnerDrawSupport.dispose(); // removes itself as listener
- fOwnerDrawSupport= null;
- refreshViewer();
- }
-
- private void refreshViewer() {
- Control control= fViewer.getControl();
- if (!control.isDisposed()) {
- if (control instanceof Tree) {
- refresh(((Tree) control).getItems());
- } else if (control instanceof Table) {
- refresh(((Table) control).getItems());
- }
- }
- }
-
- private void refresh(Item[] items) {
- for (int i= 0; i < items.length; i++) {
- Item item= items[i];
- item.setData(COLORED_LABEL_KEY, null);
- String text= item.getText();
- item.setText(""); //$NON-NLS-1$
- item.setText(text);
- if (item instanceof TreeItem) {
- refresh(((TreeItem) item).getItems());
- }
- }
- }
-
- private ColoredString getColoredLabelForView(Item item) {
- ColoredString oldLabel= (ColoredString) item.getData(COLORED_LABEL_KEY);
- String itemText= item.getText();
- if (oldLabel != null && oldLabel.getString().equals(itemText)) {
- // avoid accesses to the label provider if possible
- return oldLabel;
- }
- ColoredString newLabel= null;
- IBaseLabelProvider labelProvider= fViewer.getLabelProvider();
- if (labelProvider instanceof IRichLabelProvider) {
- newLabel= ((IRichLabelProvider) labelProvider).getRichTextLabel(item.getData());
- }
- if (newLabel == null) {
- newLabel= new ColoredString(itemText); // fallback. Should never happen.
- } else if (!newLabel.getString().equals(itemText)) {
- // the decorator manager has already queued an new update
- newLabel= ColoredJavaElementLabels.decorateColoredString(newLabel, itemText, ColoredJavaElementLabels.DECORATIONS_STYLE);
- }
- item.setData(COLORED_LABEL_KEY, newLabel); // cache the result
- return newLabel;
- }
-
- }
-
- public static boolean showColoredLabels() {
- String preference= PreferenceConstants.getPreference(AppearancePreferencePage.PREF_COLORED_LABELS, null);
- return preference != null && Boolean.valueOf(preference).booleanValue();
- }
-
- public static void install(StructuredViewer viewer) {
- fgInstance.installColoredLabels(viewer);
- }
-
-
-}
diff --git a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/DecoratingJavaLabelProvider.java b/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/DecoratingJavaLabelProvider.java
deleted file mode 100644
index 05db0ad7..00000000
--- a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/DecoratingJavaLabelProvider.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.internal.ui.viewsupport;
-
-import org.eclipse.jface.viewers.DecoratingLabelProvider;
-import org.eclipse.jface.viewers.DecorationContext;
-import org.eclipse.jface.viewers.ILabelDecorator;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.LabelDecorator;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.jsdt.internal.ui.packageview.HierarchicalDecorationContext;
-import org.eclipse.wst.jsdt.ui.ProblemsLabelDecorator;
-
-public class DecoratingJavaLabelProvider extends DecoratingLabelProvider implements IRichLabelProvider {
-
- /**
- * Decorating label provider for Java. Combines a JavaUILabelProvider
- * with problem and override indicator with the workbench decorator (label
- * decorator extension point).
- * @param labelProvider the label provider to decorate
- */
- public DecoratingJavaLabelProvider(JavaUILabelProvider labelProvider) {
- this(labelProvider, true);
- }
-
- /**
- * Decorating label provider for Java. Combines a JavaUILabelProvider
- * (if enabled with problem indicator) with the workbench
- * decorator (label decorator extension point).
- * @param labelProvider the label provider to decorate
- * @param errorTick show error ticks
- */
- public DecoratingJavaLabelProvider(JavaUILabelProvider labelProvider, boolean errorTick) {
- this(labelProvider, errorTick, true);
- }
-
- /**
- * Decorating label provider for Java. Combines a JavaUILabelProvider
- * (if enabled with problem indicator) with the workbench
- * decorator (label decorator extension point).
- * @param labelProvider the label provider to decorate
- * @param errorTick show error ticks
- * @param flatPackageMode configure flat package mode
- */
- public DecoratingJavaLabelProvider(JavaUILabelProvider labelProvider, boolean errorTick, boolean flatPackageMode) {
- super(labelProvider, PlatformUI.getWorkbench().getDecoratorManager().getLabelDecorator());
- if (errorTick) {
- labelProvider.addLabelDecorator(new ProblemsLabelDecorator(null));
- }
- setFlatPackageMode(flatPackageMode);
- }
-
- /**
- * Tells the label decorator if the view presents packages flat or hierarchical.
- * @param enable If set, packages are presented in flat mode.
- */
- public void setFlatPackageMode(boolean enable) {
- if (enable) {
- setDecorationContext(DecorationContext.DEFAULT_CONTEXT);
- } else {
- setDecorationContext(HierarchicalDecorationContext.CONTEXT);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.wst.jsdt.internal.ui.viewsupport.IRichLabelProvider#getRichTextLabel(Object)
- */
- public ColoredString getRichTextLabel(Object element) {
- ILabelProvider labelProvider= getLabelProvider();
- if (labelProvider instanceof IRichLabelProvider) {
- // get a rich label from the label decorator
- IRichLabelProvider richLabelProvider= (IRichLabelProvider) labelProvider;
- ColoredString richLabel= richLabelProvider.getRichTextLabel(element);
- if (richLabel != null) {
- String decorated= null;
- ILabelDecorator labelDecorator= getLabelDecorator();
- if (labelDecorator != null) {
- if (labelDecorator instanceof LabelDecorator) {
- decorated= ((LabelDecorator) labelDecorator).decorateText(richLabel.getString(), element, getDecorationContext());
- } else {
- decorated= labelDecorator.decorateText(richLabel.getString(), element);
- }
- }
- if (decorated != null) {
- return ColoredJavaElementLabels.decorateColoredString(richLabel, decorated, ColoredJavaElementLabels.DECORATIONS_STYLE);
- }
- return richLabel;
- }
- }
- return null;
- }
-
-}
diff --git a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/FilterUpdater.java b/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/FilterUpdater.java
deleted file mode 100644
index cba4e82d..00000000
--- a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/FilterUpdater.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.internal.ui.viewsupport;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResourceChangeEvent;
-import org.eclipse.core.resources.IResourceChangeListener;
-import org.eclipse.core.resources.IResourceDelta;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.wst.jsdt.core.JavaScriptCore;
-
-
-public class FilterUpdater implements IResourceChangeListener {
-
- private ProblemTreeViewer fViewer;
-
- public FilterUpdater(ProblemTreeViewer viewer) {
- Assert.isNotNull(viewer);
- fViewer= viewer;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.core.resources.IResourceChangeListener#resourceChanged(org.eclipse.core.resources.IResourceChangeEvent)
- */
- public void resourceChanged(IResourceChangeEvent event) {
- if (fViewer.getInput() == null) {
- return;
- }
- IResourceDelta delta= event.getDelta();
- if (delta == null)
- return;
- IResourceDelta[] projDeltas = delta.getAffectedChildren(IResourceDelta.CHANGED);
- for (int i= 0; i < projDeltas.length; i++) {
- IResourceDelta pDelta= projDeltas[i];
- if ((pDelta.getFlags() & IResourceDelta.DESCRIPTION) != 0) {
- IProject project= (IProject) pDelta.getResource();
- if (needsRefiltering(project)) {
- final Control ctrl= fViewer.getControl();
- if (ctrl != null && !ctrl.isDisposed()) {
- // async is needed due to bug 33783
- ctrl.getDisplay().asyncExec(new Runnable() {
- public void run() {
- if (!ctrl.isDisposed())
- fViewer.refresh(false);
- }
- });
- }
- return; // one refresh is good enough
- }
- }
- }
- }
-
- private boolean needsRefiltering(IProject project) {
- try {
- Object element= project;
- if (project.hasNature(JavaScriptCore.NATURE_ID)) {
- element= JavaScriptCore.create(project);
- }
- boolean inView= fViewer.testFindItem(element) != null;
- boolean afterFilter= !fViewer.isFiltered(element, fViewer.getInput());
-
- return inView != afterFilter;
- } catch (CoreException e) {
- return true;
- }
- }
-}
diff --git a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/HistoryDropDownAction.java b/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/HistoryDropDownAction.java
deleted file mode 100644
index f428afd1..00000000
--- a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/HistoryDropDownAction.java
+++ /dev/null
@@ -1,153 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Jesper Kamstrup Linnet (eclipse@kamstrup-linnet.dk) - initial API and implementation
- * (report 36180: Callers/Callees view)
- *******************************************************************************/
-package org.eclipse.wst.jsdt.internal.ui.viewsupport;
-
-import java.util.List;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IMenuCreator;
-import org.eclipse.jface.action.IMenuListener;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.swt.events.MenuAdapter;
-import org.eclipse.swt.events.MenuEvent;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.ui.IWorkbenchActionConstants;
-
-/*package*/ class HistoryDropDownAction extends Action {
-
- private class HistoryAction extends Action {
- private final Object fElement;
-
- public HistoryAction(Object element, int accelerator) {
- super("", AS_RADIO_BUTTON); //$NON-NLS-1$
- Assert.isNotNull(element);
- fElement= element;
-
- String label= fHistory.getText(element);
- if (accelerator < 10) {
- //add the numerical accelerator
- label= new StringBuffer().append('&').append(accelerator).append(' ').append(label).toString();
- }
-
- setText(label);
- setImageDescriptor(fHistory.getImageDescriptor(element));
- }
-
- public void run() {
- fHistory.setActiveEntry(fElement);
- }
- }
-
- private class HistoryMenuCreator implements IMenuCreator {
-
- public Menu getMenu(Menu parent) {
- return null;
- }
-
- public Menu getMenu(Control parent) {
- if (fMenu != null) {
- fMenu.dispose();
- }
- final MenuManager manager= new MenuManager();
- manager.setRemoveAllWhenShown(true);
- manager.addMenuListener(new IMenuListener() {
- public void menuAboutToShow(IMenuManager manager2) {
- List entries= fHistory.getHistoryEntries();
- boolean checkOthers= addEntryMenuItems(manager2, entries);
-
- manager2.add(new Separator());
-
- Action others= new HistoryListAction(fHistory);
- others.setChecked(checkOthers);
- manager2.add(others);
-
- Action clearAction= fHistory.getClearAction();
- if (clearAction != null) {
- manager2.add(clearAction);
- }
-
- manager2.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
-
- fHistory.addMenuEntries(manager);
- }
-
- private boolean addEntryMenuItems(IMenuManager manager2, List entries) {
- if (entries.isEmpty()) {
- return false;
- }
-
- boolean checkOthers= true;
- int min= Math.min(entries.size(), RESULTS_IN_DROP_DOWN);
- for (int i= 0; i < min; i++) {
- Object entry= entries.get(i);
- HistoryAction action= new HistoryAction(entry, i + 1);
- boolean check= entry.equals(fHistory.getCurrentEntry());
- action.setChecked(check);
- if (check)
- checkOthers= false;
- manager2.add(action);
- }
- return checkOthers;
- }
- });
-
- fMenu= manager.createContextMenu(parent);
-
- //workaround for https://bugs.eclipse.org/bugs/show_bug.cgi?id=129973
- final Display display= parent.getDisplay();
- fMenu.addMenuListener(new MenuAdapter() {
- public void menuHidden(final MenuEvent e) {
- display.asyncExec(new Runnable() {
- public void run() {
- manager.removeAll();
- if (fMenu != null) {
- fMenu.dispose();
- fMenu= null;
- }
- }
- });
- }
- });
- return fMenu;
- }
-
- public void dispose() {
- fHistory= null;
-
- if (fMenu != null) {
- fMenu.dispose();
- fMenu= null;
- }
- }
- }
-
- public static final int RESULTS_IN_DROP_DOWN= 10;
-
- private ViewHistory fHistory;
- private Menu fMenu;
-
- public HistoryDropDownAction(ViewHistory history) {
- fHistory= history;
- fMenu= null;
- setMenuCreator(new HistoryMenuCreator());
- fHistory.configureHistoryDropDownAction(this);
- }
-
- public void run() {
- new HistoryListAction(fHistory).run();
- }
-}
diff --git a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/HistoryListAction.java b/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/HistoryListAction.java
deleted file mode 100644
index aceaac90..00000000
--- a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/HistoryListAction.java
+++ /dev/null
@@ -1,242 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2010 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Jesper Kamstrup Linnet (eclipse@kamstrup-linnet.dk) - initial API and implementation
- * (report 36180: Callers/Callees view)
- *******************************************************************************/
-package org.eclipse.wst.jsdt.internal.ui.viewsupport;
-
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.dialogs.StatusDialog;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.wst.jsdt.internal.corext.util.Messages;
-import org.eclipse.wst.jsdt.internal.ui.JavaUIMessages;
-import org.eclipse.wst.jsdt.internal.ui.dialogs.StatusInfo;
-import org.eclipse.wst.jsdt.internal.ui.wizards.dialogfields.DialogField;
-import org.eclipse.wst.jsdt.internal.ui.wizards.dialogfields.IDialogFieldListener;
-import org.eclipse.wst.jsdt.internal.ui.wizards.dialogfields.IListAdapter;
-import org.eclipse.wst.jsdt.internal.ui.wizards.dialogfields.LayoutUtil;
-import org.eclipse.wst.jsdt.internal.ui.wizards.dialogfields.ListDialogField;
-import org.eclipse.wst.jsdt.internal.ui.wizards.dialogfields.Separator;
-import org.eclipse.wst.jsdt.internal.ui.wizards.dialogfields.StringDialogField;
-
-/*package*/ class HistoryListAction extends Action {
-
- private class HistoryListDialog extends StatusDialog {
- private static final int MAX_MAX_ENTRIES= 100;
- private ListDialogField fHistoryList;
- private StringDialogField fMaxEntriesField;
- private int fMaxEntries;
-
- private Object fResult;
-
- private HistoryListDialog() {
- super(fHistory.getShell());
- setTitle(fHistory.getHistoryListDialogTitle());
-
- createHistoryList();
- createMaxEntriesField();
- setHelpAvailable(false);
- }
-
- private void createHistoryList() {
- IListAdapter adapter= new IListAdapter() {
- public void customButtonPressed(ListDialogField field, int index) {
- doCustomButtonPressed(index);
- }
- public void selectionChanged(ListDialogField field) {
- doSelectionChanged();
- }
-
- public void doubleClicked(ListDialogField field) {
- doDoubleClicked();
- }
- };
- String[] buttonLabels= new String[] { JavaUIMessages.HistoryListAction_remove, JavaUIMessages.HistoryListAction_remove_all };
- LabelProvider labelProvider= new TestRunLabelProvider();
- fHistoryList= new ListDialogField(adapter, buttonLabels, labelProvider);
- fHistoryList.setLabelText(fHistory.getHistoryListDialogMessage());
-
- List historyEntries= fHistory.getHistoryEntries();
- fHistoryList.setElements(historyEntries);
-
- Object currentEntry= fHistory.getCurrentEntry();
- ISelection sel;
- if (currentEntry != null) {
- sel= new StructuredSelection(currentEntry);
- } else {
- sel= new StructuredSelection();
- }
- fHistoryList.selectElements(sel);
- }
-
- private void createMaxEntriesField() {
- fMaxEntriesField= new StringDialogField();
- fMaxEntriesField.setLabelText(fHistory.getMaxEntriesMessage());
- fMaxEntriesField.setDialogFieldListener(new IDialogFieldListener() {
- public void dialogFieldChanged(DialogField field) {
- String maxString= fMaxEntriesField.getText();
- boolean valid;
- try {
- fMaxEntries= Integer.parseInt(maxString);
- valid= fMaxEntries > 0 && fMaxEntries < MAX_MAX_ENTRIES;
- } catch (NumberFormatException e) {
- valid= false;
- }
- if (valid)
- updateStatus(StatusInfo.OK_STATUS);
- else
- updateStatus(new StatusInfo(IStatus.ERROR, Messages.format(JavaUIMessages.HistoryListAction_max_entries_constraint, Integer.toString(MAX_MAX_ENTRIES))));
- }
- });
- fMaxEntriesField.setText(Integer.toString(fHistory.getMaxEntries()));
- }
-
- /*
- * @see Dialog#createDialogArea(Composite)
- */
- protected Control createDialogArea(Composite parent) {
- initializeDialogUnits(parent);
-
- Composite composite= (Composite) super.createDialogArea(parent);
-
- Composite inner= new Composite(composite, SWT.NONE);
- inner.setLayoutData(new GridData(GridData.FILL_BOTH));
- inner.setFont(composite.getFont());
-
- LayoutUtil.doDefaultLayout(inner, new DialogField[] { fHistoryList, new Separator() }, true);
- LayoutUtil.setHeightHint(fHistoryList.getListControl(null), convertHeightInCharsToPixels(12));
- LayoutUtil.setHorizontalGrabbing(fHistoryList.getListControl(null));
-
- Composite additionalControls= new Composite(inner, SWT.NONE);
- additionalControls.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
- LayoutUtil.doDefaultLayout(additionalControls, new DialogField[] { fMaxEntriesField }, false);
- LayoutUtil.setHorizontalGrabbing(fMaxEntriesField.getTextControl(null));
-
- applyDialogFont(composite);
- return composite;
- }
-
- private void doCustomButtonPressed(int index) {
- switch (index) {
- case 0: // remove
- fHistoryList.removeElements(fHistoryList.getSelectedElements());
- fHistoryList.selectFirstElement();
- break;
-
- case 1: // remove all
- fHistoryList.removeAllElements();
-
- //$FALL-THROUGH$
- default:
- break;
- }
- }
-
- private void doDoubleClicked() {
- okPressed();
- }
-
- private void doSelectionChanged() {
- List selected= fHistoryList.getSelectedElements();
- if (selected.size() >= 1) {
- fResult= selected.get(0);
- } else {
- fResult= null;
- }
- fHistoryList.enableButton(0, selected.size() != 0);
- }
-
- public Object getResult() {
- return fResult;
- }
-
- public List getRemaining() {
- return fHistoryList.getElements();
- }
-
- public int getMaxEntries() {
- return fMaxEntries;
- }
-
- /*
- * @see org.eclipse.jface.dialogs.StatusDialog#create()
- */
- public void create() {
- setShellStyle(getShellStyle() | SWT.RESIZE);
- super.create();
- }
-
- }
-
- private final class TestRunLabelProvider extends LabelProvider {
- private final HashMap fImages= new HashMap();
-
- public String getText(Object element) {
- return fHistory.getText(element);
- }
-
- public Image getImage(Object element) {
- ImageDescriptor imageDescriptor= fHistory.getImageDescriptor(element);
- return getCachedImage(imageDescriptor);
- }
-
- private Image getCachedImage(ImageDescriptor imageDescriptor) {
- Object cached= fImages.get(imageDescriptor);
- if (cached != null)
- return (Image) cached;
- Image image= imageDescriptor.createImage(fHistory.getShell().getDisplay());
- fImages.put(imageDescriptor, image);
- return image;
- }
-
- public void dispose() {
- for (Iterator iter= fImages.values().iterator(); iter.hasNext();) {
- Image image= (Image) iter.next();
- image.dispose();
- }
- fImages.clear();
- }
- }
-
- private ViewHistory fHistory;
-
- public HistoryListAction(ViewHistory history) {
- super(null, IAction.AS_RADIO_BUTTON);
- fHistory= history;
- fHistory.configureHistoryListAction(this);
- }
-
- /*
- * @see IAction#run()
- */
- public void run() {
- HistoryListDialog dialog= new HistoryListDialog();
- if (dialog.open() == Window.OK) {
- fHistory.setHistoryEntries(dialog.getRemaining(), dialog.getResult());
- fHistory.setMaxEntries(dialog.getMaxEntries());
- }
- }
-
-}
-
diff --git a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/IProblemChangedListener.java b/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/IProblemChangedListener.java
deleted file mode 100644
index a8a32361..00000000
--- a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/IProblemChangedListener.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.internal.ui.viewsupport;
-
-import org.eclipse.core.resources.IResource;
-
-/**
- * Can be added to a ProblemMarkerManager to get notified about problem
- * marker changes. Used to update error ticks.
- */
-public interface IProblemChangedListener {
-
- /**
- * Called when problems changed. This call is posted in an aynch exec, therefore passed
- * resources must not exist.
- * @param changedResources A set with elements of type <code>IResource</code> that
- * describe the resources that had an problem change.
- * @param isMarkerChange If set to <code>true</code>, the change was a marker change, if
- * <code>false</code>, the change came from an annotation model modification.
- */
- void problemsChanged(IResource[] changedResources, boolean isMarkerChange);
-
-}
diff --git a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/IRichLabelProvider.java b/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/IRichLabelProvider.java
deleted file mode 100644
index 99eac362..00000000
--- a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/IRichLabelProvider.java
+++ /dev/null
@@ -1,19 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.internal.ui.viewsupport;
-
-import org.eclipse.jface.viewers.ILabelProvider;
-
-public interface IRichLabelProvider extends ILabelProvider {
-
- ColoredString getRichTextLabel(Object object);
-
-}
diff --git a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/ISelectionListenerWithAST.java b/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/ISelectionListenerWithAST.java
deleted file mode 100644
index e6b0b69c..00000000
--- a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/ISelectionListenerWithAST.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.internal.ui.viewsupport;
-
-import org.eclipse.jface.text.ITextSelection;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.wst.jsdt.core.dom.JavaScriptUnit;
-
-/**
- * Listener to be informed on text selection changes in an editor (post selection), including the corresponding AST.
- * The AST is shared and must not be modified.
- * Listeners can be registered in a <code>SelectionListenerWithASTManager</code>.
- */
-public interface ISelectionListenerWithAST {
-
- /**
- * Called when a selection has changed. The method is called in a post selection event in an background
- * thread.
- *
- * @param part The editor part in which the selection change has occurred.
- * @param selection The new text selection
- * @param astRoot The AST tree corresponding to the editor's input. This AST is shared and must
- * not be modified.
- */
- void selectionChanged(IEditorPart part, ITextSelection selection, JavaScriptUnit astRoot);
-
-}
diff --git a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/IViewPartInputProvider.java b/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/IViewPartInputProvider.java
deleted file mode 100644
index 20d90c83..00000000
--- a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/IViewPartInputProvider.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.internal.ui.viewsupport;
-
-/**
- * Interface common to all view parts that provide an input.
- */
-public interface IViewPartInputProvider {
-
- /**
- * Returns the input.
- *
- * @return the input object
- */
- public Object getViewPartInput();
-
-}
diff --git a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/ImageDescriptorRegistry.java b/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/ImageDescriptorRegistry.java
deleted file mode 100644
index 1447856e..00000000
--- a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/ImageDescriptorRegistry.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.internal.ui.viewsupport;
-
-import java.util.HashMap;
-import java.util.Iterator;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.wst.jsdt.internal.ui.util.SWTUtil;
-
-/**
- * A registry that maps <code>ImageDescriptors</code> to <code>Image</code>.
- */
-public class ImageDescriptorRegistry {
-
- private HashMap fRegistry= new HashMap(10);
- private Display fDisplay;
-
- /**
- * Creates a new image descriptor registry for the current or default display,
- * respectively.
- */
- public ImageDescriptorRegistry() {
- this(SWTUtil.getStandardDisplay());
- }
-
- /**
- * Creates a new image descriptor registry for the given display. All images
- * managed by this registry will be disposed when the display gets disposed.
- *
- * @param display the display the images managed by this registry are allocated for
- */
- public ImageDescriptorRegistry(Display display) {
- fDisplay= display;
- Assert.isNotNull(fDisplay);
- hookDisplay();
- }
-
- /**
- * Returns the image associated with the given image descriptor.
- *
- * @param descriptor the image descriptor for which the registry manages an image,
- * or <code>null</code> for a missing image descriptor
- * @return the image associated with the image descriptor or <code>null</code>
- * if the image descriptor can't create the requested image.
- */
- public Image get(ImageDescriptor descriptor) {
- if (descriptor == null)
- descriptor= ImageDescriptor.getMissingImageDescriptor();
-
- Image result= (Image)fRegistry.get(descriptor);
- if (result != null)
- return result;
-
- Assert.isTrue(fDisplay == SWTUtil.getStandardDisplay(), "Allocating image for wrong display."); //$NON-NLS-1$
- result= descriptor.createImage();
- if (result != null)
- fRegistry.put(descriptor, result);
- return result;
- }
-
- /**
- * Disposes all images managed by this registry.
- */
- public void dispose() {
- for (Iterator iter= fRegistry.values().iterator(); iter.hasNext(); ) {
- Image image= (Image)iter.next();
- image.dispose();
- }
- fRegistry.clear();
- }
-
- private void hookDisplay() {
- fDisplay.disposeExec(new Runnable() {
- public void run() {
- dispose();
- }
- });
- }
-} \ No newline at end of file
diff --git a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/ImageDisposer.java b/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/ImageDisposer.java
deleted file mode 100644
index 4311b9b5..00000000
--- a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/ImageDisposer.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.internal.ui.viewsupport;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.graphics.Image;
-
-
-/**
- * Helper class to manage images that should be disposed when a control is disposed
- * contol.addWidgetListener(new ImageDisposer(myImage));
- */
-public class ImageDisposer implements DisposeListener {
-
- private Image[] fImages;
-
- public ImageDisposer(Image image) {
- this(new Image[] { image });
- }
-
- public ImageDisposer(Image[] images) {
- Assert.isNotNull(images);
- fImages= images;
- }
-
- /*
- * @see WidgetListener#widgetDisposed
- */
- public void widgetDisposed(DisposeEvent e) {
- if (fImages != null) {
- for (int i= 0; i < fImages.length; i++) {
- fImages[i].dispose();
- }
- }
- }
-}
diff --git a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/ImageImageDescriptor.java b/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/ImageImageDescriptor.java
deleted file mode 100644
index 9a05a79f..00000000
--- a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/ImageImageDescriptor.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.internal.ui.viewsupport;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.ImageData;
-
-/**
- */
-public class ImageImageDescriptor extends ImageDescriptor {
-
- private Image fImage;
-
- /**
- * Constructor for ImagImageDescriptor.
- */
- public ImageImageDescriptor(Image image) {
- super();
- fImage= image;
- }
-
- /* (non-Javadoc)
- * @see ImageDescriptor#getImageData()
- */
- public ImageData getImageData() {
- return fImage.getImageData();
- }
-
- /* (non-Javadoc)
- * @see Object#equals(Object)
- */
- public boolean equals(Object obj) {
- return (obj != null) && getClass().equals(obj.getClass()) && fImage.equals(((ImageImageDescriptor)obj).fImage);
- }
-
- /* (non-Javadoc)
- * @see Object#hashCode()
- */
- public int hashCode() {
- return fImage.hashCode();
- }
-
-}
diff --git a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/JavaElementImageProvider.java b/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/JavaElementImageProvider.java
deleted file mode 100644
index c765a834..00000000
--- a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/JavaElementImageProvider.java
+++ /dev/null
@@ -1,399 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- * Matt Chapman, mpchapman@gmail.com - 89977 Make JDT .java agnostic
- *******************************************************************************/
-package org.eclipse.wst.jsdt.internal.ui.viewsupport;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.model.IWorkbenchAdapter;
-import org.eclipse.wst.jsdt.core.Flags;
-import org.eclipse.wst.jsdt.core.IFunction;
-import org.eclipse.wst.jsdt.core.IJavaScriptElement;
-import org.eclipse.wst.jsdt.core.IJavaScriptProject;
-import org.eclipse.wst.jsdt.core.IMember;
-import org.eclipse.wst.jsdt.core.IPackageFragmentRoot;
-import org.eclipse.wst.jsdt.core.IType;
-import org.eclipse.wst.jsdt.core.JavaScriptCore;
-import org.eclipse.wst.jsdt.core.JavaScriptModelException;
-import org.eclipse.wst.jsdt.internal.ui.JavaPluginImages;
-import org.eclipse.wst.jsdt.internal.ui.JavaScriptPlugin;
-import org.eclipse.wst.jsdt.internal.ui.JavaWorkbenchAdapter;
-import org.eclipse.wst.jsdt.ui.JavaScriptElementImageDescriptor;
-
-/**
- * Default strategy of the Java plugin for the construction of Java element icons.
- */
-public class JavaElementImageProvider {
-
- /**
- * Flags for the JavaImageLabelProvider:
- * Generate images with overlays.
- */
- public final static int OVERLAY_ICONS= 0x1;
-
- /**
- * Generate small sized images.
- */
- public final static int SMALL_ICONS= 0x2;
-
- /**
- * Use the 'light' style for rendering types.
- */
- public final static int LIGHT_TYPE_ICONS= 0x4;
-
-
- public static final Point SMALL_SIZE= new Point(16, 16);
- public static final Point BIG_SIZE= new Point(22, 16);
-
- private static ImageDescriptor DESC_OBJ_PROJECT_CLOSED;
- private static ImageDescriptor DESC_OBJ_PROJECT;
- {
- ISharedImages images= JavaScriptPlugin.getDefault().getWorkbench().getSharedImages();
- DESC_OBJ_PROJECT_CLOSED= images.getImageDescriptor(IDE.SharedImages.IMG_OBJ_PROJECT_CLOSED);
- DESC_OBJ_PROJECT= images.getImageDescriptor(IDE.SharedImages.IMG_OBJ_PROJECT);
- }
-
- private ImageDescriptorRegistry fRegistry;
-
- public JavaElementImageProvider() {
- fRegistry= null; // lazy initialization
- }
-
- /**
- * Returns the icon for a given element. The icon depends on the element type
- * and element properties. If configured, overlay icons are constructed for
- * <code>ISourceReference</code>s.
- * @param flags Flags as defined by the JavaImageLabelProvider
- */
- public Image getImageLabel(Object element, int flags) {
- return getImageLabel(computeDescriptor(element, flags));
- }
-
- private Image getImageLabel(ImageDescriptor descriptor){
- if (descriptor == null)
- return null;
- return getRegistry().get(descriptor);
- }
-
- private ImageDescriptorRegistry getRegistry() {
- if (fRegistry == null) {
- fRegistry= JavaScriptPlugin.getImageDescriptorRegistry();
- }
- return fRegistry;
- }
-
-
- private ImageDescriptor computeDescriptor(Object element, int flags){
- if (element instanceof IJavaScriptElement) {
- return getJavaImageDescriptor((IJavaScriptElement) element, flags);
- } else if (element instanceof IFile) {
- IFile file= (IFile) element;
- if (JavaScriptCore.isJavaScriptLikeFileName(file.getName())) {
- return getCUResourceImageDescriptor(file, flags); // image for a CU not on the build path
- }
- return getWorkbenchImageDescriptor(file, flags);
- } else if (element instanceof IAdaptable) {
- return getWorkbenchImageDescriptor((IAdaptable) element, flags);
- }
- return null;
- }
-
- private static boolean showOverlayIcons(int flags) {
- return (flags & OVERLAY_ICONS) != 0;
- }
-
- private static boolean useSmallSize(int flags) {
- return (flags & SMALL_ICONS) != 0;
- }
-
- private static boolean useLightIcons(int flags) {
- return (flags & LIGHT_TYPE_ICONS) != 0;
- }
-
- /**
- * Returns an image descriptor for a compilation unit not on the class path.
- * The descriptor includes overlays, if specified.
- */
- public ImageDescriptor getCUResourceImageDescriptor(IFile file, int flags) {
- Point size= useSmallSize(flags) ? SMALL_SIZE : BIG_SIZE;
- return new JavaScriptElementImageDescriptor(JavaPluginImages.DESC_OBJS_CUNIT_RESOURCE, 0, size);
- }
-
- /**
- * Returns an image descriptor for a java element. The descriptor includes overlays, if specified.
- */
- public ImageDescriptor getJavaImageDescriptor(IJavaScriptElement element, int flags) {
- Point size= useSmallSize(flags) ? SMALL_SIZE : BIG_SIZE;
-
- ImageDescriptor baseDesc= getBaseImageDescriptor(element, flags);
- if (baseDesc != null) {
- int adornmentFlags= computeJavaAdornmentFlags(element, flags);
- return new JavaScriptElementImageDescriptor(baseDesc, adornmentFlags, size);
- }
- return new JavaScriptElementImageDescriptor(JavaPluginImages.DESC_OBJS_GHOST, 0, size);
- }
-
- /**
- * Returns an image descriptor for a IAdaptable. The descriptor includes overlays, if specified (only error ticks apply).
- * Returns <code>null</code> if no image could be found.
- */
- public ImageDescriptor getWorkbenchImageDescriptor(IAdaptable adaptable, int flags) {
- IWorkbenchAdapter wbAdapter= (IWorkbenchAdapter) adaptable.getAdapter(IWorkbenchAdapter.class);
- if (wbAdapter == null) {
- return null;
- }
- ImageDescriptor descriptor= wbAdapter.getImageDescriptor(adaptable);
- if (descriptor == null) {
- return null;
- }
-
- Point size= useSmallSize(flags) ? SMALL_SIZE : BIG_SIZE;
- return new JavaScriptElementImageDescriptor(descriptor, 0, size);
- }
-
- // ---- Computation of base image key -------------------------------------------------
-
- /**
- * Returns an image descriptor for a java element. This is the base image, no overlays.
- */
- public ImageDescriptor getBaseImageDescriptor(IJavaScriptElement element, int renderFlags) {
-
- try {
- switch (element.getElementType()) {
- case IJavaScriptElement.INITIALIZER:
- return JavaPluginImages.DESC_MISC_PRIVATE; // 23479
- case IJavaScriptElement.METHOD: {
- IFunction method= (IFunction) element;
- IType declType= method.getDeclaringType();
- int flags= method.getFlags();
-// if (declType.isEnum() && isDefaultFlag(flags) && method.isConstructor())
-// return JavaPluginImages.DESC_MISC_PRIVATE;
- return getMethodImageDescriptor(false, flags);
- }
- case IJavaScriptElement.FIELD: {
- IMember member= (IMember) element;
- IType declType= member.getDeclaringType();
- return getFieldImageDescriptor(false, member.getFlags());
- }
- case IJavaScriptElement.LOCAL_VARIABLE:
- return JavaPluginImages.DESC_OBJS_LOCAL_VARIABLE;
-
- case IJavaScriptElement.IMPORT_DECLARATION:
- return JavaPluginImages.DESC_OBJS_IMPDECL;
-
- case IJavaScriptElement.IMPORT_CONTAINER:
- return JavaPluginImages.DESC_OBJS_IMPCONT;
-
- case IJavaScriptElement.TYPE: {
- IType type= (IType) element;
-
- IType declType= type.getDeclaringType();
- boolean isInner= declType != null;
- return getTypeImageDescriptor(isInner, false, type.getFlags(), useLightIcons(renderFlags));
- }
-
- case IJavaScriptElement.PACKAGE_FRAGMENT_ROOT: {
- IPackageFragmentRoot root= (IPackageFragmentRoot) element;
- if (root.isArchive()) {
- IPath attach= root.getSourceAttachmentPath();
- if (root.isExternal()) {
- if (attach == null) {
- return JavaPluginImages.DESC_OBJS_EXTJAR;
- } else {
- return JavaPluginImages.DESC_OBJS_EXTJAR_WSRC;
- }
- } else {
- if (attach == null) {
- return JavaPluginImages.DESC_OBJS_JAR;
- } else {
- return JavaPluginImages.DESC_OBJS_JAR_WSRC;
- }
- }
- } else {
- return JavaPluginImages.DESC_OBJS_PACKFRAG_ROOT;
- }
- }
-
- case IJavaScriptElement.PACKAGE_FRAGMENT:
- return getPackageFragmentIcon(element, renderFlags);
-
-
- case IJavaScriptElement.JAVASCRIPT_UNIT:
- return JavaPluginImages.DESC_OBJS_CUNIT;
-
- case IJavaScriptElement.CLASS_FILE:
- /* this is too expensive for large packages
- try {
- IClassFile cfile= (IClassFile)element;
- if (cfile.isClass())
- return JavaPluginImages.IMG_OBJS_CFILECLASS;
- return JavaPluginImages.IMG_OBJS_CFILEINT;
- } catch(JavaScriptModelException e) {
- // fall through;
- }*/
- return JavaPluginImages.DESC_OBJS_CFILE;
-
- case IJavaScriptElement.JAVASCRIPT_PROJECT:
- IJavaScriptProject jp= (IJavaScriptProject)element;
- if (jp.getProject().isOpen()) {
- IProject project= jp.getProject();
- IWorkbenchAdapter adapter= (IWorkbenchAdapter)project.getAdapter(IWorkbenchAdapter.class);
- if (adapter != null) {
- ImageDescriptor result= adapter.getImageDescriptor(project);
- if (result != null)
- return result;
- }
- return DESC_OBJ_PROJECT;
- }
- return DESC_OBJ_PROJECT_CLOSED;
-
- case IJavaScriptElement.JAVASCRIPT_MODEL:
- return JavaPluginImages.DESC_OBJS_JAVA_MODEL;
-
- default:
- // ignore. Must be a new, yet unknown Java element
- // give an advanced IWorkbenchAdapter the chance
- IWorkbenchAdapter wbAdapter= (IWorkbenchAdapter) element.getAdapter(IWorkbenchAdapter.class);
- if (wbAdapter != null && !(wbAdapter instanceof JavaWorkbenchAdapter)) { // avoid recursion
- ImageDescriptor imageDescriptor= wbAdapter.getImageDescriptor(element);
- if (imageDescriptor != null) {
- return imageDescriptor;
- }
- }
- return JavaPluginImages.DESC_OBJS_GHOST;
- }
-
- } catch (JavaScriptModelException e) {
- if (e.isDoesNotExist())
- return JavaPluginImages.DESC_OBJS_UNKNOWN;
- JavaScriptPlugin.log(e);
- return JavaPluginImages.DESC_OBJS_GHOST;
- }
- }
-
-// private static boolean isDefaultFlag(int flags) {
-// return !Flags.isPublic(flags) && !Flags.isProtected(flags) && !Flags.isPrivate(flags);
-// }
-//
- protected ImageDescriptor getPackageFragmentIcon(IJavaScriptElement element, int renderFlags) throws JavaScriptModelException {
-// IPackageFragment fragment= (IPackageFragment)element;
-// boolean containsJavaElements= false;
-// try {
-// containsJavaElements= fragment.hasChildren();
-// } catch(JavaScriptModelException e) {
-// // assuming no children;
-// }
-// if(!containsJavaElements && (fragment.getNonJavaResources().length > 0))
-// return JavaPluginImages.DESC_OBJS_EMPTY_PACKAGE_RESOURCES;
-// else if (!containsJavaElements)
-// return JavaPluginImages.DESC_OBJS_EMPTY_PACKAGE;
- return JavaPluginImages.DESC_OBJS_PACKAGE;
- }
-
- public void dispose() {
- }
-
- // ---- Methods to compute the adornments flags ---------------------------------
-
- private int computeJavaAdornmentFlags(IJavaScriptElement element, int renderFlags) {
- int flags= 0;
- if (showOverlayIcons(renderFlags) && element instanceof IMember) {
- try {
- IMember member= (IMember) element;
-
- if (element.getElementType() == IJavaScriptElement.METHOD && ((IFunction)element).isConstructor())
- flags |= JavaScriptElementImageDescriptor.CONSTRUCTOR;
-
- int modifiers= member.getFlags();
- if (Flags.isAbstract(modifiers) && confirmAbstract(member))
- flags |= JavaScriptElementImageDescriptor.ABSTRACT;
- if (Flags.isStatic(modifiers))
- flags |= JavaScriptElementImageDescriptor.STATIC;
-
- if (Flags.isDeprecated(modifiers))
- flags |= JavaScriptElementImageDescriptor.DEPRECATED;
- } catch (JavaScriptModelException e) {
- // do nothing. Can't compute runnable adornment or get flags
- }
- }
- return flags;
- }
-
- private static boolean confirmAbstract(IMember element) throws JavaScriptModelException {
- // never show the abstract symbol on interfaces or members in interfaces
- if (element.getElementType() == IJavaScriptElement.TYPE) {
- return true;
- }
- return true;
- }
-
- public static ImageDescriptor getMethodImageDescriptor(boolean isInInterfaceOrAnnotation, int flags) {
- if (Flags.isPublic(flags) || isInInterfaceOrAnnotation)
- return JavaPluginImages.DESC_MISC_PUBLIC;
- if (Flags.isProtected(flags))
- return JavaPluginImages.DESC_MISC_PROTECTED;
- if (Flags.isPrivate(flags))
- return JavaPluginImages.DESC_MISC_PRIVATE;
-
- return JavaPluginImages.DESC_MISC_DEFAULT;
- }
-
- public static ImageDescriptor getFieldImageDescriptor(boolean isInInterfaceOrAnnotation, int flags) {
- if (Flags.isPublic(flags) || isInInterfaceOrAnnotation)
- return JavaPluginImages.DESC_FIELD_PUBLIC;
- if (Flags.isProtected(flags))
- return JavaPluginImages.DESC_FIELD_PROTECTED;
- if (Flags.isPrivate(flags))
- return JavaPluginImages.DESC_FIELD_PRIVATE;
-
- return JavaPluginImages.DESC_FIELD_DEFAULT;
- }
-
- public static ImageDescriptor getTypeImageDescriptor(boolean isInner, boolean isInInterfaceOrAnnotation, int flags, boolean useLightIcons) {
- if (useLightIcons) {
- return JavaPluginImages.DESC_OBJS_CLASSALT;
- }
- if (isInner) {
- return getInnerClassImageDescriptor(isInInterfaceOrAnnotation, flags);
- }
- return getClassImageDescriptor(flags);
-
- }
-
-
- public static Image getDecoratedImage(ImageDescriptor baseImage, int adornments, Point size) {
- return JavaScriptPlugin.getImageDescriptorRegistry().get(new JavaScriptElementImageDescriptor(baseImage, adornments, size));
- }
-
-
- private static ImageDescriptor getClassImageDescriptor(int flags) {
- if (Flags.isPublic(flags) || Flags.isPrivate(flags))
- return JavaPluginImages.DESC_OBJS_CLASS;
- else
- return JavaPluginImages.DESC_OBJS_CLASS_DEFAULT;
- }
-
- private static ImageDescriptor getInnerClassImageDescriptor(boolean isInInterfaceOrAnnotation, int flags) {
- if (Flags.isPublic(flags) || isInInterfaceOrAnnotation)
- return JavaPluginImages.DESC_OBJS_INNER_CLASS_PUBLIC;
- else if (Flags.isPrivate(flags))
- return JavaPluginImages.DESC_OBJS_INNER_CLASS_PRIVATE;
- else
- return JavaPluginImages.DESC_OBJS_INNER_CLASS_DEFAULT;
- }
-}
diff --git a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/JavaUILabelProvider.java b/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/JavaUILabelProvider.java
deleted file mode 100644
index ff6e8340..00000000
--- a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/JavaUILabelProvider.java
+++ /dev/null
@@ -1,278 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.internal.ui.viewsupport;
-
-import java.util.ArrayList;
-
-import org.eclipse.core.resources.IStorage;
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.core.runtime.SafeRunner;
-import org.eclipse.jface.util.SafeRunnable;
-import org.eclipse.jface.viewers.IColorProvider;
-import org.eclipse.jface.viewers.ILabelDecorator;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.jface.viewers.LabelProviderChangedEvent;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.jsdt.ui.JavaScriptElementLabels;
-
-public class JavaUILabelProvider implements ILabelProvider, IColorProvider, IRichLabelProvider {
-
- protected ListenerList fListeners = new ListenerList();
-
- protected JavaElementImageProvider fImageLabelProvider;
- protected StorageLabelProvider fStorageLabelProvider;
-
- private ArrayList fLabelDecorators;
-
- private int fImageFlags;
- private long fTextFlags;
-
- /**
- * Creates a new label provider with default flags.
- */
- public JavaUILabelProvider() {
- this(JavaScriptElementLabels.ALL_DEFAULT, JavaElementImageProvider.OVERLAY_ICONS);
- }
-
- /**
- * @param textFlags Flags defined in <code>JavaScriptElementLabels</code>.
- * @param imageFlags Flags defined in <code>JavaElementImageProvider</code>.
- */
- public JavaUILabelProvider(long textFlags, int imageFlags) {
- fImageLabelProvider= new JavaElementImageProvider();
- fLabelDecorators= null;
-
- fStorageLabelProvider= new StorageLabelProvider();
- fImageFlags= imageFlags;
- fTextFlags= textFlags;
- }
-
- /**
- * Adds a decorator to the label provider
- * @param decorator the decorator to add
- */
- 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(long 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 overwritten by super classes.
- * @return Returns a int
- */
- public final int getImageFlags() {
- return fImageFlags;
- }
-
- /**
- * Gets the text flags.
- * @return Returns a int
- */
- public final long getTextFlags() {
- return fTextFlags;
- }
-
- /**
- * Evaluates the image flags for a element.
- * Can be overwritten by super classes.
- * @param element the element to compute the image flags for
- * @return Returns a int
- */
- protected int evaluateImageFlags(Object element) {
- return getImageFlags();
- }
-
- /**
- * Evaluates the text flags for a element. Can be overwritten by super classes.
- * @param element the element to compute the text flags for
- * @return Returns a int
- */
- protected long evaluateTextFlags(Object element) {
- return getTextFlags();
- }
-
- protected Image decorateImage(Image image, Object element) {
- if (fLabelDecorators != null && image != null) {
- for (int i= 0; i < fLabelDecorators.size(); i++) {
- ILabelDecorator decorator= (ILabelDecorator) fLabelDecorators.get(i);
- image= decorator.decorateImage(image, element);
- }
- }
- return image;
- }
-
- /* (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);
- }
-
- return decorateImage(result, element);
- }
-
- protected String decorateText(String text, Object element) {
- if (fLabelDecorators != null && text.length() > 0) {
- for (int i= 0; i < fLabelDecorators.size(); i++) {
- ILabelDecorator decorator= (ILabelDecorator) fLabelDecorators.get(i);
- String decorated= decorator.decorateText(text, element);
- if (decorated != null) {
- text= decorated;
- }
- }
- }
- return text;
- }
-
-
- /* (non-Javadoc)
- * @see ILabelProvider#getText
- */
- public String getText(Object element) {
- String result= JavaScriptElementLabels.getTextLabel(element, evaluateTextFlags(element));
- if (result.length() == 0 && (element instanceof IStorage)) {
- result= fStorageLabelProvider.getText(element);
- }
- return decorateText(result, element);
- }
-
- public ColoredString getRichTextLabel(Object element) {
- ColoredString string= ColoredJavaElementLabels.getTextLabel(element, evaluateTextFlags(element) | ColoredJavaElementLabels.COLORIZE);
- if (string.length() == 0 && (element instanceof IStorage)) {
- string= new ColoredString(fStorageLabelProvider.getText(element));
- }
- String decorated= decorateText(string.getString(), element);
- if (decorated != null) {
- return ColoredJavaElementLabels.decorateColoredString(string, decorated, ColoredJavaElementLabels.DECORATIONS_STYLE);
- }
- return string;
- }
-
- /* (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);
- }
- }
- fListeners.add(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);
- }
- }
- fListeners.remove(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;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.viewers.IColorProvider#getForeground(java.lang.Object)
- */
- public Color getForeground(Object element) {
- return null;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.viewers.IColorProvider#getBackground(java.lang.Object)
- */
- public Color getBackground(Object element) {
- return null;
- }
-
- /**
- * Fires a label provider changed event to all registered listeners
- * Only listeners registered at the time this method is called are notified.
- *
- * @param event a label provider changed event
- *
- * @see ILabelProviderListener#labelProviderChanged
- */
- protected void fireLabelProviderChanged(final LabelProviderChangedEvent event) {
- Object[] listeners = fListeners.getListeners();
- for (int i = 0; i < listeners.length; ++i) {
- final ILabelProviderListener l = (ILabelProviderListener) listeners[i];
- SafeRunner.run(new SafeRunnable() {
- public void run() {
- l.labelProviderChanged(event);
- }
- });
- }
- }
-
-}
diff --git a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/JavaViewerFilter.java b/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/JavaViewerFilter.java
deleted file mode 100644
index 8478ebaf..00000000
--- a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/JavaViewerFilter.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.jsdt.internal.ui.viewsupport;
-
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerFilter;
-
-/**
- * filter with a live cycle
- */
-public abstract class JavaViewerFilter extends ViewerFilter {
-
- private int fCount= 0;
-
- /**
- * To be overridden by implement
- */
- protected abstract void initFilter();
-
- protected abstract void freeFilter();
-
- public final void filteringStart() {
- if (fCount == 0)
- initFilter();
- fCount++;
- }
-
- public final void filteringEnd() {
- fCount--;
- if (fCount == 0)
- freeFilter();
- }
-
- /*
- * Overrides method from ViewerFilter
- */
- public Object[] filter(Viewer viewer, Object parent, Object[] elements) {
- try {
- filteringStart();
- return super.filter(viewer, parent, elements);
- } finally {
- filteringEnd();
- }
- }
-
-
-}
diff --git a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/LabelProviderDisposer.java b/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/LabelProviderDisposer.java
deleted file mode 100644
index 3030628e..00000000
--- a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/LabelProviderDisposer.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.internal.ui.viewsupport;
-
-
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-
-/**
- * Helper class to manage images that should be disposed when a control is disposed
- * contol.addWidgetListener(new LabelProviderDisposer(myLabelProvider));
- */
-public class LabelProviderDisposer implements DisposeListener {
-
- private ILabelProvider fLabelProvider;
-
- public LabelProviderDisposer(ILabelProvider labelProvider) {
- fLabelProvider= labelProvider;
- }
-
- public void widgetDisposed(DisposeEvent e) {
- fLabelProvider.dispose();
- }
-}
-
-
diff --git a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/LibraryFilter.java b/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/LibraryFilter.java
deleted file mode 100644
index 35e9aaca..00000000
--- a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/LibraryFilter.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.internal.ui.viewsupport;
-
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerFilter;
-import org.eclipse.wst.jsdt.core.IPackageFragmentRoot;
-
-/**
- * Filters out all elements which libraries
- */
-public class LibraryFilter extends ViewerFilter {
-
- /**
- * Returns the result of this filter, when applied to the
- * given inputs.
- *
- * @return Returns true if element should be included in filtered set
- */
- public boolean select(Viewer viewer, Object parent, Object element) {
- if (element instanceof IPackageFragmentRoot)
- return !((IPackageFragmentRoot)element).isArchive();
- return true;
- }
-}
diff --git a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/MemberFilter.java b/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/MemberFilter.java
deleted file mode 100644
index 791464a3..00000000
--- a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/MemberFilter.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.internal.ui.viewsupport;
-
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerFilter;
-import org.eclipse.wst.jsdt.core.Flags;
-import org.eclipse.wst.jsdt.core.IJavaScriptElement;
-import org.eclipse.wst.jsdt.core.IMember;
-import org.eclipse.wst.jsdt.core.IType;
-import org.eclipse.wst.jsdt.core.JavaScriptModelException;
-
-/**
- * Filter for the methods viewer.
- * Changing a filter property does not trigger a refiltering of the viewer
- */
-public class MemberFilter extends ViewerFilter {
-
- public static final int FILTER_NONPUBLIC= 1;
- public static final int FILTER_STATIC= 2;
- public static final int FILTER_FIELDS= 4;
- public static final int FILTER_LOCALTYPES= 8;
-
- private int fFilterProperties;
-
-
- /**
- * Modifies filter and add a property to filter for
- */
- public final void addFilter(int filter) {
- fFilterProperties |= filter;
- }
- /**
- * Modifies filter and remove a property to filter for
- */
- public final void removeFilter(int filter) {
- fFilterProperties &= (-1 ^ filter);
- }
- /**
- * Tests if a property is filtered
- */
- public final boolean hasFilter(int filter) {
- return (fFilterProperties & filter) != 0;
- }
-
- /*
- * @see ViewerFilter#isFilterProperty(java.lang.Object, java.lang.String)
- */
- public boolean isFilterProperty(Object element, Object property) {
- return false;
- }
- /*
- * @see ViewerFilter#select(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
- */
- public boolean select(Viewer viewer, Object parentElement, Object element) {
- try {
- if (element instanceof IMember) {
- IMember member= (IMember) element;
- int memberType= member.getElementType();
-
- if (hasFilter(FILTER_FIELDS) && memberType == IJavaScriptElement.FIELD) {
- return false;
- }
-
- if (hasFilter(FILTER_LOCALTYPES) && memberType == IJavaScriptElement.TYPE && isLocalType((IType) member)) {
- return false;
- }
-
- if (member.getElementName().startsWith("<")) { // filter out <clinit> //$NON-NLS-1$
- return false;
- }
- int flags= member.getFlags();
- if (hasFilter(FILTER_STATIC) && (Flags.isStatic(flags)) && memberType != IJavaScriptElement.TYPE) {
- return false;
- }
- if (hasFilter(FILTER_NONPUBLIC) && !Flags.isPublic(flags) && !isTopLevelType(member)) {
- return false;
- }
- }
- } catch (JavaScriptModelException e) {
- // ignore
- }
- return true;
- }
-
- private boolean isLocalType(IType type) {
- IJavaScriptElement parent= type.getParent();
- return parent instanceof IMember && !(parent instanceof IType);
- }
-
- private boolean isTopLevelType(IMember member) {
-// IType parent= member.getDeclaringType();
-// return parent == null;
- return true;
- }
-}
diff --git a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/MemberFilterAction.java b/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/MemberFilterAction.java
deleted file mode 100644
index cc78db71..00000000
--- a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/MemberFilterAction.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.internal.ui.viewsupport;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.jsdt.ui.actions.MemberFilterActionGroup;
-
-/**
- * Action used to enable / disable method filter properties
- */
-public class MemberFilterAction extends Action {
-
- private int fFilterProperty;
- private MemberFilterActionGroup fFilterActionGroup;
-
- public MemberFilterAction(MemberFilterActionGroup actionGroup, String title, int property, String contextHelpId, boolean initValue) {
- super(title);
- fFilterActionGroup= actionGroup;
- fFilterProperty= property;
-
- PlatformUI.getWorkbench().getHelpSystem().setHelp(this, contextHelpId);
-
- setChecked(initValue);
- }
-
- /**
- * Returns this action's filter property.
- */
- public int getFilterProperty() {
- return fFilterProperty;
- }
-
- /*
- * @see Action#actionPerformed
- */
- public void run() {
- fFilterActionGroup.setMemberFilter(fFilterProperty, isChecked());
- }
-
-}
diff --git a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/OwnerDrawSupport.java b/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/OwnerDrawSupport.java
deleted file mode 100644
index 9c6e62e9..00000000
--- a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/OwnerDrawSupport.java
+++ /dev/null
@@ -1,163 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.internal.ui.viewsupport;
-
-import java.util.Iterator;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.graphics.TextLayout;
-import org.eclipse.swt.graphics.TextStyle;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Item;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.TableItem;
-import org.eclipse.swt.widgets.TreeItem;
-
-/**
- * Adding owner draw support to a control
- */
-public abstract class OwnerDrawSupport implements Listener {
-
- private TextLayout fTextLayout;
- private final Control fControl;
-
- public OwnerDrawSupport(Control control) {
- fControl= control;
- fTextLayout= new TextLayout(control.getDisplay());
-
- control.addListener(SWT.PaintItem, this);
- control.addListener(SWT.EraseItem, this);
- control.addListener(SWT.Dispose, this);
- }
-
- /**
- * Return the colored label for the given item.
- * @param item the item to return the colored label for
- * @return the colored string
- */
- public abstract ColoredString getColoredLabel(Item item);
-
- /**
- * Return the color for the given style
- * @param foregroundColorName the name of the color
- * @param display the current display
- * @return the color
- */
- public abstract Color getColor(String foregroundColorName, Display display);
-
- /* (non-Javadoc)
- * @see org.eclipse.swt.widgets.Listener#handleEvent(org.eclipse.swt.widgets.Event)
- */
- public void handleEvent(Event event) {
- if (event.type == SWT.PaintItem) {
- performPaint(event);
- } else if (event.type == SWT.EraseItem) {
- performErase(event);
- } else if (event.type == SWT.Dispose) {
- dispose();
- }
- }
-
- private void performErase(Event event) {
- event.detail &= ~SWT.FOREGROUND;
- }
-
- private void performPaint(Event event) {
- Item item= (Item) event.item;
- GC gc= event.gc;
-
- ColoredString coloredLabel= getColoredLabel(item);
- boolean isSelected= (event.detail & SWT.SELECTED) != 0 && fControl.isFocusControl();
- if (item instanceof TreeItem) {
- TreeItem treeItem= (TreeItem) item;
- Image image = treeItem.getImage(event.index);
- if (image != null) {
- processImage(image, gc, treeItem.getImageBounds(event.index));
- }
- Rectangle textBounds= treeItem.getTextBounds(event.index);
- Font font= treeItem.getFont(event.index);
- processColoredLabel(coloredLabel, gc, textBounds, isSelected, font);
-
- Rectangle bounds= treeItem.getBounds();
- if ((event.detail & SWT.FOCUSED) != 0) {
- gc.drawFocus(bounds.x, bounds.y, bounds.width, bounds.height);
- }
- } else if (item instanceof TableItem) {
- TableItem tableItem= (TableItem) item;
- Image image = tableItem.getImage(event.index);
- if (image != null) {
- processImage(image, gc, tableItem.getImageBounds(event.index));
- }
- Rectangle textBounds= tableItem.getTextBounds(event.index);
- Font font= tableItem.getFont(event.index);
- processColoredLabel(coloredLabel, gc, textBounds, isSelected, font);
-
- Rectangle bounds= tableItem.getBounds();
- if ((event.detail & SWT.FOCUSED) != 0) {
- gc.drawFocus(bounds.x, bounds.y, bounds.width, bounds.height);
- }
- }
- }
-
- private void processImage(Image image, GC gc, Rectangle imageBounds) {
- Rectangle bounds= image.getBounds();
- int x= imageBounds.x + Math.max(0, (imageBounds.width - bounds.width) / 2);
- int y= imageBounds.y + Math.max(0, (imageBounds.height - bounds.height) / 2);
- gc.drawImage(image, x, y);
- }
-
- private void processColoredLabel(ColoredString richLabel, GC gc, Rectangle textBounds, boolean isSelected, Font font) {
- String text= richLabel.getString();
- fTextLayout.setText(text);
- fTextLayout.setFont(font);
-
- if (!isSelected) {
- // apply the styled ranges only when element is not selected
- Display display= (Display) gc.getDevice();
- Iterator ranges= richLabel.getRanges();
- while (ranges.hasNext()) {
- ColoredString.StyleRange curr= (ColoredString.StyleRange) ranges.next();
- ColoredString.Style style= curr.style;
- if (style != null) {
- Color foreground= getColor(style.getForegroundColorName(), display);
- TextStyle textStyle= new TextStyle(null, foreground, null);
- fTextLayout.setStyle(textStyle, curr.offset, curr.offset + curr.length - 1);
- }
- }
- }
-
- Rectangle bounds= fTextLayout.getBounds();
- int x= textBounds.x;
- int y = textBounds.y + Math.max(0, (textBounds.height - bounds.height) / 2);
-
- fTextLayout.draw(gc, x, y);
- fTextLayout.setText(""); // clear all ranges //$NON-NLS-1$
- }
-
- public void dispose() {
- if (fTextLayout != null) {
- fTextLayout.dispose();
- fTextLayout= null;
- }
- if (!fControl.isDisposed()) {
- fControl.removeListener(SWT.PaintItem, this);
- fControl.removeListener(SWT.EraseItem, this);
- fControl.removeListener(SWT.Dispose, this);
- }
- }
-}
diff --git a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/ProblemMarkerManager.java b/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/ProblemMarkerManager.java
deleted file mode 100644
index 5da9aaa4..00000000
--- a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/ProblemMarkerManager.java
+++ /dev/null
@@ -1,180 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.internal.ui.viewsupport;
-
-
-import java.util.HashSet;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IMarkerDelta;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceChangeEvent;
-import org.eclipse.core.resources.IResourceChangeListener;
-import org.eclipse.core.resources.IResourceDelta;
-import org.eclipse.core.resources.IResourceDeltaVisitor;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.jface.text.source.AnnotationModelEvent;
-import org.eclipse.jface.text.source.IAnnotationModel;
-import org.eclipse.jface.text.source.IAnnotationModelListener;
-import org.eclipse.jface.text.source.IAnnotationModelListenerExtension;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.wst.jsdt.internal.ui.JavaScriptPlugin;
-import org.eclipse.wst.jsdt.internal.ui.javaeditor.CompilationUnitAnnotationModelEvent;
-import org.eclipse.wst.jsdt.internal.ui.util.SWTUtil;
-
-/**
- * Listens to resource deltas and filters for marker changes of type IMarker.PROBLEM
- * Viewers showing error ticks should register as listener to
- * this type.
- */
-public class ProblemMarkerManager implements IResourceChangeListener, IAnnotationModelListener , IAnnotationModelListenerExtension {
-
- /**
- * Visitors used to look if the element change delta contains a marker change.
- */
- private static class ProjectErrorVisitor implements IResourceDeltaVisitor {
-
- private HashSet fChangedElements;
-
- public ProjectErrorVisitor(HashSet changedElements) {
- fChangedElements= changedElements;
- }
-
- public boolean visit(IResourceDelta delta) throws CoreException {
- IResource res= delta.getResource();
- if (res instanceof IProject && delta.getKind() == IResourceDelta.CHANGED) {
- IProject project= (IProject) res;
- if (!project.isAccessible()) {
- // only track open Java projects
- return false;
- }
- }
- checkInvalidate(delta, res);
- return true;
- }
-
- private void checkInvalidate(IResourceDelta delta, IResource resource) {
- int kind= delta.getKind();
- if (kind == IResourceDelta.REMOVED || kind == IResourceDelta.ADDED || (kind == IResourceDelta.CHANGED && isErrorDelta(delta))) {
- // invalidate the resource and all parents
- while (resource.getType() != IResource.ROOT && fChangedElements.add(resource)) {
- resource= resource.getParent();
- }
- }
- }
-
- private boolean isErrorDelta(IResourceDelta delta) {
- if ((delta.getFlags() & IResourceDelta.MARKERS) != 0) {
- IMarkerDelta[] markerDeltas= delta.getMarkerDeltas();
- for (int i= 0; i < markerDeltas.length; i++) {
- if (markerDeltas[i].isSubtypeOf(IMarker.PROBLEM)) {
- int kind= markerDeltas[i].getKind();
- if (kind == IResourceDelta.ADDED || kind == IResourceDelta.REMOVED)
- return true;
- int severity= markerDeltas[i].getAttribute(IMarker.SEVERITY, -1);
- int newSeverity= markerDeltas[i].getMarker().getAttribute(IMarker.SEVERITY, -1);
- if (newSeverity != severity)
- return true;
- }
- }
- }
- return false;
- }
- }
-
- private ListenerList fListeners;
-
-
- public ProblemMarkerManager() {
- fListeners= new ListenerList();
- }
-
- /*
- * @see IResourceChangeListener#resourceChanged
- */
- public void resourceChanged(IResourceChangeEvent event) {
- HashSet changedElements= new HashSet();
-
- try {
- IResourceDelta delta= event.getDelta();
- if (delta != null)
- delta.accept(new ProjectErrorVisitor(changedElements));
- } catch (CoreException e) {
- JavaScriptPlugin.log(e.getStatus());
- }
-
- if (!changedElements.isEmpty()) {
- IResource[] changes= (IResource[]) changedElements.toArray(new IResource[changedElements.size()]);
- fireChanges(changes, true);
- }
- }
-
- /* (non-Javadoc)
- * @see IAnnotationModelListener#modelChanged(IAnnotationModel)
- */
- public void modelChanged(IAnnotationModel model) {
- // no action
- }
-
- /* (non-Javadoc)
- * @see IAnnotationModelListenerExtension#modelChanged(AnnotationModelEvent)
- */
- public void modelChanged(AnnotationModelEvent event) {
- if (event instanceof CompilationUnitAnnotationModelEvent) {
- CompilationUnitAnnotationModelEvent cuEvent= (CompilationUnitAnnotationModelEvent) event;
- if (cuEvent.includesProblemMarkerAnnotationChanges()) {
- IResource[] changes= new IResource[] { cuEvent.getUnderlyingResource() };
- fireChanges(changes, false);
- }
- }
- }
-
-
- /**
- * Adds a listener for problem marker changes.
- */
- public void addListener(IProblemChangedListener listener) {
- if (fListeners.isEmpty()) {
- JavaScriptPlugin.getWorkspace().addResourceChangeListener(this);
- JavaScriptPlugin.getDefault().getCompilationUnitDocumentProvider().addGlobalAnnotationModelListener(this);
- }
- fListeners.add(listener);
- }
-
- /**
- * Removes a <code>IProblemChangedListener</code>.
- */
- public void removeListener(IProblemChangedListener listener) {
- fListeners.remove(listener);
- if (fListeners.isEmpty()) {
- JavaScriptPlugin.getWorkspace().removeResourceChangeListener(this);
- JavaScriptPlugin.getDefault().getCompilationUnitDocumentProvider().removeGlobalAnnotationModelListener(this);
- }
- }
-
- private void fireChanges(final IResource[] changes, final boolean isMarkerChange) {
- Display display= SWTUtil.getStandardDisplay();
- if (display != null && !display.isDisposed()) {
- display.asyncExec(new Runnable() {
- public void run() {
- Object[] listeners= fListeners.getListeners();
- for (int i= 0; i < listeners.length; i++) {
- IProblemChangedListener curr= (IProblemChangedListener) listeners[i];
- curr.problemsChanged(changes, isMarkerChange);
- }
- }
- });
- }
- }
-
-}
diff --git a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/ProblemTableViewer.java b/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/ProblemTableViewer.java
deleted file mode 100644
index ca7e260c..00000000
--- a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/ProblemTableViewer.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.jsdt.internal.ui.viewsupport;
-
-import java.util.ArrayList;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.jface.viewers.IBaseLabelProvider;
-import org.eclipse.jface.viewers.LabelProviderChangedEvent;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Item;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.wst.jsdt.ui.IWorkingCopyProvider;
-import org.eclipse.wst.jsdt.ui.ProblemsLabelDecorator.ProblemsLabelChangedEvent;
-
-/**
- * Extends a TableViewer to allow more performance when showing error ticks.
- * A <code>ProblemItemMapper</code> is contained that maps all items in
- * the tree to underlying resource
- */
-public class ProblemTableViewer extends TableViewer implements ResourceToItemsMapper.IContentViewerAccessor {
-
- protected ResourceToItemsMapper fResourceToItemsMapper;
-
- /**
- * Constructor for ProblemTableViewer.
- * @param parent
- */
- public ProblemTableViewer(Composite parent) {
- super(parent);
- initMapper();
- }
-
- /**
- * Constructor for ProblemTableViewer.
- * @param parent
- * @param style
- */
- public ProblemTableViewer(Composite parent, int style) {
- super(parent, style);
- initMapper();
- }
-
- /**
- * Constructor for ProblemTableViewer.
- * @param table
- */
- public ProblemTableViewer(Table table) {
- super(table);
- initMapper();
- }
-
- private void initMapper() {
- fResourceToItemsMapper= new ResourceToItemsMapper(this);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.wst.jsdt.internal.ui.viewsupport.ResourceToItemsMapper.IContentViewerAccessor#doUpdateItem(org.eclipse.swt.widgets.Widget)
- */
- public void doUpdateItem(Widget item) {
- doUpdateItem(item, item.getData(), true);
- }
-
- /*
- * @see StructuredViewer#mapElement(Object, Widget)
- */
- protected void mapElement(Object element, Widget item) {
- super.mapElement(element, item);
- if (item instanceof Item) {
- fResourceToItemsMapper.addToMap(element, (Item) item);
- }
- }
-
- /*
- * @see StructuredViewer#unmapElement(Object, Widget)
- */
- protected void unmapElement(Object element, Widget item) {
- if (item instanceof Item) {
- fResourceToItemsMapper.removeFromMap(element, (Item) item);
- }
- super.unmapElement(element, item);
- }
-
- /*
- * @see StructuredViewer#unmapAllElements()
- */
- protected void unmapAllElements() {
- fResourceToItemsMapper.clearMap();
- super.unmapAllElements();
- }
-
- /*
- * @see ContentViewer#handleLabelProviderChanged(LabelProviderChangedEvent)
- */
- protected void handleLabelProviderChanged(LabelProviderChangedEvent event) {
- if (event instanceof ProblemsLabelChangedEvent) {
- ProblemsLabelChangedEvent e= (ProblemsLabelChangedEvent) event;
- if (!e.isMarkerChange() && canIgnoreChangesFromAnnotionModel()) {
- return;
- }
- }
-
- Object[] changed= event.getElements();
- if (changed != null && !fResourceToItemsMapper.isEmpty()) {
- ArrayList others= new ArrayList(changed.length);
- for (int i= 0; i < changed.length; i++) {
- Object curr= changed[i];
- if (curr instanceof IResource) {
- fResourceToItemsMapper.resourceChanged((IResource) curr);
- } else {
- others.add(curr);
- }
- }
- if (others.isEmpty()) {
- return;
- }
- event= new LabelProviderChangedEvent((IBaseLabelProvider) event.getSource(), others.toArray());
- }
- super.handleLabelProviderChanged(event);
- }
-
- /**
- * Answers whether this viewer can ignore label provider changes resulting from
- * marker changes in annotation models
- */
- private boolean canIgnoreChangesFromAnnotionModel() {
- Object contentProvider= getContentProvider();
- return contentProvider instanceof IWorkingCopyProvider && !((IWorkingCopyProvider)contentProvider).providesWorkingCopies();
- }
-}
diff --git a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/ProblemTreeViewer.java b/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/ProblemTreeViewer.java
deleted file mode 100644
index 5a24af78..00000000
--- a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/ProblemTreeViewer.java
+++ /dev/null
@@ -1,328 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.jsdt.internal.ui.viewsupport;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.jface.viewers.IBaseLabelProvider;
-import org.eclipse.jface.viewers.LabelProviderChangedEvent;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.ViewerFilter;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Item;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.wst.jsdt.core.IMember;
-import org.eclipse.wst.jsdt.ui.IWorkingCopyProvider;
-import org.eclipse.wst.jsdt.ui.ProblemsLabelDecorator.ProblemsLabelChangedEvent;
-
-
-/**
- * Extends a TreeViewer to allow more performance when showing error ticks.
- * A <code>ProblemItemMapper</code> is contained that maps all items in
- * the tree to underlying resource
- */
-public class ProblemTreeViewer extends TreeViewer implements ResourceToItemsMapper.IContentViewerAccessor {
-
- protected ResourceToItemsMapper fResourceToItemsMapper;
-
- /*
- * @see TreeViewer#TreeViewer(Composite)
- */
- public ProblemTreeViewer(Composite parent) {
- super(parent);
- initMapper();
- }
-
- /*
- * @see TreeViewer#TreeViewer(Composite, int)
- */
- public ProblemTreeViewer(Composite parent, int style) {
- super(parent, style);
- initMapper();
- }
-
- /*
- * @see TreeViewer#TreeViewer(Tree)
- */
- public ProblemTreeViewer(Tree tree) {
- super(tree);
- initMapper();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.wst.jsdt.internal.ui.viewsupport.ResourceToItemsMapper.IContentViewerAccessor#doUpdateItem(org.eclipse.swt.widgets.Widget)
- */
- public void doUpdateItem(Widget item) {
- doUpdateItem(item, item.getData(), true);
- }
-
- private void initMapper() {
- fResourceToItemsMapper= new ResourceToItemsMapper(this);
- }
-
-
- /*
- * @see StructuredViewer#mapElement(Object, Widget)
- */
- protected void mapElement(Object element, Widget item) {
- super.mapElement(element, item);
- if (item instanceof Item) {
- fResourceToItemsMapper.addToMap(element, (Item) item);
- }
- }
-
- /*
- * @see StructuredViewer#unmapElement(Object, Widget)
- */
- protected void unmapElement(Object element, Widget item) {
- if (item instanceof Item) {
- fResourceToItemsMapper.removeFromMap(element, (Item) item);
- }
- super.unmapElement(element, item);
- }
-
- /*
- * @see StructuredViewer#unmapAllElements()
- */
- protected void unmapAllElements() {
- fResourceToItemsMapper.clearMap();
- super.unmapAllElements();
- }
-
-
- // ---------------- filter sessions ----------------------------
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.viewers.StructuredViewer#addFilter(org.eclipse.jface.viewers.ViewerFilter)
- */
- public void addFilter(ViewerFilter filter) {
- if (filter instanceof JavaViewerFilter) {
- ((JavaViewerFilter) filter).filteringStart();
- }
- super.addFilter(filter);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.viewers.StructuredViewer#removeFilter(org.eclipse.jface.viewers.ViewerFilter)
- */
- public void removeFilter(ViewerFilter filter) {
- super.removeFilter(filter);
- if (filter instanceof JavaViewerFilter) {
- ((JavaViewerFilter) filter).filteringEnd();
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.viewers.StructuredViewer#setFilters(org.eclipse.jface.viewers.ViewerFilter[])
- */
- public void setFilters(ViewerFilter[] filters) {
- ViewerFilter[] oldFilters= getFilters();
- for (int i= 0; i < filters.length; i++) {
- ViewerFilter curr= filters[i];
- if (curr instanceof JavaViewerFilter && !findAndRemove(oldFilters, curr)) {
- ((JavaViewerFilter) curr).filteringStart();
- }
- }
- endFilterSessions(oldFilters);
- super.setFilters(filters);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.viewers.StructuredViewer#resetFilters()
- */
- public void resetFilters() {
- endFilterSessions(getFilters());
- super.resetFilters();
- }
-
- private boolean findAndRemove(ViewerFilter[] filters, ViewerFilter filter) {
- for (int i= 0; i < filters.length; i++) {
- if (filters[i] == filter) {
- filters[i]= null;
- return true;
- }
- }
- return false;
- }
-
- private void endFilterSessions(ViewerFilter[] filters) {
- for (int i= 0; i < filters.length; i++) {
- ViewerFilter curr= filters[i];
- if (curr instanceof JavaViewerFilter) {
- ((JavaViewerFilter) curr).filteringEnd();
- }
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.viewers.StructuredViewer#handleDispose(org.eclipse.swt.events.DisposeEvent)
- */
- protected void handleDispose(DisposeEvent event) {
- endFilterSessions(getFilters());
- super.handleDispose(event);
- }
-
-
- /*
- * @see ContentViewer#handleLabelProviderChanged(LabelProviderChangedEvent)
- */
- protected void handleLabelProviderChanged(LabelProviderChangedEvent event) {
- if (event instanceof ProblemsLabelChangedEvent) {
- ProblemsLabelChangedEvent e= (ProblemsLabelChangedEvent) event;
- if (!e.isMarkerChange() && canIgnoreChangesFromAnnotionModel()) {
- return;
- }
- }
- Object[] changed= addAditionalProblemParents(event.getElements());
-
- if (changed != null && !fResourceToItemsMapper.isEmpty()) {
- ArrayList others= new ArrayList();
- for (int i= 0; i < changed.length; i++) {
- Object curr= changed[i];
- if (curr instanceof IResource) {
- fResourceToItemsMapper.resourceChanged((IResource) curr);
- } else {
- others.add(curr);
- }
- }
- if (others.isEmpty()) {
- return;
- }
- event= new LabelProviderChangedEvent((IBaseLabelProvider) event.getSource(), others.toArray());
- } else {
- // we have modified the list of changed elements via add additional parents.
- if (event.getElements() != changed)
- event= new LabelProviderChangedEvent((IBaseLabelProvider) event.getSource(), changed);
- }
- super.handleLabelProviderChanged(event);
- }
-
- /**
- * Answers whether this viewer can ignore label provider changes resulting from
- * marker changes in annotation models
- * @return return <code>true</code> if annotation model marker changes can be ignored
- */
- private boolean canIgnoreChangesFromAnnotionModel() {
- Object contentProvider= getContentProvider();
- return contentProvider instanceof IWorkingCopyProvider && !((IWorkingCopyProvider)contentProvider).providesWorkingCopies();
- }
-
-
- /**
- * Decides if {@link #isExpandable(Object)} should also test filters. The default behaviour is to
- * do this only for IMembers. Implementors can replace this behaviour.
- * @param parent the given element
- * @return returns if if {@link #isExpandable(Object)} should also test filters for the given element.
- */
- protected boolean evaluateExpandableWithFilters(Object parent) {
- return parent instanceof IMember;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.viewers.AbstractTreeViewer#isExpandable(java.lang.Object)
- */
- public boolean isExpandable(Object parent) {
- if (hasFilters() && evaluateExpandableWithFilters(parent)) {
- // workaround for 65762
- return hasFilteredChildren(parent);
- }
- return super.isExpandable(parent);
- }
-
- protected final boolean hasFilteredChildren(Object parent) {
- Object[] rawChildren= getRawChildren(parent);
- return containsNonFiltered(rawChildren, parent);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.viewers.AbstractTreeViewer#getFilteredChildren(java.lang.Object)
- */
- protected final Object[] getFilteredChildren(Object parent) {
- return filter(getRawChildren(parent), parent);
- }
-
- private Object[] filter(Object[] elements, Object parent) {
- if (!hasFilters() || elements.length == 0) {
- return elements;
- }
- List list= new ArrayList(elements.length);
- ViewerFilter[] filters = getFilters();
- for (int i = 0; i < elements.length; i++) {
- Object object = elements[i];
- if (!isFiltered(object, parent, filters)) {
- list.add(object);
- }
- }
- return list.toArray();
- }
-
- private boolean containsNonFiltered(Object[] elements, Object parent) {
- if (elements.length == 0) {
- return false;
- }
- if (!hasFilters()) {
- return true;
- }
- ViewerFilter[] filters = getFilters();
- for (int i = 0; i < elements.length; i++) {
- Object object = elements[i];
- if (!isFiltered(object, parent, filters)) {
- return true;
- }
- }
- return false;
- }
-
- /**
- * All element filter tests must go through this method.
- * Can be overridden by subclasses.
- *
- * @param object the object to filter
- * @param parent the parent
- * @param filters the filters to apply
- * @return true if the element is filtered
- */
- protected boolean isFiltered(Object object, Object parent, ViewerFilter[] filters) {
- for (int i = 0; i < filters.length; i++) {
- ViewerFilter filter = filters[i];
- if (!filter.select(this, parent, object))
- return true;
- }
- return false;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.viewers.StructuredViewer#filter(java.lang.Object[])
- */
- protected final Object[] filter(Object[] elements) {
- return filter(elements, getRoot());
- }
-
- protected Object[] addAditionalProblemParents(Object[] elements) {
- return elements;
- }
-
- /**
- * Public method to test if a element is filtered by the views active filters
- * @param object the element to test for
- * @param parent the parent element
- * @return return <code>true if the element is filtered</code>
- */
- public boolean isFiltered(Object object, Object parent) {
- return isFiltered(object, parent, getFilters());
- }
-}
-
diff --git a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/ProjectTemplateStore.java b/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/ProjectTemplateStore.java
deleted file mode 100644
index b015bef8..00000000
--- a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/ProjectTemplateStore.java
+++ /dev/null
@@ -1,172 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.internal.ui.viewsupport;
-
-import java.io.IOException;
-import java.io.Reader;
-import java.io.StringReader;
-import java.io.StringWriter;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ProjectScope;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.text.templates.Template;
-import org.eclipse.jface.text.templates.persistence.TemplatePersistenceData;
-import org.eclipse.jface.text.templates.persistence.TemplateReaderWriter;
-import org.eclipse.jface.text.templates.persistence.TemplateStore;
-import org.eclipse.ui.preferences.ScopedPreferenceStore;
-import org.eclipse.wst.jsdt.internal.ui.JavaScriptPlugin;
-import org.eclipse.wst.jsdt.ui.JavaScriptUI;
-
-/**
- *
- */
-public final class ProjectTemplateStore {
-
- private static final String KEY= "org.eclipse.wst.jsdt.ui.text.custom_code_templates"; //$NON-NLS-1$
-
- private final TemplateStore fInstanceStore;
- private final TemplateStore fProjectStore;
-
- public ProjectTemplateStore(IProject project) {
- fInstanceStore= JavaScriptPlugin.getDefault().getCodeTemplateStore();
- if (project == null) {
- fProjectStore= null;
- } else {
- final ScopedPreferenceStore projectSettings= new ScopedPreferenceStore(new ProjectScope(project), JavaScriptUI.ID_PLUGIN);
- fProjectStore= new TemplateStore(projectSettings, KEY) {
- /*
- * Make sure we keep the id of added code templates - add removes
- * it in the usual add() method
- */
- public void add(TemplatePersistenceData data) {
- internalAdd(data);
- }
-
- public void save() throws IOException {
-
- StringWriter output= new StringWriter();
- TemplateReaderWriter writer= new TemplateReaderWriter();
- writer.save(getTemplateData(false), output);
-
- projectSettings.setValue(KEY, output.toString());
- projectSettings.save();
- }
- };
- }
- }
-
- public static boolean hasProjectSpecificTempates(IProject project) {
- String pref= new ProjectScope(project).getNode(JavaScriptUI.ID_PLUGIN).get(KEY, null);
- if (pref != null && pref.trim().length() > 0) {
- Reader input= new StringReader(pref);
- TemplateReaderWriter reader= new TemplateReaderWriter();
- TemplatePersistenceData[] datas;
- try {
- datas= reader.read(input);
- return datas.length > 0;
- } catch (IOException e) {
- // ignore
- }
- }
- return false;
- }
-
-
- public TemplatePersistenceData[] getTemplateData() {
- if (fProjectStore != null) {
- return fProjectStore.getTemplateData(true);
- } else {
- return fInstanceStore.getTemplateData(true);
- }
- }
-
- public Template findTemplateById(String id) {
- Template template= null;
- if (fProjectStore != null)
- template= fProjectStore.findTemplateById(id);
- if (template == null)
- template= fInstanceStore.findTemplateById(id);
-
- return template;
- }
-
- public void load() throws IOException {
- if (fProjectStore != null) {
- fProjectStore.load();
-
- Set datas= new HashSet();
- TemplatePersistenceData[] data= fProjectStore.getTemplateData(false);
- for (int i= 0; i < data.length; i++) {
- datas.add(data[i].getId());
- }
-
- data= fInstanceStore.getTemplateData(false);
- for (int i= 0; i < data.length; i++) {
- TemplatePersistenceData orig= data[i];
- if (!datas.contains(orig.getId())) {
- TemplatePersistenceData copy= new TemplatePersistenceData(new Template(orig.getTemplate()), orig.isEnabled(), orig.getId());
- fProjectStore.add(copy);
- copy.setDeleted(true);
- }
- }
- }
- }
-
- public boolean isProjectSpecific(String id) {
- if (id == null) {
- return false;
- }
-
- if (fProjectStore == null)
- return false;
-
- return fProjectStore.findTemplateById(id) != null;
- }
-
-
- public void setProjectSpecific(String id, boolean projectSpecific) {
- Assert.isNotNull(fProjectStore);
-
- TemplatePersistenceData data= fProjectStore.getTemplateData(id);
- if (data == null) {
- return; // does not exist
- } else {
- data.setDeleted(!projectSpecific);
- }
- }
-
- public void restoreDefaults() {
- if (fProjectStore == null) {
- fInstanceStore.restoreDefaults();
- } else {
- fProjectStore.restoreDefaults();
- }
- }
-
- public void save() throws IOException {
- if (fProjectStore == null) {
- fInstanceStore.save();
- } else {
- fProjectStore.save();
- }
- }
-
- public void revertChanges() throws IOException {
- if (fProjectStore != null) {
- // nothing to do
- } else {
- fInstanceStore.load();
- }
- }
-}
diff --git a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/ResourceToItemsMapper.java b/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/ResourceToItemsMapper.java
deleted file mode 100644
index f43f97e0..00000000
--- a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/ResourceToItemsMapper.java
+++ /dev/null
@@ -1,179 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.internal.ui.viewsupport;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Stack;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.swt.widgets.Item;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.wst.jsdt.core.IJavaScriptUnit;
-import org.eclipse.wst.jsdt.core.IJavaScriptElement;
-
-/**
- * Helper class for updating error markers and other decorators that work on resources.
- * Items are mapped to their element's underlying resource.
- * Method <code>resourceChanged</code> updates all items that are affected from the changed
- * elements.
- */
-public class ResourceToItemsMapper {
-
- public static interface IContentViewerAccessor {
- public void doUpdateItem(Widget item);
- }
-
-
- private static final int NUMBER_LIST_REUSE= 10;
-
- // map from resource to item
- private HashMap fResourceToItem;
- private Stack fReuseLists;
-
- private IContentViewerAccessor fContentViewerAccess;
-
- public ResourceToItemsMapper(IContentViewerAccessor viewer) {
- fResourceToItem= new HashMap();
- fReuseLists= new Stack();
-
- fContentViewerAccess= viewer;
- }
-
- /**
- * Must be called from the UI thread.
- * @param changedResource Changed resource
- */
- public void resourceChanged(IResource changedResource) {
- Object obj= fResourceToItem.get(changedResource);
- if (obj == null) {
- // not mapped
- } else if (obj instanceof Item) {
- updateItem((Item) obj);
- } else { // List of Items
- List list= (List) obj;
- for (int k= 0; k < list.size(); k++) {
- updateItem((Item) list.get(k));
- }
- }
- }
-
- private void updateItem(Item item) {
- if (!item.isDisposed()) {
- fContentViewerAccess.doUpdateItem(item);
- }
- }
-
- /**
- * Adds a new item to the map.
- * @param element Element to map
- * @param item The item used for the element
- */
- public void addToMap(Object element, Item item) {
- IResource resource= getCorrespondingResource(element);
- if (resource != null) {
- Object existingMapping= fResourceToItem.get(resource);
- if (existingMapping == null) {
- fResourceToItem.put(resource, item);
- } else if (existingMapping instanceof Item) {
- if (existingMapping != item) {
- List list= getNewList();
- list.add(existingMapping);
- list.add(item);
- fResourceToItem.put(resource, list);
- }
- } else { // List
- List list= (List) existingMapping;
- if (!list.contains(item)) {
- list.add(item);
- }
- }
- }
- }
-
- /**
- * Removes an element from the map.
- * @param element The data element
- * @param item The table or tree item
- */
- public void removeFromMap(Object element, Item item) {
- IResource resource= getCorrespondingResource(element);
- if (resource != null) {
- Object existingMapping= fResourceToItem.get(resource);
- if (existingMapping == null) {
- return;
- } else if (existingMapping instanceof Item) {
- fResourceToItem.remove(resource);
- } else { // List
- List list= (List) existingMapping;
- list.remove(item);
- if (list.isEmpty()) {
- fResourceToItem.remove(list);
- releaseList(list);
- }
- }
- }
- }
-
- private List getNewList() {
- if (!fReuseLists.isEmpty()) {
- return (List) fReuseLists.pop();
- }
- return new ArrayList(2);
- }
-
- private void releaseList(List list) {
- if (fReuseLists.size() < NUMBER_LIST_REUSE) {
- fReuseLists.push(list);
- }
- }
-
- /**
- * Clears the map.
- */
- public void clearMap() {
- fResourceToItem.clear();
- }
-
- /**
- * Tests if the map is empty
- * @return Returns if there are mappings
- */
- public boolean isEmpty() {
- return fResourceToItem.isEmpty();
- }
-
- /**
- * Method that decides which elements can have error markers
- * Returns null if an element can not have error markers.
- * @param element The input element
- * @return Returns the corresponding resource or null
- */
- private static IResource getCorrespondingResource(Object element) {
- if (element instanceof IJavaScriptElement) {
- IJavaScriptElement elem= (IJavaScriptElement) element;
- IResource res= elem.getResource();
- if (res == null) {
- IJavaScriptUnit cu= (IJavaScriptUnit) elem.getAncestor(IJavaScriptElement.JAVASCRIPT_UNIT);
- if (cu != null) {
- // elements in compilation units are mapped to the underlying resource of the original cu
- res= cu.getResource();
- }
- }
- return res;
- } else if (element instanceof IResource) {
- return (IResource) element;
- }
- return null;
- }
-
-}
diff --git a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/SelectionListenerWithASTManager.java b/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/SelectionListenerWithASTManager.java
deleted file mode 100644
index 7dfbc57a..00000000
--- a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/SelectionListenerWithASTManager.java
+++ /dev/null
@@ -1,211 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.internal.ui.viewsupport;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.text.ITextSelection;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.ui.ISelectionListener;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.texteditor.ITextEditor;
-import org.eclipse.wst.jsdt.core.IJavaScriptElement;
-import org.eclipse.wst.jsdt.core.dom.JavaScriptUnit;
-import org.eclipse.wst.jsdt.internal.ui.JavaScriptPlugin;
-import org.eclipse.wst.jsdt.internal.ui.JavaUIMessages;
-import org.eclipse.wst.jsdt.internal.ui.javaeditor.ASTProvider;
-import org.eclipse.wst.jsdt.internal.ui.javaeditor.EditorUtility;
-
-/**
- * Infrastructure to share an AST for editor post selection listeners.
- */
-public class SelectionListenerWithASTManager {
-
- private static SelectionListenerWithASTManager fgDefault;
-
- /**
- * @return Returns the default manager instance.
- */
- public static SelectionListenerWithASTManager getDefault() {
- if (fgDefault == null) {
- fgDefault= new SelectionListenerWithASTManager();
- }
- return fgDefault;
- }
-
-
- private final static class PartListenerGroup {
- private ITextEditor fPart;
- private ISelectionListener fPostSelectionListener;
- private ISelectionChangedListener fSelectionListener;
- private Job fCurrentJob;
- private ListenerList fAstListeners;
- /**
- * Lock to avoid having more than one calculateAndInform job in parallel.
- * Only jobs may synchronize on this as otherwise deadlocks are possible.
- */
- private final Object fJobLock= new Object();
-
- public PartListenerGroup(ITextEditor editorPart) {
- fPart= editorPart;
- fCurrentJob= null;
- fAstListeners= new ListenerList(ListenerList.IDENTITY);
-
- fSelectionListener= new ISelectionChangedListener() {
- public void selectionChanged(SelectionChangedEvent event) {
- ISelection selection= event.getSelection();
- if (selection instanceof ITextSelection) {
- fireSelectionChanged((ITextSelection) selection);
- }
- }
- };
-
- fPostSelectionListener= new ISelectionListener() {
- public void selectionChanged(IWorkbenchPart part, ISelection selection) {
- if (part == fPart && selection instanceof ITextSelection)
- firePostSelectionChanged((ITextSelection) selection);
- }
- };
- }
-
- public boolean isEmpty() {
- return fAstListeners.isEmpty();
- }
-
- public void install(ISelectionListenerWithAST listener) {
- if (isEmpty()) {
- fPart.getEditorSite().getPage().addPostSelectionListener(fPostSelectionListener);
- ISelectionProvider selectionProvider= fPart.getSelectionProvider();
- if (selectionProvider != null)
- selectionProvider.addSelectionChangedListener(fSelectionListener);
- }
- fAstListeners.add(listener);
- }
-
- public void uninstall(ISelectionListenerWithAST listener) {
- fAstListeners.remove(listener);
- if (isEmpty()) {
- fPart.getEditorSite().getPage().removePostSelectionListener(fPostSelectionListener);
- ISelectionProvider selectionProvider= fPart.getSelectionProvider();
- if (selectionProvider != null)
- selectionProvider.removeSelectionChangedListener(fSelectionListener);
- }
- }
-
- public void fireSelectionChanged(final ITextSelection selection) {
- if (fCurrentJob != null) {
- fCurrentJob.cancel();
- }
- }
-
- public void firePostSelectionChanged(final ITextSelection selection) {
- if (fCurrentJob != null) {
- fCurrentJob.cancel();
- }
- final IJavaScriptElement input= EditorUtility.getEditorInputJavaElement(fPart, false);
- if (input == null) {
- return;
- }
-
- fCurrentJob= new Job(JavaUIMessages.SelectionListenerWithASTManager_job_title) {
- public IStatus run(IProgressMonitor monitor) {
- if (monitor == null) {
- monitor= new NullProgressMonitor();
- }
- synchronized (fJobLock) {
- return calculateASTandInform(input, selection, monitor);
- }
- }
- };
- fCurrentJob.setPriority(Job.DECORATE);
- fCurrentJob.setSystem(true);
- fCurrentJob.schedule();
- }
-
- protected IStatus calculateASTandInform(IJavaScriptElement input, ITextSelection selection, IProgressMonitor monitor) {
- if (monitor.isCanceled()) {
- return Status.CANCEL_STATUS;
- }
- // create AST
- try {
- JavaScriptUnit astRoot= JavaScriptPlugin.getDefault().getASTProvider().getAST(input, ASTProvider.WAIT_ACTIVE_ONLY, monitor);
-
- if (astRoot != null && !monitor.isCanceled()) {
- Object[] listeners;
- synchronized (PartListenerGroup.this) {
- listeners= fAstListeners.getListeners();
- }
- for (int i= 0; i < listeners.length; i++) {
- ((ISelectionListenerWithAST) listeners[i]).selectionChanged(fPart, selection, astRoot);
- if (monitor.isCanceled()) {
- return Status.CANCEL_STATUS;
- }
- }
- return Status.OK_STATUS;
- }
- } catch (OperationCanceledException e) {
- // thrown when canceling the AST creation
- }
- return Status.CANCEL_STATUS;
- }
- }
-
-
- private Map fListenerGroups;
-
- private SelectionListenerWithASTManager() {
- fListenerGroups= new HashMap();
- }
-
- /**
- * Registers a selection listener for the given editor part.
- * @param part The editor part to listen to.
- * @param listener The listener to register.
- */
- public void addListener(ITextEditor part, ISelectionListenerWithAST listener) {
- synchronized (this) {
- PartListenerGroup partListener= (PartListenerGroup) fListenerGroups.get(part);
- if (partListener == null) {
- partListener= new PartListenerGroup(part);
- fListenerGroups.put(part, partListener);
- }
- partListener.install(listener);
- }
- }
-
- /**
- * Unregisters a selection listener.
- * @param part The editor part the listener was registered.
- * @param listener The listener to unregister.
- */
- public void removeListener(ITextEditor part, ISelectionListenerWithAST listener) {
- synchronized (this) {
- PartListenerGroup partListener= (PartListenerGroup) fListenerGroups.get(part);
- if (partListener != null) {
- partListener.uninstall(listener);
- if (partListener.isEmpty()) {
- fListenerGroups.remove(part);
- }
- }
- }
- }
-}
diff --git a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/SelectionProviderMediator.java b/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/SelectionProviderMediator.java
deleted file mode 100644
index e40a4e72..00000000
--- a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/SelectionProviderMediator.java
+++ /dev/null
@@ -1,206 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.internal.ui.viewsupport;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.jface.viewers.IPostSelectionProvider;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.swt.events.FocusEvent;
-import org.eclipse.swt.events.FocusListener;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Widget;
-
-/**
- * A selection provider for view parts with more that one viewer.
- * Tracks the focus of the viewers to provide the correct selection.
- */
-public class SelectionProviderMediator implements IPostSelectionProvider {
-
- private class InternalListener implements ISelectionChangedListener, FocusListener {
- /*
- * @see ISelectionChangedListener#selectionChanged
- */
- public void selectionChanged(SelectionChangedEvent event) {
- doSelectionChanged(event);
- }
-
- /*
- * @see FocusListener#focusGained
- */
- public void focusGained(FocusEvent e) {
- doFocusChanged(e.widget);
- }
-
- /*
- * @see FocusListener#focusLost
- */
- public void focusLost(FocusEvent e) {
- // do not reset due to focus behavior on GTK
- //fViewerInFocus= null;
- }
- }
-
- private class InternalPostSelectionListener implements ISelectionChangedListener {
- public void selectionChanged(SelectionChangedEvent event) {
- doPostSelectionChanged(event);
- }
-
- }
-
- private StructuredViewer[] fViewers;
-
- private StructuredViewer fViewerInFocus;
- private ListenerList fSelectionChangedListeners;
- private ListenerList fPostSelectionChangedListeners;
-
- /**
- * @param viewers All viewers that can provide a selection
- * @param viewerInFocus the viewer currently in focus or <code>null</code>
- */
- public SelectionProviderMediator(StructuredViewer[] viewers, StructuredViewer viewerInFocus) {
- Assert.isNotNull(viewers);
- fViewers= viewers;
- InternalListener listener= new InternalListener();
- fSelectionChangedListeners= new ListenerList();
- fPostSelectionChangedListeners= new ListenerList();
- fViewerInFocus= viewerInFocus;
-
- for (int i= 0; i < fViewers.length; i++) {
- StructuredViewer viewer= fViewers[i];
- viewer.addSelectionChangedListener(listener);
- viewer.addPostSelectionChangedListener(new InternalPostSelectionListener());
- Control control= viewer.getControl();
- control.addFocusListener(listener);
- }
- }
-
- private void doFocusChanged(Widget control) {
- for (int i= 0; i < fViewers.length; i++) {
- if (fViewers[i].getControl() == control) {
- propagateFocusChanged(fViewers[i]);
- return;
- }
- }
- }
-
- final void doPostSelectionChanged(SelectionChangedEvent event) {
- ISelectionProvider provider= event.getSelectionProvider();
- if (provider == fViewerInFocus) {
- firePostSelectionChanged();
- }
- }
-
- final void doSelectionChanged(SelectionChangedEvent event) {
- ISelectionProvider provider= event.getSelectionProvider();
- if (provider == fViewerInFocus) {
- fireSelectionChanged();
- }
- }
-
- final void propagateFocusChanged(StructuredViewer viewer) {
- if (viewer != fViewerInFocus) { // OK to compare by identity
- fViewerInFocus= viewer;
- fireSelectionChanged();
- firePostSelectionChanged();
- }
- }
-
- private void fireSelectionChanged() {
- if (fSelectionChangedListeners != null) {
- SelectionChangedEvent event= new SelectionChangedEvent(this, getSelection());
-
- Object[] listeners= fSelectionChangedListeners.getListeners();
- for (int i= 0; i < listeners.length; i++) {
- ISelectionChangedListener listener= (ISelectionChangedListener) listeners[i];
- listener.selectionChanged(event);
- }
- }
- }
-
- private void firePostSelectionChanged() {
- if (fPostSelectionChangedListeners != null) {
- SelectionChangedEvent event= new SelectionChangedEvent(this, getSelection());
-
- Object[] listeners= fPostSelectionChangedListeners.getListeners();
- for (int i= 0; i < listeners.length; i++) {
- ISelectionChangedListener listener= (ISelectionChangedListener) listeners[i];
- listener.selectionChanged(event);
- }
- }
- }
-
- /*
- * @see ISelectionProvider#addSelectionChangedListener
- */
- public void addSelectionChangedListener(ISelectionChangedListener listener) {
- fSelectionChangedListeners.add(listener);
- }
-
- /*
- * @see ISelectionProvider#removeSelectionChangedListener
- */
- public void removeSelectionChangedListener(ISelectionChangedListener listener) {
- fSelectionChangedListeners.remove(listener);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.viewers.IPostSelectionProvider#addPostSelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener)
- */
- public void addPostSelectionChangedListener(ISelectionChangedListener listener) {
- fPostSelectionChangedListeners.add(listener);
- }
-
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.viewers.IPostSelectionProvider#removePostSelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener)
- */
- public void removePostSelectionChangedListener(ISelectionChangedListener listener) {
- fPostSelectionChangedListeners.remove(listener);
- }
-
- /*
- * @see ISelectionProvider#getSelection
- */
- public ISelection getSelection() {
- if (fViewerInFocus != null) {
- return fViewerInFocus.getSelection();
- }
- return StructuredSelection.EMPTY;
- }
-
- /*
- * @see ISelectionProvider#setSelection
- */
- public void setSelection(ISelection selection) {
- if (fViewerInFocus != null) {
- fViewerInFocus.setSelection(selection);
- }
- }
-
- public void setSelection(ISelection selection, boolean reveal) {
- if (fViewerInFocus != null) {
- fViewerInFocus.setSelection(selection, reveal);
- }
- }
-
- /**
- * Returns the viewer in focus or null if no viewer has the focus
- */
- public StructuredViewer getViewerInFocus() {
- return fViewerInFocus;
- }
-}
diff --git a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/SourcePositionComparator.java b/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/SourcePositionComparator.java
deleted file mode 100644
index 0e4bf704..00000000
--- a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/SourcePositionComparator.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.internal.ui.viewsupport;
-
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerComparator;
-import org.eclipse.wst.jsdt.core.Flags;
-import org.eclipse.wst.jsdt.core.IClassFile;
-import org.eclipse.wst.jsdt.core.IJavaScriptUnit;
-import org.eclipse.wst.jsdt.core.IJavaScriptElement;
-import org.eclipse.wst.jsdt.core.IMember;
-import org.eclipse.wst.jsdt.core.ISourceRange;
-import org.eclipse.wst.jsdt.core.ISourceReference;
-import org.eclipse.wst.jsdt.core.IType;
-import org.eclipse.wst.jsdt.core.JavaScriptModelException;
-
-
-/**
- * Viewer sorter which sorts the Java elements like
- * they appear in the source.
- *
- *
- */
-public class SourcePositionComparator extends ViewerComparator {
-
- /*
- * @see org.eclipse.jface.viewers.ViewerSorter#compare(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
- */
- public int compare(Viewer viewer, Object e1, Object e2) {
- if (!(e1 instanceof ISourceReference))
- return 0;
- if (!(e2 instanceof ISourceReference))
- return 0;
-
- IJavaScriptElement parent1= ((IJavaScriptElement)e1).getParent();
- if (parent1 == null || !parent1.equals(((IJavaScriptElement)e2).getParent())) {
- IType t1= getOutermostDeclaringType(e1);
- if (t1 == null)
- return 0;
-
- IType t2= getOutermostDeclaringType(e2);
- try {
- if (!t1.equals(t2)) {
- if (t2 == null)
- return 0;
-
- if (Flags.isPublic(t1.getFlags()) && Flags.isPublic(t2.getFlags()))
- return 0;
-
- if (!t1.getPackageFragment().equals(t2.getPackageFragment()))
- return 0;
-
- IJavaScriptUnit cu1= (IJavaScriptUnit)((IJavaScriptElement)e1).getAncestor(IJavaScriptElement.JAVASCRIPT_UNIT);
- if (cu1 != null) {
- if (!cu1.equals(((IJavaScriptElement)e2).getAncestor(IJavaScriptElement.JAVASCRIPT_UNIT)))
- return 0;
- } else {
- IClassFile cf1= (IClassFile)((IJavaScriptElement)e1).getAncestor(IJavaScriptElement.CLASS_FILE);
- if (cf1 == null)
- return 0;
- IClassFile cf2= (IClassFile)((IJavaScriptElement)e2).getAncestor(IJavaScriptElement.CLASS_FILE);
- String source1= cf1.getSource();
- if (source1 != null && !source1.equals(cf2.getSource()))
- return 0;
- }
- }
- } catch (JavaScriptModelException e3) {
- return 0;
- }
- }
-
- try {
- ISourceRange sr1= ((ISourceReference)e1).getSourceRange();
- ISourceRange sr2= ((ISourceReference)e2).getSourceRange();
- if (sr1 == null || sr2 == null)
- return 0;
-
- return sr1.getOffset() - sr2.getOffset();
-
- } catch (JavaScriptModelException e) {
- return 0;
- }
- }
-
- private IType getOutermostDeclaringType(Object element) {
- if (!(element instanceof IMember))
- return null;
-
- IType declaringType;
- if (element instanceof IType)
- declaringType= (IType)element;
- else {
- declaringType= ((IMember)element).getDeclaringType();
- if (declaringType == null)
- return null;
- }
-
- IType declaringTypeDeclaringType= declaringType.getDeclaringType();
- while (declaringTypeDeclaringType != null) {
- declaringType= declaringTypeDeclaringType;
- declaringTypeDeclaringType= declaringType.getDeclaringType();
- }
- return declaringType;
- }
-}
diff --git a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/StatusBarUpdater.java b/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/StatusBarUpdater.java
deleted file mode 100644
index c68eb1cb..00000000
--- a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/StatusBarUpdater.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.internal.ui.viewsupport;
-
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jface.action.IStatusLineManager;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.ui.model.IWorkbenchAdapter;
-import org.eclipse.wst.jsdt.core.IJarEntryResource;
-import org.eclipse.wst.jsdt.core.IJavaScriptElement;
-import org.eclipse.wst.jsdt.internal.corext.util.Messages;
-import org.eclipse.wst.jsdt.internal.ui.JavaUIMessages;
-import org.eclipse.wst.jsdt.internal.ui.packageview.PackageFragmentRootContainer;
-import org.eclipse.wst.jsdt.ui.JavaScriptElementLabels;
-
-/**
- * Add the <code>StatusBarUpdater</code> to your ViewPart to have the statusbar
- * describing the selected elements.
- */
-public class StatusBarUpdater implements ISelectionChangedListener {
-
- private final long LABEL_FLAGS= JavaScriptElementLabels.DEFAULT_QUALIFIED | JavaScriptElementLabels.ROOT_POST_QUALIFIED | JavaScriptElementLabels.APPEND_ROOT_PATH |
- JavaScriptElementLabels.M_PARAMETER_TYPES | JavaScriptElementLabels.M_PARAMETER_NAMES | JavaScriptElementLabels.M_APP_RETURNTYPE | JavaScriptElementLabels.M_EXCEPTIONS |
- JavaScriptElementLabels.F_APP_TYPE_SIGNATURE | JavaScriptElementLabels.T_TYPE_PARAMETERS;
-
- private IStatusLineManager fStatusLineManager;
-
- public StatusBarUpdater(IStatusLineManager statusLineManager) {
- fStatusLineManager= statusLineManager;
- }
-
- /*
- * @see ISelectionChangedListener#selectionChanged
- */
- public void selectionChanged(SelectionChangedEvent event) {
- String statusBarMessage= formatMessage(event.getSelection());
- fStatusLineManager.setMessage(statusBarMessage);
- }
-
-
- protected String formatMessage(ISelection sel) {
- if (sel instanceof IStructuredSelection && !sel.isEmpty()) {
- IStructuredSelection selection= (IStructuredSelection) sel;
-
- int nElements= selection.size();
- if (nElements > 1) {
- return Messages.format(JavaUIMessages.StatusBarUpdater_num_elements_selected, String.valueOf(nElements));
- } else {
- Object elem= selection.getFirstElement();
- if (elem instanceof IJavaScriptElement) {
- return formatJavaElementMessage((IJavaScriptElement) elem);
- } else if (elem instanceof IResource) {
- return formatResourceMessage((IResource) elem);
- } else if (elem instanceof PackageFragmentRootContainer) {
- PackageFragmentRootContainer container= (PackageFragmentRootContainer) elem;
- return container.getLabel() + JavaScriptElementLabels.CONCAT_STRING + container.getJavaProject().getElementName();
- } else if (elem instanceof IJarEntryResource) {
- IJarEntryResource jarEntryResource= (IJarEntryResource) elem;
- StringBuffer buf= new StringBuffer(jarEntryResource.getName());
- buf.append(JavaScriptElementLabels.CONCAT_STRING);
- IPath fullPath= jarEntryResource.getFullPath();
- if (fullPath.segmentCount() > 1) {
- buf.append(fullPath.removeLastSegments(1).makeRelative());
- buf.append(JavaScriptElementLabels.CONCAT_STRING);
- }
- JavaScriptElementLabels.getPackageFragmentRootLabel(jarEntryResource.getPackageFragmentRoot(), JavaScriptElementLabels.ROOT_POST_QUALIFIED, buf);
- return buf.toString();
- } else if (elem instanceof IAdaptable) {
- IWorkbenchAdapter wbadapter= (IWorkbenchAdapter) ((IAdaptable)elem).getAdapter(IWorkbenchAdapter.class);
- if (wbadapter != null) {
- return wbadapter.getLabel(elem);
- }
- }
- }
- }
- return ""; //$NON-NLS-1$
- }
-
- private String formatJavaElementMessage(IJavaScriptElement element) {
- return JavaScriptElementLabels.getElementLabel(element, LABEL_FLAGS);
- }
-
- private String formatResourceMessage(IResource element) {
- IContainer parent= element.getParent();
- if (parent != null && parent.getType() != IResource.ROOT)
- return element.getName() + JavaScriptElementLabels.CONCAT_STRING + parent.getFullPath().makeRelative().toString();
- else
- return element.getName();
- }
-
-}
diff --git a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/StorageLabelProvider.java b/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/StorageLabelProvider.java
deleted file mode 100644
index a0bda001..00000000
--- a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/StorageLabelProvider.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.internal.ui.viewsupport;
-
-
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
-import org.eclipse.core.resources.IStorage;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.IEditorRegistry;
-import org.eclipse.ui.IFileEditorMapping;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.jsdt.core.IJarEntryResource;
-
-/**
- * Standard label provider for IStorage objects.
- * Use this class when you want to present IStorage objects in a viewer.
- */
-public class StorageLabelProvider extends LabelProvider {
-
- private IEditorRegistry fEditorRegistry= null;
- private Map fJarImageMap= new HashMap(10);
- private Image fDefaultImage;
-
- private IEditorRegistry getEditorRegistry() {
- if (fEditorRegistry == null)
- fEditorRegistry= PlatformUI.getWorkbench().getEditorRegistry();
- return fEditorRegistry;
- }
-
- /* (non-Javadoc)
- * @see ILabelProvider#getImage
- */
- public Image getImage(Object element) {
- if (element instanceof IStorage)
- return getImageForJarEntry((IStorage)element);
-
- return super.getImage(element);
- }
-
- /* (non-Javadoc)
- * @see ILabelProvider#getText
- */
- public String getText(Object element) {
- if (element instanceof IStorage) {
- return ((IStorage)element).getName();
- }
- return super.getText(element);
- }
-
- /* (non-Javadoc)
- *
- * @see IBaseLabelProvider#dispose
- */
- public void dispose() {
- if (fJarImageMap != null) {
- Iterator each= fJarImageMap.values().iterator();
- while (each.hasNext()) {
- Image image= (Image)each.next();
- image.dispose();
- }
- fJarImageMap= null;
- }
- fDefaultImage= null;
- }
-
- /*
- * Gets and caches an image for a JarEntryFile.
- * The image for a JarEntryFile is retrieved from the EditorRegistry.
- */
- private Image getImageForJarEntry(IStorage element) {
- if (element instanceof IJarEntryResource && !((IJarEntryResource) element).isFile()) {
- return PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_FOLDER);
- }
-
- if (fJarImageMap == null)
- return getDefaultImage();
-
- if (element == null || element.getName() == null)
- return getDefaultImage();
-
- // Try to find icon for full name
- String name= element.getName();
- Image image= (Image)fJarImageMap.get(name);
- if (image != null)
- return image;
- IFileEditorMapping[] mappings= getEditorRegistry().getFileEditorMappings();
- int i= 0;
- while (i < mappings.length) {
- if (mappings[i].getLabel().equals(name))
- break;
- i++;
- }
- String key= name;
- if (i == mappings.length) {
- // Try to find icon for extension
- IPath path= element.getFullPath();
- if (path == null)
- return getDefaultImage();
- key= path.getFileExtension();
- if (key == null)
- return getDefaultImage();
- image= (Image)fJarImageMap.get(key);
- if (image != null)
- return image;
- }
-
- // Get the image from the editor registry
- ImageDescriptor desc= getEditorRegistry().getImageDescriptor(name);
- image= desc.createImage();
-
- fJarImageMap.put(key, image);
-
- return image;
- }
-
- private Image getDefaultImage() {
- if (fDefaultImage == null)
- fDefaultImage= PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_FILE);
- return fDefaultImage;
- }
-}
diff --git a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/TreeHierarchyLayoutProblemsDecorator.java b/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/TreeHierarchyLayoutProblemsDecorator.java
deleted file mode 100644
index 1ad7a78a..00000000
--- a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/TreeHierarchyLayoutProblemsDecorator.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.internal.ui.viewsupport;
-
-import org.eclipse.wst.jsdt.core.IPackageFragment;
-import org.eclipse.wst.jsdt.internal.ui.browsing.LogicalPackage;
-import org.eclipse.wst.jsdt.ui.JavaScriptElementImageDescriptor;
-import org.eclipse.wst.jsdt.ui.ProblemsLabelDecorator;
-
-/**
- * Special problem decorator for hierarchical package layout.
- * <p>
- * It only decorates package fragments which are not covered by the
- * <code>ProblemsLabelDecorator</code>.
- * </p>
- *
- * @see org.eclipse.wst.jsdt.ui.ProblemsLabelDecorator
- *
- */
-public class TreeHierarchyLayoutProblemsDecorator extends ProblemsLabelDecorator {
-
- private boolean fIsFlatLayout;
-
- public TreeHierarchyLayoutProblemsDecorator() {
- this(false);
- }
-
- public TreeHierarchyLayoutProblemsDecorator(boolean isFlatLayout) {
- super(null);
- fIsFlatLayout= isFlatLayout;
- }
-
- protected int computePackageAdornmentFlags(IPackageFragment fragment) {
- if (!fIsFlatLayout && !fragment.isDefaultPackage()) {
- return super.computeAdornmentFlags(fragment.getResource());
- }
- return super.computeAdornmentFlags(fragment);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.wst.jsdt.ui.ProblemsLabelDecorator#computeAdornmentFlags(java.lang.Object)
- */
- protected int computeAdornmentFlags(Object element) {
- if (element instanceof IPackageFragment) {
- return computePackageAdornmentFlags((IPackageFragment) element);
- } else if (element instanceof LogicalPackage) {
- IPackageFragment[] fragments= ((LogicalPackage) element).getFragments();
- int res= 0;
- for (int i= 0; i < fragments.length; i++) {
- int flags= computePackageAdornmentFlags(fragments[i]);
- if (flags == JavaScriptElementImageDescriptor.ERROR) {
- return flags;
- } else if (flags != 0) {
- res= flags;
- }
- }
- return res;
- }
- return super.computeAdornmentFlags(element);
- }
-
- public void setIsFlatLayout(boolean state) {
- fIsFlatLayout= state;
- }
-
-}
diff --git a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/ViewHistory.java b/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/ViewHistory.java
deleted file mode 100644
index 8e0a692e..00000000
--- a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/viewsupport/ViewHistory.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.jsdt.internal.ui.viewsupport;
-
-import java.util.List;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.widgets.Shell;
-
-
-/**
- *
- */
-public abstract class ViewHistory {
-
- /**
- * Configure the history List action.
- * Clients typically want to set a text and an image.
- *
- * @param action the action
- */
- public abstract void configureHistoryListAction(IAction action);
-
- /**
- * Configure the history drop down action.
- * Clients typically want to set a tooltip and an image.
- *
- * @param action the action
- */
- public abstract void configureHistoryDropDownAction(IAction action);
-
- /**
- * @return action to clear history entries, or <code>null</code>
- */
- public abstract Action getClearAction();
-
- public abstract String getHistoryListDialogTitle();
-
- public abstract String getHistoryListDialogMessage();
-
- public abstract Shell getShell();
-
-
- /**
- * @return An unmodifiable list of history entries, can be empty. The list
- * is sorted by age, youngest first.
- */
- public abstract List getHistoryEntries();
-
- /**
- * @return the active entry from the history
- */
- public abstract Object getCurrentEntry();
-
- /**
- * @param entry the entry to activate, or <code>null</code> if none should be active
- */
- public abstract void setActiveEntry(Object entry);
-
- /**
- * @param remainingEntries all the remaining history entries, can be empty
- * @param activeEntry the entry to activate, or <code>null</code> if none should be active
- */
- public abstract void setHistoryEntries(List remainingEntries, Object activeEntry);
-
- /**
- * @param element the element to render
- * @return the image descriptor for the given element, or <code>null</code>
- */
- public abstract ImageDescriptor getImageDescriptor(Object element);
-
- /**
- * @param element the element to render
- * @return the label text for the given element
- */
- public abstract String getText(Object element);
-
- /**
- * @return a history drop down action, ready for inclusion in a view toolbar
- */
- public final IAction createHistoryDropDownAction() {
- return new HistoryDropDownAction(this);
- }
-
- public abstract void addMenuEntries(MenuManager manager);
-
- public abstract String getMaxEntriesMessage();
- public abstract int getMaxEntries();
- public abstract void setMaxEntries(int maxEntries);
-
-}

Back to the top