Package org.eclipse.jdt.ui.wizards

## Class NewTypeWizardPage

- java.lang.Object
- - org.eclipse.jface.dialogs.DialogPage
  - - org.eclipse.jface.wizard.WizardPage
    - - org.eclipse.jdt.ui.wizards.NewElementWizardPage
      - - org.eclipse.jdt.ui.wizards.NewContainerWizardPage
        - - org.eclipse.jdt.ui.wizards.NewTypeWizardPage

All Implemented Interfaces:
  `IDialogPage`, `IMessageProvider`, `IWizardPage`

Direct Known Subclasses:
  `NewAnnotationWizardPage`, `NewClassWizardPage`, `NewEnumWizardPage`, `NewInterfaceWizardPage`, `NewModuleInfoWizardPage`, `NewPackageWizardPage`, `NewRecordWizardPage`, `NewTestCaseWizardPageOne`, `NewTestSuiteWizardPage`

    public abstract class NewTypeWizardPage
    extends NewContainerWizardPage

The class `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`.

Since:
  2.0
See Also:
  `NewClassWizardPage`, `NewInterfaceWizardPage`, `NewEnumWizardPage`, `NewAnnotationWizardPage`

### Nested Class Summary

Nested Classes
`static class` `NewTypeWizardPage.ImportsManager` Class used in stub creation routines to add needed imports to a compilation unit.

### Field Summary

Fields
`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 org.eclipse.jdt.internal.ui.wizards.dialogfields.SelectionButtonDialogField` `fAddCommentButton`
`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.
`static int` `RECORD_TYPE` Constant to signal that the created type is an record.
`protected static String` `SUPER` Field ID of the super type input field.
`protected static String` `TYPENAME` Field ID of the type name input field.

### Fields inherited from class org.eclipse.jdt.ui.wizards.NewContainerWizardPage

`CONTAINER, fContainerStatus`

### Fields inherited from interface org.eclipse.jface.dialogs.IMessageProvider

`ERROR, INFORMATION, NONE, WARNING`

### Constructor Summary

Constructors
`NewTypeWizardPage​(boolean isClass, String pageName)` Creates a new `NewTypeWizardPage`.
`NewTypeWizardPage​(int typeKind, String pageName)` Creates a new `NewTypeWizardPage`.

### Method Summary

All Methods Instance Methods Concrete Methods Deprecated Methods
`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 Link` `createCommentWithLinkControls​(Composite composite, int nColumns, boolean isModule)` Creates the comment and link in the single line 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 (without the default file extension `java`, if entered).
`protected String` `getTypeNameLabel()` Returns the label that is used for the type name input field.
`protected String` `getUniqueJavaTypeName​(IPackageFragment pack, String name)` Generate a unique type name for some initially given name under the given package fragment.
`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.

### Methods inherited from class org.eclipse.jdt.ui.wizards.NewContainerWizardPage

`chooseContainer, createContainerControls, getContainerLabel, getCurrentTextSelection, getInitialJavaElement, getJavaProject, getMaxFieldWidth, getPackageFragmentRoot, getPackageFragmentRootText, getWorkspaceRoot, initContainerPage, initContainerPage, setFocusOnContainer, setPackageFragmentRoot`

### Methods inherited from class org.eclipse.jdt.ui.wizards.NewElementWizardPage

`setVisible, updateStatus, updateStatus`

### Methods inherited from class org.eclipse.jface.wizard.WizardPage

`canFlipToNextPage, getContainer, getDialogSettings, getImage, getName, getNextPage, getPreviousPage, getShell, getWizard, isCurrentPage, isPageComplete, setDescription, setErrorMessage, setImageDescriptor, setMessage, setPageComplete, setPreviousPage, setTitle, setWizard, toString`

### Methods inherited from class org.eclipse.jface.dialogs.DialogPage

`convertHeightInCharsToPixels, convertHorizontalDLUsToPixels, convertVerticalDLUsToPixels, convertWidthInCharsToPixels, dispose, getControl, getDescription, getDialogFontName, getErrorMessage, getFont, getMessage, getMessageType, getTitle, getToolTipText, initializeDialogUnits, isControlCreated, performHelp, setButtonLayoutData, setControl, setMessage`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Methods inherited from interface org.eclipse.jface.dialogs.IDialogPage

`createControl, dispose, getControl, getDescription, getErrorMessage, getMessage, getTitle, performHelp`

### Field Detail

#### F_PUBLIC

    public int F_PUBLIC

Public access flag. See The Java Virtual Machine Specification for more details.

#### F_PRIVATE

    public int F_PRIVATE

Private access flag. See The Java Virtual Machine Specification for more details.

#### F_PROTECTED

    public int F_PROTECTED

Protected access flag. See The Java Virtual Machine Specification for more details.

#### F_STATIC

    public int F_STATIC

Static access flag. See The Java Virtual Machine Specification for more details.

#### F_FINAL

    public int F_FINAL

Final access flag. See The Java Virtual Machine Specification for more details.

#### F_ABSTRACT

    public int F_ABSTRACT

Abstract property flag. See The Java Virtual Machine Specification for more details.

#### PACKAGE

    protected static final String PACKAGE

Field ID of the package input field.

See Also:
  Constant Field Values

#### ENCLOSING

    protected static final String ENCLOSING

Field ID of the enclosing type input field.

See Also:
  Constant Field Values

#### ENCLOSINGSELECTION

    protected static final String ENCLOSINGSELECTION

Field ID of the enclosing type checkbox.

See Also:
  Constant Field Values

#### TYPENAME

    protected static final String TYPENAME

Field ID of the type name input field.

See Also:
  Constant Field Values

#### SUPER

    protected static final String SUPER

Field ID of the super type input field.

See Also:
  Constant Field Values

#### INTERFACES

    protected static final String INTERFACES

Field ID of the super interfaces input field.

See Also:
  Constant Field Values

#### MODIFIERS

    protected static final String MODIFIERS

Field ID of the modifier check boxes.

See Also:
  Constant Field Values

#### METHODS

    protected static final String METHODS

Field ID of the method stubs check boxes.

See Also:
  Constant Field Values

#### fAddCommentButton

    protected org.eclipse.jdt.internal.ui.wizards.dialogfields.SelectionButtonDialogField fAddCommentButton

Restriction:
  This field is not intended to be referenced by clients.

#### fEnclosingTypeStatus

    protected IStatus fEnclosingTypeStatus

#### fPackageStatus

    protected IStatus fPackageStatus

#### fTypeNameStatus

    protected IStatus fTypeNameStatus

#### fSuperClassStatus

    protected IStatus fSuperClassStatus

#### fModifierStatus

    protected IStatus fModifierStatus

#### fSuperInterfacesStatus

    protected IStatus fSuperInterfacesStatus

#### CLASS_TYPE

    public static final int CLASS_TYPE

Constant to signal that the created type is a class.

Since:
  3.1
See Also:
  Constant Field Values

#### INTERFACE_TYPE

    public static final int INTERFACE_TYPE

Constant to signal that the created type is a interface.

Since:
  3.1
See Also:
  Constant Field Values

#### ENUM_TYPE

    public static final int ENUM_TYPE

Constant to signal that the created type is an enum.

Since:
  3.1
See Also:
  Constant Field Values

#### ANNOTATION_TYPE

    public static final int ANNOTATION_TYPE

Constant to signal that the created type is an annotation.

Since:
  3.1
See Also:
  Constant Field Values

#### RECORD_TYPE

    public static final int RECORD_TYPE

Constant to signal that the created type is an record.

Since:
  3.21
See Also:
  Constant Field Values
Restriction:
  This field is not intended to be referenced by clients.

### Constructor Detail

#### NewTypeWizardPage

    public NewTypeWizardPage​(boolean isClass,
                             String pageName)

Creates a new `NewTypeWizardPage`.

Parameters:
  `isClass` - `true` if a new class is to be created; otherwise an interface is to be created
  `pageName` - the wizard page's name

#### NewTypeWizardPage

    public NewTypeWizardPage​(int typeKind,
                             String pageName)

Creates a new `NewTypeWizardPage`.

Parameters:
  `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 name
Since:
  3.1

### Method Detail

#### initTypePage

    protected void initTypePage​(IJavaElement elem)

Initializes all fields provided by the page with a given selection.

Parameters:
  `elem` - the selection used to initialize this page or `null` if no selection was available

#### getUniqueJavaTypeName

    protected String getUniqueJavaTypeName​(IPackageFragment pack,
                                           String name)

Generate a unique type name for some initially given name under the given package fragment.

Parameters:
  `pack` - the package fragment under which to check for uniqueness
  `name` - the type name to check for uniqueness
Returns:
  a type name string that is unique under the given package fragment. If the initial type name is not unique, it is suffixed with a number greater than or equal to 2.
Since:
  3.17

#### getPackageLabel

    protected String getPackageLabel()

Returns the label that is used for the package input field.

Returns:
  the label that is used for the package input field.
Since:
  3.2

#### getEnclosingTypeLabel

    protected String getEnclosingTypeLabel()

Returns the label that is used for the enclosing type input field.

Returns:
  the label that is used for the enclosing type input field.
Since:
  3.2

#### getTypeNameLabel

    protected String getTypeNameLabel()

Returns the label that is used for the type name input field.

Returns:
  the label that is used for the type name input field.
Since:
  3.2

#### getModifiersLabel

    protected String getModifiersLabel()

Returns the label that is used for the modifiers input field.

Returns:
  the label that is used for the modifiers input field
Since:
  3.2

#### getSuperClassLabel

    protected String getSuperClassLabel()

Returns the label that is used for the super class input field.

Returns:
  the label that is used for the super class input field.
Since:
  3.2

#### getSuperInterfacesLabel

    protected String getSuperInterfacesLabel()

Returns the label that is used for the super interfaces input field.

Returns:
  the label that is used for the super interfaces input field.
Since:
  3.2

#### createSeparator

    protected void createSeparator​(Composite composite,
                                   int nColumns)

Creates a separator line. Expects a `GridLayout` with at least 1 column.

Parameters:
  `composite` - the parent composite
  `nColumns` - number of columns to span

#### createPackageControls

    protected void createPackageControls​(Composite composite,
                                         int nColumns)

Creates the controls for the package name field. Expects a `GridLayout` with at least 4 columns.

Parameters:
  `composite` - the parent composite
  `nColumns` - number of columns to span

#### createEnclosingTypeControls

    protected void createEnclosingTypeControls​(Composite composite,
                                               int nColumns)

Creates the controls for the enclosing type name field. Expects a `GridLayout` with at least 4 columns.

Parameters:
  `composite` - the parent composite
  `nColumns` - number of columns to span

#### createTypeNameControls

    protected void createTypeNameControls​(Composite composite,
                                          int nColumns)

Creates the controls for the type name field. Expects a `GridLayout` with at least 2 columns.

Parameters:
  `composite` - the parent composite
  `nColumns` - number of columns to span

#### createModifierControls

    protected void createModifierControls​(Composite composite,
                                          int nColumns)

Creates the controls for the modifiers radio/checkbox buttons. Expects a `GridLayout` with at least 3 columns.

Parameters:
  `composite` - the parent composite
  `nColumns` - number of columns to span

#### createSuperClassControls

    protected void createSuperClassControls​(Composite composite,
                                            int nColumns)

Creates the controls for the superclass name field. Expects a `GridLayout` with at least 3 columns.

Parameters:
  `composite` - the parent composite
  `nColumns` - number of columns to span

#### createSuperInterfacesControls

    protected void createSuperInterfacesControls​(Composite composite,
                                                 int nColumns)

Creates the controls for the superclass name field. Expects a `GridLayout` with at least 3 columns.

Parameters:
  `composite` - the parent composite
  `nColumns` - number of columns to span

#### createCommentControls

    protected void createCommentControls​(Composite composite,
                                         int nColumns)

Creates the controls for the preference page links. Expects a `GridLayout` with at least 3 columns.

Parameters:
  `composite` - the parent composite
  `nColumns` - number of columns to span
Since:
  3.1

#### createCommentWithLinkControls

    protected Link createCommentWithLinkControls​(Composite composite,
                                                 int nColumns,
                                                 boolean isModule)

Creates the comment and link in the single line for the preference page links. Expects a `GridLayout` with at least 2 columns.

Parameters:
  `composite` - the parent composite
  `nColumns` - number of columns to span
  `isModule` - if it is module or package
Returns:
  link is returned
Since:
  3.18

#### setFocus

    protected void setFocus()

Sets the focus on the type name input field.

#### handleFieldChanged

    protected void handleFieldChanged​(String fieldName)

Description copied from class: `NewContainerWizardPage`
Hook method that gets called when a field on this page has changed. For this page the method gets called when the source folder field changes.

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).

Overrides:
  `handleFieldChanged` in class `NewContainerWizardPage`
Parameters:
  `fieldName` - The name of the field that has changed (field id). For the source folder the field id is `CONTAINER`

#### getPackageText

    public String getPackageText()

Returns the text of the package input field.

Returns:
  the text of the package input field

#### getEnclosingTypeText

    public String getEnclosingTypeText()

Returns the text of the enclosing type input field.

Returns:
  the text of the enclosing type input field

#### getPackageFragment

    public IPackageFragment getPackageFragment()

Returns the package fragment corresponding to the current input.

Returns:
  a package fragment or `null` if the input could not be resolved.

#### setPackageFragment

    public void setPackageFragment​(IPackageFragment pack,
                                   boolean canBeModified)

Sets the package fragment to the given value. The method updates the model and the text of the control.

Parameters:
  `pack` - the package fragment to be set
  `canBeModified` - if `true` the package fragment is editable; otherwise it is read-only.

#### getEnclosingType

    public IType getEnclosingType()

Returns the enclosing type corresponding to the current input.

Returns:
  the enclosing type or `null` if the enclosing type is not selected or the input could not be resolved

#### setEnclosingType

    public void setEnclosingType​(IType type,
                                 boolean canBeModified)

Sets the enclosing type. The method updates the underlying model and the text of the control.

Parameters:
  `type` - the enclosing type
  `canBeModified` - if `true` the enclosing type field is editable; otherwise it is read-only.

#### isEnclosingTypeSelected

    public boolean isEnclosingTypeSelected()

Returns the selection state of the enclosing type checkbox.

Returns:
  the selection state of the enclosing type checkbox

#### setEnclosingTypeSelection

    public void setEnclosingTypeSelection​(boolean isSelected,
                                          boolean canBeModified)

Sets the enclosing type checkbox's selection state.

Parameters:
  `isSelected` - the checkbox's selection state
  `canBeModified` - if `true` the enclosing type checkbox is modifiable; otherwise it is read-only.

#### getTypeName

    public String getTypeName()

Returns the type name entered into the type input field (without the default file extension `java`, if entered).

Returns:
  the type name

#### setTypeName

    public void setTypeName​(String name,
                            boolean canBeModified)

Sets the type name input field's text to the given value. Method doesn't update the model.

Parameters:
  `name` - the new type name
  `canBeModified` - if `true` the type name field is editable; otherwise it is read-only.

#### getModifiers

    public int getModifiers()

Returns the selected modifiers.

Returns:
  the selected modifiers
See Also:
  `Flags`

#### setModifiers

    public void setModifiers​(int modifiers,
                             boolean canBeModified)

Sets the modifiers.

Parameters:
  `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-only
See Also:
  `Flags`

#### getSuperClass

    public String getSuperClass()

Returns the content of the superclass input field.

Returns:
  the superclass name

#### setSuperClass

    public void setSuperClass​(String name,
                              boolean canBeModified)

Sets the super class name.

Parameters:
  `name` - the new superclass name
  `canBeModified` - if `true` the superclass name field is editable; otherwise it is read-only.

#### getSuperInterfaces

    public List<String> getSuperInterfaces()

Returns the chosen super interfaces.

Returns:
  a list of chosen super interfaces. The list's elements are of type `String`

#### setSuperInterfaces

    public void setSuperInterfaces​(List<String> interfacesNames,
                                   boolean canBeModified)

Sets the super interfaces.

Parameters:
  `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.

#### addSuperInterface

    public 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.

Parameters:
  `superInterface` - the fully qualified type name of the interface.
Returns:
  returns `true`if the interfaces has been added, `false` if the interface already is in the list.
Since:
  3.2

#### setAddComments

    public void setAddComments​(boolean doAddComments,
                               boolean canBeModified)

Sets 'Add comment' checkbox. The value set will only be used when creating source when the comment control is enabled (see `enableCommentControl(boolean)`

Parameters:
  `doAddComments` - if `true`, comments are added.
  `canBeModified` - if `true` check box is editable; otherwise it is read-only.
Since:
  3.1

#### enableCommentControl

    public void enableCommentControl​(boolean useAddCommentValue)

Sets to use the 'Add comment' checkbox value. Clients that use the 'Add comment' checkbox additionally have to enable the control. This has been added for backwards compatibility.

Parameters:
  `useAddCommentValue` - if `true`,
Since:
  3.1

#### isAddComments

    public boolean isAddComments()

Returns if comments are added. This method can be overridden by clients. The selection of the comment control is taken if enabled (see `enableCommentControl(boolean)`, otherwise the settings as specified in the preferences is used.

Returns:
  Returns `true` if comments can be added
Since:
  3.1

#### getModifiedResource

    public IResource getModifiedResource()

Returns the resource handle that corresponds to the compilation unit to was or will be created or modified.

Returns:
  A resource or null if the page contains illegal values.
Since:
  3.0

#### containerChanged

    protected IStatus containerChanged()

Description copied from class: `NewContainerWizardPage`
This method is a hook which gets called after the source folder's text input field has changed. This default implementation updates the model and returns an error status. The underlying model is only valid if the returned status is OK.

Overrides:
  `containerChanged` in class `NewContainerWizardPage`
Returns:
  the model's error status

#### packageChanged

    protected IStatus packageChanged()

A hook method that gets called when the package field has changed. The method validates the package name and returns the status of the validation. The validation also updates the package fragment model.

Subclasses may extend this method to perform their own validation.

Returns:
  the status of the validation

#### enclosingTypeChanged

    protected IStatus enclosingTypeChanged()

Hook method that gets called when the enclosing type name has changed. The method validates the enclosing type and returns the status of the validation. It also updates the enclosing type model.

Subclasses may extend this method to perform their own validation.

Returns:
  the status of the validation

#### getCompilationUnitName

    protected String getCompilationUnitName​(String typeName)

Hook method that is called when evaluating the name of the compilation unit to create. By default, a file extension `java` is added to the given type name, but implementors can override this behavior.

Parameters:
  `typeName` - the name of the type to create the compilation unit for.
Returns:
  the name of the compilation unit to be created for the given name
Since:
  3.2

#### typeNameChanged

    protected IStatus typeNameChanged()

Hook method that gets called when the type name has changed. The method validates the type name and returns the status of the validation.

Subclasses may extend this method to perform their own validation.

Returns:
  the status of the validation

#### superClassChanged

    protected IStatus superClassChanged()

Hook method that gets called when the superclass name has changed. The method validates the superclass name and returns the status of the validation.

Subclasses may extend this method to perform their own validation.

Returns:
  the status of the validation

#### superInterfacesChanged

    protected IStatus superInterfacesChanged()

Hook method that gets called when the list of super interface has changed. The method validates the super interfaces and returns the status of the validation.

Subclasses may extend this method to perform their own validation.

Returns:
  the status of the validation

#### modifiersChanged

    protected IStatus modifiersChanged()

Hook method that gets called when the modifiers have changed. The method validates the modifiers and returns the status of the validation.

Subclasses may extend this method to perform their own validation.

Returns:
  the status of the validation

#### choosePackage

    protected IPackageFragment choosePackage()

Opens a selection dialog that allows to select a package.

Returns:
  returns the selected package or `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.

Since:
  3.2

#### chooseEnclosingType

    protected IType chooseEnclosingType()

Opens a selection dialog that allows to select an enclosing type.

Returns:
  returns the selected type or `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.

Since:
  3.2

#### chooseSuperClass

    protected IType chooseSuperClass()

Opens a selection dialog that allows to select a super class.

Returns:
  returns the selected type or `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.

Since:
  3.2

#### chooseSuperInterfaces

    protected void chooseSuperInterfaces()

Opens a selection dialog that allows to select the super interfaces. The selected interfaces are directly added to the wizard page using `addSuperInterface(String)`.

Clients can override this method if they want to offer a different dialog.

Since:
  3.2

#### createType

    public void createType​(IProgressMonitor monitor)
                    throws CoreException,
                           InterruptedException

Creates the new type using the entered field values.

Parameters:
  `monitor` - a progress monitor to report progress.
Throws:
  `CoreException` - Thrown when the creation failed.
  `InterruptedException` - Thrown when the operation was canceled.

#### constructCUContent

    protected String constructCUContent​(ICompilationUnit cu,
                                        String typeContent,
                                        String lineDelimiter)
                                 throws CoreException

Uses the New Java file template from the code template page to generate a compilation unit with the given type content.

Parameters:
  `cu` - The new created compilation unit
  `typeContent` - The content of the type, including signature and type body.
  `lineDelimiter` - The line delimiter to be used.
Returns:
  String Returns the result of evaluating the new file template with the given type content.
Throws:
  `CoreException` - when fetching the file comment fails or fetching the content for the new compilation unit fails
Since:
  2.1

#### getCreatedType

    public IType getCreatedType()

Returns the created type or `null` is the type has not been created yet. The method only returns a valid type after `createType` has been called.

Returns:
  the created type
See Also:
  `createType(IProgressMonitor)`

#### createTypeMembers

    protected void createTypeMembers​(IType newType,
                                     NewTypeWizardPage.ImportsManager imports,
                                     IProgressMonitor monitor)
                              throws CoreException

Hook method that gets called from `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.

Parameters:
  `newType` - the new type created via `createType`
  `imports` - an import manager which can be used to add new imports
  `monitor` - a progress monitor to report progress. Must not be `null`
Throws:
  `CoreException` - thrown when creation of the type members failed
See Also:
  `createType(IProgressMonitor)`

#### getFileComment

    @Deprecated
    protected String getFileComment​(ICompilationUnit parentCU)

Deprecated.
Instead of file templates, the new type code template specifies the stub for a compilation unit.

Parameters:
  `parentCU` - the current compilation unit
Returns:
  returns the file template or `null`

#### getFileComment

    protected String getFileComment​(ICompilationUnit parentCU,
                                    String lineDelimiter)
                             throws CoreException

Hook method that gets called from `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.

Parameters:
  `parentCU` - the parent compilation unit
  `lineDelimiter` - the line delimiter to use
Returns:
  the file comment or `null` if a file comment is not desired
Throws:
  `CoreException` - when fetching the file comment fails
Since:
  3.1

#### getTypeComment

    protected String getTypeComment​(ICompilationUnit parentCU,
                                    String lineDelimiter)

Hook method that gets called from `createType` to retrieve a type comment. This default implementation returns the content of the 'type comment' template.

Parameters:
  `parentCU` - the parent compilation unit
  `lineDelimiter` - the line delimiter to use
Returns:
  the type comment or `null` if a type comment is not desired
Since:
  3.0

#### getTypeComment

    @Deprecated
    protected String getTypeComment​(ICompilationUnit parentCU)

Deprecated.
Use getTypeComment(ICompilationUnit, String)

Parameters:
  `parentCU` - the current compilation unit
Returns:
  returns the template or `null`

#### getTemplate

    @Deprecated
    protected String getTemplate​(String name,
                                 ICompilationUnit parentCU)

Deprecated.
Use getTemplate(String,ICompilationUnit,int)

Parameters:
  `name` - the name of the template
  `parentCU` - the current compilation unit
Returns:
  returns the template or `null`

#### getTemplate

    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. This accesses the normal template page, not the code templates. To use code templates use `constructCUContent` to construct a compilation unit stub or getTypeComment for the comment of the type.

Parameters:
  `name` - the template to be evaluated
  `parentCU` - the templates evaluation context
  `pos` - a source offset into the parent compilation unit. The template is evaluated at the given source offset
Returns:
  return the template with the given name or `null` if the template could not be found.

#### createInheritedMethods

    protected IMethod[] createInheritedMethods​(IType type,
                                               boolean doConstructors,
                                               boolean doUnimplementedMethods,
                                               NewTypeWizardPage.ImportsManager imports,
                                               IProgressMonitor monitor)
                                        throws CoreException

Creates the bodies of all unimplemented methods and constructors and adds them to the type. Method is typically called by implementers of `NewTypeWizardPage` to add needed method and constructors.

Parameters:
  `type` - the type for which the new methods and constructor are to be created
  `doConstructors` - if `true` unimplemented constructors are created
  `doUnimplementedMethods` - if `true` unimplemented methods are created
  `imports` - an import manager to add all needed import statements
  `monitor` - a progress monitor to report progress
Returns:
  the created methods.
Throws:
  `CoreException` - thrown when the creation fails.

#### getRunnable

    public IRunnableWithProgress getRunnable()

Returns the runnable that creates the type using the current settings. The returned runnable must be executed in the UI thread.

Returns:
  the runnable to create the new type