Hi, looks even better to me! Cool idea Sven! Static methods like build pattern for lambdas.
kind regards Tobias > Am 11.03.2016 um 22:33 schrieb Sven Meier <[email protected]>: > > 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); > } > }; > } > > 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 >
