/** * @return int */ public int getLength() { int i = 0; for (ICSSNode node = getFirstChild(); node != null; node = node.getNextSibling()) { if (node instanceof CSSPrimitiveValueImpl) i++; } return i; }
/** * currently public but may be made default access protected in future. */ protected void cloneChildNodes(ICSSNode newParent, boolean deep) { if (newParent == null || newParent == this) return; CSSNodeImpl container = (CSSNodeImpl) newParent; container.removeChildNodes(); for (ICSSNode child = getFirstChild(); child != null; child = child.getNextSibling()) { CSSNodeImpl cloned = (CSSNodeImpl) child.cloneNode(deep); if (cloned != null) container.appendChild(cloned); } }
/** * */ public int getAttrInsertPos(ICSSNode node, String attrName) { if (node == null || attrName == null || attrName.length() == 0) return -1; if (!ICSSStyleRule.SELECTOR.equalsIgnoreCase(attrName)) return -1; ICSSAttr attr = (ICSSAttr) node.getAttributes().getNamedItem(ICSSStyleRule.SELECTOR); if (attr != null && ((IndexedRegion) attr).getEndOffset() > 0) return ((IndexedRegion) attr).getStartOffset(); else return ((IndexedRegion) node).getStartOffset(); }
/** * @return boolean * @param node * org.eclipse.wst.css.core.model.interfaces.ICSSNode */ static boolean diagnoseTree(ICSSNode parent, IStructuredDocument structuredDocument) { if (parent == null) { return false; } // check children for (ICSSNode child = parent.getFirstChild(); child != null; child = child.getNextSibling()) { diagnoseTree(child, structuredDocument); } diagnoseNode(parent, structuredDocument); return true; }
return 0; if (node.getFirstChild().getNextSibling() == node.getLastChild()) { // inserted int pos = ((IndexedRegion) node.getFirstChild()).getEndOffset(); if (pos <= 0) pos = ((IndexedRegion) node).getStartOffset() + 6 /*
ICSSNode prev = (child != null) ? child.getPreviousSibling() : node.getLastChild(); int start = (prev != null) ? ((IndexedRegion) prev).getEndOffset() : 0; int end = (child != null) ? ((IndexedRegion) child).getStartOffset() : 0; IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument(); else { String pickupType = null; if ((prev != null && prev.getNodeType() == ICSSNode.MEDIALIST_NODE) || (prev == null && (child == null || child.getNodeType() != ICSSNode.MEDIALIST_NODE))) { pickupType = CSSRegionContexts.CSS_LBRACE; if (child != null && child.getNodeType() == ICSSNode.MEDIALIST_NODE) { // between } else if (child != null && (child.getPreviousSibling() == null || child.getPreviousSibling().getNodeType() == ICSSNode.MEDIALIST_NODE)) { // between if (child == null && prev != null && prev.getNodeType() != ICSSNode.MEDIALIST_NODE) { // after appendDelimBefore(node.getParentNode(), null, source); } else if (child != null && child.getNodeType() == ICSSNode.MEDIALIST_NODE) { // between } else if (prev != null && prev.getNodeType() == ICSSNode.MEDIALIST_NODE) { // between appendDelimBefore(node, null, source); else appendDelimBefore(node.getParentNode(), null, source); } else { // normal case appendDelimBefore(node, null, source);
return 0; if (node.getFirstChild().getNextSibling() == node.getLastChild()) { // inserted IStructuredDocumentRegion flatNode = node.getOwnerDocument().getModel().getStructuredDocument().getRegionAtCharacterOffset(insertPos); if (flatNode == null) return 0;
ICSSNode prev = (child != null) ? child.getPreviousSibling() : node.getLastChild(); if (prev == null && child == null) return; CSSCleanupStrategy stgy = getCleanupStrategy(node); IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument(); ICSSNode next = child.getNextSibling(); int pos = getChildInsertPos(node); if (next != null && ((IndexedRegion) next).getEndOffset() > 0) pos = ((IndexedRegion) next).getStartOffset(); if (pos != 0) { IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument(); CompoundRegion[] prevRegions = getRegions(structuredDocument, new FormatRegion(0, pos), null, null); if (prevRegions != null && prevRegions.length > 0)
/** * */ protected void formatPre(ICSSNode node, StringBuffer source) { int start = ((IndexedRegion) node).getStartOffset(); int end = (node.getFirstChild() != null && ((IndexedRegion) node.getFirstChild()).getEndOffset() > 0) ? ((IndexedRegion) node.getFirstChild()).getStartOffset() : getChildInsertPos(node); if (end > 0) { // format source CSSCleanupStrategy stgy = getCleanupStrategy(node); IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument(); CompoundRegion[] regions = getRegionsWithoutWhiteSpaces(structuredDocument, new FormatRegion(start, end - start), stgy); for (int i = 0; i < regions.length; i++) { if (i != 0) appendSpaceBefore(node, regions[i], source); source.append(decoratedPropValueRegion(regions[i], stgy)); } } else { // generate source String func = getFunc(); if (CSSCorePlugin.getDefault().getPluginPreferences().getInt(CSSCorePreferenceNames.CASE_PROPERTY_VALUE) == CSSCorePreferenceNames.UPPER) func = func.toUpperCase(); source.append(func); } }
if (fTraverseImported && (node.getNodeType() == ICSSNode.IMPORTRULE_NODE)) { ICSSImportRule rule = (ICSSImportRule) node; ICSSNode child = node.getFirstChild(); if (fTraverseImportFirst) { ArrayList others = new ArrayList(); if (child.getNodeType() == ICSSNode.IMPORTRULE_NODE) children.add(child); else others.add(child); child = child.getNextSibling(); while (child != null) { children.add(child); child = child.getNextSibling();
ICSSNode prev = (child != null) ? child.getPreviousSibling() : node.getLastChild(); int start = (prev != null) ? ((IndexedRegion) prev).getEndOffset() : 0; int end = (child != null) ? ((IndexedRegion) child).getStartOffset() : 0; CSSCleanupStrategy stgy = getCleanupStrategy(node); IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument();
container.removeChildNodes(); for (ICSSNode child = src.getFirstChild(); child != null; child = child.getNextSibling()) { if (child instanceof CSSStyleDeclItemImpl) { ICSSNode cloned = child.cloneNode(false); if (cloned instanceof CSSNodeImpl) { ((CSSNodeImpl) cloned).setOwnerDocument(fOwnerDocument); ICSSNode cloned = child.cloneNode(false); if (cloned instanceof CSSNodeImpl) { ((CSSNodeImpl) cloned).setOwnerDocument(fOwnerDocument);
/** * */ protected void formatPost(org.eclipse.wst.css.core.internal.provisional.document.ICSSNode node, java.lang.StringBuffer source) { CSSCleanupStrategy stgy = getCleanupStrategy(node); int end = ((IndexedRegion) node).getEndOffset(); int start = (node.getLastChild() != null && ((IndexedRegion) node.getLastChild()).getEndOffset() > 0) ? ((IndexedRegion) node.getLastChild()).getEndOffset() : getChildInsertPos(node); if (end > 0 && start < end) { // format source IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument(); CompoundRegion[] regions = getRegionsWithoutWhiteSpaces(structuredDocument, new FormatRegion(start, end - start), stgy); for (int i = 0; i < regions.length; i++) { appendSpaceBefore(node, regions[i], source); source.append(decoratedRegion(regions[i], 2, stgy)); } } else { // generate source source.append(")");//$NON-NLS-1$ } }
ICSSNode child = node.getFirstChild(); int start = region.getOffset(); int end = region.getOffset() + region.getLength(); int curStart = ((IndexedRegion) child.getPreviousSibling()).getEndOffset(); if (curStart < end) { String toAppend = (childSource != null) ? new String(childSource) : "";//$NON-NLS-1$ if (toFinish) break; child = child.getNextSibling();
public final void apply(ICSSNode root) { travStack = new Stack(); if (fTraverseImported) { traversedSheets = new Vector(); if (root != null && root.getOwnerDocument() != null && root.getOwnerDocument().getNodeType() == ICSSNode.STYLESHEET_NODE) { traversedSheets.add(root.getOwnerDocument()); } } // first call begin() begin(root); // traverse traverse(root); // last call end() end(root); }
private ICSSNode getCommonAncestor(ICSSNode nodeA, ICSSNode nodeB) { if (nodeA == null || nodeB == null) { return null; } for (ICSSNode na = nodeA; na != null; na = na.getParentNode()) { for (ICSSNode ta = nodeB; ta != null; ta = ta.getParentNode()) { if (ta == na) { return ta; } } } return null; // not found }
/** * */ public int getAttrInsertPos(ICSSNode node, String attrName) { if (node == null || attrName == null || attrName.length() == 0) return -1; if (!ICSSStyleDeclItem.IMPORTANT.equalsIgnoreCase(attrName)) return -1; ICSSAttr attr = (ICSSAttr) node.getAttributes().getNamedItem(ICSSStyleDeclItem.IMPORTANT); if (attr != null && ((IndexedRegion) attr).getEndOffset() > 0) return ((IndexedRegion) attr).getStartOffset(); IndexedRegion iNode = (IndexedRegion) node; if (iNode.getEndOffset() <= 0) return -1; CompoundRegion regions[] = getRegionsWithoutWhiteSpaces(node.getOwnerDocument().getModel().getStructuredDocument(), new FormatRegion(iNode.getStartOffset(), iNode.getEndOffset() - iNode.getStartOffset()), getCleanupStrategy(node)); for (int i = regions.length - 1; i >= 0; i--) { if (regions[i].getType() == CSSRegionContexts.CSS_DECLARATION_VALUE_IMPORTANT) return regions[i].getStartOffset(); } return iNode.getEndOffset(); }
/** */ protected short preNode(ICSSNode node) { IndexedRegion iNode = (IndexedRegion) node; if (iNode.getStartOffset() <= end && start < iNode.getEndOffset()) { if (node.getNodeType() != ICSSNode.STYLESHEET_NODE) { IndexedRegion iFirstChild = (IndexedRegion) node.getFirstChild(); IndexedRegion iLastChild = (IndexedRegion) node.getLastChild(); if (iFirstChild == null || start < iFirstChild.getStartOffset() || iLastChild.getEndOffset() <= end) selectedNodes.add(node); } return TRAV_CONT; } if (iNode.getStartOffset() > end) return TRAV_STOP; else return TRAV_PRUNE; }
int start = (node.getLastChild() != null && ((IndexedRegion) node.getLastChild()).getEndOffset() > 0) ? ((IndexedRegion) node.getLastChild()).getEndOffset() : getChildInsertPos(node); if (end > 0 && start < end) { // source formatting CSSCleanupStrategy stgy = getCleanupStrategy(node); IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument(); CompoundRegion[] regions = getRegionsWithoutWhiteSpaces(structuredDocument, new FormatRegion(start, end - start), stgy); if (node.getLastChild() == null || node.getLastChild().getNodeType() != ICSSNode.MEDIALIST_NODE) { for (int i = 0; i < regions.length; i++) { appendDelimBefore(node, regions[i], source); if (node.getLastChild() != null && node.getLastChild().getNodeType() == ICSSNode.MEDIALIST_NODE) { appendSpaceBefore(node, "{", source);//$NON-NLS-1$ source.append("{");//$NON-NLS-1$
/** * */ protected void formatPre(org.eclipse.wst.css.core.internal.provisional.document.ICSSNode node, java.lang.StringBuffer source) { int start = ((IndexedRegion) node).getStartOffset(); int end = (node.getFirstChild() != null && ((IndexedRegion) node.getFirstChild()).getEndOffset() > 0) ? ((IndexedRegion) node.getFirstChild()).getStartOffset() : getChildInsertPos(node); if (end > 0) { CSSCleanupStrategy stgy = getCleanupStrategy(node); IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument(); CompoundRegion[] regions = getRegionsWithoutWhiteSpaces(structuredDocument, new FormatRegion(start, end - start), stgy); for (int i = 0; i < regions.length; i++) { if (i != 0 || regions[i].getType() == CSSRegionContexts.CSS_CDO || node.getOwnerDocument().getModel().getStyleSheetType() == ICSSModel.EMBEDDED) appendDelimBefore(node, regions[i], source); source.append(decoratedRegion(regions[i], 0, stgy)); } if (node.getLastChild() != null && (source.length() > 0 || node.getOwnerDocument().getModel().getStyleSheetType() == ICSSModel.EMBEDDED)) { appendDelimBefore(node, null, source); } } else if (node.getOwnerDocument().getModel() != null && node.getOwnerDocument().getModel().getStyleSheetType() == ICSSModel.EMBEDDED) { appendDelimBefore(node, null, source); // source.append("<!--"); // appendDelimBefore(node,null, source); } else return; // nothing }