Eclipse Platform
Release 3.4

org.eclipse.ui.texteditor.templates
Class AbstractTemplatesPage

java.lang.Object
  extended byorg.eclipse.ui.part.Page
      extended byorg.eclipse.ui.texteditor.templates.AbstractTemplatesPage
All Implemented Interfaces:
IPage, IPageBookViewPage, ITemplatesPage

public abstract class AbstractTemplatesPage
extends Page
implements ITemplatesPage

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 Summary
protected AbstractTemplatesPage(ITextEditor editor, ISourceViewer viewer)
          Creates a new templates page.
 
Method Summary
 void createControl(Composite ancestor)
          Creates the SWT control for this page under the given parent control.
protected  SourceViewer createPatternViewer(Composite parent)
          Creates, configures and returns a source viewer to present the template pattern on the templates page.
 void dispose()
          Disposes of this page.
protected  Template editTemplate(Template template, boolean edit, boolean isNameModifiable)
          Creates and opens a dialog to edit the given template.
protected abstract  String[] getContextTypeIds(IDocument document, int offset)
          Returns the context type ids supported at the given document offset.
protected abstract  ContextTypeRegistry getContextTypeRegistry()
          Returns the context type registry used in this page.
 Control getControl()
          Returns the SWT control for this page.
protected  Image getImage(Template template)
          Returns the image to be used for the given template.
protected  SourceViewer getPatternViewer()
          Returns the pattern viewer created by createPatternViewer()
protected abstract  String getPreferencePageId()
          Returns the Template preference page id to be used by this template page.
protected abstract  IPreferenceStore getTemplatePreferenceStore()
          Returns the preference store used to create the template store returned by getTemplateStore().
protected abstract  TemplateStore getTemplateStore()
          Returns the template store used in this page.
protected abstract  void insertTemplate(Template template, IDocument document)
          Inserts the given template into the editor.
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.
 void setFocus()
          Asks this page to take focus within its pagebook view.
protected  void updatePatternViewer(Template template)
          Update the pattern viewer to show the current template.
 
Methods inherited from class org.eclipse.ui.part.Page
getSite, init, makeContributions, setActionBars
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.eclipse.ui.part.IPageBookViewPage
getSite, init
 
Methods inherited from interface org.eclipse.ui.part.IPage
setActionBars
 

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

setFocus

public void setFocus()
Description copied from interface: IPage
Asks this page to take focus within its pagebook view.

Specified by:
setFocus in interface IPage
Specified by:
setFocus in class Page

getControl

public Control getControl()
Description copied from interface: IPage
Returns the SWT control for this page.

Specified by:
getControl in interface IPage
Specified by:
getControl in class Page

dispose

public void dispose()
Description copied from interface: IPage
Disposes of this page.

This is the last method called on the IPage. Implementors should clean up any resources associated with the page.

Callers of this method should ensure that the page's control (if it exists) has been disposed before calling this method. However, for backward compatibilty, implementors must also ensure that the page's control has been disposed before this method returns.

Note that there is no guarantee that createControl() has been called, so the control may never have been created.

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.

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 -

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

getTemplateStore

protected abstract TemplateStore getTemplateStore()
Returns the template store used in this page.

Returns:
the template store

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

Eclipse Platform
Release 3.4

Guidelines for using Eclipse APIs.

Copyright (c) Eclipse contributors and others 2000, 2008. All rights reserved.