Perspective Extensions
Identifier:
org.eclipse.ui.perspectiveExtensions
Description:
This extension point is used to extend perspectives
registered by other plug-ins. A perspective defines
the initial contents of the window action bars
(menu and toolbar) and the initial set of views
and their layout within a workbench page.
Other plug-ins may contribute actions or views to
the perspective which appear when the perspective
is selected. Optional additions by other plug-ins
are appended to the initial definition.
Configuration Markup:
<!ELEMENT extension (perspectiveExtension*)>
<!ATTLIST extension
point CDATA #REQUIRED
id CDATA #IMPLIED
name CDATA #IMPLIED>
- point - a fully qualified identifier of the target extension point
- id - an optional identifier of the extension instance
- name - an optional name of the extension instance
<!ELEMENT perspectiveExtension (actionSet | viewShortcut | perspectiveShortcut | newWizardShortcut | view | showInPart | hiddenMenuItem | hiddenToolBarItem | editorOnboardingCommand*)*>
<!ATTLIST perspectiveExtension
targetID IDREF #REQUIRED
editorOnboardingText CDATA #IMPLIED
editorOnboardingImage CDATA #IMPLIED>
- targetID - the unique identifier of the perspective (as specified in the registry) into which the contribution is made. If the value is set to "*" the extension is applied to all perspectives.
- editorOnboardingText - The text is shown in the editor area in case no editor is open.
- editorOnboardingImage - The image is shown in the editor area in case no editor is open.
The image shall be grey and not colored and shall have a size of 250 x 250 px.
Plus a second image for high resolution with a size of 500 x 500 px and a name like [image_name]@2x.[image_type].
<!ELEMENT actionSet EMPTY>
<!ATTLIST actionSet
id IDREF #REQUIRED>
- id - the unique identifier of the action set which will be added to the perspective.
<!ELEMENT viewShortcut EMPTY>
<!ATTLIST viewShortcut
id IDREF #REQUIRED>
- id - the unique identifier of the view which will be added to the perspective's "Show View" submenu of the "Window" menu.
<!ELEMENT perspectiveShortcut EMPTY>
<!ATTLIST perspectiveShortcut
id IDREF #REQUIRED>
- id - the unique identifier of the perspective which will be added to the perspective's "Open Perspective" submenu of the "Window" menu.
<!ELEMENT newWizardShortcut EMPTY>
<!ATTLIST newWizardShortcut
id IDREF #REQUIRED>
- id - the unique identifier of the new wizard which will be added to the perspective's "New" submenu of the "File" menu.
<!ELEMENT showInPart EMPTY>
<!ATTLIST showInPart
id IDREF #IMPLIED>
- id - the unique identifier of the view which will be added to the perspective's "Show In..." prompter in the Navigate menu.
<!ELEMENT view EMPTY>
<!ATTLIST view
id IDREF #REQUIRED
relative IDREF #IMPLIED
relationship (stack|left|right|top|bottom|fast)
ratio CDATA #IMPLIED
visible (true | false)
closeable (true | false)
moveable (true | false)
standalone (true | false)
showTitle (true | false)
minimized (true | false) "false">
- id - the unique identifier of the view which will be added to the perspective layout.
- relative - the unique identifier of a view which already exists in the perspective. This will be used as a reference point for placement of the view. The relationship between these two views is defined by relationship. Ignored if relationship is "fast".
- relationship - specifies the relationship between id and
relative.
The following values are supported:
fast - Deprecated - the view extension will be created as a fast view.
stack - the view extension will be stacked with the relative
view in a folder.
left, right, top, bottom - the view extension will be placed
beside the relative view. In this case a ratio must also
be defined.
- ratio - the percentage of area within the relative view which will be donated to the view extension. If the view extension is a fast view, the ratio is the percentage of the workbench the fast view will cover when active. This must be defined as a floating point value and lie between 0.05 and 0.95.
- visible - whether the view is initially visible when the perspective is opened. This attribute should have a value of "true" or "false" if used.
If this attribute is not used, the view will be initially visible by default.
- closeable - whether the view is closeable in the target perspective. This attribute should have a value of "true" or "false" if used. If this attribute is not used, the view will be closeable, unless the perspective itself is marked as fixed.
- moveable - whether the view is moveable. A non-moveable view cannot be moved either within the same folder, or moved between folders in the perspective. This attribute should have a value of "true" or "false" if used.
If this attribute is not used, the view will be moveable, unless the perspective itself is marked as fixed.
- standalone - whether the view is a standalone view. A standalone view cannot be docked together with others in the same folder. This attribute should have a value of "true" or "false" if used. This attribute is ignored if the relationship attribute is "fast" or "stacked". If this attribute is not used, the view will be a regular view, not a standalone view (default is "false").
- showTitle - whether the view's title is shown. This attribute should have a value of "true" or "false" if used. This attribute only applies to standalone views. If this attribute is not used, the view's title will be shown (default is "true").
- minimized - If the perspective extension will result in a new view stack being created (i.e. the 'relationship' attribute is one of left, right, top or bottom) this field determines the new stack's initial display state.
<!ELEMENT hiddenMenuItem EMPTY>
<!ATTLIST hiddenMenuItem
id CDATA #REQUIRED>
- id - The unique identifier of the Command which is to be removed from the menu.
WARNING: This is considered to be a 'Product level' extension and should not be used in consumable plugins without great care.
<!ELEMENT hiddenToolBarItem EMPTY>
<!ATTLIST hiddenToolBarItem
id CDATA #REQUIRED>
- id - The unique identifier of the Command which is to be removed from thetoolbar.
WARNING: This is considered to be a 'Product level' extension and should not be used in consumable plugins without great care.
<!ELEMENT editorOnboardingCommand EMPTY>
<!ATTLIST editorOnboardingCommand
id IDREF #REQUIRED>
The commands are shown including key binding in the editor area in case no editor is open.
Up to five commands can be added.
- id - The unique identifier of the command which will be shown in case no editor is open.
Examples:
The following is an example of a perspective extension (note the subelements and the way attributes are used):
<extension point="org.eclipse.ui.perspectiveExtensions">
<perspectiveExtension
targetID="org.eclipse.ui.resourcePerspective">
<actionSet id="org.eclipse.jdt.ui.JavaActionSet"/>
<viewShortcut id="org.eclipse.jdt.ui.PackageExplorer"/>
<newWizardShortcut id="org.eclipse.jdt.ui.wizards.NewProjectCreationWizard"/>
<perspectiveShortcut id="org.eclipse.jdt.ui.JavaPerspective"/>
<view id="org.eclipse.jdt.ui.PackageExplorer"
relative="org.eclipse.ui.views.ResourceNavigator"
relationship="stack"/>
<view id="org.eclipse.jdt.ui.TypeHierarchy"
relative="org.eclipse.ui.views.ResourceNavigator"
relationship="left"
ratio="0.50"/>
</perspectiveExtension>
</extension>
In the example above, an action set, view shortcut,
new wizard shortcut, and perspective shortcut are
contributed to the initial contents of the
Resource Perspective. In addition, the
Package Explorer view is stacked on the
Resource Navigator and the Type Hierarchy View is
added beside the Resource Navigator.
API Information:
The items defined within the perspective extension are contributed to the initial contents of the target perspective. Following this, the user may remove any contribution or add others to a perspective from within the workbench user interface.
Copyright (c) 2002, 2007 IBM Corporation and others.
This program and the accompanying materials are made
available under the terms of the Eclipse Public License 2.0 which accompanies
this distribution, and is available at https://www.eclipse.org/legal/epl-v20.html/
SPDX-License-Identifier: EPL-2.0