Changes are made in New Project Wizard
code.
Currently, all public interfaces used for wizard
are moved to org.eclipse.cdt.ui.wizards
from
org.eclipse.managedbuilder.ui.
All wizard functionality is located in class
org.eclipse.cdt.ui.wizards.CDTCommonProjectWizard
There are
3 its
descendants:
org.eclipse.cdt.ui.wizards.CProjectWizard
org.eclipse.cdt.ui.wizards.CCProjectWizard
org.eclipse.cdt.ui.wizards.CDTProjectWizard
they differ only in project natures created.
No need to modify these classes in order to integrate
new wizard functionality.
Just create extension for the following
extension point:
org.eclipse.cdt.ui.CDTWizard
Only "class" parameter matters now. It should
implement interface
org.eclipse.cdt.ui.wizards.ICNewWizard
Currently, there are 2 extensions
implemented:
org.eclipse.cdt.managedbuilder.ui.wizards.StdBuildWizard
org.eclipse.cdt.managedbuilder.ui.wizards.CNewWizard
Method createItems() is the core functionality of these
classes.
It should return an array of WizardItemData elements.
Each element represents single TreeItem on the left
pane
of New Project Model.
Elements are ordered hierarchically on a basis
of
WizardItemData.id <-> WizardItemData.parentId
correspondence.
Elements with null parentId are added to tree
root.
WizardItemData.handler contains all project-creation
logic.
If
this field is null, corresponding tree item would do nothing
-
the
only its function may be to contain children.
Handler should implement
interface
org.eclipse.cdt.ui.wizards.ICWizardHandler
There
are the following implementors
now:
org.eclipse.cdt.ui.wizards.CWizardHandler
not abstract but really
useless. Base
only.
org.eclipse.cdt.managedbuilder.ui.wizards.MBSWizardHandler
org.eclipse.cdt.managedbuilder.ui.wizards.STDWizardHandler
these classes perform all work while project
creation.
So,
to integrate new wizard feature, we need:
-
create CDTWizard extension.
-
develop ICNewWizard
implementor.
-
develop one or more ICWizardHandler
implementors.
That's all.
But note that some API
changes are probable
after templates engine
integration.
-----------------------------------
With best regards, Oleg Krasilnikov
Software designer, Eclipse team.
Intel corp.
+7 8312 162 444 ext. 2587
(Russia, Nizhny Novgorod)
Hello Sheldon.
Unfortunately, CDT project creation model is "under
construction" just now.
Some serious changes are planned. See details
at:
I hope changes will finish by the end of this
week.
-----------------------------------
With best regards, Oleg Krasilnikov
Software designer, Eclipse team.
Intel corp.
+7 8312 162 444 ext. 2587
(Russia, Nizhny Novgorod)
Hi,
I am
currently using the old cdt project creation model, I have to update to the
new model to provide other options like shared library creation. Where do i
start and what are the sources i should have a look at in order to migrate to
the new project creation model.
Regards,
Sheldon