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:com.ritchey.attendance.client.view.TextInputCell.java

License:Apache License

@Override
public void render(Context context, String value, SafeHtmlBuilder sb) {
    // Get the view data.
    Object key = context.getKey();
    ViewData viewData = getViewData(key);
    if (viewData != null && viewData.getCurrentValue().equals(value)) {
        clearViewData(key);/*from   w w  w  .  j  av a2s .co m*/
        viewData = null;
    }

    String s = (viewData != null) ? viewData.getCurrentValue() : value;
    if (s != null) {
        sb.append(template.input(s));
    } else {
        sb.appendHtmlConstant("<input type=\"text\"></input>");
    }
}

From source file:com.seanchenxi.gwt.serenity.client.view.impl.SerenityLayoutImpl.java

License:Apache License

public SerenityLayoutImpl() {
    SerenityResources.COMMON.commonCSS().ensureInjected();
    initWidget(UIBINDER.createAndBindUi(this));
    getElement().setId("main");
    resource.style().ensureInjected();//w  ww  .  j  a  va 2s .c o m
    header.setText(SerenityResources.MSG.page_Title());
    header.setSubText(SerenityResources.MSG.page_subTitle());
    header.getElement().setId("header");
    sidebarContainer.getElement().setId("sidebar");
    contentListContainer.getElement().setId("contents");
    SafeHtmlBuilder shb = new SafeHtmlBuilder();
    shb.append(FOOTER_TEMPLATE.copyright(
            DateTimeFormat.getFormat(DateTimeFormat.PredefinedFormat.YEAR).format(new Date()),
            UriUtils.fromSafeConstant(SerenityUtil.getWpBaseUrl()), Window.Location.getHost()));
    shb.append(FOOTER_TEMPLATE.poweredBy(UriUtils.fromSafeConstant(SerenityResources.MSG.wordpress_URL()),
            SerenityResources.MSG.wordpress_URL(), SerenityUtil.getWpNaming()));
    footer.setHTML(shb.toSafeHtml());
    footer.getElement().setId("footer");
}

From source file:com.seanchenxi.serenity.client.view.impl.SerenityLayoutImpl.java

License:Apache License

public SerenityLayoutImpl() {
    SerenityResources.COMMON.commonCSS().ensureInjected();
    initWidget(UIBINDER.createAndBindUi(this));
    resource.style().ensureInjected();// w ww  .j a v a 2s .  c o  m
    header.setText(SerenityResources.MSG.page_Title());
    header.setSubText(SerenityResources.MSG.page_subTitle());
    SafeHtmlBuilder shb = new SafeHtmlBuilder();
    shb.append(FOOTER_TEMPLATE.copyright(
            DateTimeFormat.getFormat(DateTimeFormat.PredefinedFormat.YEAR).format(new Date()),
            UriUtils.fromSafeConstant(SerenityUtil.getWpBaseUrl()), Window.Location.getHost()));
    shb.append(FOOTER_TEMPLATE.poweredBy(UriUtils.fromSafeConstant(SerenityResources.MSG.wordpress_URL()),
            SerenityResources.MSG.wordpress_URL(), SerenityUtil.getWpNaming()));
    footer.setHTML(shb.toSafeHtml());
}

From source file:com.sencha.gxt.cell.core.client.NumberCell.java

License:sencha.com license

@Override
public void render(Context context, Number value, SafeHtmlBuilder sb) {
    if (value != null) {
        sb.append(renderer.render(format.format(value)));
    }//from w w w . ja va 2  s . c o m
}

From source file:com.sencha.gxt.cell.core.client.SimpleSafeHtmlCell.java

License:sencha.com license

@Override
protected void render(Context context, SafeHtml data, SafeHtmlBuilder sb) {
    if (data != null) {
        sb.append(data);
    }//www  .ja v  a  2 s  .  c o  m
}

From source file:com.sencha.gxt.desktop.client.theme.base.container.DesktopLayoutDefaultAppearance.java

License:sencha.com license

@Override
public void render(SafeHtmlBuilder sb) {
    sb.append(template.template(resources.style()));
}

From source file:com.sencha.gxt.explorer.client.grid.WordWrapGridExample.java

License:sencha.com license

@Override
public Widget asWidget() {

    if (fp == null) {
        fp = new FramedPanel();
        fp.setHeadingText("Word Wrap Grid");
        fp.getHeader().setIcon(ExampleImages.INSTANCE.table());
        fp.setPosition(10, 10);/*w  w w  . j  a  v a  2s  .c om*/
        fp.setPixelSize(600, 400);
        new Resizable(fp, Dir.E, Dir.SE, Dir.S);

        ToolButton tb = new ToolButton(ToolButton.QUESTION);
        ToolTipConfig ttc = new ToolTipConfig("Example Info",
                "This example illustrates word wrap in grid headings and rows.");
        ttc.setMaxWidth(225);
        tb.setToolTipConfig(ttc);
        fp.addTool(tb);

        List<ColumnConfig<Row, ?>> ccs = new LinkedList<ColumnConfig<Row, ?>>();

        for (int i = 0; i < COLUMN_COUNT; i++) {
            ValueProvider<Row, String> cvp = rvp.getColumnValueProvider(i);
            SafeHtml sh = wrapString(createDummyText());
            ColumnConfig<Row, String> cc = new ColumnConfig<Row, String>(cvp, 200, sh);
            // Use a custom cell renderer to support word wrap in the grid's cells
            cc.setCell(new AbstractCell<String>() {
                @Override
                public void render(Context context, String value, SafeHtmlBuilder sb) {
                    if (value == null || value.isEmpty()) {
                        sb.appendHtmlConstant("&nbsp;");
                    } else {
                        sb.append(wrapString(value));
                    }
                }
            });
            ccs.add(cc);
        }

        final ColumnModel<Row> cm = new ColumnModel<Row>(ccs);

        final ListStore<Row> ls = new ListStore<Row>(new RowKeyProvider());
        ls.setAutoCommit(true);

        int columnCount = ccs.size();
        for (int i = 0; i < ROW_COUNT; i++) {
            Row row = new Row(columnCount);
            for (int j = 0; j < columnCount; j++) {
                row.setValue(j, createDummyText());
            }
            ls.add(row);
        }

        final Grid<Row> g = new Grid<Row>(ls, cm, new WordWrapGridView());
        g.getView().setColumnHeader(new WordWrapColumnHeader<Row>(g, cm));
        g.getView().setColumnLines(true);

        final GridInlineEditing<Row> gie = new GridInlineEditing<Row>(g) {
            protected void onScroll(ScrollEvent event) {
                // Suppress default action, which may result in canceling edit
            }
        };
        gie.setClicksToEdit(ClicksToEdit.TWO);
        gie.addStartEditHandler(new StartEditHandler<Row>() {
            @Override
            public void onStartEdit(StartEditEvent<Row> event) {
                GridCell cell = event.getEditCell();
                ColumnConfig<Row, ?> cc = cm.getColumn(cell.getCol());
                Field<Object> editor = (Field<Object>) gie.getEditor(cc);
                Element rowElement = g.getView().getRow(cell.getRow());
                // Resize the inline editor to the height of the row and style it to match the text
                int height = rowElement.getOffsetHeight() - 1;
                editor.setHeight(height);
                XElement cellElement = g.getView().getCell(cell.getRow(), cell.getCol()).cast();
                Style style = ((TextAreaAppearance) editor.getCell().getAppearance())
                        .getInputElement(editor.getElement()).getStyle();
                String fontSize = cellElement.getComputedStyle("fontSize");
                if (fontSize != null) {
                    style.setProperty("fontSize", fontSize);
                }
                String fontFamily = cellElement.getComputedStyle("fontFamily");
                if (fontFamily != null) {
                    style.setProperty("fontFamily", fontFamily);
                }
                style.setOverflow(Overflow.HIDDEN);
            }
        });

        for (ColumnConfig<Row, ?> cc : ccs) {
            @SuppressWarnings("unchecked")
            ColumnConfig<Row, String> scc = (ColumnConfig<Row, String>) cc;
            final TextArea ta = new TextArea();
            ta.setPreventScrollbars(true);
            ta.addKeyDownHandler(new KeyDownHandler() {
                @Override
                public void onKeyDown(KeyDownEvent event) {
                    // Allow the enter key to end grid inline editing
                    if (event.getNativeKeyCode() == KeyCodes.KEY_ENTER) {
                        Scheduler.get().scheduleFinally(new RepeatingCommand() {
                            @Override
                            public boolean execute() {
                                gie.completeEditing();
                                ta.clear();
                                return false;
                            }
                        });
                    }
                }
            });
            gie.addEditor(scc, ta);
        }

        g.addViewReadyHandler(new ViewReadyHandler() {
            @Override
            public void onViewReady(ViewReadyEvent event) {
                Info.display("onViewReady", "heading width=" + g.getView().getHeader().getOffsetWidth()
                        + ", height=" + g.getView().getHeader().getOffsetHeight());
                g.getView().getHeader().addResizeHandler(new ResizeHandler() {
                    @Override
                    public void onResize(ResizeEvent event) {
                        Info.display("onResize",
                                "heading width=" + event.getWidth() + ", height=" + event.getHeight());
                    }
                });
            }
        });

        fp.setWidget(g);

        fp.addButton(new TextButton("Set Heading Text", new SelectHandler() {
            @Override
            public void onSelect(SelectEvent event) {
                final Window w = new Window();
                w.setHeadingText("Set Heading Text");
                w.setPixelSize(300, 200);
                w.setResizable(false);
                w.setModal(true);
                VerticalLayoutContainer vlc = new VerticalLayoutContainer();
                w.setWidget(vlc);
                final IntegerSpinnerField index = new IntegerSpinnerField();
                index.setMinValue(0);
                index.setMaxValue(COLUMN_COUNT - 1);
                index.setValue(0);
                index.setAllowBlank(false);
                index.setSelectOnFocus(true);
                vlc.add(new FieldLabel(index, "Column Index"), new VerticalLayoutData(1, -1, M1));
                final TextArea text = new TextArea();
                vlc.add(new FieldLabel(text, "Heading Text"), new VerticalLayoutData(1, 1, M2));
                w.addButton(new TextButton("Cancel", new SelectHandler() {
                    @Override
                    public void onSelect(SelectEvent event) {
                        w.hide();
                    }
                }));
                w.addButton(new TextButton("OK", new SelectHandler() {
                    @Override
                    public void onSelect(SelectEvent event) {
                        if (index.validate()) {
                            w.hide();
                            SafeHtml newHeading;
                            String newText = text.getValue();
                            if (newText == null) {
                                newHeading = SafeHtmlUtils.fromSafeConstant("&nbsp;");
                            } else {
                                newHeading = wrapString(newText);
                            }
                            ColumnModel<Row> columnModel = g.getColumnModel();
                            columnModel.setColumnHeader(index.getValue(), newHeading);
                        }
                    }
                }));
                w.show();
                w.setFocusWidget(index);
            }
        }));

        fp.addButton(new TextButton("Set Cell Text", new SelectHandler() {
            @Override
            public void onSelect(SelectEvent event) {
                final Window w = new Window();
                w.setHeadingText("Set Cell Text");
                w.setPixelSize(300, 200);
                w.setResizable(false);
                w.setModal(true);
                VerticalLayoutContainer vlc = new VerticalLayoutContainer();
                w.setWidget(vlc);
                final IntegerSpinnerField rowIndex = new IntegerSpinnerField();
                rowIndex.setMinValue(0);
                rowIndex.setMaxValue(ROW_COUNT - 1);
                rowIndex.setValue(0);
                rowIndex.setAllowBlank(false);
                rowIndex.setSelectOnFocus(true);
                vlc.add(new FieldLabel(rowIndex, "Row Index"), new VerticalLayoutData(1, -1, M1));
                final IntegerSpinnerField columnIndex = new IntegerSpinnerField();
                columnIndex.setMinValue(0);
                columnIndex.setMaxValue(COLUMN_COUNT - 1);
                columnIndex.setValue(0);
                columnIndex.setAllowBlank(false);
                columnIndex.setSelectOnFocus(true);
                vlc.add(new FieldLabel(columnIndex, "Column Index"), new VerticalLayoutData(1, -1, M1));
                final TextArea text = new TextArea();
                vlc.add(new FieldLabel(text, "Cell Text"), new VerticalLayoutData(1, 1, M2));
                w.addButton(new TextButton("Cancel", new SelectHandler() {
                    @Override
                    public void onSelect(SelectEvent event) {
                        w.hide();
                    }
                }));
                w.addButton(new TextButton("OK", new SelectHandler() {
                    @Override
                    public void onSelect(SelectEvent event) {
                        if (rowIndex.validate() && columnIndex.validate()) {
                            w.hide();
                            String newText = text.getValue();
                            if (newText == null) {
                                newText = "";
                            }
                            Row row = ls.get(rowIndex.getValue());
                            row.setValue(columnIndex.getValue(), newText);
                            ls.update(row);
                        }
                    }
                }));
                w.show();
                w.setFocusWidget(rowIndex);
            }
        }));

        fp.addButton(new TextButton("Set Column Width", new SelectHandler() {
            @Override
            public void onSelect(SelectEvent event) {
                final Window w = new Window();
                w.setHeadingText("Set Column Width");
                w.setPixelSize(300, 150);
                w.setResizable(false);
                w.setModal(true);
                VerticalLayoutContainer vlc = new VerticalLayoutContainer();
                w.setWidget(vlc);
                final IntegerSpinnerField columnIndex = new IntegerSpinnerField();
                columnIndex.setMinValue(0);
                columnIndex.setMaxValue(COLUMN_COUNT - 1);
                columnIndex.setValue(0);
                columnIndex.setAllowBlank(false);
                columnIndex.setSelectOnFocus(true);
                vlc.add(new FieldLabel(columnIndex, "Column Index"), new VerticalLayoutData(1, -1, M1));
                final IntegerSpinnerField width = new IntegerSpinnerField();
                width.setMinValue(0);
                width.setValue(50);
                width.setAllowBlank(false);
                width.setSelectOnFocus(true);
                vlc.add(new FieldLabel(width, "Column Width"), new VerticalLayoutData(1, -1, M2));
                w.addButton(new TextButton("Cancel", new SelectHandler() {
                    @Override
                    public void onSelect(SelectEvent event) {
                        w.hide();
                    }
                }));
                w.addButton(new TextButton("OK", new SelectHandler() {
                    @Override
                    public void onSelect(SelectEvent event) {
                        if (columnIndex.validate() && width.validate()) {
                            w.hide();
                            g.getColumnModel().setColumnWidth(columnIndex.getValue(), width.getValue());
                        }
                    }
                }));
                w.show();
                w.setFocusWidget(columnIndex);
            }
        }));

        fp.addButton(new TextButton("Set Heading Height", new SelectHandler() {
            @Override
            public void onSelect(SelectEvent event) {
                final Window w = new Window();
                w.setHeadingText("Set Heading Height");
                w.setPixelSize(300, 250);
                w.setResizable(false);
                w.setModal(true);
                VerticalLayoutContainer vlc = new VerticalLayoutContainer();
                w.setWidget(vlc);
                vlc.add(new HTML(
                        "<span style='font: 12px tahoma,arial,verdana,sans-serif;'>Sets the size of the heading to a fixed height. If this height is less than the height of the heading text, the heading text will be truncated.<br><br>To restore automatic sizing, specify a value of -1.<br><br></span>"),
                        new VerticalLayoutData(1, -1, M1));
                final IntegerSpinnerField height = new IntegerSpinnerField();
                height.setMinValue(-1);
                height.setValue(50);
                height.setAllowBlank(false);
                height.setSelectOnFocus(true);
                vlc.add(new FieldLabel(height, "Heading Height"), new VerticalLayoutData(1, -1, M2));
                w.addButton(new TextButton("Cancel", new SelectHandler() {
                    @Override
                    public void onSelect(SelectEvent event) {
                        w.hide();
                    }
                }));
                w.addButton(new TextButton("OK", new SelectHandler() {
                    @Override
                    public void onSelect(SelectEvent event) {
                        if (height.validate()) {
                            w.hide();
                            g.getView().getHeader().setHeight(height.getValue());
                        }
                    }
                }));
                w.show();
                w.setFocusWidget(height);
            }
        }));

        fp.addButton(new TextButton("Get Heading Height", new SelectHandler() {
            @Override
            public void onSelect(SelectEvent event) {
                int headerHeight = g.getView().getHeader().getOffsetHeight();
                Info.display("getHeight", "height=" + headerHeight);
            }
        }));

        final ToggleButton fftb = new ToggleButton("Force Fit");
        fftb.addValueChangeHandler(new ValueChangeHandler<Boolean>() {
            @Override
            public void onValueChange(ValueChangeEvent<Boolean> event) {
                if (fftb.getValue()) {
                    columnWidths.save(g);
                    g.getView().setForceFit(true);
                } else {
                    g.getView().setForceFit(false);
                    columnWidths.restore(g);
                }
                g.getView().layout();
            }
        });
        fp.addButton(fftb);

        fp.show();
    }

    return fp;
}

From source file:com.sencha.gxt.theme.base.client.button.ButtonCellDefaultAppearance.java

License:sencha.com license

@Override
public void render(final ButtonCell<C> cell, Context context, C value, SafeHtmlBuilder sb) {
    String constantHtml = cell.getHTML();
    boolean hasConstantHtml = constantHtml != null && constantHtml.length() != 0;
    boolean isBoolean = value != null && value instanceof Boolean;
    // is a boolean always a toggle button?
    SafeHtml valueHtml = SafeHtmlUtils.fromTrustedString(hasConstantHtml ? cell.getText()
            : (value != null && !isBoolean) ? SafeHtmlUtils.htmlEscape(value.toString()) : "");

    ImageResource icon = cell.getIcon();
    IconAlign iconAlign = cell.getIconAlign();

    String cls = style.button();//from   w w w  . j  ava2  s. com
    String arrowCls = "";
    if (cell.getMenu() != null) {

        if (cell instanceof SplitButtonCell) {
            switch (cell.getArrowAlign()) {
            case RIGHT:
                arrowCls = style.split();
                break;
            case BOTTOM:
                arrowCls = style.splitBottom();
                break;
            default:
                // empty
            }

        } else {
            switch (cell.getArrowAlign()) {
            case RIGHT:
                arrowCls = style.arrow();
                break;
            case BOTTOM:
                arrowCls = style.arrowBottom();
                break;
            }
        }

    }

    ButtonScale scale = cell.getScale();

    switch (scale) {
    case SMALL:
        cls += " " + style.small();
        break;
    case MEDIUM:
        cls += " " + style.medium();
        break;
    case LARGE:
        cls += " " + style.large();
        break;
    default:
        // empty
    }

    SafeStylesBuilder stylesBuilder = new SafeStylesBuilder();

    int width = -1;

    if (cell.getWidth() != -1) {
        int w = cell.getWidth();
        if (w < cell.getMinWidth()) {
            w = cell.getMinWidth();
        }
        stylesBuilder.appendTrustedString("width:" + w + "px;");
        cls += " " + style.hasWidth() + " x-has-width";
        width = w;
    } else {

        if (cell.getMinWidth() != -1) {
            TextMetrics.get().bind(style.text());
            int length = TextMetrics.get().getWidth(valueHtml);
            length += 6; // frames

            if (icon != null) {
                switch (iconAlign) {
                case LEFT:
                case RIGHT:
                    length += icon.getWidth();
                    break;
                default:
                    // empty
                }
            }

            if (cell.getMinWidth() > length) {
                stylesBuilder.appendTrustedString("width:" + cell.getMinWidth() + "px;");
                cls += " " + style.hasWidth() + " x-has-width";
                width = cell.getMinWidth();
            }
        }
    }

    final int height = cell.getHeight();
    if (height != -1) {
        stylesBuilder.appendTrustedString("height:" + height + "px;");
    }

    if (icon != null) {
        switch (iconAlign) {
        case TOP:
            arrowCls += " " + style.iconTop();
            break;
        case BOTTOM:
            arrowCls += " " + style.iconBottom();
            break;
        case LEFT:
            arrowCls += " " + style.iconLeft();
            break;
        case RIGHT:
            arrowCls += " " + style.iconRight();
            break;
        }

    } else {
        arrowCls += " " + style.noIcon();
    }

    // toggle button
    if (value == Boolean.TRUE) {
        cls += " " + frame.pressedClass();
    }

    sb.append(templates.outer(cls, new SafeStylesBuilder().toSafeStyles()));

    SafeHtmlBuilder inside = new SafeHtmlBuilder();

    String innerWrap = arrowCls;

    inside.appendHtmlConstant("<div class='" + innerWrap + "'>");
    inside.appendHtmlConstant("<table cellpadding=0 cellspacing=0 class='" + style.mainTable() + "'>");

    boolean hasText = valueHtml != null && !valueHtml.equals("");

    if (icon != null) {
        switch (iconAlign) {
        case LEFT:
            inside.appendHtmlConstant("<tr>");
            writeIcon(inside, icon, height);
            if (hasText) {
                int w = width - (icon != null ? icon.getWidth() : 0) - 4;
                writeValue(inside, valueHtml, w, height);
            }
            inside.appendHtmlConstant("</tr>");
            break;
        case RIGHT:
            inside.appendHtmlConstant("<tr>");
            if (hasText) {
                int w = width - (icon != null ? icon.getWidth() : 0) - 4;
                writeValue(inside, valueHtml, w, height);
            }
            writeIcon(inside, icon, height);
            inside.appendHtmlConstant("</tr>");
            break;
        case TOP:
            inside.appendHtmlConstant("<tr>");
            writeIcon(inside, icon, height);
            inside.appendHtmlConstant("</tr>");
            if (hasText) {
                inside.appendHtmlConstant("<tr>");
                writeValue(inside, valueHtml, width, height);
                inside.appendHtmlConstant("</tr>");
            }
            break;
        case BOTTOM:
            if (hasText) {
                inside.appendHtmlConstant("<tr>");
                writeValue(inside, valueHtml, width, height);
                inside.appendHtmlConstant("</tr>");
            }
            inside.appendHtmlConstant("<tr>");
            writeIcon(inside, icon, height);
            inside.appendHtmlConstant("</tr>");
            break;
        }

    } else {
        inside.appendHtmlConstant("<tr>");
        if (valueHtml != null) {
            writeValue(inside, valueHtml, width, height);
        }
        inside.appendHtmlConstant("</tr>");
    }
    inside.appendHtmlConstant("</table>");
    inside.appendHtmlConstant("</div>");

    frame.render(sb,
            new Frame.FrameOptions(0, CommonStyles.get().noFocusOutline(), stylesBuilder.toSafeStyles()),
            inside.toSafeHtml());

    sb.appendHtmlConstant("</div>");

}

From source file:com.sencha.gxt.theme.base.client.button.ButtonCellDefaultAppearance.java

License:sencha.com license

protected void writeIcon(SafeHtmlBuilder builder, ImageResource icon, int height) {
    SafeHtml iconHtml = AbstractImagePrototype.create(icon).getSafeHtml();
    if (height == -1) {
        builder.append(templates.icon(style.iconWrap(), iconHtml));
    } else {//w  ww .j  a va2s . co  m
        int adjustedHeight = height - heightOffset;
        SafeStyles heightStyle = SafeStylesUtils.fromTrustedString("height:" + adjustedHeight + "px;");
        builder.append(templates.iconWithStyles(style.iconWrap(), heightStyle, iconHtml));
    }
}

From source file:com.sencha.gxt.theme.base.client.button.ButtonCellDefaultAppearance.java

License:sencha.com license

protected void writeValue(SafeHtmlBuilder builder, SafeHtml value, int width, int height) {
    SafeStylesBuilder sb = new SafeStylesBuilder();
    if (height > 0) {
        int adjustedHeight = height - heightOffset;
        sb.append(SafeStylesUtils.fromTrustedString("height:" + adjustedHeight + "px;"));
    }//from w  w  w  .java 2 s  .  com
    if (width > 0) {
        sb.append(SafeStylesUtils.fromTrustedString("width:" + width + "px;"));
    }
    builder.append(templates.textWithStyles(style.text(), sb.toSafeStyles(), value));
}