禁用与CellList选择(Disabling Selection with CellList)

2019-09-17 06:01发布

我有一个CellList

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

我希望经过NoSelectionModel将防止反应用户选择小区列表中的项目的UI。 但是,用户能够选择元素正常。 我不能正确地应用选择的模式?

Answer 1:

从NoSelectionModel的的Javadoc:

一个选择模式,不允许选择,但火灾的选择更改事件。 如果你希望当用户选择一个项目了解使用此模式,但不希望以更新基于该选择。

这就是它的作用:在标准的主题,这将导致蓝色不被强调了行了(“cellListSelectedItem”样式类)。 但是,它仍然会在黄色(“cellListKeyboardSelectedItem”样式类)突出。 此外,SelectionChangeEvent仍然会被解雇。

要关闭SelectionChangeEvent,使用

cellList.setSelectionModel(new NoSelectionModel<String>(), 
  DefaultSelectionEventManager.<PlayerDataEntity>createWhitelistManager());

不带参数的白名单管理意味着,你不能选择任何列。

如果你也想关闭“黄”高亮,你应该实例CellList用不同的CellList.Resources实例:

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);

my.css:

.cellListEvenItem {}
.cellListKeyboardSelectedItem {}
.cellListOddItem {}
.cellListSelectedItem {}
.cellListWidget {}


文章来源: Disabling Selection with CellList