开发者

How listen for check box in JFace Table Viewer

I am using a Table Viewer with check boxes as following:

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

What is THE solution开发者_StackOverflow to listen to check boxes selection/unselection in this viewer ?

Thanks in advance, Manu


Take a look at class CheckboxTableViewer derived from TableViewer which simplifies the use of a TableViewer with the SWT.CHECK style.

Add an implementaion of ICheckStateListener to your CheckboxTableViewer via addCheckStateListener(). The only method you have to implement is checkStateChanged(CheckStateChangedEvent event) where event contains all necessary information about the state change.

If you need only one column you can create a CheckboxTableViewer like this:

CheckboxTableViewer myTableViewer = CheckboxTableViewer.newCheckList(parent, style);


You listen for SWT.Selection events on the Table and check for event.detail == SWT.CHECK...

See this example for actual code....


Expanding @Tonny's answer, here's the listener you would use:

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

You see, you can cast the widget to TableItem to understand whether the user has either checked or unchecked the checkbox.


Still, as @Claimos' says, I would just use a JFace CheckboxTableViewer.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜