X-Git-Url: http://secure.phpeclipse.com diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/filters/FilterDescriptor.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/filters/FilterDescriptor.java deleted file mode 100644 index 86e4830..0000000 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/filters/FilterDescriptor.java +++ /dev/null @@ -1,306 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2004 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package net.sourceforge.phpdt.internal.ui.filters; - -import java.text.Collator; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - -import net.sourceforge.phpeclipse.PHPeclipsePlugin; - -import org.eclipse.core.runtime.IConfigurationElement; -import org.eclipse.core.runtime.IExtensionRegistry; -import org.eclipse.core.runtime.ISafeRunnable; -import org.eclipse.core.runtime.Platform; -import org.eclipse.jface.util.Assert; -import org.eclipse.jface.util.SafeRunnable; -import org.eclipse.jface.viewers.ViewerFilter; -import org.eclipse.ui.IPluginContribution; -import org.eclipse.ui.activities.WorkbenchActivityHelper; - -/** - * Represents a custom filter which is provided by the - * "net.sourceforge.phpdt.ui.javaElementFilters" extension point. - * - * since 2.0 - */ -public class FilterDescriptor implements Comparable, IPluginContribution { - - private static String PATTERN_FILTER_ID_PREFIX = "_patternFilterId_"; //$NON-NLS-1$ - - private static final String EXTENSION_POINT_NAME = "phpElementFilters"; //$NON-NLS-1$ - - private static final String FILTER_TAG = "filter"; //$NON-NLS-1$ - - private static final String PATTERN_ATTRIBUTE = "pattern"; //$NON-NLS-1$ - - private static final String ID_ATTRIBUTE = "id"; //$NON-NLS-1$ - - /** - * @deprecated as of 3.0 use {@link FilterDescriptor#TARGET_ID_ATTRIBUTE} - */ - private static final String VIEW_ID_ATTRIBUTE = "viewId"; //$NON-NLS-1$ - - private static final String TARGET_ID_ATTRIBUTE = "targetId"; //$NON-NLS-1$ - - private static final String CLASS_ATTRIBUTE = "class"; //$NON-NLS-1$ - - private static final String NAME_ATTRIBUTE = "name"; //$NON-NLS-1$ - - private static final String ENABLED_ATTRIBUTE = "enabled"; //$NON-NLS-1$ - - private static final String DESCRIPTION_ATTRIBUTE = "description"; //$NON-NLS-1$ - - /** - * @deprecated use "enabled" instead - */ - private static final String SELECTED_ATTRIBUTE = "selected"; //$NON-NLS-1$ - - private static FilterDescriptor[] fgFilterDescriptors; - - private IConfigurationElement fElement; - - /** - * Returns all contributed Java element filters. - */ - public static FilterDescriptor[] getFilterDescriptors() { - if (fgFilterDescriptors == null) { - IExtensionRegistry registry = Platform.getExtensionRegistry(); - IConfigurationElement[] elements = registry - .getConfigurationElementsFor(PHPeclipsePlugin.PLUGIN_ID, - EXTENSION_POINT_NAME); - fgFilterDescriptors = createFilterDescriptors(elements); - } - return fgFilterDescriptors; - } - - /** - * Returns all Java element filters which are contributed to the given view. - */ - public static FilterDescriptor[] getFilterDescriptors(String targetId) { - FilterDescriptor[] filterDescs = FilterDescriptor - .getFilterDescriptors(); - List result = new ArrayList(filterDescs.length); - for (int i = 0; i < filterDescs.length; i++) { - String tid = filterDescs[i].getTargetId(); - if (WorkbenchActivityHelper.filterItem(filterDescs[i])) - continue; - if (tid == null || tid.equals(targetId)) - result.add(filterDescs[i]); - } - return (FilterDescriptor[]) result.toArray(new FilterDescriptor[result - .size()]); - } - - /** - * Creates a new filter descriptor for the given configuration element. - */ - private FilterDescriptor(IConfigurationElement element) { - fElement = element; - // it is either a pattern filter or a custom filter - Assert - .isTrue( - isPatternFilter() ^ isCustomFilter(), - "An extension for extension-point net.sourceforge.phpdt.ui.javaElementFilters does not specify a correct filter"); //$NON-NLS-1$ - Assert - .isNotNull( - getId(), - "An extension for extension-point net.sourceforge.phpdt.ui.javaElementFilters does not provide a valid ID"); //$NON-NLS-1$ - Assert - .isNotNull( - getName(), - "An extension for extension-point net.sourceforge.phpdt.ui.javaElementFilters does not provide a valid name"); //$NON-NLS-1$ - } - - /** - * Creates a new ViewerFilter. This method is only valid for - * viewer filters. - */ - public ViewerFilter createViewerFilter() { - if (!isCustomFilter()) - return null; - - final ViewerFilter[] result = new ViewerFilter[1]; - String message = FilterMessages.getFormattedString( - "FilterDescriptor.filterCreationError.message", getId()); //$NON-NLS-1$ - ISafeRunnable code = new SafeRunnable(message) { - /* - * @see org.eclipse.core.runtime.ISafeRunnable#run() - */ - public void run() throws Exception { - result[0] = (ViewerFilter) fElement - .createExecutableExtension(CLASS_ATTRIBUTE); - } - - }; - Platform.run(code); - return result[0]; - } - - // ---- XML Attribute accessors - // --------------------------------------------- - - /** - * Returns the filter's id. - *

- * This attribute is mandatory for custom filters. The ID for pattern - * filters is PATTERN_FILTER_ID_PREFIX plus the pattern itself. - *

- */ - public String getId() { - if (isPatternFilter()) { - String targetId = getTargetId(); - if (targetId == null) - return PATTERN_FILTER_ID_PREFIX + getPattern(); - else - return targetId + PATTERN_FILTER_ID_PREFIX + getPattern(); - } else - return fElement.getAttribute(ID_ATTRIBUTE); - } - - /** - * Returns the filter's name. - *

- * If the name of a pattern filter is missing then the pattern is used as - * its name. - *

- */ - public String getName() { - String name = fElement.getAttribute(NAME_ATTRIBUTE); - if (name == null && isPatternFilter()) - name = getPattern(); - return name; - } - - /** - * Returns the filter's pattern. - * - * @return the pattern string or null if it's not a pattern - * filter - */ - public String getPattern() { - return fElement.getAttribute(PATTERN_ATTRIBUTE); - } - - /** - * Returns the filter's viewId. - * - * @return the view ID or null if the filter is for all views - * @since 3.0 - */ - public String getTargetId() { - String tid = fElement.getAttribute(TARGET_ID_ATTRIBUTE); - - if (tid != null) - return tid; - - // Backwards compatibility code - return fElement.getAttribute(VIEW_ID_ATTRIBUTE); - - } - - /** - * Returns the filter's description. - * - * @return the description or null if no description is - * provided - */ - public String getDescription() { - String description = fElement.getAttribute(DESCRIPTION_ATTRIBUTE); - if (description == null) - description = ""; //$NON-NLS-1$ - return description; - } - - /** - * @return true if this filter is a custom filter. - */ - public boolean isPatternFilter() { - return getPattern() != null; - } - - /** - * @return true if this filter is a pattern filter. - */ - public boolean isCustomFilter() { - return fElement.getAttribute(CLASS_ATTRIBUTE) != null; - } - - /** - * Returns true if the filter is initially enabled. - * - * This attribute is optional and defaults to true. - */ - public boolean isEnabled() { - String strVal = fElement.getAttribute(ENABLED_ATTRIBUTE); - if (strVal == null) - // backward compatibility - strVal = fElement.getAttribute(SELECTED_ATTRIBUTE); - return strVal == null || Boolean.valueOf(strVal).booleanValue(); - } - - /* - * Implements a method from IComparable - */ - public int compareTo(Object o) { - if (o instanceof FilterDescriptor) - return Collator.getInstance().compare(getName(), - ((FilterDescriptor) o).getName()); - else - return Integer.MIN_VALUE; - } - - // ---- initialization --------------------------------------------------- - - /** - * Creates the filter descriptors. - */ - private static FilterDescriptor[] createFilterDescriptors( - IConfigurationElement[] elements) { - List result = new ArrayList(5); - Set descIds = new HashSet(5); - for (int i = 0; i < elements.length; i++) { - final IConfigurationElement element = elements[i]; - if (FILTER_TAG.equals(element.getName())) { - - final FilterDescriptor[] desc = new FilterDescriptor[1]; - Platform - .run(new SafeRunnable( - FilterMessages - .getString("FilterDescriptor.filterDescriptionCreationError.message")) { //$NON-NLS-1$ - public void run() throws Exception { - desc[0] = new FilterDescriptor(element); - } - }); - - if (desc[0] != null && !descIds.contains(desc[0].getId())) { - result.add(desc[0]); - descIds.add(desc[0].getId()); - } - } - } - Collections.sort(result); - return (FilterDescriptor[]) result.toArray(new FilterDescriptor[result - .size()]); - } - - public String getLocalId() { - return fElement.getAttribute(ID_ATTRIBUTE); - } - - public String getPluginId() { - return fElement.getDeclaringExtension().getNamespace(); - } - -}