diff --git a/Documentation/Doxygen/3-DeveloperManual/Application/BlueBerryExtensionPointReference.dox b/Documentation/Doxygen/3-DeveloperManual/Application/BlueBerryExtensionPointReference.dox
index 855dc0e41a..1fc8ab398e 100644
--- a/Documentation/Doxygen/3-DeveloperManual/Application/BlueBerryExtensionPointReference.dox
+++ b/Documentation/Doxygen/3-DeveloperManual/Application/BlueBerryExtensionPointReference.dox
@@ -1,1354 +1,1356 @@
 /**
 
 \page BlueBerryExtPointsIndex BlueBerry Extension-Point Reference
 
 - \subpage BlueBerryExtPointsIndex_CoreExpr
 - \subpage BlueBerryExtPointsIndex_PlatformRuntime
 - \subpage BlueBerryExtPointsIndex_Workbench
 
 \page BlueBerryExtPointsIndex_CoreExpr Platform Core Expressions
 
 \tableofcontents
 
 \section BlueBerryExtPointsIndex_CoreExpr_ExprDef Expression Definitions
 
 \subsection BlueBerryExtPointsIndex_CoreExpr_ExprDef_Id Identifier
 
 \c org.blueberry.core.expressions.definitions
 
 \subsection BlueBerryExtPointsIndex_CoreExpr_ExprDef_Desc Description
 
 This extension point allows you to create reusable extensions.
 They can then be used in other core expression constructs.
 The reference element in a core expression will evaluated the expression definition with the evaluation context that is active for the reference element.
 
 \subsection BlueBerryExtPointsIndex_CoreExpr_ExprDef_ConfMarkup Configuration Markup
 
 \code{.unparsed}
 <!ELEMENT extension (definition*)>
 <!ATTLIST extension
   point CDATA #REQUIRED
   id    CDATA #IMPLIED
   name  CDATA #IMPLIED>
 \endcode
 
 - <tt>point</tt>: a fully qualified identifier of the target extension point
 - <tt>id</tt>: an optional identifier of the extension instance
 - <tt>name</tt>: an optional name of the extension instance
 
 \code{.unparsed}
 <!ELEMENT definition (not | and | or | instanceof | test | systemTest | equals | count | with | resolve | adapt | iterate)>
 <!ATTLIST definition
   id CDATA #REQUIRED>
 \endcode
 
 Provides a global definition of an expression to be used with the \c \<reference/\> expression element.
 This helps to reuse common expressions.
 
 - <tt>id</tt>: a globally unique identifier for the expression definition
 
 \code{.unparsed}
 <!ELEMENT enablement (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate , reference)*>
 \endcode
 
 A generic root element.
 The element can be used inside an extension point to define its enablement expression.
 The children of an enablement expression are combined using the and operator.
 
 \code{.unparsed}
 <!ELEMENT not (not | and | or | instanceof | test | systemTest | equals | count | with | resolve | adapt | iterate | reference)>
 \endcode
 
 This element represent a NOT operation on the result of evaluating it's sub-element expression.
 
 \code{.unparsed}
 <!ELEMENT and (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate , reference)*>
 \endcode
 
 This element represent an AND operation on the result of evaluating all it's sub-elements expressions.
 
 \code{.unparsed}
 <!ELEMENT or (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate , reference)*>
 \endcode
 
 This element represent an OR operation on the result of evaluating all it's sub-element expressions.
 
 \code{.unparsed}
 <!ELEMENT instanceof EMPTY>
 <!ATTLIST instanceof
   value CDATA #REQUIRED>
 \endcode
 
 This element is used to perform an instanceof check of the object in focus.
 The expression returns \c EvaluationResult.TRUE if the object's type is a sub type of the type specified by the attribute value.
 Otherwise \c EvaluationResult.FALSE is returned.
 
 - <tt>value</tt>: a fully qualified name of a class or interface
 
 \code{.unparsed}
 <!ELEMENT test EMPTY>
 <!ATTLIST test
   property              CDATA #REQUIRED
   args                  CDATA #IMPLIED
   value                 CDATA #IMPLIED
   forcePluginActivation (true | false)>
 \endcode
 
 This element is used to evaluate the property state of the object in focus.
 The set of testable properties can be extended using the propery tester extension point.
 The test expression returns \c EvaluationResult.NOT_LOADED if the property tester doing the actual testing isn't loaded yet and the attribute \c forcePluginActivation is set to \c false.
 If \c forcePluginActivation is set to \c true and the evaluation context used to evaluate this expression support plug-in activation then evaluating the property will result in activating the plug-in defining the tester.
 
 - <tt>property</tt>: The name of an object's property to test.
 - <tt>args</tt>: Additional arguments passed to the property tester. Multiple arguments are seperated by commas. Each individual argument is converted into a Java base type using the same rules as defined for the value attribute of the test expression.
 - <tt>value</tt>: The expected value of the property. Can be omitted if the property is a boolean property. The test expression is supposed to return \c EvaluationResult.TRUE if the property matches the value and \c EvaluationResult.FALSE otherwise. The value attribute is converted into a Java base type using the following rules:
  - The string \c "true" is converted into \c Boolean.TRUE .
  - The string \c "false" is converted into \c Boolean.FALSE .
  - If the string contains a dot then the interpreter tries to convert the value into a \c Float object. If this fails the string is treated as a \c java.lang.String.
  - If the string only consists of numbers then the interpreter converts the value in an \c Integer object.
  - In all other cases the string is treated as a \c java.lang.String .
  - The conversion of the string into a \c Boolean , \c Float , or \c Integer can be suppressed by surrounding the string with single quotes. For example, the attribute \c value="'true'" is converted into the string "true".
 - <tt>forcePluginActivation</tt>: A flag indicating whether the plug-in contributing the property tester should be loaded if necessary. As such, this flag should be used judiciously, in order to avoid unnecessary plug-in activations. Most clients should avoid setting this flag to \c true. This flag is only honored if the evaluation context used to evaluate this expression allows plug-in activation. Otherwise the flag is ignored and no plug-in loading takes place.
 
 \code{.unparsed}
 <!ELEMENT systemTest EMPTY>
 <!ATTLIST systemTest
   property CDATA #REQUIRED
   value    CDATA #REQUIRED>
 \endcode
 
 Tests a system property by calling the \c System.getProperty method and compares the result with the value specified through the value attribute.
 
 - <tt>property</tt>: The name of an system property to test.
 - <tt>value</tt>: The expected value of the property. The value is interpreted as a string value.
 
 \code{.unparsed}
 <!ELEMENT equals EMPTY>
 <!ATTLIST equals
   value CDATA #REQUIRED>
 \endcode
 
 This element is used to perform an equals check of the object in focus.
 The expression returns \c EvaluationResult.TRUE if the object is equal to the value provided by the attribute value.
 Otherwise \c EvaluationResult.FALSE is returned.
 
 - <tt>value</tt>: The expected value. The value provided as a string is converted into a Java base type using the same rules as for the value attribute of the test expression.
 
 \code{.unparsed}
 <!ELEMENT count EMPTY>
 <!ATTLIST count
   value CDATA #REQUIRED>
 \endcode
 
 This element is used to test the number of elements in a collection.
 
 - <tt>value</tt>: An expression to specify the number of elements in a list. Following wildcard characters can be used:
  - <tt>*</tt>: any number of elements
  - <tt>?</tt>: no elements or one element
  - <tt>+</tt>: one or more elements
  - <tt>!</tt>: no elements
  - <tt>integer value</tt>: the list must contain the exact number of elements
 
 \code{.unparsed}
 <!ELEMENT with (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate , reference)*>
 <!ATTLIST with
   variable CDATA #REQUIRED>
 \endcode
 
 This element changes the object to be inspected for all its child element to the object referenced by the given variable.
 If the variable can not be resolved then the expression will throw an \c ExpressionException when evaluating it.
 The children of a with expression are combined using the and operator.
 
 - <tt>variable</tt>: The name of the variable to be used for further inspection. It is up to the evaluator of an extension point to provide the variable in the variable pool.
 
 \code{.unparsed}
 <!ELEMENT resolve (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate , reference)*>
 <!ATTLIST resolve
   variable CDATA #REQUIRED
   args     CDATA #IMPLIED>
 \endcode
 
 This element changes the object to be inspected for all its child element to the object referenced by the given variable.
 If the variable can not be resolved then the expression will throw an \c ExpressionException when evaluating it.
 The children of a with expression are combined using the and operator.
 
 - <tt>variable</tt>: The name of the variable to be resolved. This variable is then used as the object in focus for child element evaluation. It is up to the evaluator of an extension point to provide a corresponding variable resolver (see berry::IVariableResolver) through the evaluation context passed to the root expression element when evaluating the expression.
 - <tt>args</tt>: Additional arguments passed to the variable resolver. Multiple arguments are seperated by commas. Each individual argument is converted into a Java base type using the same rules as defined for the value attribute of the test expression.
 
 \code{.unparsed}
 <!ELEMENT adapt (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate , reference)*>
 <!ATTLIST adapt
   type CDATA #REQUIRED>
 \endcode
 
 This element is used to adapt the object in focus to the type specified by the attribute type.
 The expression returns not loaded if either the adapter or the type referenced isn't loaded yet.
 It throws an \c ExpressionException during evaluation if the type name doesn't exist at all.
 The children of an adapt expression are combined using the and operator.
 
 - <tt>type</tt>: the type to which the object in focus is to be adapted
 
 \code{.unparsed}
 <!ELEMENT iterate (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate , reference)*>
 <!ATTLIST iterate
   operator (or|and)
   ifEmpty  (true | false) >
 \endcode
 
 This element is used to iterate over a variable that is of type \c java.util.Collection.
 If the object in focus is not of type \c java.util.Collection then an \c ExpressionException will be thrown while evaluating the expression.
 
 - <tt>operator</tt>: Either "and" or "or". The operator defines how the child elements will be combined. If not specified, "and" will be used.
 - <tt>ifEmpty</tt>: The value return from the iterate expression if the collection is empty. If not specified then \c true is returned when the operator equals "and" and \c false is returned if the operator equals "or".
 
 \code{.unparsed}
 <!ELEMENT reference EMPTY>
 <!ATTLIST reference
   definitionId CDATA #REQUIRED>
 \endcode
 
 This element is used to reference an expression from the \c org.blueberry.core.expressions.definitions extension point.
 The expression definition will be evaluated within the current expression element using the current evaluation context.
 
 - <tt>definitionId</tt>: the unique id of an expression from \c org.blueberry.core.expressions.definitions
 
 \subsection BlueBerryExtPointsIndex_CoreExpr_ExprDef_Examples Examples
 
 \code{.unparsed}
 <extension point="org.blueberry.core.expressions.definitions">
   <definition id="com.example.parts.activeProblemsView">
     <with variable="activePartId">
       <equals value="org.blueberry.ui.views.ProblemsView"/>
     </with>
   </definition>
   <definition id="com.example.markers.markerSelection">
     <iterate>
       <instanceof value="org.blueberry.core.resources.IMarker"/>
     </with>
   </definition>
 </extension>
 \endcode
 
 Then this expression definition can be used when composing other expressions.
 
 \code{.unparsed}
 <enabledWhen>
   <reference definitionId="com.example.parts.activeProblemsView">
 </enabledWhen>
 
 <visibleWhen>
   <and>
     <reference definitionId="com.example.parts.activeProblemsView"/>
     <reference definitionId="com.example.markers.markerSelection"/>
   </and>
 </visibleWhen>
 \endcode
 
 \section BlueBerryExtPointsIndex_CoreExpr_CommExpr Common Expressions
 
 \subsection BlueBerryExtPointsIndex_CoreExpr_CommExpr_Id Identifier
 
 \c org.blueberry.core.expressions.commonExpression
 
 \subsection BlueBerryExtPointsIndex_CoreExpr_CommExpr_ConfMarkup Configuration Markup
 
 \code{.unparsed}
 <!ELEMENT enablement (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate , reference)*>
 \endcode
 
 A generic root element. The element can be used inside an extension point to define its enablement expression.
 The children of an enablement expression are combined using the and operator.
 
 \code{.unparsed}
 <!ELEMENT not (not | and | or | instanceof | test | systemTest | equals | count | with | resolve | adapt | iterate | reference)>
 \endcode
 
 This element represent a NOT operation on the result of evaluating it's sub-element expression.
 
 \code{.unparsed}
 <!ELEMENT and (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate , reference)*>
 \endcode
 
 This element represent an AND operation on the result of evaluating all it's sub-elements expressions.
 
 \code{.unparsed}
 <!ELEMENT or (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate , reference)*>
 \endcode
 
 This element represent an OR operation on the result of evaluating all it's sub-element expressions.
 
 \code{.unparsed}
 <!ELEMENT instanceof EMPTY>
 <!ATTLIST instanceof
   value CDATA #REQUIRED>
 \endcode
 
 This element is used to perform an instanceof check of the object in focus.
 The expression returns \c EvaluationResult.TRUE if the object's type is a sub type of the type specified by the attribute value.
 Otherwise \c EvaluationResult.FALSE is returned.
 
 - <tt>value</tt>: a fully qualified name of a class or interface
 
 \code{.unparsed}
 <!ELEMENT test EMPTY>
 <!ATTLIST test
   property              CDATA #REQUIRED
   args                  CDATA #IMPLIED
   value                 CDATA #IMPLIED
   forcePluginActivation (true | false) >
 \endcode
 
 This element is used to evaluate the property state of the object in focus.
 The set of testable properties can be extended using the propery tester extension point.
 The test expression returns \c EvaluationResult.NOT_LOADED if the property tester doing the actual testing isn't loaded yet and the attribute \c forcePluginActivation is set to false.
 If \c forcePluginActivation is set to \c true and the evaluation context used to evaluate this expression support plug-in activation then evaluating the property will result in activating the plug-in defining the tester.
 
 - <tt>property</tt>: The name of an object's property to test.
 - <tt>args</tt>: Additional arguments passed to the property tester. Multiple arguments are seperated by commas. Each individual argument is converted into a Java base type using the same rules as defined for the value attribute of the test expression.
 - <tt>value</tt>: The expected value of the property. Can be omitted if the property is a boolean property. The test expression is supposed to return EvaluationResult.TRUE if the property matches the value and EvaluationResult.FALSE otherwise. The value attribute is converted into a Java base type using the following rules:
  - The string "true" is converted into \c Boolean.TRUE
  - The string "false" is converted into \c Boolean.FALSE
  - If the string contains a dot then the interpreter tries to convert the value into a \c Float object. If this fails the string is treated as a \c java.lang.String
  - If the string only consists of numbers then the interpreter converts the value in an \c Integer object.
  - In all other cases the string is treated as a \c java.lang.String
  - The conversion of the string into a \c Boolean , \c Float , or \c Integer can be suppressed by surrounding the string with single quotes. For example, the attribute \c value="'true'" is converted into the string "true"
 - <tt>forcePluginActivation</tt>: A flag indicating whether the plug-in contributing the property tester should be loaded if necessary. As such, this flag should be used judiciously, in order to avoid unnecessary plug-in activations. Most clients should avoid setting this flag to true. This flag is only honored if the evaluation context used to evaluate this expression allows plug-in activation. Otherwise the flag is ignored and no plug-in loading takes place.
 
 \code{.unparsed}
 <!ELEMENT systemTest EMPTY>
 <!ATTLIST systemTest
   property CDATA #REQUIRED
   value    CDATA #REQUIRED>
 \endcode
 
 Tests a system property by calling the \c System.getProperty method and compares the result with the value specified through the value attribute.
 
 - <tt>property</tt>: The name of an system property to test.
 - <tt>value</tt>: The expected value of the property. The value is interpreted as a string value.
 
 \code{.unparsed}
 <!ELEMENT equals EMPTY>
 <!ATTLIST equals
   value CDATA #REQUIRED>
 \endcode
 
 This element is used to perform an equals check of the object in focus.
 The expression returns \c EvaluationResult.TRUE if the object is equal to the value provided by the attribute value.
 Otherwise \c EvaluationResult.FALSE is returned.
 
 - <tt>value</tt>: The expected value. The value provided as a string is converted into a Java base type using the same rules as for the value attribute of the test expression.
 
 \code{.unparsed}
 <!ELEMENT count EMPTY>
 <!ATTLIST count
   value CDATA #REQUIRED>
 \endcode
 
 This element is used to test the number of elements in a collection.
 
 - <tt>value</tt>: An expression to specify the number of elements in a list. Following wildcard characters can be used:
  - <tt>*</tt>: any number of elements
  - <tt>?</tt>: no elements or one element
  - <tt>+</tt>: one or more elements
  - <tt>!</tt>: no elements
  - <tt>integer value</tt>: the list must contain the exact number of elements
 
 \code{.unparsed}
 <!ELEMENT with (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate , reference)*>
 <!ATTLIST with
   variable CDATA #REQUIRED>
 \endcode
 
 This element changes the object to be inspected for all its child element to the object referenced by the given variable.
 If the variable can not be resolved then the expression will throw an \c ExpressionException when evaluating it.
 The children of a with expression are combined using the and operator.
 
 - <tt>variable</tt>: The name of the variable to be used for further inspection. It is up to the evaluator of an extension point to provide the variable in the variable pool.
 
 \code{.unparsed}
 <!ELEMENT resolve (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate , reference)*>
 <!ATTLIST resolve
   variable CDATA #REQUIRED
   args     CDATA #IMPLIED>
 \endcode
 
 This element changes the object to be inspected for all its child element to the object referenced by the given variable.
 If the variable can not be resolved then the expression will throw an \c ExpressionException when evaluating it.
 The children of a with expression are combined using the and operator.
 
 - <tt>variable</tt>: The name of the variable to be resolved. This variable is then used as the object in focus for child element evaluation. It is up to the evaluator of an extension point to provide a corresponding variable resolver (see berry::IVariableResolver) through the evaluation context passed to the root expression element when evaluating the expression.
 - <tt>args</tt>: Additional arguments passed to the variable resolver. Multiple arguments are seperated by commas. Each individual argument is converted into a Java base type using the same rules as defined for the value attribute of the test expression.
 
 \code{.unparsed}
 <!ELEMENT adapt (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate , reference)*>
 <!ATTLIST adapt
   type CDATA #REQUIRED>
 \endcode
 
 This element is used to adapt the object in focus to the type specified by the attribute type.
 The expression returns not loaded if either the adapter or the type referenced isn't loaded yet. It throws an \c ExpressionException during evaluation if the type name doesn't exist at all.
 The children of an adapt expression are combined using the and operator.
 
 - <tt>type</tt>: the type to which the object in focus is to be adapted
 
 \code{.unparsed}
 <!ELEMENT iterate (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate , reference)*>
 <!ATTLIST iterate
   operator (or|and)
   ifEmpty  (true | false) >
 \endcode
 
 This element is used to iterate over a variable that is of type \c java.util.Collection.
 If the object in focus is not of type \c java.util.Collection then an \c ExpressionException will be thrown while evaluating the expression.
 
 - <tt>operator</tt>: Either "and" or "or". The operator defines how the child elements will be combined. If not specified, "and" will be used.
 - <tt>ifEmpty</tt>: The value return from the iterate expression if the collection is empty. If not specified then \c true is returned when the operator equals "and" and \c false is returned if the operator equals "or".
 
 \code{.unparsed}
 <!ELEMENT reference EMPTY>
 <!ATTLIST reference
   definitionId CDATA #REQUIRED>
 \endcode
 
 This element is used to reference an expression from the \c org.blueberry.core.expressions.definitions extension point.
 The expression definition will be evaluated within the current expression element using the current evaluation context.
 
 - <tt>definitionId</tt>: the unique id of an expression from \c org.blueberry.core.expressions.definitions
 
 \section BlueBerryExtPointsIndex_CoreExpr_PropTest Property Testers
 
 \subsection BlueBerryExtPointsIndex_CoreExpr_PropTest_Id Identifier
 
 \c org.blueberry.core.expressions.propertyTesters
 
 \subsection BlueBerryExtPointsIndex_CoreExpr_PropTest_Desc Description
 
 This extension point allows to add properties to an already existing type.
 Those properties can then be used inside the expression language's test expression element.
 
 \subsection BlueBerryExtPointsIndex_CoreExpr_PropTest_ConfMarkup Configuration Markup
 
 \code{.unparsed}
 <!ELEMENT extension (propertyTester*)>
 <!ATTLIST extension
   point CDATA #REQUIRED
   id    CDATA #IMPLIED
   name  CDATA #IMPLIED>
 \endcode
 
 - <tt>point</tt>: a fully qualified identifier of the target extension point
 - <tt>id</tt>: an optional identifier of the extension instance
 - <tt>name</tt>: an optional name of the extension instance
 
 \code{.unparsed}
 <!ELEMENT propertyTester EMPTY>
 <!ATTLIST propertyTester
   id         CDATA #REQUIRED
   type       CDATA #REQUIRED
   namespace  CDATA #REQUIRED
   properties CDATA #REQUIRED
   class      CDATA #REQUIRED>
 \endcode
 
 - <tt>id</tt>: Unique identifier for the property tester.
 - <tt>type</tt>: The type to be extended by this property tester.
 - <tt>namespace</tt>: A unique id determining the name space the properties are added to.
 - <tt>properties</tt>: A comma separated list of properties provided by this property tester.
 - <tt>class</tt>: The name of the class that implements the testing methods. The class must be public and extend \c org.blueberry.core.expressions.PropertyTester with a public 0-argument constructor.
 
 \subsection BlueBerryExtPointsIndex_CoreExpr_PropTest_Examples Examples
 
 \code{.unparsed}
 <extension point="org.eclipse.core.expressions.propertyTesters">
   <propertyTester
     id="org.eclipse.jdt.ui.IResourceTester"
     type="org.eclipse.core.resources.IResource"
     namespace="org.eclipse.jdt.ui"
     properties="canDelete"
     class="org.eclipse.jdt.ui.internal.ResourceTester">
   </propertyTester>
 </extension>
 \endcode
 
 \page BlueBerryExtPointsIndex_PlatformRuntime Platform Runtime
 
 \tableofcontents
 
 \section BlueBerryExtPointsIndex_PlatformRuntime_App Applications
 
 \subsection BlueBerryExtPointsIndex_PlatformRuntime_App_Id Identifier
 
 \c org.blueberry.osgi.applications
 
 \subsection BlueBerryExtPointsIndex_PlatformRuntime_App_Desc Description
 
 The applications extension point allows plugins to contribute applications to the BlueBerry Platform.
 
 \subsection BlueBerryExtPointsIndex_PlatformRuntime_App_ConfMarkup Configuration Markup
 
 \code{.unparsed}
 <!ELEMENT extension (application)+>
 <!ATTLIST extension
   point CDATA #REQUIRED
   id    CDATA #IMPLIED
   name  CDATA #IMPLIED>
 \endcode
 
 \code{.unparsed}
 <!ELEMENT application (run)>
 <!ATTLIST application
   id   CDATA #REQUIRED
   name CDATA #IMPLIED>
 \endcode
 
 \code{.unparsed}
 <!ELEMENT run EMPTY>
 <!ATTLIST run
   class CDATA #REQUIRED>
 \endcode
 
 \subsection BlueBerryExtPointsIndex_PlatformRuntime_App_Examples Examples
 
 \code{.unparsed}
 <extension id="sampleApplication" point="org.blueberry.osgi.applications">
   <application id="my.domain.application">
   <run class="xyz::SampleApp"/>
   </application>
 </extension>
 \endcode
 
 \section BlueBerryExtPointsIndex_PlatformRuntime_Prod Products
 
 \subsection BlueBerryExtPointsIndex_PlatformRuntime_Prod_Id Identifier
 
 \c org.blueberry.core.runtime.products
 
 \subsection BlueBerryExtPointsIndex_PlatformRuntime_Prod_Desc Description
 
 Products are the BlueBerry unit of branding.
 Product extensions are supplied by plug-ins wishing to define one or more products.
 There must be one product per extension as the extension id is used in processing and identifying the product.
 
 There are two possible forms of product extension, static and dynamic.
 Static product extensions directly contain all relevant information about the product.
 Dynamic product extensions identify a class (an \c IProductProvider) which is capable of defining one or more products when queried.
 
 \subsection BlueBerryExtPointsIndex_PlatformRuntime_Prod_ConfMarkup Configuration Markup
 
 \code{.unparsed}
 <!ELEMENT extension ((product | provider))>
 <!ATTLIST extension
   point CDATA #REQUIRED
   id    CDATA #IMPLIED
   name  CDATA #IMPLIED>
 \endcode
 
 \code{.unparsed}
 <!ELEMENT product (property*)>
 <!ATTLIST product
   application CDATA #REQUIRED
   name        CDATA #REQUIRED
   description CDATA #IMPLIED>
 \endcode
 
 - <tt>application</tt>: the default application to run when running this product
 - <tt>name</tt>: the human-readable name of this product
 - <tt>description</tt>: the human-readable description of this product
 
 \code{.unparsed}
 <!ELEMENT property EMPTY>
 <!ATTLIST property
   name  CDATA #REQUIRED
   value CDATA #REQUIRED>
 \endcode
 
 - <tt>name</tt>: the key under which this property is stored
 - <tt>value</tt>: the value of this property
 
 \code{.unparsed}
 <!ELEMENT provider (run)>
 \endcode
 
 \code{.unparsed}
 <!ELEMENT run EMPTY>
 <!ATTLIST run
   class CDATA #REQUIRED>
 \endcode
 
 - <tt>class</tt>: the fully-qualified name of a class which implements \c IProductProvider
 
 \subsection BlueBerryExtPointsIndex_PlatformRuntime_Prod_Examples Examples
 
 \code{.unparsed}
 <extension id="coolProduct" point="org.blueberry.core.runtime.products">
   <product name="%coolName" application="coolApplication" description="%coolDescription">
     <property name="windowImages" value="window.gif"/>
     <property name="aboutImage" value="image.gif"/>
     <property name="aboutText" value="%aboutText"/>
     <property name="appName" value="CoolApp"/>
     <property name="welcomePage" value="$nl$/welcome.xml"/>
     <property name="preferenceCustomization" value="plugin_customization.ini"/>
   </product>
 </extension>
 \endcode
 
 The following is an example of a dynamic product (product provider) declaration: Following is an example of an application declaration:
 
 \code{.unparsed}
 <extension id="coolProvider" point="org.blueberry.core.runtime.products">
   <provider>
      <run class="me::CoolProvider"/>
   </provider>
 </extension>
 \endcode
 
 \subsection BlueBerryExtPointsIndex_PlatformRuntime_Prod_SupplImpl Supplied Implementation
 
 No implementations of \c IProductProvider are supplied.
 
 \page BlueBerryExtPointsIndex_Workbench Workbench
 
 \tableofcontents
 
 \section BlueBerryExtPointsIndex_Workbench_Edit Internal and External Editors
 
 \subsection BlueBerryExtPointsIndex_Workbench_Edit_Id Identifier
 
 \c org.blueberry.ui.editors
 
 \subsection BlueBerryExtPointsIndex_Workbench_Edit_Desc Description
 
 This extension point is used to add new editors to the workbench.
 A editor is a visual component within a workbench page.
 It is typically used to edit or browse a document or input object.
 To open an editor, the user will typically invoke "Open" on an \c IFile.
 When this action is performed the workbench registry is consulted to determine an appropriate editor for the file type and then a new instance of the editor type is created.
 The actual result depends on the type of the editor.
 The workbench provides support for the creation of internal editors, which are tightly integrated into the workbench, and external editors, which are launched in a separate frame window.
 There are also various levels of integration between these extremes.
 
 In the case of an internal editor tight integration can be achieved between the workbench window and the editor part.
 The workbench menu and toolbar are pre-loaded with a number of common actions, such as cut, copy, and paste.
 The active part, view or editor, is expected to provide the implementation for these actions.
 An internal editor may also define new actions which appear in the workbench window.
 These actions only appear when the editor is active.
 
 The integration between the workbench and external editors is more tenuous.
 In this case the workbench may launch an editor but after has no way of determining the state of the external editor or collaborating with it by any means except through the file system.
 
 \subsection BlueBerryExtPointsIndex_Workbench_Edit_ConfMarkup Configuration Markup
 
 \code{.unparsed}
 <!ELEMENT extension (editor*)>
 <!ATTLIST extension
   point CDATA #REQUIRED
   id    CDATA #IMPLIED
   name  CDATA #IMPLIED>
 \endcode
 
 - <tt>point</tt>: a fully qualified identifier of the target extension point
 - <tt>id</tt>: an optional identifier of the extension instance
 - <tt>name</tt>: an optional name of the extension instance
 
 \code{.unparsed}
 <!ELEMENT editor (contentTypeBinding*)>
 <!ATTLIST editor
   id               CDATA #REQUIRED
   name             CDATA #REQUIRED
   icon             CDATA #IMPLIED
   extensions       CDATA #IMPLIED
   class            CDATA #IMPLIED
   command          CDATA #IMPLIED
   launcher         CDATA #IMPLIED
   contributorClass CDATA #IMPLIED
   default          (true | false) "false"
   filenames        CDATA #IMPLIED
   matchingStrategy CDATA #IMPLIED>
 \endcode
 
 - <tt>id</tt>: a unique name that will be used to identify this editor
 - <tt>name</tt>: a translatable name that will be used in the UI for this editor
 - <tt>icon</tt>: A relative name of the icon that will be used for all resources that match the specified extensions. Editors should provide an icon to make it easy for users to distinguish between different editor types. If you specify a command rather than a class, an icon is not needed. In that case, the workbench will use the icon provided by the operating system.
 - <tt>extensions</tt>: an optional field containing the list of file types understood by the editor. This is a string containing comma separate file extensions. For instance, an editor which understands hypertext documents may register for "htm, html".
 - <tt>class</tt>: the name of a class that implements berry::IEditorPart. The attributes \c class , \c command , and \c launcher are mutually exclusive. If this attribute is defined then \c contributorClass should also be defined.
 - <tt>command</tt>: a command to run in order to launch an external editor. The executable command must be located on the system path or in the plug-in's directory. The attributes class, command, and launcher are mutually exclusive.
 - <tt>launcher</tt>: the name of a class which that implements berry::IEditorLauncher. A launcher will open an external editor. The attributes \c class , \c command , and \c launcher are mutually exclusive.
 - <tt>contributorClass</tt>: the name of a class that implements berry::IEditorActionBarContributor. This attribute should only be defined if the \c class attribute is defined. This class is used to add new actions to the workbench menu and tool bar which reflect the features of the editor type.
 - <tt>default</tt>: if true, this editor will be used as the default editor for the type. This is only relevant in a case where more than one editor is registered for the same type. If an editor is not the default for the type, it can still be launched using "Open with..." submenu for the selected resource.
 Please note that this attribute is only honored for filename and extension associations at this time. It will not be honored for content type bindings. Content type-based resolution will occur on a first come, first serve basis and is not explicitly specified.
 - <tt>filenames</tt>: an optional field containing the list of file names understood by the editor. This is a string containing comma separate file names. For instance, an editor which understands specific hypertext documents may register for "ejb.htm, ejb.html".
 - <tt>matchingStrategy</tt>: the name of a class that implements berry::IEditorMatchingStrategy. This attribute should only be defined if the \c class attribute is defined. This allows the editor extension to provide its own algorithm for matching the input of one of its editors to a given editor input.
 
 \code{.unparsed}
 <!ELEMENT contentTypeBinding EMPTY>
 <!ATTLIST contentTypeBinding
   contentTypeId CDATA #REQUIRED>
 \endcode
 
 Advertises that the containing editor understands the given content type and is suitable for editing files of that type.
 
 - <tt>contentTypeId</tt>: The content type identifier. This is an ID defined by the \c org.blueberry.core.runtime.contentTypes extension point.
 
 \subsection BlueBerryExtPointsIndex_Workbench_Edit_Examples Examples
 
 The following is an example of an internal editor extension definition:
 
 \code{.unparsed}
 <extension point="org.blueberry.ui.editors">
   <editor
     id="com.xyz.XMLEditor"
     name="Fancy XYZ XML editor"
     icon="./icons/XMLEditor.gif"
     extensions="xml"
     class="xyz::XMLEditor"
     contributorClass="xyz::XMLEditorContributor"
     default="false">
   </editor>
 </extension>
 \endcode
 
 \subsection BlueBerryExtPointsIndex_Workbench_Edit_SupplImpl Supplied Implementation
 
 The workbench provides a "Default Text Editor". The end user product may contain other editors as part of the shipping bundle. In that case, editors will be registered as extensions using the syntax described above.
 
 \section BlueBerryExtPointsIndex_Workbench_Keywords Keywords
 
 \subsection BlueBerryExtPointsIndex_Workbench_Keywords_Id Identifier
 
 \c org.blueberry.ui.keywords
 
 \subsection BlueBerryExtPointsIndex_Workbench_Keywords_Desc Description
 
 The keywords extension point defines keywords and a unique id for reference by other schemas. See \c propertyPages and \c preferencePages .
 
 \subsection BlueBerryExtPointsIndex_Workbench_Keywords_ConfMarkup Configuration Markup
 
 \code{.unparsed}
 <!ELEMENT extension (keyword*)>
 <!ATTLIST extension
   point CDATA #REQUIRED
   id    CDATA #IMPLIED
   name  CDATA #IMPLIED>
 \endcode
 
 - <tt>point</tt>: a fully qualified identifier of the target extension point
 - <tt>id</tt>: an optional identifier of the extension instance
 - <tt>name</tt>: an optional name of the extension instance
 
 \code{.unparsed}
 <!ELEMENT keyword EMPTY>
 <!ATTLIST keyword
   id    CDATA #REQUIRED
   label CDATA #REQUIRED>
 \endcode
 
 - <tt>id</tt>: The id is the unique id used to reference the keyword
 - <tt>label</tt>: The human readable label of the keyword
 
 \subsection BlueBerryExtPointsIndex_Workbench_Keywords_Examples Examples
 
 The following is an example of a keyword extension:
 
 \code{.unparsed}
 <extension
   point="org.blueberry.ui.keywords">
   <keyword
     label="presentation tab themes"
     id="com.xyz.AppearanceKeywords"/>
 </extension>
 \endcode
 
 \subsection BlueBerryExtPointsIndex_Workbench_Keywords_SupplImpl Supplied Implementation
 
 Keywords are used only with preference and property pages. See the \c keywordReference element of the \c org.blueberry.ui.propertyPages and \c org.blueberry.ui.preferencePages extension points.
 
 \section BlueBerryExtPointsIndex_Workbench_PerspExt Perspective Extensions
 
 \subsection BlueBerryExtPointsIndex_Workbench_PerspExt_Id Identifier
 
 \c org.blueberry.ui.perspectiveExtensions
 
 \subsection BlueBerryExtPointsIndex_Workbench_PerspExt_Desc 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.
 
 \subsection BlueBerryExtPointsIndex_Workbench_PerspExt_ConfMarkup Configuration Markup
 
 \code{.unparsed}
 <!ELEMENT extension (perspectiveExtension*)>
 <!ATTLIST extension
   point CDATA #REQUIRED
   id    CDATA #IMPLIED
   name  CDATA #IMPLIED>
 \endcode
 
 - <tt>point</tt>: a fully qualified identifier of the target extension point
 - <tt>id</tt>: an optional identifier of the extension instance
 - <tt>name</tt>: an optional name of the extension instance
 
 \code{.unparsed}
 <!ELEMENT perspectiveExtension (actionSet | viewShortcut | perspectiveShortcut | newWizardShortcut | view | showInPart | hiddenMenuItem | hiddenToolBarItem)*>
 <!ATTLIST perspectiveExtension
   targetID IDREF #REQUIRED>
 \endcode
 
 - <tt>targetID</tt>: 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.
 
 \code{.unparsed}
 <!ELEMENT actionSet EMPTY>
 <!ATTLIST actionSet
   id IDREF #REQUIRED>
 \endcode
 
 - <tt>id</tt>: the unique identifier of the action set which will be added to the perspective.
 
 \code{.unparsed}
 <!ELEMENT viewShortcut EMPTY>
 <!ATTLIST viewShortcut
   id IDREF #REQUIRED>
 \endcode
 
 - <tt>id</tt>: the unique identifier of the view which will be added to the perspective's "Show View" submenu of the "Window" menu.
 
 \code{.unparsed}
 <!ELEMENT perspectiveShortcut EMPTY>
 <!ATTLIST perspectiveShortcut
   id IDREF #REQUIRED>
 \endcode
 
 - <tt>id</tt>: the unique identifier of the perspective which will be added to the perspective's "Open Perspective" submenu of the "Window" menu.
 
 \code{.unparsed}
 <!ELEMENT newWizardShortcut EMPTY>
 <!ATTLIST newWizardShortcut
   id IDREF #REQUIRED>
 \endcode
 
 - <tt>id</tt>: the unique identifier of the new wizard which will be added to the perspective's "New" submenu of the "File" menu.
 
 \code{.unparsed}
 <!ELEMENT showInPart EMPTY>
 <!ATTLIST showInPart
   id IDREF #IMPLIED>
 \endcode
 
 - <tt>id</tt>: the unique identifier of the view which will be added to the perspective's "Show In..." prompter in the Navigate menu.
 
 \code{.unparsed}
 <!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">
 \endcode
 
 - <tt>id</tt>: the unique identifier of the view which will be added to the perspective layout.
 - <tt>relative</tt>: 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 \c relationship . Ignored if relationship is "fast".
 - <tt>relationship</tt>: specifies the relationship between \c id and \c relative . The following values are supported:
  - <tt>fast</tt>: the view extension will be created as a fast view.
  - <tt>stack</tt>: the view extension will be stacked with the relative view in a folder.
  - <tt>left, right, top, bottom</tt>: the view extension will be placed beside the relative view. In this case a \c ratio must also be defined.
 - <tt>ratio</tt>: 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.
 - <tt>visible</tt>: 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.
 - <tt>closeable</tt>: 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.
 - <tt>moveable</tt>: 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.
 - <tt>standalone</tt>: 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").
 - <tt>showTitle</tt>: 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").
 - <tt>minimized</tt>: 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.
 
 \code{.unparsed}
 <!ELEMENT hiddenMenuItem EMPTY>
 <!ATTLIST hiddenMenuItem
   id CDATA #REQUIRED>
 \endcode
 
 - <tt>id</tt>: The unique identifier of the Command which is to be removed from the menu. <b>WARNING:</b> This is considered to be a 'Product level' extension and should not be used in consumable plugins without great care.
 
 \code{.unparsed}
 <!ELEMENT hiddenToolBarItem EMPTY>
 <!ATTLIST hiddenToolBarItem
   id CDATA #REQUIRED>
 \endcode
 
 - <tt>id</tt>: The unique identifier of the Command which is to be removed from thetoolbar. <b>WARNING:</b> This is considered to be a 'Product level' extension and should not be used in consumable plugins without great care.
 
 \subsection BlueBerryExtPointsIndex_Workbench_PerspExt_Examples Examples
 
 The following is an example of a perspective extension (note the subelements and the way attributes are used):
 
 \code{.unparsed}
 <extension point="org.blueberry.ui.perspectiveExtensions">
   <perspectiveExtension
     targetID="org.blueberry.ui.resourcePerspective">
     <actionSet id="org.xyz.MyActionSet"/>
     <viewShortcut id="org.xyz.views.PackageExplorer"/>
     <newWizardShortcut id="org.xyz.wizards.NewProjectCreationWizard"/>
     <perspectiveShortcut id="org.xyz.MyPerspective"/>
     <view id="org.xyz.views.PackageExplorer"
       relative="org.blueberry.ui.views.ResourceNavigator"
       relationship="stack"/>
     <view id="org.xyz.views.TypeHierarchy"
       relative="org.blueberry.ui.views.ResourceNavigator"
       relationship="left"
       ratio="0.50"/>
   </perspectiveExtension>
 </extension>
 \endcode
 
 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.
 
 \section BlueBerryExtPointsIndex_Workbench_Persp Perspectives
 
 \subsection BlueBerryExtPointsIndex_Workbench_Persp_Id Identifier
 
 \c org.blueberry.ui.perspective
 
 \subsection BlueBerryExtPointsIndex_Workbench_Persp_Desc Description
 
 This extension point is used to add perspective factories to the workbench.
 A perspective factory is used to define the initial layout and visible action sets for a perspective.
 The user can select a perspective by invoking the "Open Perspective" submenu of the "Window" menu.
 
 \subsection BlueBerryExtPointsIndex_Workbench_Persp_ConfMarkup Configuration Markup
 
 \code{.unparsed}
 <!ELEMENT extension (perspective*)>
 <!ATTLIST extension
   point CDATA #REQUIRED
   id    CDATA #IMPLIED
   name  CDATA #IMPLIED>
 \endcode
 
 - <tt>point</tt>: a fully qualified identifier of the target extension point
 - <tt>id</tt>: an optional identifier of the extension instance
 - <tt>name</tt>: an optional name of the extension instance
 
 \code{.unparsed}
 <!ELEMENT perspective (description? , keywordReference*)>
 <!ATTLIST perspective
   id    CDATA #REQUIRED
   name  CDATA #REQUIRED
   class CDATA #REQUIRED
   icon  CDATA #IMPLIED
   fixed (true | false)>
 \endcode
 
 - <tt>id</tt>: a unique name that will be used to identify this perspective.
 - <tt>name</tt>: a translatable name that will be used in the workbench window menu bar to represent this perspective.
 - <tt>class</tt>: a fully qualified name of the class that implements berry::IPerspectiveFactory interface.
 - <tt>icon</tt>: a relative name of the icon that will be associated with this perspective.
 - <tt>fixed</tt>: indicates whether the layout of the perspective is fixed. If true, then views created by the perspective factory are not closeable, and cannot be moved. The default is false.
 
 \code{.unparsed}
 <!ELEMENT description (#PCDATA)>
 \endcode
 
 An optional subelement whose body should contain text providing a short description of the perspective.
 
 \subsection BlueBerryExtPointsIndex_Workbench_Persp_Examples Examples
 
 The following is an example of a perspective extension:
 
 \code{.unparsed}
 <extension
   point="org.blueberry.ui.perspectives">
   <perspective
     id="org.blueberry.ui.resourcePerspective"
     name="Resource"
     class="berry::ResourcePerspective"
     icon="resources/MyIcon.gif">
   </perspective>
 </extension>
 \endcode
 
 \subsection BlueBerryExtPointsIndex_Workbench_Persp_SupplImpl Supplied Implementation
 
 The workbench provides a "Resource Perspective".
 Additional perspectives may be added by plug-ins.
 They are selected using the "Open Perspective" submenu of the "Window" menu.
 
 \section BlueBerryExtPointsIndex_Workbench_PrefPages Preference Pages
 
 \subsection BlueBerryExtPointsIndex_Workbench_PrefPages_Id Identifier
 
 \c org.blueberry.ui.preferencePages
 
 \subsection BlueBerryExtPointsIndex_Workbench_PrefPages_Desc Description
 
 The workbench provides one common dialog box for preferences.
 The purpose of this extension point is to allow plug-ins to add pages to the preference dialog box.
 When preference dialog box is opened (initiated from the menu bar), pages contributed in this way will be added to the dialog box.
 
 \subsection BlueBerryExtPointsIndex_Workbench_PrefPages_ConfMarkup Configuration Markup
 
 \code{.unparsed}
 <!ELEMENT extension (page*)>
 <!ATTLIST extension
   point CDATA #REQUIRED
   id    CDATA #IMPLIED
   name  CDATA #IMPLIED>
 \endcode
 
 - <tt>point</tt>: a fully qualified identifier of the target extension point
 - <tt>id</tt>: an optional identifier of the extension instance
 - <tt>name</tt>: an optional name of the extension instance
 
 \code{.unparsed}
 <!ELEMENT page (keywordReference*)>
 <!ATTLIST page
   id       CDATA #REQUIRED
   name     CDATA #REQUIRED
   class    CDATA #REQUIRED
   category IDREF #IMPLIED>
 \endcode
 
 - <tt>id</tt>: a unique name that will be used to identify this page.
 - <tt>name</tt>: a translatable name that will be used in the UI for this page.
 - <tt>class</tt>: a name of the fully qualified class that implements berry::IWorkbenchPreferencePage.
 - <tt>category</tt>: a path indicating the location of the page in the preference tree. The path may either be a parent node ID or a sequence of IDs separated by '/', representing the full path from the root node.
 
 \code{.unparsed}
 <!ELEMENT keywordReference EMPTY>
 <!ATTLIST keywordReference
   id IDREF #REQUIRED>
 \endcode
 
 A reference by a preference page to a keyword. See the keywords extension point.
 
 - <tt>id</tt>: The id of the keyword being referred to.
 
 \subsection BlueBerryExtPointsIndex_Workbench_PrefPages_Examples Examples
 
 The following is an example for the preference extension point:
 
 \code{.unparsed}
 <extension
   point="org.blueberry.ui.preferencePages">
   <page
     id="com.xyz.prefpage1"
     name="XYZ"
     class="xyz::PrefPage1">
     <keywordReference id="xyz.Keyword"/>
   </page>
   <page
     id="com.xyz.prefpage2"
     name="Keyboard Settings"
     class="xyz::PrefPage2"
     category="com.xyz.prefpage1">
   </page>
 </extension>
 \endcode
 
 \subsection BlueBerryExtPointsIndex_Workbench_PrefPages_SupplImpl Supplied Implementation
 
 The workbench adds several pages for setting the preferences of the platform. Pages registered through this extension will be added after them according to their category information.
 
 \section BlueBerryExtPointsIndex_Workbench_PresFact Presentation Factories
 
 \subsection BlueBerryExtPointsIndex_Workbench_PresFact_Id Identifier
 
 \c org.blueberry.ui.presentationFactories
 
 \subsection BlueBerryExtPointsIndex_Workbench_PresFact_Desc Description
 
 This extension point is used to add presentation factories to the workbench. A presentation factory defines the overall look and feel of the workbench, including how views and editors are presented.
 
 \subsection BlueBerryExtPointsIndex_Workbench_PresFact_ConfMarkup Configuration Markup
 
 \code{.unparsed}
 <!ELEMENT extension (factory*)>
 <!ATTLIST extension
   point CDATA #REQUIRED
   id    CDATA #IMPLIED
   name  CDATA #IMPLIED>
 \endcode
 
 \code{.unparsed}
 <!ELEMENT factory EMPTY>
 <!ATTLIST factory
   class CDATA #REQUIRED
   id    CDATA #REQUIRED
   name  CDATA #REQUIRED>
 \endcode
 
 - <tt>class</tt>: Specify the fully qualified class to be used for the presentation factory. The specified value must implement the interface berry::IPresentationFactory.
 - <tt>id</tt>: a unique name that will be used to identify this presentation factory
 - <tt>name</tt>: a translatable name that can be used to show this presentation factory in the UI
 
 \subsection BlueBerryExtPointsIndex_Workbench_PresFact_Examples Examples
 
 The following is an example of a presentationFactory extension:
 
 \code{.unparsed}
 <extension point="org.blueberry.ui.presentationFactories">
   <factory
     class="berry::ExampleWorkbenchPresentationFactory"/>
 </extension>
 \endcode
 
 \subsection BlueBerryExtPointsIndex_Workbench_PresFact_SupplImpl Supplied Implementation
 
 If a presentation factory is not specified or is missing then the implementation in berry::QtWorkbenchPresentationFactory will be used.
 
 \section BlueBerryExtPointsIndex_Workbench_Services Services
 
 \subsection BlueBerryExtPointsIndex_Workbench_Services_Id Identifier
 
 \c org.blueberry.ui.services
 
 \subsection BlueBerryExtPointsIndex_Workbench_Services_Desc Description
 
 Define service factories so that services can be contributed declaratively and will be available through berry::IServiceLocator::GetService(Class).
 The implementation of \c AbstractServiceFactory must be able to return a global service and multiple child services (if applicable).
 
 \subsection BlueBerryExtPointsIndex_Workbench_Services_ConfMarkup Configuration Markup
 
 \code{.unparsed}
 <!ELEMENT extension (serviceFactory? , sourceProvider?)+>
 <!ATTLIST extension
   point CDATA #REQUIRED
   id    CDATA #IMPLIED
   name  CDATA #IMPLIED>
 \endcode
 
 Contribute services to the workbench.
 
 \code{.unparsed}
 <!ELEMENT serviceFactory (service+)>
 <!ATTLIST serviceFactory
   factoryClass CDATA #REQUIRED>
 \endcode
 
 Match a service interface to a factory that can supply a hierachical implementation of that service.
 
 - <tt>factoryClass</tt>: The factory that extends \c AbstractServiceFactory and can create the implementation for the \c serviceClass.
 
 \code{.unparsed}
 <!ELEMENT service EMPTY>
 <!ATTLIST service
   serviceClass CDATA #IMPLIED>
 \endcode
 
 A service this factory can provide.
 
 - <tt>serviceClass</tt>: The interface that represents a service contract.
 
 \code{.unparsed}
 <!ELEMENT sourceProvider (variable+)>
 <!ATTLIST sourceProvider
   provider CDATA #REQUIRED>
 \endcode
 
 A Source Provider supplies source variables to the IEvaluationService. It can also notify the IEvaluationService when one or more of the variables change.
 
 - <tt>provider</tt>: This class must provide variables and call the appropriate \c fireSourceChanged(*) method when any of the variables change.
 
 \code{.unparsed}
 <!ELEMENT variable EMPTY>
 <!ATTLIST variable
   name          CDATA #REQUIRED
   priorityLevel (workbench|activeContexts|activeShell|activeWorkbenchWindow|activeEditorId|activePartId|activeSite) >
 \endcode
 
 A source variable from this provider.
 A source provider must declare all variables that it provides.
 
 - <tt>name</tt>: The name of a contributed source variable. It is a good practice to prepend the plugin id to the variable name to avoid collisions with other source providers.
 - <tt>priorityLevel</tt>: For conflict resolution used by services like the \c IHandlerService , contributed source variables must assign a priority. workbench is the global default priority. See \c ISources for relative priority information.
 
 \subsection BlueBerryExtPointsIndex_Workbench_Services_Examples Examples
 
 Here is a basic definition:
 
 \code{.unparsed}
 <extension point="org.blueberry.ui.services">
   <serviceFactory factoryClass="my::LevelServiceFactory">
     <service serviceClass="my::ILevelService">
     </service>
   </serviceFactory>
 </extension>
 \endcode
 
 The LevelServiceFactory can return an ILevelService when it is requested from the IServiceLocator:
 
 \code{.unparsed}
 berry::ILevelService::Pointer s = GetSite()->GetService(my::ILevelService::GetStaticClassName());
 std::cout << s->GetLevel();
 \endcode
 
 In this test example, the factory would instantiate three \c ILevelService implementations during the first call to \c GetSite()->GetService(*) . The global one in the workbench, one for the workbench window, and one for the site.
 
 \section BlueBerryExtPointsIndex_Workbench_Tweak Tweaklets
 
 \subsection BlueBerryExtPointsIndex_Workbench_Tweak_Id Identifier
 
 \c org.blueberry.ui.tweaklets
 
 \subsection BlueBerryExtPointsIndex_Workbench_Tweak_Desc Description
 
 Typically, although not required, the value of the \c definition attribute is the fully qualified name without colons of an abstract class defined by the workbench, and the value of the \c implementation attribute is the fully qualified name of a non-abstract class provided by the extending plug-in.
 
 \subsection BlueBerryExtPointsIndex_Workbench_Tweak_ConfMarkup Configuration Markup
 
 \code{.unparsed}
 <!ELEMENT extension (tweaklet)*>
 <!ATTLIST extension
   point CDATA #REQUIRED
   id    CDATA #IMPLIED
   name  CDATA #IMPLIED>
 \endcode
 
 \code{.unparsed}
 <!ELEMENT tweaklet EMPTY>
 <!ATTLIST tweaklet
   id             CDATA #REQUIRED
   name           CDATA #REQUIRED
   description    CDATA #IMPLIED
   definition     CDATA #IMPLIED
   implementation CDATA #IMPLIED>
 \endcode
 
 - <tt>id</tt>: a unique name that will be used to identify this tweaklet
 - <tt>name</tt>: a translatable name that will be used in the UI for this tweaklet
 - <tt>description</tt>: a translatable short description of this tweaklet, to be used in the UI
 - <tt>definition</tt>: an identifier of the tweaklet definition in the workbench, typically a fully qualified type name without colons
 - <tt>implementation</tt>: an identifier of the tweaklet implementation provided by the extender, typically a fully qualified class name
 
 \subsection BlueBerryExtPointsIndex_Workbench_Tweak_SupplImpl Supplied Implementation
 
 Tweaklets are usually used to specialize the workbench for a specific GUI toolkit.
 
 \section BlueBerryExtPointsIndex_Workbench_Views Views
 
 \subsection BlueBerryExtPointsIndex_Workbench_Views_Id Identifier
 
 \c org.blueberry.ui.views
 
 \subsection BlueBerryExtPointsIndex_Workbench_Views_Desc Description
 
 This extension point is used to define additional views for the workbench.
 A view is a visual component within a workbench page.
 It is typically used to navigate a hierarchy of information (like the workspace), open an editor, or display properties for the active editor.
 The user can make a view visible from the Window > Show View menu or close it from the view local title bar.
 
 In order to reduce the visual clutter in the Show View Dialog, views should be grouped using categories.
 
 \subsection BlueBerryExtPointsIndex_Workbench_Views_ConfMarkup Configuration Markup
 
 \code{.unparsed}
 <!ELEMENT extension (category | view | stickyView)*>
 <!ATTLIST extension
   point CDATA #REQUIRED
   id    CDATA #IMPLIED
   name  CDATA #IMPLIED>
 \endcode
 
 - <tt>point</tt>: a fully qualified identifier of the target extension point
 - <tt>id</tt>: an optional identifier of the extension instance
 - <tt>name</tt>: an optional name of the extension instance
 
 \code{.unparsed}
 <!ELEMENT category EMPTY>
 <!ATTLIST category
   id             CDATA #REQUIRED
   name           CDATA #REQUIRED
   parentCategory IDREF #IMPLIED>
 \endcode
 
 - <tt>id</tt>: a unique name that will be used to identify this category
 - <tt>name</tt>: a translatable name that will be used in the UI for this category
 - <tt>parentCategory</tt>: an optional path composed of category IDs separated by '/'. This allows the creation of a hierarchy of categories.
 
 \code{.unparsed}
 <!ELEMENT view (description? , keywordReference*)>
 <!ATTLIST view
   id                 CDATA #REQUIRED
   name               CDATA #REQUIRED
   category           IDREF #IMPLIED
   class              CDATA #REQUIRED
+  enumerate          (true | false)
   icon               CDATA #IMPLIED
   fastViewWidthRatio CDATA #IMPLIED
   allowMultiple      (true | false)
   restorable         (true | false) "true">
 \endcode
 
 - <tt>id</tt>: a unique name that will be used to identify this view
 - <tt>name</tt>: a translatable name that will be used in the UI for this view
 - <tt>category</tt>: an optional attribute that is composed of the category IDs separated by '/'. Each referenced category must be declared in a corresponding category element.
 - <tt>class</tt>: a fully qualified name of the class that implements berry::IViewPart. A common practice is to subclass berry::ViewPart or berry::QtViewPart in order to inherit the default functionality.
+- <tt>enumerate</tt>: a hint if the view should be typically enumerated in the UI.
 - <tt>icon</tt>: a relative name of the icon that will be associated with the view.
 - <tt>fastViewWidthRatio</tt>: the percentage of the width of the workbench that the view will take up as an active fast view. This must be defined as a floating point value and lie between 0.05 and 0.95. If no value is supplied, a default ratio will be used.
 - <tt>allowMultiple</tt>: flag indicating whether this view allows multiple instances to be created using IWorkbenchPage::ShowView(QString id, QString secondaryId). The default is false.
 - <tt>restorable</tt>: flag indicating whether this view allows to be restored upon workbench restart. If set to false, the view will not be open after a workbench restart. The default is true.
 
 \code{.unparsed}
 <!ELEMENT description (#PCDATA)>
 \endcode
 
 An optional subelement whose body should contain text providing a short description of the view.
 
 \code{.unparsed}
 <!ELEMENT stickyView EMPTY>
 <!ATTLIST stickyView
   id        IDREF #REQUIRED
   location  (RIGHT|LEFT|TOP|BOTTOM)
   closeable (true | false)
   moveable  (true | false)>
 \endcoe
 
 A sticky view is a view that will appear by default across all perspectives in a window once it is opened.
 Its initial placement is governemed by the location attribute, but nothing prevents it from being moved or closed by the user.
 Use of this element will only cause a placeholder for the view to be created, it will not show the view.
 Please note that usage of this element should be done with great care and should only be applied to views that truely have a need to live across perspectives.
 
 - <tt>id</tt>: the id of the view to be made sticky.
 - <tt>location</tt>: optional attribute that specifies the location of the sticky view relative to the editor area. If absent, the view will be docked to the right of the editor area.
 - <tt>closeable</tt>: optional attribute that specifies wether the view should be closeable. If absent it will be closeable.
 - <tt>moveable</tt>: optional attribute that specifies wether the view should be moveable. If absent it will be moveable.
 
 \subsection BlueBerryExtPointsIndex_Workbench_Views_Examples Examples
 
 The following is an example of the extension point:
 
 \code{.unparsed}
 <extension point="org.blueberry.ui.views">
   <category
     id="com.xyz.views.XYZviews"
     name="XYZ"/>
   <view
     id="com.xyz.views.XYZView"
     name="XYZ View"
     category="com.xyz.views.XYZviews"
     class="ns::XYZView"
     icon="icons/XYZ.gif"/>
 </extension>
 \endcode
 
 The following is an example of a sticky view declaration:
 
 \code{.unparsed}
 <extension point="org.blueberry.ui.views">
   <stickyView id="com.xyz.views.XYZView" />
 </extension>
 \endcode
 
 \subsection BlueBerryExtPointsIndex_Workbench_Views_SupplImpl Supplied Implementation
 
 The BlueBerry Platform provides a number of standard views.
 From the user point of view, these views are no different from any other view provided by the plug-ins.
 All the views can be shown from the "Show View" submenu of the "Window" menu.
 The position of a view is persistent: it is saved when the view is closed and restored when the view is reopened in a single session.
 The position is also persisted between workbench sessions.
 
 */
diff --git a/Plugins/org.blueberry.ui.qt/plugin.xml b/Plugins/org.blueberry.ui.qt/plugin.xml
index 561a9ec8a7..2856690b5e 100644
--- a/Plugins/org.blueberry.ui.qt/plugin.xml
+++ b/Plugins/org.blueberry.ui.qt/plugin.xml
@@ -1,465 +1,466 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <?BlueBerry version="0.1"?>
 <plugin>
 
    <extension-point id="org.blueberry.ui.commands" name="Commands" schema="schema/commands.exsd"/>
    <extension-point id="org.blueberry.ui.editors" name="Editors" schema="schema/editors.exsd"/>
    <extension-point id="org.blueberry.ui.handlers" name="Handlers" schema="schema/handlers.exsd"/>
    <extension-point id="org.blueberry.ui.intro" name="Introduction Extensions" schema="schema/intro.exsd"/>
    <extension-point id="org.blueberry.ui.preferencePages" name="Preference Pages" schema="schema/preferencePages.exsd"/>
    <extension-point id="org.blueberry.ui.views" name="Views" schema="schema/views.exsd"/>
    <extension-point id="org.blueberry.ui.keywords" name="keywords" schema="schema/keywords.exsd"/>
    <extension-point id="org.blueberry.ui.tweaklets" name="Tweaklets" schema="schema/tweaklets.exsd"/>
    <extension-point id="org.blueberry.ui.perspectives" name="Perspectives" schema="schema/perspectives.exsd"/>
    <extension-point id="org.blueberry.ui.presentationFactories" name="Presentation Factories" schema="schema/presentationFactories.exsd"/>
    <extension-point id="org.blueberry.ui.services" name="Services" schema="schema/services.exsd"/>
    <extension-point id="org.blueberry.ui.perspectiveExtensions" name="Perspective Extensions" schema="schema/perspectiveExtensions.exsd"/>
 
    <extension point="org.blueberry.ui.services">
 
       <serviceFactory factoryClass="berry::WorkbenchSupportFactory">
          <service serviceClass="org.blueberry.ui.IProgressService"/>
          <service serviceClass="org.blueberry.ui.IWorkbenchSiteProgressService"/>
          <service serviceClass="org.blueberry.ui.IPartService"/>
          <service serviceClass="org.blueberry.ui.IPageService"/>
          <service serviceClass="org.blueberry.ui.ISelectionService"/>
       </serviceFactory>
 
       <serviceFactory factoryClass="berry::HandlerServiceFactory">
          <service serviceClass="org.blueberry.ui.IHandlerService"/>
       </serviceFactory>
 
       <serviceFactory factoryClass="berry::EvaluationServiceFactory">
          <service serviceClass="org.blueberry.ui.IEvaluationService"/>
       </serviceFactory>
 <!--
       <serviceFactory factoryClass="berry::ContextServiceFactory">
          <service serviceClass="org.blueberry.ui.IContextService"/>
       </serviceFactory>
 -->
       <serviceFactory factoryClass="berry::CommandServiceFactory">
          <service serviceClass="org.blueberry.ui.ICommandService"/>
       </serviceFactory>
 
       <serviceFactory factoryClass="berry::MenuServiceFactory">
          <service serviceClass="org.blueberry.ui.IMenuService"/>
       </serviceFactory>
 
       <sourceProvider provider="berry::WorkbenchSourceProvider">
          <variable name="selection" priorityLevel="workbench"/>
          <variable name="activeShell" priorityLevel="workbench"/>
          <variable name="activeWorkbenchWindow" priorityLevel="workbench"/>
          <variable name="activeWorkbenchWindowShell" priorityLevel="workbench"/>
          <variable name="activeWorkbenchWindow.isToolbarVisible" priorityLevel="workbench"/>
          <variable name="activeWorkbenchWindow.isPerspectiveBarVisible" priorityLevel="workbench"/>
          <variable name="activeWorkbenchWindow.isSatusLineVisible" priorityLevel="workbench"/>
          <variable name="activeWorkbenchWindow.activePerspective" priorityLevel="workbench"/>
          <variable name="activeEditor" priorityLevel="workbench"/>
          <variable name="activeEditorId" priorityLevel="workbench"/>
          <variable name="activePart" priorityLevel="workbench"/>
          <variable name="activePartId" priorityLevel="workbench"/>
          <variable name="activeSite" priorityLevel="workbench"/>
          <variable name="activeEditorInput" priorityLevel="workbench"/>
       </sourceProvider>
 
    </extension>
 
    <extension point="org.blueberry.ui.commands">
      <category
        name="File"
        description=""
        id="org.blueberry.ui.category.file" />
      <category
        name="Edit"
        description=""
        id="org.blueberry.ui.category.edit" />
      <category
        name="Window"
        description=""
        id="org.blueberry.ui.category.window" />
      <category
        name="Help"
        description=""
        id="org.blueberry.ui.category.help" />
      <category
        name="Views"
        description="Commands for opening views"
        id="org.blueberry.ui.category.views">
      </category>
      <category
        name="Perspectives"
        description="Commands for opening perspectives"
        id="org.blueberry.ui.category.perspectives">
      </category>
 
      <command
         name="Save"
         description="Save the current contents"
         categoryId="org.blueberry.ui.category.file"
         id="org.blueberry.ui.file.save" />
      <!--
      <command
         name="Save"
         description="Save the current contents"
         categoryId="org.blueberry.ui.category.file"
         defaultHandler="berry::SaveHandler"
         id="org.blueberry.ui.file.save" />
      -->
      <command
         categoryId="org.blueberry.ui.category.file"
         defaultHandler="berry::QuitHandler"
         description="Exit the application"
         id="org.blueberry.ui.file.exit"
         name="Exit"/>
      <command
         name="Undo"
         description="Undo the last operation"
         categoryId="org.blueberry.ui.category.edit"
         id="org.blueberry.ui.edit.undo" />
      <command
         name="Redo"
         description="Redo the last operation"
         categoryId="org.blueberry.ui.category.edit"
         id="org.blueberry.ui.edit.redo" />
      <command
         name="Cut"
         description="Cut the selection to the clipboard"
         categoryId="org.blueberry.ui.category.edit"
         id="org.blueberry.ui.edit.cut" />
      <command
         name="Copy"
         description="Copy the selection to the clipboard"
         categoryId="org.blueberry.ui.category.edit"
         id="org.blueberry.ui.edit.copy" />
      <command
         name="Paste"
         description="Paste from the clipboard"
         categoryId="org.blueberry.ui.category.edit"
         id="org.blueberry.ui.edit.paste" />
      <command
         name="Delete"
         description="Delete the selection"
         categoryId="org.blueberry.ui.category.edit"
         id="org.blueberry.ui.edit.delete" />
 
      <command
        name="Help Contents"
        description="Open the help contents"
        categoryId="org.blueberry.ui.category.help"
        defaultHandler="berry::HelpContentsHandler"
        id="org.blueberry.ui.help.helpContents" />
      <!--
      <command
        name="Help Search"
        description="Open the help search"
        categoryId="org.blueberry.ui.category.help"
        defaultHandler="berry::HelpSearchHandler"
        id="org.blueberry.ui.help.helpSearch" />
      -->
      <command
        name="Dynamic Help"
        description="Open the dynamic help"
        categoryId="org.blueberry.ui.category.help"
        defaultHandler="berry::DynamicHelpHandler"
        id="org.blueberry.ui.help.dynamicHelp" />
      <command
        name="Welcome"
        description="Show help for beginning users"
        categoryId="org.blueberry.ui.category.help"
        id="org.blueberry.ui.help.intro" />
      <command
        name="About"
        description="Open the about dialog"
        categoryId="org.blueberry.ui.category.help"
        helpContextId="org.blueberry.ui.about_action_context"
        id="org.blueberry.ui.help.aboutAction" />
      <command
         name="Show View"
         description="Shows a particular view"
         id="org.blueberry.ui.views.showView"
         defaultHandler="berry::ShowViewHandler">
         <commandParameter
           id="org.blueberry.ui.views.showView.viewId"
           name="View"
           values="berry::ViewParameterValues" />
         <commandParameter
           id="org.blueberry.ui.views.showView.secondaryId"
           name="Secondary Id"
           optional="true"/>
      </command>
      <command
         name="Save Perspective As"
         description="Save the current perspective"
         categoryId="org.blueberry.ui.category.window"
         id="org.blueberry.ui.window.savePerspective" />
      <command
         name="Close All Perspectives"
         description="Close all open perspectives"
         categoryId="org.blueberry.ui.category.window"
         id="org.blueberry.ui.window.closeAllPerspectives" />
      <command
         name="Close Perspective"
         description="Close the current perspective"
         categoryId="org.blueberry.ui.category.window"
         id="org.blueberry.ui.window.closePerspective">
         <commandParameter
           id="org.blueberry.ui.window.closePerspective.perspectiveId"
           name="Perspective Id"
           optional="true"
           values="berry::PerspectiveParameterValues">
         </commandParameter>
      </command>
      <command
         name="Reset Perspective"
         description="Reset the current perspective to its default state"
         categoryId="org.blueberry.ui.category.window"
         id="org.blueberry.ui.window.resetPerspective" />
 
      <command
         categoryId="org.blueberry.ui.category.perspectives"
         defaultHandler="berry::ShowPerspectiveHandler"
         description="Show a particular perspective"
         id="org.blueberry.ui.perspectives.showPerspective"
         name="Show Perspective">
         <commandParameter
            id="org.blueberry.ui.perspectives.showPerspective.perspectiveId"
            name="Parameter"
            values="berry::PerspectiveParameterValues">
         </commandParameter>
         <commandParameter
            id="org.blueberry.ui.perspectives.showPerspective.newWindow"
            name="In New Window"
            optional="true">
         </commandParameter>
      </command>
 
      <command
         categoryId="org.blueberry.ui.category.window"
         description="Open the preferences dialog"
         id="org.blueberry.ui.window.preferences"
         name="Preferences">
         <commandParameter
            id="preferencePageId"
            name="Preference Page"
            optional="true"
            values="berry::PreferencePageParameterValues"/>
      </command>
 
      <command
         categoryId="org.blueberry.ui.category.window"
         defaultHandler="berry::OpenInNewWindowHandler"
         description="Open another window"
         id="org.blueberry.ui.window.newWindow"
         name="New Window"/>
      <command
         name="New Editor"
         description="Open another editor on the active editor's input"
         categoryId="org.blueberry.ui.category.window"
         id="org.blueberry.ui.window.newEditor"/>
 
    </extension>
 
   <extension point="org.blueberry.core.expressions.propertyTesters">
     <propertyTester
       class="berry::OpenPerspectivePropertyTester"
       id="org.blueberry.ui.openPerspectivePropertyTester"
       namespace="org.blueberry.ui.workbenchWindow"
       properties="isPerspectiveOpen"
       type="berry::IWorkbenchWindow">
     </propertyTester>
   </extension>
 
    <extension point="org.blueberry.ui.handlers">
      <handler
        class="berry::NewEditorHandler"
        commandId="org.blueberry.ui.window.newEditor">
        <enabledWhen>
          <with variable="activeEditor">
            <instanceof value="berry::IEditorPart"/>
          </with>
        </enabledWhen>
      </handler>
      <handler
        class="berry::SavePerspectiveHandler"
        commandId="org.blueberry.ui.window.savePerspective">
        <enabledWhen>
          <or>
            <with variable="activeWorkbenchWindow">
              <test property="org.blueberry.ui.workbenchWindow.isPerspectiveOpen"/>
            </with>
            <!-- this is a workaround to evaluate the expression -->
            <with variable="activePart">
              <instanceof value="berry::IWorkbenchPart"/>
            </with>
          </or>
        </enabledWhen>
      </handler>
      <handler
        class="berry::CloseAllPerspectivesHandler"
        commandId="org.blueberry.ui.window.closeAllPerspectives">
        <enabledWhen>
          <or>
            <with variable="activeWorkbenchWindow">
              <test property="org.blueberry.ui.workbenchWindow.isPerspectiveOpen"/>
            </with>
            <!-- this is a workaround to evaluate the expression -->
            <with variable="activePart">
              <instanceof value="berry::IWorkbenchPart"/>
            </with>
          </or>
        </enabledWhen>
      </handler>
      <handler
        class="berry::ClosePerspectiveHandler"
        commandId="org.blueberry.ui.window.closePerspective">
        <enabledWhen>
          <or>
            <with variable="activeWorkbenchWindow">
              <test property="org.blueberry.ui.workbenchWindow.isPerspectiveOpen"/>
            </with>
            <!-- this is a workaround to evaluate the expression -->
            <with variable="activePart">
              <instanceof value="berry::IWorkbenchPart"/>
            </with>
          </or>
        </enabledWhen>
      </handler>
      <handler
        class="berry::ResetPerspectiveHandler"
        commandId="org.blueberry.ui.window.resetPerspective">
        <enabledWhen>
          <or>
            <with variable="activeWorkbenchWindow">
              <test property="org.blueberry.ui.workbenchWindow.isPerspectiveOpen"/>
            </with>
            <!-- this is a workaround to evaluate the expression -->
            <with variable="activePart">
              <instanceof value="berry::IWorkbenchPart"/>
            </with>
          </or>
        </enabledWhen>
      </handler>
      <handler
        class="berry::IntroHandler"
        commandId="org.blueberry.ui.help.intro">
        <enabledWhen>
          <or>
            <with variable="activeWorkbenchWindow">
              <test property="org.blueberry.ui.workbenchWindow.isPerspectiveOpen"/>
            </with>
            <!-- this is a workaround to evaluate the expression -->
            <with variable="activePart">
              <instanceof value="berry::IWorkbenchPart"/>
            </with>
          </or>
        </enabledWhen>
      </handler>
      <handler
        class="berry::HelpContentsHandler"
        commandId="org.blueberry.ui.help.helpContents">
        <enabledWhen>
          <or>
            <with variable="org.blueberry.core.runtime.Platform">
              <test property="org.blueberry.core.runtime.pluginState" args="org.blueberry.ui.qt.help" value="STARTING"/>
            </with>
            <with variable="org.blueberry.core.runtime.Platform">
              <test property="org.blueberry.core.runtime.pluginState" args="org.blueberry.ui.qt.help" value="ACTIVE"/>
            </with>
          </or>
        </enabledWhen>
      </handler>
      <handler
        class="berry::DynamicHelpHandler"
        commandId="org.blueberry.ui.help.dynamicHelp">
        <enabledWhen>
          <or>
            <with variable="org.blueberry.core.runtime.Platform">
              <test property="org.blueberry.core.runtime.pluginState" args="org.blueberry.ui.qt.help" value="STARTING"/>
            </with>
            <with variable="org.blueberry.core.runtime.Platform">
              <test property="org.blueberry.core.runtime.pluginState" args="org.blueberry.ui.qt.help" value="ACTIVE"/>
            </with>
          </or>
        </enabledWhen>
      </handler>
    </extension>
 
    <extension point="org.blueberry.ui.views">
       <category
             name="General"
             id="org.blueberry.ui"/>
       <view
             class="berry::ViewIntroAdapterPart"
             category="org.blueberry.ui"
             name="Welcome"
-            id="org.blueberry.ui.internal.introview"/>
+            id="org.blueberry.ui.internal.introview"
+            enumerate="false"/>
       <stickyView
             location="RIGHT"
             id="org.blueberry.ui.internal.introview"/>
    </extension>
 
    <extension point="org.blueberry.ui.editors">
       <editor
             class="berry::EditorIntroAdapterPart"
             name="Welcome"
             id="org.blueberry.ui.internal.introeditor">
       </editor>
    </extension>
 
    <extension point="org.blueberry.ui.tweaklets">
       <tweaklet
          id="org.blueberry.ui.qt.tweaklets.WorkbenchTweaklet"
          name="Qt Workbench Tweaklet"
          description="Qt specific Workbench tweaks"
          definition="org.blueberry.WorkbenchTweaklet"
          implementation="berry::QtWorkbenchTweaklet" />
 
       <tweaklet
          id="org.blueberry.ui.qt.tweaklets.WorkbenchPageTweaklet"
          name="Qt WorkbenchPage Tweaklet"
          description="Qt specific WorkbenchPage tweaks"
          definition="org.blueberry.WorkbenchPageTweaklet"
          implementation="berry::QtWorkbenchPageTweaklet" />
 
       <tweaklet
          id="org.blueberry.ui.qt.tweaklets.GuiWidgetsTweaklet"
          name="Qt Widgets Tweaklet"
          description="Qt specific widget tweaks"
          definition="org.blueberry.GuiWidgetsTweaklet"
          implementation="berry::QtWidgetsTweaklet" />
 
        <tweaklet
          id="org.blueberry.ui.qt.tweaklets.DnDTweaklet"
          name="Qt DnD Tweaklet"
          description="Qt specific DnD tweaks"
          definition="org.blueberry.DnDTweaklet"
          implementation="berry::QtDnDTweaklet" />
 
        <tweaklet
          id="org.blueberry.ui.qt.tweaklets.ImageTweaklet"
          name="Qt Image Tweaklet"
          description="Qt specific image tweaks"
          definition="org.blueberry.ImageTweaklet"
          implementation="berry::QtImageTweaklet" />
 
        <tweaklet
          id="org.blueberry.ui.qt.tweaklets.MessageDialogTweaklet"
          name="Qt Message Dialog Tweaklet"
          description="Qt specific message dialogs"
          definition="org.blueberry.MessageDialogTweaklet"
          implementation="berry::QtMessageDialogTweaklet" />
    </extension>
 
    <extension point="org.blueberry.ui.presentationFactories">
       <factory
             name="Default"
             class="berry::QtWorkbenchPresentationFactory"
             id="org.blueberry.ui.presentations.default">
       </factory>
    </extension>
 
    <extension point="org.blueberry.ui.keywords">
      <keyword id="org.blueberry.ui.style" label="themes skins styles appearance icons search path "/>
      <keyword id="org.blueberry.ui.perspectives" label="open view switch perspectives same window new help research available viewer visualization"/>
    </extension>
 </plugin>
diff --git a/Plugins/org.blueberry.ui.qt/src/berryIViewDescriptor.h b/Plugins/org.blueberry.ui.qt/src/berryIViewDescriptor.h
index 8a0337dcdf..6c2915f053 100644
--- a/Plugins/org.blueberry.ui.qt/src/berryIViewDescriptor.h
+++ b/Plugins/org.blueberry.ui.qt/src/berryIViewDescriptor.h
@@ -1,109 +1,116 @@
 /*============================================================================
 
 The Medical Imaging Interaction Toolkit (MITK)
 
 Copyright (c) German Cancer Research Center (DKFZ)
 All rights reserved.
 
 Use of this source code is governed by a 3-clause BSD license that can be
 found in the LICENSE file.
 
 ============================================================================*/
 
 #ifndef BERRYIVIEWDESCRIPTOR_H_
 #define BERRYIVIEWDESCRIPTOR_H_
 
 #include <org_blueberry_ui_qt_Export.h>
 
 #include "berryIWorkbenchPartDescriptor.h"
 #include "berryIViewPart.h"
 
 #include <berryIConfigurationElement.h>
 #include <berryIAdaptable.h>
 
 namespace berry
 {
 
 /**
  * \ingroup org_blueberry_ui_qt
  *
  * This is a view descriptor. It provides a "description" of a given
  * given view so that the view can later be constructed.
  * <p>
  * The view registry provides facilities to map from an extension
  * to a IViewDescriptor.
  * </p>
  * <p>
  * This interface is not intended to be implemented by clients.
  * </p>
  *
  * @see org.blueberry.ui.IViewRegistry
  */
 struct BERRY_UI_QT IViewDescriptor : public IWorkbenchPartDescriptor, public IAdaptable
 {
 
   berryObjectMacro(berry::IViewDescriptor);
 
   ~IViewDescriptor() override;
 
   /**
    * Creates an instance of the view defined in the descriptor.
    *
    * @return the view part
    * @throws CoreException thrown if there is a problem creating the part
    */
   virtual IViewPart::Pointer CreateView() = 0;
 
   /**
    * Returns a list of ids belonging to keyword reference extensions.
    *
    * The keywords listed in each referenced id can be used to filter
    * this view.
    *
    * @return A list of ids for keyword reference extensions.
    */
   virtual QStringList GetKeywordReferences() const = 0;
 
   /**
    * Returns an array of strings that represent
    * view's category path. This array will be used
    * for hierarchical presentation of the
    * view in places like submenus.
    * @return array of category tokens or null if not specified.
    */
   virtual QStringList GetCategoryPath() const = 0;
 
   /**
    * Returns the description of this view.
    *
    * @return the description
    */
   virtual QString GetDescription() const = 0;
 
 
   /**
    * Returns the descriptor for the icon to show for this view.
    */
   QIcon GetImageDescriptor() const override = 0;
 
 
   /**
    * Returns whether this view allows multiple instances.
    *
    * @return whether this view allows multiple instances
    */
   virtual bool GetAllowMultiple() const = 0;
 
   /**
    * Returns whether this view can be restored upon workbench restart.
    *
-   * @return whether whether this view can be restored upon workbench restart
+   * @return whether this view can be restored upon workbench restart
    */
   virtual bool IsRestorable() const = 0;
 
+  /**
+   * Return whether this view should be considered in enumerations in the UI.
+   *
+   * @return whether this view should be enumerated
+   */
+  virtual bool Enumerate() const = 0;
+
   bool operator==(const Object*) const override = 0;
 };
 
 }
 
 #endif /*BERRYIVIEWDESCRIPTOR_H_*/
diff --git a/Plugins/org.blueberry.ui.qt/src/internal/berryViewDescriptor.cpp b/Plugins/org.blueberry.ui.qt/src/internal/berryViewDescriptor.cpp
index c50c98b456..ae00928af7 100644
--- a/Plugins/org.blueberry.ui.qt/src/internal/berryViewDescriptor.cpp
+++ b/Plugins/org.blueberry.ui.qt/src/internal/berryViewDescriptor.cpp
@@ -1,206 +1,211 @@
 /*============================================================================
 
 The Medical Imaging Interaction Toolkit (MITK)
 
 Copyright (c) German Cancer Research Center (DKFZ)
 All rights reserved.
 
 Use of this source code is governed by a 3-clause BSD license that can be
 found in the LICENSE file.
 
 ============================================================================*/
 
 #include "berryViewDescriptor.h"
 
 #include "berryIConfigurationElement.h"
 #include "berryCoreException.h"
 #include "berryIExtension.h"
 #include "berryIContributor.h"
 #include "berryStatus.h"
 
 #include "berryRegistryReader.h"
 #include "berryWorkbenchRegistryConstants.h"
 
 #include "berryAbstractUICTKPlugin.h"
 #include "handlers/berryIHandlerActivation.h"
 
 namespace berry
 {
 
 ViewDescriptor::ViewDescriptor(const IConfigurationElement::Pointer& e) :
   configElement(e)
 {
   this->LoadFromExtension();
 }
 
 IViewPart::Pointer ViewDescriptor::CreateView()
 {
   IViewPart::Pointer part(configElement->CreateExecutableExtension<IViewPart> (
       WorkbenchRegistryConstants::ATT_CLASS));
   return part;
 }
 
 QStringList ViewDescriptor::GetCategoryPath() const
 {
   return categoryPath;
 }
 
 IConfigurationElement::Pointer ViewDescriptor::GetConfigurationElement() const
 {
   return configElement;
 }
 
 QString ViewDescriptor::GetDescription() const
 {
   return RegistryReader::GetDescription(configElement);
 }
 
 QString ViewDescriptor::GetId() const
 {
   return id;
 }
 
 bool ViewDescriptor::operator==(const Object* o) const
 {
   if (const IViewDescriptor* other = dynamic_cast<const IViewDescriptor*>(o))
   return this->GetId() == other->GetId();
 
   return false;
 }
 
 QIcon ViewDescriptor::GetImageDescriptor() const
 {
   if (!imageDescriptor.isNull())
   {
     return imageDescriptor;
   }
   QString iconName = configElement->GetAttribute(WorkbenchRegistryConstants::ATT_ICON);
   // If the icon attribute was omitted, use the default one
   if (iconName.isEmpty())
   {
     //TODO default image descriptor
     //return PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(ISharedImages.IMG_DEF_VIEW);
     return AbstractUICTKPlugin::GetMissingIcon();
   }
   IExtension::Pointer extension(configElement->GetDeclaringExtension());
   const QString extendingPluginId(extension->GetContributor()->GetName());
   imageDescriptor = AbstractUICTKPlugin::ImageDescriptorFromPlugin(
       extendingPluginId, iconName);
 
   // If the icon attribute was invalid, use the error icon
   if (imageDescriptor.isNull())
   {
     imageDescriptor = AbstractUICTKPlugin::GetMissingIcon();
   }
 
   return imageDescriptor;
 }
 
 QString ViewDescriptor::GetLabel() const
 {
   return configElement->GetAttribute(WorkbenchRegistryConstants::ATT_NAME);
 }
 
 QString ViewDescriptor::GetAccelerator() const
 {
   return configElement->GetAttribute(WorkbenchRegistryConstants::ATT_ACCELERATOR);
 }
 
 bool ViewDescriptor::GetAllowMultiple() const
 {
   return configElement->GetAttribute(WorkbenchRegistryConstants::ATT_ALLOW_MULTIPLE).compare("true", Qt::CaseInsensitive) == 0;
 }
 
 bool ViewDescriptor::IsRestorable() const
 {
   QString str = configElement->GetAttribute(WorkbenchRegistryConstants::ATT_RESTORABLE);
   return str.isNull() ? true : str.compare("true", Qt::CaseInsensitive) == 0;
 }
 
+bool ViewDescriptor::Enumerate() const
+{
+  return configElement->GetAttribute(WorkbenchRegistryConstants::ATT_ENUMERATE).compare("false", Qt::CaseInsensitive) != 0;
+}
+
 Object* ViewDescriptor::GetAdapter(const QString& adapter) const
 {
   if (adapter == qobject_interface_iid<IConfigurationElement*>())
   {
     return GetConfigurationElement().GetPointer();
   }
   return nullptr;
 }
 
 void
 ViewDescriptor::ActivateHandler()
 {
   //TODO ViewDescriptor handler activation
 //  if (!handlerActivation)
 //  {
 //    IHandler::Pointer handler(new ShowViewHandler(this->GetId()));
 //    IHandlerService::Pointer handlerService(
 //        PlatformUI::GetWorkbench()->GetService(IHandlerService::GetManifestName()).Cast<IHandlerService>());
 //    handlerActivation = handlerService
 //    ->ActivateHandler(this->GetId(), handler);
 //  }
 }
 
 void
 ViewDescriptor::DeactivateHandler()
 {
   //TODO ViewDescriptor handler deactivation
 //  if (handlerActivation)
 //  {
 //    IHandlerService::Pointer handlerService(
 //        PlatformUI::GetWorkbench()->GetService(IHandlerService::GetManifestName()).Cast<IHandlerService>());
 //    handlerService->DeactivateHandler(handlerActivation);
 //    handlerActivation = 0;
 //  }
 }
 
 QStringList ViewDescriptor::GetKeywordReferences() const
 {
   QStringList result;
   auto keywordRefs = configElement->GetChildren("keywordReference");
   for (auto keywordRefsIt = keywordRefs.begin();
        keywordRefsIt != keywordRefs.end(); ++keywordRefsIt) // iterate over all refs
   {
     result.push_back((*keywordRefsIt)->GetAttribute("id"));
   }
   return result;
 }
 
 QString ViewDescriptor::GetPluginId() const
 {
   return configElement->GetContributor()->GetName();
 }
 
 QString ViewDescriptor::GetLocalId() const
 {
   return this->GetId();
 }
 
 void ViewDescriptor::LoadFromExtension()
 {
   id = configElement->GetAttribute(WorkbenchRegistryConstants::ATT_ID);
 
   // Sanity check.
   QString name = configElement->GetAttribute(WorkbenchRegistryConstants::ATT_NAME);
   if (name.isEmpty() ||
       RegistryReader::GetClassValue(configElement, WorkbenchRegistryConstants::ATT_CLASS).isEmpty())
   {
     IStatus::Pointer status(new Status(IStatus::ERROR_TYPE, configElement->GetContributor()->GetName(), nullptr,
                                        QString("Invalid extension (missing label or class name): ") + id));
     throw CoreException(status);
   }
 
   QString category = configElement->GetAttribute(WorkbenchRegistryConstants::TAG_CATEGORY);
   if (!category.isEmpty())
   {
     // Parse the path tokens and store them
     foreach (QString pathElement, category.split('/', Qt::SkipEmptyParts))
     {
       if (!pathElement.trimmed().isEmpty())
       {
         categoryPath.push_back(pathElement.trimmed());
       }
     }
   }
 }
 
 } // namespace berry
diff --git a/Plugins/org.blueberry.ui.qt/src/internal/berryViewDescriptor.h b/Plugins/org.blueberry.ui.qt/src/internal/berryViewDescriptor.h
index 4ed4499d67..409fcc9f51 100644
--- a/Plugins/org.blueberry.ui.qt/src/internal/berryViewDescriptor.h
+++ b/Plugins/org.blueberry.ui.qt/src/internal/berryViewDescriptor.h
@@ -1,160 +1,162 @@
 /*============================================================================
 
 The Medical Imaging Interaction Toolkit (MITK)
 
 Copyright (c) German Cancer Research Center (DKFZ)
 All rights reserved.
 
 Use of this source code is governed by a 3-clause BSD license that can be
 found in the LICENSE file.
 
 ============================================================================*/
 
 #ifndef BERRYVIEWDESCRIPTOR_H_
 #define BERRYVIEWDESCRIPTOR_H_
 
 #include "berryIViewPart.h"
 #include "berryIViewDescriptor.h"
 #include "berryIPluginContribution.h"
 
 #include <QStringList>
 #include <QIcon>
 
 namespace berry
 {
 
 struct IConfigurationElement;
 struct IHandlerActivation;
 
 /**
  * \ingroup org_blueberry_ui_internal
  *
  */
 class ViewDescriptor : public IViewDescriptor, public IPluginContribution
 {
 private:
 
   QString id;
   mutable QIcon imageDescriptor;
   IConfigurationElement::Pointer configElement;
   QStringList categoryPath;
 
   /**
    * The activation token returned when activating the show view handler with
    * the workbench.
    */
   SmartPointer<IHandlerActivation> handlerActivation;
 
 public:
 
   berryObjectMacro(ViewDescriptor);
 
   /**
    * Create a new <code>ViewDescriptor</code> for an extension.
    *
    * @param e the configuration element
    * @throws CoreException thrown if there are errors in the configuration
    */
   ViewDescriptor(const SmartPointer<IConfigurationElement>& e);
 
   /* (non-Javadoc)
    * @see org.blueberry.ui.internal.registry.IViewDescriptor#createView()
    */
   IViewPart::Pointer CreateView() override;
 
   /* (non-Javadoc)
    * @see org.blueberry.ui.internal.registry.IViewDescriptor#getCategoryPath()
    */
   QStringList GetCategoryPath() const override;
 
   /**
    * Return the configuration element for this descriptor.
    *
    * @return the configuration element
    */
   IConfigurationElement::Pointer GetConfigurationElement() const;
 
   /* (non-Javadoc)
    * @see org.blueberry.ui.internal.registry.IViewDescriptor#getDescription()
    */
   QString GetDescription() const override;
 
   QStringList GetKeywordReferences() const override;
 
   /* (non-Javadoc)
    * @see org.blueberry.ui.IWorkbenchPartDescriptor#getId()
    */
   QString GetId() const override;
 
   /* (non-Javadoc)
    * @see org.blueberry.ui.IWorkbenchPartDescriptor#getImageDescriptor()
    */
   QIcon GetImageDescriptor() const override;
 
   /* (non-Javadoc)
    * @see org.blueberry.ui.IWorkbenchPartDescriptor#getLabel()
    */
   QString GetLabel() const override;
 
   /**
    * Return the accelerator attribute.
    *
    * @return the accelerator attribute
    */
   QString GetAccelerator() const;
 
   /* (non-Javadoc)
    * @see org.blueberry.ui.internal.registry.IViewDescriptor#getAllowMultiple()
    */
   bool GetAllowMultiple() const override;
 
   /* (non-Javadoc)
    * @see org.eclipse.ui.views.IViewDescriptor#getRestorable()
    */
   bool IsRestorable() const override;
 
+  bool Enumerate() const override;
+
   bool operator==(const Object*) const override;
 
   /**
    * Activates a show view handler for this descriptor. This handler can later
    * be deactivated by calling {@link ViewDescriptor#deactivateHandler()}.
    * This method will only activate the handler if it is not currently active.
    *
    */
   void ActivateHandler();
 
   /**
    * Deactivates the show view handler for this descriptor. This handler was
    * previously activated by calling {@link ViewDescriptor#activateHandler()}.
    * This method will only deactivative the handler if it is currently active.
    *
    */
   void DeactivateHandler();
 
   /*
    * @see IPluginContribution#GetPluginId()
    */
    QString GetPluginId() const override;
 
    /*
     * @see IPluginContribution#GetLocalId()
     */
    QString GetLocalId() const override;
 
 protected:
 
   /* (non-Javadoc)
    * @see IAdaptable#GetAdapterImpl(const std::type_info&)
    */
   Object* GetAdapter(const QString& adapter) const override;
 
 private:
   /**
    * load a view descriptor from the registry.
    */
   void LoadFromExtension();
 };
 
 }
 
 #endif /*BERRYVIEWDESCRIPTOR_H_*/
diff --git a/Plugins/org.blueberry.ui.qt/src/internal/berryWorkbenchRegistryConstants.cpp b/Plugins/org.blueberry.ui.qt/src/internal/berryWorkbenchRegistryConstants.cpp
index 73b8bb6c8c..3413352f3e 100644
--- a/Plugins/org.blueberry.ui.qt/src/internal/berryWorkbenchRegistryConstants.cpp
+++ b/Plugins/org.blueberry.ui.qt/src/internal/berryWorkbenchRegistryConstants.cpp
@@ -1,561 +1,563 @@
 /*============================================================================
 
 The Medical Imaging Interaction Toolkit (MITK)
 
 Copyright (c) German Cancer Research Center (DKFZ)
 All rights reserved.
 
 Use of this source code is governed by a 3-clause BSD license that can be
 found in the LICENSE file.
 
 ============================================================================*/
 
 #include "berryWorkbenchRegistryConstants.h"
 
 #include "berryPlatformUI.h"
 
 namespace berry {
 
   const QString WorkbenchRegistryConstants::ATT_ACCELERATOR = "accelerator"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_ADAPTABLE = "adaptable"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_ADVISORID = "triggerPointAdvisorId"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_ALLOW_LABEL_UPDATE = "allowLabelUpdate";//$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_ALLOW_MULTIPLE = "allowMultiple"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_RESTORABLE = "restorable";
 
   const QString WorkbenchRegistryConstants::ATT_CAN_FINISH_EARLY = "canFinishEarly"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_CATEGORY = "category"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_CATEGORY_ID = "categoryId"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_CLASS = "class"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_CLOSEABLE = "closeable"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_COLORFACTORY = "colorFactory"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_COMMAND = "command";//$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_COMMAND_ID = "commandId"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_CONFIGURATION = "configuration"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_CONTENT_DETECTOR = "contentDetector"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_CONTENT_TYPE_ID = "contentTypeId"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_CONTEXT_ID = "contextId"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_CONTRIBUTOR_CLASS = "contributorClass"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_CONVERTER = "converter"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_DEFAULT = "default";//$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_DEFAULT_HANDLER = "defaultHandler"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_DEFAULTS_TO = "defaultsTo"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_DEFINITION_ID = "definitionId";//$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_DESCRIPTION = "description"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_DESCRIPTION_IMAGE = "descriptionImage"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_DISABLEDICON = "disabledIcon";//$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_ENABLES_FOR = "enablesFor"; //$NON-NLS-1$
 
+  const QString WorkbenchRegistryConstants::ATT_ENUMERATE = "enumerate"; //$NON-NLS-1$
+
   const QString WorkbenchRegistryConstants::ATT_EXTENSIONS = "extensions";//$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_FAST_VIEW_WIDTH_RATIO = "fastViewWidthRatio"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_FILENAMES = "filenames";//$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_FILL_MAJOR = "fillMajor";//$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_FILL_MINOR = "fillMinor";//$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_FIXED = "fixed";//$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_HAS_PAGES = "hasPages"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_HELP_CONTEXT_ID = "helpContextId";//$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_HELP_HREF = "helpHref"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_HOVERICON = "hoverIcon";//$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_ICON = "icon"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_ID = "id"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_IMAGE_STYLE = "imageStyle"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_IS_EDITABLE = "isEditable"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_KEY = "key"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_KEY_CONFIGURATION_ID = "keyConfigurationId"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_KEY_SEQUENCE = "keySequence"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_LABEL = "label"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_LAUNCHER = "launcher";//$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_LIGHTWEIGHT = "lightweight"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_LOCALE = "locale"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_LOCATION = "location"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_MATCHING_STRATEGY = "matchingStrategy"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_MENU_ID = "menuId"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_MENUBAR_PATH = "menubarPath";//$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_MNEMONIC = "mnemonic"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_MINIMIZED = "minimized"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_MOVEABLE = "moveable"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_NAME = "name"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_NAME_FILTER = "nameFilter"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_NODE = "node"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_OBJECTCLASS = "objectClass";//$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_OPTIONAL = "optional"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_OS = "os"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_PARENT = "parent"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_PARENT_CATEGORY = "parentCategory"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_PARENT_ID = "parentId"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_PARENT_SCOPE = "parentScope"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_PATH = "path"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_PLATFORM = "platform"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_POSITION = "position"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_PRESENTATIONID = "presentationId"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_PRODUCTID = "productId"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_PROJECT = "project";//$NON-NLS-1$  /**
 
   const QString WorkbenchRegistryConstants::ATT_PULLDOWN = "pulldown"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_RATIO = "ratio"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_RELATIONSHIP = "relationship";//$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_RELATIVE = "relative";//$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_RELATIVE_TO = "relativeTo"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_RETARGET = "retarget";//$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_RETURN_TYPE_ID = "returnTypeId"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_ROLE = "role";
 
   const QString WorkbenchRegistryConstants::ATT_SCHEME_ID = "schemeId"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_SCOPE = "scope"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_SEPARATORS_VISIBLE = "separatorsVisible"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_SEQUENCE = "sequence"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_SHOW_TITLE = "showTitle";//$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_SINGLETON = "singleton";//$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_SPLASH_ID = "splashId"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_STANDALONE = "standalone";//$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_STATE = "state";//$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_STRING = "string"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_STYLE = "style";//$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_TARGET_ID = "targetID";//$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_TOOLBAR_PATH = "toolbarPath";//$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_TOOLTIP = "tooltip";//$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_TYPE = "type"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_TYPE_ID = "typeId"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_VALUE = "value"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_VISIBLE = "visible";//$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_WS = "ws"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::AUTOGENERATED_PREFIX = "AUTOGEN:::"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::PL_ACCELERATOR_CONFIGURATIONS = "acceleratorConfigurations"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::PL_ACCELERATOR_SCOPES = "acceleratorScopes"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::PL_ACTION_DEFINITIONS = "actionDefinitions"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::PL_ACTION_SET_PART_ASSOCIATIONS = "actionSetPartAssociations"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::PL_ACTION_SETS = "actionSets"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::PL_ACTIVITIES = "activities"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::PL_ACTIVITYSUPPORT = "activitySupport"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::PL_BINDINGS = "bindings"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::PL_BROWSER_SUPPORT = "browserSupport"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::PL_COLOR_DEFINITIONS = "colorDefinitions"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::PL_COMMAND_IMAGES = "commandImages"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::PL_COMMANDS = "commands"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::PL_CONTEXTS = "contexts"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::PL_DECORATORS = "decorators"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::PL_DROP_ACTIONS = "dropActions"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::PL_EDITOR = "editors"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::PL_EDITOR_ACTIONS = "editorActions"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::PL_ELEMENT_FACTORY = "elementFactories"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::PL_ENCODINGS = "encodings"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::PL_EXPORT = "exportWizards"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::PL_FONT_DEFINITIONS = "fontDefinitions"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::PL_HANDLERS = "handlers"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::PL_HELPSUPPORT = "helpSupport"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::PL_IMPORT = "importWizards"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::PL_INTRO = "intro"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::PL_KEYWORDS = "keywords"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::PL_MENUS = "menus"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::PL_MENU_CONTRIBUTION = "menuContribution"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::PL_NEW = "newWizards"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::PL_PERSPECTIVE_EXTENSIONS = "perspectiveExtensions"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::PL_PERSPECTIVES = "perspectives"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::PL_POPUP_MENU = "popupMenus"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::PL_PREFERENCE_TRANSFER = "preferenceTransfer"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::PL_PREFERENCES = "preferencePages"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::PL_PRESENTATION_FACTORIES = "presentationFactories"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::PL_PROPERTY_PAGES = "propertyPages"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::PL_STARTUP = "startup"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::PL_SPLASH_HANDLERS = "splashHandlers"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::PL_SYSTEM_SUMMARY_SECTIONS = "systemSummarySections"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::PL_THEMES = "themes"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::PL_VIEW_ACTIONS = "viewActions"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::PL_VIEWS = "views"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::PL_WORKINGSETS = "workingSets"; //$NON-NLS-1$
 
 //  const QString WorkbenchRegistryConstants::EXTENSION_ACCELERATOR_CONFIGURATIONS = PlatformUI::PLUGIN_ID
 //      + '.' + PL_ACCELERATOR_CONFIGURATIONS;
 //
 //  const QString WorkbenchRegistryConstants::EXTENSION_ACCELERATOR_SCOPES = PlatformUI::PLUGIN_ID
 //      + '.' + PL_ACCELERATOR_SCOPES;
 
   const QString WorkbenchRegistryConstants::EXTENSION_ACTION_DEFINITIONS = PlatformUI::PLUGIN_ID()
       + '.' + PL_ACTION_DEFINITIONS;
 
 //  const QString WorkbenchRegistryConstants::EXTENSION_ACTION_SETS = PlatformUI::PLUGIN_ID
 //      + '.' + WorkbenchRegistryConstants::PL_ACTION_SETS;
 //
 //  const QString WorkbenchRegistryConstants::EXTENSION_BINDINGS = PlatformUI::PLUGIN_ID + '.'
 //      + PL_BINDINGS;
 //
 //  const QString WorkbenchRegistryConstants::EXTENSION_COMMAND_IMAGES = PlatformUI::PLUGIN_ID
 //      + '.' + PL_COMMAND_IMAGES;
 
   const QString WorkbenchRegistryConstants::EXTENSION_COMMANDS = PlatformUI::PLUGIN_ID() + '.'
       + PL_COMMANDS;
 
 //  const QString WorkbenchRegistryConstants::EXTENSION_CONTEXTS = PlatformUI::PLUGIN_ID + '.'
 //      + PL_CONTEXTS;
 //
 //  const QString WorkbenchRegistryConstants::EXTENSION_EDITOR_ACTIONS = PlatformUI::PLUGIN_ID
 //      + '.' + PL_EDITOR_ACTIONS;
 
   const QString WorkbenchRegistryConstants::EXTENSION_HANDLERS = PlatformUI::PLUGIN_ID() + '.'
       + PL_HANDLERS;
 
   const QString WorkbenchRegistryConstants::EXTENSION_MENUS = PlatformUI::PLUGIN_ID() + '.'
       + PL_MENUS;
 
   const QString WorkbenchRegistryConstants::COMMON_MENU_ADDITIONS = PlatformUI::PLUGIN_ID() + '.'
       + PL_MENUS + '2';
 
   const QString WorkbenchRegistryConstants::EXTENSION_POPUP_MENUS = PlatformUI::PLUGIN_ID()
       + '.' + PL_POPUP_MENU;
 
   const QString WorkbenchRegistryConstants::EXTENSION_VIEW_ACTIONS = PlatformUI::PLUGIN_ID()
       + '.' + PL_VIEW_ACTIONS;
 
   const QString WorkbenchRegistryConstants::POSITION_AFTER = "after"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::POSITION_BEFORE = "before"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::POSITION_END = "end"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::POSITION_START = "start"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::STYLE_PULLDOWN = "pulldown"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::STYLE_RADIO = "radio"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::STYLE_TOGGLE = "toggle"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_ACCELERATOR_CONFIGURATION = "acceleratorConfiguration"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_ACCELERATOR_SCOPE = "acceleratorScope"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_ACTION = "action"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_ACTION_DEFINITION = "actionDefinition"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_ACTION_SET = "actionSet";//$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_ACTION_SET_PART_ASSOCIATION = "actionSetPartAssociation";//$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_ACTIVE_KEY_CONFIGURATION = "activeKeyConfiguration"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_ACTIVE_WHEN = "activeWhen"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_ACTIVITY_IMAGE_BINDING = "activityImageBinding"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_ADVISORPRODUCTBINDING = "triggerPointAdvisorProductBinding"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_BAR = "bar"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_CATEGORY = "category";//$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_CATEGORY_IMAGE_BINDING = "categoryImageBinding"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_CATEGORYDEFINITION = "themeElementCategory"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_CATEGORYPRESENTATIONBINDING = "categoryPresentationBinding"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_CLASS = ATT_CLASS;
 
   const QString WorkbenchRegistryConstants::TAG_COLORDEFINITION = "colorDefinition"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_COLOROVERRIDE = "colorOverride"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_COLORVALUE = "colorValue"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_COMMAND = "command"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_COMMAND_PARAMETER = "commandParameter"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_COMMAND_PARAMETER_TYPE = "commandParameterType"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_CONTENT_TYPE_BINDING = "contentTypeBinding"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_CONTEXT = "context"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_DATA = "data"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_DEFAULT_HANDLER = ATT_DEFAULT_HANDLER;
 
   const QString WorkbenchRegistryConstants::TAG_DESCRIPTION = "description"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_DYNAMIC = "dynamic"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_EDITOR = "editor";//$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_EDITOR_CONTRIBUTION = "editorContribution"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_ENABLED_WHEN = "enabledWhen"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_ENABLEMENT = "enablement"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_ENTRY = "entry"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_FILTER = "filter"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_FONTDEFINITION = "fontDefinition"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_FONTOVERRIDE = "fontOverride"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_FONTVALUE = "fontValue"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_GROUP = "group"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_GROUP_MARKER = "groupMarker"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_HANDLER = "handler"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_HANDLER_SUBMISSION = "handlerSubmission"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_HINT = "hint"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_IMAGE = "image"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_KEY = "key"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_KEY_BINDING = "keyBinding"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_KEY_CONFIGURATION = "keyConfiguration"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_LOCATION = "location"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_LOCATION_URI = "locationURI"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_LAYOUT = "layout"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_MAPPING = "mapping"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_MENU = "menu"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_NEW_WIZARD_SHORTCUT = "newWizardShortcut";//$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_OBJECT_CONTRIBUTION = "objectContribution";//$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_ORDER = "order"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_PARAMETER = "parameter"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_PART = "part";//$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_PERSP_SHORTCUT = "perspectiveShortcut";//$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_PERSPECTIVE = "perspective";//$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_PERSPECTIVE_EXTENSION = "perspectiveExtension";//$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_PRIMARYWIZARD = "primaryWizard"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_REFERENCE = "reference"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_SCHEME = "scheme"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_SCOPE = "scope"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_SELECTION = "selection"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_SEPARATOR = "separator"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_SETTINGS_TRANSFER = "settingsTransfer"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_SHOW_IN_PART = "showInPart";//$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_STATE = "state"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_SPLASH_HANDLER = "splashHandler"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_SPLASH_HANDLER_PRODUCT_BINDING = "splashHandlerProductBinding"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_STICKYVIEW = "stickyView";//$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_SUPPORT = "support"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_THEME = "theme";//$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_TRANSFER = "transfer";//$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_TRIGGERPOINT = "triggerPoint"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_TRIGGERPOINTADVISOR = "triggerPointAdvisor"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_VIEW = "view";//$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_VIEW_SHORTCUT = "viewShortcut";//$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_VIEW_CONTRIBUTION = "viewContribution"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_VIEWER_CONTRIBUTION = "viewerContribution"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_VISIBILITY = "visibility"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_VISIBLE_WHEN = "visibleWhen"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_WIDGET = "widget"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_CONTROL = "control"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_WIZARD = "wizard";//$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_WORKING_SET = "workingSet"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TYPE_GROUP = "group"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TYPE_ITEM = "item"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TYPE_MENU = "menu"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TYPE_WIDGET = "widget"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_TOOLBAR = "toolbar"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_SERVICE_FACTORY = "serviceFactory"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_SERVICE = "service"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATTR_FACTORY_CLASS = "factoryClass"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATTR_SERVICE_CLASS = "serviceClass"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_SOURCE_PROVIDER = "sourceProvider"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATTR_PROVIDER = "provider"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::TAG_VARIABLE = "variable"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_PRIORITY_LEVEL = "priorityLevel"; //$NON-NLS-1$
 
   const QString WorkbenchRegistryConstants::ATT_MODE = "mode";
 
 } // namespace berry
diff --git a/Plugins/org.blueberry.ui.qt/src/internal/berryWorkbenchRegistryConstants.h b/Plugins/org.blueberry.ui.qt/src/internal/berryWorkbenchRegistryConstants.h
index 18201ee809..3dd5a27534 100644
--- a/Plugins/org.blueberry.ui.qt/src/internal/berryWorkbenchRegistryConstants.h
+++ b/Plugins/org.blueberry.ui.qt/src/internal/berryWorkbenchRegistryConstants.h
@@ -1,1318 +1,1323 @@
 /*============================================================================
 
 The Medical Imaging Interaction Toolkit (MITK)
 
 Copyright (c) German Cancer Research Center (DKFZ)
 All rights reserved.
 
 Use of this source code is governed by a 3-clause BSD license that can be
 found in the LICENSE file.
 
 ============================================================================*/
 
 #ifndef __BERRY_WORKBENCH_REGISTRY_CONSTANTS__
 #define __BERRY_WORKBENCH_REGISTRY_CONSTANTS__
 
 #include <QString>
 
 namespace berry {
 
 /**
  * \ingroup org_blueberry_ui_internal
  *
  * Interface containing various registry constants (tag and attribute names).
  *
  */
 struct WorkbenchRegistryConstants {
 
   /**
    * Accelerator attribute. Value <code>accelerator</code>.
    */
   static const QString ATT_ACCELERATOR; // "accelerator";
 
   /**
    * Adaptable attribute. Value <code>adaptable</code>.
    */
   static const QString ATT_ADAPTABLE; // "adaptable";
 
   /**
    * Advisor id attribute. Value <code>triggerPointAdvisorId</code>.
    */
   static const QString ATT_ADVISORID; // "triggerPointAdvisorId";
 
   /**
    * Allow label update attribute. Value <code>allowLabelUpdate</code>.
    */
   static const QString ATT_ALLOW_LABEL_UPDATE; // "allowLabelUpdate";
 
   /**
    * View multiple attribute. Value <code>allowMultiple</code>.
    */
   static const QString ATT_ALLOW_MULTIPLE; // "allowMultiple";
 
   /**
    * Attribute that specifies whether a view gets restored upon workbench restart. Value <code>restorable</code>.
    */
   static const QString ATT_RESTORABLE; // = "restorable";
 
   /**
    * Attribute that specifies whether a wizard is immediately capable of
    * finishing. Value <code>canFinishEarly</code>.
    */
   static const QString ATT_CAN_FINISH_EARLY; // "canFinishEarly";
 
   /**
    * The name of the category attribute, which appears on a command
    * definition.
    */
   static const QString ATT_CATEGORY; // "category";
 
   /**
    * Category id attribute. Value <code>categoryId</code>.
    */
   static const QString ATT_CATEGORY_ID; // "categoryId";
 
   /**
    * Class attribute. Value <code>class</code>.
    */
   static const QString ATT_CLASS; // "class";
 
   /**
    * Sticky view closable attribute. Value <code>closable</code>.
    */
   static const QString ATT_CLOSEABLE; // "closeable";
 
   /**
    * Color factory attribute. Value <code>colorFactory</code>.
    */
   static const QString ATT_COLORFACTORY; // "colorFactory";
 
   /**
    * Editor command attribute. Value <code>command</code>.
    */
   static const QString ATT_COMMAND; // "command";
 
   /**
    * The name of the attribute storing the command id.
    */
   static const QString ATT_COMMAND_ID; // "commandId";
 
   /**
    * The name of the configuration attribute storing the scheme id for a
    * binding.
    */
   static const QString ATT_CONFIGURATION; // "configuration";
 
   /**
    * Intro content detector class attribute (optional). Value <code>contentDetector</code>.
    */
   static const QString ATT_CONTENT_DETECTOR; // "contentDetector";
 
   /**
    * Editor content type id binding attribute. Value
    * <code>contentTypeId</code>.
    */
   static const QString ATT_CONTENT_TYPE_ID; // "contentTypeId";
 
   /**
    * The name of the attribute storing the context id for a binding.
    */
   static const QString ATT_CONTEXT_ID; // "contextId";
 
   /**
    * Editor contributor class attribute. Value <code>contributorClass</code>.
    */
   static const QString ATT_CONTRIBUTOR_CLASS; // "contributorClass";
 
   /**
    * The name of the attribute storing the IParameterValueConverter for
    * a commandParameterType.
    */
   static const QString ATT_CONVERTER; // "converter";
 
   /**
    * Perspective default attribute. Value <code>default</code>.
    */
   static const QString ATT_DEFAULT; // "default";
 
   /**
    * The name of the default handler attribute, which appears on a command
    * definition.
    */
   static const QString ATT_DEFAULT_HANDLER; // "defaultHandler";
 
   /**
    * Defaults-to attribute. Value <code>defaultsTo</code>.
    */
   static const QString ATT_DEFAULTS_TO; // "defaultsTo";
 
   /**
    * Action definition id attribute. Value <code>definitionId</code>.
    */
   static const QString ATT_DEFINITION_ID; // "definitionId";
 
   /**
    * The name of the description attribute, which appears on named handle
    * objects.
    */
   static const QString ATT_DESCRIPTION; // "description";
 
   /**
    * Description image attribute. Value <code>descriptionImage</code>.
    */
   static const QString ATT_DESCRIPTION_IMAGE; // "descriptionImage";
 
   /**
    * Disabled icon attribute. Value <code>disabledIcon</code>.
    */
   static const QString ATT_DISABLEDICON; // "disabledIcon";
 
   /**
    * Enables-for attribute. Value <code>enablesFor</code>.
    */
   static const QString ATT_ENABLES_FOR; // "enablesFor";
 
+  /**
+   * Enumerate attribute. Value <code>enumerate</code>.
+   */
+  static const QString ATT_ENUMERATE; // "enumerate";
+
   /**
    * Editor extensions attribute. Value <code>extensions</code>.
    */
   static const QString ATT_EXTENSIONS; // "extensions";
 
   /**
    * View ratio attribute. Value <code>fastViewWidthRatio</code>.
    */
   static const QString ATT_FAST_VIEW_WIDTH_RATIO; // "fastViewWidthRatio";
 
   /**
    * Editor filenames attribute. Value <code>filenames</code>.
    */
   static const QString ATT_FILENAMES; // "filenames";
 
   /**
    * Trim fill major attribute. Value <code>fillMajor</code>.
    */
   static const QString ATT_FILL_MAJOR; // "fillMajor";
 
   /**
    * Trim fill minor attribute. Value <code>fillMinor</code>.
    */
   static const QString ATT_FILL_MINOR; // "fillMinor";
 
   /**
    * Perspective fixed attribute. Value <code>fixed</code>.
    */
   static const QString ATT_FIXED; // "fixed";
 
   /**
    * Attribute that specifies whether a wizard has any pages. Value
    * <code>hasPages</code>.
    */
   static const QString ATT_HAS_PAGES; // "hasPages";
 
   /**
    * Help context id attribute. Value <code>helpContextId</code>.
    */
   static const QString ATT_HELP_CONTEXT_ID; // "helpContextId";
 
   /**
    * Help url attribute. Value <code>helpHref</code>.
    */
   static const QString ATT_HELP_HREF; // "helpHref";
 
   /**
    * Hover icon attribute. Value <code>hoverIcon</code>.
    */
   static const QString ATT_HOVERICON; // "hoverIcon";
 
   /**
    * Icon attribute. Value <code>icon</code>.
    */
   static const QString ATT_ICON; // "icon";
 
   /**
    * Id attribute. Value <code>id</code>.
    */
   static const QString ATT_ID; // "id";
 
   /**
    * The name of the image style attribute, which is used on location elements
    * in the menus extension point.
    */
   static const QString ATT_IMAGE_STYLE; // "imageStyle";
 
   /**
    * Is-editable attribute. Value <code>isEditable</code>.
    */
   static const QString ATT_IS_EDITABLE; // "isEditable";
 
   /**
    * Keys attribute. Value <code>keys</code>.
    */
   static const QString ATT_KEY; // "key";
 
   /**
    * The name of the attribute storing the identifier for the active key
    * configuration identifier. This provides legacy support for the
    * <code>activeKeyConfiguration</code> element in the commands extension
    * point.
    */
   static const QString ATT_KEY_CONFIGURATION_ID; // "keyConfigurationId";
 
   /**
    * The name of the attribute storing the trigger sequence for a binding.
    * This is called a 'keySequence' for legacy reasons.
    */
   static const QString ATT_KEY_SEQUENCE; // "keySequence";
 
   /**
    * Label attribute. Value <code>label</code>.
    */
   static const QString ATT_LABEL; // "label";
 
   /**
    * Editor launcher attribute. Value <code>launcher</code>.
    */
   static const QString ATT_LAUNCHER; // "launcher";
 
   /**
    * Lightweight decorator tag. Value <code>lightweight</code>.
    */
   static const QString ATT_LIGHTWEIGHT; // "lightweight";
 
   /**
    * The name of the attribute storing the locale for a binding.
    */
   static const QString ATT_LOCALE; // "locale";
 
   /**
    * Sticky view location attribute. Value <code>location</code>.
    */
   static const QString ATT_LOCATION; // "location";
 
   /**
    * Editor management strategy attribute. Value <code>matchingStrategy</code>.
    */
   static const QString ATT_MATCHING_STRATEGY; // "matchingStrategy";
 
   /**
    * The name of the menu identifier attribute, which appears on items.
    */
   static const QString ATT_MENU_ID; // "menuId";
 
   /**
    * Menubar path attribute. Value <code>menubarPath</code>.
    */
   static const QString ATT_MENUBAR_PATH; // "menubarPath";
 
   /**
    * The name of the mnemonic attribute, which appears on locations.
    */
   static const QString ATT_MNEMONIC; // "mnemonic";
 
   /**
    * The name of the minimized attribute, which appears
    * when adding a view in a perspectiveExtension.
    */
   static const QString ATT_MINIMIZED; // "minimized";
 
   /**
    * Sticky view moveable attribute. Value <code>moveable</code>.
    */
   static const QString ATT_MOVEABLE; // "moveable";
 
   /**
    * Name attribute. Value <code>name</code>.
    */
   static const QString ATT_NAME; // "name";
 
   /**
    * Name filter attribute. Value <code>nameFilter</code>.
    */
   static const QString ATT_NAME_FILTER; // "nameFilter";
 
   /**
    * Node attribute. Value <code>node</code>.
    */
   static const QString ATT_NODE; // "node";
 
   /**
    * Object class attribute. Value <code>objectClass</code>.
    */
   static const QString ATT_OBJECTCLASS; // "objectClass";
 
   /**
    * The name of the optional attribute, which appears on parameter
    * definitions.
    */
   static const QString ATT_OPTIONAL; // "optional";
 
   /**
    * Operating system attribute. Value <code>os</code>.
    */
   static const QString ATT_OS; // "os";
 
   /**
    * The name of the deprecated parent attribute, which appears on scheme
    * definitions.
    */
   static const QString ATT_PARENT; // "parent";
 
   /**
    * View parent category attribute. Value <code>parentCategory</code>.
    */
   static const QString ATT_PARENT_CATEGORY; // "parentCategory";
 
   /**
    * Parent id attribute. Value <code>parentId</code>.
    */
   static const QString ATT_PARENT_ID; // "parentId";
 
   /**
    * The name of the deprecated parent scope attribute, which appears on
    * contexts definitions.
    */
   static const QString ATT_PARENT_SCOPE; // "parentScope";
 
   /**
    * Path attribute. Value <code>path</code>.
    */
   static const QString ATT_PATH; // "path";
 
   /**
    * The name of the attribute storing the platform for a binding.
    */
   static const QString ATT_PLATFORM; // "platform";
 
   /**
    * The name of the position attribute, which appears on order elements.
    */
   static const QString ATT_POSITION; // "position";
 
   /**
    * Presentation id attribute. Value <code>presentationId</code>.
    */
   static const QString ATT_PRESENTATIONID; // "presentationId";
 
   /**
    * Product id attribute. Value <code>productId</code>.
    */
   static const QString ATT_PRODUCTID; // "productId";
 
   /**
    * Project attribute. Value <code>project</code>.
    */
   // @issue project-specific attribute and behavior
   static const QString ATT_PROJECT; // "project";  /**
 
   /**
    * The name of the pulldown attribute, which indicates whether the class is
    * a pulldown delegate.
    */
   static const QString ATT_PULLDOWN; // "pulldown";
 
   /**
    * View ratio attribute. Value <code>ratio</code>.
    */
   static const QString ATT_RATIO; // "ratio";
 
   /**
    * Relationship attribute. Value <code>relationship</code>.
    */
   static const QString ATT_RELATIONSHIP; // "relationship";
 
   /**
    * Relative attribute. Value <code>relative</code>.
    */
   static const QString ATT_RELATIVE; // "relative";
 
   /**
    * The name of the relativeTo attribute, which appears on order elements.
    */
   static const QString ATT_RELATIVE_TO; // "relativeTo";
 
   /**
    * Retarget attribute. Value <code>retarget</code>.
    */
   static const QString ATT_RETARGET; // "retarget";
 
   /**
    * The name of the returnTypeId attribute, which appears on command
    * elements.
    */
   static const QString ATT_RETURN_TYPE_ID; // "returnTypeId";
 
   /**
    * Role attribute. Value <code>role</code>.
    */
   static const QString ATT_ROLE; // "role";
 
   /**
    * The name of the attribute storing the identifier for the active scheme.
    * This is called a 'keyConfigurationId' for legacy reasons.
    */
   static const QString ATT_SCHEME_ID; // "schemeId";
 
   /**
    * Scope attribute. Value <code>scope</code>.
    */
   static const QString ATT_SCOPE; // "scope";
 
   /**
    * The name of the separatorsVisible attribute, which appears on group
    * elements.
    */
   static const QString ATT_SEPARATORS_VISIBLE; // "separatorsVisible";
 
   /**
    * The name of the sequence attribute for a key binding.
    */
   static const QString ATT_SEQUENCE; // "sequence";
 
   /**
    * Show title attribute. Value <code>showTitle</code>.
    */
   static const QString ATT_SHOW_TITLE; // "showTitle";
 
   /**
    * Perspective singleton attribute. Value <code>singleton</code>.
    */
   static const QString ATT_SINGLETON; // "singleton";
 
   /**
    * Splash id attribute.  Value <code>splashId</code>.
    *
    * @since 3.3
    */
   static const QString ATT_SPLASH_ID; // "splashId";
 
   /**
    * Standalone attribute. Value <code>standalone</code>.
    */
   static const QString ATT_STANDALONE; // "standalone";
 
   /**
    * Action state attribute. Value <code>state</code>.
    */
   static const QString ATT_STATE; // "state";
 
   /**
    * The name of the string attribute (key sequence) for a binding in the
    * commands extension point.
    */
   static const QString ATT_STRING; // "string";
 
   /**
    * Action style attribute. Value <code>style</code>.
    */
   static const QString ATT_STYLE; // "style";
 
   /**
    * Target attribute. Value <code>targetID</code>.
    */
   static const QString ATT_TARGET_ID; // "targetID";
 
   /**
    * Toolbar path attribute. Value <code>toolbarPath</code>.
    */
   static const QString ATT_TOOLBAR_PATH; // "toolbarPath";
 
   /**
    * Tooltip attribute. Value <code>tooltip</code>.
    */
   static const QString ATT_TOOLTIP; // "tooltip";
 
   /**
    * The name of the type attribute, which appears on bar elements and
    * commandParameterType elements.
    */
   static const QString ATT_TYPE; // "type";
 
   /**
    * The name of the typeId attribute, which appears on commandParameter
    * elements.
    */
   static const QString ATT_TYPE_ID; // "typeId";
 
   /**
    * Value attribute. Value <code>value</code>.
    */
   static const QString ATT_VALUE; // "value";
 
   /**
    * Visible attribute. Value <code>visible</code>.
    */
   // ATT_VISIBLE added by dan_rubel@instantiations.com
   static const QString ATT_VISIBLE; // "visible";
 
   /**
    * Windowing system attribute. Value <code>ws</code>.
    */
   static const QString ATT_WS; // "ws";
 
   /**
    * The prefix that all auto-generated identifiers start with. This makes the
    * identifier recognizable as auto-generated, and further helps ensure that
    * it does not conflict with existing identifiers.
    */
   static const QString AUTOGENERATED_PREFIX; // "AUTOGEN:::";
 
   /**
    * The legacy extension point (2.1.x and earlier) for specifying a key
    * binding scheme.
    *
    * @since 3.1.1
    */
   static const QString PL_ACCELERATOR_CONFIGURATIONS; // "acceleratorConfigurations";
 
   /**
    * The legacy extension point (2.1.x and earlier) for specifying a context.
    *
    * @since 3.1.1
    */
   static const QString PL_ACCELERATOR_SCOPES; // "acceleratorScopes";
 
   /**
    * The legacy extension point (2.1.x and earlier) for specifying a command.
    *
    * @since 3.1.1
    */
   static const QString PL_ACTION_DEFINITIONS; // "actionDefinitions";
 
   static const QString PL_ACTION_SET_PART_ASSOCIATIONS; // "actionSetPartAssociations";
 
   static const QString PL_ACTION_SETS; // "actionSets";
 
   static const QString PL_ACTIVITIES; // "activities";
 
   static const QString PL_ACTIVITYSUPPORT; // "activitySupport";
 
   /**
    * The extension point (3.1 and later) for specifying bindings, such as
    * keyboard shortcuts.
    *
    * @since 3.1.1
    */
   static const QString PL_BINDINGS; // "bindings";
 
   static const QString PL_BROWSER_SUPPORT; // "browserSupport";
 
   static const QString PL_COLOR_DEFINITIONS; // "colorDefinitions";
 
   /**
    * The extension point (3.2 and later) for associating images with commands.
    *
    * @since 3.2
    */
   static const QString PL_COMMAND_IMAGES; // "commandImages";
 
   /**
    * The extension point (2.1.x and later) for specifying a command. A lot of
    * other things have appeared first in this extension point and then been
    * moved to their own extension point.
    *
    * @since 3.1.1
    */
   static const QString PL_COMMANDS; // "commands";
 
   /**
    * The extension point (3.0 and later) for specifying a context.
    *
    * @since 3.1.1
    */
   static const QString PL_CONTEXTS; // "contexts";
 
   static const QString PL_DECORATORS; // "decorators";
 
   static const QString PL_DROP_ACTIONS; // "dropActions";
 
   static const QString PL_EDITOR; // "editors";
 
   static const QString PL_EDITOR_ACTIONS; // "editorActions";
 
   static const QString PL_ELEMENT_FACTORY; // "elementFactories";
 
   /**
    * The extension point for encoding definitions.
    */
   static const QString PL_ENCODINGS; // "encodings";
 
   static const QString PL_EXPORT; // "exportWizards";
 
   static const QString PL_FONT_DEFINITIONS; // "fontDefinitions";
 
   /**
    * The extension point (3.1 and later) for specifying handlers.
    *
    * @since 3.1.1
    */
   static const QString PL_HANDLERS; // "handlers";
 
   static const QString PL_HELPSUPPORT; // "helpSupport";
 
   static const QString PL_IMPORT; // "importWizards";
 
   static const QString PL_INTRO; // "intro";
 
   /**
    * The extension point for keyword definitions.
    *
    * @since 3.1
    */
   static const QString PL_KEYWORDS; // "keywords";
 
   /**
    * The extension point (3.2 and later) for specifying menu contributions.
    *
    * @since 3.2
    */
   static const QString PL_MENUS; // "menus";
 
   /**
    * The extension point (3.3 and later) for specifying menu contributions.
    *
    * @since 3.3
    */
   static const QString PL_MENU_CONTRIBUTION; // "menuContribution";
 
   static const QString PL_NEW; // "newWizards";
 
   static const QString PL_PERSPECTIVE_EXTENSIONS; // "perspectiveExtensions";
 
   static const QString PL_PERSPECTIVES; // "perspectives";
 
   static const QString PL_POPUP_MENU; // "popupMenus";
 
   static const QString PL_PREFERENCE_TRANSFER; // "preferenceTransfer";
 
   static const QString PL_PREFERENCES; // "preferencePages";
 
   static const QString PL_PRESENTATION_FACTORIES; // "presentationFactories";
 
   static const QString PL_PROPERTY_PAGES; // "propertyPages";
 
   static const QString PL_STARTUP; // "startup";
 
   /**
    * @since 3.3
    */
   static const QString PL_SPLASH_HANDLERS; // "splashHandlers";
 
   static const QString PL_SYSTEM_SUMMARY_SECTIONS; // "systemSummarySections";
 
   static const QString PL_THEMES; // "themes";
 
   static const QString PL_VIEW_ACTIONS; // "viewActions";
 
   static const QString PL_VIEWS; // "views";
 
   static const QString PL_WORKINGSETS; // "workingSets";
 
   /**
    * The name of the deprecated accelerator configurations extension point.
    */
   static const QString EXTENSION_ACCELERATOR_CONFIGURATIONS;
 
   /**
    * The name of the accelerator scopes extension point.
    */
   static const QString EXTENSION_ACCELERATOR_SCOPES;
 
   /**
    * The name of the action definitions extension point.
    */
   static const QString EXTENSION_ACTION_DEFINITIONS;
 
   /**
    * The name of the <code>org.blueberry.ui.actionSets</code> extension point.
    */
   static const QString EXTENSION_ACTION_SETS;
 
   /**
    * The name of the bindings extension point.
    */
   static const QString EXTENSION_BINDINGS;
 
   /**
    * The name of the commands extension point.
    */
   static const QString EXTENSION_COMMAND_IMAGES;
 
   /**
    * The name of the commands extension point, and the name of the key for the
    * commands preferences.
    */
   static const QString EXTENSION_COMMANDS;
 
   /**
    * The name of the contexts extension point.
    */
   static const QString EXTENSION_CONTEXTS;
 
   /**
    * The name of the <code>org.blueberry.ui.editorActions</code> extension
    * point.
    */
   static const QString EXTENSION_EDITOR_ACTIONS;
 
   /**
    * The name of the commands extension point.
    */
   static const QString EXTENSION_HANDLERS;
 
   /**
    * The name of the <code>org.blueberry.ui.menus</code> extension point.
    */
   static const QString EXTENSION_MENUS;
 
   /**
    * The name of the <code>org.blueberry.ui.menus2</code> extension point.
    */
   static const QString COMMON_MENU_ADDITIONS;
 
   /**
    * The name of the <code>org.blueberry.ui.popupMenus</code> extension point.
    */
   static const QString EXTENSION_POPUP_MENUS;
 
   /**
    * The name of the <code>org.blueberry.ui.viewActions</code> extension
    * point.
    */
   static const QString EXTENSION_VIEW_ACTIONS;
 
   /**
    * The constant for the position attribute corresponding to
    * {@link SOrder#POSITION_AFTER}.
    */
   static const QString POSITION_AFTER; // "after";
 
   /**
    * The constant for the position attribute corresponding to
    * {@link SOrder#POSITION_BEFORE}.
    */
   static const QString POSITION_BEFORE; // "before";
 
   /**
    * The constant for the position attribute corresponding to
    * {@link SOrder#POSITION_END}.
    */
   static const QString POSITION_END; // "end";
 
   /**
    * The constant for the position attribute corresponding to
    * {@link SOrder#POSITION_START}.
    */
   static const QString POSITION_START; // "start";
 
   /**
    * The action style for drop-down menus.
    */
   static const QString STYLE_PULLDOWN; // "pulldown";
 
   /**
    * The action style for radio buttons.
    */
   static const QString STYLE_RADIO; // "radio";
 
   /**
    * The action style for check boxes.
    */
   static const QString STYLE_TOGGLE; // "toggle";
 
   /**
    * The name of the deprecated accelerator configuration element. This
    * element was used in 2.1.x and earlier to define groups of what are now
    * called schemes.
    */
   static const QString TAG_ACCELERATOR_CONFIGURATION; // "acceleratorConfiguration";
 
   /**
    * The name of the element storing a deprecated accelerator scope.
    */
   static const QString TAG_ACCELERATOR_SCOPE; // "acceleratorScope";
 
   /**
    * Action tag. Value <code>action</code>.
    */
   static const QString TAG_ACTION; // "action";
 
   /**
    * The name of the element storing an action definition. This element only
    * existed in
    */
   static const QString TAG_ACTION_DEFINITION; // "actionDefinition";
 
   /**
    * Action set tag. Value <code>actionSet</code>.
    */
   static const QString TAG_ACTION_SET; // "actionSet";
 
   /**
    * Part association tag. Value <code>actionSetPartAssociation</code>.
    */
   static const QString TAG_ACTION_SET_PART_ASSOCIATION; // "actionSetPartAssociation";
 
   /**
    * The name of the element storing the active key configuration from the
    * commands extension point.
    */
   static const QString TAG_ACTIVE_KEY_CONFIGURATION; // "activeKeyConfiguration";
 
   /**
    * The name of the active when element, which appears on a handler
    * definition.
    */
   static const QString TAG_ACTIVE_WHEN; // "activeWhen";
 
   /**
    * Activity image binding tag. Value <code>activityImageBindingw</code>.
    */
   static const QString TAG_ACTIVITY_IMAGE_BINDING; // "activityImageBinding";
 
   /**
    * Advisor to product binding element. Value
    * <code>triggerPointAdvisorProductBinding</code>.
    */
   static const QString TAG_ADVISORPRODUCTBINDING; // "triggerPointAdvisorProductBinding";
 
   /**
    * The name of the bar element, which appears in a location definition.
    */
   static const QString TAG_BAR; // "bar";
 
   /**
    * Category tag. Value <code>category</code>.
    */
   static const QString TAG_CATEGORY; // "category";
 
   /**
    * Category image binding tag. Value <code>categoryImageBinding</code>.
    */
   static const QString TAG_CATEGORY_IMAGE_BINDING; // "categoryImageBinding";
 
   /**
    * Element category tag. Value <code>themeElementCategory</code>.
    */
   static const QString TAG_CATEGORYDEFINITION; // "themeElementCategory";
 
   /**
    * Category presentation tag. Value <code>categoryPresentationBinding</code>.
    */
   static const QString TAG_CATEGORYPRESENTATIONBINDING; // "categoryPresentationBinding";
 
   /**
    * The name of the class element, which appears on an executable extension.
    */
   static const QString TAG_CLASS; // ATT_CLASS;
 
   /**
    * Color definition tag. Value <code>colorDefinition</code>.
    */
   static const QString TAG_COLORDEFINITION; // "colorDefinition";
 
   /**
    * Color override tag. Value <code>colorOverride</code>.
    */
   static const QString TAG_COLOROVERRIDE; // "colorOverride";
 
   /**
    * Color value tag. Value <code>colorValue</code>.
    */
   static const QString TAG_COLORVALUE; // "colorValue";
 
   /**
    * The name of the element storing a command.
    */
   static const QString TAG_COMMAND; // "command";
 
   /**
    * The name of the element storing a parameter.
    */
   static const QString TAG_COMMAND_PARAMETER; // "commandParameter";
 
   /**
    * The name of the element storing a parameter type.
    */
   static const QString TAG_COMMAND_PARAMETER_TYPE; // "commandParameterType";
 
   /**
    * Editor content type binding tag. Value <code>contentTypeBinding</code>.
    */
   static const QString TAG_CONTENT_TYPE_BINDING; // "contentTypeBinding";
 
   /**
    * The name of the element storing a context.
    */
   static const QString TAG_CONTEXT; // "context";
 
   /**
    * Data tag. Value <code>data</code>.
    */
   static const QString TAG_DATA; // "data";
 
   /**
    * The name of the default handler element, which appears on a command
    * definition.
    */
   static const QString TAG_DEFAULT_HANDLER; // ATT_DEFAULT_HANDLER;
 
   /**
    * Description element. Value <code>description</code>.
    */
   static const QString TAG_DESCRIPTION; // "description";
 
   /**
    * The name of the dynamic menu element, which appears in a group or menu
    * definition.
    */
   static const QString TAG_DYNAMIC; // "dynamic";
 
   /**
    * Editor tag. Value <code>editor</code>.
    */
   static const QString TAG_EDITOR; // "editor";
 
   /**
    * The name of the deprecated editorContribution element. This is used for
    * contributing actions to the top-level menus and tool bars when particular
    * editors are visible.
    */
   static const QString TAG_EDITOR_CONTRIBUTION; // "editorContribution";
 
   /**
    * The name of the enabled when element, which appears on a handler
    * definition.
    */
   static const QString TAG_ENABLED_WHEN; // "enabledWhen";
 
   /**
    * Enablement tag. Value <code>enablement</code>.
    */
   static const QString TAG_ENABLEMENT; // "enablement";
 
   /**
    * Entry tag. Value <code>entry</code>.
    */
   static const QString TAG_ENTRY; // "entry";
 
   /**
    * Filter tag. Value <code>filter</code>.
    */
   static const QString TAG_FILTER; // "filter";
 
   /***************************************************************************
    * Font definition tag. Value <code>fontDefinition</code>.
    */
   static const QString TAG_FONTDEFINITION; // "fontDefinition";
 
   /**
    * Font override tag. Value <code>fontOverride</code>.
    */
   static const QString TAG_FONTOVERRIDE; // "fontOverride";
 
   /**
    * Font value tag. Value <code>fontValue</code>.
    */
   static const QString TAG_FONTVALUE; // "fontValue";
 
   /**
    * The name of the element storing a group.
    */
   static const QString TAG_GROUP; // "group";
 
   /**
    * Group marker tag. Value <code>groupMarker</code>.
    */
   static const QString TAG_GROUP_MARKER; // "groupMarker";
 
   /**
    * The name of the element storing a handler.
    */
   static const QString TAG_HANDLER; // "handler";
 
   /**
    * The name of the element storing a handler submission.
    */
   static const QString TAG_HANDLER_SUBMISSION; // "handlerSubmission";
 
   /**
    * Trigger point hint tag. Value <code>hint</code>.
    */
   static const QString TAG_HINT; // "hint";
 
   /**
    * The name of the element storing an image.
    */
   static const QString TAG_IMAGE; // "image";
 
   /**
    * The name of the element storing a key binding.
    */
   static const QString TAG_KEY; // "key";
 
   /**
    * The name of the key binding element in the commands extension point.
    */
   static const QString TAG_KEY_BINDING; // "keyBinding";
 
   /**
    * The name of the deprecated key configuration element in the commands
    * extension point. This element has been replaced with the scheme element
    * in the bindings extension point.
    */
   static const QString TAG_KEY_CONFIGURATION; // "keyConfiguration";
 
   /**
    * The name of the element storing a location.
    */
   static const QString TAG_LOCATION; // "location";
 
   /**
    * The name of the element defining the insertion point for menu
    * additions.
    *
    * @since 3.3
    */
   static const QString TAG_LOCATION_URI; // "locationURI";
 
   /**
    * The name of the element storing trim layout info for a widget.
    */
   static const QString TAG_LAYOUT; // "layout";
 
   /**
    * Mapping tag. Value <code>mapping</code>.
    */
   static const QString TAG_MAPPING; // "mapping";
 
   /**
    * Menu tag. Value <code>menu</code>.
    */
   static const QString TAG_MENU; // "menu";
 
   /**
    * Wizard shortcut tag. Value <code>newWizardShortcut</code>.
    */
   static const QString TAG_NEW_WIZARD_SHORTCUT; // "newWizardShortcut";
 
   /**
    * Object contribution tag. Value <code>objectContribution</code>.
    */
   static const QString TAG_OBJECT_CONTRIBUTION; // "objectContribution";
 
   /**
    * The name of the element storing the ordering information.
    */
   static const QString TAG_ORDER; // "order";
 
   /**
    * The name of the element storing a parameter.
    */
   static const QString TAG_PARAMETER; // "parameter";
 
   /**
    * Part tag. Value <code>part</code>.
    */
   static const QString TAG_PART; // "part";
 
   /**
    * Perspective shortcut tag. Value <code>perspectiveShortcut</code>.
    */
   static const QString TAG_PERSP_SHORTCUT; // "perspectiveShortcut";
 
   /**
    * Perspective tag. Value <code>perspective</code>.
    */
   static const QString TAG_PERSPECTIVE; // "perspective";
 
   /**
    * Perspective extension tag. Value <code>perspectiveExtension</code>.
    */
   static const QString TAG_PERSPECTIVE_EXTENSION; // "perspectiveExtension";
 
   /**
    * Primary wizard tag. Value <code>primaryWizard</code>.
    */
   static const QString TAG_PRIMARYWIZARD; // "primaryWizard";
 
   /**
    * The name of the element storing the a menu element reference.
    */
   static const QString TAG_REFERENCE; // "reference";
 
   /**
    * The name of the scheme element in the bindings extension point.
    */
   static const QString TAG_SCHEME; // "scheme";
 
   /**
    * The name of the element storing a deprecated scope.
    */
   static const QString TAG_SCOPE; // "scope";
 
   /**
    * Selectiont tag. Value <code>selection</code>.
    */
   static const QString TAG_SELECTION; // "selection";
 
   /**
    * Separator tag. Value <code>separator</code>.
    */
   static const QString TAG_SEPARATOR; // "separator";
 
 
   /**
    * Tag for the settings transfer entry.
    */
   static const QString TAG_SETTINGS_TRANSFER; // "settingsTransfer";
 
   /**
    * Show in part tag. Value <code>showInPart</code>.
    */
   static const QString TAG_SHOW_IN_PART; // "showInPart";
 
   /**
    * The name of the element storing some state.
    */
   static const QString TAG_STATE; // "state";
 
 
   /**
    * The name of the element describing splash handlers. Value
    * <code>splashHandler</code>.
    * @since 3.3
    */
   static const QString TAG_SPLASH_HANDLER; // "splashHandler";
 
 
   /**
    * The name of the element describing splash handler product bindings. Value
    * <code>splashHandlerProductBinding</code>.
    * @since 3.3
    */
   static const QString TAG_SPLASH_HANDLER_PRODUCT_BINDING; // "splashHandlerProductBinding";
 
   /**
    * Sticky view tag. Value <code>stickyView</code>.
    */
   static const QString TAG_STICKYVIEW; // "stickyView";
 
   /**
    * Browser support tag. Value <code>support</code>.
    */
   static const QString TAG_SUPPORT; // "support";
 
   /**
    * Theme tag. Value <code>theme</code>.
    */
   static const QString TAG_THEME; // "theme";
 
   /**
    * Transfer tag. Value <code>transfer</code>.
    */
   static const QString TAG_TRANSFER; // "transfer";
 
   /**
    * Trigger point tag. Value <code>triggerPoint</code>.
    */
   static const QString TAG_TRIGGERPOINT; // "triggerPoint";
 
   /**
    * Advisor tag. Value <code>triggerPointAdvisor</code>.
    */
   static const QString TAG_TRIGGERPOINTADVISOR; // "triggerPointAdvisor";
 
   /**
    * View tag. Value <code>view</code>.
    */
   static const QString TAG_VIEW; // "view";
 
   /**
    * View shortcut tag. Value <code>viewShortcut</code>.
    */
   static const QString TAG_VIEW_SHORTCUT; // "viewShortcut";
 
   /**
    * The name of the element storing a view contribution.
    */
   static const QString TAG_VIEW_CONTRIBUTION; // "viewContribution";
 
   /**
    * Viewer contribution tag. Value <code>viewerContribution</code>.
    */
   static const QString TAG_VIEWER_CONTRIBUTION; // "viewerContribution";
 
   /**
    * Visibility tag. Value <code>visibility</code>.
    */
   static const QString TAG_VISIBILITY; // "visibility";
 
   /**
    * The name of the element storing the visible when condition.
    */
   static const QString TAG_VISIBLE_WHEN; // "visibleWhen";
 
   /**
    * The name of the element storing a widget.
    */
   static const QString TAG_WIDGET; // "widget";
 
   /**
    * The name of the element storing a control hosted in a ToolBar.
    */
   static const QString TAG_CONTROL; // "control";
 
   /**
    * Wizard tag. Value <code>wizard</code>.
    */
   static const QString TAG_WIZARD; // "wizard";
 
   /**
    * Working set tag. Value <code>workingSet</code>.
    */
   static const QString TAG_WORKING_SET; // "workingSet";
 
   /**
    * The type of reference which refers to a group.
    */
   static const QString TYPE_GROUP; // "group";
 
   /**
    * The type of reference which refers to an item.
    */
   static const QString TYPE_ITEM; // "item";
 
   /**
    * The type of reference which refers to an menu.
    */
   static const QString TYPE_MENU; // "menu";
 
   /**
    * The type of reference which refers to the widget.
    */
   static const QString TYPE_WIDGET; // "widget";
 
   static const QString TAG_TOOLBAR; // "toolbar";
 
   static const QString TAG_SERVICE_FACTORY; // "serviceFactory";
 
   static const QString TAG_SERVICE; // "service";
 
   static const QString ATTR_FACTORY_CLASS; // "factoryClass";
 
   static const QString ATTR_SERVICE_CLASS; // "serviceClass";
 
   static const QString TAG_SOURCE_PROVIDER; // "sourceProvider";
 
   static const QString ATTR_PROVIDER; // "provider";
 
   static const QString TAG_VARIABLE; // "variable";
 
   static const QString ATT_PRIORITY_LEVEL; // "priorityLevel";
 
   static const QString ATT_MODE; // "mode";
 
 };
 
 } // namespace berry
 
 #endif // __BERRY_WORKBENCH_REGISTRY_CONSTANTS__
diff --git a/Plugins/org.mitk.gui.qt.ext/plugin.xml b/Plugins/org.mitk.gui.qt.ext/plugin.xml
index a1656fa533..2747c46d6b 100644
--- a/Plugins/org.mitk.gui.qt.ext/plugin.xml
+++ b/Plugins/org.mitk.gui.qt.ext/plugin.xml
@@ -1,36 +1,37 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <plugin>
 
   <extension point="org.blueberry.ui.preferencePages">
     <page id="org.mitk.AppInstancesPreferencePage" name="Application Instances"
           class="QmitkAppInstancesPreferencePage" category="org.mitk.GeneralPreferencePage">
       <keywordreference id="org.mitk.AppInstancesPreferencePageKeywords"/>
     </page>
     <page id="org.mitk.ExternalProgramsPreferencePage" name="External Programs"
           class="QmitkExternalProgramsPreferencePage" >
           <keywordreference id="org.mitk.ExternalProgramsPreferencePageKeywords"/>
     </page>
   </extension>
 
   <extension point="org.blueberry.ui.keywords">
     <keyword id="org.mitk.ExternalProgramsPreferencePageKeywords" label="External program gnuplot ffmpeg libav"/>
     <keyword id="org.mitk.AppInstancesPreferencePageKeywords" label="application instances running multiple behavior repeated invocations mitk"/>
     <keyword id="org.mitk.AppInstancesPreferencePageKeywords" label="scene file .mitk"/>
   </extension>
 
   <extension point="org.blueberry.ui.views">
     <view
       id="org.mitk.views.modules"
       name="Modules"
       category="org.mitk.views.general"
       class="QmitkModuleView"
-      icon="resources/ModuleView.png" />
+      icon="resources/ModuleView.png"
+      enumerate="false" />
   </extension>
 
   <extension point="org.blueberry.ui.handlers">
     <handler
       commandId="org.blueberry.ui.help.aboutAction"
       class="QmitkAboutHandler"/>
   </extension>
 
 </plugin>