Как реализовать: два представления, координирующие один и тот же выбор в Eclipse RCP? - PullRequest
2 голосов
/ 07 февраля 2009

У меня есть несколько представлений в приложении RCP Eclipse:

1) вид карты со значками канцелярской кнопки 2) список всех кнопок 3) вид, отображающий свойства канцелярской кнопки

У меня также есть объект модели с методами-получателями get / setActivePushPin.

Как правильно согласовать выбор канцелярской кнопки?

Когда я выбираю канцелярскую кнопку на карте или в виде списка, активная канцелярская кнопка должна измениться, а другой вид должен быть уведомлен.

Я понимаю, что каждое представление должно иметь ISelectionListener, но кажется, что слушатели должны подключаться к общему ISelectionProvider специально для событий выбора push pin, а не явно подключаться к конкретному представлению.

Ответы [ 2 ]

3 голосов
/ 09 февраля 2009

Эта статья developerWorks " Сделайте ваши приложения Eclipse богаче с помощью ссылок на представления " описывает почти точно ваш пример. Это особенно хорошо, поскольку описывает две «парадигмы» для одной и той же проблемы -

  • парадигма выбора слушателя выбора провайдера
  • парадигма слушателя изменения свойства

Более подробная статья о том, как работает служба выбора, взята из этой статьи eclipse.org: " Eclipse Workbench: Использование службы выбора ".

1 голос
/ 07 февраля 2009

Вам необходимо использовать глобальную службу выбора, которая координирует выбор для всего рабочего места. Смотрите статью, описывающую «Службу выбора» и ее использование: http://www.eclipse.org/articles/Article-WorkbenchSelections/article.html

...