List of usage examples for org.w3c.dom.css CSSRule getType
public short getType();
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; }