You are right, I do not need an nested activity/place but only a
presenter.

I imagine that inside your
NestedPresenterFactory.create(AcceptOneWidget container) you do those
actions:

1) you instantiate the nested view
2) you instantiate the nested presenter (and give it the nested view
instance)
3) you set the widget of the container [container.setWidget(view)]

is it right?

On 6 juin, 06:09, Thomas Broyer <[email protected]> wrote:
> On Monday, June 6, 2011 3:08:58 AM UTC+2, Jonathan Aubuchon wrote:
>
> > Hi, I'm a beginner with the architecture MVP Activities and Places.
>
> > Suppose I have two views: View1 and View2
> > (The two views have their own activity)
>
> > Now suppose that I have one Composite (named Composite A) used by the
> > two views. This Composite aggregate a textbox, display informations
> > and make call to the database.
>
> > Should I plug an activity over this Composite ? (In order to move the
> > logic and database calls inside an activity instead to do that inside
> > a view).
>
> A presenter, yes. An activity, probably not (YMMV).
>
> > I tried the activity solution and this is the steps I did:
>
> > 1) Create a new activity and place for the CompositeA. Move some
> > logics and database access inside it.
>
> Why would you need a Place? the "activity" is supposed to be shown when the
> other activities (the one acting as presenters for View1 and View2) are;
> you're at the "same place" as those activities then (conceptually, the place
> is the "URL" for what you're seeing on screen)
>
> > 2) Create a container (SimplePanel) inside the View1 and View2 to
> > hosted the CompositeA
> > 3) Inside the activity of View1 and View2 (in the start method) , I
> > instantiate the activity of the CompositeA and start it:
>
> > ActivityCompsiteA activityCompositeA = new ActivityCompositeA(new
> > ActivityCompositeAPlace(" "), clientFactory);
> > activityCompositeA.start(view1.getContainerForCompositeA(), eventBus);
>
> > It works fine, but maybe it exists a conventional way to do it?
>
> I'm afraid not.
>
> We've used a similar pattern but didn't use an Activity for the nested
> presenter (because we don't need the lifecycle of the activity: we treat it
> just like any other component in the view, it's just a bit "smarter" than
> the others). We're putting the "composite" directly in the UiBinder
> template, and then we simply "wrap" the presenter around it (and just like
> any view, it's exposed as an interface, the composite being the equivalent
> of the "ViewImpl"):
>
> class MyActivity extends AbstractActivity {
>    private final MyView view;
>    private final NestedPresenter nestedPresenter;
>    @Inject
>    MyActivity(MyView view, NestedPresenterFactory factory) {
>       this.view = view;
>       nestedPresenter = factory.create(view.getNestedComposite());
>    }
>    ...
>
> }
>
> (FYI, we're using GIN's @AssistedInject for the factory)

-- 
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.

Reply via email to