Other than using AspectJ to intercept the @Begin annotated methods, I don't
see an elegant/straightforward solution.
An idea could be to subclass WebPage adding a visitor to look for all
components implementing IFormSubmitListener interface (ILinkListener .. and
so on).
That components should be replaced dynamically with an interceptor proxy.
Anyway it would be a partial solution because in Wicket action could be
submitted with behaviour also.
Core developers any ideas?
// Paolo
On Fri, May 9, 2008 at 6:27 PM, Pete Muir <[EMAIL PROTECTED]> wrote:
> All,
> Looking for some ideas/suggestions here (perhaps I am missing a trick
> here?).
>
> Wicket binds html layout/styling to Java objects which define the component
> behaviour:
>
> public class Home extends WebPage {
>
> @In Foo foo;
>
> public Home(final PageParameters parameters) {
> add(new LoginForm("login"));
> }
> }
>
> is doable, as we use a component instantiation callback (provided by
> Wicket) to make foo a proxy which asks Seam for the component *every time*
> the object is accessed. This is pretty ugly though, and I would prefer to
> use injection/disinjection.
>
> However, if we want to do:
>
> public class LoginForm extends Form {
> public LoginForm(String id) {
> super(id);
> add(new TextField("username", new PropertyModel(identity,
> "username")));
> add(new PasswordTextField("password", new PropertyModel(identity,
> "password")));
> }
>
> @Begin
> protected void onSubmit() {
> // Authenticate, and display feedback to user
> }
> }
> }
> }
>
> then no lifecycle callback will help.
>
> As you can see the new operator is used almost exclusively. This means we
> can't use a proxy based interceptor system. So, AFAICS we have to use byte
> code enhancement to apply an interceptor, I guess either at compile time or
> through a custom classloader.
>
> So,
>
> 1) is it worth it (this is starting to get very fiddly)?
> 2) is there a better way?
>
> Thanks :)
>
> _______________________________________________
> seam-dev mailing list
> [EMAIL PROTECTED]
> https://lists.jboss.org/mailman/listinfo/seam-dev
>
>