X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=source%2Fmir%2Fmisc%2FHTMLTemplateProcessor.java;h=9faf4d02f6e30f09ab532f6e0a2b5912829887dc;hb=0525a0916e50fcf811403dcc75b7365949c6aca4;hp=1e47adc7c85828161348b02225610c7b7fa7396b;hpb=1e06f519c12e542b61df7a19ceec7871011112c7;p=mir.git
diff --git a/source/mir/misc/HTMLTemplateProcessor.java b/source/mir/misc/HTMLTemplateProcessor.java
index 1e47adc7..9faf4d02 100755
--- a/source/mir/misc/HTMLTemplateProcessor.java
+++ b/source/mir/misc/HTMLTemplateProcessor.java
@@ -13,6 +13,7 @@ import freemarker.template.*;
import mir.entity.*;
import mir.storage.*;
import javax.servlet.http.*;
+import org.apache.struts.util.MessageResources;
/**
@@ -29,32 +30,32 @@ public final class HTMLTemplateProcessor {
private static String audioHost;
private static String videoHost;
private static String imageHost;
+ private static String imagePath;
private static String openAction;
- protected static String producerDocRoot = MirConfig.getProp("Producer.DocRoot");
- protected static String producerStorageRoot = MirConfig.getProp("Producer.StorageRoot");
-
+ protected static String producerDocRoot =
+ MirConfig.getProp("Producer.DocRoot");
+ protected static String producerStorageRoot =
+ MirConfig.getProp("Producer.StorageRoot");
//
// init
static {
-
+ /** @todo either in the above block or here :) //rk */
templateDir = MirConfig.getPropWithHome("HTMLTemplateProcessor.Dir");
templateCache = new FileTemplateCache(templateDir);
templateCache.setLoadingPolicy(templateCache.LOAD_ON_DEMAND);
- // gone in freemarker 1.71
+ // gone in freemarker 1.7.1
// templateCache.startAutoUpdate();
-
+ theLog = Logfile.getInstance(MirConfig.getPropWithHome("HTMLTemplateProcessor.Logfile"));
docRoot = MirConfig.getProp("RootUri");
- theLog=Logfile.getInstance("HTMLTemplateProcessor");
-
//the quick hack is back in effect as it was more broken than ever before
// -mh
// sorry: nadir back in town, i have to debug the mirbase.jar in the
// nadir evironment. from my point of coding, this needs an urgent
// fixxx.
// yeah, from my point too - tob.
- //actionRoot = docRoot + "/servlet/" + MirConfig.getProp("ServletName");
+ //actionRoot = docRoot + "/servlet/" + MirConfig.getProp("ServletName");
//actionRoot = docRoot + "/servlet/NadirAktuell";
actionRoot = docRoot + "/servlet/Mir";
@@ -64,6 +65,7 @@ public final class HTMLTemplateProcessor {
videoHost = MirConfig.getProp("Producer.VideoHost");
audioHost = MirConfig.getProp("Producer.AudioHost");
imageHost = MirConfig.getProp("Producer.Image.Host");
+ imagePath = MirConfig.getProp("Producer.Image.Path");
producerDocRoot = MirConfig.getProp("Producer.DocRoot");
producerStorageRoot = MirConfig.getProp("Producer.StorageRoot");
}
@@ -71,7 +73,7 @@ public final class HTMLTemplateProcessor {
/**
* empty private constructor, to avoid instantiation
*/
- private HTMLTemplateProcessor () {}
+ private HTMLTemplateProcessor () { }
// process-methods to merge different datastructures
@@ -106,9 +108,10 @@ public final class HTMLTemplateProcessor {
* @param out
* @exception HTMLParseException
*/
- public static void process(HttpServletResponse res,String templateFilename, EntityList entList, PrintWriter out)
- throws HTMLParseException {
- process(res, templateFilename, entList, (String)null, (TemplateModelRoot)null, out);
+ public static void process(HttpServletResponse res,String templateFilename,
+ EntityList entList, PrintWriter out, Locale locale)
+ throws HTMLParseException {
+ process(res, templateFilename, entList, (String)null, (TemplateModelRoot)null, out, locale);
}
/**
@@ -124,14 +127,16 @@ public final class HTMLTemplateProcessor {
* @param out
* @exception HTMLParseException
*/
- public static void process(HttpServletResponse res,String templateFilename, EntityList entList, String additionalModelName,
- TemplateModelRoot additionalModel, PrintWriter out)
+ public static void process(HttpServletResponse res,String templateFilename,
+ EntityList entList, String additionalModelName,
+ TemplateModelRoot additionalModel, PrintWriter out,
+ Locale locale)
throws HTMLParseException {
SimpleHash modelRoot = new SimpleHash();
if (entList == null) {
- process(null,templateFilename, modelRoot, out);
+ process(null,templateFilename, modelRoot, out, locale);
} else {
try {
modelRoot = makeSimpleHashWithEntitylistInfos(entList);
@@ -140,7 +145,7 @@ public final class HTMLTemplateProcessor {
if (additionalModelName != null && additionalModel != null)
modelRoot.put(additionalModelName, additionalModel);
- process(res,templateFilename, modelRoot, out);
+ process(res,templateFilename, modelRoot, out, locale);
} catch (StorageObjectException e) {
throw new HTMLParseException(e.toString());
}
@@ -157,9 +162,10 @@ public final class HTMLTemplateProcessor {
* @param out
* @exception HTMLParseException
*/
- public static void process(HttpServletResponse res,String templateFilename, HashMap mergeData, PrintWriter out)
+ public static void process(HttpServletResponse res,String templateFilename,
+ HashMap mergeData, PrintWriter out, Locale locale)
throws HTMLParseException {
- process(res,templateFilename, makeSimpleHash(mergeData), out);
+ process(res,templateFilename, makeSimpleHash(mergeData), out, locale);
}
/**
@@ -171,11 +177,29 @@ public final class HTMLTemplateProcessor {
* @param out
* @exception HTMLParseException
*/
- public static void process(String templateFilename, PrintWriter out)
+ public static void process(String templateFilename, PrintWriter out,
+ Locale locale)
throws HTMLParseException {
- process(null,templateFilename, (TemplateModelRoot)null, out);
+ process(null,templateFilename, (TemplateModelRoot)null, out, locale);
}
+
+ /**
+ * Mischt die freemarker-Struktur tmr
mit
+ * Template templateFilename
und gibt das Ergebnis an den PrintWriter
+ * out
+ *
+ * @param templateFilename
+ * @param mergeData
+ * @param out
+ * @exception HTMLParseException
+ */
+ public static void process(HttpServletResponse res,String templateFilename,
+ TemplateModelRoot tmr, PrintWriter out, Locale locale)
+ throws HTMLParseException {
+ process(res,templateFilename,tmr,null,out,locale);
+
+ }
/**
* Mischt die freemarker-Struktur tmr
mit
@@ -187,50 +211,70 @@ public final class HTMLTemplateProcessor {
* @param out
* @exception HTMLParseException
*/
- public static void process(HttpServletResponse res,String templateFilename, TemplateModelRoot tmr, PrintWriter out)
- throws HTMLParseException {
- if (out==null) throw new HTMLParseException("no outputstream");
- Template tmpl = getTemplateFor(templateFilename);
- if (tmpl == null) throw new HTMLParseException("no template: " + templateFilename);
- if (tmr==null) tmr = new SimpleHash();
-
- /** @todo what is this for? (rk) */
- String session="";
- if (res!=null) {
- session=res.encodeURL("");
- }
-
- // put standard configuration into tempalteRootmodel
- SimpleHash configHash = new SimpleHash();
- configHash.put("docroot", new SimpleScalar(producerDocRoot));
- configHash.put("storageroot", new SimpleScalar(producerStorageRoot));
- configHash.put("productionhost", new SimpleScalar(productionHost));
- configHash.put("openaction", new SimpleScalar(openAction));
- configHash.put("actionRootLogin",new SimpleScalar(actionRoot));
-
-
- tmr.put("docRoot", new SimpleScalar(docRoot));
- tmr.put("now", new SimpleScalar(StringUtil.date2readableDateTime(new GregorianCalendar())));
- tmr.put("actionRoot", new SimpleScalar(actionRoot+session));
- tmr.put("openAction", new SimpleScalar(openAction));
- tmr.put("productionHost", new SimpleScalar(productionHost));
- tmr.put("videoHost", new SimpleScalar(videoHost));
- tmr.put("audioHost", new SimpleScalar(audioHost));
- tmr.put("imageHost", new SimpleScalar(imageHost));
-
- tmr.put("config", configHash);
- tmpl.process(tmr, out);
-
- }
+ public static void process(HttpServletResponse res,String templateFilename,
+ TemplateModelRoot tmr, TemplateModelRoot extra,
+ PrintWriter out, Locale locale)
+ throws HTMLParseException {
+ if (out==null) throw new HTMLParseException("no outputstream");
+ Template tmpl = getTemplateFor(templateFilename);
+ if (tmpl == null) throw new HTMLParseException("no template: " + templateFilename);
+ if (tmr==null) tmr = new SimpleHash();
+
+ /** @todo what is this for? (rk) */
+ String session="";
+ if (res!=null) {
+ session=res.encodeURL("");
+ }
+
+ // put standard configuration into tempalteRootmodel
+ SimpleHash configHash = new SimpleHash();
+ configHash.put("producerDocRoot", new SimpleScalar(producerDocRoot));
+ configHash.put("storageRoot", new SimpleScalar(producerStorageRoot));
+ configHash.put("productionHost", new SimpleScalar(productionHost));
+ configHash.put("openAction", new SimpleScalar(openAction));
+ configHash.put("actionRootLogin",new SimpleScalar(actionRoot));
+ configHash.put("docRoot", new SimpleScalar(docRoot));
+ configHash.put("now", new SimpleScalar(StringUtil.date2readableDateTime(new GregorianCalendar())));
+ configHash.put("actionRoot", new SimpleScalar(actionRoot+session));
+ configHash.put("productionHost", new SimpleScalar(productionHost));
+ configHash.put("videoHost", new SimpleScalar(videoHost));
+ configHash.put("audioHost", new SimpleScalar(audioHost));
+ configHash.put("imageHost", new SimpleScalar(imageHost));
+ configHash.put("imagePath", new SimpleScalar(imagePath));
+ configHash.put("mirVersion", new SimpleScalar(MirConfig.getProp("Mir.Version")));
+ // this conform to updated freemarker syntax
+ configHash.put("compressWhitespace", new freemarker.template.utility.CompressWhitespace() );
+
+ SimpleHash outPutHash = new SimpleHash();
+
+ if(extra!=null){
+ outPutHash.put("extra",extra);
+ try{
+ while(((SimpleList)extra).hasNext()){
+ theLog.printDebugInfo(((SimpleList)extra).next().toString());
+ }
+ }catch(Exception e){}
+ }
+ outPutHash.put("data",tmr);
+ outPutHash.put("config", configHash);
+
+ MessageResources messages = MessageResources.getMessageResources("bundles.admin");
+ outPutHash.put("lang", new MessageMethodModel(locale, messages) );
+
+ tmpl.process(outPutHash,out);
+ }
/**
* Converts Entity-List to SimpleList of SimpleHashes.
* @param aList ist eine Liste von Entity
* @return eine freemarker.template.SimpleList von SimpleHashes.
+ *
+ * @deprecated EntityLists comply with TemplateListModel now.
*/
public static SimpleList makeSimpleList(EntityList aList) throws StorageObjectException
{
+ theLog.printWarning("## using deprecated makeSimpleList(entityList) - a waste of resources");
SimpleList simpleList = new SimpleList();
if (aList != null) {
for(int i=0;i