Hey Chris,

Take a look here for one of the ways of doing this: 
http://code.google.com/p/handlebars/

The view composition would be done in bindView() method in the
Presenter (it's in the interface, none of the default presenters
implement it in the package).. it usually looks like:

@Override
public void bindView() {
 
getView().setOneOfMyChildViews(getChildPresenters().get(MyChildPresenter.name).makeView().createAndBind());
}

Haven't seen gwt-platform before. Looks interesting...

On May 17, 10:30 am, PhilBeaudoin <[email protected]> wrote:
> I think the key is not to write your views into UiBinder but rather to
> use one UiBinder file for each of your views. Then you make your
> presenters embed one another in the desired fashion. That's what I
> understand 
> from:http://code.google.com/webtoolkit/articles/mvp-architecture-2.html
>
> Many examples of the gwt-platform project use UiBinder within an MVP
> architecture, you might be interested to check them 
> out:http://code.google.com/p/gwt-platform
>
> Cheers,
>
>    Philippe
>
> On May 16, 2:45 pm, Chris <[email protected]> wrote:
>
>
>
>
>
> > Hi All
>
> > I'd like to use UIBinder to layout my page which is made of several
> > Views. I'm kind of confused as to how to do this...
>
> > For example, I'd like to inject my views straight into the UIBinder
> > context, so I extend the xml declaration to be:
>
> > <ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
> >         xmlns:g='urn:import:com.google.gwt.user.client.ui'
> > xmlns:step="urn:import:com.tyndalehouse.step.web.client.view">
>
> > That gives me access to the View, and I can then use something like:
> > <g:DockLayoutPanel unit='EM'>
> >   <g:center>
> >         <step:VersionSelectorView ui:field="versionSelector" />
> >   </g:center>
> >   </g:west>
> > </g:DockLayoutPanel>
>
> > where VersionSelectorView is one of my views. At the moment, I'm using
> > Gin to inject the Presenter via the constructor, and setting it as a
> > field, that is provided:
>
> > @UiField (provided = true)
> > VersionSelectorView versionSelector;
> > ...
>
> > @Inject
> > public StepView(final VersionSelectorPresenter versionSelector) {
> > this.versionSelector = versionSelector;
>
> > }
>
> > Now that's all very well... but what if the view above has many many
> > composites that I want to use in the UIBinder declarative XML? Also it
> > doesn't feel to be like it's best practice to inject the Presenter
> > into the View. Surely, it shouldn't know about it all... And I should
> > either be injecting is as VersionSelectorPresenter.Display or
> > VersionSelectorView.
>
> > However using gwt-dispatch, when I inject it like that, the View is
> > provided, but it's not bound to any presenter...
>
> > So basically, I'd like to know what the best practice is/would be?
> > Should I be injecting all the providers into the main Presenter (in my
> > case StepPresenter), and somehow setting them all onto the view? that
> > makes a lot of setters, but at least I get rid of the presenters from
> > the Views....
>
> > I read somewhere something about injecting providers for lazy
> > initialisation. Sounds good, but I'm guessing I've still got lots of
> > them to inject...
>
> > Perhaps, that's not how I'm supposed to use UIBinder, but then I still
> > seem to have a similar issue with the way to get lots of views
> > injected into one Parent View.
>
> > Any ideas anyone?
> > Cheers
> > Chris
>
> > --
> > 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 
> > athttp://groups.google.com/group/google-web-toolkit?hl=en.
>
> --
> 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 
> athttp://groups.google.com/group/google-web-toolkit?hl=en.

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