SWT, Eclipse RCP, selección de una fila TableViewer

por | enero 6, 2014

Sigo trasteando con SWT, y Eclipse RCP, en esta ocasión algo tan sencillo a simple vista pero me fue un poco complejo dar con la solución.

Resulta que las filas que se van agregando a un TableViewer tienen eventos para producir una acción cuando se selecciona algún elemento de la misma, que a posterior nos puede servir para obtener toda la información de aquella fila en cuestión que hemos seleccionado.

Resulta que al agregar filas a la tabla, sea cual sea el proceso, si no hemos realizado ninguna selección de la fila en la tabla, esta no se selecciona con la última que se agregó, un comportamiento que fue necesario introducir a la tabla por pedido del negocio.

Para realizar esto hacemos lo siguiente:

int selection = 5; //indice de la fila que se quiere seleccionar
tableViewer.setSelection(new StructuredSelection(
    tableViewer.getElementAt(selection)), true);

El índice es lo más importante, si tenemos una lista asociada a la tabla podemos tomar el tamaño total de la lista para indicarle a la tabla que seleccione el último registro que se ingresó.

Algo realmente sencillo pero que no siempre es tan fácil de ver y realizar.

Fuente: http://andydunkel.net/eclipse/java/swt/2011/10/06/jface-set-selection-index-in-tableviewer.html