# Properties Providers Extension Point

###### Identifier:

org.eclipse.gmf.runtime.common.ui.services.properties.propertiesProviders

###### Description:

This extension point facilitates the configuration of providers for the properties service (`org.eclipse.gmf.runtime.common.ui.services.properties.PropertiesService`). Using this extension point, providers are registered to contribute properties to the Eclipse property sheet view part, given a workbench selection.

###### Configuration Markup:

<!ELEMENT extension (PropertiesProvider)>

<!ATTLIST extension

point CDATA #REQUIRED

id CDATA #IMPLIED

name CDATA #IMPLIED

>

<!ELEMENT PropertiesProvider (Priority)>

<!ATTLIST PropertiesProvider

class CDATA #REQUIRED

verifyPluginLoaded (true | false)

>

A property provider element describes a client defined property provider object.

- class - The 'class' attribute must contain a fully qualified name of the property provider class. The property provider must implement org.eclipse.gmf.runtime.common.ui.services.properties.IPropertyProvider interface.
- verifyPluginLoaded - The 'verifyPluginLoaded' attribute will be used while testing the applicability of the given provider. If set to true, the service will verify that provider's plugin is loaded, before running IPropertyProvider.provides() test. If the declaring plugin is not loaded the IPropertyProvider.provides() will not be called and provider will be considered not applicable. If the decalring pluging is loaded, the service will run IPropertyProvider.provides() to determine wither or not the provider is applicable. When the 'verifyPluginLoaded' attribute is set to false - the verification will not be perfomed and IPropertyProvider.provides() will called regardless of the plugin being loaded.

<!ELEMENT Priority EMPTY>

<!ATTLIST Priority

name (Lowest|Low|Medium|High|Highest)

>

Priority element specifies the priority of the provider from HIGHEST to LOWEST. The providers will be allowed to contribute to the property source in order of their priorities - from HIGHEST to LOWEST. This will ensure the desired order of contribution and helps to exclude duplicate properties, already contributed by others. For example, a provider with LOWEST priority, when executed, can check if there are any properties already contributed by any other providers. If none - it may want to contribute, if some - may want to withraw from contribution.

- name - Enumeration with the following 5 values HIGHEST, HIGH, MEDIUM, LOW, LOWEST.

###### Examples:

The following is an example of a provider extension:

     <extension
             id="myPropertiesProvider"
             name="My Properties Provider Name"
             point="org.eclipse.gmf.runtime.common.ui.services.properties.propertiesProviders">
          <PropertiesProvider
                verifyPluginLoaded="false"
                class="com.examples.MyPropertiesProvider">
             <Priority
                   name="Medium">
             </Priority>
          </PropertiesProvider>
       </extension>

Copyright (c) 2003, 2004 IBM Corporation and others.
All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html