On Jul 22, 3:07 am, SD <[email protected]> wrote:
> Is this correct?
>
> So, if a class like AView is instantiated using UIBinder when doing a
> createAndBind on an xml file that has a reference to AView, and Aview
> has an @Singleton annotation, you can have a constructor in some
> presenter class APresenter like
>
> @Inject
> public APresenter(AView aView) {...
>
> and GIN this will not result in 2 AView objects?
GIN and UiBinder don't know each other. GIN will only respect
@Singleton for what it's asked to instantiate; it doesn't prevent you
from doing a "new AView()" in your code, which is what UiBinder will
generate.
As said previously, if you want a real @Singleton, make sure only GIN
instantiates the class; and to make it work with UiBinder use either
@UiField(provided=true) or a @UiFactory method to give UiBinder your
GIN-managed @Singleton, instead of letting it instantiate the object.
> Also, could you use
>
> @Inject
> public APresenter(Provider<AView> aView) {...
>
> What would be the difference (except for calling aView.get()) in these
> 2 ways of handling things?
Lazy-instantiation: AView is only instantiated when you call the
provider's get(). If it's a @Singleton, then only the first call to
get() will instantiate an AView and subsequent calls will return the
singleton instance; but it is still true that no AView would have been
instantiated before a call to get().
--
You received this message because you are subscribed to the Google Groups
"Google Web Toolkit" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/google-web-toolkit?hl=en.