svn commit: r978944 - /ofbiz/trunk/framework/widget/src/org/ofbiz/widget/screen/MacroScreenRenderer.java

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

svn commit: r978944 - /ofbiz/trunk/framework/widget/src/org/ofbiz/widget/screen/MacroScreenRenderer.java

lektran
Author: lektran
Date: Sat Jul 24 23:15:45 2010
New Revision: 978944

URL: http://svn.apache.org/viewvc?rev=978944&view=rev
Log:
Add a new method for constructing a freemarker macro call string, should simplify the code needed to generate a macro call and centralize the double quote encoding of parameter values.  I'll be working to switch all of the render* methods over to using this today.

Modified:
    ofbiz/trunk/framework/widget/src/org/ofbiz/widget/screen/MacroScreenRenderer.java

Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/screen/MacroScreenRenderer.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/screen/MacroScreenRenderer.java?rev=978944&r1=978943&r2=978944&view=diff
==============================================================================
--- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/screen/MacroScreenRenderer.java (original)
+++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/screen/MacroScreenRenderer.java Sat Jul 24 23:15:45 2010
@@ -102,6 +102,22 @@ public class MacroScreenRenderer impleme
         }
     }
 
+    private void executeMacro(Appendable writer, String macroName, Map<String, String> parameters) throws IOException {
+        StringBuilder sb = new StringBuilder("<@");
+        sb.append(macroName);
+        if (parameters != null) {
+            for (Map.Entry<String, String> parameter : parameters.entrySet()) {
+                sb.append(' ');
+                sb.append(parameter.getKey());
+                sb.append("=\"");
+                sb.append(parameter.getValue().replaceAll("\"", "\\\\\""));
+                sb.append('"');
+            }
+        }
+        sb.append(" />");
+        executeMacro(writer, sb.toString());
+    }
+
     private Environment getEnvironment(Appendable writer) throws TemplateException, IOException {
         Environment environment = environments.get(writer);
         if (environment == null) {