# 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)*>

<!ATTLIST perspectiveExtension

targetID IDREF #REQUIRED

>

- 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.

<!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 - 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.

###### 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.
All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html