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 Detail

      • OptionTemplateSection

        public OptionTemplateSection()
        The default constructor.
    • Method Detail

      • 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:
        getLabel(), getDescription(), getTemplateLocation()
      • 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(int)
      • 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:
        setPageCount(int), BaseOptionTemplateSection.addOption(java.lang.String, java.lang.String, boolean, int)
      • 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:
        setPageCount(int), BaseOptionTemplateSection.addOption(java.lang.String, java.lang.String, boolean, int)
      • getPageCount

        public int getPageCount()
        Returns a number of pages that this template contributes to the wizard.
        Returns:
        the number of pages
        See Also:
        setPageCount(int)
      • 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:
        See Also:
        setPageCount(int)
      • 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.