# StackPresentations

###### Identifier:

org.eclipse.rap.ui.stackPresentations

###### Since:

RAP 1.2

###### Description:

This extension point is used to register `ConfigurableStack`s. This object extending a ordinary `StackPresentation` so it can be used to style a `LayoutPart`. To register such a `ConfigurableStack` only makes sence if the PresentationFactory is a `org.eclipse.rap.presentation.PresentationFactory`. Because only this PresentationFactory can handle a `ConfigurableStack`.
This extension point is also used to couple a `ConfigurationAction` to such a `ConfigurableStack`. With this you can implement different configuration behaviours for different `ConfigurableStack` implementations.
You can define default StackPresentations for a part using the `org.eclipse.rap.ui.branding` extension point.

###### Configuration Markup:

<!ELEMENT extension (stackPresentation+)+>

<!ATTLIST extension

point CDATA #REQUIRED

id CDATA #IMPLIED

name CDATA #IMPLIED>

<!ELEMENT stackPresentation EMPTY>

<!ATTLIST stackPresentation

id CDATA #REQUIRED

class CDATA #REQUIRED

name CDATA #REQUIRED

type (editor|view|standaloneview)

actionClass CDATA #IMPLIED

actionIcon CDATA #IMPLIED

menuIcon CDATA #IMPLIED>

- id - The identifier for the ConfigurableStack. This is for load and save such a part presentation.
- class - An implementation of `ConfigurableStack`
- name - The name of ConfigurableStack, this is just to give it a readable name.
- type - This defines the type where the ConfigurableStack can be used. there are three possible types: Editor, View and StandaloneView.
- actionClass - An implementation of `ConfigurationAction`. With this action you can implement configuration bahaviour e.g. this action can create a popup dialog that shows configuration elements.
- actionIcon - The icon for the ConfigurationAction.
- menuIcon - The icon for a view's menu if it has one.

###### Examples:

    <extension
        point="org.eclipse.ui.presentations.StackPresentations">
      <stackPresentation
          actionClass="org.eclipse.rap.ui.interactiondesign.example.configaction.ExampleConfigAction"
          actionIcon="icons/configure.png"
          class="org.eclipse.rap.ui.interactiondesign.example.stacks.NavigationPaneStackPresentation"
          id="org.eclipse.rap.ui.interactiondesign.navigationPaneStackPresentation"
          menuIcon="icons/menuIcon.gif"
          name="Navigation Pane"
          type="view">
      </stackPresentation>
    </extension>

###### API Information:

Each stackPresentation has to extend `org.eclipse.rap.ui.interactiondesign.ConfigurableStack` to handle different mechanisms, e.g. stackPresentation changing on the fly and so on.

###### Supplied Implementation:

A detailed implementation example can be found in the `org.eclipse.rap.presentation.example` project. This project defines two different `ConfigurableStack` implementations.

Copyright (c) 2008, 2015 EclipseSource 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