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

У меня есть приложение Eclipse RCP, которое использует представления, чтобы разрешить выпуск ресурса EMF. Ресурс и EditingDomain содержатся во входных данных страницы.

Сейчас мы пытаемся интегрировать Eclipse GMF. Это создает DiagramEditor, который прекрасно работает, но в Eclipse 3 его нельзя использовать в том же стеке, что и другие представления моего приложения. Редакторы могут быть помещены только в EditorArea.

Может ли кто-нибудь направить меня к решению? Я вижу несколько вариантов, каждый из которых имеет свои преимущества/недостатки:

  1. Реализуйте слой преобразования между IEditorSite и IViewSite, чтобы я мог загружать свой редактор внутри представления. Частично это работает, но многие функции GMF внезапно исчезают. Кто-то наверняка уже делал это раньше; поскольку я ничего не нахожу, я предполагаю, что это невозможно.
  2. Реализуйте все представления как EditorParts. В приложении должна быть только одна EditorArea. Недостаток: требуется внутренний API Workbench для компоновки всех частей ссылка на DZone.
  3. Создайте представление GMF вместо редактора GMF. Возможно ли это вообще без потери палитры?

person parasietje    schedule 11.01.2013    source источник


Ответы (1)


Я сделал вариант № 2 два года назад, и в зависимости от ваших требований к макету, это, безусловно, самый простой.

Вариант № 1 почти невозможен, так как есть большие части IViewPart функциональности, которые нельзя делегировать в подчасть. Просто посмотрите, насколько широко распространен мультиредакторный код — вы можете найти instanceof тестов глубоко в org.eclipse.ui коде.

Вариант № 3, вероятно, можно сделать, но только потеряв палитру, так как это, похоже, относится к вещам редактора глубоко внутри (по крайней мере, это есть в моих заметках двухлетней давности :-))

person Tonny Madsen    schedule 16.04.2013