@Target(value={TYPE,METHOD,PACKAGE}) @Retention(value=SOURCE) public @interface TemplateRegistration
InstantiatingIterator
for a custom template;
or on a package to register a plain-file template with no custom behavior
or define an HTML wizard using the page
attribute.TemplateRegistrations
,
org.netbeans.spi.project.ui.templates.support
Modifier and Type | Required Element and Description |
---|---|
String |
folder
Subfolder in which to place the template, such as
Other or Project/Standard . |
Modifier and Type | Optional Element and Description |
---|---|
String[] |
category
Optional list of categories interpreted by the project system.
|
String[] |
content
File contents, as resources relative to the package of this declaration.
|
String |
description
Optional but recommended relative resource path to an HTML description of the template.
|
String |
displayName
Localized label for the template.
|
String |
iconBase
Icon to use for the template.
|
String |
id
Special file basename to use rather than inferring one from the declaring element,
when
TemplateRegistration.content() is empty. |
String |
page
Location of the HTML page that should be used as a user interface
for the wizard while instantiating this template.
|
int |
position
Optional position within
TemplateRegistration.folder() . |
boolean |
requireProject
Set to false if the template can be instantiated without a project.
|
String |
scriptEngine
Optional name of a script engine to use when processing file content, such as
freemarker . |
String |
targetName
Default (pre-filled) target name for the template, without extension.
|
String[] |
techIds
Selects some of provided technologies.
|
public abstract String folder
Other
or Project/Standard
.public abstract int position
TemplateRegistration.folder()
.public abstract String id
TemplateRegistration.content()
is empty.
Useful for pure templates referenced from PrivilegedTemplates
.public abstract String[] content
Normally only a single file is specified, but for a multifile data object, list the primary entry first.
The file basenames (incl. extension) of the actual template files (as in TemplateWizard.getTemplate()
)
will be taken from the basename of the content resources, though a .template
suffix
may be appended to prevent template resources in a source project from being misinterpreted.
For a "pure" custom iterator with no specified content, the template basename
defaults to the FQN of the class or method defining it but with -
for .
characters,
e.g. pkg-Class-method
, but may be overridden with TemplateRegistration.id()
.
Example usage for a simple, single-file template (with or without custom iterator):
content="resources/empty.php"
For a form template:
content={"Login.java.template", "Login.form.template"}
public abstract String displayName
TemplateRegistration.content()
is specified, in which case it would be defaulted by the data node.
May use the usual #key
syntax.public abstract String iconBase
TemplateRegistration.content()
is specified, in which case it would be defaulted by the data node.public abstract String description
public abstract String scriptEngine
freemarker
.ScriptEngineFactory.getNames()
public abstract String[] category
public abstract boolean requireProject
true
or false
public abstract String targetName
#key
syntax for localization or branding.public abstract String page
OpenIDE-Module-Needs: org.netbeans.api.templates.wizardThere is a tutorial describing usage of HTML UI in NetBeans wizards:
public abstract String[] techIds