in ofbiz forms are fixed, like most you see in widgets and ftls.
you have a entity and/or context that stores the info, like in maps.
you then use the widget/ftl form to display the data in the entity or
context.
the ItemsToShow would be a map.
you would then iterate the map. you can see many examples of this.
you then set a field on the selection
here is an example you can find it in the blllingaccountsform.xml
<form name="ListBillingAccounts" type="list"
list-name="billingAccounts" paginate-target="FindBillingAccount"
default-entity-name="BillingAccount"
odd-row-style="alternate-row" default-table-style="basic-table
hover-bar">
<field name="billingAccountId" widget-style="buttontext">
<hyperlink description="${billingAccountId}"
target="EditBillingAccount?billingAccountId=${billingAccountId}"/>
</field>
this would got thru the contorller that would call
setPortalPortletAttributes then return to a view request.
Bruno Busco sent the following on 11/2/2008 2:05 AM:
> Hi devs,
> I need your help.
>
> I am trying to complete the Portal/Portlet stuff adding the possibility to
> set some attributes specific to a Portlet instance.
>
> The idea is that when a portlet is defined, a form is defined also and
> linked in the PortalPortlet entity with something similar to this:
> <PortalPortlet portalPortletId="LOGIN" portletName="Login"
> description="Login form"
> screenName="loginPortlet"
> screenLocation="component://common/widget/PortletScreens.xml"
> editFormName="LoginPortletEdit"
> editFormLocation="component://common/widget/PortletEditForms.xml" />
>
> The form is needed to edit a particular Portlet instance attributes. This
> extends from a common frame defined in the framework like this:
> <form name="CommonPortletEdit" type="single"
> target="setPortalPortletAttributes" title=""
> default-map-name="PortalPortletAttributeMap">
> <field name="portalPageId"><hidden/></field>
> <field name="portalPortletId"><hidden/></field>
> <field name="portletSeqId"><hidden/></field>
> <field name="submitButton" title="${uiLabelMap.CommonEdit}"><submit
> button-type="button"/></field>
> </form>
>
> Using this method an example of a specific portlet attribute editing form
> could be:
> <form name="LoginPortletEdit" extends="CommonPortletEdit"
> extends-resource="component://common/widget/CommonForms.xml">
> <field name="ItemsToShow">
> <drop-down allow-empty="false">
> <option key="5"/>
> <option key="15"/>
> <option key="20"/>
> <option key="25"/>
> <option key="30"/>
> <option key="35"/>
> </drop-down>
> </field>
> </form>
>
> In this example I supposed that the portlet has an attribute "ItemsToShow"
> that tells the portlet how many items to show.
>
> When the user submits one of the portlet attributes editing forms, the
> setPortalPortletAttributes service is triggered.
>
> My problem is now how to make this service able to retrieve from the
> submitted form the list of fields so that the Attribute entities can be
> created/updated.
>
> Is there an example of this in OFBiz?
> How can the service receive a map of fields that is not constant to iterate
> on?
>
> Many thanks for your help!
> -Bruno
>