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

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

Introduction

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

Prototype

public SafeHtml toSafeHtml() 

Source Link

Document

Returns the safe HTML accumulated in the builder as a SafeHtml .

Usage

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);//from   w ww  . j  a  v  a  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;//w  ww .j  a  va  2s  .  c o m
    }

    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 .  jav a2s  .  co  m
 * <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);/*from   w w w  . j av  a2 s . co m*/

        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);/*from w  w w. j  a v a 2  s .  c  om*/

    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);/*from  w w  w.jav a2 s  . co  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  a2  s .  co  m*/

    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.
 * /*  ww w.  j a va2s .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.  java 2 s .co m*/
    SafeHtmlBuilder markupBuilder = new SafeHtmlBuilder();
    appearance.render(markupBuilder);
    Element item = XDOM.create(markupBuilder.toSafeHtml());
    setElement(item);
}

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

License:sencha.com license

/**
 * Creates a model panel with the specified appearance.
 * /*from   w w  w  .  jav  a2s . c om*/
 * @param appearance the appearance of the modal panel
 */
public ModalPanel(ModalPanelAppearance appearance) {
    this.appearance = appearance;

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

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

    shim = true;
    setShadow(false);
    monitorWindowResize = true;

    eventPreview = new BaseEventPreview() {
        @Override
        protected boolean onPreview(NativePreviewEvent pe) {
            onEventPreview(pe);
            return super.onPreview(pe);
        }

    };
    eventPreview.setAutoHide(false);
}