2012-06-16 9 views
5

Tengo una CellTable que funciona con SingleSelectionModel para hacer una selección única y mostrar información en el panel de detalles. También tengo la columna CheckBoxCell en esta CellTable que funciona con otro MultipleSelectionModel para realizar una operación de eliminación masiva.Selección de celda de GWT y un solo clic en CheckBoxCell

Cuando intento hacer clic en la casilla de verificación en la columna CheckBoxCell, GWT selecciona la fila y luego de hacer clic en la casilla de verificación, cambia el estado de la casilla de verificación. Entonces deberíamos hacer dos clics, pero necesito hacerlo (cambiar el estado de la casilla de verificación) con un solo clic.

He intentado diferentes maneras de solucionarlo:

  • Cambio dependsOnSelection y handlesSelection parámetros en CheckboxCell
  • Cambio SelectionEventManager en CellTable (DefaultSelectionEventManager.createCheckboxManager(), DefaultSelectionEventManager.createCustomManager)

Pero no funciona

Encontré problemas similares en Internet, pero todos ellos funcionan con un MultipleSelectionModel. No es lo mismo que quiero, porque hay un panel de detalles (para poder hacer solo una selección).

¿Alguien me puede ayudar a encontrar la manera de resolverlo?

UPD: Acabo de eliminar SingleSelectionModel y rediseñar la interfaz de usuario para trabajar con MultipleSelectionModel. Es GWT-demonios ..

Respuesta

3

intenta cambiar sus modelos de selección: utilizar el MultiSelectionModel como modelo de selección de la CellTable 's, de manera que las casillas de verificación funcionan como se esperaba (tanto con dependsOnSelection y handlesSelection conjunto de true), y para el maestro -detail función, utilice un CellPreviewEvent.Handler (o DefaultSelectionEventManager#createCustomManager), y RowStyles y getRowElement + addStyleName/removeStyleName para la representación (RowStyles cuando el CellTable hace que las filas, entonces getRowElement para actualizar dinámicamente el estilo).

+0

En realidad, ya lo he intentado de esta manera, pero no me dio el comportamiento necesario. Pero gracias por la respuesta, lo intentaré nuevamente el lunes. –

+0

Rediseñé la interfaz de usuario para que funcione solo con MultiSelectionModel. –

+2

Gracias, eso me funciona muy bien usando CellPreviewEvent y probando el tipo de evento: 'if (event.getColumn() == 1 && event.getNativeEvent(). GetType(). Equals (" click ")) {}' –

Cuestiones relacionadas