Я точно не знаю, к каким слушателям вы подключаетесь Table
, которые вы не можете поочередно подключить к TableViewer
, чтобы получить их в качестве источника. Например, вместо того, чтобы подключить SelectionListener
к вашему Table
, вы можете подключить ISelectionChangedListener
к TableViewer
. В этом случае теперь вы получите TableViewer
в качестве источника события вместо таблицы.
Конечно, возможно, что есть события, которые TableViewer
не прокси соответствующим образом. В этом случае я бы вставил ссылку на TableViewer
в данные Table
при его создании. Например:
Table table = new Table(parent, SWT.NONE);
TableViewer tableViewer = new TableViewer(table);
table.setData("tableViewer", tableViewer);
table.addListener(SWT.DISPOSE, new Listener() {
public void handleEvent(Event e)
{
Table table = (Table)e.widget;
TableViewer tableViewer = (TableViewer)table.getData("tableViewer");
}
});