Class OptionTemplateSection

All Implemented Interfaces:
ITemplateSection, IVariableProvider

public abstract class OptionTemplateSection extends BaseOptionTemplateSection
This class adds some conventions to the class it is based on. For example, it expects to find the template content in the following location:

     [install location]/[templateDirectory]/[sectionId]

 
where templateDirectory is expected to be 'templates_3.0' (to distinguish from template designed for earlier Eclipse versions), and sectionId is the unique identifier as reported by the template section.

It also assumes that all wizard pages associated with this template will be based on OptionTemplateWizardPage.

Since:
2.0
  • Constructor Details

    • OptionTemplateSection

      public OptionTemplateSection()
      The default constructor.
  • Method Details

    • getSectionId

      public abstract String getSectionId()
      Returns the unique name of this section. This name will be used to construct name and description lookup keys, as well as the template file location in the contributing plug-in.
      Returns:
      the unique section Id
      See Also:
    • getTemplateDirectory

      protected String getTemplateDirectory()
      Returns the directory where all the templates are located in the contributing plug-in.
      Returns:
      "templates_[schemaVersion]" for code since Eclipse 3.0, or "templates" for pre-3.0 code.
    • getInstallURL

      protected abstract URL getInstallURL()
      Returns the install URL of the plug-in that contributes this template.
      Returns:
      the install URL of the contributing plug-in
    • getTemplateLocation

      public URL getTemplateLocation()
      Implements the abstract method by looking for templates using the following path:

      [install location]/[templateDirectory]/[sectionId]

      Specified by:
      getTemplateLocation in interface ITemplateSection
      Overrides:
      getTemplateLocation in class AbstractTemplateSection
      Returns:
      the URL of the location where files to be emitted by this template are located.
    • getPage

      public WizardPage getPage(int pageIndex)
      Returns the wizard page at the specified index. Pages must be created prior to calling this method.
      Parameters:
      pageIndex - the index to get the page for
      Returns:
      the wizard page at the specified index or null if invalid index.
      See Also:
    • createPage

      public WizardPage createPage(int pageIndex)
      Creates the wizard page for the specified page index. This method cannot be called before setPageCount(int). The page will be created with all the options registered for that page index. Therefore, make all the calls to addOption() before calling this method.
      Parameters:
      pageIndex - a zero-based index of the page relative to this template. For example, if a template needs to have two pages, you have to call this method twice (once with index 0 and again with index 1).
      Returns:
      the created wizard page
      See Also:
    • createPage

      public WizardPage createPage(int pageIndex, String helpContextId)
      Creates the wizard page for the specified page index. This method cannot be called before setPageCount(int). The page will be created with all the options registered for that page index. Therefore, make all the calls to addOption() before calling this method.
      Parameters:
      pageIndex - a zero-based index of the page relative to this template. For example, if a template need to have two pages, you have to call this method twice (once with index 0 and again with index 1).
      helpContextId - the Id of the help context defined in the contributing plug-in that will be used to locate content of the info-pop displayed when F1 is pressed.
      Returns:
      the created wizard page
      See Also:
    • getPageCount

      public int getPageCount()
      Returns a number of pages that this template contributes to the wizard.
      Returns:
      the number of pages
      See Also:
    • setPageCount

      public void setPageCount(int count)
      Sets the number of pages this template will manage. This method must be called prior to adding pages and options in order to initialize the template. Once the method has been called, you can call methods that accept page index in the range [0..count-1].
      Parameters:
      count - number of pages that this template will contribute to the template wizard
    • getOptions

      public TemplateOption[] getOptions(int pageIndex)
      Returns options that belong to the page with the given index.
      Parameters:
      pageIndex - 0-based index of the template page
      Returns:
      Options for the page with given index.
      See Also:
    • getOptions

      public TemplateOption[] getOptions(WizardPage page)
      Returns options that are added to the provided wizard page.
      Parameters:
      page - wizard page that hosts required options
      Returns:
      array of options added to the provided wizard page
    • getPageIndex

      public int getPageIndex(TemplateOption option)
      Returns the zero-based index of a page that hosts the the given option.
      Parameters:
      option - template option for which a page index is being requested
      Returns:
      zero-based index of a page that hosts the option or -1 if none of the pages contain the option.
    • getLabel

      public String getLabel()
      Returns the label of this template to be used in the UI. The label is obtained by creating a lookup key using the following rule: "template.[section-id].name". This key is used to locate the label in the plugin.properties file of the plug-in that contributed this template.
      Returns:
      the translated label of this template
    • getDescription

      public String getDescription()
      Returns the description of this template to be used in the UI. The description is obtained by creating a lookup key using the following rule: "template.[section-id].desc". This key is used to locate the label in the plugin.properties file of the plug-in that contributed this template.
      Specified by:
      getDescription in interface ITemplateSection
      Overrides:
      getDescription in class AbstractTemplateSection
      Returns:
      the translated description of this template
    • flagMissingRequiredOption

      protected void flagMissingRequiredOption(TemplateOption option)
      Locates the page that this option is presented in and flags that the option is required and is currently not set. The flagging is done by setting the page incomplete and setting the error message that uses option's message label.
      Parameters:
      option - the option that is required and currently not set
    • resetPageState

      protected void resetPageState()
      Resets the current page state by clearing the error message and making the page complete, thereby allowing users to flip to the next page.
    • registerOption

      protected void registerOption(TemplateOption option, Object value, int pageIndex)
      Description copied from class: BaseOptionTemplateSection
      Registers the provided option and sets the initial value.
      Overrides:
      registerOption in class BaseOptionTemplateSection
      Parameters:
      option - the option to register
      value - the initial value
      pageIndex - the page index to which this option belongs
    • validateOptions

      public void validateOptions(TemplateOption source)
      Validate options given a template option
      Specified by:
      validateOptions in class BaseOptionTemplateSection
      Parameters:
      source - the template option to validate