Hmm.. every response from Jens is starting a new thread. Very hard to follow.
On Tue, Aug 23, 2011 at 1:43 AM, Robert Zeigler <robert.zeig...@roxanemy.com> wrote: > PS. :) > > 1) There's an easier way to do this than what I said in my last e-mail. :) A > ComponentAction is executed in the order in which it is stored. The problem > here is that you're storing it in the SetupRender phase, which is before the > form components store their actions for updating the values. So change just > the render phase method from setupRender to afterRender and you should be set. > > 2)I was thinking about other ways to do this. You might be able to write a > custom binding that understands your conventions. > > Eg: <t:checkbox value="yourbinding:object.newsletter;0;1"/> Now yourbinding > can extrapolate the information that you need directly from the objects > without resorting to custom ComponentAcions all over the place. > > > Robert > > On Aug 23, 2011, at 8/233:23 AM , Jens Breitenstein wrote: > >> Hi Robert (and all others), >> >> sorry to bother you, but >> >> I implemented a ComponentAction and use FormSupport as you suggested it. And >> it's near to what I need :-) >> Unfortunately the "execute" method is called before tapestry updates the >> property thus I see the orginal value not the new one? >> Any idea how to solve the last piece of the puzzle? >> >> Jens >> >> >> >> ... >> @Property(write = false) // ---->> test to see when tapestry >> reflects changes >> private boolean _weeklyNewsletter; >> >> @Component(id = "weeklyNewsletter", parameters = >> {"value=weeklyNewsletter"}) >> private Checkbox _weeklyNewsletterCheckbox; >> >> >> @Environmental >> private FormSupport _formSupport; >> >> private static class NewsletterComponentAction implements >> ComponentAction<Newsletter> >> { >> // ---->> called but properties not set yet >> public void execute(final Newsletter c) >> { >> c._userAccount.setNewsLetter("" + (c._dailyNewsletter ? "1" : "0") >> + (c._weeklyNewsletter ? "1" : >> "0") + (c._monthlyNewsletter ? "1" : "0")); >> } >> } >> >> public void setupRender() >> { >> ... >> _formSupport.store(this, new NewsletterComponentAction()); >> } >> >> // ---->> this method is called after execute? >> public void setWeeklyNewsletter(final boolean b) >> { >> _weeklyNewsletter = b; >> } >> .... >> >> >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org >> For additional commands, e-mail: users-h...@tapestry.apache.org >> > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > For additional commands, e-mail: users-h...@tapestry.apache.org > > --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org