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; }
/** * overall check * * "P#hoge98 + *:hover > A:link, A.external:visited" -> true "H1 H2 {}" -> * false */ public boolean isValid() { parse(); return (fSelectorList != null && fSelectorList.getErrorCount() == 0); }
/** * */ public void addSelectorToAvoid(ICSSStyleRule rule) { ICSSSelectorList list = rule.getSelectors(); Iterator it = list.getIterator(); while (it.hasNext()) { ICSSSelector sel = (ICSSSelector) it.next(); addSelectorToAvoid(sel); } }
/** */ 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; }
/** * */ protected short preNode(ICSSNode node) { if (node.getNodeType() == ICSSNode.STYLERULE_NODE) { ICSSStyleRule rule = (ICSSStyleRule) node; ICSSSelectorList list = rule.getSelectors(); Iterator it = list.getIterator(); while (it.hasNext()) { Object obj = it.next(); if (selectorsToAvoid != null && selectorsToAvoid.contains(obj)) continue; if (!selectors.contains(obj)) selectors.add(obj); } return TRAV_PRUNE; } else if (node.getNodeType() == ICSSNode.STYLESHEET_NODE) { return TRAV_CONT; } return TRAV_PRUNE; }
added = new ICSSSelector[list.getLength()]; for (int i = 0; i < list.getLength(); i++) added[i] = list.getSelector(i); removed = new ICSSSelector[list.getLength()]; for (int i = 0; i < list.getLength(); i++) removed[i] = list.getSelector(i); added = new ICSSSelector[list.getLength()]; for (int i = 0; i < list.getLength(); i++) added[i] = list.getSelector(i);
/** * */ 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); } } } } }
removed = new ICSSSelector[list.getLength()]; for (int i = 0; i < list.getLength(); i++) removed[i] = list.getSelector(i); added = new ICSSSelector[list.getLength()]; for (int i = 0; i < list.getLength(); i++) added[i] = list.getSelector(i);
added = new ICSSSelector[list.getLength()]; for (int i = 0; i < list.getLength(); i++) added[i] = list.getSelector(i);