2012-06-16 13 views
5

Mam CellTable, które współpracuje z SingleSelectionModel, aby dokonać pojedynczego wyboru i wyświetlić niektóre informacje w panelu szczegółów. Mam również kolumnę CheckBoxCell do tej CellTable, która współpracuje z innym MultipleSelectionModel, aby wykonać masową operację usuwania.Wybór GWT CellTable i jedno kliknięcie na CheckBoxCell

Kiedy próbuję kliknąć na pole wyboru w kolumnie CheckBoxCell GWT wybiera wiersz i po drugim kliknięciu na pole wyboru zmienia stan pola wyboru. Powinniśmy wykonać dwa kliknięcia, ale muszę to zrobić (zmienić stan pola wyboru) jednym kliknięciem.

Próbowałem różnych sposobów, aby je naprawić:

  • Zmiana dependsOnSelection i handlesSelection język CheckboxCell
  • Zmień SelectionEventManager w CellTable (DefaultSelectionEventManager.createCheckboxManager(), DefaultSelectionEventManager.createCustomManager)

Ale to nie działa.

Znalazłem podobne problemy w Internecie, ale wszystkie z nich działają z jednym MultipleSelectionModel. Nie jest to to samo, co chcę, ponieważ jest tam panel szczegółów (więc mógłbym dokonać tylko pojedynczego wyboru).

Czy ktoś może mi pomóc dowiedzieć się, jak rozwiązać ten problem?

UPD: Właśnie usunięte SingleSelectionModel i przeprojektowany interfejs do pracy z MultipleSelectionModel. To GWT-piekło ..

Odpowiedz

3

próbować załączyć swoje modele wyboru: użyć MultiSelectionModel jako model selekcyjnej CellTable „s, tak że pola wyboru działa zgodnie z oczekiwaniami (zarówno dependsOnSelection i handlesSelection zestaw do true), a dla pana -detail funkcji użyć CellPreviewEvent.Handler (lub DefaultSelectionEventManager#createCustomManager) i RowStyles i getRowElement + addStyleName/removeStyleName do utylizacji (RowStyles gdy CellTable powoduje rzędy, a następnie getRowElement dynamicznie aktualizacji stylizacji).

+0

Właściwie już próbowałem w ten sposób, ale nie dało mi to potrzebne zachowanie. Ale dziękuję za odpowiedź, spróbuję ponownie w poniedziałek. –

+0

Ponownie skonfigurowałem interfejs użytkownika do pracy tylko z MultiSelectionModel. –

+2

Dziękuję, to działa bardzo dobrze dla mnie przy użyciu CellPreviewEvent i testowania typu zdarzenia: 'if (event.getColumn() == 1 && event.getNativeEvent(). GetType(). Equals (" click ")) {} –