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

Reply via email to