Ok thanks Jesse

I think I figured out what the problem was. My model values were initialized
in the pageBeginRender listener, thus resetting the model value I had just
modified in the event listener. After I switched to @InitialValue
annotations instead, it worked.
This brings a question: what is the proper strategy to initialize property
values when using ajax submits? Does finishLoad() does the trick? I am still
a bit confused about when all those methods/listeners are invoked and in
which order

I am now also facing another (probably unrelated) problem : the event is
properly triggered and the select content is updated... but only once. The
second time, the event is not fired, and no XHR request is sent to the
server. I think I remember reading something about this in the list, but I
couldn't put a hand on it. Do you have any idea?

Thx again for all the great job. Although I'm having a tough time making it
work, it really is a nice programming model

Ch.


2006/9/14, Jesse Kuhnert <[EMAIL PROTECTED]>:

I'm not sure. Something sounds wrong. How does the work when not using
ajax?
I mean, are you sure you are hitting problems related to dynamic behavior
or
more with dealing with normal api semantics?

The debug should explicitly show you the content it is updating a
component
with. If it has debug statements showing the content then it could be your
listener method doing something funky.

Mark Reynolds has become my favorite bug reporter of all time. His issues
usually come with completely self contained projects that I can invoke
"mvn
jetty:run" on to see all the gory bug details (documented examples and
all)
for myself. One such issue was unrelated to what you are experiencing but
does include a good example of doing exactly what you are trying to do.
Perhaps it will be of some help.

http://issues.apache.org/jira/browse/TAPESTRY-1072

Let me know if the documentation hasn't made something clear after you try
it out and I can attempt updating with whatever relevant information there
is.

On 9/13/06, Christian Dutaret <[EMAIL PROTECTED]> wrote:
>
> debug statement says it has updated the content of the component, but
the
> options are still the old ones.
> I also ran the app on debug, and set a breakpoint within the
> renderComponent() method in the PropertySelection class. It seems it
still
> grabs the old value of the model, even after I updated it.
> I also tried with other bindings, such as "disabled", and it doesn't
work
> either. The only binding I can see updated is the "value" binding.
> Also tried with a surrounding div, still no success.
>
> Is there a chance this would work better with the Select/Option
> components?
> Didn't try those (I never used them actually).
> My app really needs to update the full content of a dropdown list
> depending
> on some other selections. I used to achieve this with XTile components,
> and
> that worked like a charm, but required quite a lot of javascript
plumbing.
>
> 2006/9/13, Jesse Kuhnert <[EMAIL PROTECTED]>:
> >
> > It should work, I ~think~...What kind of response do you get from the
> > server
> > ? (via the dojo debug statements or FireBug ? )
> >
> > On 9/13/06, Christian Dutaret <[EMAIL PROTECTED]> wrote:
> > >
> > > Hi all,
> > >
> > > I am trying to change the content of a dropdown list when some event
> > > occur.
> > > I am using PropertySelection to render the dropdown list. I assumed
> that
> > > my
> > > listener could change the component's PropertySelectionModel, and
that
> > > updateComponent would render the updated content, but this doesn't
> work.
> > > Shouldn't the "model" binding be re-rendered when updateComponent is
> > > called,
> > > or am i doing something wrong?
> > > I am using the latest 4.1.1 snapshot.
> > >
> > > Thx for any hint.
> > >
> > > My page class:
> > >
> > > public abstract void setModelB(IPropertySelectionModel value);
> > >
> > > @EventListener(targets="A", events="onchange", submitForm="form")
> > > public void changeA(IRequestCycle cycle) {
> > >     this.setModelB(buildNewModelFromDb(a));
> > >     cycle.getResponseBuilder().updateComponent("B");
> > > }
> > >
> > > My HTML template:
> > >
> > > <span jwcid="@Shell" title="Tapestry 4.1 test"
> browserLogLevel="DEBUG">
> > > <body jwcid="@Body">
> > > <form jwcid="[EMAIL PROTECTED]" success="listener:doNothing">
> > > <span jwcid="[EMAIL PROTECTED]" model="ognl:modelA"
value="ognl:a"/>
> > > <span jwcid="[EMAIL PROTECTED]" model="ognl:modelB"
value="ognl:b"/>
> > > <input type="submit" value="Go"/>
> > > </form>
> > > </body>
> > > </span>
> > >
> > > Ch.
> > >
> > >
> >
> >
> > --
> > Jesse Kuhnert
> > Tapestry/Dojo/(and a dash of TestNG), team member/developer
> >
> > Open source based consulting work centered around
> > dojo/tapestry/tacos/hivemind. http://blog.opencomponentry.com
> >
> >
>
>


--
Jesse Kuhnert
Tapestry/Dojo/(and a dash of TestNG), team member/developer

Open source based consulting work centered around
dojo/tapestry/tacos/hivemind. http://blog.opencomponentry.com


Reply via email to