Example usage for org.w3c.dom.css CSSRule getType

List of usage examples for org.w3c.dom.css CSSRule getType

Introduction

In this page you can find the example usage for org.w3c.dom.css CSSRule getType.

Prototype

public short getType();

Source Link

Document

The type of the rule, as defined above.

Usage

From source file:net.sf.nmedit.jtheme.store.StorageContext.java

public CSSStyleRule getStyleRule(String name) {
    CSSStyleRule rule = styleRuleMap.get(name);
    if (rule != null)
        return FakeRule.isFake(rule) ? null : rule;

    CSSStyleSheet css = getStyleSheet();
    CSSRuleList list = css.getCssRules();

    rule = null;/*from   w  ww. j  a va  2  s  .  c  o m*/

    for (int i = 0; i < list.getLength(); i++) {
        CSSRule arule = list.item(i);

        if (arule.getType() == CSSRule.STYLE_RULE) {
            CSSStyleRule srule = (CSSStyleRule) arule;

            if (name.equals(srule.getSelectorText())) {
                // we found the rule
                rule = srule;
                break;
            }
        }
    }

    if (rule == null) {
        styleRuleMap.put(name, FakeRule.instance());
        return null;
    }

    styleRuleMap.put(name, rule);
    return rule;

}

From source file:com.gargoylesoftware.htmlunit.javascript.host.Stylesheet.java

/**
 * Modifies the specified style object by adding any style rules which apply to the specified
 * element./*from   w ww.  java  2s.c om*/
 *
 * @param style the style to modify
 * @param element the element to which style rules must apply in order for them to be added to
 *        the specified style
 */
void modifyIfNecessary(final ComputedCSSStyleDeclaration style, final HTMLElement element) {
    final HtmlElement e = element.getDomNodeOrDie();
    final CSSRuleList rules = getWrappedSheet().getCssRules();
    if (rules == null) {
        return;
    }
    for (int i = 0; i < rules.getLength(); i++) {
        final CSSRule rule = rules.item(i);
        if (rule.getType() == CSSRule.STYLE_RULE) {
            final CSSStyleRuleImpl styleRule = (CSSStyleRuleImpl) rule;
            final SelectorList selectors = styleRule.getSelectors();
            for (int j = 0; j < selectors.getLength(); j++) {
                final Selector selector = selectors.item(j);
                final boolean selected = selects(selector, e);
                if (selected) {
                    final org.w3c.dom.css.CSSStyleDeclaration dec = styleRule.getStyle();
                    style.applyStyleFromSelector(dec, selector);
                }
            }
        } else if (rule.getType() == CSSRule.IMPORT_RULE) {
            final CSSImportRuleImpl importRule = (CSSImportRuleImpl) rule;
            Stylesheet sheet = imports_.get(importRule);
            if (sheet == null) {
                // TODO: surely wrong: in which case is it null and why?
                final String uri = (uri_ != null) ? uri_
                        : e.getPage().getWebResponse().getRequestSettings().getUrl().toExternalForm();
                final String href = importRule.getHref();
                final String url = UrlUtils.resolveUrl(uri, href);
                sheet = loadStylesheet(getWindow(), ownerNode_, null, url);
                imports_.put(importRule, sheet);
            }
            sheet.modifyIfNecessary(style, element);
        }
    }
}

From source file:com.gargoylesoftware.htmlunit.javascript.host.css.CSSStyleSheet.java

private void modifyIfNecessary(final ComputedCSSStyleDeclaration style, final Element element,
        final CSSRuleList rules, final Set<String> alreadyProcessing) {
    if (rules == null) {
        return;// www. ja  v a  2  s.  c o  m
    }

    final BrowserVersion browser = getBrowserVersion();
    final DomElement e = element.getDomNodeOrDie();
    final int rulesLength = rules.getLength();
    for (int i = 0; i < rulesLength; i++) {
        final CSSRule rule = rules.item(i);

        final short ruleType = rule.getType();
        if (CSSRule.STYLE_RULE == ruleType) {
            final CSSStyleRuleImpl styleRule = (CSSStyleRuleImpl) rule;
            final SelectorList selectors = styleRule.getSelectors();
            for (int j = 0; j < selectors.getLength(); j++) {
                final Selector selector = selectors.item(j);
                final boolean selected = selects(browser, selector, e);
                if (selected) {
                    final org.w3c.dom.css.CSSStyleDeclaration dec = styleRule.getStyle();
                    style.applyStyleFromSelector(dec, selector);
                }
            }
        } else if (CSSRule.IMPORT_RULE == ruleType) {
            final CSSImportRuleImpl importRule = (CSSImportRuleImpl) rule;
            final MediaList mediaList = importRule.getMedia();
            if (isActive(this, mediaList)) {
                CSSStyleSheet sheet = imports_.get(importRule);
                if (sheet == null) {
                    // TODO: surely wrong: in which case is it null and why?
                    final String uri = (uri_ != null) ? uri_ : e.getPage().getUrl().toExternalForm();
                    final String href = importRule.getHref();
                    final String url = UrlUtils.resolveUrl(uri, href);
                    sheet = loadStylesheet(getWindow(), ownerNode_, null, url);
                    imports_.put(importRule, sheet);
                }

                if (!alreadyProcessing.contains(sheet.getUri())) {
                    final CSSRuleList sheetRules = sheet.getWrappedSheet().getCssRules();
                    alreadyProcessing.add(getUri());
                    sheet.modifyIfNecessary(style, element, sheetRules, alreadyProcessing);
                }
            }
        } else if (CSSRule.MEDIA_RULE == ruleType) {
            final CSSMediaRuleImpl mediaRule = (CSSMediaRuleImpl) rule;
            final MediaList mediaList = mediaRule.getMedia();
            if (isActive(this, mediaList)) {
                final CSSRuleList internalRules = mediaRule.getCssRules();
                modifyIfNecessary(style, element, internalRules, alreadyProcessing);
            }
        }
    }
}

From source file:org.kie.workbench.common.stunner.svg.gen.translator.css.SVGStyleTranslator.java

public static StyleSheetDefinition parseStyleSheetDefinition(final String cssPath, final InputStream cssStream)
        throws TranslatorException {
    final CSSStyleSheetImpl sheet = parseStyleSheet(new InputSource(new InputStreamReader(cssStream)));
    final CSSRuleList cssRules = sheet.getCssRules();
    final StyleSheetDefinition result = new StyleSheetDefinition(cssPath);
    for (int i = 0; i < cssRules.getLength(); i++) {
        final CSSRule item = cssRules.item(i);
        if (CSSRule.STYLE_RULE == item.getType()) {
            final CSSStyleRuleImpl rule = (CSSStyleRuleImpl) item;
            final String selectorText = rule.getSelectorText();
            final CSSStyleDeclaration declaration = rule.getStyle();
            final StyleDefinition styleDefinition = parseStyleDefinition(declaration);
            result.addStyle(selectorText, styleDefinition);
        }//w w w .j ava 2 s  .  c o m
    }
    return result;
}

From source file:org.kie.workbench.common.stunner.svg.gen.translator.css.SVGStyleTranslator.java

private static StyleDefinition parseElementStyleDefinition(final String styleRaw) throws TranslatorException {
    final CSSStyleSheetImpl sheet = parseElementStyleSheet(styleRaw);
    final CSSRuleList cssRules = sheet.getCssRules();
    for (int i = 0; i < cssRules.getLength(); i++) {
        final CSSRule item = cssRules.item(i);
        if (CSSRule.STYLE_RULE == item.getType()) {
            final CSSStyleRuleImpl rule = (CSSStyleRuleImpl) item;
            final CSSStyleDeclaration declaration = rule.getStyle();
            return parseStyleDefinition(declaration);
        }//ww w.j  a  v a  2s. c o  m
    }
    return null;
}

From source file:org.kie.workbench.common.stunner.svg.gen.translator.css.SVGStyleTranslatorHelper.java

public static StyleDefinition parseStyleDefinition(final String styleRaw) throws TranslatorException {
    final CSSStyleSheetImpl sheet = parseStyleSheet(styleRaw);
    final CSSRuleList cssRules = sheet.getCssRules();
    for (int i = 0; i < cssRules.getLength(); i++) {
        final CSSRule item = cssRules.item(i);
        if (CSSRule.STYLE_RULE == item.getType()) {
            final CSSStyleRuleImpl rule = (CSSStyleRuleImpl) item;
            String selectorText = rule.getSelectorText();
            final CSSStyleDeclaration declaration = rule.getStyle();
            return parseStyleDefinition(declaration);
        }//from   www  .  ja  v a  2 s. co m
    }
    return null;
}