1 24 package org.riotfamily.forms; 25 26 import java.io.PrintWriter ; 27 import java.io.StringWriter ; 28 import java.util.Collections ; 29 import java.util.HashMap ; 30 import java.util.Map ; 31 32 33 public class TemplateUtils { 34 35 public static String getTemplatePath(Object object) { 36 return getTemplatePath(object, null); 37 } 38 39 public static String getTemplatePath(Class clazz) { 40 return getTemplatePath(clazz, null); 41 } 42 43 public static String getTemplatePath(Object object, String suffix) { 44 return getTemplatePath(object.getClass(), suffix); 45 } 46 47 public static String getTemplatePath(Class clazz, String suffix) { 48 StringBuffer sb = new StringBuffer (); 49 sb.append("classpath:/"); 50 sb.append(clazz.getName().replace('.', '/')); 51 if (suffix != null) { 52 sb.append(suffix); 53 } 54 sb.append(".ftl"); 55 return sb.toString(); 56 } 57 58 public static void render(FormContext context, String template, 59 String modelKey, Object object, PrintWriter writer) { 60 61 HashMap model = new HashMap (); 62 model.put(modelKey, object); 63 context.getTemplateRenderer().render(template, model, writer); 64 } 65 66 public static String getInitScript(Element element) { 67 return getInitScript(element, element.getClass()); 68 } 69 70 public static String getInitScript(Element element, Class baseClass) { 71 StringWriter sw = new StringWriter (); 72 PrintWriter writer = new PrintWriter (sw); 73 74 FormContext context = element.getForm().getFormContext(); 75 String template = getTemplatePath(baseClass, "_init"); 76 Map model = Collections.singletonMap("element", element); 77 context.getTemplateRenderer().render(template, model, writer); 78 79 return sw.toString(); 80 } 81 82 } 83 | Popular Tags |