diff options
Diffstat (limited to 'jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/dom/DOMStyleUtil.java')
-rw-r--r-- | jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/dom/DOMStyleUtil.java | 182 |
1 files changed, 0 insertions, 182 deletions
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/dom/DOMStyleUtil.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/dom/DOMStyleUtil.java deleted file mode 100644 index 243f3729a..000000000 --- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/dom/DOMStyleUtil.java +++ /dev/null @@ -1,182 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006 Sybase, Inc. 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: - * Sybase, Inc. - initial API and implementation - *******************************************************************************/ -package org.eclipse.jst.pagedesigner.dom; - -import java.util.Iterator; -import java.util.Map; -import java.util.StringTokenizer; - -import org.eclipse.jst.jsf.core.internal.tld.CMUtil; -import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement; -import org.w3c.dom.Element; -import org.w3c.dom.css.CSSStyleDeclaration; -import org.w3c.dom.css.ElementCSSInlineStyle; - -/** - * @author mengbo - * @version 1.5 - */ -public final class DOMStyleUtil { - /** - * @param original - * @param cssProperty - * @return the inline style property - */ - public static String getInlineStyleProperty(Element original, - String cssProperty) { - if (original instanceof ElementCSSInlineStyle) { - CSSStyleDeclaration styledecl = ((ElementCSSInlineStyle) original) - .getStyle(); - if (styledecl == null) { - if (original.getAttribute("style") == null) { //$NON-NLS-1$ - return null; - } - // else mean it has style attribute. - } - - if (styledecl != null) { - return styledecl.getPropertyValue(cssProperty); - } - } - - // when we reach here, means we can't use the CSSStyleDeclaration API to - // get style, we'll take the - // pain to do the parsing and replacing. - // normally should not happen. But anyway, we need to have a fail safe - // path. - - String oldstyle = original.getAttribute("style"); //$NON-NLS-1$ - if (oldstyle == null || oldstyle.length() == 0) { - return null; - } - StringTokenizer tokenizer = new StringTokenizer(oldstyle, ";"); //$NON-NLS-1$ - - while (tokenizer.hasMoreTokens()) { - String token = tokenizer.nextToken().trim(); - if (token.length() == 0) { - continue; - } - int index = token.indexOf(':'); - if (index == -1) { - continue; - } - String propertyName = token.substring(0, index).trim(); - if (cssProperty.equals(propertyName)) { - // ok, we found the property - return token.substring(index + 1).trim(); - } - } - return null; - } - - /** - * insert style into element - * - * @param original - * @param map - */ - public static void insertStyle(Element original, Map map) { - if (original instanceof ElementCSSInlineStyle) { - CSSStyleDeclaration styledecl = ((ElementCSSInlineStyle) original) - .getStyle(); - if (styledecl == null) { - if (original.getAttribute("style") == null) { //$NON-NLS-1$ - original.setAttribute("style", ""); //$NON-NLS-1$ //$NON-NLS-2$ - styledecl = ((ElementCSSInlineStyle) original).getStyle(); - } - } - - if (styledecl != null) { - for (Iterator iter = map.keySet().iterator(); iter.hasNext();) { - String key = (String) iter.next(); - String value = (String) map.get(key); - if (value == null) { - styledecl.removeProperty(key); - } else { - styledecl.setProperty(key, value, null); - } - } - - return; - } - } - - // when we reach here, means we can't use the CSSStyleDeclaration API to - // change style, we'll take the - // pain to do the parsing and replacing. - // normally should not happen. But anyway, we need to have a fail safe - // path. - - String oldstyle = original.getAttribute("style"); //$NON-NLS-1$ - if (oldstyle == null) { - oldstyle = ""; //$NON-NLS-1$ - } - StringTokenizer tokenizer = new StringTokenizer(oldstyle, ";"); //$NON-NLS-1$ - - StringBuffer buffer = new StringBuffer(); - while (tokenizer.hasMoreTokens()) { - String token = tokenizer.nextToken().trim(); - if (token.length() == 0) { - continue; - } - int index = token.indexOf(':'); - if (index == -1) { - // wrong property? ignore. - buffer.append(token).append("; "); //$NON-NLS-1$ - continue; - } - String propertyName = token.substring(0, index).trim(); - - if (map.containsKey(propertyName)) { - String propertyValue = (String) map.remove(propertyName); - if (propertyValue == null) { - // we want to remove this css property. so don't append - // anything here - } else { - buffer.append(propertyName).append(": ").append( //$NON-NLS-1$ - propertyValue).append("; "); //$NON-NLS-1$ - } - } else { - buffer.append(token).append("; "); //$NON-NLS-1$ - } - } - // ok, we have loop through existing properties and did replacement. - // now _styleProperties only contain those new CSS properties we need to - for (Iterator iter = map.keySet().iterator(); iter.hasNext();) { - String key = (String) iter.next(); - String value = (String) map.get(key); - if (value != null) { - buffer.append(key).append(": ").append(value).append("; "); //$NON-NLS-1$ //$NON-NLS-2$ - } - } - original.setAttribute("style", buffer.toString()); //$NON-NLS-1$ - } - - /** - * @param ele - * @return true if supports the style attribute - */ - public static boolean supportStyleAttribute(IDOMElement ele) { - CMElementDeclaration decl = CMUtil.getElementDeclaration(ele); - if (decl != null && decl.getAttributes().getNamedItem("style") != null) { //$NON-NLS-1$ - return true; - } - return false; - } - - private DOMStyleUtil() - { - // util class, no external instantiation - } - -} |