Class AbstractTemplatesPage

  • All Implemented Interfaces:
    IPage, IPageBookViewPage, ITemplatesPage, ITemplatesPageExtension

    public abstract class AbstractTemplatesPage
    extends Page
    implements ITemplatesPage, ITemplatesPageExtension
    Abstract default implementation for ITemplatesPage.

    Clients who are defining an editor may elect to provide a corresponding templates page. This templates page will be presented to the user via the Templates View (the user decides whether their workbench window contains this view) whenever that editor is active. This class should be subclassed by clients.

    Internally, a AbstractTemplatesPage uses the template store to display different categories. A link to editor mode on the templates page allows to filtering of the categories to only that are supported in this context.

    Since:
    3.4
    • Constructor Detail

      • AbstractTemplatesPage

        protected AbstractTemplatesPage​(ITextEditor editor,
                                        ISourceViewer viewer)
        Creates a new templates page.
        Parameters:
        editor - the editor
        viewer - the source viewer
    • Method Detail

      • createControl

        public void createControl​(Composite ancestor)
        Description copied from interface: IPage
        Creates the SWT control for this page under the given parent control.

        Clients should not call this method (the workbench calls this method when it needs to, which may be never).

        Specified by:
        createControl in interface IPage
        Specified by:
        createControl in class Page
        Parameters:
        ancestor - the parent control
      • setFocus

        public void setFocus()
        Description copied from class: Page
        The Page implementation of this IPage method does nothing. Subclasses must implement.
        Specified by:
        setFocus in interface IPage
        Specified by:
        setFocus in class Page
      • getControl

        public Control getControl()
        Description copied from class: Page
        The Page implementation of this IPage method returns null. Subclasses must reimplement.
        Specified by:
        getControl in interface IPage
        Specified by:
        getControl in class Page
        Returns:
        the SWT control for this page, or null if this page does not have a control
      • dispose

        public void dispose()
        Description copied from class: Page
        The Page implementation of this IPage method disposes of this page's control (if it has one and it has not already been disposed). Subclasses may extend.
        Specified by:
        dispose in interface IPage
        Overrides:
        dispose in class Page
      • getImage

        protected Image getImage​(Template template)
        Returns the image to be used for the given template.

        Clients can override to provide a different image.

        Parameters:
        template - the template
        Returns:
        the image, must not be disposed
      • editTemplate

        protected Template editTemplate​(Template template,
                                        boolean edit,
                                        boolean isNameModifiable)
        Creates and opens a dialog to edit the given template.

        Subclasses may override this method to provide a custom dialog.

        Parameters:
        template - the template being edited
        edit - true if the dialog allows editing
        isNameModifiable - true if the template name may be modified
        Returns:
        the created or modified template, or null if the editing failed
      • updatePatternViewer

        protected void updatePatternViewer​(Template template)
        Update the pattern viewer to show the current template.

        Subclasses can extend this method to update their own pattern viewer.

        Parameters:
        template - the template
      • createPatternViewer

        protected SourceViewer createPatternViewer​(Composite parent)
        Creates, configures and returns a source viewer to present the template pattern on the templates page.

        Clients may override to provide a custom source viewer featuring e.g. syntax coloring.

        Parameters:
        parent - the parent control
        Returns:
        a configured source viewer
      • getPatternViewer

        protected final SourceViewer getPatternViewer()
        Returns the pattern viewer created by createPatternViewer()
        Returns:
        the pattern viewer
      • insertTemplate

        protected abstract void insertTemplate​(Template template,
                                               IDocument document)
        Inserts the given template into the editor.
        Parameters:
        template - the template
        document - the document
      • getContextTypeRegistry

        protected abstract ContextTypeRegistry getContextTypeRegistry()
        Returns the context type registry used in this page.
        Returns:
        the context type registry
      • getTemplatePreferenceStore

        protected abstract IPreferenceStore getTemplatePreferenceStore()
        Returns the preference store used to create the template store returned by getTemplateStore().
        Returns:
        the preference store
      • getPreferencePageId

        protected abstract String getPreferencePageId()
        Returns the Template preference page id to be used by this template page.
        Returns:
        id the preference page if or null if none exists
      • getContextTypeIds

        protected abstract String[] getContextTypeIds​(IDocument document,
                                                      int offset)
        Returns the context type ids supported at the given document offset.
        Parameters:
        document - the document
        offset - the offset
        Returns:
        an array of supported context ids
      • isValidTemplate

        protected abstract boolean isValidTemplate​(IDocument document,
                                                   Template template,
                                                   int offset,
                                                   int length)
        Checks whether the given template is valid for the document at the given offset and length.
        Parameters:
        document - the document
        template - the template
        offset - the offset
        length - the length
        Returns:
        true if the template is valid