# Extension Templates

###### Identifier:

org.eclipse.pde.ui.templates

###### Since:

2.0

###### Description:

This extension point registers plug-in project content templates that are used to generate code for the new extensions. Templates are used in two contexts:

- One or more templates are combined in a wizard that is contributed as plug-in content wizard using `org.eclipse.pde.ui.pluginContent` extension point. These templates create interesting content for newly created plug-in projects. In addition, all the templates contributed using this extension point can be seen in a special version of the plug-in content wizard that lists the templates and allows users to freely combine the templates by checking them in the list.
- A New extension can be added to an existing plug-in using a template.

###### Configuration Markup:

<!ELEMENT extension (template+)>

<!ATTLIST extension

point CDATA #REQUIRED

id CDATA #IMPLIED

name CDATA #IMPLIED>

- point - a fully qualified identifier of the target extension point
- id - an optional identifier of the extension instance
- name - an optional name of the extension instance

<!ELEMENT template EMPTY>

<!ATTLIST template

id IDREF #REQUIRED

name CDATA #REQUIRED

icon CDATA #IMPLIED

class CDATA #REQUIRED

contributingId IDREF #REQUIRED>

- id - a unique name that will be used to identify this template.
- name - a translatable name that will be used in UI representation of this template.
- icon - a relative path of an icon that will be used to visually represent the template.
- class - a fully qualified name of the class that implements `org.eclipse.pde.ui.templates.ITemplateSection` interface.
- contributingId - the identifier of the extension point that this template will contribute into.

###### Examples:

The following is an example of the template registration:

       <extension
             point="org.eclipse.pde.ui.templates">
          <template
                contributingId="org.eclipse.ui.actionSets"
                name="XYZ Action Set Generator"
       class="com.example.xyz.XYZActionSetTemplate"
                id="com.example.xyz.ActionSetTemplate">
          </template>
       </extension>

###### API Information:

Each template must provide a class that implements `org.eclipse.pde.ui.templates.ITemplateSection` interface. However, abstract classes that implement the interface and can be extended are available.

###### Supplied Implementation:

PDE UI contributes a number of templates that create extensions for the most popular extension points like editors, views, preferences etc.

Copyright (c) 2004, 2013 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.