Example usage for com.google.gwt.dom.client Document createBRElement

List of usage examples for com.google.gwt.dom.client Document createBRElement

Introduction

In this page you can find the example usage for com.google.gwt.dom.client Document createBRElement.

Prototype

public BRElement createBRElement() 

Source Link

Usage

From source file:com.google.speedtracer.client.visualizations.view.StackFrameRenderer.java

License:Apache License

public void render(Element parentElem, boolean attemptResymbolization) {
    assert (myElem == null) : "Render called twice for StackFrameRenderer!";

    myElem = parentElem.getOwnerDocument().createDivElement();
    Document document = myElem.getOwnerDocument();

    final Url resource = new Url(stackFrame.getUrl());
    String resourceName = resource.getLastPathComponent();
    resourceName = ("".equals(resourceName)) ? resource.getPath() : resourceName;

    // If we still don't have anything, replace with [unknown]
    String symbolName = (stackFrame.getFunctionName().equals("")) ? "[anonymous] "
            : stackFrame.getFunctionName() + "() ";

    myElem.appendChild(document.createTextNode(resourceName + "::"));
    myElem.appendChild(document.createTextNode(symbolName));
    // We make a link out of the line number which should pop open
    // the Source Viewer when clicked.
    AnchorElement lineLink = document.createAnchorElement();
    lineLink.getStyle().setProperty("whiteSpace", "nowrap");
    String columnStr = (stackFrame.getColumnOffset() > 0) ? " Col " + stackFrame.getColumnOffset() : "";
    lineLink.setInnerText("Line " + stackFrame.getLineNumber() + columnStr);
    lineLink.setHref("javascript:;");
    myElem.appendChild(lineLink);//w w w.  j  a va2  s  . co  m
    myElem.appendChild(document.createBRElement());
    stackTraceRenderer.getListenerManager()
            .manageEventListener(ClickEvent.addClickListener(lineLink, lineLink, new ClickListener() {
                public void onClick(ClickEvent event) {
                    stackTraceRenderer.getSourceClickListener().onSymbolClicked(resource.getUrl(), null,
                            stackFrame.getLineNumber(), stackFrame.getColumnOffset(), null);
                }
            }));

    myElem.setClassName(stackTraceRenderer.getResources().stackFrameRendererCss().stackFrame());
    parentElem.appendChild(myElem);

    if (attemptResymbolization) {
        // Add resymbolized data to frame/profile if it is available.
        SymbolServerController ssController = SymbolServerService
                .getSymbolServerController(new Url(stackTraceRenderer.getCurrentAppUrl()));
        if (ssController != null) {
            ssController.attemptResymbolization(resource.getUrl(), stackFrame.getFunctionName(), this,
                    stackTraceRenderer.getSourcePresenter());
        }
    }
}

From source file:com.google.speedtracer.client.visualizations.view.StackFrameRenderer.java

License:Apache License

/**
 * Renders the specified stack frame to the parent element, along with a
 * re-symbolized stack frame./*w ww  .j a  v  a2  s.  c o  m*/
 * 
 * @param sourceServer The source server URL that is needed to display a
 *          relative path for the source file
 * @param sourceViewerServer A {@link SourceViewerServer} that provides a GET
 *          API to support jump-to-IDE functionality. This is allowed to be
 *          null/unset.
 * @param sourceSymbol The symbol mapping in the original source for the
 *          function symbol in our stack frame.
 * @param sourcePresenter The {@link SourcePresenter} that will handle
 *          displaying the source of the resymbolized symbol.
 */
public void reSymbolize(final String sourceServer, final SourceViewerServer sourceViewerServer,
        final JsSymbol sourceSymbol, final SourcePresenter sourcePresenter) {
    assert (myElem != null) : "Element is null when attempting resymbolization in StackFrameRenderer";

    Document document = myElem.getOwnerDocument();
    AnchorElement symbolLink = document.createAnchorElement();

    symbolLink.setInnerText(sourceSymbol.getSymbolName());
    symbolLink.setHref("javascript:;");
    symbolLink.setClassName(stackTraceRenderer.getResources().stackFrameRendererCss().resymbolizedSymbol());
    myElem.appendChild(symbolLink);
    myElem.appendChild(document.createBRElement());
    stackTraceRenderer.getListenerManager()
            .manageEventListener(ClickEvent.addClickListener(symbolLink, symbolLink, new ClickListener() {
                public void onClick(ClickEvent event) {
                    sourcePresenter.showSource(sourceServer + sourceSymbol.getResourceUrl().getPath(),
                            sourceViewerServer, sourceSymbol.getLineNumber(), 0,
                            sourceSymbol.getAbsoluteFilePath());
                }
            }));
}

From source file:org.eurekastreams.web.client.ui.common.stream.renderers.content.ParsedContentRenderer.java

License:Apache License

/**
 * Renders a single segment into the supplied container element (appending to existing content).
 *
 * @param segment//from www.j  av a2s .c o m
 *            The segment.
 * @param parent
 *            The container element.
 * @param streamSearchLinkBuilder
 *            For building links for hashtags.
 */
public void renderSegment(final ContentSegment segment, final ComplexPanel parent,
        final StreamSearchLinkBuilder streamSearchLinkBuilder) {
    // Notes:
    // * The element and widget setters automatically HTML encode content, hence it is not explicitly done.
    // * Using plain elements instead of widgets to keep markup cleaner, except for internal links. Although the
    // internal links will go to the right place when implemented as plain anchors, IE will lose all its history.
    // (So really this is working around another IE bug.)

    final Element parentElement = parent.getElement();
    final Document doc = parentElement.getOwnerDocument();
    if (segment.isText()) {
        parentElement.appendChild(doc.createTextNode(segment.getContent()));
    } else if (segment.isLink()) {
        String url;
        if (segment.getContent().charAt(0) == '#' && (segment.getUrl() == null || segment.getUrl().isEmpty())) {
            // hashtag - determine URL to link to
            url = streamSearchLinkBuilder.buildHashtagSearchLink(segment.getContent(), null);
        } else {
            // "normal" link - target is known.
            url = segment.getUrl();
        }

        // May be internal or external; open in new window unless internal.
        if (url.charAt(0) == '#') {
            parent.add(new InlineHyperlink(segment.getContent(), url.substring(1)));
        } else {
            AnchorElement anchor = doc.createAnchorElement();
            anchor.setHref(url);
            anchor.appendChild(doc.createTextNode(segment.getContent()));
            anchor.setTarget("_blank");
            parentElement.appendChild(anchor);
        }
    } else if (segment.isTag() && "br/".equals(segment.getContent())) {
        parentElement.appendChild(doc.createBRElement());
    }
}

From source file:org.rstudio.core.client.dom.DomUtils.java

License:Open Source License

public static void setInnerText(Element el, String plainText) {
    el.setInnerText("");
    if (plainText == null || plainText.length() == 0)
        return;//from   www.j a  v a2 s.  c  o  m

    Document doc = el.getOwnerDocument();

    Pattern pattern = Pattern.create("\\n");
    int tail = 0;
    Match match = pattern.match(plainText, 0);
    while (match != null) {
        if (tail != match.getIndex()) {
            String line = plainText.substring(tail, match.getIndex());
            el.appendChild(doc.createTextNode(line));
        }
        el.appendChild(doc.createBRElement());
        tail = match.getIndex() + 1;
        match = match.nextMatch();
    }

    if (tail < plainText.length())
        el.appendChild(doc.createTextNode(plainText.substring(tail)));
}