Actually, this is a very interesting idea. I did this with a little
more effort...
I created a page, called Message, with two properties: A text message
and a callback. This way I can handle all sort of messages, since "ok"
messages to complicated errors, without having almost no additional(or
repeated) code inside the pages.

just my 2 cents. :)

On Tue, Aug 5, 2008 at 7:48 AM, Chris Lewis <[EMAIL PROTECTED]> wrote:
> Cool, thanks :-)
>
> Martijn Brinkers (List) wrote:
>> That's exactly what I do as well.
>>
>> Martijn
>>
>> On Sun, 2008-08-03 at 10:49 -0400, Chris Lewis wrote:
>>
>>> Angelo,
>>>
>>> Following are the very trimmed down versions of my template and page
>>> class. It shows the delegate and blocks, and how the block to render is
>>> determined. I didn't want to use a traditional page return for a few
>>> reasons: 1) Displaying a simple result message doesn't really need a
>>> full page. 2) This process will probably end up being ajax, which will
>>> probably mean I'll need the blocks anyway (unless I use a different ajax
>>> method).
>>>
>>> So anyway, here it is:
>>>
>>>
>>> Info.tml
>>>
>>> <div xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd";
>>>     t:type="layouts/general">
>>>
>>>     <t:delegate to="content" />
>>>
>>>     <t:block id="infoRequest">
>>>         <div t:type="form" t:id="infoRequest">
>>>          <!-- ... form details ... -->
>>>         </form>
>>>     </t:block>
>>>
>>>     <t:block id="messageSent">Thanks!</t:block>
>>> </div>
>>>
>>>
>>> Info.java
>>>
>>> public class Info {
>>>
>>>     @Persist("flash")
>>>     private Block content;
>>>
>>>     @Inject
>>>     private Block messageSent;
>>>
>>>     @Inject
>>>     private Block infoRequest;
>>>
>>>     void onActivate() {
>>>         if(content == null)
>>>             content = infoRequest;
>>>     }
>>>
>>>     void onSuccessFromInfoRequest() {
>>>        //Process form - update/save/create entity, send email, etc.
>>>
>>>        //Set our content block to the messageSent block.
>>>         content = messageSent;
>>>     }
>>>
>>>     public Block getContent() {
>>>         return content;
>>>     }
>>>
>>> }
>>>
>>>
>>> chris
>>>
>>> Angelo Chen wrote:
>>>
>>>> hi cris,
>>>>
>>>> sounds interesting, how about a sample code/template to let us understand
>>>> more? thanks.
>>>>
>>>> angelo
>>>>
>>>>
>>>> Chris Lewis-5 wrote:
>>>>
>>>>
>>>>> Hello all,
>>>>>
>>>>> I'm wondering how others handle a simple flow where a user fills out a
>>>>> form, form is processed, and then a message is shown as a result ("ok"
>>>>> or "failed"). I have a simple contact form and am handling this like so:
>>>>>
>>>>> In my template I have 2 blocks: 1 is the form and the other is the
>>>>> message (or a place holder). There is also a t:delegate that will render
>>>>> the page property "content", which is just another block that will be
>>>>> assigned the form or message block.
>>>>>
>>>>> Now because I have 2 different possible "bodies" (the blocks), I have to
>>>>> have some logic to make sure the correct one gets displayed. So my the
>>>>> page's content property is annotated as @Persist("flash"), and at the
>>>>> end of the form submission I set the content member to a message. It's
>>>>> persisted, so that works. To get the initial content (the form) to
>>>>> render, I check if the content property is null in onActivate, and if so
>>>>> assign the form block.
>>>>>
>>>>> It works nicely, and I was wondering how others were handling this
>>>>> common use case and if something stinks about my method.
>>>>>
>>>>> Thanks!
>>>>>
>>>>> chris
>>>>>
>>>>> --
>>>>> http://thegodcode.net
>>>>>
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>>>>> For additional commands, e-mail: [EMAIL PROTECTED]
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>>
>>
>>
>
> --
> http://thegodcode.net
>
>



-- 
Atenciosamente,

Marcelo Lotif
Programador Java e Tapestry
FIEC - Federação das Indústrias do Estado do Ceará
(85) 3477-5910

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

Reply via email to