package net.nightwhistler.pageturner.view.bookview;
import android.text.SpannableStringBuilder;
import net.nightwhistler.htmlspanner.SpanStack;
import net.nightwhistler.htmlspanner.TagNodeHandler;
import net.nightwhistler.htmlspanner.css.CompiledRule;
import org.htmlcleaner.TagNode;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.List;
/**
* Created with IntelliJ IDEA.
* User: alex
* Date: 6/22/13
* Time: 12:50 PM
* To change this template use File | Settings | File Templates.
*/
public class CSSLinkHandler extends TagNodeHandler {
private static final Logger LOG = LoggerFactory.getLogger("CSSLinkHandler");
private TextLoader textLoader;
public CSSLinkHandler( TextLoader textLoader ) {
this.textLoader = textLoader;
}
public void handleTagNode(TagNode node, SpannableStringBuilder builder, int start, int end, SpanStack spanStack) {
if ( getSpanner().isAllowStyling() ) {
String type = node.getAttributeByName("type");
String href = node.getAttributeByName("href");
LOG.debug("Found link tag: type=" + type + " and href=" + href );
if ( type == null || ! type.equals("text/css") ) {
LOG.debug("Ignoring link of type " + type );
}
List<CompiledRule> rules = this.textLoader.getCSSRules(href);
for ( CompiledRule rule: rules ) {
spanStack.registerCompiledRule(rule);
}
}
}
}