I'm working on this! On Mar 12, 2016 9:14 AM, "Tobias Soloschenko" < [email protected]> wrote:
> Looking forward to this this in several other components! :-) > > kind regards > > Tobias > > Am 11.03.2016 um 23:03 schrieb Sven Meier <[email protected]>: > > >> 'onEvent' ... 'onUpdate' ... 'onUpdateChoice' from AFCCUB. > > > > Cool 8) > > > > Sven > > > > > > > >> On 11.03.2016 23:00, Martin Grigorov wrote: > >>> On Fri, Mar 11, 2016 at 10:33 PM, Sven Meier <[email protected]> wrote: > >>> > >>> Hi, > >>> > >>> I don't like to add additional classes and/or longer class names. > Neither > >>> should we deprecate any 'old' solutions. > >>> I'm not keen on the Component#on(String, AjaxListener) method either. > >>> > >>> My idea: > >>> 3) > >>> > >>> public static AjaxEventBehavior lambda(String event, > >>> WicketConsumer<AjaxRequestTarget> consumer) { > >>> return new AjaxEventBehavior(event) { > >>> @Override > >>> protected void onEvent(AjaxRequestTarget target) > >>> { > >>> consumer.accept(target); > >>> } > >>> }; > >>> } > >> I like it! > >> The method name could be 'onEvent' though. This way one could import it > >> statically together with 'onUpdate' from > AjaxFormComponentUpdatingBehavior > >> and 'onUpdateChoice' from AFCCUB. > >> > >> > >>> Usage: > >>> > >>> public MyPanel(String id) { > >>> super(id); > >>> > >>> label = ...; > >>> label.add(AjaxEventBehavior.lambda("click", this::onDoAjax); > >>> } > >>> > >>> private void onDoAjax(AjaxRequestTarget target) { ... } > >>> > >>> > >>> > >>> Sven > >>> > >>> > >>> > >>>> On 11.03.2016 21:45, Martin Grigorov wrote: > >>>> > >>>> Hi, > >>>> > >>>> I'd like to ask you for your opinion on the following options: > >>>> > >>>> 1) introduce java.util.function.Consumer in the existing components > and > >>>> behaviors > >>>> Example: > >>>> > >>>> > https://github.com/apache/wicket/blob/lambdas-ajax/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxEventBehavior.java > >>>> > >>>> Pros: > >>>> - reuse the same components/behaviors as before > >>>> > >>>> Cons: > >>>> - the components/behaviors are no more abstract and the developer may > >>>> forget to add implementation, i.e. provide consumer or override > #onXyz() > >>>> method > >>>> > >>>> 2) introduce new components and behaviors > >>>> Example: > >>>> > >>>> > https://github.com/apache/wicket/blob/lambdas-ajax-L/wicket-core/src/main/java/org/apache/wicket/ajax/LAjaxEventBehavior.java > >>>> > >>>> Pros: > >>>> - more cleaner API > >>>> > >>>> Cons: > >>>> - yet another class for the same functionality > >>>> - a bit uglier name. Whatever name I imagine doesn't sound better > than the > >>>> name of the original class > >>>> > >>>> 3) 2) but in separate module (e.g. wicket-java8) > >>>> > >>>> 4) 2) but in WicketStuff project > >>>> > >>>> 5) Other ideas ? > >>>> > >>>> Martin Grigorov > >>>> Wicket Training and Consulting > >>>> https://twitter.com/mtgrigorov > > >
