# Class AbstractNewPluginTemplateWizard

java.lang.Object
org.eclipse.jface.wizard.Wizard
org.eclipse.pde.ui.templates.AbstractNewPluginTemplateWizard

All Implemented Interfaces:
  `IShellProvider, IWizard, IBasePluginWizard, IBundleContentWizard, IPluginContentWizard`

Direct Known Subclasses:
  `NewPluginTemplateWizard`

public abstract class AbstractNewPluginTemplateWizard extends Wizard implements IBundleContentWizard
This class is used as a common base for plug-in content wizards that are implemented using PDE template support. The assumption is that one or more templates will be used to generate plug-in content. Dependencies, new files and wizard pages are all computed based on the templates.

Since:
  2.0

## Field Summary

### Fields inherited from class Wizard

`DEFAULT_IMAGE`

## Constructor Summary

Constructors
Constructor
Description
`AbstractNewPluginTemplateWizard()`
Creates a new template wizard.

## Method Summary

Modifier and Type
Method
Description
`protected abstract void`
`addAdditionalPages()`
This wizard adds a mandatory first page.
`final void`
`addPages()`
Implements wizard method.
`IFieldData`
`getData()`
Returns the field data passed to the wizard during the initialization.
`IPluginReference[]`
`getDependencies(String schemaVersion)`
Returns new dependencies that are required by this wizard.
`String[]`
`getImportPackages()`
Returns names of packages that are required by this wizard.
`String[]`
`getNewFiles()`
The wizard is required to return an array of new file and folder names that are generated by it for the purpose of inclusion in `build.properties` file.
`abstract ITemplateSection[]`
`getTemplateSections()`
Returns the template sections used in this wizard.
`boolean`
`hasPages()`
Returns whether this wizard has at least one page
`void`
`init(IFieldData data)`
Initializes the wizard with the data collected from the parent wizard pages.
`boolean`
`performFinish()`
`boolean`
`performFinish(IProject project, IPluginModelBase model, IProgressMonitor monitor)`
Implements the interface method by looping through template sections and executing them sequentially.

### Methods inherited from class Wizard

`addPage, canFinish, createPageControls, dispose, getContainer, getDefaultPageImage, getDialogSettings, getMinimumWizardSize, getNextPage, getPage, getPageCount, getPages, getPreviousPage, getShell, getStartingPage, getTitleBarColor, getWindowTitle, isHelpAvailable, needsPreviousAndNextButtons, needsProgressMonitor, performCancel, setContainer, setDefaultPageImageDescriptor, setDialogSettings, setForcePreviousAndNextButtons, setHelpAvailable, setNeedsProgressMonitor, setTitleBarColor, setWindowTitle`

### Methods inherited from class Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface IWizard

`canFinish, createPageControls, dispose, getContainer, getDefaultPageImage, getDialogSettings, getMinimumWizardSize, getNextPage, getPage, getPageCount, getPages, getPreviousPage, getStartingPage, getTitleBarColor, getWindowTitle, isHelpAvailable, needsPreviousAndNextButtons, needsProgressMonitor, performCancel, setContainer`

## Constructor Details

### AbstractNewPluginTemplateWizard

public AbstractNewPluginTemplateWizard()
Creates a new template wizard.

## Method Details

### init

public void init(IFieldData data)
Description copied from interface: `IPluginContentWizard`
Initializes the wizard with the data collected from the parent wizard pages. The data can be used to customize the generated content.

Specified by:
  `init` in interface `IPluginContentWizard`
Parameters:
  `data` - all the information collected in the parent wizard that can be used in configuring the generated content

### getData

public IFieldData getData()
Returns the field data passed to the wizard during the initialization.

Returns:
  the parent wizard field data

### addAdditionalPages

protected abstract void addAdditionalPages()
This wizard adds a mandatory first page. Subclasses implement this method to add additional pages to the wizard.

### addPages

public final void addPages()
Implements wizard method. Subclasses cannot override it.

Specified by:
  `addPages` in interface `IWizard`
Overrides:
  `addPages` in class `Wizard`

### performFinish

public boolean performFinish()

Specified by:
  `performFinish` in interface `IWizard`
Specified by:
  `performFinish` in class `Wizard`

### performFinish

public boolean performFinish(IProject project, IPluginModelBase model, IProgressMonitor monitor)
Implements the interface method by looping through template sections and executing them sequentially.

Specified by:
  `performFinish` in interface `IPluginContentWizard`
Parameters:
  `project` - the project
  `model` - the plug-in model
  `monitor` - the progress monitor to track the execution progress as part of the overall new project creation operation
Returns:
  `true` if the wizard completed the operation with success, `false` otherwise.

### getTemplateSections

public abstract ITemplateSection[] getTemplateSections()
Returns the template sections used in this wizard.

Returns:
  the array of template sections

### getDependencies

public IPluginReference[] getDependencies(String schemaVersion)
Description copied from interface: `IPluginContentWizard`
Returns new dependencies that are required by this wizard. If the wizard adds extensions or code to the plug-in that depend on other plug-ins, it must report it by returning a reference to that plug-in. This information will be used to compose a correct list of plug-in dependencies so that the plug-in compiles without errors in the first build after creation.

Specified by:
  `getDependencies` in interface `IPluginContentWizard`
Parameters:
  `schemaVersion` - version of the plug-in manifest, or `null` if older manifest (prior to 3.0) has been created. Depending on the manifest version, the list of dependencies may vary.
Returns:
  the array of plug-in dependencies required by this wizard

### getNewFiles

public String[] getNewFiles()
Description copied from interface: `IPluginContentWizard`
The wizard is required to return an array of new file and folder names that are generated by it for the purpose of inclusion in `build.properties` file. All files and folders that must be part of the binary build must be listed in `bin.includes` variable. Since the tokens obtained by this method will be passed to the variable as-is, it is legal to use all wild cards also legal in `build.properties`, such as "*.png".

Specified by:
  `getNewFiles` in interface `IPluginContentWizard`
Returns:
  an array of new file and folder names

### hasPages

public boolean hasPages()
Returns whether this wizard has at least one page

Returns:
  whether this wizard has at least one page

### getImportPackages

public String[] getImportPackages()
Description copied from interface: `IBundleContentWizard`
Returns names of packages that are required by this wizard. This information will be used to compose the Import-Package header of the manifest.mf being generated, so that the plug-in compiles without errors in the first build after creation.

Specified by:
  `getImportPackages` in interface `IBundleContentWizard`
Returns:
  an array of package names required by this wizard