I've checked all other IModel implementations but I didn't see more
candidates for lambd-ification.

Martin Grigorov
Wicket Training and Consulting
https://twitter.com/mtgrigorov

On Mon, Mar 14, 2016 at 4:15 PM, Martin Grigorov <[email protected]>
wrote:

> I've merged that branch.
> Now the Lambdas class with the factory methods for components and
> behaviors is also in master.
> Any ideas for improvements are welcome!
>
> Martin Grigorov
> Wicket Training and Consulting
> https://twitter.com/mtgrigorov
>
> On Mon, Mar 14, 2016 at 4:01 PM, Sven Meier <[email protected]> wrote:
>
>> > I didn't want to put every idea directly in master.
>>
>> Thanks to this procedure we've progressed a lot with lambdas :).
>>
>> Thanks
>> Sven
>>
>>
>>
>> On 14.03.2016 15:49, Martin Grigorov wrote:
>>
>>> I didn't want to put every idea directly in master.
>>> First wanted to here opinions.
>>> But I see how this makes it hard to follow.
>>> I'll merge this branch to master and then we can just rework whatever we
>>> find not optimal directly there.
>>>
>>> Martin Grigorov
>>> Wicket Training and Consulting
>>> https://twitter.com/mtgrigorov
>>>
>>> On Mon, Mar 14, 2016 at 3:16 PM, Sven Meier <[email protected]> wrote:
>>>
>>> Hm, I starting to lose track of what is on which branch :/.
>>>>
>>>> Sven
>>>>
>>>>
>>>>
>>>> On 14.03.2016 14:09, Martin Grigorov wrote:
>>>>
>>>> Hi Sven
>>>>>
>>>>>
>>>>> On Mon, Mar 14, 2016 at 1:23 PM, Sven Meier <[email protected]> wrote:
>>>>>
>>>>> Hi Martin,
>>>>>
>>>>>> speaking of someting to nuke - insteaf of:
>>>>>>
>>>>>>           IModel<String> personNameModel = new
>>>>>> SupplierCachingModel<>(person::getName);
>>>>>>
>>>>>> Why not simply?
>>>>>>
>>>>>>           IModel<String> personNameModel =
>>>>>> Model.loadableDetachable(person::getName);
>>>>>>
>>>>>> I didn't like the name "Supplier*Caching*Model" anyway.
>>>>>>
>>>>>> It is there already
>>>>>>
>>>>>
>>>>> https://github.com/apache/wicket/blob/static-factories-for-lambdas/wicket-core/src/main/java/org/apache/wicket/model/Model.java#L208
>>>>>
>>>>> But I agree there is no need of SupplierCachingModel as a separate
>>>>> class.
>>>>>
>>>>>
>>>>>
>>>>> Regards
>>>>>
>>>>>> Sven
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> On 14.03.2016 12:36, Martin Grigorov wrote:
>>>>>>
>>>>>> Yes!
>>>>>>
>>>>>>> -               IModel<String> personNameModel = new
>>>>>>> SupplierModel<>(person::getName);
>>>>>>> +               IModel<String> personNameModel = person::getName;
>>>>>>>
>>>>>>> Definitely makes sense to make it shorter!
>>>>>>>
>>>>>>> I'll nuke it now!
>>>>>>>
>>>>>>>
>>>>>>> Martin Grigorov
>>>>>>> Wicket Training and Consulting
>>>>>>> https://twitter.com/mtgrigorov
>>>>>>>
>>>>>>> On Mon, Mar 14, 2016 at 10:55 AM, Sven Meier <[email protected]>
>>>>>>> wrote:
>>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>> IModel being a functional interface now, what's the use of
>>>>>>>> SupplierModel
>>>>>>>> ?
>>>>>>>> IMHO we can get rid of it.
>>>>>>>>
>>>>>>>> Regards
>>>>>>>> Sven
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On 12.03.2016 23:39, Tobias Soloschenko wrote:
>>>>>>>>
>>>>>>>> Yep - I am very happy about it, too - cool features for wicket 8 :-)
>>>>>>>>
>>>>>>>> Great work all!
>>>>>>>>>
>>>>>>>>> kind regards
>>>>>>>>>
>>>>>>>>> Tobias
>>>>>>>>>
>>>>>>>>> Am 12.03.16 um 23:38 schrieb Sven Meier:
>>>>>>>>>
>>>>>>>>> As a bonus IModel is a @FunctionalInterface now and one can do
>>>>>>>>> things
>>>>>>>>>
>>>>>>>>> like:
>>>>>>>>>>
>>>>>>>>>>> new Link<String>("", () -> "abc") {
>>>>>>>>>>>      @Override
>>>>>>>>>>>      public void onClick()
>>>>>>>>>>>      {
>>>>>>>>>>>         // ...
>>>>>>>>>>>      }
>>>>>>>>>>> };
>>>>>>>>>>>
>>>>>>>>>>> Seems we're getting a grip on Wicket+lambdas finally :)
>>>>>>>>>>>
>>>>>>>>>>> Thanks
>>>>>>>>>> Sven
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On 12.03.2016 23:13, Martin Grigorov wrote:
>>>>>>>>>>
>>>>>>>>>> On Sat, Mar 12, 2016 at 11:01 PM, Martin Grigorov <
>>>>>>>>>>
>>>>>>>>>> [email protected]
>>>>>>>>>>> wrote:
>>>>>>>>>>>
>>>>>>>>>>> On Sat, Mar 12, 2016 at 7:48 PM, Sven Meier <[email protected]>
>>>>>>>>>>> wrote:
>>>>>>>>>>>
>>>>>>>>>>> Hi,
>>>>>>>>>>>
>>>>>>>>>>>> 1)
>>>>>>>>>>>>
>>>>>>>>>>>>> we've been twiddling with read-only models for some time now,
>>>>>>>>>>>>> and
>>>>>>>>>>>>> IIRC it
>>>>>>>>>>>>> never quite worked out.
>>>>>>>>>>>>> I don't see much benefit in IReadOnlyModel as it is proposed
>>>>>>>>>>>>> now -
>>>>>>>>>>>>> perhaps I'm missing the point though.
>>>>>>>>>>>>>
>>>>>>>>>>>>> How about adding another default to IModel:
>>>>>>>>>>>>>
>>>>>>>>>>>>>         default void setObject(final T object) {
>>>>>>>>>>>>>             throw new UnsupportedOperationException();
>>>>>>>>>>>>>         }
>>>>>>>>>>>>>
>>>>>>>>>>>>> This way we can get rid of AbstractReadOnlyModel too :P
>>>>>>>>>>>>>
>>>>>>>>>>>>> A minor thing that bothers me here is that currently
>>>>>>>>>>>>> AROM#setObject()
>>>>>>>>>>>>>
>>>>>>>>>>>>> is
>>>>>>>>>>>>>
>>>>>>>>>>>> final, so subclasses are effectively read only too.
>>>>>>>>>>>> By moving this method to IModel we cannot make any guarantees.
>>>>>>>>>>>> But I guess it will always be used as an anonymous inner class,
>>>>>>>>>>>> as
>>>>>>>>>>>> AROM is
>>>>>>>>>>>> used now. If someone wants to have children then (s)he will
>>>>>>>>>>>> have to
>>>>>>>>>>>> create
>>>>>>>>>>>> a custom class and there (s)he can make it 'final'.
>>>>>>>>>>>> Let's do it!
>>>>>>>>>>>>
>>>>>>>>>>>> As a bonus IModel is a @FunctionalInterface now and one can do
>>>>>>>>>>>> things
>>>>>>>>>>>>
>>>>>>>>>>>> like:
>>>>>>>>>>>>
>>>>>>>>>>> new Link<String>("", () -> "abc") {
>>>>>>>>>>>        @Override
>>>>>>>>>>>        public void onClick()
>>>>>>>>>>>        {
>>>>>>>>>>>           // ...
>>>>>>>>>>>        }
>>>>>>>>>>> };
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> 2)
>>>>>>>>>>>
>>>>>>>>>>> I don't see a need for this.
>>>>>>>>>>>>
>>>>>>>>>>>>> Have fun
>>>>>>>>>>>>> Sven
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> how about adding a
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> On 11.03.2016 22:54, Martin Grigorov wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>> Hi,
>>>>>>>>>>>>>
>>>>>>>>>>>>> At "lambdas" [1] branch there are two more features:
>>>>>>>>>>>>>
>>>>>>>>>>>>>> 1) IReadOnlyModel by Michael Mossman
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> At the moment there are AbstractReadOnlyModel and
>>>>>>>>>>>>>> SupplierModel
>>>>>>>>>>>>>> (extends
>>>>>>>>>>>>>> from AROM).
>>>>>>>>>>>>>> Initially while MM suggested IROM I thought it will be a
>>>>>>>>>>>>>> parent
>>>>>>>>>>>>>> interface
>>>>>>>>>>>>>> of IModel but it is the opposite - IROM extends from IModel.
>>>>>>>>>>>>>> I don't see need of IROM. The classes look enough to me.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> 2) stream based iteration of container's children by Andrea
>>>>>>>>>>>>>> Del
>>>>>>>>>>>>>> Bene
>>>>>>>>>>>>>> I have said my opinion before - the visitor approach is faster
>>>>>>>>>>>>>> than
>>>>>>>>>>>>>> the
>>>>>>>>>>>>>> stream based one.
>>>>>>>>>>>>>> In addition we have to remove the deprecated
>>>>>>>>>>>>>> org.apache.wicket.util.iterator.AbstractHierarchyIterator and
>>>>>>>>>>>>>> its
>>>>>>>>>>>>>> related
>>>>>>>>>>>>>> classes because it fails with StackoverflowError when used in
>>>>>>>>>>>>>> a
>>>>>>>>>>>>>> page
>>>>>>>>>>>>>> with
>>>>>>>>>>>>>> bigger component tree.
>>>>>>>>>>>>>> So I don't see a reason for this feature.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Your option on them ?
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> 1. https://github.com/apache/wicket/compare/lambdas
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Martin Grigorov
>>>>>>>>>>>>>> Wicket Training and Consulting
>>>>>>>>>>>>>> https://twitter.com/mtgrigorov
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>
>

Reply via email to