Добавить MPart во все MPerspective в eclipse Juno

Я создаю один RCP в Eclipse 4.2. В моем RCP у меня есть 3 перспективы.
Я создаю одну часть во время выполнения и добавляю ее в перспективе, как показано ниже.

@Inject
EPartService partService;
@Inject
MApplication application;    
...

Mpart part = .... ;    
...

List<MPartStack> stacks = modelService.findElements(application, null, MPartStack.class, null);
stacks.get(0).getChildren().add(part);
partService.showPart(part, PartState.ACTIVATE);

Но проблема заключается в том, что его добавленный вид в текущей открытой перспективе, поэтому, если вы переключите перспективу на другую, этот вид не будет отображаться там, что правильно, потому что я просто добавляю его в 1-й стек.
Но мое требование должен быть добавлен в каждую перспективу, поэтому, если он переключится на другую перспективу, он должен быть там.

Я получаю список MPerspective следующим образом:

List<MPerspective> mPerspective = modelService.findElements(application, null, MPerspective.class, null);       

Но не знаю, как его добавить.

Итак, как добавить часть в каждую перспективу.?

Спасибо


person Sumit Singh    schedule 20.02.2013    source источник


Ответы (1)


В Eclipse 3.x была концепция StickyViews, и вы возможно, все еще сможет использовать его через уровень совместимости. Однако модель приложения Eclipse 4 гораздо более гибкая, и у вас должно быть несколько способов добавить такой «липкий» MPart.

На скриншоте ниже видно, что в Application.e4xmi у вас может быть несколько стеков перспективы и даже Mpart или MPartStacks на одном уровне. В приведенном выше примере вы можете просто добавить MPart во второй MPartStack, который находится на том же уровне в модели приложения, что и ваш Perspective Stack:

stacks.get(1).getChildren().add(part);

Application.e4xmi

person Max Hohenegger    schedule 24.02.2013