Class NewTypeWizardPage

    • 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.
      • ENCLOSINGSELECTION

        protected static final String ENCLOSINGSELECTION
        Field ID of the enclosing type checkbox.
        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
    • 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 trueif 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
      • 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