org.eclipse.ui.perspectiveExtensions

Модули могут добавлять собственные наборы действий, панели и различные ярлыки к имеющимся проекциям с помощью точки расширения org.eclipse.ui.perspectiveExtensions.

К имеющимся проекциям также можно добавлять дополнения, заданные для новых проекций (группы действий, записи мастеров, макет панелей, ярлыки панелей и ярлыки проекций).   Важное различие состоит в том, что эти дополнения указаны в коде plugin.xml, а не настраиваются в IPageLayout.

В следующем фрагменте кода показано, как JDT расширяет проекцию отладки платформы.

<extension point="org.eclipse.ui.perspectiveExtensions">
  <perspectiveExtension 
	targetID="org.eclipse.debug.ui.DebugPerspective">
	<actionSet id="org.eclipse.jdt.debug.ui.JDTDebugActionSet"/>
    	<view id="org.eclipse.jdt.debug.ui.DisplayView" 
        	relative="org.eclipse.debug.ui.ExpressionView" 
    		relationship="stack"/>	
        <view id="org.eclipse.jdt.ui.PackageExplorer" 
                relative="org.eclipse.debug.ui.DebugView" 
                relationship="stack"
                visible="false"/>
        <view id="org.eclipse.jdt.ui.TypeHierarchy" 
                relative="org.eclipse.debug.ui.DebugView" 
                relationship="stack"
                visible="false"/>
        <view id="org.eclipse.search.SearchResultView" 
                relative="org.eclipse.debug.ui.ConsoleView" 
                relationship="stack"
                visible="false"/> 
    	<viewShortcut id="org.eclipse.jdt.debug.ui.DisplayView"/>
  </perspectiveExtension> 
</extension>

targetID - это ИД проекции, к которой модуль добавляет новое поведение.   Параметр actionSet идентифицирует ИД ранее объявленного набора действий, который следует добавить к целевой проекции.   Для этого применяется код, схожий с использованием IPageLayout.addActionSet в  IPerspectiveFactory.

Добавление панели к проекции немного более сложно, так как необходимо объявить сведения о разметке страницы проекции.   Атрибут visible контролирует, будет ли добавленная панель показана при открытии проекции.   Помимо предоставления ИД добавленной панели, следует указать в качестве ссылки для размещения новой панели и ИД уже существующей панели проекции (относительной панели).  Параметр relationship задает связь макета новой панели и относительной панели.  

Указание perspectiveShortcut означает, что другая проекция (заданная по ИД) должна быть добавлена к меню Окно->Открыть проекцию... целевой проекции.  Для этого применяется код, схожий с вызовом IPageLayout.addPerspectiveShortcut в исходном определении проекции в IPerspectiveFactory.  Модули могут также добавлять ярлыки панелей и новые ярлыки мастеров таким же образом.   

Можно также задать одну или несколько панелей в качестве showInPart.  Панели следует указать по ИД, используемому в их дополнениях расширения org.eclipse.ui.views.   Это позволяет управлять тем, какие панели доступны в меню Навигация > Показать в.  Возможность указывать панель для меню "Показать в" в коде расширения позволяет добавлять новые панели в качестве целей в меню "показать в" других проекций.  В разделе Связывание панелей и редакторов можно найти дополнительные сведения о возможностях функции "Показать в"

Полное определение точек расширения содержится в разделе org.eclipse.ui.perspectiveExtensions.