@Override
 public void setDisabled(boolean disabled) {
   this.disabled = disabled;
   CSSStyleSheet sheet = this.styleSheet;
   if (sheet != null) {
     sheet.setDisabled(disabled);
   }
 }
  /** If the LINK refers to a stylesheet document, this method loads and parses it. */
  protected void processLink() {
    this.styleSheet = null;
    String rel = this.getAttribute(HtmlAttributeProperties.REL);
    if (rel != null) {
      String cleanRel = rel.trim().toLowerCase();
      boolean isStyleSheet = cleanRel.equals("stylesheet");
      boolean isAltStyleSheet = cleanRel.equals("alternate stylesheet");
      boolean isAppendixStyleSheet = cleanRel.equals("appendix stylesheet");
      if (isStyleSheet || isAltStyleSheet || isAppendixStyleSheet) {
        UserAgentContext uacontext = this.getUserAgentContext();
        if (uacontext.isExternalCSSEnabled()) {
          String media = this.getMedia();
          if (CSSUtilities.matchesMedia(media, uacontext)) {
            HTMLDocumentImpl doc = (HTMLDocumentImpl) this.getOwnerDocument();
            try {

              CSSStyleSheet sheet = CSSUtilities.parse(this.getHref(), doc);
              CSSStyleSheetImpl sheetImpl = null;
              if (sheet != null) {
                doc.addStyleSheet(sheet);
                this.styleSheet = sheet;
                if (sheet instanceof CSSStyleSheetImpl) {
                  sheetImpl = (CSSStyleSheetImpl) sheet;
                  if (isAltStyleSheet) {
                    sheetImpl.setDisabled(true);
                  } else {
                    sheetImpl.setDisabled(disabled);
                  }

                  URL baseURL = new URL(doc.getBaseURI());
                  URL scriptURL = Urls.createURL(baseURL, getHref());
                  if (scriptURL != null) sheetImpl.setHref(scriptURL.toString());
                  doc.addStyleSheet(sheetImpl);
                } else {
                  if (isAltStyleSheet) {
                    sheet.setDisabled(true);
                  } else {
                    sheet.setDisabled(this.disabled);
                  }
                  doc.addStyleSheet(sheet);
                }
              }

            } catch (MalformedURLException mfe) {
              this.warn(
                  "Will not parse CSS. URI=["
                      + this.getHref()
                      + "] with BaseURI=["
                      + doc.getBaseURI()
                      + "] does not appear to be a valid URI.");
            } catch (Throwable err) {
              this.warn("Unable to parse CSS. URI=[" + this.getHref() + "].", err);
            }
          }
        }
      }
    }
  }
  public void _testInsertText1() throws IOException {
    ICSSModel model = getModel();
    IStructuredDocument structuredDocument = model.getStructuredDocument();
    structuredDocument.set(
        FileUtil.createString(
            "src/org/eclipse/wst/css/core/tests/testfiles", "CSSFontFaceRuleTest.css"));

    CSSStyleSheet sheet = (CSSStyleSheet) model.getDocument();
    CSSRuleList ruleList = sheet.getCssRules();
    assertEquals(3, ruleList.getLength());

    CSSRule rule;
    CSSStyleDeclaration declaration;
    CSSValue value;
    CSSValueList valueList;

    // rule 1

    rule = ruleList.item(0);
    assertEquals(CSSRule.FONT_FACE_RULE, rule.getType());
    assertTrue(rule instanceof CSSFontFaceRule);

    declaration = ((CSSFontFaceRule) rule).getStyle();
    assertEquals(4, declaration.getLength());

    value = declaration.getPropertyCSSValue("font-family");
    checkPrimitiveString(value, new PrimitiveString(CSSPrimitiveValue.CSS_STRING, "Swiss 721"));

    value = declaration.getPropertyCSSValue("src");
    checkPrimitiveString(value, new PrimitiveString(CSSPrimitiveValue.CSS_URI, "swiss721blk.pfr"));

    value = declaration.getPropertyCSSValue("font-style");
    assertTrue(value instanceof CSSValueList);

    valueList = (CSSValueList) value;
    assertEquals(3, valueList.getLength());

    checkPrimitiveString(
        valueList.item(0), new PrimitiveString(CSSPrimitiveValue.CSS_IDENT, "normal"));
    checkPrimitiveString(valueList.item(1), new PrimitiveString(ICSSPrimitiveValue.CSS_COMMA, ","));
    checkPrimitiveString(
        valueList.item(2), new PrimitiveString(CSSPrimitiveValue.CSS_IDENT, "italic"));

    value = declaration.getPropertyCSSValue("font-weight");
    assertTrue(value instanceof CSSValueList);

    valueList = (CSSValueList) value;
    assertEquals(3, valueList.getLength());

    checkPrimitiveNumber(
        valueList.item(0), new PrimitiveNumber(ICSSPrimitiveValue.CSS_INTEGER, 800));
    checkPrimitiveString(valueList.item(1), new PrimitiveString(ICSSPrimitiveValue.CSS_COMMA, ","));
    checkPrimitiveNumber(
        valueList.item(2), new PrimitiveNumber(ICSSPrimitiveValue.CSS_INTEGER, 900));
  }
  /**
   * Parse CSS and create completion informations.
   *
   * @param css CSS
   */
  private void processStylesheet(String css) {
    try {
      CSSOMParser parser = new CSSOMParser();
      InputSource is = new InputSource(new StringReader(css));
      CSSStyleSheet stylesheet = parser.parseStyleSheet(is);
      CSSRuleList list = stylesheet.getCssRules();
      //			ArrayList assists = new ArrayList();
      for (int i = 0; i < list.getLength(); i++) {
        CSSRule rule = list.item(i);
        if (rule instanceof CSSStyleRule) {
          CSSStyleRule styleRule = (CSSStyleRule) rule;
          String selector = styleRule.getSelectorText();
          SelectorList selectors =
              parser.parseSelectors(new InputSource(new StringReader(selector)));
          for (int j = 0; j < selectors.getLength(); j++) {
            Selector sel = selectors.item(j);
            if (sel instanceof ConditionalSelector) {
              Condition cond = ((ConditionalSelector) sel).getCondition();
              SimpleSelector simple = ((ConditionalSelector) sel).getSimpleSelector();

              if (simple instanceof ElementSelector) {
                String tagName = ((ElementSelector) simple).getLocalName();
                if (tagName == null) {
                  tagName = "*";
                } else {
                  tagName = tagName.toLowerCase();
                }
                if (cond instanceof AttributeCondition) {
                  AttributeCondition attrCond = (AttributeCondition) cond;
                  if (rules.get(tagName) == null) {
                    List<String> classes = new ArrayList<String>();
                    classes.add(attrCond.getValue());
                    rules.put(tagName, classes);
                    //									} else {
                    //										ArrayList classes = (ArrayList)rules.get(tagName);
                    ////										classes.add(new AssistInfo(attrCond.getValue()));
                    //										classes.add(attrCond.getValue());
                  }
                }
              }
            }
          }
        }
      }
    } catch (Throwable ex) {
      // java.lang.Error: Missing return statement in function
    }
  }
 /**
  * Show style sheet.
  *
  * @param styleSheet the style sheet
  */
 private void showStyleSheet(CSSStyleSheet styleSheet) {
   StringWriter stringWriter = new StringWriter();
   PrintWriter writer = new PrintWriter(stringWriter);
   writer.println("<DL>");
   CSSRuleList ruleList = styleSheet.getCssRules();
   int length = ruleList.getLength();
   for (int i = 0; i < length; i++) {
     CSSRule rule = ruleList.item(i);
     writer.println(
         "<DT><strong>Rule: type="
             + rule.getType()
             + ",class="
             + rule.getClass().getName()
             + "</strong></DT>");
     writer.println("<DD>");
     this.writeRuleInfo(writer, rule);
     writer.println("</DD>");
   }
   writer.println("</DL>");
   writer.flush();
   String html = stringWriter.toString();
   HtmlRendererContext rcontext =
       new SimpleHtmlRendererContext(this.cssOutput, (UserAgentContext) null);
   this.cssOutput.setHtml(html, "about:css", rcontext);
 }
 /**
  * Adds the style sheet.
  *
  * @param styleSheet the style sheet
  * @throws MalformedURLException the malformed url exception
  * @throws UnsupportedEncodingException
  */
 private final void addStyleSheet(CSSStyleSheet styleSheet)
     throws MalformedURLException, UnsupportedEncodingException {
   CSSRuleList ruleList = styleSheet.getCssRules();
   int length = ruleList.getLength();
   for (int i = 0; i < length; i++) {
     CSSRule rule = ruleList.item(i);
     this.addRule(styleSheet, rule);
   }
 }
Example #7
0
 private void parseFile(String filename) throws IOException {
   Reader r = new FileReader(filename);
   InputSource is = new InputSource(r);
   CSSOMParser parser = new CSSOMParser();
   CSSStyleSheet styleSheet = parser.parseStyleSheet(is);
   CSSRuleList list = styleSheet.getCssRules();
   for (int i = 0; i < list.getLength(); i++) {
     CSSRule rule = list.item(i);
     switch (rule.getType()) {
       case CSSRule.UNKNOWN_RULE:
         throw new IOException("Unknown rule in css file");
       case CSSRule.STYLE_RULE:
         //				CSSStyleRule srule = (CSSStyleRule) rule;
         //				System.out.println(srule.getSelectorText());
         break;
       default:
         System.out.println(rule);
         break;
     }
   }
 }
  public void testInsertRule() {
    final String RULE =
        "@font-face { font-family: \"Swiss 721\"; src: url(swiss721.pfr); /* The expanded Swiss 721 */ font-stretch: expanded; }";
    CSSStyleSheet sheet = getStyleSheet();
    assertEquals(0, sheet.insertRule(RULE, 0));

    CSSRuleList ruleList = sheet.getCssRules();
    CSSRule rule = ruleList.item(0);
    assertTrue(rule instanceof CSSFontFaceRule);

    CSSStyleDeclaration declaration = ((CSSFontFaceRule) rule).getStyle();
    assertEquals(3, declaration.getLength());

    CSSValue value;
    CSSPrimitiveValue primitiveValue;

    value = declaration.getPropertyCSSValue("font-family");
    assertTrue(value instanceof CSSPrimitiveValue);

    primitiveValue = (CSSPrimitiveValue) value;
    assertEquals(CSSPrimitiveValue.CSS_STRING, primitiveValue.getPrimitiveType());
    assertEquals("Swiss 721", primitiveValue.getStringValue());

    value = declaration.getPropertyCSSValue("src");
    assertTrue(value instanceof CSSPrimitiveValue);

    primitiveValue = (CSSPrimitiveValue) value;
    assertEquals(CSSPrimitiveValue.CSS_URI, primitiveValue.getPrimitiveType());
    assertEquals("swiss721.pfr", primitiveValue.getStringValue());

    value = declaration.getPropertyCSSValue("font-stretch");
    assertTrue(value instanceof CSSPrimitiveValue);

    primitiveValue = (CSSPrimitiveValue) value;
    assertEquals(CSSPrimitiveValue.CSS_IDENT, primitiveValue.getPrimitiveType());
    assertEquals("expanded", primitiveValue.getStringValue());
  }
  public void _testInsertText3() throws IOException {
    ICSSModel model = getModel();
    IStructuredDocument structuredDocument = model.getStructuredDocument();
    structuredDocument.set(
        FileUtil.createString(
            "src/org/eclipse/wst/css/core/tests/testfiles", "CSSFontFaceRuleTest.css"));

    CSSStyleSheet sheet = (CSSStyleSheet) model.getDocument();
    CSSRuleList ruleList = sheet.getCssRules();
    assertEquals(3, ruleList.getLength());

    CSSRule rule;
    CSSStyleDeclaration declaration;
    CSSValue value;
    CSSValueList valueList;

    // rule 3

    rule = ruleList.item(2);
    assertEquals(CSSRule.FONT_FACE_RULE, rule.getType());
    assertTrue(rule instanceof CSSFontFaceRule);

    declaration = ((CSSFontFaceRule) rule).getStyle();
    assertEquals(5, declaration.getLength());

    value = declaration.getPropertyCSSValue("src");
    assertTrue(value instanceof CSSValueList);

    valueList = (CSSValueList) value;
    assertEquals(4, valueList.getLength());

    checkPrimitiveString(
        valueList.item(0), new PrimitiveString(ICSSPrimitiveValue.CSS_LOCAL, "Alabama Italic"));
    checkPrimitiveString(valueList.item(1), new PrimitiveString(ICSSPrimitiveValue.CSS_COMMA, ","));
    checkPrimitiveString(
        valueList.item(2),
        new PrimitiveString(CSSPrimitiveValue.CSS_URI, "http://www.fonts.org/A/alabama-italic"));
    checkPrimitiveString(
        valueList.item(3), new PrimitiveString(ICSSPrimitiveValue.CSS_FORMAT, "truetype"));

    value = declaration.getPropertyCSSValue("panose-1");
    assertTrue(value instanceof CSSValueList);

    valueList = (CSSValueList) value;
    assertEquals(10, valueList.getLength());

    checkPrimitiveNumber(valueList.item(0), new PrimitiveNumber(ICSSPrimitiveValue.CSS_INTEGER, 2));
    checkPrimitiveNumber(valueList.item(1), new PrimitiveNumber(ICSSPrimitiveValue.CSS_INTEGER, 4));
    checkPrimitiveNumber(valueList.item(2), new PrimitiveNumber(ICSSPrimitiveValue.CSS_INTEGER, 5));
    checkPrimitiveNumber(valueList.item(3), new PrimitiveNumber(ICSSPrimitiveValue.CSS_INTEGER, 2));
    checkPrimitiveNumber(valueList.item(4), new PrimitiveNumber(ICSSPrimitiveValue.CSS_INTEGER, 5));
    checkPrimitiveNumber(valueList.item(5), new PrimitiveNumber(ICSSPrimitiveValue.CSS_INTEGER, 4));
    checkPrimitiveNumber(valueList.item(6), new PrimitiveNumber(ICSSPrimitiveValue.CSS_INTEGER, 5));
    checkPrimitiveNumber(valueList.item(7), new PrimitiveNumber(ICSSPrimitiveValue.CSS_INTEGER, 9));
    checkPrimitiveNumber(valueList.item(8), new PrimitiveNumber(ICSSPrimitiveValue.CSS_INTEGER, 3));
    checkPrimitiveNumber(valueList.item(9), new PrimitiveNumber(ICSSPrimitiveValue.CSS_INTEGER, 3));

    value = declaration.getPropertyCSSValue("font-family");
    assertTrue(value instanceof CSSValueList);

    valueList = (CSSValueList) value;
    assertEquals(3, valueList.getLength());

    checkPrimitiveString(
        valueList.item(0), new PrimitiveString(CSSPrimitiveValue.CSS_IDENT, "Alabama"));
    checkPrimitiveString(valueList.item(1), new PrimitiveString(ICSSPrimitiveValue.CSS_COMMA, ","));
    checkPrimitiveString(
        valueList.item(2), new PrimitiveString(CSSPrimitiveValue.CSS_IDENT, "serif"));

    value = declaration.getPropertyCSSValue("font-weight");
    assertTrue(value instanceof CSSValueList);

    valueList = (CSSValueList) value;
    assertEquals(5, valueList.getLength());

    checkPrimitiveNumber(
        valueList.item(0), new PrimitiveNumber(ICSSPrimitiveValue.CSS_INTEGER, 300));
    checkPrimitiveString(valueList.item(1), new PrimitiveString(ICSSPrimitiveValue.CSS_COMMA, ","));
    checkPrimitiveNumber(
        valueList.item(2), new PrimitiveNumber(ICSSPrimitiveValue.CSS_INTEGER, 400));
    checkPrimitiveString(valueList.item(3), new PrimitiveString(ICSSPrimitiveValue.CSS_COMMA, ","));
    checkPrimitiveNumber(
        valueList.item(4), new PrimitiveNumber(ICSSPrimitiveValue.CSS_INTEGER, 500));

    value = declaration.getPropertyCSSValue("font-style");
    assertTrue(value instanceof CSSValueList);

    valueList = (CSSValueList) value;
    assertEquals(3, valueList.getLength());

    checkPrimitiveString(
        valueList.item(0), new PrimitiveString(CSSPrimitiveValue.CSS_IDENT, "italic"));
    checkPrimitiveString(valueList.item(1), new PrimitiveString(ICSSPrimitiveValue.CSS_COMMA, ","));
    checkPrimitiveString(
        valueList.item(2), new PrimitiveString(CSSPrimitiveValue.CSS_IDENT, "oblique"));
  }
  public void _testInsertText2() throws IOException {
    ICSSModel model = getModel();
    IStructuredDocument structuredDocument = model.getStructuredDocument();
    structuredDocument.set(
        FileUtil.createString(
            "src/org/eclipse/wst/css/core/tests/testfiles", "CSSFontFaceRuleTest.css"));

    CSSStyleSheet sheet = (CSSStyleSheet) model.getDocument();
    CSSRuleList ruleList = sheet.getCssRules();
    assertEquals(3, ruleList.getLength());

    CSSRule rule;
    CSSStyleDeclaration declaration;
    CSSValue value;
    CSSValueList valueList;

    // rule 2

    rule = ruleList.item(1);
    assertEquals(CSSRule.FONT_FACE_RULE, rule.getType());
    assertTrue(rule instanceof CSSFontFaceRule);

    declaration = ((CSSFontFaceRule) rule).getStyle();
    assertEquals(6, declaration.getLength());

    value = declaration.getPropertyCSSValue("src");
    assertTrue(value instanceof CSSValueList);

    valueList = (CSSValueList) value;
    assertEquals(9, valueList.getLength());

    checkPrimitiveString(
        valueList.item(0), new PrimitiveString(ICSSPrimitiveValue.CSS_LOCAL, "Palatino"));
    checkPrimitiveString(valueList.item(1), new PrimitiveString(ICSSPrimitiveValue.CSS_COMMA, ","));
    checkPrimitiveString(
        valueList.item(2), new PrimitiveString(ICSSPrimitiveValue.CSS_LOCAL, "Times New Roman"));
    checkPrimitiveString(valueList.item(3), new PrimitiveString(ICSSPrimitiveValue.CSS_COMMA, ","));
    checkPrimitiveString(
        valueList.item(4), new PrimitiveString(ICSSPrimitiveValue.CSS_LOCAL, "New York"));
    checkPrimitiveString(valueList.item(5), new PrimitiveString(ICSSPrimitiveValue.CSS_COMMA, ","));
    checkPrimitiveString(
        valueList.item(6), new PrimitiveString(ICSSPrimitiveValue.CSS_LOCAL, "Utopia"));
    checkPrimitiveString(valueList.item(7), new PrimitiveString(ICSSPrimitiveValue.CSS_COMMA, ","));
    checkPrimitiveString(
        valueList.item(8),
        new PrimitiveString(CSSPrimitiveValue.CSS_URI, "http://somewhere/free/font"));

    value = declaration.getPropertyCSSValue("font-family");
    checkPrimitiveString(value, new PrimitiveString(CSSPrimitiveValue.CSS_IDENT, "serif"));

    value = declaration.getPropertyCSSValue("font-weight");
    assertTrue(value instanceof CSSValueList);

    valueList = (CSSValueList) value;
    assertEquals(9, valueList.getLength());

    checkPrimitiveNumber(
        valueList.item(0), new PrimitiveNumber(ICSSPrimitiveValue.CSS_INTEGER, 100));
    checkPrimitiveString(valueList.item(1), new PrimitiveString(ICSSPrimitiveValue.CSS_COMMA, ","));
    checkPrimitiveNumber(
        valueList.item(2), new PrimitiveNumber(ICSSPrimitiveValue.CSS_INTEGER, 200));
    checkPrimitiveString(valueList.item(3), new PrimitiveString(ICSSPrimitiveValue.CSS_COMMA, ","));
    checkPrimitiveNumber(
        valueList.item(4), new PrimitiveNumber(ICSSPrimitiveValue.CSS_INTEGER, 300));
    checkPrimitiveString(valueList.item(5), new PrimitiveString(ICSSPrimitiveValue.CSS_COMMA, ","));
    checkPrimitiveNumber(
        valueList.item(6), new PrimitiveNumber(ICSSPrimitiveValue.CSS_INTEGER, 400));
    checkPrimitiveString(valueList.item(7), new PrimitiveString(ICSSPrimitiveValue.CSS_COMMA, ","));
    checkPrimitiveNumber(
        valueList.item(8), new PrimitiveNumber(ICSSPrimitiveValue.CSS_INTEGER, 500));

    value = declaration.getPropertyCSSValue("font-style");
    checkPrimitiveString(value, new PrimitiveString(CSSPrimitiveValue.CSS_IDENT, "normal"));

    value = declaration.getPropertyCSSValue("font-variant");
    checkPrimitiveString(value, new PrimitiveString(CSSPrimitiveValue.CSS_IDENT, "normal"));

    value = declaration.getPropertyCSSValue("font-size");
    checkPrimitiveString(value, new PrimitiveString(CSSPrimitiveValue.CSS_IDENT, "all"));
  }
 /**
  * Affected by pseudo name in ancestor.
  *
  * @param element the element
  * @param ancestor the ancestor
  * @param elementName the element name
  * @param elementId the element id
  * @param classArray the class array
  * @param pseudoName the pseudo name
  * @return true, if successful
  */
 public final boolean affectedByPseudoNameInAncestor(
     HTMLElementImpl element,
     HTMLElementImpl ancestor,
     String elementName,
     String elementId,
     String[] classArray,
     String pseudoName) {
   String elementTL = elementName.toLowerCase();
   Collection elementRules = this.rulesByElement.get(elementTL);
   if (elementRules != null) {
     Iterator i = elementRules.iterator();
     while (i.hasNext()) {
       StyleRuleInfo styleRuleInfo = (StyleRuleInfo) i.next();
       CSSStyleSheet styleSheet = styleRuleInfo.getStyleRule().getParentStyleSheet();
       if ((styleSheet != null) && styleSheet.getDisabled()) {
         continue;
       }
       if (styleRuleInfo.affectedByPseudoNameInAncestor(element, ancestor, pseudoName)) {
         return true;
       }
     }
   }
   elementRules = this.rulesByElement.get("*");
   if (elementRules != null) {
     Iterator i = elementRules.iterator();
     while (i.hasNext()) {
       StyleRuleInfo styleRuleInfo = (StyleRuleInfo) i.next();
       CSSStyleSheet styleSheet = styleRuleInfo.getStyleRule().getParentStyleSheet();
       if ((styleSheet != null) && styleSheet.getDisabled()) {
         continue;
       }
       if (styleRuleInfo.affectedByPseudoNameInAncestor(element, ancestor, pseudoName)) {
         return true;
       }
     }
   }
   if (classArray != null) {
     for (int cidx = 0; cidx < classArray.length; cidx++) {
       String className = classArray[cidx];
       String classNameTL = className.toLowerCase();
       Map<?, ?> classMaps = this.classMapsByElement.get(elementTL);
       if (classMaps != null) {
         Collection classRules = (Collection) classMaps.get(classNameTL);
         if (classRules != null) {
           Iterator i = classRules.iterator();
           while (i.hasNext()) {
             StyleRuleInfo styleRuleInfo = (StyleRuleInfo) i.next();
             CSSStyleSheet styleSheet = styleRuleInfo.getStyleRule().getParentStyleSheet();
             if ((styleSheet != null) && styleSheet.getDisabled()) {
               continue;
             }
             if (styleRuleInfo.affectedByPseudoNameInAncestor(element, ancestor, pseudoName)) {
               return true;
             }
           }
         }
       }
       classMaps = this.classMapsByElement.get("*");
       if (classMaps != null) {
         Collection classRules = (Collection) classMaps.get(classNameTL);
         if (classRules != null) {
           Iterator i = classRules.iterator();
           while (i.hasNext()) {
             StyleRuleInfo styleRuleInfo = (StyleRuleInfo) i.next();
             CSSStyleSheet styleSheet = styleRuleInfo.getStyleRule().getParentStyleSheet();
             if ((styleSheet != null) && styleSheet.getDisabled()) {
               continue;
             }
             if (styleRuleInfo.affectedByPseudoNameInAncestor(element, ancestor, pseudoName)) {
               return true;
             }
           }
         }
       }
     }
   }
   if (elementId != null) {
     Map<?, ?> idMaps = this.idMapsByElement.get(elementTL);
     if (idMaps != null) {
       String elementIdTL = elementId.toLowerCase();
       Collection idRules = (Collection) idMaps.get(elementIdTL);
       if (idRules != null) {
         Iterator i = idRules.iterator();
         while (i.hasNext()) {
           StyleRuleInfo styleRuleInfo = (StyleRuleInfo) i.next();
           CSSStyleSheet styleSheet = styleRuleInfo.getStyleRule().getParentStyleSheet();
           if ((styleSheet != null) && styleSheet.getDisabled()) {
             continue;
           }
           if (styleRuleInfo.affectedByPseudoNameInAncestor(element, ancestor, pseudoName)) {
             return true;
           }
         }
       }
     }
     idMaps = this.idMapsByElement.get("*");
     if (idMaps != null) {
       String elementIdTL = elementId.toLowerCase();
       Collection idRules = (Collection) idMaps.get(elementIdTL);
       if (idRules != null) {
         Iterator i = idRules.iterator();
         while (i.hasNext()) {
           StyleRuleInfo styleRuleInfo = (StyleRuleInfo) i.next();
           CSSStyleSheet styleSheet = styleRuleInfo.getStyleRule().getParentStyleSheet();
           if ((styleSheet != null) && styleSheet.getDisabled()) {
             continue;
           }
           if (styleRuleInfo.affectedByPseudoNameInAncestor(element, ancestor, pseudoName)) {
             return true;
           }
         }
       }
     }
   }
   return false;
 }
 /**
  * Gets the active style declarations.
  *
  * @param element the element
  * @param elementName the element name
  * @param elementId the element id
  * @param className the class name
  * @param pseudoNames the pseudo names
  * @return the active style declarations
  */
 public final Collection<CSSStyleDeclaration> getActiveStyleDeclarations(
     HTMLElementImpl element,
     String elementName,
     String elementId,
     String className,
     Set pseudoNames) {
   Collection<CSSStyleDeclaration> styleDeclarations = null;
   String elementTL = elementName.toLowerCase();
   Collection elementRules = this.rulesByElement.get(elementTL);
   if (elementRules != null) {
     Iterator i = elementRules.iterator();
     while (i.hasNext()) {
       StyleRuleInfo styleRuleInfo = (StyleRuleInfo) i.next();
       if (styleRuleInfo.isSelectorMatch(element, pseudoNames)) {
         CSSStyleRule styleRule = styleRuleInfo.getStyleRule();
         CSSStyleSheet styleSheet = styleRule.getParentStyleSheet();
         if ((styleSheet != null) && styleSheet.getDisabled()) {
           continue;
         }
         if (styleDeclarations == null) {
           styleDeclarations = new LinkedList<CSSStyleDeclaration>();
         }
         styleDeclarations.add(styleRule.getStyle());
       } else {
       }
     }
   }
   elementRules = this.rulesByElement.get("*");
   if (elementRules != null) {
     Iterator i = elementRules.iterator();
     while (i.hasNext()) {
       StyleRuleInfo styleRuleInfo = (StyleRuleInfo) i.next();
       if (styleRuleInfo.isSelectorMatch(element, pseudoNames)) {
         CSSStyleRule styleRule = styleRuleInfo.getStyleRule();
         CSSStyleSheet styleSheet = styleRule.getParentStyleSheet();
         if ((styleSheet != null) && styleSheet.getDisabled()) {
           continue;
         }
         if (styleDeclarations == null) {
           styleDeclarations = new LinkedList<CSSStyleDeclaration>();
         }
         styleDeclarations.add(styleRule.getStyle());
       }
     }
   }
   if (className != null) {
     String classNameTL = className.toLowerCase();
     Map<?, ?> classMaps = this.classMapsByElement.get(elementTL);
     if (classMaps != null) {
       Collection classRules = (Collection) classMaps.get(classNameTL);
       if (classRules != null) {
         Iterator i = classRules.iterator();
         while (i.hasNext()) {
           StyleRuleInfo styleRuleInfo = (StyleRuleInfo) i.next();
           if (styleRuleInfo.isSelectorMatch(element, pseudoNames)) {
             CSSStyleRule styleRule = styleRuleInfo.getStyleRule();
             CSSStyleSheet styleSheet = styleRule.getParentStyleSheet();
             if ((styleSheet != null) && styleSheet.getDisabled()) {
               continue;
             }
             if (styleDeclarations == null) {
               styleDeclarations = new LinkedList<CSSStyleDeclaration>();
             }
             styleDeclarations.add(styleRule.getStyle());
           }
         }
       }
     }
     classMaps = this.classMapsByElement.get("*");
     if (classMaps != null) {
       Collection classRules = (Collection) classMaps.get(classNameTL);
       if (classRules != null) {
         Iterator i = classRules.iterator();
         while (i.hasNext()) {
           StyleRuleInfo styleRuleInfo = (StyleRuleInfo) i.next();
           if (styleRuleInfo.isSelectorMatch(element, pseudoNames)) {
             CSSStyleRule styleRule = styleRuleInfo.getStyleRule();
             CSSStyleSheet styleSheet = styleRule.getParentStyleSheet();
             if ((styleSheet != null) && styleSheet.getDisabled()) {
               continue;
             }
             if (styleDeclarations == null) {
               styleDeclarations = new LinkedList<CSSStyleDeclaration>();
             }
             styleDeclarations.add(styleRule.getStyle());
           }
         }
       }
     }
   }
   if (elementId != null) {
     Map<?, ?> idMaps = this.idMapsByElement.get(elementTL);
     if (idMaps != null) {
       String elementIdTL = elementId.toLowerCase();
       Collection idRules = (Collection) idMaps.get(elementIdTL);
       if (idRules != null) {
         Iterator i = idRules.iterator();
         while (i.hasNext()) {
           StyleRuleInfo styleRuleInfo = (StyleRuleInfo) i.next();
           if (styleRuleInfo.isSelectorMatch(element, pseudoNames)) {
             CSSStyleRule styleRule = styleRuleInfo.getStyleRule();
             CSSStyleSheet styleSheet = styleRule.getParentStyleSheet();
             if ((styleSheet != null) && styleSheet.getDisabled()) {
               continue;
             }
             if (styleDeclarations == null) {
               styleDeclarations = new LinkedList<CSSStyleDeclaration>();
             }
             styleDeclarations.add(styleRule.getStyle());
           }
         }
       }
     }
     idMaps = this.idMapsByElement.get("*");
     if (idMaps != null) {
       String elementIdTL = elementId.toLowerCase();
       Collection idRules = (Collection) idMaps.get(elementIdTL);
       if (idRules != null) {
         Iterator i = idRules.iterator();
         while (i.hasNext()) {
           StyleRuleInfo styleRuleInfo = (StyleRuleInfo) i.next();
           if (styleRuleInfo.isSelectorMatch(element, pseudoNames)) {
             CSSStyleRule styleRule = styleRuleInfo.getStyleRule();
             CSSStyleSheet styleSheet = styleRule.getParentStyleSheet();
             if ((styleSheet != null) && styleSheet.getDisabled()) {
               continue;
             }
             if (styleDeclarations == null) {
               styleDeclarations = new LinkedList<CSSStyleDeclaration>();
             }
             styleDeclarations.add(styleRule.getStyle());
           }
         }
       }
     }
   }
   return styleDeclarations;
 }