Example usage for com.google.gwt.safehtml.shared SafeHtmlBuilder append

List of usage examples for com.google.gwt.safehtml.shared SafeHtmlBuilder append

Introduction

In this page you can find the example usage for com.google.gwt.safehtml.shared SafeHtmlBuilder append.

Prototype

public SafeHtmlBuilder append(SafeHtml html) 

Source Link

Document

Appends the contents of another SafeHtml object, without applying HTML-escaping to it.

Usage

From source file:org.geomajas.quickstart.mobile.client.view.cellist.FeatureInfoList.java

License:Open Source License

@Override
public void render(SafeHtmlBuilder safeHtmlBuilder, final T model) {
    final MCheckBox mCheckBox1 = new MCheckBox();
    // mCheckBox1.setText("again");
    mCheckBox1.setImportant(true);/*ww w .  j ava2s  .  c  om*/
    safeHtmlBuilder.append(template.content(getDisplayString(model)));
}

From source file:org.glom.web.client.ui.cell.NumericCell.java

License:Open Source License

@Override
public void render(final Context context, final Double value, final SafeHtmlBuilder sb) {
    if (value == null) {
        // The value is from an empty row.
        sb.appendHtmlConstant(" ");
        return;//from  ww w. j  a v  a 2 s  . com
    }

    // set the foreground color to red if the number is negative and this is requested
    if (useAltColorForNegatives && value.doubleValue() < 0) {
        // The default alternative color in libglom is red.
        colorCSSProp = SafeHtmlUtils.fromString("color: #FF0000;");
    }

    // Convert the number to a string and set some CSS properties on the text.
    // The overflow and text-overflow properties tell the browser to add an ellipsis when the text overflows the
    // table cell.
    // FIXME this isn't using safe html correctly!
    sb.appendHtmlConstant("<div style=\"overflow: hidden; text-overflow: ellipsis; " + colorCSSProp.asString()
            + backgroundColorCSSProp.asString() + "\">");
    sb.append(SafeHtmlUtils.fromString(currencyCode + numberFormat.format(value)));
    sb.appendHtmlConstant("</div>");

}

From source file:org.glom.web.client.ui.cell.TextCell.java

License:Open Source License

@Override
public void render(final Context context, final String value, final SafeHtmlBuilder sb) {
    if (value == null) {
        // The value is from an empty row.
        sb.appendHtmlConstant("&nbsp;");
        return;//from   w  ww  .  j a  va 2  s .c om
    }

    // Set the text and some CSS properties for the text.
    // The overflow and text-overflow properties tell the browser to add an ellipsis when the text overflows the
    // table cell.
    // FIXME this isn't using safe html correctly!
    sb.appendHtmlConstant("<div style=\"overflow: hidden; text-overflow: ellipsis; " + colorCSSProp.asString()
            + backgroundColorCSSProp.asString() + "\">");
    sb.append(SafeHtmlUtils.fromString(value));
    sb.appendHtmlConstant("</div>");

}

From source file:org.glom.web.client.ui.details.DetailsCell.java

License:Open Source License

public void setData(final DataItem dataItem) {
    detailsData.clear();/*w  w w  .ja va 2 s. c om*/

    if (dataItem == null) {
        return;
    }

    Formatting formatting = layoutItem.getFormatting();

    // FIXME use the cell renderers from the list view to render the information here
    switch (this.dataType) {
    case TYPE_BOOLEAN:
        final CheckBox checkBox = new CheckBox();
        checkBox.setValue(dataItem.getBoolean());
        checkBox.addClickHandler(new ClickHandler() {

            @Override
            public void onClick(final ClickEvent event) {
                // don't let users change the checkbox
                checkBox.setValue(dataItem.getBoolean());
            }
        });
        detailsData.add(checkBox);
        break;
    case TYPE_NUMERIC:
        if (formatting == null) {
            GWT.log("setData(): formatting is null");
            formatting = new Formatting(); // To avoid checks later.
        }
        final NumericFormat numericFormat = formatting.getNumericFormat();
        final NumberFormat gwtNumberFormat = Utils.getNumberFormat(numericFormat);

        // set the foreground color to red if the number is negative and this is requested
        if (numericFormat.getUseAltForegroundColorForNegatives() && dataItem.getNumber() < 0) {
            // The default alternative color in libglom is red.
            detailsData.getElement().getStyle()
                    .setColor(NumericFormat.getAlternativeColorForNegativesAsHTMLColor());
        }

        final String currencyCode = StringUtils.isEmpty(numericFormat.getCurrencySymbol()) ? ""
                : numericFormat.getCurrencySymbol().trim() + " ";
        detailsLabel.setText(currencyCode + gwtNumberFormat.format(dataItem.getNumber()));
        detailsData.add(detailsLabel);
        break;
    case TYPE_DATE:
    case TYPE_TIME:
    case TYPE_TEXT:
        final String text = StringUtils.defaultString(dataItem.getText());

        // Deal with multiline text differently than single line text.
        if ((formatting != null) && (formatting.getTextFormatMultilineHeightLines() > 1)) {
            detailsData.getElement().getStyle().setOverflow(Overflow.AUTO);
            // Convert '\n' to <br/> escaping the data so that it won't be rendered as HTML.
            try {
                // JavaScript requires the charsetName to be "UTF-8". CharsetName values that work in Java (such as
                // "UTF8") will not work when compiled to JavaScript.
                final String utf8NewLine = new String(new byte[] { 0x0A }, "UTF-8");
                final String[] lines = text.split(utf8NewLine);
                final SafeHtmlBuilder sb = new SafeHtmlBuilder();
                for (final String line : lines) {
                    sb.append(SafeHtmlUtils.fromString(line));
                    sb.append(SafeHtmlUtils.fromSafeConstant("<br/>"));
                }

                // Manually add the HTML to the detailsData container.
                final DivElement div = Document.get().createDivElement();
                div.setInnerHTML(sb.toSafeHtml().asString());
                detailsData.getElement().appendChild(div);

                // Expand the width of detailsData if a vertical scrollbar has been placed on the inside of the
                // detailsData container.
                final int scrollBarWidth = detailsData.getOffsetWidth() - div.getOffsetWidth();
                if (scrollBarWidth > 0) {
                    // A vertical scrollbar is on the inside.
                    detailsData.setWidth((detailsData.getOffsetWidth() + scrollBarWidth + 4) + "px");
                }

                // TODO Add horizontal scroll bars when detailsData expands beyond its container.

            } catch (final UnsupportedEncodingException e) {
                // If the new String() line throws an exception, don't try to add the <br/> tags. This is unlikely
                // to happen but we should do something if it does.
                detailsLabel.setText(text);
                detailsData.add(detailsLabel);
            }

        } else {
            final SingleLineText textPanel = new SingleLineText(text);
            detailsData.add(textPanel);
        }
        break;
    case TYPE_IMAGE:
        final Image image = new Image();
        final String imageDataUrl = dataItem.getImageDataUrl();
        if (imageDataUrl != null) {
            image.setUrl(imageDataUrl);

            // Set an arbitrary default size:
            // image.setPixelSize(200, 200);
        }

        detailsData.add(image);
        break;
    default:
        break;
    }

    this.dataItem = dataItem;

    // enable the navigation button if it's safe
    if (openButton != null && openButtonHandlerReg != null && this.dataItem != null) {
        openButton.setEnabled(true);
    }

}

From source file:org.glom.web.client.ui.details.RelatedListTable.java

License:Open Source License

private static int initializeExepectedHeight() {
    // TODO Use a real RelatedListTable instead of building one manually. It's probably better to do this when
    // RelatedListTables are created in Portal instead of DetailsActivity.

    // This table simulates a related list with one row containing a Text cell and a Button cell.
    final SafeHtmlBuilder tableBuilder = new SafeHtmlBuilder();
    tableBuilder.append(SafeHtmlUtils.fromSafeConstant(
            "<table class=\"data-list\"><thead><tr><th>TH</th><th>BH</th></tr></thead><tbody>"));
    for (int i = 0; i < MAX_TABLE_ROWS; i++) {
        tableBuilder.append(SafeHtmlUtils
                .fromSafeConstant("<tr><td>T</td><td><button type=\"button\">B</button></td></tr>"));
    }/* www.ja va  2 s  .c  o  m*/
    tableBuilder.append(SafeHtmlUtils.fromSafeConstant("</tbody></head>"));
    final HTML table = new HTML(tableBuilder.toSafeHtml());

    // The pager
    final SimplePager pager = new SimplePager();
    pager.addStyleName("pager");

    // Pack the table and pager as they are found in the details view.
    final FlowPanel group = new FlowPanel();
    group.setStyleName("group");
    final FlowPanel subgroup = new FlowPanel();
    subgroup.setStyleName("portal");
    subgroup.add(table);
    subgroup.add(pager);
    group.add(subgroup);

    // Calculate the height similar to Utils.getWidgetHeight().
    final Document doc = Document.get();
    com.google.gwt.dom.client.Element div = doc.createDivElement();
    div.getStyle().setVisibility(Visibility.HIDDEN);
    div.appendChild(group.getElement().<com.google.gwt.dom.client.Element>cast());
    doc.getBody().appendChild(div);
    final int relatedListTableHeight = group.getElement().getFirstChildElement().getOffsetHeight();

    // remove the div from the from the document
    doc.getBody().removeChild(div);
    div = null;

    return relatedListTableHeight;
}

From source file:org.gss_project.gss.web.client.FileList.java

License:Open Source License

/**
 * Construct the file list widget. This entails setting up the widget
 * layout, fetching the number of files in the current folder from the
 * server and filling the local file cache of displayed files with data from
 * the server, as well.//from  w  w  w.  j a  v a 2  s  . c  o  m
 *
 * @param _images
 */
public FileList(Images _images) {
    images = _images;
    DragAndDropCellTable.Resources resources = GWT.create(TableResources.class);
    ProvidesKey<FileResource> keyProvider = new ProvidesKey<FileResource>() {

        @Override
        public Object getKey(FileResource item) {
            return item.getUri();
        }

    };
    celltable = new DragAndDropCellTable<FileResource>(GSS.VISIBLE_FILE_COUNT, resources, keyProvider);

    DragAndDropColumn<FileResource, ImageResource> status = new DragAndDropColumn<FileResource, ImageResource>(
            new ImageResourceCell() {
                @Override
                public boolean handlesSelection() {
                    return false;
                }
            }) {
        @Override
        public ImageResource getValue(FileResource entity) {
            return getFileIcon(entity);
        }

    };
    celltable.addColumn(status, "");

    initDragOperation(status);
    final DragAndDropColumn<FileResource, SafeHtml> nameColumn = new DragAndDropColumn<FileResource, SafeHtml>(
            new SafeHtmlCell()) {

        @Override
        public SafeHtml getValue(FileResource object) {
            SafeHtmlBuilder sb = new SafeHtmlBuilder();
            sb.append(Templates.INSTANCE.filenameSpan(object.getName()));
            if (object.getContentType().endsWith("png") || object.getContentType().endsWith("gif")
                    || object.getContentType().endsWith("jpeg")) {
                sb.appendHtmlConstant("&nbsp;")
                        .append(Templates.INSTANCE.viewLink(
                                GSS.get().getTopPanel().getFileMenu().getDownloadURL(object),
                                object.getOwner() + " : " + object.getPath() + object.getName()));
            }

            return sb.toSafeHtml();
        }

    };
    initDragOperation(nameColumn);
    celltable.addColumn(nameColumn, nameHeader = new SortableHeader("Name"));
    allHeaders.add(nameHeader);
    //nameHeader.setSorted(true);
    //nameHeader.toggleReverseSort();
    nameHeader.setUpdater(new FileValueUpdater(nameHeader, "name"));
    celltable.redrawHeaders();

    SortableHeader aheader;
    DragAndDropColumn<FileResource, String> aColumn;
    celltable.addColumn(aColumn = new DragAndDropColumn<FileResource, String>(new TextCell()) {
        @Override
        public String getValue(FileResource object) {
            return GSS.get().findUserFullName(object.getOwner());
        }
    }, aheader = new SortableHeader("Owner"));
    initDragOperation(aColumn);
    allHeaders.add(aheader);
    aheader.setUpdater(new FileValueUpdater(aheader, "owner"));
    celltable.addColumn(aColumn = new DragAndDropColumn<FileResource, String>(new TextCell()) {
        @Override
        public String getValue(FileResource object) {
            // TODO Auto-generated method stub
            return object.getPath();
        }
    }, aheader = new SortableHeader("Path"));
    initDragOperation(aColumn);
    allHeaders.add(aheader);

    aheader.setUpdater(new FileValueUpdater(aheader, "path"));
    celltable.addColumn(aColumn = new DragAndDropColumn<FileResource, String>(new TextCell()) {
        @Override
        public String getValue(FileResource object) {
            if (object.isVersioned())
                return object.getVersion().toString();
            return "-";
        }
    }, aheader = new SortableHeader("Version"));
    initDragOperation(aColumn);
    allHeaders.add(aheader);
    aheader.setUpdater(new FileValueUpdater(aheader, "version"));
    celltable.addColumn(aColumn = new DragAndDropColumn<FileResource, String>(new TextCell()) {
        @Override
        public String getValue(FileResource object) {
            // TODO Auto-generated method stub
            return object.getFileSizeAsString();
        }
    }, aheader = new SortableHeader("Size"));
    initDragOperation(aColumn);
    allHeaders.add(aheader);
    aheader.setUpdater(new FileValueUpdater(aheader, "size"));
    celltable.addColumn(aColumn = new DragAndDropColumn<FileResource, String>(new TextCell()) {
        @Override
        public String getValue(FileResource object) {
            return formatter.format(object.getModificationDate());
        }
    }, aheader = new SortableHeader("Last Modified"));
    allHeaders.add(aheader);
    aheader.setUpdater(new FileValueUpdater(aheader, "date"));

    provider.addDataDisplay(celltable);
    celltable.addDragStopHandler(dragStop);
    celltable.addDragStartHandler(new DragStartEventHandler() {

        public void onDragStart(DragStartEvent event) {
            FileResource value = event.getDraggableData();

            com.google.gwt.dom.client.Element helper = event.getHelper();
            SafeHtmlBuilder sb = new SafeHtmlBuilder();
            sb.appendHtmlConstant("<b>");
            DisplayHelper.log(value.getName());
            if (getSelectedFiles().size() == 1)
                sb.appendEscaped(value.getName());
            else
                sb.appendEscaped(getSelectedFiles().size() + " files");
            sb.appendHtmlConstant("</b>");
            helper.setInnerHTML(sb.toSafeHtml().asString());

        }
    });

    VerticalPanel vp = new VerticalPanel();
    vp.setWidth("100%");
    pagerTop = new GssSimplePager(GssSimplePager.TextLocation.CENTER);
    pagerTop.setDisplay(celltable);
    uploadButtonTop = new Button("<span id='topMenu.file.upload'>"
            + AbstractImagePrototype.create(images.fileUpdate()).getHTML() + "&nbsp;Upload</span>");
    uploadButtonTop.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            new UploadFileCommand(null).execute();
        }
    });
    HorizontalPanel topPanel = new HorizontalPanel();
    topPanel.add(pagerTop);
    topPanel.add(uploadButtonTop);
    vp.add(topPanel);
    celltable.setWidth("100%");
    vp.add(celltable);
    pagerBottom = new GssSimplePager(GssSimplePager.TextLocation.CENTER);
    pagerBottom.setDisplay(celltable);
    HorizontalPanel bottomPanel = new HorizontalPanel();
    bottomPanel.add(pagerBottom);
    uploadButtonBottom = new Button("<span id='topMenu.file.upload'>"
            + AbstractImagePrototype.create(images.fileUpdate()).getHTML() + "&nbsp;Upload</span>");
    uploadButtonBottom.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            new UploadFileCommand(null).execute();
        }
    });
    bottomPanel.add(uploadButtonBottom);
    vp.add(bottomPanel);
    vp.setCellWidth(celltable, "100%");

    initWidget(vp);
    pagerBottom.setVisible(false);
    pagerTop.setVisible(false);

    celltable.setStyleName("gss-List");
    selectionModel = new MultiSelectionModel<FileResource>(keyProvider);

    Handler selectionHandler = new SelectionChangeEvent.Handler() {
        @Override
        public void onSelectionChange(com.google.gwt.view.client.SelectionChangeEvent event) {
            if (getSelectedFiles().size() == 1)
                GSS.get().setCurrentSelection(getSelectedFiles().get(0));
            else
                GSS.get().setCurrentSelection(getSelectedFiles());
        }
    };
    selectionModel.addSelectionChangeHandler(selectionHandler);

    celltable.setSelectionModel(selectionModel, GSSSelectionEventManager.<FileResource>createDefaultManager());
    celltable.setPageSize(GSS.VISIBLE_FILE_COUNT);

    //celltable.setKeyboardSelectionPolicy(KeyboardSelectionPolicy.ENABLED);
    Scheduler.get().scheduleIncremental(new RepeatingCommand() {

        @Override
        public boolean execute() {
            return fetchRootFolder();
        }
    });
    sinkEvents(Event.ONCONTEXTMENU);
    sinkEvents(Event.ONMOUSEUP);
    sinkEvents(Event.ONMOUSEDOWN);
    sinkEvents(Event.ONCLICK);
    sinkEvents(Event.ONKEYDOWN);
    sinkEvents(Event.ONDBLCLICK);
    GSS.preventIESelection();
}

From source file:org.gss_project.gss.web.client.SearchResults.java

License:Open Source License

/**
 * Construct the file list widget. This entails setting up the widget
 * layout, fetching the number of files in the current folder from the
 * server and filling the local file cache of displayed files with data from
 * the server, as well.//from   www  .  j a v a2  s. c om
 *
 * @param _images
 */
public SearchResults(Images _images) {
    images = _images;
    DragAndDropCellTable.Resources resources = GWT.create(TableResources.class);
    ProvidesKey<FileResource> keyProvider = new ProvidesKey<FileResource>() {

        @Override
        public Object getKey(FileResource item) {
            return item.getUri();
        }

    };

    celltable = new DragAndDropCellTable<FileResource>(GSS.VISIBLE_FILE_COUNT, resources, keyProvider) {
        @Override
        protected void onBrowserEvent2(Event event) {
            /*if (DOM.eventGetType((Event) event) == Event.ONMOUSEDOWN && DOM.eventGetButton((Event) event) == NativeEvent.BUTTON_RIGHT){
               fireClickEvent((Element) event.getEventTarget().cast());               
            }*/
            super.onBrowserEvent2(event);
        }
    };
    provider.addDataDisplay(celltable);
    celltable.addDragStopHandler(dragStop);
    celltable.addDragStartHandler(new DragStartEventHandler() {

        public void onDragStart(DragStartEvent event) {
            FileResource value = event.getDraggableData();

            com.google.gwt.dom.client.Element helper = event.getHelper();
            SafeHtmlBuilder sb = new SafeHtmlBuilder();
            sb.appendHtmlConstant("<b>");
            DisplayHelper.log(value.getName());
            if (getSelectedFiles().size() == 1)
                sb.appendEscaped(value.getName());
            else
                sb.appendEscaped(getSelectedFiles().size() + " files");
            sb.appendHtmlConstant("</b>");
            helper.setInnerHTML(sb.toSafeHtml().asString());

        }
    });
    DragAndDropColumn<FileResource, ImageResource> status = new DragAndDropColumn<FileResource, ImageResource>(
            new ImageResourceCell() {
                @Override
                public boolean handlesSelection() {
                    return false;
                }
            }) {
        @Override
        public ImageResource getValue(FileResource entity) {
            return getFileIcon(entity);
        }

    };
    celltable.addColumn(status, "");

    initDragOperation(status);
    final DragAndDropColumn<FileResource, SafeHtml> nameColumn = new DragAndDropColumn<FileResource, SafeHtml>(
            new SafeHtmlCell()) {

        @Override
        public SafeHtml getValue(FileResource object) {
            SafeHtmlBuilder sb = new SafeHtmlBuilder();
            sb.append(FileList.Templates.INSTANCE.filenameSpan(object.getName()));
            if (object.getContentType().endsWith("png") || object.getContentType().endsWith("gif")
                    || object.getContentType().endsWith("jpeg")) {
                sb.appendHtmlConstant("&nbsp;")
                        .append(FileList.Templates.INSTANCE.viewLink(
                                GSS.get().getTopPanel().getFileMenu().getDownloadURL(object),
                                object.getOwner() + " : " + object.getPath() + object.getName()));
            }

            return sb.toSafeHtml();
        }

    };
    initDragOperation(nameColumn);
    celltable.addColumn(nameColumn, "Name");

    DragAndDropColumn<FileResource, String> aColumn;
    celltable.addColumn(aColumn = new DragAndDropColumn<FileResource, String>(new TextCell()) {
        @Override
        public String getValue(FileResource object) {
            return GSS.get().findUserFullName(object.getOwner());
        }
    }, "Owner");
    initDragOperation(aColumn);

    celltable.addColumn(aColumn = new DragAndDropColumn<FileResource, String>(new TextCell()) {
        @Override
        public String getValue(FileResource object) {
            if (object.isDeleted())
                return object.getPath() + " (In Trash)";
            return object.getPath();
        }
    }, "Path");
    initDragOperation(aColumn);

    celltable.addColumn(aColumn = new DragAndDropColumn<FileResource, String>(new TextCell()) {
        @Override
        public String getValue(FileResource object) {
            if (object.isVersioned())
                return object.getVersion().toString();
            return "-";
        }
    }, "Version");
    initDragOperation(aColumn);

    celltable.addColumn(aColumn = new DragAndDropColumn<FileResource, String>(new TextCell()) {
        @Override
        public String getValue(FileResource object) {
            // TODO Auto-generated method stub
            return object.getFileSizeAsString();
        }
    }, "Size");
    initDragOperation(aColumn);

    celltable.addColumn(aColumn = new DragAndDropColumn<FileResource, String>(new TextCell()) {
        @Override
        public String getValue(FileResource object) {
            return formatter.format(object.getModificationDate());
        }
    }, "Last Modified");

    VerticalPanel vp = new VerticalPanel();
    vp.setWidth("100%");
    celltable.setWidth("100%");
    vp.add(searchResults);
    searchResults.addStyleName("gss-searchLabel");
    pagerTop = new GssSimplePager(GssSimplePager.TextLocation.CENTER);
    pagerTop.setDisplay(celltable);
    vp.add(pagerTop);
    vp.add(celltable);
    pager = new GssSimplePager(GssSimplePager.TextLocation.CENTER);
    pager.setDisplay(celltable);
    //celltable.setPageSize(2);

    vp.add(pager);
    vp.setCellWidth(celltable, "100%");

    initWidget(vp);

    //initWidget(celltable);
    celltable.setStyleName("gss-List");
    selectionModel = new MultiSelectionModel<FileResource>();

    Handler selectionHandler = new SelectionChangeEvent.Handler() {
        @Override
        public void onSelectionChange(com.google.gwt.view.client.SelectionChangeEvent event) {
            if (getSelectedFiles().size() == 1)
                GSS.get().setCurrentSelection(getSelectedFiles().get(0));
            else
                GSS.get().setCurrentSelection(getSelectedFiles());
            //contextMenu.setFiles(getSelectedFiles());
        }
    };
    selectionModel.addSelectionChangeHandler(selectionHandler);

    celltable.setSelectionModel(selectionModel, GSSSelectionEventManager.<FileResource>createDefaultManager());
    celltable.setPageSize(GSS.VISIBLE_FILE_COUNT);
    celltable.setKeyboardSelectionPolicy(KeyboardSelectionPolicy.ENABLED);
    Scheduler.get().scheduleIncremental(new RepeatingCommand() {

        @Override
        public boolean execute() {
            return fetchRootFolder();
        }
    });
    sinkEvents(Event.ONCONTEXTMENU);
    sinkEvents(Event.ONMOUSEUP);
    sinkEvents(Event.ONMOUSEDOWN);
    sinkEvents(Event.ONCLICK);
    sinkEvents(Event.ONKEYDOWN);
    sinkEvents(Event.ONDBLCLICK);
    GSS.preventIESelection();
}

From source file:org.guvnor.messageconsole.client.console.HyperLinkCell.java

License:Apache License

@Override
public void render(final Context context, final HyperLink value, final SafeHtmlBuilder sb) {
    if (value != null) {
        if (value.isLink()) {
            sb.append(
                    hyperLinkTemplate.hyperLink(SafeHtmlUtils.fromString(value.getLabel()), value.getLabel()));
        } else {//from w  ww.  j a v a2  s .  co m
            sb.append(textTemplate.text(value.getLabel(), value.getLabel()));
        }
    }
}

From source file:org.gwtbootstrap3.client.ui.gwt.ButtonCell.java

License:Apache License

@Override
public void render(com.google.gwt.cell.client.Cell.Context context, SafeHtml data, SafeHtmlBuilder sb) {
    String cssClasses = new StringBuilder("btn") //
            .append(" ") //
            .append(type.getCssName()) //
            .append(" ") //
            .append(size.getCssName()) //
            .toString();/*from w  ww  . jav a 2s  .c  o m*/

    String disabled = "";
    if (!enabled) {
        disabled = " disabled=\"disabled\"";
    }

    sb.appendHtmlConstant(
            "<button type=\"button\" class=\"" + cssClasses + "\" tabindex=\"-1\"" + disabled + ">");
    if (icon != null) {
        String iconHtml = new StringBuilder("<i class=\"") //
                .append(Styles.FONT_AWESOME_BASE) //
                .append(" ") //
                .append(icon.getCssName()) //
                .append("\"></i> ") //
                .toString();
        sb.appendHtmlConstant(iconHtml);
    }
    if (data != null) {
        sb.append(data);
    }
    sb.appendHtmlConstant("</button>");
}

From source file:org.hudsonci.maven.plugin.ui.gwt.buildinfo.widget.HyperlinkCell.java

License:Open Source License

@Override
public void render(Context context, Hyperlink link, SafeHtmlBuilder sb) {
    // Note: toString renders properly but getHTML doesn't; go figure.
    sb.append(SafeHtmlUtils.fromTrustedString(link.toString()));
}