Package org.eclipse.pde.ui.templates
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 Summary
Modifier and TypeMethodDescriptionvoid
Adds template-related pages to the wizard.void
execute
(IProject project, IPluginModelBase model, IProgressMonitor monitor) Executes the template.getDependencies
(String schemaVersion) Provides the list of template dependencies.Returns a description of the section.getLabel()
Returns a presentable label the section.String[]
Returns an array of tokens representing new files and folders created by this template section.int
Returns the number of work units that this template will consume during the execution.getPage
(int pageIndex) Returns a wizard page at the provided index.int
Returns number of pages that are contributed by this template.boolean
Tests whether this template have had a chance to create its pages.getReplacementString
(String fileName, String key) Returns a replacement string for the provided key.Returns the URL of the zip file containing template files and directories that will be created in the plug-in project.Returns identifier of the extension point used in this section.
-
Method Details
-
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
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
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
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
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-inmodel
- structured representation of the plug-in manifestmonitor
- 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 ofbuild.properties
file so that the generated files and folders are included in the binary build. The tokens will be added as-is to the variablebin.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 inbuild.properties
file.
-