protected final void formatChildren(ICSSNode node, IRegion region, StringBuffer source) { ICSSNode child = node.getFirstChild(); int start = region.getOffset(); int end = region.getOffset() + region.getLength(); boolean first = true; while (child != null) { int curEnd = ((IndexedRegion) child).getEndOffset(); StringBuffer childSource = null; boolean toFinish = false; if (start < curEnd) { int curStart = ((IndexedRegion) child).getStartOffset(); if (curStart < end) { // append child CSSSourceFormatter formatter = (CSSSourceFormatter) ((INodeNotifier) child).getAdapterFor(CSSSourceFormatter.class); if (formatter == null) { formatter = CSSSourceFormatterFactory.getInstance().getSourceFormatter((INodeNotifier) child); } if (includes(region, curStart, curEnd)) childSource = ((AbstractCSSSourceFormatter) formatter).formatProc(child); else childSource = ((AbstractCSSSourceFormatter) formatter) .formatProc(child, overlappedRegion(region, curStart, curEnd)); } else toFinish = true; } // append between children if (!first) { curEnd = ((IndexedRegion) child).getStartOffset(); // change // only // start if (start < curEnd) { int curStart = ((IndexedRegion) child.getPreviousSibling()).getEndOffset(); if (curStart < end) { String toAppend = (childSource != null) ? new String(childSource) : ""; // $NON-NLS-1$ if (includes(region, curStart, curEnd)) formatBefore(node, child, toAppend, source, null); else formatBefore( node, child, overlappedRegion(region, curStart, curEnd), toAppend, source); } } } if (childSource != null) { source.append(childSource); } first = false; if (toFinish) break; child = child.getNextSibling(); } }
protected CSSSourceGenerator getParentFormatter(ICSSNode node) { ICSSNode parent = node.getParentNode(); if (parent != null) { CSSSourceGenerator formatter = (CSSSourceGenerator) ((INodeNotifier) parent).getAdapterFor(CSSSourceFormatter.class); if (formatter == null) { formatter = CSSSourceFormatterFactory.getInstance().getSourceFormatter((INodeNotifier) parent); } return formatter; } return null; }
protected final void formatChildren(ICSSNode node, StringBuffer source) { ICSSNode child = node.getFirstChild(); boolean first = true; while (child != null) { // append child CSSSourceFormatter formatter = (CSSSourceFormatter) ((INodeNotifier) child).getAdapterFor(CSSSourceFormatter.class); if (formatter == null) { formatter = CSSSourceFormatterFactory.getInstance().getSourceFormatter((INodeNotifier) child); } StringBuffer childSource = ((AbstractCSSSourceFormatter) formatter).formatProc(child); if (!first) { formatBefore(node, child, new String(childSource), source, null); } source.append(childSource); // append between children child = child.getNextSibling(); first = false; } }