List of usage examples for com.google.gwt.dom.client Document createBRElement
public BRElement createBRElement()
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))); }