This discussion sounds interesting and should be rather done on the dev list, suggesting...
Jacques De : "Jonathon -- Improov" <[EMAIL PROTECTED]> > Forms can be written in total widget or total FTL, not a combination. That's > the problem. > > See the editcontactmech.ftl example I gave. > > Also, see the skip-start and skip-end attributes discussion I gave on element > <form>. Note also > the inability to remove the <table> wrapper for <form>. > > Jonathon > > BJ Freeman wrote: > > ignorant question. > > if you can include a screen and a screen can include a form. > > what am I missing. > > > > Jonathon -- Improov sent the following on 12/4/2007 9:49 PM: > >> Skip, > >> > >> Yes, I knew we can include screen widgets in FTL. I told you "screens as > >> building blocks", remember? > >> > >> Also, check out ${sections.render('section_name')}, by the way. > >> > >> My problem is that I can't add less than a screen in FTL. > >> > >> Consider that you have in FTL a HTML form. Somewhere inside that form, > >> you want to insert a <drop-down> widget. You can't, so you do what Si > >> Chen did, using FreeMarker macros. > >> > >> Why are we doing a HTML form in FTL? Because as discussed often before, > >> some UIs just need to be complex and pretty and requires FTL. > >> > >> Why am I trying to include <drop-down> widget into a HTML form in FTL? > >> Because it's more complex to use FTL <select>. Let me give a concrete > >> example. See ${component:party}/webapp/partymgr/party/editcontactmech.ftl . > >> > >> See lines: > >> > >> <select name="stateProvinceGeoId"> > >> > >> <option>${(mechMap.postalAddress.stateProvinceGeoId)?if_exists}</option> > >> <option></option> > >> ${screens.render("component://common/widget/CommonScreens.xml#states")} > >> </select> > >> > >> Looks simple enough? > >> > >> See screen widget ${component:common}/widget/CommonScreens.xml#states . > >> It points to another FTL file in > >> /framework/common/webcommon/includes/states.ftl . Look in that > >> states.ftl , and see how a non-trivial CommonWorkers class is used. > >> > >> If we can use widgets, it's just: > >> > >> <field name="geoId"> > >> <drop-down> > >> <entity-options entity-name="Geo" description="${geoName}" > >> combine="or"> > >> <entity-constraint name="geoTypeId" value="STATE"> > >> <entity-constraint name="geoTypeId" value="PROVINCE"> > >> <entity-order-by field-name="geoName"/> > >> </entity-options> > >> </drop-down> > >> </field> > >> > >> Compare the above <field> to the alternative now. See the <select> > >> chunk, plus the <screen name="states"> chunk, plus the states.ftl, plus > >> the CommonWorkers.getStateList() chunk. > >> > >> Note note! The attribute "combine" in element <entity-options> does not > >> exist... yet. :) Currently, all <entity-constraint> elements are "ANDed" > >> together, not "ORed". > >> > >> Jonathon > >> > >> [EMAIL PROTECTED] wrote: > >>> Yep, you can already do it, check out the screens.render line > >>> > >>> #if collectionSummary?has_content> > >>> <div class="screenlet-body"> > >>> <table width="100%" border="0" cellspacing="5"> > >>> <tr> > >>> <td width="50%"> > >>> > >>> ${screens.render("component://ar/widget/opentaps/collections/screens/Collect > >>> > >>> ionScreens.xml#collectionWorkArea")} > >>> </td> > >>> <td width="50%"> > >>> <#if chartURL?has_content> > >>> <img src="${chartURL}" style="vertical-align:middle; > >>> margin-left:35px"/> > >>> <#else> > >>> No chart Image > >>> </#if> > >>> </td> > >>> </tr> > >>> </table> > >>> </div> > >>> <#else> > >>> ${uiLabelMap.PartyNoPartyFoundWithPartyId}: > >>> ${parameters.partyId?if_exists} > >>> </#if> > >>> > >>> > >>> > >>> -----Original Message----- > >>> From: Jonathon -- Improov [mailto:[EMAIL PROTECTED] > >>> Sent: Tuesday, December 04, 2007 1:02 AM > >>> To: user@ofbiz.apache.org > >>> Subject: Re: Any plan to allow field widgets like <drop-down> inside > >>> <screen>? > >>> > >>> > >>> Skip, > >>> > >>> Do you mean it can currently be done already? Didn't know this. > >>> > >>> Or you mean it's a good step forward? > >>> > >>> Right now, whenever widgets are inadequate, a common practice (maybe the > >>> only feasible one) is to > >>> jump right into FTL and forget about widgets. > >>> > >>> (But if you can do all-widget forms and all-ftl forms, they do mix. I > >>> replied to your post about > >>> the "screens as building blocks" thing.) > >>> > >>> The lack of widgets (like convenient <drop-down>) in FTL is possibly the > >>> main motivation behind Si > >>> Chen's (opentaps) route with FreeMarker macros. Was mine too, at one > >>> time. I > >>> had a library of > >>> macros (sold, privatized, again, sigh). > >>> > >>> Jonathon > >>> > >>> [EMAIL PROTECTED] wrote: > >>>> Widgets in FTL is the only way currently to get some things done if you > >>> want > >>>> to use widgets. > >>>> > >>>> Skip > >>>> > >>>> -----Original Message----- > >>>> From: Jonathon -- Improov [mailto:[EMAIL PROTECTED] > >>>> Sent: Monday, December 03, 2007 5:36 PM > >>>> To: user@ofbiz.apache.org > >>>> Subject: Re: Any plan to allow field widgets like <drop-down> inside > >>>> <screen>? > >>>> > >>>> > >>>> Actually, this isn't going backwards. It's going forward. > >>>> > >>>> Some screens are best done in ftl. This was discussed countless times > >>>> before. > >>>> > >>>> In getting ftl screens to use field widgets, we reuse more of OFBiz's > >>>> widgets in more places. This > >>>> will bring us closer to using more of widgets. > >>>> > >>>> Jonathon > >>>> > >>>> BJ Freeman wrote: > >>>>> seems your going backwards. > >>>>> remove the ftl and use screen widgets that include formwidgets. > >>>>> add a class (style) and use the css for aligning tables. > >>>>> > >>>>> Jonathon -- Improov sent the following on 12/2/2007 8:48 PM: > >>>>>> The problem I'm facing now is that form widgets always have the start > >>>>>> and end wrappers (<table cellspacing...> and </table). It is not > >>>>>> possible to mix fields from one form into another form done in ftl. > >>>>>> > >>>>>> Attributes skip-start and skip-end only remove the <form> wrapper. > >>>>>> > >>>>>> Getting form widgets to say skip-table could solve this problem, > >>>>>> though > >>>>>> it's not intuitive to use form widgets as field widgets. Better to use > >>>>>> field widgets in screen widgets instead. However, this approach > >>>>>> could be > >>>>>> a quick interim fix. > >>>>>> > >>>>>> Another problem is the colspan for <td>. Maybe we can make that > >>> variable. > >>>>>> Field widgets like <drop-down> are fantastic. It's a pity we can't use > >>>>>> them inside of creative displays written in ftl. > >>>>>> > >>>>>> Si Chen did some FreeMarker macros for these, I believe. But if we're > >>>>>> gonna strongly advocate widget usage, I think we need to fill that > >>>>>> void > >>>>>> in screen widgets. Going the FreeMarker macros route would basically > >>>>>> rewrite much of what is already provided by field widgets. > >>>>>> > >>>>>> Maybe have a generic "group of fields" widget via <fields>? > >>>>>> > >>>>>> Jonathon > >>>>>> > >>>>>> > >>>>>> > >>>> > >>> > >>> > >> > >> > >> > > > > >