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