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. > > > > > > > > > >