List of usage examples for com.google.gwt.safehtml.shared SafeHtmlBuilder SafeHtmlBuilder
public SafeHtmlBuilder()
From source file:com.sencha.gxt.widget.core.client.ListView.java
License:sencha.com license
/** * Refreshes the view by reloading the data from the store and re-rendering * the template.//from w w w.ja v a2 s . c o m */ public void refresh() { if (!isOrWasAttached()) { return; } getElement().setInnerSafeHtml(SafeHtmlUtils.EMPTY_SAFE_HTML); getElement().repaint(); List<M> models = store == null ? new ArrayList<M>() : store.getAll(); all.removeAll(); SafeHtmlBuilder sb = new SafeHtmlBuilder(); bufferRender(models, sb); SafeHtml markup = sb.toSafeHtml(); getElement().setInnerSafeHtml(markup); SafeHtmlBuilder esb = new SafeHtmlBuilder(); appearance.renderEnd(esb); DomHelper.insertHtml("beforeend", getElement(), esb.toSafeHtml()); List<Element> elems = appearance.findElements(getElement()); all = new CompositeElement(elems); updateIndexes(0, -1); ensureFocusElement(); fireEvent(new RefreshEvent()); }
From source file:com.sencha.gxt.widget.core.client.ListView.java
License:sencha.com license
protected void bufferRender(List<M> models, SafeHtmlBuilder sb) { for (int i = 0, len = models.size(); i < len; i++) { M m = models.get(i);//ww w . java 2 s. c o m SafeHtmlBuilder cellBuilder = new SafeHtmlBuilder(); N v = getValue(m); if (cell == null) { String text = null; if (v != null) { text = v.toString(); } cellBuilder.append(Util.isEmptyString(text) ? Util.NBSP_SAFE_HTML : SafeHtmlUtils.fromString(text)); } else { Context context = new Context(i, 0, store.getKeyProvider().getKey(m)); cell.render(context, v, cellBuilder); } appearance.renderItem(sb, cellBuilder.toSafeHtml()); } }
From source file:com.sencha.gxt.widget.core.client.ListView.java
License:sencha.com license
protected void onAdd(List<M> models, final int index) { if (!isOrWasAttached()) { return;//from w w w . ja va 2s . c om } boolean empty = all.getCount() == 0; // add on sorted store, fires multiple adds while store has all models // before firing if (empty && models.size() == store.size()) { refresh(); return; } SafeHtmlBuilder sb = new SafeHtmlBuilder(); bufferRender(models, sb); Element d = Document.get().createDivElement(); d.setInnerSafeHtml(sb.toSafeHtml()); List<Element> list = appearance.findElements(d.<XElement>cast()); final Element ref = index == 0 ? null : all.getElement(index - 1); final Element n = ref == null ? null : ref.getParentElement(); for (int i = list.size() - 1; i >= 0; i--) { Element e = list.get(i); if (index == 0) { getElement().insertFirst(e); } else { Node next = ref == null ? null : ref.getNextSibling(); if (next == null) { n.appendChild(e); } else { n.insertBefore(e, next); } } } all.insert(Util.toElementArray(list), index); updateIndexes(index, -1); }
From source file:com.sencha.gxt.widget.core.client.ListView.java
License:sencha.com license
/** * Is called before a load when a {@link #setLoader(Loader) and {@link #setLoadingIndicator(SafeHtml) or * {@link #setLoadingIndicator(String)} are used the list will display the loading HTML. * <p/>//from w ww .j av a2 s . com * <ul> * <li>The {@link #setLoader(Loader)} has to be set for this to be called. * <li>The css class name 'loading-indicator' can style the loading HTML or text. * </ul> */ protected void onBeforeLoad() { if (loadingIndicator != SafeHtmlUtils.EMPTY_SAFE_HTML) { SafeHtmlBuilder sb = new SafeHtmlBuilder(); sb.appendHtmlConstant("<div class='loading-indicator'>"); sb.append(loadingIndicator); sb.appendHtmlConstant("</div>"); getElement().setInnerSafeHtml(sb.toSafeHtml()); all.removeAll(); } }
From source file:com.sencha.gxt.widget.core.client.ListView.java
License:sencha.com license
protected void onUpdate(M model, int index) { Element original = all.getElement(index); if (original != null) { List<M> list = Collections.singletonList(model); SafeHtmlBuilder sb = new SafeHtmlBuilder(); bufferRender(list, sb);// www . j ava2 s. com DomHelper.insertBefore(original, sb.toSafeHtml()); all.replaceElement(original, Element.as(original.getPreviousSibling())); original.removeFromParent(); } sm.onRowUpdated(model); }
From source file:com.sencha.gxt.widget.core.client.menu.Menu.java
License:sencha.com license
public Menu(MenuAppearance appearance) { this.appearance = appearance; SafeHtmlBuilder builder = new SafeHtmlBuilder(); appearance.render(builder);// w ww .j a v a2 s .c o m setElement((Element) XDOM.create(builder.toSafeHtml())); getElement().makePositionable(true); ul = appearance.getMenuList(getElement()); monitorWindowResize = true; shim = true; setShadow(true); setDeferHeight(true); eventPreview = new BaseEventPreview() { @Override protected boolean onPreview(NativePreviewEvent pe) { Menu.this.onPreviewEvent(pe); return super.onPreview(pe); } @Override protected void onPreviewKeyPress(NativePreviewEvent pe) { super.onPreviewKeyPress(pe); onEscape(pe); } }; // add menu to ignore list eventPreview.getIgnoreList().add(getElement()); eventPreview.setAutoHide(false); getElement().setTabIndex(0); getElement().setAttribute("hideFocus", "true"); getElement().addClassName(CommonStyles.get().ignore()); keyNav = new KeyNav(this) { public void onDown(NativeEvent evt) { onKeyDown(evt); } public void onEnter(NativeEvent evt) { onKeyEnter(evt); } public void onLeft(NativeEvent evt) { onKeyLeft(evt); } public void onRight(NativeEvent evt) { onKeyRight(evt); } public void onUp(NativeEvent evt) { onKeyUp(evt); } @Override public void onTab(NativeEvent evt) { if (evt.getShiftKey()) { onKeyUp(evt); } else { onKeyDown(evt); } } }; sinkEvents(Event.MOUSEEVENTS | Event.ONCLICK | Event.ONMOUSEWHEEL); // observe tap clicks on sub menu items in particular addGestureRecognizer(new TapGestureRecognizer() { @Override protected void onTap(TouchData touchData) { super.onTap(touchData); Menu.this.onTap(touchData); } @Override protected void handlePreventDefault(NativeEvent event) { // allow events to flow for menu items to use (such as ComboBox, Filters, etc) } }); }
From source file:com.sencha.gxt.widget.core.client.menu.MenuBar.java
License:sencha.com license
public MenuBar(MenuBarAppearance appearance) { this.appearance = appearance; SafeHtmlBuilder builder = new SafeHtmlBuilder(); appearance.render(builder);/*www . j ava2s .c o m*/ setElement((Element) XDOM.create(builder.toSafeHtml())); sinkEvents(Event.ONCLICK | Event.MOUSEEVENTS | Event.ONFOCUS | Event.ONBLUR); getElement().setTabIndex(-1); getElement().setAttribute("hideFocus", "true"); new KeyNav(this) { @Override public void onKeyPress(NativeEvent evt) { MenuBar.this.onKeyPress(evt); } }; // Ignore Menu preview event hiding menubar when toggle click occurs. addStyleName("x-ignore"); addGestureRecognizer(new TapGestureRecognizer() { @Override public boolean handleEnd(NativeEvent endEvent) { super.handleEnd(endEvent); onClick(endEvent.<Event>cast()); return true; } }); }
From source file:com.sencha.gxt.widget.core.client.menu.MenuBarItem.java
License:sencha.com license
public MenuBarItem(SafeHtml html, Menu menu, MenuBarItemAppearance appearance) { this.appearance = appearance; SafeHtmlBuilder builder = new SafeHtmlBuilder(); appearance.render(builder);/*from w w w. j a v a 2s . c om*/ setElement((Element) XDOM.create(builder.toSafeHtml())); sinkEvents(Event.MOUSEEVENTS); setHTML(html); setMenu(menu); }
From source file:com.sencha.gxt.widget.core.client.menu.MenuItem.java
License:sencha.com license
/** * Creates a menu item with the given appearances. * // w w w. j a v a 2s . co m * @param menuItemAppearance the menu item appearance */ public MenuItem(MenuItemAppearance menuItemAppearance) { super(menuItemAppearance); canActivate = true; SafeHtmlBuilder markupBuilder = new SafeHtmlBuilder(); getAppearance().render(markupBuilder); setElement((Element) XDOM.create(markupBuilder.toSafeHtml())); getElement().addClassName(CommonStyles.get().unselectable()); }
From source file:com.sencha.gxt.widget.core.client.menu.SeparatorMenuItem.java
License:sencha.com license
public SeparatorMenuItem(SeparatorMenuItemAppearance appearance) { super(appearance); hideOnClick = false;/* w w w . j a v a 2 s. co m*/ SafeHtmlBuilder markupBuilder = new SafeHtmlBuilder(); appearance.render(markupBuilder); Element item = XDOM.create(markupBuilder.toSafeHtml()); setElement(item); }