Eclipse RCP: Как прослушать выбор CheckboxTableViewer в другом представлении

1

У меня есть RCP Eclipse с представлением, чей элемент управления является CheckboxTableViewer.

Я хотел бы использовать WorkbenchPage SelectionService (по причинам свободной связи), чтобы реагировать на проверку/снятие флажков действий в представлении в редакторе.

Поэтому я getSite().setSelectionProvider(myTableViewer); в представлении createPartControl().

Кроме того, я создаю поле слушателя в редакторе:

private ISelectionListener mylistener = new ISelectionListener() {
    public void selectionChanged(IWorkbenchPart sourcepart, ISelection selection) {
        System.out.println(((IStructuredSelection) selection).size());
    }
};

К сожалению, я получаю только количество строк, выбранных в консоли, а не количество элементов, которые были отмечены. Я пытаюсь передать myTableViewer.getCheckedElements() в SelectionProvider каким-то образом, но не могу найти точку доступа :(.

Теги:
eclipse-rcp
swt
jface

1 ответ

2
Лучший ответ

Вы можете написать собственную реализацию ISelectionProvider которая возвращает проверенные элементы вместо использования поставщика по умолчанию, реализованного TableViewer который возвращает выбранные элементы.

  • 0
    Благодарю. Вы имеете в виду, что мой класс должен реализовывать ISelectionProvider , а в getSelection() я должен вернуть getCheckedElements() ? Я полагаю, мне нужно будет обернуть отмеченные элементы в ISelection ?
  • 1
    Да что-то подобное.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню