Custom Wizard Pages for MBS New Project Wizards

Identifier:
org.eclipse.cdt.managedbuilder.ui.newWizardPages

Since:
3.0

Description:
This extension point allows for the specification of pages to the New Managed C/C++ wizards. Via this extension point, the developer may specify one or more wizard pages to add to the wizard, and optionally only add these pages if certain conditions on the project type, project toolchain, and project nature are met. The developer may also specify a Java class which performs any operations pursuant to the state of the wizard when the user clicks Finish.

Configuration Markup:

<!ELEMENT extension (wizardPage+)>

<!ATTLIST extension

point CDATA #REQUIRED

id    CDATA #IMPLIED

name  CDATA #IMPLIED>

Extensions to this extension point must contain at least one wizardPage child element.



<!ELEMENT wizardPage (nature* , toolchain* , projectType*)>

<!ATTLIST wizardPage

ID             CDATA #REQUIRED

pageClass      CDATA #REQUIRED

operationClass CDATA #IMPLIED>

Each instance of this element defines an additional page which is added to the New Project wizard. Pages are added after the default pages provided by MBS. Pages are added in the order they are discovered. Note that the IWizardPage interface allows a page to specify programmatically and dynamically at runtime what its previous and next pages are. This element does not trump that behaviour, but rather just specifies the order in which the pages are added to the wizard (and hence the order in which the pages appear if they do not override the previous and next page methods). Wizard pages as GUI elements by themselves are really not all that useful. More than likely if someone is defining their own wizard pages it’s because they need some additional operations to happen upon project creation in addition to the stock behaviour of creating a basic project, and they want to use their new wizard pages to provide a front end to these operations. As such, along with a specification of the GUI wizard page, ISVs may specify a runnable operation that will be executed in the wizard’s doRunEpilogue() method. These contributions will all be executed in the order that the wizard pages were added to the wizard. Not all pages need have such a contribution however, as ISVs may need to perform all the operations associated with their pages as a group. In cases such as this the ISV can define an operation for one of the pages and it can pull data from any of the other pages as required.



<!ELEMENT nature EMPTY>

<!ATTLIST nature

natureID CDATA #REQUIRED>

This optional child element of wizardPage specifies the project nature(s) for which the additional pages should apply. One instance of this element is provided per nature supported. This would for example allow one to add pages to the New Managed C Project wizard but not the New Managed C++ project wizard, or other hypothetical natures that might be supported by MBS in the future (e.g. someday there might be a Fortran nature). If no natureID elements are specified, then it is assumed that the page potentially applies to all project natures, although it may still be excluded based on project type or toolchain.



<!ELEMENT toolchain EMPTY>

<!ATTLIST toolchain

toolchainID       CDATA #REQUIRED

versionsSupported CDATA #IMPLIED>

This is an optional child element of wizardPage which specifies a toolchain for which the additional pages should apply. One instance of this element is provided per toolchain supported by the page. If no toolchain elements are specified, then it is assumed that the page potentially applies to all toolchains, although it may still be excluded based on project type or project nature.



<!ELEMENT projectType EMPTY>

<!ATTLIST projectType

projectTypeID CDATA #REQUIRED>

This is an optional child element of wizardPage which specifies a projectType for which the additional pages should apply. One instance of this element is provided per toolchain supported by the page. If no projectType elements are specified, then it is assumed that the page potentially applies to all projectTypes, although it may still be excluded based on toolchain or nature.



Examples:

API Information:
None

Supplied Implementation:
None.


Copyright (c) 2005 Texas Instruments Incorporated and others. This program and the accompanying materials are made available under the terms of the Eclipse Public License 2.0 which accompanies this distribution, and is available at https://www.eclipse.org/legal/epl-2.0/ SPDX-License-Identifier: EPL-2.0