Hey guys,

Thanks David for your thoughts on how it could be implemented.

Perhaps you could provide an example of using the
PlaceHistoryMapperWithFactory.

Regards,

Aodhagán

On Oct 20, 7:02 pm, David <[email protected]> wrote:
> Why not include Gin in GWT 2.1 ? It could maybe be useful inside the
> GWT codebase as well ?
>
>
>
>
>
>
>
> On Wed, Oct 20, 2010 at 5:32 PM, David Chandler <[email protected]> 
> wrote:
> > Hmmm, I see my comments about GIN in the ActivityMapper have caught up
> > with me. I haven't worked this out fully yet, but was thinking of
> > something along the lines of gwt-presenter's <a
> > href="http://code.google.com/p/gwt-presenter/source/browse/src/main/java/ne...";>PresenterPlace</a>.
> > My thought is to use GIN in place of the ClientFactory, and to write
> > ActivityMapper.getActivity() like this:
>
> >        public Activity getActivity(Place place) {
> >                if (place instanceof ActivityPlace)
> >                {
> >                        return ((ActivityPlace) place).getActivity();
> >                }
> >        }
>
> > where an ActivityPlace would be obtained from a GIN-aware
> > PlaceHistoryMapperWithFactory implementation so it can be injected
> > with the EventBus, etc.
>
> > On Wed, Oct 20, 2010 at 8:54 AM, Aigeec <[email protected]> wrote:
> >> Hey Guys,
>
> >> I am also interested in an implementation of GWT 2.1 MVP using GIN.
>
> >> I have made some head way with it.
>
> >> This has been done mostly by extending the ActivityManager,
> >> PlaceController and PlaceHistoryHandler classes and overriding their
> >> constructors to use GIN injection. I don't know if this is the correct
> >> implementation and if anyone has comments please let me know. But I
> >> have been able to remove the need for the ClientFactory and use GIN
> >> injection to instantiate everything but the Activity classes.
>
> >> However, I do not know how to tackle the ActivityMapper class.
>
> >> As Tolga says how do we replace the nested if statement with a GIN
> >> module?
>
> >> I would much prefer to be able to instantiate the Activity Class this
> >> way as I am using the SecureDispatchAsync as would like to use DI to
> >> pass it to the Activity.
>
> >> Regards,
>
> >> Aigeec
>
> >> On Oct 20, 1:31 am, Tolga Tarhan <[email protected]> wrote:
> >>> Folks,
>
> >>> I'm trying to make GWT 2.1 MVP work nicely with GIN. It looks like this 
> >>> use
> >>> case was specifically considered when
> >>> creating PlaceHistoryMapperWithFactory, but no such thing seems to exist 
> >>> for
> >>> ActivityMapper. There is a passing reference to using Gin in
> >>> DevGuideMvpActivitiesAndPlaces.html , where it says "... ClientFactory is
> >>> used by HelloActivity to obtain a reference to the HelloView as well as 
> >>> the
> >>> EventBus and PlaceController. Any of these could alternatively be injected
> >>> via GIN." and also when it says "A better way to implement the chain of
> >>> nested ifs would be with a GIN module", in reference to ActivityMapper.
>
> >>> The problem, however, is that we cannot both inject application-level
> >>> objects (EventBus, PlaceController, etc) and also pass the Place as
> >>> constructor arguments to the Activity. We could have all of the 
> >>> dependencies
> >>> for every Activity (like all the views) injected into our ActivityMapper 
> >>> and
> >>> pass them thru, but this leaks a lot of details into what should be a very
> >>> simple mapper class. If done incorrectly, it would also cause 
> >>> code-splitting
> >>> issues.
>
> >>> One way around this is to inject a Provider<MyActivity> or
> >>> AsyncProvider<MyActivity> in the ActivityMapper and then do something like
> >>> myActivityProvider.get().initPlace(place) - which is like the assisted
> >>> injection that's discussed in the Guice docs. I'm wondering if there's a
> >>> more elegant way that was considered?
>
> >>> Additionally, I'm not sure I understand how to "implement the chain of
> >>> nested ifs" in a GIN module. This sounds like a great idea, but what did 
> >>> you
> >>> have in mind to make GIN do this for us? We can have GIN differentiate on 
> >>> a
> >>> bunch of things (annotations, generics, interfaces, etc), but I don't know
> >>> how you could replace the if-block with GIN. Could someone point me in the
> >>> right direction here?
>
> >>> Thanks,
> >>> Tolga
>
> >> --
> >>http://groups.google.com/group/Google-Web-Toolkit-Contributors
>
> > --
> > David Chandler
> > Developer Programs Engineer, Google Web Toolkit
> >http://googlewebtoolkit.blogspot.com/
>
> > --
> >http://groups.google.com/group/Google-Web-Toolkit-Contributors

-- 
http://groups.google.com/group/Google-Web-Toolkit-Contributors

Reply via email to