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