Java GWT CellTable,带有复选框选择和行单击事件

Java GWT CellTable,带有复选框选择和行单击事件,java,gwt,gwt-2.2-celltable,Java,Gwt,Gwt 2.2 Celltable,当使用复选框选择模型单击某一行时,如何调用方法 我正在设置复选框选择模型,如下所示: table.setSelectionModel(selectionModel, DefaultSelectionEventManager.<T> createCheckboxManager(0)); table.setSelectionModel(selectionModel, DefaultSelectionEventManager.createCheckboxManager(0)

当使用复选框选择模型单击某一行时,如何调用方法

我正在设置复选框选择模型,如下所示:

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

创建一个调用的函数

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

static <T> DefaultSelectionEventManager<T> myMethod(int column) {
   //call whatever functions you want
   return DefaultSelectionEventManager.<T> createCheckboxManager(column);
}
table.setSelectionModel(selectionModel,ClassName.myMethod(0));
静态默认SelectionEventManager myMethod(int列){
//调用任何你想要的函数
返回DefaultSelectionEventManager.createCheckboxManager(列);
}

我找到了解决方案!不要使用
createCheckboxManager()
,而是使用
createCustomManager()
通过参数传递一个
EventTranslator
,该参数扩展
checkboxeventtTranslator
,并执行
translateSelectEvent
方法的委派,只截获超级用户忽略的事件(
选中boxeventtranslator

源代码:

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;
            }
        }
    )
);
table.setSelectionModel(selectionModel,
DefaultSelectionEventManager.createCustomManager(
新的DefaultSelectionEventManager.CheckboxEventTranslator()默认值{
@凌驾
公共选择操作转换选择事件(CellPreviewEvent事件){
SelectAction=super.translateSelectEvent(事件);
if(action.equals(选择action.IGNORE)){
log(“做你想做的!!!”;
返回SelectAction.IGNORE;
}
返回动作;
}
}
)
);