public abstract class NewTypeWizardPage extends NewContainerWizardPage
NewTypeWizardPage
contains controls and validation routines
for a 'New Type WizardPage'. Implementors decide which components to add and to enable.
Implementors can also customize the validation code. NewTypeWizardPage
is intended to serve as base class of all wizards that create types like applets, servlets, classes,
interfaces, etc.
See NewClassWizardPage
or NewInterfaceWizardPage
for an
example usage of the NewTypeWizardPage
.
NewClassWizardPage
,
NewInterfaceWizardPage
,
NewEnumWizardPage
,
NewAnnotationWizardPage
Modifier and Type | Class and Description |
---|---|
static class |
NewTypeWizardPage.ImportsManager
Class used in stub creation routines to add needed imports to a
compilation unit.
|
Modifier and Type | Field and Description |
---|---|
static int |
ANNOTATION_TYPE
Constant to signal that the created type is an annotation.
|
static int |
CLASS_TYPE
Constant to signal that the created type is a class.
|
protected static String |
ENCLOSING
Field ID of the enclosing type input field.
|
protected static String |
ENCLOSINGSELECTION
Field ID of the enclosing type checkbox.
|
static int |
ENUM_TYPE
Constant to signal that the created type is an enum.
|
int |
F_ABSTRACT
Abstract property flag.
|
int |
F_FINAL
Final access flag.
|
int |
F_PRIVATE
Private access flag.
|
int |
F_PROTECTED
Protected access flag.
|
int |
F_PUBLIC
Public access flag.
|
int |
F_STATIC
Static access flag.
|
protected IStatus |
fEnclosingTypeStatus |
protected IStatus |
fModifierStatus |
protected IStatus |
fPackageStatus |
protected IStatus |
fSuperClassStatus |
protected IStatus |
fSuperInterfacesStatus |
protected IStatus |
fTypeNameStatus |
static int |
INTERFACE_TYPE
Constant to signal that the created type is a interface.
|
protected static String |
INTERFACES
Field ID of the super interfaces input field.
|
protected static String |
METHODS
Field ID of the method stubs check boxes.
|
protected static String |
MODIFIERS
Field ID of the modifier check boxes.
|
protected static String |
PACKAGE
Field ID of the package input field.
|
protected static String |
SUPER
Field ID of the super type input field.
|
protected static String |
TYPENAME
Field ID of the type name input field.
|
CONTAINER, fContainerStatus
ERROR, INFORMATION, NONE, WARNING
Constructor and Description |
---|
NewTypeWizardPage(boolean isClass,
String pageName)
Creates a new
NewTypeWizardPage . |
NewTypeWizardPage(int typeKind,
String pageName)
Creates a new
NewTypeWizardPage . |
Modifier and Type | Method and Description |
---|---|
boolean |
addSuperInterface(String superInterface)
Adds a super interface to the end of the list and selects it if it is not in the list yet.
|
protected IType |
chooseEnclosingType()
Opens a selection dialog that allows to select an enclosing type.
|
protected IPackageFragment |
choosePackage()
Opens a selection dialog that allows to select a package.
|
protected IType |
chooseSuperClass()
Opens a selection dialog that allows to select a super class.
|
protected void |
chooseSuperInterfaces()
Opens a selection dialog that allows to select the super interfaces.
|
protected String |
constructCUContent(ICompilationUnit cu,
String typeContent,
String lineDelimiter)
Uses the New Java file template from the code template page to generate a
compilation unit with the given type content.
|
protected IStatus |
containerChanged()
This method is a hook which gets called after the source folder's
text input field has changed.
|
protected void |
createCommentControls(Composite composite,
int nColumns)
Creates the controls for the preference page links.
|
protected void |
createEnclosingTypeControls(Composite composite,
int nColumns)
Creates the controls for the enclosing type name field.
|
protected IMethod[] |
createInheritedMethods(IType type,
boolean doConstructors,
boolean doUnimplementedMethods,
NewTypeWizardPage.ImportsManager imports,
IProgressMonitor monitor)
Creates the bodies of all unimplemented methods and constructors and adds them to the type.
|
protected void |
createModifierControls(Composite composite,
int nColumns)
Creates the controls for the modifiers radio/checkbox buttons.
|
protected void |
createPackageControls(Composite composite,
int nColumns)
Creates the controls for the package name field.
|
protected void |
createSeparator(Composite composite,
int nColumns)
Creates a separator line.
|
protected void |
createSuperClassControls(Composite composite,
int nColumns)
Creates the controls for the superclass name field.
|
protected void |
createSuperInterfacesControls(Composite composite,
int nColumns)
Creates the controls for the superclass name field.
|
void |
createType(IProgressMonitor monitor)
Creates the new type using the entered field values.
|
protected void |
createTypeMembers(IType newType,
NewTypeWizardPage.ImportsManager imports,
IProgressMonitor monitor)
Hook method that gets called from
createType to support adding of
unanticipated methods, fields, and inner types to the created type. |
protected void |
createTypeNameControls(Composite composite,
int nColumns)
Creates the controls for the type name field.
|
void |
enableCommentControl(boolean useAddCommentValue)
Sets to use the 'Add comment' checkbox value.
|
protected IStatus |
enclosingTypeChanged()
Hook method that gets called when the enclosing type name has changed.
|
protected String |
getCompilationUnitName(String typeName)
Hook method that is called when evaluating the name of the compilation unit to create.
|
IType |
getCreatedType()
Returns the created type or
null is the type has not been created yet. |
IType |
getEnclosingType()
Returns the enclosing type corresponding to the current input.
|
protected String |
getEnclosingTypeLabel()
Returns the label that is used for the enclosing type input field.
|
String |
getEnclosingTypeText()
Returns the text of the enclosing type input field.
|
protected String |
getFileComment(ICompilationUnit parentCU)
Deprecated.
Instead of file templates, the new type code template
specifies the stub for a compilation unit.
|
protected String |
getFileComment(ICompilationUnit parentCU,
String lineDelimiter)
Hook method that gets called from
createType to retrieve
a file comment. |
IResource |
getModifiedResource()
Returns the resource handle that corresponds to the compilation unit to was or
will be created or modified.
|
int |
getModifiers()
Returns the selected modifiers.
|
protected String |
getModifiersLabel()
Returns the label that is used for the modifiers input field.
|
IPackageFragment |
getPackageFragment()
Returns the package fragment corresponding to the current input.
|
protected String |
getPackageLabel()
Returns the label that is used for the package input field.
|
String |
getPackageText()
Returns the text of the package input field.
|
IRunnableWithProgress |
getRunnable()
Returns the runnable that creates the type using the current settings.
|
String |
getSuperClass()
Returns the content of the superclass input field.
|
protected String |
getSuperClassLabel()
Returns the label that is used for the super class input field.
|
List<String> |
getSuperInterfaces()
Returns the chosen super interfaces.
|
protected String |
getSuperInterfacesLabel()
Returns the label that is used for the super interfaces input field.
|
protected String |
getTemplate(String name,
ICompilationUnit parentCU)
Deprecated.
Use getTemplate(String,ICompilationUnit,int)
|
protected String |
getTemplate(String name,
ICompilationUnit parentCU,
int pos)
Returns the string resulting from evaluation the given template in
the context of the given compilation unit.
|
protected String |
getTypeComment(ICompilationUnit parentCU)
Deprecated.
Use getTypeComment(ICompilationUnit, String)
|
protected String |
getTypeComment(ICompilationUnit parentCU,
String lineDelimiter)
Hook method that gets called from
createType to retrieve
a type comment. |
String |
getTypeName()
Returns the type name entered into the type input field.
|
protected String |
getTypeNameLabel()
Returns the label that is used for the type name input field.
|
protected void |
handleFieldChanged(String fieldName)
Hook method that gets called when a field on this page has changed.
|
protected void |
initTypePage(IJavaElement elem)
Initializes all fields provided by the page with a given selection.
|
boolean |
isAddComments()
Returns if comments are added.
|
boolean |
isEnclosingTypeSelected()
Returns the selection state of the enclosing type checkbox.
|
protected IStatus |
modifiersChanged()
Hook method that gets called when the modifiers have changed.
|
protected IStatus |
packageChanged()
A hook method that gets called when the package field has changed.
|
void |
setAddComments(boolean doAddComments,
boolean canBeModified)
Sets 'Add comment' checkbox.
|
void |
setEnclosingType(IType type,
boolean canBeModified)
Sets the enclosing type.
|
void |
setEnclosingTypeSelection(boolean isSelected,
boolean canBeModified)
Sets the enclosing type checkbox's selection state.
|
protected void |
setFocus()
Sets the focus on the type name input field.
|
void |
setModifiers(int modifiers,
boolean canBeModified)
Sets the modifiers.
|
void |
setPackageFragment(IPackageFragment pack,
boolean canBeModified)
Sets the package fragment to the given value.
|
void |
setSuperClass(String name,
boolean canBeModified)
Sets the super class name.
|
void |
setSuperInterfaces(List<String> interfacesNames,
boolean canBeModified)
Sets the super interfaces.
|
void |
setTypeName(String name,
boolean canBeModified)
Sets the type name input field's text to the given value.
|
protected IStatus |
superClassChanged()
Hook method that gets called when the superclass name has changed.
|
protected IStatus |
superInterfacesChanged()
Hook method that gets called when the list of super interface has changed.
|
protected IStatus |
typeNameChanged()
Hook method that gets called when the type name has changed.
|
chooseContainer, createContainerControls, getContainerLabel, getCurrentTextSelection, getInitialJavaElement, getJavaProject, getMaxFieldWidth, getPackageFragmentRoot, getPackageFragmentRootText, getWorkspaceRoot, initContainerPage, setFocusOnContainer, setPackageFragmentRoot
setVisible, updateStatus, updateStatus
canFlipToNextPage, getContainer, getDialogSettings, getImage, getName, getNextPage, getPreviousPage, getShell, getWizard, isCurrentPage, isPageComplete, setDescription, setErrorMessage, setImageDescriptor, setMessage, setPageComplete, setPreviousPage, setTitle, setWizard, toString
convertHeightInCharsToPixels, convertHorizontalDLUsToPixels, convertVerticalDLUsToPixels, convertWidthInCharsToPixels, dispose, getControl, getDescription, getDialogFontName, getErrorMessage, getFont, getMessage, getMessageType, getTitle, getToolTipText, initializeDialogUnits, isControlCreated, performHelp, setButtonLayoutData, setControl, setMessage
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
createControl, dispose, getControl, getDescription, getErrorMessage, getMessage, getTitle, performHelp
public int F_PUBLIC
public int F_PRIVATE
public int F_PROTECTED
public int F_STATIC
public int F_FINAL
public int F_ABSTRACT
protected static final String PACKAGE
protected static final String ENCLOSING
protected static final String ENCLOSINGSELECTION
protected static final String TYPENAME
protected static final String SUPER
protected static final String INTERFACES
protected static final String MODIFIERS
protected static final String METHODS
protected IStatus fEnclosingTypeStatus
protected IStatus fPackageStatus
protected IStatus fTypeNameStatus
protected IStatus fSuperClassStatus
protected IStatus fModifierStatus
protected IStatus fSuperInterfacesStatus
public static final int CLASS_TYPE
public static final int INTERFACE_TYPE
public static final int ENUM_TYPE
public static final int ANNOTATION_TYPE
public NewTypeWizardPage(boolean isClass, String pageName)
NewTypeWizardPage
.isClass
- true
if a new class is to be created; otherwise
an interface is to be createdpageName
- the wizard page's namepublic NewTypeWizardPage(int typeKind, String pageName)
NewTypeWizardPage
.typeKind
- Signals the kind of the type to be created. Valid kinds are
CLASS_TYPE
, INTERFACE_TYPE
, ENUM_TYPE
and ANNOTATION_TYPE
pageName
- the wizard page's nameprotected void initTypePage(IJavaElement elem)
elem
- the selection used to initialize this page or
null
if no selection was availableprotected String getPackageLabel()
protected String getEnclosingTypeLabel()
protected String getTypeNameLabel()
protected String getModifiersLabel()
protected String getSuperClassLabel()
protected String getSuperInterfacesLabel()
protected void createSeparator(Composite composite, int nColumns)
GridLayout
with at least 1 column.composite
- the parent compositenColumns
- number of columns to spanprotected void createPackageControls(Composite composite, int nColumns)
GridLayout
with at
least 4 columns.composite
- the parent compositenColumns
- number of columns to spanprotected void createEnclosingTypeControls(Composite composite, int nColumns)
GridLayout
with at
least 4 columns.composite
- the parent compositenColumns
- number of columns to spanprotected void createTypeNameControls(Composite composite, int nColumns)
GridLayout
with at
least 2 columns.composite
- the parent compositenColumns
- number of columns to spanprotected void createModifierControls(Composite composite, int nColumns)
GridLayout
with at least 3 columns.composite
- the parent compositenColumns
- number of columns to spanprotected void createSuperClassControls(Composite composite, int nColumns)
GridLayout
with at least 3 columns.composite
- the parent compositenColumns
- number of columns to spanprotected void createSuperInterfacesControls(Composite composite, int nColumns)
GridLayout
with
at least 3 columns.composite
- the parent compositenColumns
- number of columns to spanprotected void createCommentControls(Composite composite, int nColumns)
GridLayout
with
at least 3 columns.composite
- the parent compositenColumns
- number of columns to spanprotected void setFocus()
protected void handleFieldChanged(String fieldName)
NewContainerWizardPage
Every sub type is responsible to call this method when a field on its page has changed. Subtypes override (extend) the method to add verification when a own field has a dependency to an other field. For example the class name input must be verified again when the package field changes (check for duplicated class names).
handleFieldChanged
in class NewContainerWizardPage
fieldName
- The name of the field that has changed (field id). For the
source folder the field id is CONTAINER
public String getPackageText()
public String getEnclosingTypeText()
public IPackageFragment getPackageFragment()
null
if the input
could not be resolved.public void setPackageFragment(IPackageFragment pack, boolean canBeModified)
pack
- the package fragment to be setcanBeModified
- if true
the package fragment is
editable; otherwise it is read-only.public IType getEnclosingType()
null
if the enclosing type is
not selected or the input could not be resolvedpublic void setEnclosingType(IType type, boolean canBeModified)
type
- the enclosing typecanBeModified
- if true
the enclosing type field is
editable; otherwise it is read-only.public boolean isEnclosingTypeSelected()
public void setEnclosingTypeSelection(boolean isSelected, boolean canBeModified)
isSelected
- the checkbox's selection statecanBeModified
- if true
the enclosing type checkbox is
modifiable; otherwise it is read-only.public String getTypeName()
public void setTypeName(String name, boolean canBeModified)
name
- the new type namecanBeModified
- if true
the type name field is
editable; otherwise it is read-only.public int getModifiers()
Flags
public void setModifiers(int modifiers, boolean canBeModified)
modifiers
- F_PUBLIC
, F_PRIVATE
,
F_PROTECTED
, F_ABSTRACT
, F_FINAL
or F_STATIC
or a valid combination.canBeModified
- if true
the modifier fields are
editable; otherwise they are read-onlyFlags
public String getSuperClass()
public void setSuperClass(String name, boolean canBeModified)
name
- the new superclass namecanBeModified
- if true
the superclass name field is
editable; otherwise it is read-only.public List<String> getSuperInterfaces()
String
public void setSuperInterfaces(List<String> interfacesNames, boolean canBeModified)
interfacesNames
- a list of super interface. The method requires that
the list's elements are of type String
canBeModified
- if true
the super interface field is
editable; otherwise it is read-only.public boolean addSuperInterface(String superInterface)
superInterface
- the fully qualified type name of the interface.true
if the interfaces has been added, false
if the interface already is in the list.public void setAddComments(boolean doAddComments, boolean canBeModified)
enableCommentControl(boolean)
doAddComments
- if true
, comments are added.canBeModified
- if true
check box is
editable; otherwise it is read-only.public void enableCommentControl(boolean useAddCommentValue)
useAddCommentValue
- if true
,public boolean isAddComments()
enableCommentControl(boolean)
, otherwise
the settings as specified in the preferences is used.true
if comments can be addedpublic IResource getModifiedResource()
protected IStatus containerChanged()
NewContainerWizardPage
containerChanged
in class NewContainerWizardPage
protected IStatus packageChanged()
Subclasses may extend this method to perform their own validation.
protected IStatus enclosingTypeChanged()
Subclasses may extend this method to perform their own validation.
protected String getCompilationUnitName(String typeName)
java
is added to the given type name, but implementors can override this behavior.typeName
- the name of the type to create the compilation unit for.protected IStatus typeNameChanged()
Subclasses may extend this method to perform their own validation.
protected IStatus superClassChanged()
Subclasses may extend this method to perform their own validation.
protected IStatus superInterfacesChanged()
Subclasses may extend this method to perform their own validation.
protected IStatus modifiersChanged()
Subclasses may extend this method to perform their own validation.
protected IPackageFragment choosePackage()
null
if the dialog has been canceled.
The caller typically sets the result to the package input field.
Clients can override this method if they want to offer a different dialog.
protected IType chooseEnclosingType()
null
if the dialog has been canceled.
The caller typically sets the result to the enclosing type input field.
Clients can override this method if they want to offer a different dialog.
protected IType chooseSuperClass()
null
if the dialog has been canceled.
The caller typically sets the result to the super class input field.
Clients can override this method if they want to offer a different dialog.
protected void chooseSuperInterfaces()
addSuperInterface(String)
.
Clients can override this method if they want to offer a different dialog.
public void createType(IProgressMonitor monitor) throws CoreException, InterruptedException
monitor
- a progress monitor to report progress.CoreException
- Thrown when the creation failed.InterruptedException
- Thrown when the operation was canceled.protected String constructCUContent(ICompilationUnit cu, String typeContent, String lineDelimiter) throws CoreException
cu
- The new created compilation unittypeContent
- The content of the type, including signature and type
body.lineDelimiter
- The line delimiter to be used.CoreException
- when fetching the file comment fails or fetching the content for the
new compilation unit failspublic IType getCreatedType()
null
is the type has not been created yet. The method
only returns a valid type after createType
has been called.createType(IProgressMonitor)
protected void createTypeMembers(IType newType, NewTypeWizardPage.ImportsManager imports, IProgressMonitor monitor) throws CoreException
createType
to support adding of
unanticipated methods, fields, and inner types to the created type.
Implementers can use any methods defined on IType
to manipulate the
new type.
The source code of the new type will be formatted using the platform's formatter. Needed imports are added by the wizard at the end of the type creation process using the given import manager.
newType
- the new type created via createType
imports
- an import manager which can be used to add new importsmonitor
- a progress monitor to report progress. Must not be null
CoreException
- thrown when creation of the type members failedcreateType(IProgressMonitor)
protected String getFileComment(ICompilationUnit parentCU)
parentCU
- the current compilation unitnull
protected String getFileComment(ICompilationUnit parentCU, String lineDelimiter) throws CoreException
createType
to retrieve
a file comment. This default implementation returns the content of the
'file comment' template or null
if no comment should be created.parentCU
- the parent compilation unitlineDelimiter
- the line delimiter to usenull
if a file comment
is not desiredCoreException
- when fetching the file comment failsprotected String getTypeComment(ICompilationUnit parentCU, String lineDelimiter)
createType
to retrieve
a type comment. This default implementation returns the content of the
'type comment' template.parentCU
- the parent compilation unitlineDelimiter
- the line delimiter to usenull
if a type comment
is not desiredprotected String getTypeComment(ICompilationUnit parentCU)
parentCU
- the current compilation unitnull
protected String getTemplate(String name, ICompilationUnit parentCU)
name
- the name of the templateparentCU
- the current compilation unitnull
protected String getTemplate(String name, ICompilationUnit parentCU, int pos)
constructCUContent
to construct a compilation unit stub or
getTypeComment for the comment of the type.name
- the template to be evaluatedparentCU
- the templates evaluation contextpos
- a source offset into the parent compilation unit. The
template is evaluated at the given source offsetnull
if the template could not be found.protected IMethod[] createInheritedMethods(IType type, boolean doConstructors, boolean doUnimplementedMethods, NewTypeWizardPage.ImportsManager imports, IProgressMonitor monitor) throws CoreException
NewTypeWizardPage
to add
needed method and constructors.type
- the type for which the new methods and constructor are to be createddoConstructors
- if true
unimplemented constructors are createddoUnimplementedMethods
- if true
unimplemented methods are createdimports
- an import manager to add all needed import statementsmonitor
- a progress monitor to report progressCoreException
- thrown when the creation fails.public IRunnableWithProgress getRunnable()
Copyright (c) 2000, 2015 Eclipse Contributors and others. All rights reserved.Guidelines for using Eclipse APIs.