en la parte del view debemos tener algo como esto
public void getListado(final ClickHandler handlerEdit, final ClickHandler handlerDelete,
final ConjuntoServicios servicios,
boolean bReadOnly) {
cp = new ContentPanel();
List
// A�adimos las columnas.
ColumnConfig clmncnfgID = new ColumnConfig("id", "Id", 100);
clmncnfgID.setHidden(true);
configs.add(clmncnfgID);
ColumnConfig clmncnfgSeccion = new ColumnConfig("id_1", servicios.getConstants().cmn_nombre(), 200);
configs.add(clmncnfgSeccion);
ColumnConfig clmncnfgCodigo = new ColumnConfig("id_2", servicios.getConstants().cmn_codigo(), 200);
configs.add(clmncnfgCodigo);
//añadimos el boton el colum render
// en este caso tenemos dos botones una de bajada y otro de subida
GridCellRenderer
public Object render(final BaseModel model, String property, ColumnData config, final int rowIndex,
final int colIndex, ListStore
init = true;
grid.addListener(Events.ColumnResize, new Listener
public void handleEvent(GridEvent
for (int i = 0; i < be.getGrid().getStore().getCount(); i++) { if (be.getGrid().getView().getWidget(i, be.getColIndex()) != null ){ // && be.getGrid().getView().getWidget(i, be.getColIndex()) instanceof BoxComponent) { //((BoxComponent) be.getGrid().getView().getWidget(i, be.getColIndex())).setWidth(be.getWidth() - 10); } } } }); Button bntDown = new Button(); bntDown.addSelectionListener( new SelectionListener
@Override
public void componentSelected(ButtonEvent ce) {
GridEvent
gridEvent.setModel(model);
//este es el evento que mando por boton que recojo en el presenter
grid.fireEvent(Events.Deactivate, gridEvent);
}
});
bntDown.setWidth(17);
bntDown.setHeight(17);
bntDown.setIconStyle("icon_bajar");
return bntDown;
}
};
//segundo boton
GridCellRenderer
public Object render(final BaseModel model, String property, ColumnData config, final int rowIndex,
final int colIndex, ListStore
if (!init) {
init = true;
}
Button bntUp = new Button();
bntUp.addSelectionListener( new SelectionListener
@Override
public void componentSelected(ButtonEvent ce) {
GridEvent
gridEvent.setModel(model);
//evento que se lanza desde el view
grid.fireEvent(Events.TwinTriggerClick, gridEvent);
}
});
bntUp.setWidth(17);
bntUp.setHeight(17);
bntUp.setIconStyle("icon_subir");
return bntUp;
}
};
ColumnConfig columordenBajar= new ColumnConfig("in_orden", "", 30);
columordenBajar.setRenderer(buttonDownRenderer);
configs.add(columordenBajar);
ColumnConfig columordenSubir= new ColumnConfig("id_version", "", 30);
columordenSubir.setRenderer(buttonUpRenderer);
configs.add(columordenSubir);
ColumnConfig clmncnfgEditar = new ColumnConfig("idEditar", "", 80);
configs.add(clmncnfgEditar);
ColumnConfig clmncnfgEliminar = new ColumnConfig("idEliminar", "", 80);
configs.add(clmncnfgEliminar);
GridCellRenderer
@Override
public Object render(final BaseModel model, final String property, ColumnData config,
final int rowIndex, final int colIndex, final ListStore
final Grid
Anchor enlaceEditar = new Anchor("Editar", "#");
if (handlerEdit!=null) enlaceEditar.addClickHandler(handlerEdit);
return enlaceEditar;
}};
clmncnfgEditar.setAlignment(HorizontalAlignment.CENTER);
clmncnfgEditar.setRenderer(accionesEditarRenderer);
// Renderer de eliminar,
GridCellRenderer
@Override
public Object render(final BaseModel model, final String property, ColumnData config,
final int rowIndex, final int colIndex, final ListStore
final Grid
Anchor enlaceEliminar = new Anchor("Eliminar", "#");
if (handlerDelete!=null) enlaceEliminar.addClickHandler(handlerDelete);
return enlaceEliminar;
}};
clmncnfgEliminar.setAlignment(HorizontalAlignment.CENTER);
clmncnfgEliminar.setRenderer(accionesEliminarRenderer);
grid = new Grid
grid.setBorders(false);
//gridCompositeSecciones.setLoadMask(true);
grid.setAutoExpandColumn("no_garantia");
grid.setAutoExpandMax(1500);
grid.addListener(Events.ViewReady, Tools.configAutoHeightListener(this.grid, this.cp));
grid.addListener(Events.ColumnResize, Tools.configAutoHeightListener(this.grid, this.cp));
grid.getColumnModel().addListener(Events.HiddenChange, Tools.configAutoHeightListener(this.grid, this.cp));
grid.getStore().addListener(Store.Add, Tools.configAutoHeightListener(this.grid, this.cp));
Tools.maskEmptyGrid(grid, CasiopeaMessages.INSTANCE.grid_vacio_pulse_anadir());
en la parte del presenter en el bind() o donde declares los botones
como los eventos eran del grid aunque generados por los botoenes por eso tenemos que mandar el grid entero
this.display.getGrid().addListener(Events.Deactivate, new Listenert
@Override
public void handleEvent(GridEvent
actualizarSeccionOrden(-1,be.getModel(),be.getGrid().getStore().getCount());
}
});
this.display.getGrid().addListener(Events.TwinTriggerClick, new Listener
@Override
public void handleEvent(GridEvent
actualizarSeccionOrden(+1,be.getModel(),be.getGrid().getStore().getCount());
}
});
No hay comentarios:
Publicar un comentario