Package com.google.gwt.dom.client

Examples of com.google.gwt.dom.client.Node


   * using, replace ours with the browser's.
   * @param paragraph
   * @return The spacer
   */
  protected BRElement getSpacer(Element paragraph) {
    Node last = paragraph.getLastChild();
    BRElement spacer = paragraph.getPropertyJSO(BR_REF).cast();
    if (spacer == null) {
      // Register our spacer, using one the browser put in if present
      spacer = isSpacer(last) ? last.<BRElement>cast() : Document.get().createBRElement();
      setupSpacer(paragraph, spacer);
    } else if (isSpacer(last) && last != spacer) {
      // The browser put a different one in by itself, so let's use that one
      if (spacer.hasParentElement()) {
        spacer.removeFromParent();
      }
      spacer = last.<BRElement>cast();
      setupSpacer(paragraph, spacer);
    }
    return spacer;
  }
View Full Code Here


   * @param toExcl
   * @param refChild
   */
  public static void moveNodes(Element parent, Node from, Node toExcl, Node refChild) {
    for (Node n = from; n != toExcl; ) {
      Node m = n;
      n = n.getNextSibling();
      parent.insertBefore(m, refChild);
    }
  }
View Full Code Here

  public static void removeNodes(Node from, Node toExcl) {
    if (from == null || !from.hasParentElement()) {
      return;
    }
    for (Node n = from; n != toExcl && n != null;) {
      Node r = n;
      n = n.getNextSibling();
      r.removeFromParent();
    }
  }
View Full Code Here

      boolean ret = false;
      ContentView renderedContent = getRenderedContentView();
      HtmlView filteredHtml = getFilteredHtmlView();

      ContentNode node = from;
      Node nodelet;
      if (node == null) {
        node = renderedContent.getFirstChild(this);
        nodelet = filteredHtml.getFirstChild(getImplNodelet());
      } else {
        nodelet = node.getImplNodelet();
      }

      while (node != null) {

        if (node.getImplNodelet() != nodelet) {
          node.setImplNodelet(nodelet);
        }

        if (DomHelper.isTextNode(nodelet)) {
          String target = ((ContentTextNode) node).getData();
          String txt = nodelet.<Text>cast().getData();
          String nodeletData = txt;
          int left = target.length() - txt.length();
          while (left > 0) {
            nodelet = filteredHtml.getNextSibling(nodelet);
            assert DomHelper.isTextNode(nodelet) : "Some random element!";
            nodeletData = nodelet.<Text>cast().getData();
            // TODO(danilatos): Is a StringBuilder more efficient here? On average, how many
            // string concatenations are expected?
            txt += nodeletData;
            left -= nodeletData.length();
          }
          assert target.equals(ContentTextNode.getNodeValueFromHtmlString(
                  txt.substring(0, target.length()))) : "Content & html text don't match!";
          if (left < 0) {
            if (nodelet.equals(notifyIfSplit)) {
              ret = true;
            }
            nodelet.<Text>cast().splitText(nodeletData.length() + left);
          }
        }

        nodelet = filteredHtml.getNextSibling(nodelet);
        node = renderedContent.getNextSibling(node);
View Full Code Here

    // TODO(danilatos): This implementation will skip over an html-only node
    // in the midst of other impl nodelets. This might not be desirable in
    // some contexts...
    assert isContentAttached();
    ContentNode node = this;
    Node nodelet = null;
    ContentView renderedContent = getRenderedContentView();
    while (node != toExcl) {
      nodelet = node.getImplNodelet();
      if (nodelet != null) {
        break;
View Full Code Here

        || toExcl.getParentElement() == from.getParentElement(),
        "invalid toExcl");

    Element containerNodelet = parent.getContainerNodelet();
    if (containerNodelet != null) {
      Node implRef = null;
      // Don't use getImplNodeletRightwards(), it's too clever
      for (ContentNode node = refChild; node != null; node = node.getNextSibling()) {
        if (node.getImplNodelet() != null) {
          Preconditions.checkState(node.getImplNodelet().hasParentElement(),
              "implNodelet not attached");
          implRef = node.getImplNodelet();
          break;
        }
      }

      if (implRef != null) {
        assert implRef.getParentElement() == containerNodelet;
        // Be robust if assertions are off
        containerNodelet = implRef.getParentElement();
        if (containerNodelet == null) {
          return;
        }
      }

      for (ContentNode node = from; node != toExcl; node = node.getNextSibling()) {
        if (node.isTextNode()) {
          ((ContentTextNode) node).normaliseImpl();
        }
        Node nodelet = node.getImplNodelet();
        if (nodelet != null) {
          containerNodelet.insertBefore(nodelet, implRef);
        }
      }
    } else {
      if (oldContainerNodelet != null) {
        for (ContentNode node = from; node != toExcl; node = node.getNextSibling()) {
          Node nodelet = node.getImplNodelet();
          if (nodelet != null) {
            nodelet.removeFromParent();
          }
        }
      }
    }
  }
View Full Code Here

  /**
   * @return true if the node is still attached w.r.t. the html implementation
   */
  public boolean isImplAttached() {
    // TODO(danilatos): Implement this as doing a filtered search up the filtered html tree
    Node nodelet = getImplNodelet();
    return nodelet != null && nodelet.hasParentElement();
  }
View Full Code Here

          (e.getChildCount() == 1 &&
            e.getFirstChild()
            .getChildCount() == 0);
        // Print element w/ children. One line each for start tag, child, end tag
        String pretty = startTag(e, false, multiLine);
        Node child = e.getFirstChild();
        Node startNodeAfter = selection.getFirst().getNodeAfter();
        Node endNodeAfter = selection.getSecond().getNodeAfter();
        while (child != null) {
          pretty += (multiLine && !singleLineHtml ? newLine(indent + 1) : "")
            + (printStartMarker && child.equals(startNodeAfter) ? startMarker : "")
            + (printEndMarker && child.equals(endNodeAfter) ? endMarker : "")
            + print(child, selection, indent + 1, multiLine);
View Full Code Here

      // Copy children from old container
      for (ContentNode node = getFirstChild(); node != null; node = node.getNextSibling()) {
        if (node.isTextNode()) {
          node.normaliseImpl();
        }
        Node implNodelet = node.getImplNodelet();
        if (implNodelet != null) {
          newNodelet.appendChild(implNodelet);
        }
      }
    }
View Full Code Here

      ContentNode oldChild = node;
      node = node.getNextSibling();

      if (affectImpl) {
        Node nodelet = oldChild.normaliseImpl();
        if (nodelet != null) {
          // removeFromParent() checks if parent is null
          nodelet.removeFromParent();
        }
      }

      removedNodes.add(oldChild);
      oldChild.removeFromShadowTree();
View Full Code Here

TOP

Related Classes of com.google.gwt.dom.client.Node

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.