diff options
Diffstat (limited to 'bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/StyleAdapterFactory.java')
-rw-r--r-- | bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/StyleAdapterFactory.java | 162 |
1 files changed, 0 insertions, 162 deletions
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/StyleAdapterFactory.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/StyleAdapterFactory.java deleted file mode 100644 index 922ee62e31..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/StyleAdapterFactory.java +++ /dev/null @@ -1,162 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 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.html.core.internal.htmlcss; - - - -import org.eclipse.wst.css.core.internal.provisional.adapters.IStyleDeclarationAdapter; -import org.eclipse.wst.css.core.internal.provisional.adapters.IStyleSheetAdapter; -import org.eclipse.wst.css.core.internal.provisional.adapters.IStyleSheetListAdapter; -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter; -import org.eclipse.wst.sse.core.internal.provisional.INodeAdapterFactory; -import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier; -import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument; -import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap; -import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery; -import org.eclipse.wst.xml.core.internal.modelquery.ModelQueryUtil; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; - -/** - */ -public class StyleAdapterFactory implements INodeAdapterFactory { - - private static StyleAdapterFactory instance = null; - - // private static String CSS_CONTENT_TYPE = "text/css";//$NON-NLS-1$ - /** - */ - private StyleAdapterFactory() { - super(); - } - - /** - */ - public INodeAdapter adapt(INodeNotifier notifier) { - if (notifier == null) - return null; - - Node node = (Node) notifier; - short nodeType = node.getNodeType(); - if (nodeType == Node.DOCUMENT_NODE) { - INodeAdapter adapter = notifier.getExistingAdapter(IStyleSheetListAdapter.class); - if (adapter != null) - return adapter; - HTMLDocumentAdapter newAdapter = new HTMLDocumentAdapter(); - newAdapter.setDocument((Document) node); - notifier.addAdapter(newAdapter); - return newAdapter; - } - if (nodeType != Node.ELEMENT_NODE) - return null; - - Element element = (Element) node; - String tagName = element.getTagName(); - if (tagName.equalsIgnoreCase(HTML40Namespace.ElementName.STYLE)) { - if (!isTagAvailable(element.getOwnerDocument(), HTML40Namespace.ElementName.STYLE)) { - return null; - } - // String type = element.getAttribute(HTML40Namespace.ATTR_NAME_TYPE); - // if (type != null && ! type.equalsIgnoreCase(CSS_CONTENT_TYPE)) { - // return null; - // } - INodeAdapter adapter = notifier.getExistingAdapter(IStyleSheetAdapter.class); - if (adapter != null) - return adapter; - StyleElementAdapter newAdapter = new StyleElementAdapter(); - newAdapter.setElement(element); - notifier.addAdapter(newAdapter); - return newAdapter; - } - else if (tagName.equalsIgnoreCase(HTML40Namespace.ElementName.LINK)) { - if (!isTagAvailable(element.getOwnerDocument(), HTML40Namespace.ElementName.LINK)) { - return null; - } - INodeAdapter adapter = notifier.getExistingAdapter(IStyleSheetAdapter.class); - if (adapter != null) - return adapter; - LinkElementAdapter newAdapter = new LinkElementAdapter(); - newAdapter.setElement(element); - notifier.addAdapter(newAdapter); - return newAdapter; - } - - INodeAdapter adapter = notifier.getExistingAdapter(IStyleDeclarationAdapter.class); - if (adapter != null) - return adapter; - - if (!isAttributeAvailable(element, HTML40Namespace.ATTR_NAME_STYLE)) { - return null; - } - StyleAttrAdapter newAdapter = new StyleAttrAdapter(); - newAdapter.setElement(element); - notifier.addAdapter(newAdapter); - return newAdapter; - } - - /** - */ - public synchronized static StyleAdapterFactory getInstance() { - if (instance == null) - instance = new StyleAdapterFactory(); - return instance; - } - - /** - */ - public boolean isFactoryForType(Object type) { - return (type == IStyleSheetAdapter.class || type == IStyleDeclarationAdapter.class || type == IStyleSheetListAdapter.class); - } - - public void release() { - // default is to do nothing - } - - private static boolean isTagAvailable(Document document, String elementName) { - ModelQuery modelQuery = ModelQueryUtil.getModelQuery(document); - if (modelQuery != null) { - CMDocument cmdoc = modelQuery.getCorrespondingCMDocument(document); - CMNamedNodeMap map = cmdoc.getElements(); - if ((CMElementDeclaration) map.getNamedItem(elementName) != null) { - return true; - } - } - - return false; - } - - private static boolean isAttributeAvailable(Element element, String attrName) { - ModelQuery modelQuery = ModelQueryUtil.getModelQuery(element.getOwnerDocument()); - if (modelQuery != null) { - CMElementDeclaration decl = modelQuery.getCMElementDeclaration(element); - if (decl != null) { - CMNamedNodeMap map = decl.getAttributes(); - if ((CMAttributeDeclaration) map.getNamedItem(attrName) != null) { - return true; - } - } - } - - return false; - } - - /** - * Overriding Object's clone() method - */ - public INodeAdapterFactory copy() { - return getInstance(); - } - -} |