GWT CellTable с выбором флажка и событием щелчка строки - PullRequest
11 голосов
/ 12 апреля 2011

Как вызвать метод, когда по какой-либо строке щелкают, используя модель выбора флажка?

Я устанавливаю модель выбора флажка следующим образом:

table.setSelectionModel(selectionModel, 
      DefaultSelectionEventManager.<T> createCheckboxManager(0));

Ответы [ 2 ]

6 голосов
/ 13 апреля 2011

Я нашел решение!Вместо использования createCheckboxManager(), используйте createCustomManager(), передавая аргумент EventTranslator, который расширяет CheckboxEventTranslator, и выполняйте делегирование метода translateSelectionEvent, перехватывая только события, игнорируемые супер (CheckboxEventTranslator).

Исходный код:

table.setSelectionModel(selectionModel, 
    DefaultSelectionEventManager.createCustomManager(
        new DefaultSelectionEventManager.CheckboxEventTranslator<T>() {
            @Override
            public SelectAction translateSelectionEvent(CellPreviewEvent<T> event) {
                SelectAction action = super.translateSelectionEvent(event);
                if (action.equals(SelectAction.IGNORE)) {
                    GWT.log("DO WHAT YOU WANT!!!");
                    return SelectAction.IGNORE;
                }
                return action;
            }
        }
    )
);
1 голос
/ 12 апреля 2011

Создайте функцию, которую вы вызываете,

table.setSelectionModel(selectionModel, ClassName.myMethod(0));

static <T> DefaultSelectionEventManager<T> myMethod(int column) {
   //call whatever functions you want
   return DefaultSelectionEventManager.<T> createCheckboxManager(column);
}
...