/* * Ext GWT - Ext for GWT * Copyright(c) 2007-2009, Ext JS, LLC. * licensing@extjs.com * * http://extjs.com/license */ package com.extjs.gxt.ui.client.core; import com.extjs.gxt.ui.client.GXT; import com.google.gwt.core.client.JavaScriptObject; import com.google.gwt.user.client.Element; /** * A template class that supports advanced functionality like autofilling * arrays, conditional processing with basic comparison operators, * sub-templates, basic math function support, special built-in template * variables, inline code execution and more. */ public final class XTemplate extends JavaScriptObject { static { GXT.init(); } /** * Specifies the maxiumum number of nested models to search when preparing the * templates data (defaults to 4). * * @param maxDepth the maximum number of nested childen */ public final native void setMaxDepth(int maxDepth) /*-{ this.maxDepth = maxDepth; }-*/; /** * Returns the maximum number of nested children to process when preparing the * template's data. * * @return the max depth */ public final native int getMaxDepth() /*-{ if (!this.maxDepth) { this.maxDepth = 4; } return this.maxDepth; }-*/; /** * Returns a new template instance using the given html. * * @param html the template * @return a new template instance */ public static native XTemplate create(String html) /*-{ return new $wnd.GXT.Ext.XTemplate(html); }-*/; protected XTemplate() { } public final native Element append(Element elem, JavaScriptObject values) /*-{ return this.append(elem, values); }-*/; /** * Returns an HTML fragment of this template with the specified values * applied. * * @param values the substitution values * @return the html fragment */ public final native String applyTemplate(JavaScriptObject values) /*-{ return this.applyTemplate(values); }-*/; /** * Compiles the template into an internal function, eliminating the regex * overhead. */ public final native void compile() /*-{ this.compile(); }-*/; /** * Applies the supplied values to the template and inserts the new node(s) * after elem. * * @param elem the context element * @param values the substitution values */ public final native void insertAfter(Element elem, JavaScriptObject values) /*-{ this.insertAfter(elem, values); }-*/; /** * Applies the supplied values to the template and inserts the new node(s) * before elem. * * @param elem the context element * @param values the substitution values */ public final native void insertBefore(Element elem, JavaScriptObject values) /*-{ this.insertBefore(elem, values); }-*/; /** * Applies the supplied values to the template and overwrites the content of * elem with the new node(s). * * @param elem the context element * @param values the substitution values */ public final native void overwrite(Element elem, JavaScriptObject values) /*-{ this.overwrite(elem, values); }-*/; }