Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
RE: [cdt-dev] new CDT project model

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)
 
 
 


From: cdt-dev-bounces@xxxxxxxxxxx [mailto:cdt-dev-bounces@xxxxxxxxxxx] On Behalf Of Krasilnikov, Oleg
Sent: Wednesday, April 11, 2007 2:22 PM
To: CDT General developers list.
Subject: RE: [cdt-dev] new CDT project model

Hello Sheldon.
 
Unfortunately, CDT project creation model is "under construction" just now.
Some serious changes are planned. See details at:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=160012
 
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)
 
 

From: cdt-dev-bounces@xxxxxxxxxxx [mailto:cdt-dev-bounces@xxxxxxxxxxx] On Behalf Of Sheldon Dsouza
Sent: Wednesday, April 11, 2007 1:47 PM
To: CDT General developers list.
Subject: [cdt-dev] new CDT project model

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

Back to the top