SmartGWT – TreeGrid enlazado a un servicio REST

marzo 20, 2012

En una aplicación utilizo un TreeGrid para crear un menú de opciones. Los elementos del menú son obtenidos desde un servicio REST.

El TreeGrid lo creo de la siguiente forma

grdApplicaciones=new TreeGrid();
grdApplicaciones.setDataSource(new RestDataSource(){
{
setDataURL("api/rest/modulos");
setDataFormat(DSDataFormat.JSON);</p><pre>
<code>    DataSourceField fldId=new DataSourceField("id", FieldType.TEXT);
    fldId.setPrimaryKey(true);
    DataSourceField fldIdPadre=new DataSourceField("idPadre", FieldType.TEXT);
    fldIdPadre.setForeignKey(this.getID()+".id");
    DataSourceField fldNombre=new DataSourceField("nombre", FieldType.TEXT);
    setFields(fldId,fldIdPadre,fldNombre);
    setTitleField("nombre");
}
</code>
</pre><p>});
grdApplicaciones.addDataArrivedHandler(new DataArrivedHandler() {</p><pre>
<code>@Override
public void onDataArrived(DataArrivedEvent event) {
    grdApplicaciones.getData().setNameProperty("nombre");
}
</code>
</pre><p>});
grdApplicaciones.setAutoFetchData(true);
grdApplicaciones.setLoadDataOnDemand(false);

Los datos del servicio están en formato JSON y tienen una estructura id, idPadre y nombre. El manejador del evento “DataArrivedHandler” se encarga de establecer la propiedad “nombre” para que el TreeGrid la utilicé como el título de los nodos, además de utilizarla para formar la cadena que regresa el método getPath().

Fuentes:
http://forums.smartclient.com/showthread.php?t=4413

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: