On Thu, Sep 11, 2008 at 2:18 PM, Stephane Decleire
<[EMAIL PROTECTED]> wrote:
> When the Form is successfully submitted, i want to return my component but
> with a different view of the data where there is no Form so my success event
> handler returns the component itself (by returning 'this') but with a
> different view. And as i said before, despite the generation of 2 zones, it
> works.
> My question is more on the choice that has been made on the Form component
> to manage zones. I don't understand why the Form component is not able to
> manage an englobing zone as the Link component does ... I don't like the
> fact that it has its own behavior. IMHO all components should manage the
> zones in the same way ... Does the Form component need its own zone
> internally in Tapestry ?

It is handled exactly the same as the ActionLink component.  The error
is in your code.

>
> Stephane
>
> Howard Lewis Ship a écrit :
>>
>> What is being returned from your form's success event handler?
>>
>> You want to return a Block that contains your Form.
>>
>> You could even return the Form itself.
>>
>> If you return the Zone, it renders its <div> and then its content.
>>
>> In 5.0.15-SNAPSHOT you could return the zone's body property.
>>
>> On Thu, Sep 11, 2008 at 2:19 AM, Webmaster Bébé Nounou
>> <[EMAIL PROTECTED]> wrote:
>>
>>>
>>> I would like to get your thoughts about the necessity for the form
>>> component
>>> to output its own Zone when one already exists ...
>>>
>>> I work on a component wish should be able to show the user a piece of
>>> data
>>> (an article) but with different views according to the use case :
>>> - The user can read an extract of the article,
>>> - The user can read the whole article,
>>> - The user can edit/create the article.
>>> The idea is to permit the user to switch from one view to the other
>>> without
>>> rerendering the whole page (which show a list of articles) using Tapestry
>>> Ajax possibilities.
>>>
>>> So i started by putting all the output of the article in a global zone
>>> called ArticleZone with Links (where the zone parameter is set to the
>>> ArticleZone) to switch between the views.
>>>
>>> <t:zone t:id="ArticleZone">
>>>  <t:delegate to="view"/>
>>> </t:zone>
>>>
>>> <t:block id="ResumeView">
>>>  <t:eventlink t:event="detail" t:zone="ArticleZone">Detail</t:eventlink>
>>>  ...
>>> </t:block>
>>>
>>> <t:block id="DetailView">
>>>  <t:eventlink t:event="resume" t:zone="ArticleZone">Resume</t:eventlink>
>>>  ...
>>> </t:block>
>>>
>>> All that stuff works fine.
>>>
>>> The problem raises up with the edit view. In this view, the data is shown
>>> in
>>> a Form and i just set the zone parameter of the form to the ArticleZone
>>> (as
>>> i did with the links).
>>>
>>> <t:block id="EditView">
>>>  <t:form t:id="articleForm" t:zone="ArticleZone">
>>>      ...
>>>  </t:form>
>>> </t:block>
>>>
>>> I thought that the ArticleZone would be rerendered when the submit is
>>> triggered and for the end user, it looks like it is done. But if one look
>>> at
>>> the HTML code rendered to the client, he can see that Tapestry rendered 2
>>> Zones ! The ArticleZone and a second ArticleZone (renamed by the
>>> framework
>>> to avoid the duplication of the name) for the Form to use ...
>>>
>>> <div id="ArticleZone" class="t-zone">
>>>  <div id="ArticleZone:11c50af13af" class="t-zone">
>>>      <form id="articleForm:11c50af13af" name="articleForm:11c50af13af"
>>> method="post" action="/backoffice/testad.adbloc.articleform">
>>>        ...
>>>      </form>
>>>  </div>
>>> </div>
>>>
>>> So why doesn't Tapestry use the existing Zone when this one already
>>> exists
>>> like Links do ... (and creates the Zone defined in the zone parameter of
>>> the
>>> Form only if this one doesn't exist) ?
>>>
>>> Stephane
>>>
>>>
>>>
>>
>>
>>
>>
>



-- 
Howard M. Lewis Ship

Creator Apache Tapestry and Apache HiveMind

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to