List of usage examples for com.google.gwt.dom.client Text getData
@Override
public String getData()
From source file:com.bfr.client.selection.HtmlBBox.java
License:Apache License
/** * Create a bounding box the size of the text between the two offsets of * the given textNode. Note that this temporarily modifies the document * to excise the sub-text into its own span element, which is then used * to generate the bounding box./*from w w w . j a va2s. c o m*/ * * @param textNode Text to create bounding box around * @param offset1 Starting offset to get bounding box from * @param offset2 Ending offset to get bounding box from * @return a new bounding box */ public static HtmlBBox getBoundingBox(Text textNode, int offset1, int offset2) { HtmlBBox res; String text = textNode.getData(); int len = text.length(); if ((offset1 == 0) && (offset2 == len)) { // Shortcut return getBoundingBox(textNode); } if ((offset2 > len) || (offset1 > offset2)) { return null; } // If this is a cursor, we still need to outline one character boolean isCursor = (offset1 == offset2); boolean posRight = false; if (isCursor) { if (offset1 == len) { offset1--; posRight = true; } else { offset2++; } } // Create 2 or 3 spans of this text, so we can measure List<Element> nodes = new ArrayList<Element>(3); Element tmpSpan, measureSpan; if (offset1 > 0) { // First tmpSpan = DOM.createSpan(); tmpSpan.setInnerHTML(text.substring(0, offset1)); nodes.add(tmpSpan); } // Middle, the one we measure measureSpan = DOM.createSpan(); measureSpan.setInnerHTML(text.substring(offset1, offset2)); nodes.add(measureSpan); if (offset2 < (len - 1)) { // Last tmpSpan = DOM.createSpan(); tmpSpan.setInnerHTML(text.substring(offset2 + 1)); nodes.add(tmpSpan); } Node parent = textNode.getParentNode(); for (Node node : nodes) { parent.insertBefore(node, textNode); } parent.removeChild(textNode); if (isCursor) { // Just make a 0-width version, depending on left or right res = new HtmlBBox(measureSpan.getAbsoluteLeft() + (posRight ? measureSpan.getOffsetWidth() : 0), measureSpan.getAbsoluteTop(), 0, measureSpan.getOffsetHeight()); } else { res = new HtmlBBox(measureSpan); } parent.insertBefore(textNode, nodes.get(0)); for (Node node : nodes) { parent.removeChild(node); } return res; }
From source file:com.bfr.client.selection.impl.RangeImplIE6.java
License:Apache License
/** * Since there's no good delete for an arbitrary range, simply replace it * with this text that nobody would use, then go find it so we can * delete or replace it in other functions. This depends on IE creating a * single text element that includes exactly this string (and no user also * has this exact text on their page..)//from w w w .j av a2 s . c o m * <p/> * An alternative but far more complicated method would be to try to do * this via setting the selection, doing the delete/replace, and then * restoring the selection. * * @param range The range to replace with a text node * @return the text node that replaced the contents of range */ private Text placeholdRange(JSRange range) { // Paranoid, include a random number to reduce chance this string // would occur in the text.. String replaceString = REPLACING_STRING + (int) (Integer.MAX_VALUE * Math.random()); Element parent = getCommonAncestor(range); placeholdPaste(range, replaceString); Text res; for (res = Range.getAdjacentTextElement(parent, true); res != null; res = Range.getAdjacentTextElement(res, true)) { if (replaceString.equals(res.getData())) { break; } } return res; }
From source file:com.bfr.client.selection.RangeEndPoint.java
License:Apache License
private static FindLocRes findLocation(Document doc, Text text, int relX, int relY) { FindLocRes res = null;//from ww w. j a v a 2 s . c o m String str = text.getData(); if ((str == null) || str.isEmpty()) { // Theoretically it could be in here still.. } else { // Insert 2 spans and do a binary search to find the single // character that fits Element span1 = doc.createSpanElement(); Element span2 = doc.createSpanElement(); Element span3 = doc.createSpanElement(); Element span4 = doc.createSpanElement(); Element parent = text.getParentElement(); parent.insertBefore(span1, text); parent.insertBefore(span2, text); parent.insertBefore(span3, text); parent.insertBefore(span4, text); parent.removeChild(text); try { int len = str.length() / 2; span2.setInnerText(str.substring(0, len)); span3.setInnerText(str.substring(len)); res = findLocation(text, span1, span2, span3, span4, relX, relY); } catch (Exception ex) { } finally { parent.insertAfter(text, span4); parent.removeChild(span1); parent.removeChild(span2); parent.removeChild(span3); parent.removeChild(span4); } } return res; }
From source file:com.dom_distiller.client.SimpleContentHandler.java
License:Open Source License
@Override public void textNode(Text textNode) { documentStringBuilder.append(textNode.getData()); }
From source file:de.l3s.boilerpipe.sax.BoilerpipeHTMLContentHandler.java
License:Open Source License
@Override public void textNode(Text textNode) { String text = textNode.getData(); char[] ch = text.toCharArray(); int start = 0; int length = text.length(); if (flush) {/*from w w w . j av a 2s .c om*/ flushBlock(); flush = false; } if (inIgnorableElement != 0) { return; } char c; boolean startWhitespace = false; boolean endWhitespace = false; if (length == 0) { return; } // Convert all whitespaces to spaces. final int end = start + length; for (int i = start; i < end; i++) { if (StringUtil.isWhitespace(ch[i])) { ch[i] = ' '; } } // Left-trim the string. while (start < end) { c = ch[start]; if (c == ' ') { startWhitespace = true; start++; length--; } else { break; } } // Right-trim the string. while (length > 0) { c = ch[start + length - 1]; if (c == ' ') { endWhitespace = true; length--; } else { break; } } // Add a space if needed. if (length == 0) { if (startWhitespace || endWhitespace) { if (!sbLastWasWhitespace) { textBuffer.append(' '); tokenBuffer.append(' '); } sbLastWasWhitespace = true; } else { // This appears to be unreachable since the string is 0-length // to start, we trimmed and it's 0-length now. // TODO(yfriedman): Consider ripping out this whole function // and simplifying with the parent div's innerText. sbLastWasWhitespace = false; } allTextElements.add(textNode); return; } if (startWhitespace) { if (!sbLastWasWhitespace) { textBuffer.append(' '); tokenBuffer.append(' '); } } if (blockTagLevel == -1) { blockTagLevel = tagLevel; } textBuffer.append(ch, start, length); tokenBuffer.append(ch, start, length); if (endWhitespace) { textBuffer.append(' '); tokenBuffer.append(' '); } sbLastWasWhitespace = endWhitespace; nonWhitespaceTextElements.add(textNode); allTextElements.add(textNode); }
From source file:org.chromium.distiller.webdocument.WebTextBuilder.java
License:Open Source License
public void textNode(Text textNode, int tagLevel) { String text = textNode.getData(); if (text.isEmpty()) { return;/*from w w w . ja v a2 s .co m*/ } textBuffer += text; allTextNodes.add(textNode); if (StringUtil.isStringAllWhitespace(text)) { return; } int thisWords = StringUtil.countWords(text); numWords += thisWords; if (inAnchor) { numAnchorWords += thisWords; } lastNonWhitespaceNode = allTextNodes.size() - 1; if (firstNonWhitespaceNode < firstNode) { firstNonWhitespaceNode = lastNonWhitespaceNode; } if (blockTagLevel == -1) { blockTagLevel = tagLevel; } }
From source file:org.nsesa.editor.gwt.an.drafting.client.ui.main.document.DraftingDocumentController.java
License:EUPL
@Override public void registerListeners() { documentScrollToEventHandlerRegistration = clientFactory.getEventBus() .addHandler(DocumentScrollToEvent.TYPE, new DocumentScrollToEventHandler() { @Override//from w w w . ja v a2 s. c om public void onEvent(DocumentScrollToEvent event) { sourceFileController.scrollTo(event.getTarget(), event.getOffset()); } }); // forward the resize event resizeEventHandlerRegistration = clientFactory.getEventBus().addHandler(ResizeEvent.TYPE, new ResizeEventHandler() { @Override public void onEvent(ResizeEvent event) { documentEventBus.fireEvent(event); view.setDocumentHeight(event.getHeight()); } }); rteStructureChangedEventHandlerRegistration = clientFactory.getEventBus() .addHandler(RTEStructureChangedEvent.TYPE, new RTEStructureChangedEventHandler() { @Override public void onEvent(final RTEStructureChangedEvent event) { clientFactory.getScheduler().scheduleDeferred(new Scheduler.ScheduledCommand() { @Override public void execute() { handleRTEOverlayWidgetModify(event.getOverlayWidget()); } }); } }); selectionEventHandlerRegistration = clientFactory.getEventBus().addHandler(SelectionEvent.TYPE, new SelectionEventHandler() { @Override public void onEvent(SelectionEvent event) { if (event.getSelection().getRange() != null && !"".equalsIgnoreCase(event.getSelection().getRange().getText().trim())) { setCurrentSelectionRange(event.getSelection().getRange()); if (LOG.isLoggable(Level.FINE)) { LOG.fine("Current selection: " + (currentSelectionRange != null ? currentSelectionRange.getHtmlText() : "<<null>>")); } } } }); overlayWidgetSelectEventHandlerRegistration = documentEventBus.addHandler(OverlayWidgetSelectEvent.TYPE, new OverlayWidgetSelectEventHandler() { @Override public void onEvent(OverlayWidgetSelectEvent event) { final OverlayWidget activeOverlayWidget = event.getOverlayWidget(); sourceFileController.setActiveOverlayWidget(activeOverlayWidget); sourceController.setOverlayWidget(activeOverlayWidget); if (activeOverlayWidget != null) { final OverlayWidget block = AkomaNtosoUtil.findEnclosingBlock(activeOverlayWidget); if (block != null) { //actionBarCreatePanelController.setOverlayWidget(block); //actionBarController.attach(block, DraftingDocumentController.this); // actionBarController.setLocation(locator.getLocation(block, document.getLanguageIso(), true)); numberingController.setOverlayWidget(block); } pickerController.setOverlayWidget(activeOverlayWidget); pathController.setOverlayWidget(activeOverlayWidget); // set the cursor final Range browserRange = Selection.getBrowserRange(); if (browserRange != null) { final OverlayWidgetHolder holder = new OverlayWidgetHolder(); activeOverlayWidget.walk(new OverlayWidgetWalker.DefaultOverlayWidgetVisitor() { @Override public boolean visit(OverlayWidget visited) { if (holder.getOverlayWidget() == null /* only find the first one */ && visited.getOverlayElement() .getClassName().contains("caretPosition")) { holder.setOverlayWidget(visited); return false; } return true; } }); if (holder.getOverlayWidget() == null) { activeOverlayWidget.walk(new OverlayWidgetWalker.DefaultOverlayWidgetVisitor() { @Override public boolean visit(OverlayWidget visited) { if (holder.getOverlayWidget() == null /* only find the first one */ && activeOverlayWidget != visited) { if (AkomaNtosoUtil.representsNum(visited)) { holder.setOverlayWidget(visited.getNextSibling( new OverlayWidgetSelector.AnyOverlayWidgetSelector())); } return false; } return true; } }); } final OverlayWidget toFocus = holder.getOverlayWidget() != null ? holder.getOverlayWidget() : activeOverlayWidget; activeOverlayWidget.getOverlayElement().focus(); final Text text = NodeUtil.getText(toFocus.getOverlayElement(), true); if (text != null) { final String trimmedContent = text.getData().trim(); if (toFocus.getOverlayElement().getClassName().contains("caretPosition") || (trimmedContent.startsWith("{")) && trimmedContent.endsWith("}")) { Selection.getSelection().setRange(new Range(new RangeEndPoint(text, true), new RangeEndPoint(text, false))); } } else { // no text part found? Hmmm ... } // clean up the caret position toFocus.getOverlayElement().removeClassName("caretPosition"); } } } }); numberingTypeEventHandlerRegistration = documentEventBus.addHandler(OverlayWidgetNumberingTypeEvent.TYPE, new OverlayWidgetNumberingTypeEventHandler() { @Override public void onEvent(OverlayWidgetNumberingTypeEvent event) { event.getOverlayWidget().setOrigin(OverlayWidgetOrigin.GENERATED); setNumbering(event.getOverlayWidget().getParentOverlayWidget(), event.getNumberingType()); } }); formatEventHandlerRegistration = documentEventBus.addHandler(OverlayWidgetFormatEvent.TYPE, new OverlayWidgetFormatEventHandler() { @Override public void onEvent(OverlayWidgetFormatEvent event) { event.getOverlayWidget().setOrigin(OverlayWidgetOrigin.GENERATED); setFormat(event.getOverlayWidget().getParentOverlayWidget(), event.getFormat()); } }); // forward the critical error event criticalEventHandlerRegistration = documentEventBus.addHandler(CriticalErrorEvent.TYPE, new CriticalErrorEventHandler() { @Override public void onEvent(CriticalErrorEvent event) { clientFactory.getEventBus().fireEvent(event); } }); // forward the confirmation event confirmationEventHandlerRegistration = documentEventBus.addHandler(ConfirmationEvent.TYPE, new ConfirmationEventHandler() { @Override public void onEvent(ConfirmationEvent event) { clientFactory.getEventBus().fireEvent(event); } }); // forward the notification event to the parent event bus notificationEventHandlerRegistration = documentEventBus.addHandler(NotificationEvent.TYPE, new NotificationEventHandler() { @Override public void onEvent(NotificationEvent event) { clientFactory.getEventBus().fireEvent(event); } }); // handle requests to switch the document tabs switchTabEventHandlerRegistration = documentEventBus.addHandler(SwitchTabEvent.TYPE, new SwitchTabEventHandler() { @Override public void onEvent(SwitchTabEvent event) { view.switchToTab(event.getTabIndex()); } }); documentToggleStructureEventHandler = documentEventBus.addHandler(DocumentToggleStructureEvent.TYPE, new DocumentToggleStructureEventHandler() { @Override public void onEvent(DocumentToggleStructureEvent event) { applyState(StructureViewMode.KEY, new ActiveState(event.isToggle())); } }); overlayWidgetModifyHandlerRegistration = documentEventBus.addHandler(OverlayWidgetModifyEvent.TYPE, new OverlayWidgetModifyEventHandler() { @Override public void onEvent(OverlayWidgetModifyEvent event) { documentEventBus.fireEvent(new OverlayWidgetSelectEvent(event.getOverlayWidget(), DraftingDocumentController.this)); } }); overlayWidgetDeleteHandlerRegistration = documentEventBus.addHandler(OverlayWidgetDeleteEvent.TYPE, new OverlayWidgetDeleteEventHandler() { @Override public void onEvent(OverlayWidgetDeleteEvent event) { handleOverlayWidgetDelete(event.getOverlayWidget()); } }); overlayWidgetNewEventHandlerRegistration = documentEventBus.addHandler(OverlayWidgetNewEvent.TYPE, new OverlayWidgetNewEventHandler() { @Override public void onEvent(final OverlayWidgetNewEvent event) { final OverlayWidget activeOverlayWidget = sourceFileController.getActiveOverlayWidget(); if (AkomaNtosoUtil.representsBlock(activeOverlayWidget)) { OverlayWidget result = event.getChild(); result.setOrigin(OverlayWidgetOrigin.GENERATED); OverlaySnippet snippet = overlaySnippetFactory.getSnippet(activeOverlayWidget); if (snippet != null) { overlaySnippetEvaluator.addEvaluator(new DefaultNumEvaluator(clientFactory, overlayWidgetInjectionStrategy, locator, result, event.getParentOverlayWidget(), event.getReference())); final String content = snippet.getContent(overlaySnippetEvaluator); if (content != null) { result.getOverlayElement().setInnerHTML(content); result.getChildOverlayWidgets().clear(); result = overlayFactory.getAmendableWidget(result.getOverlayElement()); overlayWidgetInjectionStrategy.injectAsSibling(activeOverlayWidget, result); result.walk(new OverlayWidgetWalker.DefaultOverlayWidgetVisitor() { @Override public boolean visit(OverlayWidget visited) { //if (AkomaNtosoUtil.representsBlock(visited)) { visited.setUIListener(sourceFileController); //} return super.visit(visited); } }); // make sure we can edit this result.setAmendable(true); markOverlayWidgetAsAmendable(result); documentEventBus.fireEvent( new OverlayWidgetSelectEvent(result, DraftingDocumentController.this)); reCalculateNumbering(activeOverlayWidget.getParentOverlayWidget()); redrawOutline(activeOverlayWidget.getRoot()); } } } } }); // listen for keyboard combos keyComboHandlerRegistration = clientFactory.getEventBus().addHandler(KeyComboEvent.TYPE, new KeyComboEventHandler() { @Override public void onEvent(KeyComboEvent event) { event.getNativeEvent().preventDefault(); final OverlayWidget activeOverlayWidget = sourceFileController.getActiveOverlayWidget(); if (ctrlEnter.equals(event.getKeyCombo())) { // ------------- CTRL + ENTER ------------- if (!actionBarCreatePanelControllerPopup.isShowing()) { if (activeOverlayWidget != null) { actionBarCreatePanelController.setOverlayWidget(activeOverlayWidget); actionBarCreatePanelControllerPopup .showRelativeTo(actionBarController.getView().getChildHandler()); actionBarCreatePanelController.getView().asWidget().setVisible(true); actionBarCreatePanelControllerPopup.show(); actionBarCreatePanelFocusPanel.setFocus(true); } } } else if (escape.equals(event.getKeyCombo())) { // ------------- Escape ------------- if (actionBarCreatePanelControllerPopup.isShowing()) { actionBarCreatePanelControllerPopup.hide(); actionBarCreatePanelFocusPanel.setFocus(false); } else { cancelModify(); } } else if (ctrlS.equals(event.getKeyCombo())) { // ------------- CTRL + s ------------- final String content = formatter .format(sourceFileController.getOverlayWidgets().get(0)); serviceFactory.getGwtDocumentService().saveDocumentContent( clientFactory.getClientContext(), document.getDocumentID(), content, new AsyncCallback<Void>() { @Override public void onFailure(Throwable caught) { clientFactory.getEventBus().fireEvent( new CriticalErrorEvent("Could not save document.", caught)); } @Override public void onSuccess(Void result) { // all fine! clientFactory.getEventBus().fireEvent( new NotificationEvent("Document successfully saved.")); } }); } else if (downArrow.equals(event.getKeyCombo())) { // ------------- Down arrow ------------- if (actionBarCreatePanelControllerPopup.isShowing()) { actionBarCreatePanelFocusPanel.setFocus(true); actionBarCreatePanelController.highlightNext(); } else { final OverlayWidget next = activeOverlayWidget != null ? activeOverlayWidget.next(upDownOverlayWidgetSelector) : sourceFileController.getOverlayWidgets().get(0); if (next != null) { documentEventBus.fireEvent( new OverlayWidgetSelectEvent(next, DraftingDocumentController.this)); clientFactory.getEventBus().fireEvent(new DocumentScrollToEvent(next.asWidget(), DraftingDocumentController.this, false, SCROLL_TO_OFFSET)); } } } else if (upArrow.equals(event.getKeyCombo())) { // ------------- Up arrow ------------- if (actionBarCreatePanelControllerPopup.isShowing()) { actionBarCreatePanelFocusPanel.setFocus(true); actionBarCreatePanelController.highlightPrevious(); } else { if (activeOverlayWidget != null) { final OverlayWidget previous = activeOverlayWidget .previous(upDownOverlayWidgetSelector); if (previous != null) { documentEventBus.fireEvent(new OverlayWidgetSelectEvent(previous, DraftingDocumentController.this)); clientFactory.getEventBus() .fireEvent(new DocumentScrollToEvent(previous.asWidget(), DraftingDocumentController.this, false, SCROLL_TO_OFFSET)); } } } } else if (enter.equals(event.getKeyCombo())) { // ------------- Single ENTER ------------- if (actionBarCreatePanelControllerPopup.isShowing()) { actionBarCreatePanelControllerPopup.hide(); // there is no need to scroll into document // clientFactory.getEventBus().fireEvent(new DocumentScrollToEvent(activeOverlayWidget.asWidget(), DraftingDocumentController.this, false, SCROLL_TO_OFFSET)); final OverlayWidget selectedSibling = actionBarCreatePanelController .getSelectedSibling(); if (selectedSibling != null) { LOG.info("Selected as sibling: " + selectedSibling); final com.google.gwt.user.client.Element clone = DOM .clone(selectedSibling.asWidget().getElement(), true); final OverlayWidget cloneSibling = overlayFactory.getAmendableWidget(clone); // number and format get given by the siblings // but they need to be explicitly set to null cloneSibling.setNumberingType( actionBarCreatePanelController.getSelectedSibling().getNumberingType()); cloneSibling.setFormat( actionBarCreatePanelController.getSelectedSibling().getFormat()); documentEventBus.fireEvent( new OverlayWidgetNewEvent(activeOverlayWidget.getParentOverlayWidget(), activeOverlayWidget, cloneSibling)); } final OverlayWidget selectedChild = actionBarCreatePanelController .getSelectedChild(); if (selectedChild != null) { LOG.info("Selected as child: " + selectedChild); final com.google.gwt.user.client.Element clone = DOM .clone(selectedChild.asWidget().getElement(), true); final OverlayWidget cloneChild = overlayFactory.getAmendableWidget(clone); cloneChild.setNumberingType( actionBarCreatePanelController.getSelectedChild().getNumberingType()); cloneChild.setFormat( actionBarCreatePanelController.getSelectedChild().getFormat()); documentEventBus.fireEvent(new OverlayWidgetNewEvent(activeOverlayWidget, activeOverlayWidget, cloneChild)); } } else if (activeOverlayWidget != null) { // we might not have selected a block, so go up final OverlayWidget block = AkomaNtosoUtil.findEnclosingBlock(activeOverlayWidget); if (block != null) { OverlayWidget result = overlayFactory .getAmendableWidget(block.getNamespaceURI(), block.getType()); result.setOrigin(OverlayWidgetOrigin.GENERATED); OverlaySnippet snippet = overlaySnippetFactory.getSnippet(block); if (snippet != null) { overlaySnippetEvaluator.addEvaluator(new DefaultNumEvaluator(clientFactory, overlayWidgetInjectionStrategy, locator, result, block.getParentOverlayWidget(), block)); final String content = snippet.getContent(overlaySnippetEvaluator); if (content != null) { result.getOverlayElement().setInnerHTML(content); result.getChildOverlayWidgets().clear(); result = overlayFactory.getAmendableWidget(result.getOverlayElement()); overlayWidgetInjectionStrategy.injectAsSibling(block, result); result.walk(new OverlayWidgetWalker.DefaultOverlayWidgetVisitor() { @Override public boolean visit(OverlayWidget visited) { // if (AkomaNtosoUtil.representsBlock(visited)) { visited.setUIListener(sourceFileController); // } return super.visit(visited); } }); // make sure we can edit this result.setAmendable(true); markOverlayWidgetAsAmendable(result); documentEventBus.fireEvent(new OverlayWidgetSelectEvent(result, DraftingDocumentController.this)); reCalculateNumbering(block.getParentOverlayWidget()); redrawOutline(block.getRoot()); } } } } } else if (tab.equals(event.getKeyCombo())) { // ------------- Single TAB ------------- } else if (delete.equals(event.getKeyCombo())) { // ------------- DELETE ------------- if (activeOverlayWidget != null) { handleOverlayWidgetDelete(activeOverlayWidget); restoreFocusOnViewPort(); } } else if (altUpArrow.equals(event.getKeyCombo())) { // ------------- CTRL + Up arrow ------------- if (activeOverlayWidget != null) { if (mover.canMoveUp(activeOverlayWidget)) { activeOverlayWidget.moveUp(); clientFactory.getScheduler().scheduleDeferred(new Scheduler.ScheduledCommand() { @Override public void execute() { documentEventBus.fireEvent(new OverlayWidgetSelectEvent( activeOverlayWidget, DraftingDocumentController.this)); clientFactory.getEventBus().fireEvent(new DocumentScrollToEvent( activeOverlayWidget.asWidget(), DraftingDocumentController.this, false, SCROLL_TO_OFFSET)); // TODO schedule via timer reCalculateNumbering(activeOverlayWidget.getParentOverlayWidget()); redrawOutline(activeOverlayWidget.getRoot()); } }); } } } else if (altDownArrow.equals(event.getKeyCombo())) { // ------------- CTRL + Down arrow ------------- if (activeOverlayWidget != null) { if (mover.canMoveDown(activeOverlayWidget)) { activeOverlayWidget.moveDown(); clientFactory.getScheduler().scheduleDeferred(new Scheduler.ScheduledCommand() { @Override public void execute() { documentEventBus.fireEvent(new OverlayWidgetSelectEvent( activeOverlayWidget, DraftingDocumentController.this)); clientFactory.getEventBus().fireEvent(new DocumentScrollToEvent( activeOverlayWidget.asWidget(), DraftingDocumentController.this, false, SCROLL_TO_OFFSET)); // TODO schedule via timer reCalculateNumbering(activeOverlayWidget.getParentOverlayWidget()); redrawOutline(activeOverlayWidget.getRoot()); } }); } } } } }); draftingToggleEventHandlerRegistration = clientFactory.getEventBus() .addHandler(VisualStructureToggleEvent.TYPE, new VisualStructureToggleEventHandler() { @Override public void onEvent(VisualStructureToggleEvent event) { //inlineEditorController.getRichTextEditor().toggleVisualStructure(event.isShown()); } }); draftingAttributesToggleEventHandlerRegistration = clientFactory.getEventBus().addHandler( VisualStructureAttributesToggleEvent.TYPE, new VisualStructureAttributesToggleEventHandler() { @Override public void onEvent(VisualStructureAttributesToggleEvent event) { //inlineEditorController.getRichTextEditor().toggleVisualStructureAttributes(event.isShown()); } }); }
From source file:org.nuxeo.ecm.platform.annotations.gwt.client.view.decorator.AnnoteaDecoratorVisitor.java
License:Apache License
private void processNode(Node node) { if (!(node.getNodeType() == Node.TEXT_NODE)) { if (node.getNodeName().equalsIgnoreCase("td")) { textToAnnotate -= 1;//from w ww . j a v a 2 s .c o m } return; } Text text = (Text) node; Node parent = text.getParentNode(); String data = text.getData(); processDecoratedNode(node, data, parent); node.getParentNode().removeChild(node); }
From source file:org.nuxeo.ecm.platform.annotations.gwt.client.view.decorator.AnnoteaDecoratorVisitor.java
License:Apache License
private void processToFirstNode(Node node) { if (!(node.getNodeType() == Node.TEXT_NODE)) { return;//from w ww .ja v a 2 s . c om } Text text = (Text) node; String data = text.getData(); if (data.length() < offset) { offset -= data.length(); return; } decorating = true; Node parent = text.getParentNode(); if (data.endsWith(" ")) { lastCharIsSpace = true; } String notInData = data.substring(0, offset); text.setData(notInData); processDecoratedNode(node, data.substring(offset), parent); }
From source file:org.nuxeo.ecm.platform.annotations.gwt.client.view.decorator.NuxeoDecoratorVisitor.java
License:Apache License
protected void processToFirstNode() { Log.debug("Decorator -- processToFirstNode: " + currentNode.getNodeName()); if (!(currentNode.getNodeType() == Node.TEXT_NODE)) { return;/* w w w. ja va2 s . c o m*/ } Text text = (Text) currentNode; String data = text.getData(); Log.debug("Decorator -- text data before: " + data); data = Utils.removeWhitespaces(data, currentNode); Log.debug("Decorator -- text data after: " + data); if (data.length() < startOffset) { startOffset -= data.length(); if (startNode.equals(endNode)) { endOffset -= data.length(); } return; } decorating = true; String notInData = data.substring(0, startOffset); decorateText(data.substring(startOffset)); text.setData(notInData); }