/** * */ public Iterator getErrors() { List errors = new ArrayList(); Iterator iSelector = getSelectors().iterator(); while (iSelector.hasNext()) { Iterator iError = ((ICSSSelector) iSelector.next()).getErrors(); while (iError.hasNext()) { errors.add(iError.next()); } } return errors.iterator(); }
private ICSSSimpleSelector getOnlyOneSimpleSelector() { parse(); if (fSelectorList != null && fSelectorList.getLength() == 1) { ICSSSelector selector = fSelectorList.getSelector(0); int nItem = selector.getLength(); if (nItem == 1) { ICSSSelectorItem item = selector.getItem(0); if (item instanceof ICSSSimpleSelector) { return (ICSSSimpleSelector) item; } } } return null; }
/** * @return java.lang.String */ public String getString() { if (fCachedString == null) { StringBuffer buf = new StringBuffer(); boolean bFirst = true; // groups is list of comma-separated selectors Iterator i = getSelectors().iterator(); while (i.hasNext()) { if (!bFirst) { buf.append(", ");//$NON-NLS-1$ } ICSSSelector item = (ICSSSelector) i.next(); buf.append(item.getString()); bFirst = false; } fCachedString = buf.toString(); } return fCachedString; }
/** */ protected short preNode(ICSSNode node) { if (node instanceof ICSSStyleRule) { // style rule ICSSStyleRule style = (ICSSStyleRule) node; ICSSSelectorList list = style.getSelectors(); int nSelectors = list.getLength(); int maxSpecificity = -1; for (int iSelector = 0; iSelector < nSelectors; iSelector++) { // Check each Selector Lists ICSSSelector selector = list.getSelector(iSelector); int specificity = selector.getSpecificity(); if (maxSpecificity < specificity && selector.match(element, pseudoName)) { maxSpecificity = specificity; } } if (maxSpecificity >= 0) { // apply this style to the element overwriteDeclaration((ICSSStyleDeclaration) style.getStyle(), maxSpecificity); } return TRAV_PRUNE; } return TRAV_CONT; }
/** * @return boolean * @param element * org.w3c.dom.Element */ public boolean match(Element element, String pseudoName) { int nSelectors = getLength(); for (int iSelector = 0; iSelector < nSelectors; iSelector++) { // Check each Selector Lists ICSSSelector selector = getSelector(iSelector); if (selector.match(element, pseudoName)) return true; } return false; }
/** * */ private void addClassNames(ICSSStyleRule rule) { ICSSSelectorList selectorList = rule.getSelectors(); Iterator iSelector = selectorList.getIterator(); while (iSelector.hasNext()) { ICSSSelector selector = (ICSSSelector) iSelector.next(); Iterator iItem = selector.getIterator(); while (iItem.hasNext()) { ICSSSelectorItem item = (ICSSSelectorItem) iItem.next(); if (item.getItemType() == ICSSSelectorItem.SIMPLE) { ICSSSimpleSelector sel = (ICSSSimpleSelector) item; int nClasses = sel.getNumOfClasses(); for (int iClass = 0; iClass < nClasses; iClass++) { String className = sel.getClass(iClass); if (!fClassNames.contains(className)) fClassNames.add(className); } } } } }