/** * Return 'node' indexed start position Example: |<a></a>, the position is * indicated by '|' * * @param node * @return */ public static int getNodeStartIndex(Node node) { if (EditValidateUtil.validNode(node) && node instanceof IndexedRegion) { return ((IndexedRegion) node).getStartOffset(); } return -1; }
/** * */ 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(); }
/** * Calculate node's Indexed length in model. * * @param node * @return */ public static int getNodeLenth(Node node) { if (node != null && EditValidateUtil.validNode(node)) { return ((IndexedRegion) node).getEndOffset() - ((IndexedRegion) node).getStartOffset(); } return 0; }
/** */ 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; }
public void format(TextViewer viewer, Node node) { if (node == null) { return; } Node tmp; int start, offset; if (node.getPreviousSibling() != null) { tmp = node.getPreviousSibling(); start = ((IndexedRegion) tmp).getEndOffset(); } else { tmp = node; start = ((IndexedRegion) tmp).getStartOffset(); } if (node.getNextSibling() != null) { tmp = node.getNextSibling(); offset = ((IndexedRegion) tmp).getStartOffset() - start; } else { tmp = node; offset = ((IndexedRegion) tmp).getEndOffset() - start; } viewer.setSelectedRange(start, offset); viewer.doOperation(ISourceViewer.FORMAT); }
/** * */ protected boolean isIncludesPreEnd(ICSSNode node, IRegion region) { return (node.getFirstChild() != null && ((IndexedRegion) node.getFirstChild()).getStartOffset() == (region.getOffset() + region.getLength())); }
protected Region getNewSelectionRegion(IndexedRegion indexedRegion, ITextSelection textSelection) { Region newRegion = null; if (indexedRegion instanceof Node) { Node cursorNode = (Node) indexedRegion; // use parent node for empty text node if ((cursorNode.getNodeType() == Node.TEXT_NODE) && (cursorNode.getNodeValue().trim().length() == 0)) { cursorNode = cursorNode.getParentNode(); if (cursorNode instanceof IndexedRegion) { indexedRegion = (IndexedRegion) cursorNode; } } Region cursorNodeRegion = new Region(indexedRegion.getStartOffset(), indexedRegion.getEndOffset() - indexedRegion.getStartOffset()); int currentOffset = textSelection.getOffset(); int currentEndOffset = currentOffset + textSelection.getLength(); if ((cursorNodeRegion.getOffset() >= currentOffset) && (cursorNodeRegion.getOffset() <= currentEndOffset) && (cursorNodeRegion.getOffset() + cursorNodeRegion.getLength() >= currentOffset) && (cursorNodeRegion.getOffset() + cursorNodeRegion.getLength() <= currentEndOffset)) { newRegion = getNewSelectionRegion2(indexedRegion, textSelection); } else { newRegion = cursorNodeRegion; } } return newRegion; }
/** * */ 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(); }
/** * */ public int getAttrInsertPos(ICSSNode node, String attrName) { if (node == null || attrName == null || attrName.length() == 0) return -1; ICSSAttr attr = (ICSSAttr) node.getAttributes().getNamedItem(attrName); if (attr != null && ((IndexedRegion) attr).getEndOffset() > 0) return ((IndexedRegion) attr).getStartOffset(); IndexedRegion iNode = (IndexedRegion) node; if (iNode.getEndOffset() <= 0) return -1; /* * ITextRegion regions[] = * getRegionsWithoutWhiteSpaces(node.getOwnerDocument().getModel().getStructuredDocument(), * new FormatRegion(iNode.getStartOffset(), iNode.getEndOffset() - * iNode.getStartOffset() + 1)); for(int i=regions.length - 1; i >= 0; * i--) { if (regions[i].getType() == CSSRegionContexts.IMPORTANT_SYM) * return regions[i].getStartOffset(); } */ return iNode.getEndOffset(); }
/** * Constructor for PageDirectiveWatcherImpl. */ public PageDirectiveWatcherImpl(IDOMElement target) { super(); targetElement = target; String contentTypeValue = target.getAttribute("contentType"); //$NON-NLS-1$ if (contentTypeValue != null) { // using concrete class below, since "changed" is something of an internal method PageDirectiveAdapterImpl pageDirectiveAdapter = (PageDirectiveAdapterImpl) ((IDOMDocument) targetElement.getOwnerDocument()).getAdapterFor(PageDirectiveAdapter.class); pageDirectiveAdapter.changedContentType(((IndexedRegion) targetElement).getStartOffset(), contentTypeValue); } String languageValue = target.getAttribute("language"); //$NON-NLS-1$ if (languageValue != null) { // using concrete class below, since "changed" is something of an internal method PageDirectiveAdapterImpl pageDirectiveAdapter = (PageDirectiveAdapterImpl) ((IDOMDocument) targetElement.getOwnerDocument()).getAdapterFor(PageDirectiveAdapter.class); pageDirectiveAdapter.changedLanguage(((IndexedRegion) targetElement).getStartOffset(), languageValue); } }
/** * */ public int getAttrInsertPos(ICSSNode node, String attrName) { if (node == null || attrName == null || attrName.length() == 0) return -1; CSSCleanupStrategy stgy = getCleanupStrategy(node); if (!ICSSCharsetRule.ENCODING.equalsIgnoreCase(attrName)) return -1; ICSSAttr attr = (ICSSAttr) node.getAttributes().getNamedItem(ICSSCharsetRule.ENCODING); 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()), stgy); for (int i = regions.length - 1; i >= 0; i--) { if (regions[i].getType() != CSSRegionContexts.CSS_COMMENT) return regions[i].getStartOffset(); } return iNode.getEndOffset(); }
/** * */ protected void formatPre(ICSSNode node, StringBuffer source) { int end = ((IndexedRegion) node).getEndOffset(); if (end > 0) { // format source int start = ((IndexedRegion) node).getStartOffset(); formatPre(node, new FormatRegion(start, end - start), source); } else { // generate source Preferences preferences = CSSCorePlugin.getDefault().getPluginPreferences(); String quote = preferences.getString(CSSCorePreferenceNames.FORMAT_QUOTE); String str = CHARSET; if (preferences.getInt(CSSCorePreferenceNames.CASE_IDENTIFIER) == CSSCorePreferenceNames.UPPER) str = CHARSET.toUpperCase(); source.append(str); String enc = ((ICSSCharsetRule) node).getEncoding(); quote = CSSUtil.detectQuote(enc, quote); str = quote + ((enc != null) ? enc : "") + quote + ";";//$NON-NLS-1$ //$NON-NLS-2$ appendSpaceBefore(node, str, source); source.append(str); } }
/** * */ 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); } }
/** * */ protected void formatPre(ICSSNode node, StringBuffer source) { CSSCleanupStrategy stgy = getCleanupStrategy(node); int start = ((IndexedRegion) node).getStartOffset(); int end = ((IndexedRegion) node).getEndOffset(); if (end > 0) { // 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++) { if (i != 0) appendSpaceBefore(node, regions[i], source); source.append(decoratedPropValueRegion(regions[i], stgy)); } } else { // generate source CSSUnknownRule rule = (CSSUnknownRule) node; source.append(rule.getCssText()); } }
/** * @return java.lang.String */ public java.lang.String getCSSValueText() { if (getFirstChild() == null) return "";//$NON-NLS-1$ // check whether children has flatnodes ICSSNode child = getFirstChild(); while (child != null) { if (((IndexedRegion) child).getEndOffset() <= 0) return generateValueSource(); child = child.getNextSibling(); } IStructuredDocumentRegion node = getFirstStructuredDocumentRegion(); int start = ((IndexedRegion) getFirstChild()).getStartOffset() - node.getStartOffset(); int end = ((IndexedRegion) getLastChild()).getEndOffset() - node.getStartOffset(); return node.getText().substring(start, end); }
/** * */ protected void formatBefore(ICSSNode node, ICSSNode child, IRegion region, String toAppend, StringBuffer source) { CSSCleanupStrategy stgy = getCleanupStrategy(node); IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument(); CompoundRegion[] regions = getRegionsWithoutWhiteSpaces(structuredDocument, region, stgy); CompoundRegion[] outside = getOutsideRegions(structuredDocument, region); for (int i = 0; i < regions.length; i++) { if (i != 0 || needS(outside[0])) appendDelimBefore(node, regions[i], source); source.append(decoratedRegion(regions[i], 0, stgy)); // must be // comments } if (needS(outside[1])) { if (((IndexedRegion) child).getStartOffset() == region.getOffset() + region.getLength()) appendDelimBefore(node, null, source); } }
/** * */ private int getFirstChildRegionLength(ICSSNode node) { ICSSNode firstChild = node.getFirstChild(); if (firstChild == null) return 1; int start = ((IndexedRegion) firstChild).getStartOffset(); RegionIterator itr = new RegionIterator(node.getOwnerDocument().getModel().getStructuredDocument(), start); while (itr.hasNext()) { ITextRegion reg = itr.next(); if (reg != null && reg.getType() != CSSRegionContexts.CSS_S) return reg.getTextLength(); } return 1; }
/** * */ protected void formatBefore(ICSSNode node, ICSSNode child, IRegion region, String toAppend, StringBuffer source) { CSSCleanupStrategy stgy = getCleanupStrategy(node); IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument(); CompoundRegion[] regions = getRegionsWithoutWhiteSpaces(structuredDocument, region, stgy); CompoundRegion[] outside = getOutsideRegions(structuredDocument, region); for (int i = 0; i < regions.length; i++) { if (i != 0 || needS(outside[0])) appendSpaceBefore(node, regions[i], source); source.append(decoratedRegion(regions[i], 2, stgy)); // must be // comments } if (needS(outside[1])) { if (((IndexedRegion) child).getStartOffset() == region.getOffset() + region.getLength()) { if (toAppend != "," && toAppend != "/") //$NON-NLS-1$ //$NON-NLS-2$ appendSpaceBefore(node, toAppend, source); } } }
/** * */ protected void formatBefore(ICSSNode node, ICSSNode child, IRegion region, String toAppend, StringBuffer source) { CSSCleanupStrategy stgy = getCleanupStrategy(node); IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument(); CompoundRegion[] regions = getRegionsWithoutWhiteSpaces(structuredDocument, region, stgy); CompoundRegion[] outside = getOutsideRegions(structuredDocument, region); for (int i = 0; i < regions.length; i++) { if (i != 0 || needS(outside[0])) appendSpaceBefore(node, regions[i], source); source.append(decoratedRegion(regions[i], 0, stgy)); // must be // comments } if (needS(outside[1])) { if (((IndexedRegion) child).getStartOffset() == region.getOffset() + region.getLength()) appendSpaceBefore(node, toAppend, source); else appendSpaceBefore(node, outside[1], source); } }
/** * */ 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 }