Hi Phillipe.
i am going to try "ProviderBundle".
I tried to migrate my application to gwtp just before the 2.1 release but I reverted my changes for 3 reasons :
1 - I prefer to not depend too much on an external framework. I love all new things that come in every new release of gwt and I am afraid that frameworks become unsupported or do not follow new features. I had the exemple of a friend who has prefered to use GXT instead of Pure GWT, and today, he cannot use UiBinder or the new Handler mechanism. He is still using the old listener way.
Today, GWT has released the new Activity ~ MVP part, with their own Place system. At the moment, MVP of GWT seems less powerfull than the GWTP's one, but the syntax is different. And tomorrow, maybe that directions will be more different. So I prefer not taking the risk to have a situation like with GXT.
2 - Declaration of Presenter / View looks too much complicated to me (but it is a pure subjective vision :) ).
All the generation of ProxyPlace are too magical for me or not enough... By instance, The automatic generation of a Place is something interesting, but in the same time, it is too complicated to generate. I do not like the fact to have to declare an interface which extends ProxyPlace, and references it in a type litteral. I would have prefered to just have something like :
@Place("login");
@RunAsync
public class LoginActivity implement GwtpActivity<LoginActivity.Presenter>
public inteface Presenter {
public void onLogin();
...
}
or something similar.
Today I prefer to stay on a manual code for this part instead of a "half generation" that is (in my opinion) too complicated to declare.
Finally (for the code style part), I did not like the fact that we have to use a local Widget variable in View and returns it with a asWidget() method for UiBinder Views.
Today with GWT 2.1, all widgets implements IsWidget and provides a asWidget(). But since we have to store a local instance of Widget inside of view for UiBinder, it cannot be done automatically, we have to override it.
However, I understand that IsWidget was not ready when you first implemented it. But today, it does not solve the problem of the local Widget variable.
3 - My application has two top div. One called "root" for the main part of my application, and one called "overlay" for all elements that comes like a filter over my root elements (to display overlay help, ...). They have both some css declaration on them.
I did not find any way to reuse this system with GWTP. GWTP come with a RootPresenter and I wanted to use a second RootPresenter plugged on overlay div but it is not possible.
ActivityManager are more flexible for this, they have a setDisplay() method to setup the top element to use.
Well, Phillipe, all those things are just my personal feelings for my specifical needs. I think that GWTP is a great framework for a lot of people.
Unfortunatly, in my case, I had to fight against it (maybe that it was a design problem, but I am not sure), and there was all the more subjective aspects (abouts framework overlay and code style) that made me go away.
In any case, Phillipe and Christian, thanks for your great work .
I am going to try ProviderBundle, maybe that I will be more comfortable with it :)
Nicolas.