#set( $symbol_pound = '#' ) #set( $symbol_dollar = '$' ) #set( $symbol_escape = '\' ) package ${package}.web.components; import net.contextfw.web.application.component.Component; import net.contextfw.web.application.component.FunctionCall; import net.contextfw.web.application.component.ScriptContext; public class JsInit extends FunctionCall { private final String id; private final Class<? extends Component> componentClass; public JsInit(Component component, Object... args) { super(null, toFinalArgs(component.getId(), args)); this.id = component.getId(); this.componentClass = component.getClass(); } private static Object[] toFinalArgs(String id, Object[] args) { Object[] finalArgs = new Object[args == null ? 1 : args.length + 1]; finalArgs[0] = id; if (args != null) { for (int i = 0; i < args.length; i++) { finalArgs[i+1] = args[i]; } } return finalArgs; } @Override protected String getFunctionName(ScriptContext scriptContext) { return scriptContext.getBuildName(componentClass); } @Override public String getScript(ScriptContext scriptContext) { String script = super.getScript(scriptContext, false); script = script.substring(0, script.length()); return "c.set(\""+ id +"\", new " + script + ");\n"; } }