Selecione o elemento no CellList usando SelectionModel ou ListDataProvider
Utilizei o CellList para listar meus dados usando o ListDataProvider para gerenciar os dados e o SelectionModel para selecionar um elemento do CellList e gerar eventos de acord
gora, quando eu atualizo ou excluo o elemento usando cellList.getList (). Set (index, bean) ou cellList.getList (). Remove (), ele executa com êxito a operação. Mas depois disso, ele seleciona automaticamente o primeiro registro no CellList que eu não quer
Alguém pode sugerir como posso desmarcar o registro selecionado no CellLis
Abaixo é o código como eu estou inicializando o selectionmodel e listprovider:
ListDataProvider<AppsBean> dataProvider = new ListDataProvider<AppsBean>();
CellList<AppsBean> appsCellList;
SingleSelectionModel<AppsBean> singleSelectionModel;
ProvidesKey<AppsBean> keyProvider = new ProvidesKey<AppsBean>() {
public Object getKey(AppsBean item) {
// Always do a null check.
return (item == null) ? null : item.getId();
}
};
//here cell is the AbstractCell<AppsBean>
appsCellList = new CellList<AppsBean> (cell, keyProvider);
dataProvider.addDataDisplay(appsCellList);
appsCellList.setKeyboardSelectionPolicy(KeyboardSelectionPolicy.BOUND_TO_SELECTION);
singleSelectionModel = new SingleSelectionModel<AppsBean>(keyProvider);
appsCellList.setSelectionModel(singleSelectionModel);
singleSelectionModel.addSelectionChangeHandler(new SelectionChangeEvent.Handler() {
@Override
public void onSelectionChange(SelectionChangeEvent event) {
AppsBean selectedApp = singleSelectionModel.getSelectedObject();
if (selectedApp != null)
appsForm.fillApps(selectedApp);
}
});
Quando adiciono o novo registro:
dataProvider.getList().add(0, appsBean);
Para atualizar o registro:
AppsBean bean = singleSelectionModel.getSelectedObject();
dataProvider.getList().set(dataProvider.getList().indexOf(bean), appsBean);
E para excluir:
int selectedIndex = dataProvider.getList().indexOf(singleSelectionModel.getSelectedObject());
dataProvider.getList().remove(selectedIndex);