I already was at the point of building my complete form, and removing
stuff I as go along. The thing I got stuck at was *where* to remove
controls. I was keeping state at the form, which was a bad choice. The
Page property and the Page#onRender() did the trick.

And now it works :)

Thanks

WJ



On Tue, 2009-06-30 at 19:29 +0200, Bob Schellink wrote:
> WarnerJan Veldhuis wrote:
> > Gents,
> > 
> > Where is the best place to modify the presence of fields in a Form? I 
> > have tried to modify the fields by overriding Form#getFieldList(), 
> > Form#onInit(), Form#onProcess(), but I keep running into issues, where 
> > the onLogin() ActionListener of the Submit gets fired after all these 
> > methods.
> 
> 
> I assume your login form is a stateless page and you want to check in 
> your onLogin method whether to force a logout?
> 
> Couple of ways you can try (perhaps you already did :)
> 
> 1. The event methods onGet/onPost and onRender are all invoked after 
> the actionListener is dispatched, so you can override them to add the 
> "forceLogoff" checkbox. However on the subsequent request the checkbox 
> won't be part of the Form when the Form is processed (as the checkbox 
> is only added after the onProcess event). But the "forceLogoff" 
> request parameter will still be present so you can check if its 
> available and force the logoff.
> 
> 2. Dynamic Pages can be difficult to work with in a stateless 
> environment because at design time some controls (in your case the 
> checkbox) are not part of the Form. So how about reversing this 
> problem and ensuring that all dynamic parts are part of the Form at 
> design time. Then at runtime instead of adding the checkbox you 
> instead remove it. For example you can have a boolean Page property, 
> "userLoggedOn", which is false by default. In the onRender method you 
> can query this check whether the checkbox should be rendered or not. 
> By default "userLoggedOn" will be false so you end up removing the 
> checkbox. However if your login fails, you can set "userLoggedOn" to 
> true, meaning it will render and when the Form submits, you can check 
> if logoff should be forced.
> 
> Hope this helps.
> 
> kind regards
> 
> bob

Reply via email to