Great, that explains it very well. Thanks for your help.
Eric. On Tue, Mar 25, 2008 at 12:55 PM, Johan Compagner <[EMAIL PROTECTED]> wrote: > no if you call on any component setResponsePage() > then that page is set as the response at the time of the call. > It is not internal state of that component that is then somehow picked up > at > some point.... > > A component/page doesn't have a "default" response page.. (the default > response page is the page that is just rendered) > > So yes if you want to go back to a calling page then you have to give that > to the constructor. > > johan > > > On Tue, Mar 25, 2008 at 1:42 PM, Eric Rotick <[EMAIL PROTECTED]> wrote: > > > Thanks for the help, I'm getting there...slowly! > > > > Does this mean that I can't do something like > > > > new MyPage1( ).setResponsePage( new MyPage2( ) ); > > > > and then somewhere else > > > > new MyPage1( ).setResponsePage( new MyPage3( ) ); > > > > Instead I have to add a parameter to all pages that could have a > variable > > response page and set that via the setReponsePage in an onSubmit call. > As > > in > > > > new MyPage1( new MyPage2( ) ); > > > > and > > > > new MyPage1( new MyPage3( ) ); > > > > After all, the default response page is the page itself. All that is > > happening is resetting the default response page to something else. > > > > Be gentle ;-> > > > > Eric. > > > > > > On Tue, Mar 25, 2008 at 12:24 PM, Johan Compagner <[EMAIL PROTECTED]> > > wrote: > > > > > We really should remove all the RequestCycle methods from components > if > > i > > > read these kind of mails.... > > > > > > form.setResponsePage() doesn't mean that in the onSubmit that page is > > set > > > as > > > a response! > > > > > > That is something you should do yourself yes in the onSubmit() > > > you dont have to do then form.xxxx > > > just setResponsePage() is enough > > > > > > those methods are just all helper methods that are nothing more then > > > relays > > > to the RequestCycle > > > > > > You dont set state on the Object itself (like here form) > > > > > > johan > > > > > > > > > On Tue, Mar 25, 2008 at 1:08 PM, Eric Rotick <[EMAIL PROTECTED]> > > wrote: > > > > > > > I have simplified the class and it behaves the same. > > > > > > > > public class SingleItemForm extends Panel { > > > > > > > > public SingleItemForm( > > > > String id, > > > > final boolean readonly, > > > > final ISingleDisplay display, > > > > final IModel model, > > > > final Page callingPage > > > > ) > > > > { > > > > super( id ); > > > > > > > > add( new FeedbackPanel ("feedback" ) ); > > > > > > > > final Form form = new Form( "SingleItemFormName" ); > > > > // Call here has no effect > > > > if( callingPage != null ) { > > > > form.setResponsePage( callingPage ); > > > > } > > > > > > > > RepeatingView rv = new RepeatingView( > "SingleItemFormContents" > > ); > > > > for( Iterator views = display.getViews( ).iterator( ); > > > > views.hasNext( > > > > ); ) { > > > > IView view = (IView) views.next( ); > > > > rv.add( new FieldSetView( rv.newChildId( ), readonly, > > > display, > > > > model, view ) ); > > > > } > > > > form.add( rv ); > > > > > > > > form.add( new SubmitLink( "link1" ) { > > > > public void onSubmit( ) { > > > > display.getData( ).saveItem( model.getObject( ) ); > > > > // Call here works > > > > if( callingPage != null ) { > > > > form.setResponsePage( callingPage ); > > > > } > > > > } > > > > } ); > > > > > > > > add( form ); > > > > } > > > > > > > > } > > > > > > > > > > > > > > > > On Tue, Mar 25, 2008 at 11:32 AM, Johan Compagner < > > [EMAIL PROTECTED]> > > > > wrote: > > > > > > > > > do you have some sample code?? > > > > > what do you mean with setResponsePage outside of an onSubmit or > > click? > > > > > outside of what? when is it called? > > > > > > > > > > On Tue, Mar 25, 2008 at 12:22 PM, Eric Rotick < > [EMAIL PROTECTED]> > > > > > wrote: > > > > > > > > > > > I have a page with many buttons to do different things. I > decided > > > the > > > > > best > > > > > > strategy was to setup the default page via a call to > > setReponsePage > > > at > > > > > the > > > > > > start of the page and then overrride this in the onSubmit method > > for > > > > > each > > > > > > button. > > > > > > > > > > > > This appears not to work. However, if I set a value of the > default > > > > page > > > > > > and > > > > > > override this value in the onSubmit method of each button and > then > > > > only > > > > > > call > > > > > > the setResponsePage in the obSubmit method for the form then it > > > works. > > > > > > I've > > > > > > also tried only making the call to setResponsePage in the > onSubmit > > > or > > > > > > onClick methods and this works. > > > > > > > > > > > > In summary, a call to setReponsePage outside of an onSubmit or > > > onClick > > > > > > appears to have no effect. > > > > > > > > > > > > Is this correct and if so why? I can't find any docs to suggest > > not > > > > > using > > > > > > this strategy. > > > > > > > > > > > > > > > > > > > > >