/*
* GNU LESSER GENERAL PUBLIC LICENSE Copyright (C) 2006 The Lobo Project
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this library; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
* Contact info: lobochief@users.sourceforge.net
*/
/*
* Created on Nov 27, 2005
*/
package com.nvarghese.beowulf.common.cobra.html.domimpl;
// import org.cobra_grendel.html.style.CSSUtilities;
// import org.w3c.css.sac.InputSource;
import org.w3c.dom.UserDataHandler;
import org.w3c.dom.css.CSSStyleSheet;
import org.w3c.dom.html2.HTMLStyleElement;
// import com.steadystate.css.dom.CSSStyleSheetImpl;
// import com.steadystate.css.parser.CSSOMParser;
public class HTMLStyleElementImpl extends HTMLElementImpl implements HTMLStyleElement {
private CSSStyleSheet styleSheet;
public HTMLStyleElementImpl() {
super("STYLE", true);
}
public HTMLStyleElementImpl(String name) {
super(name, true);
}
private boolean disabled;
public boolean getDisabled() {
return this.disabled;
}
public void setDisabled(boolean disabled) {
this.disabled = disabled;
CSSStyleSheet sheet = this.styleSheet;
if (sheet != null) {
sheet.setDisabled(disabled);
}
}
public String getMedia() {
return this.getAttribute("media");
}
public void setMedia(String media) {
this.setAttribute("media", media);
}
public String getType() {
return this.getAttribute("type");
}
public void setType(String type) {
this.setAttribute("type", type);
}
public Object setUserData(String key, Object data, UserDataHandler handler) {
if (com.nvarghese.beowulf.common.cobra.html.parser.HtmlParser.MODIFYING_KEY.equals(key) && data != Boolean.TRUE) {
// this.processStyle();
}
/*
* else
* if(com.steadystate.css.dom.CSSStyleSheetImpl.KEY_DISABLED_CHANGED
* .equals(key)) { this.informDocumentInvalid(); }
*/
return super.setUserData(key, data, handler);
}
/*
* protected void processStyle() { this.styleSheet = null;
* if(CSSUtilities.matchesMedia(this.getMedia(),
* this.getUserAgentContext())) { String text = this.getRawInnerText(true);
* if(text != null && !"".equals(text)) { String processedText =
* CSSUtilities.preProcessCss(text); HTMLDocumentImpl doc =
* (HTMLDocumentImpl) this.getOwnerDocument(); CSSOMParser parser = new
* CSSOMParser(); String baseURI = doc.getBaseURI(); InputSource is =
* CSSUtilities.getCssInputSourceForStyleSheet(processedText, baseURI); try
* { CSSStyleSheetImpl sheet = (CSSStyleSheetImpl)
* parser.parseStyleSheet(is); sheet.setOwnerNode(this);
* sheet.setHref(baseURI); doc.addStyleSheet(sheet); this.styleSheet =
* sheet; if(sheet instanceof CSSStyleSheetImpl) { CSSStyleSheetImpl
* sheetImpl = (CSSStyleSheetImpl) sheet;
* sheetImpl.setDisabledOnly(this.disabled); } else {
* sheet.setDisabled(this.disabled); } } catch(Throwable err) {
* this.warn("Unable to parse style sheet", err); } } } }
*/
protected void appendInnerTextImpl(StringBuffer buffer) {
// nop
}
}