GXT - ImageBundle support

ImageBundle support has been an often requested feature. With M3, we have added ImageBundle support. Icons can be specified in three different methods:
  • AbstractImagePrototype (typically from an ImageBundle)
  • CSS style name (existing method)
  • Image path (String)
All components that support icons now implement the new IconSupport interface:
 * Interface for objects that support icons.
public interface IconSupport {
   * Returns the icon.
   * @return the icon
  public AbstractImagePrototype getIcon();
   * Sets the icon.
   * @param icon the icon
  public void setIcon(AbstractImagePrototype icon);
   * Sets the icon style.
   * @param icon a CSS style name
  public void setIconStyle(String icon);
In addition, there is a helper class, IconHelper, that can be used to create image prototypes from CSS style names, and image paths. Here is an example setting an icon 3 different ways:
// from bundle
    // CSS style name
    // image path
When using ImageBundles, you create classes that extends ImageBundle. Here is a partial look of the new XImages class, which is the ImageBundle GXT uses for all it’s icons:
public interface XImages extends ImageBundle {
  AbstractImagePrototype grid_sortAsc();
  AbstractImagePrototype grid_sortDesc();
One immediate benefit we have noticed, is that the icons display immediately when first displayed in the application, rather than incrementally as a page loads. This happens since all the images are combined into one on the server at compile time, and therfore, 1 http request.


Question: I'm very curious how SmartGWT is managing this issue ? Thanks.

No comments:

Post a Comment