diff options
Diffstat (limited to 'org.eclipse.help/src/org/eclipse/help/internal/FilterableUAElement.java')
-rw-r--r-- | org.eclipse.help/src/org/eclipse/help/internal/FilterableUAElement.java | 126 |
1 files changed, 0 insertions, 126 deletions
diff --git a/org.eclipse.help/src/org/eclipse/help/internal/FilterableUAElement.java b/org.eclipse.help/src/org/eclipse/help/internal/FilterableUAElement.java deleted file mode 100644 index dc22e1791..000000000 --- a/org.eclipse.help/src/org/eclipse/help/internal/FilterableUAElement.java +++ /dev/null @@ -1,126 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006 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.help.internal; - -import java.util.HashMap; -import java.util.Map; - -import org.eclipse.help.internal.util.StringUtil; -import org.w3c.dom.Element; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; -import org.xml.sax.Attributes; - -/** - * Any model element or node in any user assistance component that is filterable. - * Filters are generally specified in the XML as a filter attribute or child element, - * where the filter has a name and value, for example: - * - * <myUAElement filter="os=win32" myattribute="..." /> - * <myUAElement filter="os!=linux" myattribute="..." /> - * - * or - * - * <myUAElement myattribute="..."> - * <filter name="os" value="linux" /> - * <filter name="ws" value="!gtk" /> - * </myUAElement> - * - * Filters must be stored in the model because they should only be processed when - * the content is about to be shown, because some of the filtering properties can change - * during a session (e.g. activities). - */ -public abstract class FilterableUAElement { - - private Map filters; - - /** - * Adds the filters specified in the given attributes. This looks for - * the "filter" attribute and parses it. - * - * @param attrs the XML attributes for the element - */ - public void addFilters(Attributes attrs) { - // add filter attribute if it exists - if (attrs != null) { - String filterAttribute = attrs.getValue("filter"); //$NON-NLS-1$ - if (filterAttribute != null) { - addFilter(filterAttribute); - } - } - } - - /** - * Adds all filters associated with the given element in the DOM. These can be defined - * as either a filter attribute on the element, or filter elements as children of this - * element. - * - * @param element the element whose filters to find - * @return a filter name to value mapping for all the filters on this element - */ - public void addFilters(Element element) { - // check for filter attribute - String filterAttribute = element.getAttribute("filter"); //$NON-NLS-1$ - if (filterAttribute.length() > 0) { - addFilter(filterAttribute); - } - // check for child filter elements - NodeList list = element.getChildNodes(); - for (int i=0;i<list.getLength();++i) { - Node node = list.item(i); - if (node.getNodeType() == Node.ELEMENT_NODE && "filter".equals(node.getNodeName())) { //$NON-NLS-1$ - Element elementNode = (Element)node; - addFilter(elementNode.getAttribute("name"), elementNode.getAttribute("value")); //$NON-NLS-1$ //$NON-NLS-2$ - } - } - } - - /** - * Adds the filter specified by the given string containing both the - * filter name and value (e.g. "os=win32"). - * - * @param nameAndValue the filter name and value - */ - public void addFilter(String nameAndValue) { - boolean isPositive = (nameAndValue.indexOf("!=") == -1); //$NON-NLS-1$ - // split at "=" or "!=" - String[] tokens = StringUtil.split(nameAndValue, "!?="); //$NON-NLS-1$ - String name = tokens[0]; - String value = tokens[1]; - if (!isPositive) { - value = '!' + value; - } - addFilter(name, value); - } - - /** - * Adds the specified filter to this element, e.g. name="os", value="win32". - * - * @param name the filter name, e.g. "os" - * @param name the filter value, e.g. "win32" - */ - public void addFilter(String name, String value) { - if (filters == null) { - filters = new HashMap(); - } - filters.put(name, value); - } - - /** - * Returns all the filters on this element. This is a mapping of - * filter names (e.g. "os") to filter values (e.g. "win32"). - * - * @return this element's filters - */ - public Map getFilters() { - return filters; - } -} |