Отменить выбор выбранной строки в сетке Ваадин

Может кто-нибудь намекнуть, потому что я застрял. И я не нашел подходящего решения своей проблемы.

У меня Grid, с 1-3 рядами. Нажимаю на строку -> строка выбрана.

Я хочу, чтобы эта строка была снята с выбора после того, как я щелкну где-нибудь еще (за пределами этой строки), но внутри сетки.

Вот простой снимок экрана, который поможет вам лучше его визуализировать.

введите здесь описание изображения

Какой слушатель мне следует использовать в этом случае? Я пробовал ItemClickListener -> не помогло.


person t_sologub    schedule 09.11.2016    source источник


Ответы (2)


Попробуйте поместить свою сетку в отдельный макет и добавить к нему LayoutClickListener:

gridLayout.addLayoutClickListener(new LayoutEvents.LayoutClickListener() {
    @Override
    public void layoutClick(LayoutEvents.LayoutClickEvent event) {
        if(grid.getSelectedRow() != null) {
            grid.deselectAll();
        }
    }
});
person Krzysztof Majewski    schedule 09.11.2016
comment
к сожалению, это заставляет выделение мерцать при выборе другого компонента, а также отменяет выделение при выполнении сортировки. - person sukhmel; 18.07.2017

gridLayout.asSingleSelect().addSelectionListener(e->{
    if(e.getFirstSelectedItem().isPresent()) {
          system.out.println("selected");
        }else {
         // when deselected make some actions here
            system.out.println("deSelected");
        }
});

Выбор: если вы впервые нажмете на ту же строку данных, будет напечатано выбрано, так как в том, что вы щелкнул.

Отмена выбора. Теперь попробуйте щелкнуть ту же выделенную строку во второй раз, теперь она перейдет в режим отмены выбора. поскольку при отмене выбора нет значений. Теперь не нужно щелкать в любом месте сетки, вы можете дважды щелкнуть одну и ту же строку данных для выбора и отмены выбора.

person RamanaMuttana    schedule 15.05.2019
comment
OP пытается отменить выбор выбранного элемента , щелкнув в другом месте, кроме выбранной строки. Они знают, что его выбор будет отменен, если вы снова нажмете на него. это не то, что они хотят - person kscherrer; 15.05.2019
comment
@KasparScherrer Я согласен с вами, а что если все строки сетки заполнены данными? Щелчок где-то в сетке выберет другую строку (конечно, предыдущая выбранная строка будет отменена, но будет выбрана новая строка), чтобы отменить выбор, снова щелкнув строку, нам нужно снова щелкнуть где-нибудь в сетке К сожалению, она снова выберет строку, и это будет продолжено .... моя идея заключалась бы в том, чтобы выделить и отменить выбор в той же строке, несмотря на то, что я щелкнул где-нибудь в сетке, чтобы отменить выбор предварительно выбранной строки - person RamanaMuttana; 16.05.2019
comment
@KasparScherrer он также упомянул в вопросе, что хочет щелкнуть внутри сетки, чтобы отменить выбор строки. Я взял сценарий, что когда вся сетка заполнена данными, отмена выбора одной строки приведет к выделению другой строки. - person RamanaMuttana; 16.05.2019