On Mon, Jan 9, 2012 at 6:59 PM, Igor Vaynberg <[email protected]> wrote: > On Mon, Jan 9, 2012 at 6:14 AM, Martin Grigorov <[email protected]> wrote: >> Hi, >> >> In https://issues.apache.org/jira/browse/WICKET-4326 I suggest to >> introduce IAjaxRequestHander which is an interface for >> AjaxRequestTarget. >> It gives the possibility to be able to provide customized ART or >> completely new one. This way it is much easier to use a mock for >> testing too. > > looks fine, as long as we take this opportunity to also rename > AjaxRequestTarget to AjaxRequestHandler to bring it in line. also the > inner listeners should also s/target/handler/
agree > >> Until now we had >> org.apache.wicket.protocol.http.WebApplication#setAjaxRequestTargetProvider() >> but it was useless because ART is mostly final (i.e. many methods in >> it are final). > > its not useless, it lets applications register default listeners. for this we have org.apache.wicket.protocol.http.WebApplication#getAjaxRequestTargetListeners() :-) > overriding methods on the ART is dangerous. if you change the behavior > then none of the libraries that use ajax will work. this is why we > havent extracted the interface until now...there has to be one > consistent implementation. this is something I'm not quite convinced. if I replace a default impl of something then I'm responsible to make it working for my application needs if a user files a ticket that his impl doesn't work then I'll close it describing that this is not a problem we can solve. but often custom impls find what is missing in the abstractions so I find it useful > > -igor > >> The "bad" thing is that all onXyz() methods (like onEvent, onClick, >> onUpdate, ...) need to change their signature to receive >> IAjaxRequestHandler instead. >> The fix is easy but depending on how much Ajax you use in your >> application it may be a cumbersome task ... >> >> -- >> Martin Grigorov >> jWeekend >> Training, Consulting, Development >> http://jWeekend.com -- Martin Grigorov jWeekend Training, Consulting, Development http://jWeekend.com
