Изменения выбора в GEF GraphicalViewer не распознаются SelectionListener

1

В текущее окно рабочего стола был добавлен PostSelectionListener:

getWorkbenchWindow().getSelectionService().addPostSelectionListener(listener);

Тем не менее, изменения выбора в GraphicalViewer которые отображаются в GraphicalEditor, не распознаются вышеупомянутым слушателем, даже если графический просмотрщик был установлен как сайт графического редактора SelectionProvider:

getSite().setSelectionProvider(getGraphicalViewer());

Я добавил ISelectionChangedListener непосредственно в графический просмотрщик, и его метод selectionChanged вызывается каждый раз, когда выбор изменяется (как и предполагалось).

Кто-нибудь имеет представление о том, что может вызвать эту проблему?

Также,

PlatformUI.getWorkbench().getActiveWorkbenchWindow().getSelectionService().getSelection()

всегда возвращает правильный выбор, даже если изменение выбора не было зарегистрировано первым выбранным прослушивателем.

Теги:
eclipse-plugin
eclipse-gef

1 ответ

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

Я, наконец, нашел решение своей проблемы, хотя я не знаю, почему это решение. Класс GraphicalEditor устанавливает средство просмотра в качестве поставщика выбора сайта в createPartControl(Composite). Я перезаписал этот метод, чтобы настроить просмотрщик самостоятельно, но я не установил здесь поставщика выбора, но позже в другом методе. Изменение этого как-то решило проблему.

  • 0
    какой другой метод?

Ещё вопросы

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