Ha well how about that, out it comes.

Regards
Scott

----- Original Message -----
From: "Adrian Crum" <adri...@hlmksw.com>
To: dev@ofbiz.apache.org
Sent: Tuesday, June 16, 2009 8:18:10 AM (GMT+1000) Auto-Detected
Subject: Re: svn commit: r784712 - in /ofbiz/trunk/framework/webapp: 
config/freemarkerTransforms.properties 
src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java

If you search *.ftl for "<#include" you'll see that it is already being 
done.

-Adrian

Scott Gray wrote:
> I wanted to be able to use component:// paths, if it's not wanted I don't 
> mind pulling it out as it was only 10 minutes work.
> 
> Regards
> Scott
> 
> ----- Original Message -----
> From: "Adrian Crum" <adri...@hlmksw.com>
> To: dev@ofbiz.apache.org
> Sent: Tuesday, June 16, 2009 12:39:45 AM (GMT+1000) Auto-Detected
> Subject: Re: svn commit: r784712 - in /ofbiz/trunk/framework/webapp: 
> config/freemarkerTransforms.properties 
> src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java
> 
> Why is this necessary? Freemarker already has an include directive.
> 
> -Adrian
> 
> lekt...@apache.org wrote:
>> Author: lektran
>> Date: Mon Jun 15 10:18:55 2009
>> New Revision: 784712
>>
>> URL: http://svn.apache.org/viewvc?rev=784712&view=rev
>> Log:
>> Add a new template transform for including templates in freemarker templates 
>> using component notation:
>> <@includeTemplate 
>> location="component://common/webcommon/includes/cctypes.ftl"/>
>>
>> Added:
>>     
>> ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java
>>    (with props)
>> Modified:
>>     ofbiz/trunk/framework/webapp/config/freemarkerTransforms.properties
>>
>> Modified: ofbiz/trunk/framework/webapp/config/freemarkerTransforms.properties
>> URL: 
>> http://svn.apache.org/viewvc/ofbiz/trunk/framework/webapp/config/freemarkerTransforms.properties?rev=784712&r1=784711&r2=784712&view=diff
>> ==============================================================================
>> --- ofbiz/trunk/framework/webapp/config/freemarkerTransforms.properties 
>> (original)
>> +++ ofbiz/trunk/framework/webapp/config/freemarkerTransforms.properties Mon 
>> Jun 15 10:18:55 2009
>> @@ -27,3 +27,4 @@
>>  ofbizAmount=org.ofbiz.webapp.ftl.OfbizAmountTransform
>>  setRequestAttribute=org.ofbiz.webapp.ftl.SetRequestAttributeMethod
>>  renderWrappedText=org.ofbiz.webapp.ftl.RenderWrappedTextTransform
>> +includeTemplate=org.ofbiz.webapp.ftl.IncludeTemplateTransform
>>
>> Added: 
>> ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java
>> URL: 
>> http://svn.apache.org/viewvc/ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java?rev=784712&view=auto
>> ==============================================================================
>> --- 
>> ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java
>>  (added)
>> +++ 
>> ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java
>>  Mon Jun 15 10:18:55 2009
>> @@ -0,0 +1,73 @@
>> +/*******************************************************************************
>> + * Licensed to the Apache Software Foundation (ASF) under one
>> + * or more contributor license agreements.  See the NOTICE file
>> + * distributed with this work for additional information
>> + * regarding copyright ownership.  The ASF licenses this file
>> + * to you under the Apache License, Version 2.0 (the
>> + * "License"); you may not use this file except in compliance
>> + * with the License.  You may obtain a copy of the License at
>> + *
>> + * http://www.apache.org/licenses/LICENSE-2.0
>> + *
>> + * Unless required by applicable law or agreed to in writing,
>> + * software distributed under the License is distributed on an
>> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
>> + * KIND, either express or implied.  See the License for the
>> + * specific language governing permissions and limitations
>> + * under the License.
>> + 
>> *******************************************************************************/
>> +package org.ofbiz.webapp.ftl;
>> +
>> +import java.io.IOException;
>> +import java.io.Writer;
>> +import java.util.Map;
>> +
>> +import org.ofbiz.base.util.UtilValidate;
>> +import org.ofbiz.base.util.template.FreeMarkerWorker;
>> +
>> +import freemarker.core.Environment;
>> +import freemarker.template.SimpleScalar;
>> +import freemarker.template.Template;
>> +import freemarker.template.TemplateException;
>> +import freemarker.template.TemplateModelException;
>> +import freemarker.template.TemplateTransformModel;
>> +
>> +public class IncludeTemplateTransform implements TemplateTransformModel {
>> +
>> +    public final static String module = 
>> IncludeTemplateTransform.class.getName();
>> +
>> +    public Writer getWriter(final Writer out, Map args) {
>> +        final StringBuilder buf = new StringBuilder();
>> +        final String templateLocation = this.getTemplateLocation(args);
>> +        
>> +        return new Writer(out) {
>> +            public void write(char cbuf[], int off, int len) {
>> +                buf.append(cbuf, off, len);
>> +            }
>> +
>> +            public void flush() throws IOException {
>> +                out.flush();
>> +            }
>> +
>> +            public void close() throws IOException {
>> +                try {
>> +                    Environment env = Environment.getCurrentEnvironment();
>> +                    Template template = 
>> FreeMarkerWorker.getTemplate(templateLocation);
>> +                    env.include(template);
>> +                } catch (TemplateModelException e) {
>> +                    throw new IOException(e.getMessage());
>> +                } catch (TemplateException e) {
>> +                    throw new IOException(e.getMessage());
>> +                }
>> +            }
>> +        };
>> +    }
>> +    
>> +    private String getTemplateLocation(Map args) {
>> +        Object templateLocationObj = args.get("location");
>> +        if (templateLocationObj != null && templateLocationObj instanceof 
>> SimpleScalar) {
>> +            return ((SimpleScalar) templateLocationObj).getAsString();
>> +        }
>> +        return null;
>> +    }
>> +}
>>
>> Propchange: 
>> ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java
>> ------------------------------------------------------------------------------
>>     svn:eol-style = native
>>
>> Propchange: 
>> ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java
>> ------------------------------------------------------------------------------
>>     svn:keywords = "Date Rev Author URL Id"
>>
>> Propchange: 
>> ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/IncludeTemplateTransform.java
>> ------------------------------------------------------------------------------
>>     svn:mime-type = text/plain
>>
>>
>>
> 

Reply via email to