, вы не можете перечислить вверх / вниз по клавиатуре, но проблема с выбором первой строки решена.

ользовал CellList для распечатки моих данных, используя ListDataProvider для управления данными и SelectionModel для выбора элемента из CellList и генерации событий соответственно.

Теперь, когда я обновляю или удаляю элемент, используя cellList.getList (). Set (index, bean) или cellList.getList (). Remove (), он успешно выполняет операцию. Но после этого он автоматически выбирает первую запись в CellList, которую я не хочу.

Может кто-нибудь предложить, как я могу отменить выбор выбранной записи в CellList?

Ниже код, как я инициализирую selectionmodel и 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);
        }
    });

Когда я добавляю новую запись:

dataProvider.getList().add(0, appsBean);

Для обновления записи:

AppsBean bean = singleSelectionModel.getSelectedObject();
dataProvider.getList().set(dataProvider.getList().indexOf(bean), appsBean);

И для удаления:

int selectedIndex = dataProvider.getList().indexOf(singleSelectionModel.getSelectedObject());
dataProvider.getList().remove(selectedIndex);

Ответы на вопрос(3)

Ваш ответ на вопрос