GWT CellTable 自定义选择模型

标签 gwt gwt-2.2-celltable datagridviewcheckboxcell selectionmodel

我需要 GWT CellTable 的“自定义选择模型”。 CellTable 中的其中一列是复选框列。

基本要求(均适用于以下解决方案):
- 单击行(不是在复选框上),选择该行并取消选择所有其他行。
- 复选框选择应该只选择/取消选择该行。

以下是我正在使用的代码,但速度非常非常慢。任何指导将不胜感激。

final SelectionModel<T> selectionModel = new MultiSelectionModel<T>();
dataTable.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)) {
                            selectionModel.clear();
                            return SelectAction.TOGGLE;
                        }
                        return action;
                    }
                }
            )
        );

以下是为 CheckColumn 回调截取的代码。

Column<T, Boolean> checkColumn = new Column<T, Boolean>(
    new CheckboxCell(true, false))
        {
            @Override
            public Boolean getValue(T t)
            {
                // Get the value from the selection model.
                return selectionModel.isSelected(t);
            }
        };

最佳答案

我已经为 CellTable 安装了一个 KeyProvider,它不再慢了。 :)

ProvidesKey<T> keyProvider = new ProvidesKey<T>() {
    public Object getKey(T t) {
        return tip == null? null : tip.getId();
    }
};
dataTable = new CellTable<T>(PAGE_SIZE, keyProvider);

关于GWT CellTable 自定义选择模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10605393/

相关文章:

javascript - 从js文件代码调用gwt函数。[错误不是函数]

gwt - 如何在不运行我的 GWT servlet 的情况下在特定日期发送电子邮件?

java - GWT中IsSerializable接口(interface)的作用是什么(关于RPC机制)

gwt - 如何将Clickhandler添加到cellTable单元格(或row)

java - 带有复选框选择和行单击事件的 GWT CellTable

c# - DataGridView 复选框选择

c# - DatagridView 复选框列始终为空

xml - 将 Kryonet 库从 jar 移植到 GWT 格式时出现问题

java - GWT CELLTABLE SimplePager : Event handling on first, SimplePager 中是否存在上一个、下一个、上一个按钮?

c# - DataGridViewTextBoxCell.ReadOnly = true,但仍然可以更改所选值