Interface ITemplateSection

  • All Known Implementing Classes:
    AbstractTemplateSection, BaseOptionTemplateSection, OptionTemplateSection

    public interface ITemplateSection
    This interface represents a section of the template wizard that generates a new extension or plug-in. Typically, it maps to one wizard page, but more complex sections may span several pages. Also note that in the very simple cases it may not contribute any wizard pages.

    If a section generates extensions, it should be written in such a way to be used both in the 'New Extension' wizard and as a part of a new plug-in project wizard. When used as part of the new plug-in project wizard, it may appear alongside other templates and therefore should not do anything that prevents it.

    Since:
    2.0
    Restriction:
    This interface is not intended to be extended by clients.
    • Method Detail

      • getTemplateLocation

        URL getTemplateLocation()
        Returns the URL of the zip file containing template files and directories that will be created in the plug-in project. If URL protocol is 'file', and the URL ends with a trailing file separator, an attempt will be made to treat the URL as a root directory and iterate using standard Java I/O classes. If template files are stored in a ZIP or JAR archive, the name of the archive must be part of the URL.
        Returns:
        a template location URL
      • getLabel

        String getLabel()
        Returns a presentable label the section.
        Returns:
        a template label
      • getDescription

        String getDescription()
        Returns a description of the section. The description should explain what extension will be used, what classes will be generated and how to test that the generated code works properly.
        Returns:
        a template description
      • getReplacementString

        String getReplacementString​(String fileName,
                                    String key)
        Returns a replacement string for the provided key. When a token is found in the template file with a form '$key$', the actual key is passed to this method to obtain the replacement. If replacement is provided, it is substituted for the token (including the '$' characters). Otherwise, it is transfered as-is.
        Parameters:
        fileName - the name of the file in which the key was found. You can use it to return different values for different files.
        key - the replacement key found in the template file
        Returns:
        replacement string for the provided key, or the key itself if not found.
      • addPages

        void addPages​(Wizard wizard)
        Adds template-related pages to the wizard. A typical section implementation contributes one page, but complex sections may span several pages.
        Parameters:
        wizard - the host wizard to add pages into
      • getPage

        WizardPage getPage​(int pageIndex)
        Returns a wizard page at the provided index.
        Parameters:
        pageIndex - the index to get the page for
        Returns:
        wizard page index.
      • getPageCount

        int getPageCount()
        Returns number of pages that are contributed by this template.
        Returns:
        the contributed page count
      • getPagesAdded

        boolean getPagesAdded()
        Tests whether this template have had a chance to create its pages. This method returns true after 'addPages' has been called.
        Returns:
        true if wizard pages have been created by this template.
      • getNumberOfWorkUnits

        int getNumberOfWorkUnits()
        Returns the number of work units that this template will consume during the execution. This number is used to calculate the total number of work units when initializing the progress indicator.
        Returns:
        the number of work units
      • getDependencies

        IPluginReference[] getDependencies​(String schemaVersion)
        Provides the list of template dependencies. A template may generate a number of Java classes that reference classes and interfaces from other plug-ins. By providing this list, a template enables the template wizard to create the correct Java build path so that these classes and interfaces are correctly resolved.
        Parameters:
        schemaVersion - version of the target manifest, or null if older manifest (prior to 3.0) will be created. Depending on the manifest version, the list of dependencies may vary.
        Returns:
        an array of template dependencies
      • getUsedExtensionPoint

        String getUsedExtensionPoint()
        Returns identifier of the extension point used in this section.
        Returns:
        extension point id if this section contributes into an extension point or null if not applicable.
      • execute

        void execute​(IProject project,
                     IPluginModelBase model,
                     IProgressMonitor monitor)
              throws CoreException
        Executes the template. As part of the execution, template may generate resources under the provided project, and/or modify the plug-in model.
        Parameters:
        project - the workspace project that contains the plug-in
        model - structured representation of the plug-in manifest
        monitor - progress monitor to indicate execution progress
        Throws:
        CoreException - if there is a problem generating resources
      • getNewFiles

        String[] getNewFiles()
        Returns an array of tokens representing new files and folders created by this template section. The information is collected for the benefit of build.properties file so that the generated files and folders are included in the binary build. The tokens will be added as-is to the variable bin.includes. For this reason, wild cards and other syntax rules applicable to this variable can be used in this method. For example:

         return new String[]{"/icons/*.png"};
         

        Returns:
        an array of strings that fully describe the files and folders created by this template section as required by bin.includes variable in build.properties file.