[ 
https://issues.apache.org/jira/browse/OFBIZ-1235?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12688214#action_12688214
 ] 

WeizhanGuo commented on OFBIZ-1235:
-----------------------------------

Hi Anil,

I try to use the EL, but the Macro did not parse correctly. I have not idea how 
to use EL in this context. Any advise?

> Create the theme for the form widget
> ------------------------------------
>
>                 Key: OFBIZ-1235
>                 URL: https://issues.apache.org/jira/browse/OFBIZ-1235
>             Project: OFBiz
>          Issue Type: New Feature
>          Components: framework
>    Affects Versions: SVN trunk
>         Environment: all the platform
>            Reporter: WeizhanGuo
>             Fix For: SVN trunk
>
>         Attachments: ftlMacroRenderer.patch, widget.patch
>
>
> We are creating the "theme" for the ofbiz widget form, why we create this? We 
> found it's very difficultty to extend the current form widget, all the widget 
> generation code is hard code in HtmlFormRenderer or others, we need to change 
> those file if we want to add some function to the form, like ajax.
>  
> And yes, we have some ajax function in ofbiz now, but the code of 
> HtmlFormRenderer with ajax is much harder for understanding. like the code: 
> "if(ajaxEnabled)". In fact , we want to implement the dojo function in ofbiz 
> without mess.
>  
> So we decide to extract the hard code is responsible for the html form 
> generation  to the ftl files, like the struts2 does. If you know well about 
> struts2, then you will also know the form theme we are creating. 
>  
> Those ftl files is responsible for the html code generation, like text.ftl:
> <input type="text"<#rt/>
>  name="${rp.name?default("")?html}"<#rt/>
> <#include "class.ftl" />
> <#if rp.value?exists>
> <#escape x as x?html> value="${rp.value}" </#escape> <#rt/>
> </#if>
> <#if rp.textSize?exists>
>  size="${rp.textSize?html}"<#rt/>
> </#if>
> <#if rp.maxlength?exists>
>  maxlength="${rp.maxlength?html}"<#rt/>
> </#if>
> <#if rp.textId?exists>
>  id="${rp.textId?html}"<#rt/>
> </#if>
> <#if rp.event?exists && rp.action?exists>
>  ${rp.event?html}="${rp.action?html}"<#rt/>
> </#if>
> <#if rp.clientAutocomplete?exists && !rp.clientAutocomplete>
>   autocomplete="off"<#rt/>
> </#if>
> />
> Then, in the renderTextField method, we use the ftl file to generate the html 
> text instand of the hard code. 
>  
> Finally,we can have different themes like simple/text.ftl  ajax/text.ftl  and 
> dojo/text.ftl. By setting the theme with code "theme=simple/ajax/dojo " , the 
> corresponding theme file like text.ftl will be loaded. The attachment is the 
> dojo theme capture.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to