blob: f9b864358b859261cef4c68fef852ebd2a865d83 [file] [log] [blame]
package org.eclipse.jst.pagedesigner.properties.celleditors;
import org.eclipse.wst.css.core.internal.provisional.document.ICSSStyleDeclaration;
import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
import org.w3c.dom.Node;
/**
* Creates {@link ICSSStyleDeclaration} adapters for tags where the attribute of interest is not necessarily named "style".
* This is to be used in conjunction with the inline CSS Style Dialog only where metadata has already
* established that the tag attribute is styleable.
*/
public class CSSStyleDeclarationFactory {
private static CSSStyleDeclarationFactory instance = null;
/**
*/
private CSSStyleDeclarationFactory() {
super();
}
/**
* @param element - must not be null
* @param attrName - must not be null
* @return ICSSStyleDeclaration
*
*/
public ICSSStyleDeclaration getStyleDeclaration(final IDOMElement element, final String attrName) {
if ( element.getNodeType() != Node.ELEMENT_NODE)
return null;
final TagStyleAttrAdapter newAdapter = new TagStyleAttrAdapter(attrName);
newAdapter.setElement(element);
return (ICSSStyleDeclaration)newAdapter.getStyle();
}
/**
* @return CSSStyleDeclarationAdapterFactory singleton
*/
public synchronized static CSSStyleDeclarationFactory getInstance() {
if (instance == null)
instance = new CSSStyleDeclarationFactory();
return instance;
}
}