tapestry-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Harish Krishnaswamy <hkrishnasw...@comcast.net>
Subject Re: Populating a form
Date Thu, 01 Apr 2004 14:39:23 GMT
Couple things, you have to bind the hidden fields in the form to the 
attributes of the question property and your link should be a LinkSubmit 
or somthing to the effect.

-Harish

Todd O'Bryan wrote:

> Oh, I see...So that's why you suggested a form with empty fields in  
> PreviewQuestion. Those fields would re-populate the Question before  
> going back to EnterQuestion.
>
> I'll try that...
>
> Todd
>
> On Apr 1, 2004, at 9:24 AM, Harish Krishnaswamy wrote:
>
>>
>>
>> Todd O'Bryan wrote:
>>
>>> Actually, it's that the question I'm looking at in the PreviewPage  
>>> (which is not a form, just HTML text to let the user see what 
>>> they've  entered) doesn't make it into the form on EnterQuestion 
>>> when they  want to go back and edit it.
>>>
>>> When someone clicks Edit Question on the PreviewPage, I run (using 
>>> a  listener):
>>>
>>>     public void edit(IRequestCycle cycle) {
>>>         EnterQuestion nextPage = (EnterQuestion)  
>>> cycle.getPage("EnterQuestion");
>>>         nextPage.setQuestion(getQuestion());
>>>         cycle.activate(nextPage);
>>>     }
>>
>>
>> Because there is no form in this page, the question property will 
>> not  be populated when the edit link is clicked. So in this case you 
>> may  want to make the "question" property persistent on the 
>> EnterQuestion  page. And then you can simply activate the 
>> EnterQuestion page when the  edit link is clicked. When submit is 
>> clicked though you have to do  
>> cycle.getEngine().forgetPage("EnterQuestion") so the persistent  
>> property is cleared.
>>
>>>
>>> But then when I get to the EnterQuestion page, the form fields are  
>>> just blank.
>>>
>>> Todd
>>>
>>> P.S. Thanks for distinguishing between cycle.activate("String") and  
>>> cycle.activate(page). To make sure I understand, the first 
>>> activates  a new instance of the named page while the second 
>>> activates the exact  instance already referred to by the variable. 
>>> Is that right?
>>
>>
>> The first form activates an arbitrary instance from the page pool,  
>> while the second form activates the page that you have already  
>> retrieved from the pool via cycle.getPage()
>>
>> -Harish
>>
>>>
>>> On Mar 31, 2004, at 11:49 PM, Harish Krishnaswamy wrote:
>>>
>>>> I am not sure I quite follow the question. If you mean the  
>>>> PreviewQuestion page is getting populated with the question, then  
>>>> one problem, from what I see is, you are setting the question in 
>>>> one  page and activating another. i.e.  
>>>> prevQuestion.setQuestion(getQuestion) and then  
>>>> cycle.activate("PreviewQuestion") instead try  
>>>> cycle.activate(prevQuestion).
>>>>
>>>> Else if you mean that the question from the preview form doesn't  
>>>> make it into the page property that is probably because the form  
>>>> fields are either plain text or disabled fields. In this case you  
>>>> may want to try the persistent property or you could use hidden  
>>>> fields in the preview page if you want to run stateless.
>>>>
>>>> -Harish
>>>>
>>>>
>>>> Todd O'Bryan wrote:
>>>>
>>>>> OK, I think I've come up against my (continuing) incomplete  
>>>>> understanding of Tapestry...
>>>>>
>>>>> I'm writing a couple of pages to allow a teacher to enter 
>>>>> multiple  choice questions and have them stored in a database. 
>>>>> There's an  EnterQuestion page, with a form that populates the 
>>>>> fields of a  Question object. (The Question object is listed as a  
>>>>> property-specification in the .page file.) I was having trouble,  
>>>>> getting NullPointerExceptions until I realized that I needed to  
>>>>> initialize the Question object before I could bind its fields to  
>>>>> the form. I had the page implement PageRenderListener, and in  
>>>>> pageBeginRender() I put
>>>>>
>>>>> if (getQuestion() == null) { setQuestion(new Question()); }
>>>>>
>>>>> OK. Everything worked.
>>>>>
>>>>> At the bottom of EnterQuestion, there was a preview button which  
>>>>> lets someone see the question with formatting and such. I created 
>>>>> a  PreviewQuestion page which also had a Question as one of its  
>>>>> properties, and in the listener for Preview, I got the  
>>>>> PreviewQuestion page, and did a quick setQuestion(getQuestion())  
>>>>> before activate("PreviewQuestion") and all the fields ended up in  
>>>>> the right spot.
>>>>>
>>>>> So far so good.
>>>>>
>>>>> Now there are two choices. Either submit the question to the  
>>>>> database, or realize there's a problem, go back, and fix it. So I  
>>>>> have Submit and Edit links. In the Edit link, I tried getting  
>>>>> EnterQuestion as nextPage, and 
>>>>> nextPage.setQuestion(getQuestion()),  but the fields from the 
>>>>> PreviewQuestion page don't make it into the  form, which is what 
>>>>> I'd like to happen.
>>>>>
>>>>> How do I do this?
>>>>>
>>>>> Todd
>>>>>
>>>>>
>>>>> --------------------------------------------------------------------

>>>>> -
>>>>> To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
>>>>> For additional commands, e-mail:  
>>>>> tapestry-user-help@jakarta.apache.org
>>>>>
>>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
>>>> For additional commands, e-mail:  
>>>> tapestry-user-help@jakarta.apache.org
>>>>
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
>>> For additional commands, e-mail: tapestry-user-help@jakarta.apache.org
>>>
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
>> For additional commands, e-mail: tapestry-user-help@jakarta.apache.org
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: tapestry-user-help@jakarta.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tapestry-user-help@jakarta.apache.org


Mime
View raw message