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

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

Introduction

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

Prototype

public SafeHtmlBuilder() 

Source Link

Document

Constructs an empty SafeHtmlBuilder.

Usage

From source file:com.sencha.gxt.widget.core.client.grid.GridView.java

License:sencha.com license

/**
 * Renders the hidden TH elements that keep the column widths.
 *
 * @param columnWidths the column widths
 * @return markup representing the hidden table header elements
 *//*w w  w .  j ava 2s  .  co  m*/
protected SafeHtml renderHiddenHeaders(int[] columnWidths) {
    SafeHtmlBuilder heads = new SafeHtmlBuilder();
    for (int i = 0; i < columnWidths.length; i++) {
        int w = cm.isHidden(i) ? 0 : columnWidths[i];
        SafeStylesBuilder builder = new SafeStylesBuilder();
        builder.appendTrustedString("height: 0px;");
        builder.appendTrustedString("width:" + w + "px;");
        heads.append(tpls.th("", builder.toSafeStyles()));
    }
    return tpls.tr(appearance.styles().headerRow(), heads.toSafeHtml());
}

From source file:com.sencha.gxt.widget.core.client.grid.GroupingView.java

License:sencha.com license

@Override
protected SafeHtml doRender(List<ColumnData> cs, List<M> rows, int startRow) {
    enableGrouping = groupingColumn != null;

    if (!enableGrouping || isUpdating) {
        return super.doRender(cs, rows, startRow);
    }//from   ww  w.j a  v  a  2s  .c  o m

    List<GroupingData<M>> groups = createGroupingData(rows, startRow);

    SafeHtmlBuilder buf = new SafeHtmlBuilder();

    String styles = "width:" + getTotalWidth() + "px;";
    SafeStyles tableStyles = SafeStylesUtils.fromTrustedString(styles);

    for (int i = 0, len = groups.size(); i < len; i++) {
        GroupingData<M> g = groups.get(i);
        SafeHtml renderedRows = tpls.table(getAppearance().styles().dataTable(), tableStyles,
                super.doRender(cs, g.getItems(), g.getStartRow()), renderHiddenHeaders(getColumnWidths()));
        renderGroup(buf, g, renderedRows);
    }

    return buf.toSafeHtml();
}

From source file:com.sencha.gxt.widget.core.client.grid.GroupSummaryView.java

License:sencha.com license

protected SafeHtml renderSummary(GroupingData<M> groupInfo, Map<ValueProvider<? super M, ?>, Number> data) {
    int colCount = cm.getColumnCount();
    int last = colCount - 1;

    String unselectableClass = " " + unselectable;

    String cellClass = styles.cell() + " " + states.cell();
    String cellInner = styles.cellInner() + " " + states.cellInner();
    String cellFirstClass = " x-grid-cell-first";
    String cellLastClass = " x-grid-cell-last";

    SafeHtmlBuilder trBuilder = new SafeHtmlBuilder();

    for (int i = 0, len = colCount; i < len; i++) {
        SummaryColumnConfig<M, ?> cf = (SummaryColumnConfig<M, ?>) cm.getColumn(i);
        ColumnData cd = getColumnData().get(i);

        String cellClasses = cellClass;
        cellClasses += (i == 0 ? cellFirstClass : (i == last ? cellLastClass : ""));

        if (cf.getCellClassName() != null) {
            cellClasses += " " + cf.getCellClassName();
        }/*  w w  w.  ja  v  a  2 s .c om*/

        Number n = data.get(cm.getValueProvider(i));
        SafeHtml value = SafeHtmlUtils.EMPTY_SAFE_HTML;

        if (cf.getSummaryFormat() != null) {
            if (n != null) {
                value = SafeHtmlUtils.fromString(cf.getSummaryFormat().format(n.doubleValue()));
            }
        } else if (cf.getSummaryRenderer() != null) {
            value = cf.getSummaryRenderer().render(n, data);
        }
        final SafeHtml tdContent;
        if (!selectable && GXT.isIE()) {
            tdContent = tpls.tdUnselectable(i, cellClasses, cd.getStyles(), cellInner, cf.getColumnTextStyle(),
                    value);
        } else {
            tdContent = tpls.td(i, cellClasses, cd.getStyles(), cellInner, cf.getColumnTextStyle(), value);
        }
        trBuilder.append(tdContent);

    }

    String rowClasses = getGroupingAppearance().style().summaryRow();

    if (!selectable) {
        rowClasses += unselectableClass;
    }

    SafeHtml cells = trBuilder.toSafeHtml();

    return tpls.tr(rowClasses, cells);
}

From source file:com.sencha.gxt.widget.core.client.grid.LiveGridView.java

License:sencha.com license

private void updateScrollerHeight() {
    int height = totalCount * getRowHeight();
    // 1000000 as browser maxheight hack
    int count = height / 1000000;
    int h = 0;//  w w  w. j a  va  2s  .co m

    SafeHtmlBuilder sb = new SafeHtmlBuilder();

    if (count > 0) {
        h = height / count;

        for (int i = 0; i < count; i++) {
            sb.appendHtmlConstant(
                    "<div style=\"width: " + barWidth + "px; height: " + h + "px;\">&#160;</div>");
        }
    }
    int diff = height - count * h;
    if (diff != 0) {
        sb.appendHtmlConstant("<div style=\"width: " + barWidth + "px; height: " + diff + "px;\"></div>");
    }
    liveScroller.setInnerSafeHtml(sb.toSafeHtml());
}

From source file:com.sencha.gxt.widget.core.client.grid.RowExpander.java

License:sencha.com license

protected SafeHtml getBodyContent(M model, int rowIndex) {
    SafeHtmlBuilder sb = new SafeHtmlBuilder();
    contentCell.render(new Context(rowIndex, 0, grid.getStore().getKeyProvider().getKey(model)), model, sb);
    return sb.toSafeHtml();
}

From source file:com.sencha.gxt.widget.core.client.grid.RowNumberer.java

License:sencha.com license

protected void doUpdate() {
    int col = grid.getColumnModel().indexOf(this);
    ModelKeyProvider<? super M> kp = grid.getStore().getKeyProvider();
    for (int i = 0, len = grid.getStore().size(); i < len; i++) {
        Element cell = grid.getView().getCell(i, col);
        if (cell != null) {
            SafeHtmlBuilder sb = new SafeHtmlBuilder();
            M item = grid.getStore().get(i);
            getCell().render(new Context(i, col, kp.getKey(item)), item, sb);
            cell.getFirstChildElement().setInnerSafeHtml(sb.toSafeHtml());
        }// w  ww  . jav  a  2 s .  c  o  m
    }
}

From source file:com.sencha.gxt.widget.core.client.Header.java

License:sencha.com license

/**
 * Creates a header with the specified appearance.
 * /*from w  w  w .  ja  v a2 s .  c om*/
 * @param appearance the appearance of the header
 */
public Header(HeaderAppearance appearance) {
    this.appearance = appearance;

    SafeHtmlBuilder sb = new SafeHtmlBuilder();
    this.appearance.render(sb);

    setElement((Element) XDOM.create(sb.toSafeHtml()));

    addStyleName("x-small-editor");

    widgetPanel = new HorizontalPanel();
    widgetPanel.addStyleName("x-panel-toolbar");

    XElement barElem = appearance.getBarElem(getElement());
    barElem.appendChild(widgetPanel.getElement());

    if (tools.size() > 0) {
        for (int i = 0; i < tools.size(); i++) {
            widgetPanel.add(tools.get(i));
        }
    } else {
        widgetPanel.setVisible(false);
    }

    ComponentHelper.setParent(this, widgetPanel);

    appearance.getHeadingElem(getElement()).setId(getId() + "-label");
    setHeading(heading);

    if (icon != null) {
        setIcon(icon);
    }

    getFocusSupport().setIgnore(true);
}

From source file:com.sencha.gxt.widget.core.client.info.DefaultInfoConfig.java

License:sencha.com license

@Override
protected SafeHtml render(Info info) {
    SafeHtmlBuilder builder = new SafeHtmlBuilder();
    appearance.render(builder, title, message);
    return builder.toSafeHtml();
}

From source file:com.sencha.gxt.widget.core.client.info.Info.java

License:sencha.com license

protected void onShowInfo() {
    SafeHtmlBuilder sb = new SafeHtmlBuilder();
    appearance.render(sb);//  w ww  . j a v a  2  s . c  o  m
    getElement().setInnerSafeHtml(sb.toSafeHtml());

    XElement target = appearance.getContentElement(getElement());
    target.setInnerSafeHtml(config.render(this));

    getElement().makePositionable(true);

    RootPanel.get().add(this);

    setWidth(config.getWidth());
    setHeight(config.getHeight());

    getElement().updateZIndex(0);

    Point p = position();
    getElement().setLeftTop(p.getX(), p.getY());

    show();

    afterShow();
}

From source file:com.sencha.gxt.widget.core.client.ListView.java

License:sencha.com license

/**
 * Creates a new list view.//from  w  ww . j a v a 2  s.c  o  m
 *
 * @param store the store
 * @param valueProvider the value provider
 * @param appearance the appearance
 */
public ListView(final ListStore<M> store, ValueProvider<? super M, N> valueProvider,
        ListViewAppearance<M> appearance) {
    this.appearance = appearance;
    this.valueProvider = valueProvider;
    setSelectionModel(new ListViewSelectionModel<M>());

    SafeHtmlBuilder markupBuilder = new SafeHtmlBuilder();
    appearance.render(markupBuilder);

    setElement((Element) XDOM.create(markupBuilder.toSafeHtml()));

    all = new CompositeElement();
    setAllowTextSelection(false);

    storeHandlers = new StoreHandlers<M>() {

        @Override
        public void onAdd(StoreAddEvent<M> event) {
            ListView.this.onAdd(event.getItems(), event.getIndex());
        }

        @Override
        public void onClear(StoreClearEvent<M> event) {
            refresh();
        }

        @Override
        public void onDataChange(StoreDataChangeEvent<M> event) {
            refresh();
        }

        @Override
        public void onFilter(StoreFilterEvent<M> event) {
            refresh();
        }

        @Override
        public void onRecordChange(StoreRecordChangeEvent<M> event) {
            if (ListView.this.valueProvider == event.getProperty()) {
                ListView.this.onUpdate(event.getRecord().getModel(),
                        store.indexOf(event.getRecord().getModel()));
            }
        }

        @Override
        public void onRemove(StoreRemoveEvent<M> event) {
            ListView.this.onRemove(event.getItem(), event.getIndex());
        }

        @Override
        public void onSort(StoreSortEvent<M> event) {
            refresh();
        }

        @Override
        public void onUpdate(StoreUpdateEvent<M> event) {
            List<M> items = event.getItems();
            for (int i = 0; i < items.size(); i++) {
                M item = items.get(i);
                ListView.this.onUpdate(item, store.indexOf(item));
            }
        }
    };

    setStore(store);

    ensureFocusElement();

    sinkEvents(Event.ONCLICK | Event.ONDBLCLICK | Event.MOUSEEVENTS | Event.ONKEYDOWN);
    addGestureRecognizer(new LongPressOrTapGestureRecognizer() {
        @Override
        protected void onLongPress(TouchData touch) {
            ListView.this.onLongPress(touch);
            super.onLongPress(touch);
        }

        @Override
        protected void onTap(TouchData touch) {
            ListView.this.onTap(touch);
            super.onTap(touch);
        }

        @Override
        protected void handlePreventDefault(NativeEvent event) {
            // preventDefault on everything except input elements
            if (sm != null && sm.isInput(event.getEventTarget().<Element>cast())) {
                return;
            }
            event.preventDefault();
        }
    });
    addGestureRecognizer(new ScrollGestureRecognizer(getElement(), ScrollDirection.BOTH));
}