Package org.eclipse.pde.ui

# Interface IPluginContentWizard

All Superinterfaces:
  `IBasePluginWizard`, `IWizard`

All Known Subinterfaces:
  `IBundleContentWizard`

All Known Implementing Classes:
  `AbstractNewPluginTemplateWizard`, `NewPluginTemplateWizard`

public interface IPluginContentWizard extends IBasePluginWizard
Classes that implement this interface are contributed via the extension point `org.eclipse.pde.ui.pluginContent`. The expectation is that classes also extend JFace Wizard class. The role of this wizard is to provide additional plug-in content after the project and the critical plug-in project files have been created. The wizard is nested in the overall 'New' wizard and can contribute one or more pages that allow users to configure how this content will be generated. A typical implementation of this interface would be a template wizard that populates the plug-in project with content that can be useful right away (for example, a view or an editor extension).

Due to the call order of the method `performFinish` in nested wizards, classes that implement this interface should not place the code that generates new content in the implementation of the abstract method `Wizard.performFinish()`. Instead, they should simply return `true` and have all the real code in `performFinish` defined in this interface. This version of the method passes all the context required for the content generation and is called AFTER the project and vital plug-in files have been already created.

Since:
  3.0
Restriction:
  This interface is not intended to be extended by clients.

## Method Summary

Modifier and Type
Method
Description
`IPluginReference[]`
`getDependencies(String schemaVersion)`
Returns new dependencies 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.
`void`
`init(IFieldData data)`
Initializes the wizard with the data collected from the parent wizard pages.
`boolean`
`performFinish(IProject project, IPluginModelBase model, IProgressMonitor monitor)`
Executes the wizard when 'Finish' button has been pressed.

### Methods inherited from interface org.eclipse.jface.wizard.IWizard

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

## Method Details

### init

void init(IFieldData data)
Initializes the wizard with the data collected from the parent wizard pages. The data can be used to customize the generated content.

Parameters:
  `data` - all the information collected in the parent wizard that can be used in configuring the generated content

### getDependencies

IPluginReference[] getDependencies(String schemaVersion)
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.

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

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. 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".

Returns:
  an array of new file and folder names

### performFinish

boolean performFinish(IProject project, IPluginModelBase model, IProgressMonitor monitor)
Executes the wizard when 'Finish' button has been pressed. Note that you should put all your working code in this method and not in 'performFinish' of the Wizard class due to the wrong calling order. In addition, this method provides progress monitor so that the execution of the content wizard can be reported as a part of the overall new project creation operation.

Parameters:
  `project` - the newly created plug-in project handle
  `model` - the model of the plug-in manifest that can be used to add extension markup
  `monitor` - the progress monitor to track progress of the content generation
Returns:
  `true` if the content has been generated successfully, `false` otherwise. In case of failure, the wizard dialog will stay open.