2014-10-15 1 views
0

Мне нужно настроить приложение RCP и немного использовать перспективы. В частности, я хочу, чтобы обеспечить элемент пользовательского меню, который позволяет пользователю сохранить текущую перспективу, но БЕЗ показывает встроенный Диалог:Eclipse RCP: сохранить перспективу программно

enter image description here

Так что я не хочу, чтобы использовать по умолчанию eclipse, чтобы зарегистрировать действие «Сохранить перспективу» и поместить его в меню. Т.е., я не хотите сделать это:

@Override 
protected void makeActions(IWorkbenchWindow window) 
{ 
    // ... 
    register(ActionFactory.SAVE_PERSPECTIVE.create(window)); 
    // ... 
} 

@Override 
protected void fillMenuBar(IMenuManager menuBar) 
{ 
    // ... 
    windowMenu.add(getAction(ActionFactory.SAVE_PERSPECTIVE.getId())); 
    // ... 
} 

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

ответ

0

Это довольно просто. В пользовательских действий я сделать следующее, чтобы сохранить перспективу:

IWorkbenchPage page = window.getActivePage(); 
IPerspectiveRegistry perspectiveRegistry = window.getWorkbench() 
     .getPerspectiveRegistry(); 
IPerspectiveDescriptor personalPerspectiveDescriptor = perspectiveRegistry 
     .findPerspectiveWithId(perspectiveId); 

if (page != null && personalPerspectiveDescriptor != null) { 
    // ... other stuff like different confirm dialogs 
    page.savePerspectiveAs(personalPerspectiveDescriptor); 
} 

Хороший пример того, как использовать перспективы позволяя пользователю настроить свои макеты, не показывая слишком много встроенных функций в перспективе можно найти здесь :

http://www.subshell.com/en/subshell/blog/article-Eclipse-RCP-Change-Your-Perspective100.html