2

我有一个CellList

friendCellList = new CellList<PlayerDataEntity>(new PlayerCell());
friendCellList.setSelectionModel(new NoSelectionModel<PlayerDataEntity>());

我希望通过NoSelectionModel将阻止 UI 对用户选择单元格列表中的项目做出反应。但是,用户可以正常选择元素。我没有正确应用选择模型吗?

4

1 回答 1

3

来自 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 {}
于 2012-05-15T11:35:44.020 回答