我有一个CellList
:
friendCellList = new CellList<PlayerDataEntity>(new PlayerCell());
friendCellList.setSelectionModel(new NoSelectionModel<PlayerDataEntity>());
我希望通过NoSelectionModel
将阻止 UI 对用户选择单元格列表中的项目做出反应。但是,用户可以正常选择元素。我没有正确应用选择模型吗?
来自 NoSelectionModel 的 Javadoc:
不允许选择但会触发选择更改事件的选择模型。如果您想知道用户何时选择项目,但不希望视图根据选择进行更新,请使用此模型。
这就是它的作用:在标准主题中,这将导致该行不再以蓝色突出显示(“cellListSelectedItem”样式类)。但是,它仍会以黄色突出显示(“cellListKeyboardSelectedItem”样式类)。此外,SelectionChangeEvent 仍将被触发。
要关闭 SelectionChangeEvent,请使用
cellList.setSelectionModel(new NoSelectionModel<String>(),
DefaultSelectionEventManager.<PlayerDataEntity>createWhitelistManager());
没有参数的白名单管理器意味着您不能选择任何列。
如果您还想关闭“黄色”突出显示,您应该使用不同的 CellList.Resources 实例来实例化 CellList:
public interface MyResources extends CellList.Resources {
@Override
@Source("com/mypackage/my.css")
Style cellListStyle();
}
...
friendCellList = new CellList<PlayerDataEntity>(new PlayerCell(),
(MyResources) GWT.create(MyResources.class);
我的.css:
.cellListEvenItem {}
.cellListKeyboardSelectedItem {}
.cellListOddItem {}
.cellListSelectedItem {}
.cellListWidget {}