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 >
