mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-22 06:02:11 +02:00
Bug 514244: ability to add custom wizard page prior project creation one
See : https://www.eclipse.org/forums/index.php/t/1084842/ Original (WizardNewProjectCreationPage) getStartingPage() cast within getMainPageData() method was obviously forcing first wizard page type ... provided basic trick is opening some opportunities more ! Change-Id: Ie9b7c4ef63040df6a419af8348f088be79cc2611 Signed-off-by: cartu38 opendev <cartu38.opendev@gmail.com>
This commit is contained in:
parent
2268403e02
commit
6b88578458
2 changed files with 38 additions and 11 deletions
|
@ -2,7 +2,7 @@ Manifest-Version: 1.0
|
|||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: %pluginName
|
||||
Bundle-SymbolicName: org.eclipse.cdt.managedbuilder.ui; singleton:=true
|
||||
Bundle-Version: 9.0.0.qualifier
|
||||
Bundle-Version: 9.1.0.qualifier
|
||||
Bundle-Activator: org.eclipse.cdt.managedbuilder.ui.properties.ManagedBuilderUIPlugin
|
||||
Bundle-Vendor: %providerName
|
||||
Bundle-Localization: plugin
|
||||
|
|
|
@ -102,7 +102,7 @@ public class MBSWizardHandler extends CWizardHandler {
|
|||
protected CDTConfigWizardPage fConfigPage;
|
||||
private IToolChain[] savedToolChains = null;
|
||||
private IWizard wizard;
|
||||
private IWizardPage startingPage;
|
||||
private IWizardPage newProjectCreationPage;
|
||||
// private EntryDescriptor entryDescriptor = null;
|
||||
private EntryInfo entryInfo;
|
||||
protected CfgHolder[] cfgs = null;
|
||||
|
@ -346,21 +346,47 @@ public class MBSWizardHandler extends CWizardHandler {
|
|||
propertyId = val.getId();
|
||||
setWizard(w);
|
||||
}
|
||||
|
||||
private void setWizard(IWizard w) {
|
||||
if (w != null) {
|
||||
if (w.getStartingPage() instanceof IWizardItemsListListener)
|
||||
listener = (IWizardItemsListListener)w.getStartingPage();
|
||||
wizard = w;
|
||||
startingPage = w.getStartingPage();
|
||||
for (IWizardPage page : w.getPages()) {
|
||||
if (page instanceof WizardNewProjectCreationPage) {
|
||||
newProjectCreationPage = page;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (newProjectCreationPage instanceof IWizardItemsListListener)
|
||||
listener = (IWizardItemsListListener) newProjectCreationPage;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the starting page.
|
||||
*
|
||||
* @return the starting page
|
||||
*
|
||||
* @deprecated use {@link #getNewProjectCreationPage()} instead. Starting page is expected to be wizard's
|
||||
* new project creation page.
|
||||
*/
|
||||
@Deprecated
|
||||
protected IWizardPage getStartingPage(){
|
||||
return startingPage;
|
||||
return newProjectCreationPage;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the new project creation page.
|
||||
*
|
||||
* @return the wizard's new project creation page. New project creation page may differ from wizard's
|
||||
* starting page.
|
||||
* @since 9.1
|
||||
*/
|
||||
protected IWizardPage getNewProjectCreationPage() {
|
||||
return newProjectCreationPage;
|
||||
}
|
||||
|
||||
public Map<String, String> getMainPageData() {
|
||||
WizardNewProjectCreationPage page = (WizardNewProjectCreationPage)getStartingPage();
|
||||
WizardNewProjectCreationPage page = (WizardNewProjectCreationPage) getNewProjectCreationPage();
|
||||
Map<String, String> data = new HashMap<String, String>();
|
||||
String projName = page.getProjectName();
|
||||
projName = projName != null ? projName.trim() : EMPTY_STR;
|
||||
|
@ -452,7 +478,7 @@ public class MBSWizardHandler extends CWizardHandler {
|
|||
|
||||
ICDTCommonProjectWizard wz = (ICDTCommonProjectWizard)getWizard();
|
||||
MBSCustomPageManager.init();
|
||||
MBSCustomPageManager.addStockPage(getStartingPage(), CDTMainWizardPage.PAGE_ID);
|
||||
MBSCustomPageManager.addStockPage(getNewProjectCreationPage(), CDTMainWizardPage.PAGE_ID);
|
||||
MBSCustomPageManager.addStockPage(getConfigPage(), CDTConfigWizardPage.PAGE_ID);
|
||||
|
||||
// load all custom pages specified via extensions
|
||||
|
@ -626,7 +652,8 @@ public class MBSWizardHandler extends CWizardHandler {
|
|||
if(entryInfo == null)
|
||||
return;
|
||||
|
||||
Template template = entryInfo.getInitializedTemplate(getStartingPage(), getConfigPage(), getMainPageData());
|
||||
Template template = entryInfo.getInitializedTemplate(getNewProjectCreationPage(), getConfigPage(),
|
||||
getMainPageData());
|
||||
if(template == null)
|
||||
return;
|
||||
|
||||
|
@ -651,7 +678,7 @@ public class MBSWizardHandler extends CWizardHandler {
|
|||
|
||||
@Override
|
||||
public IWizardPage getSpecificPage() {
|
||||
return entryInfo.getNextPage(getStartingPage(), getConfigPage());
|
||||
return entryInfo.getNextPage(getNewProjectCreationPage(), getConfigPage());
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -872,7 +899,7 @@ public class MBSWizardHandler extends CWizardHandler {
|
|||
if (!getConfigPage().isCustomPageComplete())
|
||||
return false;
|
||||
|
||||
if(!entryInfo.canFinish(startingPage, getConfigPage()))
|
||||
if(!entryInfo.canFinish(newProjectCreationPage, getConfigPage()))
|
||||
return false;
|
||||
|
||||
if (customPages != null)
|
||||
|
|
Loading…
Add table
Reference in a new issue