Как прослушать флажок в JFace Table Viewer - PullRequest
8 голосов
/ 01 июля 2011

Я использую средство просмотра таблиц со следующими флажками:

final TableViewer legendViewer = new TableViewer(parent, SWT.CHECK);

Какое решение для прослушивания выбора / снятия флажков в этом средстве просмотра?

Заранее спасибо,Мана

Ответы [ 3 ]

13 голосов
/ 01 июля 2011

Взгляните на класс CheckboxTableViewer, полученный из TableViewer, который упрощает использование TableViewer со стилем SWT.CHECK.

Добавьте реализацию ICheckStateListener к вашему CheckboxTableViewer через addCheckStateListener().Единственный метод, который вам нужно реализовать, это checkStateChanged(CheckStateChangedEvent event), где event содержит всю необходимую информацию об изменении состояния.

Если вам нужен только один столбец, вы можете создать CheckboxTableViewer, например:

9 голосов
/ 01 июля 2011

Вы прослушиваете SWT.Selection события на Table и проверяете на event.detail == SWT.CHECK ...

См. пример для действительного кода ....

0 голосов
/ 05 июня 2019

Расширяя ответ @ Тонни, вот слушатель, которого вы бы использовали:

tableViewer.getTable().addListener(SWT.Selection, (e) -> {      
    if (e.detail == SWT.CHECK) {
        MyModel modelObj = (MyModel) e.item.getData();
        TableItem item = (TableItem) e.item;
        System.out.println("ITEM CHECKED -> " + item.getChecked());
    }
});

Видите, вы можете привести виджет к TableItem, чтобы понять, установил ли пользователь флажок или снял его.1005 *


Тем не менее, как говорит @Claimos, я бы просто использовал JFace CheckboxTableViewer.

...