# Extension Wizards

###### Identifier:

org.eclipse.pde.ui.newExtension

###### Description:

This extension point should be used to contribute wizards that will be used to create and edit new extensions in PDE plug-in manifest editor. Wizards can create one or more extensions at the same time, as well as the code needed to implement those extensions. If a contributed wizard is specifically created for a particular extension point, it is advisable to also register a matching editor wizard. This wizard will be used to edit the extension point in the manifest editor after it has been created in the manifest file.

###### Configuration Markup:

<!ELEMENT extension (wizard | category | editorWizard)*>

<!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 wizard (description?)>

<!ATTLIST wizard

id CDATA #REQUIRED

name CDATA #REQUIRED

icon CDATA #IMPLIED

class CDATA #IMPLIED

availableAsShortcut (true | false)

category IDREF #IMPLIED

template IDREF #IMPLIED

>

a wizard that can be used to create a new extension from within the plug-in manifest editor

- id - a unique name that will be used to identify this wizard.
- name - a translatable name that will be used in UI representation of this wizard.
- icon - a relative path of an icon that will be used to visually represent the wizard.
- class - a fully qualified name of a class which implements `org.eclipse.pde.ui.IExtensionWizard` interface. This attribute is mutually exclusive with the `template` attribute.
- availableAsShortcut - If `true`, this wizard will appear in the short cut menu on the menu bar and the tool bar.
- category - an optional id that makes this wizard a member of the previously defined category. If category is hierarchical, full path to the parent category should be specified using '/' as a delimiter.
- template - an identifier of a template declared elsewhere using the extension point `org.eclipse.pde.ui.templates`. If defined, the template with the specified id will be located and the extension wizard will be created using the template. This attribute is mutually exclusive with the `class` attribute.

<!ELEMENT editorWizard (description?)>

<!ATTLIST editorWizard

id CDATA #REQUIRED

name CDATA #REQUIRED

icon CDATA #IMPLIED

class CDATA #REQUIRED

point CDATA #REQUIRED

>

a wizard that can be used to edit an existing extension from within the plug-in manifest editor

- id - a unique name that will be used to identify this wizard.
- name - a translatable name that will be used in UI representation of this wizard.
- icon - a relative path of an icon that will be used to visually represent the wizard.
- class - a fully qualified name of a class which implements `org.eclipse.pde.ui.IExtensionEditorWizard` interface.
- point - a fully qualified identifier of the extension point that this wizard is capable of editing

<!ELEMENT category EMPTY>

<!ATTLIST category

id CDATA #REQUIRED

name CDATA #REQUIRED

parentCategory IDREF #IMPLIED

>

- id - a unique name that will be used to reference this category
- name - a translatable name that will be used for UI presentation of this category
- parentCategory - an optional attribute that can be used to create category hierarchy

<!ELEMENT description (#PCDATA)>

A short description of this wizard.

###### Examples:

The following is an example of the extension:

    <extension
          point="org.eclipse.pde.ui.newExtension">
       <category
             name="Custom Extensions"
             id="custom">
       </category>
       <wizard
             availableAsShortcut="true"
             name="Simple Java Editor Extension"
             icon="icons/java_edit.gif"
             category="generic"
             class="com.example.xyz.SimpleJavaEditorExtension"
             id="com.example.xyz.simple">
          <description>
             This wizard creates a simple Java editor with
             all the required classes and manifest markup.
          </description>
       </wizard>
    </extension>

###### API Information:

This extension point requires that a class that implements `org.eclipse.pde.ui.IExtensionWizard` interface.

###### Supplied Implementation:

PDE provides a generic wizard that creates extension points based on the extension point schema information. In addition, all templates registered using `org.eclipse.pde.ui.templates` extension point in PDE UI are also hooked as individual extension wizards.

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