[ https://issues.apache.org/jira/browse/OFBIZ-1235?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12688210#action_12688210 ]
WeizhanGuo commented on OFBIZ-1235: ----------------------------------- That's nice, I will update the code later. Thanks. > 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.