List of usage examples for com.google.gwt.safehtml.shared SafeHtmlBuilder SafeHtmlBuilder
public SafeHtmlBuilder()
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;\"> </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)); }