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

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

Introduction

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

Prototype

short STYLE_RULE

To view the source code for org.w3c.dom.css CSSRule STYLE_RULE.

Click Source Link

Document

The rule is a CSSStyleRule.

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;/* w ww.ja  va  2s.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   ww w .  j a va2 s. 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;//from   w  w  w. ja v a 2  s. co 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);
        }//from   w  w  w . ja v  a2 s .c om
    }
    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);
        }//from  ww  w  . j a v a  2 s.  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  w  w w  .j a  va 2s  .  c  o  m*/
    }
    return null;
}