com.sencha.gxt.core.client
Interface XTemplates

All Known Subinterfaces:
BluePlainTabPanelAppearance.PlainTabPanelTemplates, BluePlainTabPanelBottomAppearance.PlainTabPanelBottomTemplates, BlueTabPanelBottomAppearance.BottomTemplate, BoxLayoutDefaultAppearance.BoxLayoutTemplate, BoxStatusBaseAppearance.BoxTemplate, ButtonCellDefaultAppearance.ButtonCellTemplates, ButtonGroupBaseAppearance.GroupTemplate, ColorPaletteBaseAppearance.BaseColorPaletteTemplate, ColumnHeaderDefaultAppearance.ColumnHeaderTemplate, ContentPanelBaseAppearance.ContentPanelTemplate, CssFloatLayoutDefaultAppearance.CssFloatLayoutTemplate, DivFrame.Template, ErrorTipDefaultAppearance.ErrorTipTemplate, FieldLabelDefaultAppearance.FieldLabelTemplate, FieldSetDefaultAppearance.Template, FileUploadDefaultAppearance.FileUploadTemplate, FramedPanelBaseAppearance.FramedPanelTemplate, GridBaseAppearance.GridTemplates, GroupingViewDefaultAppearance.DefaultHeaderTemplate, HeaderDefaultAppearance.Template, IconButtonDefaultAppearance.Template, Insert.DefaultInsertAppearance.Template, LabelToolItemDefaultAppearance.Template, Layer.LayerTemplates, Layer.LayerTemplatesIe, Layer.ShimTemplates, Mask.MessageTemplates, MenuBaseAppearance.BaseMenuTemplate, MenuItemBaseAppearance.MenuItemTemplate, NestedDivFrame.Template, PortalLayoutDefaultAppearance.PortalLayoutTemplate, ProgressBarDefaultAppearance.ProgressBarTemplate, RowEditorDefaultAppearance.Template, SeparatorMenuItemBaseAppearance.SeparatorMenuItemTemplate, SeparatorToolItemDefaultAppearance.Template, SliderHorizontalBaseAppearance.SliderHorizontalTemplate, SliderVerticalBaseAppearance.SliderVerticalTemplate, StatusBaseAppearance.Template, StatusProxyBaseAppearance.StatusProxyTemplates, TableFrame.Template, TabPanelBaseAppearance.ItemTemplate, TabPanelBaseAppearance.Template, TipDefaultAppearance.TipDefaultTemplate, ToolTipConfig.ToolTipRenderer<T>, ViewportDefaultAppearance.ViewportTemplate

public interface XTemplates

A tag interface for declaring methods that accept objects and convert them into HTML based on an associated template. Methods return SafeHtml instances which can be used in many GWT and GXT widgets to render content. XTemplates support a variety of features to make it easy to generate content, including:


Declaring a Template

Templates are declared by creating a new interface that extends XTemplate, or by extending another interface that extends XTemplate. Instances can then be created by invoking GWT.create on the template class, and then methods can be invoked.

Template method content is created in one of two ways: either by declaring the template content in the @XTemplate annotation, or by creating a new html file and pointing the @XTemplate annotation at that file.


public interface SampleXTemplates extends XTemplates {
  @XTemplate("<div>Hello, {name}!</div>")
  SafeHtml hello(String name);

  @XTemplate(source="hello.html")
  SafeHtml helloExternal(String name);
}

private SampleXTemplates tpl = GWT.create(SampleXTemplates.class);

In this example, tpl.hello("test") would return a SafeHtml instance representing the html

<div>Hello, test!<div>
while tpl.hello("test") would have its content depend on the template defined in the file hello.html in the same package.