That should work...
I don't remember why, but I end up doing it like this:
CellTable<JsBean> table = new CellTable<JsBean>();
@UiField CrudPager<JsBean> pager;
@UiFactory CellTable<JsBean> getTable() {
return table;
}
@UiFactory CrudPager<JsBean> getPager() {
return new CrudPager<JsBean>(table);
}
2010/7/11 Geraldo Lopes <[email protected]>
> Hi,
>
> I have a very simple UiBinder file :
> <g:HTMLPanel>
> Usuários
> <c:CellTable ui:field="grid"></c:CellTable>
> <c:SimplePager ui:field="paginador"></c:SimplePager>
> </g:HTMLPanel>
>
> CellTable and SimplePager needs to be instantiated using generics, and
> SimplePager also needs a constructor parameter, so I used
> @UiField(provided=true) for both at java side:
>
> @UiField(provided=true) final CellTable<Usuario> grid;
> @UiField(provided=true) final SimplePager<Usuario> paginador;
>
> private ArrayList<Usuario> dados = new ArrayList<Usuario>();
> private ListViewAdapter<Usuario> adapter = new
> ListViewAdapter<Usuario>();
>
> public Usuarios() {
> inicializaDados();
> grid = new CellTable<Usuario>(); // <-------------
> adapter.addView(grid);
> adapter.setList(dados);
> paginador = new SimplePager<Usuario>(grid); // <---------
>
> initWidget(uiBinder.createAndBindUi(this)); //
> <--------------
>
> The strange behaviour is when I run this code I get:
> 10:50:26.196 [ERROR] [app] <c:SimplePager ui:field='paginador'>
> missing required attribute(s): location view Element <c:SimplePager
> ui:field='paginador'> (:13)
>
> It seems that something is missing (view Element) at UiBinder side,
> but I'm using provided=true which means I'm in control of
> instantiating, and I provided the view element.
>
> More strange is that with the same UiBinder file if I mix the
> instantiations methods using provided for CellTable and @UiFactory for
> SimplePager it works.
>
> @UiField(provided=true) final CellTable<Usuario> grid;
> @UiField SimplePager<Usuario> paginador; // <--- not using
> provided
> anymore
>
> private ArrayList<Usuario> dados = new ArrayList<Usuario>();
> private ListViewAdapter<Usuario> adapter = new
> ListViewAdapter<Usuario>();
>
> public Usuarios() {
> inicializaDados();
> grid = new CellTable<Usuario>();
> adapter.addView(grid);
> adapter.setList(dados);
>
> initWidget(uiBinder.createAndBindUi(this));
> }
> @UiFactory SimplePager<Usuario> criaSimplePager() {
> SimplePager<Usuario> p = new SimplePager<Usuario>(grid);
> return p;
> }
>
> I'm using GWT 2.1M2. From what I understand from docs
> @UiField(provided=true) and @UiFactory are interchangeable, so I
> wanted to use just one way for code clarity.
>
> Can you comment on this subject.
>
> Thanks in advance and sorry my english.
>
> Geraldo Lopes
>
>
>
> --
> 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]<google-web-toolkit%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/google-web-toolkit?hl=en.
>
>
--
http://gwtupdates.blogspot.com/
--
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.