mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-23 22:52:11 +02:00
autotools: Remove unused wizards.
These extend deprecated classes and are not hooked anywhere so better to remove directly. Change-Id: I3be280cb7c24a92c633b2b055424609f99889412 Signed-off-by: Alexander Kurtakov <akurtako@redhat.com>
This commit is contained in:
parent
54ff537f95
commit
8b32e36ed7
2 changed files with 0 additions and 646 deletions
|
@ -1,327 +0,0 @@
|
||||||
/*******************************************************************************
|
|
||||||
* Copyright (c) 2002, 2005, 2009 IBM Corporation and others.
|
|
||||||
* All rights reserved. This program and the accompanying materials
|
|
||||||
* are made available under the terms of the Eclipse Public License v1.0
|
|
||||||
* which accompanies this distribution, and is available at
|
|
||||||
* http://www.eclipse.org/legal/epl-v10.html
|
|
||||||
*
|
|
||||||
* Contributors:
|
|
||||||
* IBM Rational Software - Initial API and implementation
|
|
||||||
*******************************************************************************/
|
|
||||||
package org.eclipse.cdt.internal.autotools.ui.wizards;
|
|
||||||
|
|
||||||
import java.lang.reflect.InvocationTargetException;
|
|
||||||
|
|
||||||
import org.eclipse.cdt.autotools.core.AutotoolsNewProjectNature;
|
|
||||||
import org.eclipse.cdt.autotools.ui.AutotoolsUIPlugin;
|
|
||||||
import org.eclipse.cdt.core.CCorePlugin;
|
|
||||||
import org.eclipse.cdt.core.ICDescriptor;
|
|
||||||
import org.eclipse.cdt.internal.autotools.core.AutotoolsPropertyConstants;
|
|
||||||
import org.eclipse.cdt.managedbuilder.core.BuildException;
|
|
||||||
import org.eclipse.cdt.managedbuilder.core.IConfiguration;
|
|
||||||
import org.eclipse.cdt.managedbuilder.core.IManagedBuildInfo;
|
|
||||||
import org.eclipse.cdt.managedbuilder.core.IManagedProject;
|
|
||||||
import org.eclipse.cdt.managedbuilder.core.IProjectType;
|
|
||||||
import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager;
|
|
||||||
import org.eclipse.cdt.managedbuilder.core.ManagedBuilderCorePlugin;
|
|
||||||
import org.eclipse.cdt.managedbuilder.core.ManagedCProjectNature;
|
|
||||||
import org.eclipse.cdt.managedbuilder.ui.wizards.MBSCustomPageManager;
|
|
||||||
import org.eclipse.cdt.ui.newui.CDTHelpContextIds;
|
|
||||||
import org.eclipse.cdt.ui.wizards.NewCCProjectWizard;
|
|
||||||
import org.eclipse.cdt.ui.wizards.NewCProjectWizardPage;
|
|
||||||
import org.eclipse.core.runtime.CoreException;
|
|
||||||
import org.eclipse.core.runtime.IProgressMonitor;
|
|
||||||
import org.eclipse.core.runtime.IStatus;
|
|
||||||
import org.eclipse.core.runtime.NullProgressMonitor;
|
|
||||||
import org.eclipse.core.runtime.SubMonitor;
|
|
||||||
import org.eclipse.jface.operation.IRunnableWithProgress;
|
|
||||||
import org.eclipse.jface.wizard.IWizardPage;
|
|
||||||
import org.eclipse.swt.widgets.Composite;
|
|
||||||
import org.eclipse.ui.PlatformUI;
|
|
||||||
|
|
||||||
|
|
||||||
@SuppressWarnings("deprecation")
|
|
||||||
public class AutotoolsNewCCProjectWizardV2 extends NewCCProjectWizard {
|
|
||||||
|
|
||||||
protected static final String PREFIX = "WizardAutotoolsNewCCProjectV2"; //$NON-NLS-1$
|
|
||||||
protected static final String OP_ERROR = PREFIX + ".op_error"; //$NON-NLS-1$
|
|
||||||
protected static final String WZ_TITLE = PREFIX + ".title"; //$NON-NLS-1$
|
|
||||||
protected static final String WZ_DESC = PREFIX + ".description"; //$NON-NLS-1$
|
|
||||||
protected static final String WINDOW_TITLE = PREFIX + ".windowTitle"; //$NON-NLS-1$
|
|
||||||
protected static final String CONF_TITLE = PREFIX + ".config.title"; //$NON-NLS-1$
|
|
||||||
protected static final String CONF_DESC = PREFIX + ".config.desc"; //$NON-NLS-1$
|
|
||||||
protected static final String OPTIONS_TITLE = PREFIX + ".options.title"; //$NON-NLS-1$
|
|
||||||
protected static final String OPTIONS_DESC = PREFIX + ".options.desc"; //$NON-NLS-1$
|
|
||||||
protected static final String MSG_ADD_NATURE = PREFIX + ".message.add_nature"; //$NON-NLS-1$
|
|
||||||
protected static final String MSG_ADD_BUILDER = PREFIX + ".message.add_builder"; //$NON-NLS-1$
|
|
||||||
protected static final String MSG_SAVE = PREFIX + ".message.save"; //$NON-NLS-1$
|
|
||||||
|
|
||||||
// Wizard pages
|
|
||||||
protected CProjectPlatformPage projectConfigurationPage;
|
|
||||||
protected NewAutotoolsProjectOptionPage optionPage;
|
|
||||||
protected IProjectType projectType;
|
|
||||||
|
|
||||||
public AutotoolsNewCCProjectWizardV2() {
|
|
||||||
this(AutotoolsUIPlugin.getResourceString(WZ_TITLE), AutotoolsUIPlugin.getResourceString(WZ_DESC));
|
|
||||||
}
|
|
||||||
|
|
||||||
public AutotoolsNewCCProjectWizardV2(String title, String description) {
|
|
||||||
super(title, description);
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* Method getWzDescriptionResource, allows Wizard description label value
|
|
||||||
* to be changed by subclasses
|
|
||||||
*
|
|
||||||
* @return String
|
|
||||||
*/
|
|
||||||
protected static String getWzDescriptionResource() {
|
|
||||||
return AutotoolsUIPlugin.getResourceString(WZ_DESC);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method getWzTitleResource, allows Wizard description label value
|
|
||||||
* to be changed by subclasses
|
|
||||||
*
|
|
||||||
* @return String
|
|
||||||
*/
|
|
||||||
protected static String getWzTitleResource() {
|
|
||||||
return AutotoolsUIPlugin.getResourceString(WZ_TITLE);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method getWindowTitleResource, allows Wizard Title label value to be
|
|
||||||
* changed by subclasses
|
|
||||||
*
|
|
||||||
* @return String
|
|
||||||
*/
|
|
||||||
protected static String getWindowTitleResource() {
|
|
||||||
return AutotoolsUIPlugin.getResourceString(WINDOW_TITLE);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method getPrefix, allows prefix value to be changed by subclasses
|
|
||||||
*
|
|
||||||
* @return String
|
|
||||||
*/
|
|
||||||
protected static String getPrefix() {
|
|
||||||
return PREFIX;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void addPages() {
|
|
||||||
// Add the default page for all new projects
|
|
||||||
super.addPages();
|
|
||||||
|
|
||||||
// Add the configuration selection page
|
|
||||||
projectConfigurationPage = new CProjectPlatformPage(PREFIX);
|
|
||||||
projectConfigurationPage.setTitle(AutotoolsUIPlugin.getResourceString(CONF_TITLE));
|
|
||||||
projectConfigurationPage.setDescription(AutotoolsUIPlugin.getResourceString(CONF_DESC));
|
|
||||||
addPage(projectConfigurationPage);
|
|
||||||
|
|
||||||
// Add the options (tabbed) page
|
|
||||||
optionPage = new NewAutotoolsProjectOptionPage(PREFIX);
|
|
||||||
optionPage.setTitle(AutotoolsUIPlugin.getResourceString(OPTIONS_TITLE));
|
|
||||||
optionPage.setDescription(AutotoolsUIPlugin.getResourceString(OPTIONS_DESC));
|
|
||||||
addPage(optionPage);
|
|
||||||
|
|
||||||
// add custom pages
|
|
||||||
MBSCustomPageManager.init();
|
|
||||||
|
|
||||||
// add stock pages
|
|
||||||
MBSCustomPageManager.addStockPage(fMainPage, NewCProjectWizardPage.PAGE_ID);
|
|
||||||
MBSCustomPageManager.addStockPage(projectConfigurationPage, CProjectPlatformPage.PAGE_ID);
|
|
||||||
MBSCustomPageManager.addStockPage(optionPage, NewAutotoolsProjectOptionPage.PAGE_ID);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void createPageControls(Composite pageContainer) {
|
|
||||||
super.createPageControls( pageContainer );
|
|
||||||
|
|
||||||
IWizardPage [] pages = getPages();
|
|
||||||
|
|
||||||
if (pages != null) {
|
|
||||||
for (int i = 0; i < pages.length; i++) {
|
|
||||||
IWizardPage page = pages[i];
|
|
||||||
if (page instanceof NewCProjectWizardPage) {
|
|
||||||
// Setup the help information
|
|
||||||
PlatformUI.getWorkbench().getHelpSystem().setHelp(pageContainer, CDTHelpContextIds.MAN_PROJ_WIZ_NAME_PAGE);
|
|
||||||
}
|
|
||||||
else if (page instanceof NewAutotoolsProjectOptionPage) {
|
|
||||||
NewAutotoolsProjectOptionPage optionPage = (NewAutotoolsProjectOptionPage) page;
|
|
||||||
optionPage.setupHelpContextIds();
|
|
||||||
}
|
|
||||||
// The other built-in page is the CProjectPlatformPage which already has a help id.
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void updateProjectTypeProperties() {
|
|
||||||
// Update the error parser list
|
|
||||||
optionPage.updateProjectTypeProperties();
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void addNature(IProgressMonitor monitor) throws CoreException {
|
|
||||||
monitor.beginTask("", 4);
|
|
||||||
monitor.subTask(AutotoolsUIPlugin.getResourceString(MSG_ADD_NATURE));
|
|
||||||
ManagedCProjectNature.addManagedNature(newProject, SubMonitor.convert(monitor, 1));
|
|
||||||
monitor.subTask(AutotoolsUIPlugin.getResourceString(MSG_ADD_BUILDER));
|
|
||||||
ManagedCProjectNature.addManagedBuilder(newProject, SubMonitor.convert(monitor, 1));
|
|
||||||
monitor.subTask(AutotoolsUIPlugin.getResourceString(MSG_ADD_NATURE));
|
|
||||||
AutotoolsNewProjectNature.addAutotoolsNature(newProject, SubMonitor.convert(monitor, 1));
|
|
||||||
monitor.subTask(AutotoolsUIPlugin.getResourceString(MSG_ADD_BUILDER));
|
|
||||||
AutotoolsNewProjectNature.addAutotoolsBuilder(newProject, SubMonitor.convert(monitor, 1));
|
|
||||||
monitor.done();
|
|
||||||
}
|
|
||||||
|
|
||||||
public IProjectType getProjectType() {
|
|
||||||
return projectConfigurationPage.getProjectType();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void doRun(IProgressMonitor monitor) throws CoreException {
|
|
||||||
if (monitor == null) {
|
|
||||||
monitor = new NullProgressMonitor();
|
|
||||||
}
|
|
||||||
|
|
||||||
// super.doRun() just creates the project and does not assign a builder to it.
|
|
||||||
super.doRun(SubMonitor.convert(monitor, 5));
|
|
||||||
|
|
||||||
// Add the managed build nature and builder
|
|
||||||
try {
|
|
||||||
addNature(SubMonitor.convert(monitor, 2));
|
|
||||||
} catch (CoreException e) {
|
|
||||||
AutotoolsUIPlugin.log(e);
|
|
||||||
}
|
|
||||||
// FIXME: Default scanner property: make -w - eventually we want to use Make core's build scanner
|
|
||||||
newProject.setPersistentProperty(AutotoolsPropertyConstants.SCANNER_USE_MAKE_W, AutotoolsPropertyConstants.TRUE);
|
|
||||||
|
|
||||||
CCorePlugin.getDefault().mapCProjectOwner(newProject, getProjectID(), true);
|
|
||||||
|
|
||||||
// Add the ManagedProject to the project
|
|
||||||
IManagedProject newManagedProject = null;
|
|
||||||
IManagedBuildInfo info = null;
|
|
||||||
try {
|
|
||||||
info = ManagedBuildManager.createBuildInfo(newProject);
|
|
||||||
IProjectType parent = getProjectType();
|
|
||||||
newManagedProject = ManagedBuildManager.createManagedProject(newProject, parent);
|
|
||||||
if (newManagedProject != null) {
|
|
||||||
IConfiguration [] selectedConfigs = getSelectedConfigurations();
|
|
||||||
for (int i = 0; i < selectedConfigs.length; i++) {
|
|
||||||
IConfiguration config = selectedConfigs[i];
|
|
||||||
int id = ManagedBuildManager.getRandomNumber();
|
|
||||||
IConfiguration newConfig = newManagedProject.createConfiguration(config, config.getId() + "." + id); //$NON-NLS-1$
|
|
||||||
newConfig.setArtifactName(newManagedProject.getDefaultArtifactName());
|
|
||||||
}
|
|
||||||
// Now add the first supported config in the list as the default
|
|
||||||
IConfiguration defaultCfg = null;
|
|
||||||
IConfiguration[] newConfigs = newManagedProject.getConfigurations();
|
|
||||||
for(int i = 0; i < newConfigs.length; i++) {
|
|
||||||
if(newConfigs[i].isSupported()){
|
|
||||||
defaultCfg = newConfigs[i];
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(defaultCfg == null && newConfigs.length > 0)
|
|
||||||
defaultCfg = newConfigs[0];
|
|
||||||
|
|
||||||
if(defaultCfg != null) {
|
|
||||||
ManagedBuildManager.setDefaultConfiguration(newProject, defaultCfg);
|
|
||||||
ManagedBuildManager.setSelectedConfiguration(newProject, defaultCfg);
|
|
||||||
}
|
|
||||||
ManagedBuildManager.setNewProjectVersion(newProject);
|
|
||||||
ICDescriptor desc = null;
|
|
||||||
try {
|
|
||||||
desc = CCorePlugin.getDefault().getCProjectDescription(newProject, true);
|
|
||||||
desc.create(CCorePlugin.BUILD_SCANNER_INFO_UNIQ_ID, ManagedBuildManager.INTERFACE_IDENTITY);
|
|
||||||
// TODO: The binary parser setting is currently per-project in the rest of CDT.
|
|
||||||
// In the MBS, it is per-coonfiguration. For now, select the binary parsers of the
|
|
||||||
// first configuration.
|
|
||||||
// if (newConfigs.length > 0) {
|
|
||||||
// IToolChain tc = newConfigs[0].getToolChain();
|
|
||||||
// ITargetPlatform targetPlatform = tc.getTargetPlatform();
|
|
||||||
// }
|
|
||||||
} catch (CoreException e) {
|
|
||||||
AutotoolsUIPlugin.log(e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (BuildException e) {
|
|
||||||
AutotoolsUIPlugin.log(e);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Following is a bit of a hack because changing the project options
|
|
||||||
// causes a change event to be fired which will try to reindex the project.
|
|
||||||
// We are in the middle of setting the project indexer which may end up
|
|
||||||
// being the null indexer. In that case, we don't want the default indexer
|
|
||||||
// (Fast Indexer) to be invoked.
|
|
||||||
//IPDOMManager manager = CCorePlugin.getPDOMManager();
|
|
||||||
//ICProject cproject = CoreModel.getDefault().create(newProject);
|
|
||||||
//manager.setIndexerId(cproject, ConvertToAutotoolsProjectWizard.NULL_INDEXER_ID);
|
|
||||||
|
|
||||||
// Modify the project settings
|
|
||||||
if (newProject != null) {
|
|
||||||
optionPage.performApply(SubMonitor.convert(monitor, 2));
|
|
||||||
}
|
|
||||||
|
|
||||||
// Save the build options
|
|
||||||
monitor.subTask(AutotoolsUIPlugin.getResourceString(MSG_SAVE));
|
|
||||||
if (info != null) {
|
|
||||||
info.setValid(true);
|
|
||||||
ManagedBuildManager.saveBuildInfo(newProject, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
IStatus initResult = ManagedBuildManager.initBuildInfoContainer(newProject);
|
|
||||||
if (initResult.getCode() != IStatus.OK) {
|
|
||||||
// At this point, I can live with a failure
|
|
||||||
AutotoolsUIPlugin.log(initResult);
|
|
||||||
}
|
|
||||||
|
|
||||||
monitor.done();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void doRunPrologue(IProgressMonitor monitor) {
|
|
||||||
// Auto-generated method stub
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void doRunEpilogue(IProgressMonitor monitor) {
|
|
||||||
// Get my initializer to run
|
|
||||||
if(newProject == null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
IStatus initResult = ManagedBuildManager.initBuildInfoContainer(newProject);
|
|
||||||
if (initResult.getCode() != IStatus.OK) {
|
|
||||||
// At this point, I can live with a failure
|
|
||||||
AutotoolsUIPlugin.log(initResult);
|
|
||||||
}
|
|
||||||
|
|
||||||
// execute any operations specified by custom pages
|
|
||||||
// execute any operations specified by custom pages
|
|
||||||
IRunnableWithProgress operations[] = MBSCustomPageManager.getOperations();
|
|
||||||
|
|
||||||
if (operations != null)
|
|
||||||
{
|
|
||||||
for(int k = 0; k < operations.length; k++)
|
|
||||||
{
|
|
||||||
try {
|
|
||||||
operations[k].run(monitor);
|
|
||||||
} catch (InvocationTargetException | InterruptedException e) {
|
|
||||||
//TODO: what should we do?
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getProjectID() {
|
|
||||||
// return "org.eclipse.cdt.make.core.make"; //$NON-NLS-1$
|
|
||||||
return ManagedBuilderCorePlugin.MANAGED_MAKE_PROJECT_ID;
|
|
||||||
}
|
|
||||||
|
|
||||||
public IConfiguration[] getSelectedConfigurations() {
|
|
||||||
return projectConfigurationPage.getSelectedConfigurations();
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,319 +0,0 @@
|
||||||
/*******************************************************************************
|
|
||||||
* Copyright (c) 2002, 2005, 2009 IBM Corporation and others.
|
|
||||||
* All rights reserved. This program and the accompanying materials
|
|
||||||
* are made available under the terms of the Eclipse Public License v1.0
|
|
||||||
* which accompanies this distribution, and is available at
|
|
||||||
* http://www.eclipse.org/legal/epl-v10.html
|
|
||||||
*
|
|
||||||
* Contributors:
|
|
||||||
* IBM Rational Software - Initial API and implementation
|
|
||||||
*******************************************************************************/
|
|
||||||
package org.eclipse.cdt.internal.autotools.ui.wizards;
|
|
||||||
|
|
||||||
import java.lang.reflect.InvocationTargetException;
|
|
||||||
|
|
||||||
import org.eclipse.cdt.autotools.core.AutotoolsNewProjectNature;
|
|
||||||
import org.eclipse.cdt.autotools.ui.AutotoolsUIPlugin;
|
|
||||||
import org.eclipse.cdt.core.CCorePlugin;
|
|
||||||
import org.eclipse.cdt.core.ICDescriptor;
|
|
||||||
import org.eclipse.cdt.internal.autotools.core.AutotoolsPropertyConstants;
|
|
||||||
import org.eclipse.cdt.managedbuilder.core.BuildException;
|
|
||||||
import org.eclipse.cdt.managedbuilder.core.IConfiguration;
|
|
||||||
import org.eclipse.cdt.managedbuilder.core.IManagedBuildInfo;
|
|
||||||
import org.eclipse.cdt.managedbuilder.core.IManagedProject;
|
|
||||||
import org.eclipse.cdt.managedbuilder.core.IProjectType;
|
|
||||||
import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager;
|
|
||||||
import org.eclipse.cdt.managedbuilder.core.ManagedBuilderCorePlugin;
|
|
||||||
import org.eclipse.cdt.managedbuilder.core.ManagedCProjectNature;
|
|
||||||
import org.eclipse.cdt.managedbuilder.ui.wizards.MBSCustomPageManager;
|
|
||||||
import org.eclipse.cdt.ui.newui.CDTHelpContextIds;
|
|
||||||
import org.eclipse.cdt.ui.wizards.NewCProjectWizard;
|
|
||||||
import org.eclipse.cdt.ui.wizards.NewCProjectWizardPage;
|
|
||||||
import org.eclipse.core.runtime.CoreException;
|
|
||||||
import org.eclipse.core.runtime.IProgressMonitor;
|
|
||||||
import org.eclipse.core.runtime.IStatus;
|
|
||||||
import org.eclipse.core.runtime.NullProgressMonitor;
|
|
||||||
import org.eclipse.core.runtime.SubMonitor;
|
|
||||||
import org.eclipse.jface.operation.IRunnableWithProgress;
|
|
||||||
import org.eclipse.jface.wizard.IWizardPage;
|
|
||||||
import org.eclipse.swt.widgets.Composite;
|
|
||||||
import org.eclipse.ui.PlatformUI;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@SuppressWarnings("deprecation")
|
|
||||||
public class AutotoolsNewCProjectWizardV2 extends NewCProjectWizard {
|
|
||||||
|
|
||||||
protected static final String PREFIX = "WizardAutotoolsNewCProjectV2"; //$NON-NLS-1$
|
|
||||||
protected static final String OP_ERROR = PREFIX + ".op_error"; //$NON-NLS-1$
|
|
||||||
protected static final String WZ_TITLE = PREFIX + ".title"; //$NON-NLS-1$
|
|
||||||
protected static final String WZ_DESC = PREFIX + ".description"; //$NON-NLS-1$
|
|
||||||
protected static final String WINDOW_TITLE = PREFIX + ".windowTitle"; //$NON-NLS-1$
|
|
||||||
protected static final String CONF_TITLE = PREFIX + ".config.title"; //$NON-NLS-1$
|
|
||||||
protected static final String CONF_DESC = PREFIX + ".config.desc"; //$NON-NLS-1$
|
|
||||||
protected static final String OPTIONS_TITLE = PREFIX + ".options.title"; //$NON-NLS-1$
|
|
||||||
protected static final String OPTIONS_DESC = PREFIX + ".options.desc"; //$NON-NLS-1$
|
|
||||||
protected static final String MSG_ADD_NATURE = PREFIX + ".message.add_nature"; //$NON-NLS-1$
|
|
||||||
protected static final String MSG_ADD_BUILDER = PREFIX + ".message.add_builder"; //$NON-NLS-1$
|
|
||||||
protected static final String MSG_SAVE = PREFIX + ".message.save"; //$NON-NLS-1$
|
|
||||||
|
|
||||||
// Wizard pages
|
|
||||||
protected CProjectPlatformPage projectConfigurationPage;
|
|
||||||
protected NewAutotoolsProjectOptionPage optionPage;
|
|
||||||
protected IProjectType projectType;
|
|
||||||
|
|
||||||
public AutotoolsNewCProjectWizardV2() {
|
|
||||||
this(AutotoolsUIPlugin.getResourceString(WZ_TITLE), AutotoolsUIPlugin.getResourceString(WZ_DESC));
|
|
||||||
}
|
|
||||||
|
|
||||||
public AutotoolsNewCProjectWizardV2(String title, String description) {
|
|
||||||
super(title, description);
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* Method getWzDescriptionResource, allows Wizard description label value
|
|
||||||
* to be changed by subclasses
|
|
||||||
*
|
|
||||||
* @return String
|
|
||||||
*/
|
|
||||||
protected static String getWzDescriptionResource() {
|
|
||||||
return AutotoolsUIPlugin.getResourceString(WZ_DESC);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method getWzTitleResource, allows Wizard description label value
|
|
||||||
* to be changed by subclasses
|
|
||||||
*
|
|
||||||
* @return String
|
|
||||||
*/
|
|
||||||
protected static String getWzTitleResource() {
|
|
||||||
return AutotoolsUIPlugin.getResourceString(WZ_TITLE);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method getWindowTitleResource, allows Wizard Title label value to be
|
|
||||||
* changed by subclasses
|
|
||||||
*
|
|
||||||
* @return String
|
|
||||||
*/
|
|
||||||
protected static String getWindowTitleResource() {
|
|
||||||
return AutotoolsUIPlugin.getResourceString(WINDOW_TITLE);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method getPrefix, allows prefix value to be changed by subclasses
|
|
||||||
*
|
|
||||||
* @return String
|
|
||||||
*/
|
|
||||||
protected static String getPrefix() {
|
|
||||||
return PREFIX;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void addPages() {
|
|
||||||
// Add the default page for all new projects
|
|
||||||
super.addPages();
|
|
||||||
|
|
||||||
// Add the configuration selection page
|
|
||||||
projectConfigurationPage = new CProjectPlatformPage(PREFIX);
|
|
||||||
projectConfigurationPage.setTitle(AutotoolsUIPlugin.getResourceString(CONF_TITLE));
|
|
||||||
projectConfigurationPage.setDescription(AutotoolsUIPlugin.getResourceString(CONF_DESC));
|
|
||||||
addPage(projectConfigurationPage);
|
|
||||||
|
|
||||||
// Add the options (tabbed) page
|
|
||||||
optionPage = new NewAutotoolsProjectOptionPage(PREFIX);
|
|
||||||
optionPage.setTitle(AutotoolsUIPlugin.getResourceString(OPTIONS_TITLE));
|
|
||||||
optionPage.setDescription(AutotoolsUIPlugin.getResourceString(OPTIONS_DESC));
|
|
||||||
addPage(optionPage);
|
|
||||||
|
|
||||||
// add custom pages
|
|
||||||
MBSCustomPageManager.init();
|
|
||||||
|
|
||||||
// add stock pages
|
|
||||||
MBSCustomPageManager.addStockPage(fMainPage, NewCProjectWizardPage.PAGE_ID);
|
|
||||||
MBSCustomPageManager.addStockPage(projectConfigurationPage, CProjectPlatformPage.PAGE_ID);
|
|
||||||
MBSCustomPageManager.addStockPage(optionPage, NewAutotoolsProjectOptionPage.PAGE_ID);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void createPageControls(Composite pageContainer) {
|
|
||||||
super.createPageControls( pageContainer );
|
|
||||||
|
|
||||||
IWizardPage [] pages = getPages();
|
|
||||||
|
|
||||||
if (pages != null) {
|
|
||||||
for (int i = 0; i < pages.length; i++) {
|
|
||||||
IWizardPage page = pages[i];
|
|
||||||
if (page instanceof NewCProjectWizardPage) {
|
|
||||||
// Setup the help information
|
|
||||||
PlatformUI.getWorkbench().getHelpSystem().setHelp(pageContainer, CDTHelpContextIds.MAN_PROJ_WIZ_NAME_PAGE);
|
|
||||||
}
|
|
||||||
else if (page instanceof NewAutotoolsProjectOptionPage) {
|
|
||||||
NewAutotoolsProjectOptionPage optionPage = (NewAutotoolsProjectOptionPage) page;
|
|
||||||
optionPage.setupHelpContextIds();
|
|
||||||
}
|
|
||||||
// The other built-in page is the CProjectPlatformPage which already has a help id.
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void updateProjectTypeProperties() {
|
|
||||||
// Update the error parser list
|
|
||||||
optionPage.updateProjectTypeProperties();
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void addNature(IProgressMonitor monitor) throws CoreException {
|
|
||||||
monitor.beginTask("", 4);
|
|
||||||
monitor.subTask(AutotoolsUIPlugin.getResourceString(MSG_ADD_NATURE));
|
|
||||||
ManagedCProjectNature.addManagedNature(newProject, SubMonitor.convert(monitor, 1));
|
|
||||||
monitor.subTask(AutotoolsUIPlugin.getResourceString(MSG_ADD_BUILDER));
|
|
||||||
ManagedCProjectNature.addManagedBuilder(newProject, SubMonitor.convert(monitor, 1));
|
|
||||||
monitor.subTask(AutotoolsUIPlugin.getResourceString(MSG_ADD_NATURE));
|
|
||||||
AutotoolsNewProjectNature.addAutotoolsNature(newProject, SubMonitor.convert(monitor, 1));
|
|
||||||
monitor.subTask(AutotoolsUIPlugin.getResourceString(MSG_ADD_BUILDER));
|
|
||||||
AutotoolsNewProjectNature.addAutotoolsBuilder(newProject, SubMonitor.convert(monitor, 1));
|
|
||||||
monitor.done();
|
|
||||||
}
|
|
||||||
|
|
||||||
public IProjectType getProjectType() {
|
|
||||||
return projectConfigurationPage.getProjectType();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void doRun(IProgressMonitor monitor) throws CoreException {
|
|
||||||
if (monitor == null) {
|
|
||||||
monitor = new NullProgressMonitor();
|
|
||||||
}
|
|
||||||
|
|
||||||
// super.doRun() just creates the project and does not assign a builder to it.
|
|
||||||
super.doRun(SubMonitor.convert(monitor, 5));
|
|
||||||
|
|
||||||
// Add the managed build nature and builder
|
|
||||||
try {
|
|
||||||
addNature(SubMonitor.convert(monitor, 2));
|
|
||||||
} catch (CoreException e) {
|
|
||||||
AutotoolsUIPlugin.log(e);
|
|
||||||
}
|
|
||||||
// FIXME: Default scanner property: make -w - eventually we want to use Make core's build scanner
|
|
||||||
newProject.setPersistentProperty(AutotoolsPropertyConstants.SCANNER_USE_MAKE_W, AutotoolsPropertyConstants.TRUE);
|
|
||||||
|
|
||||||
CCorePlugin.getDefault().mapCProjectOwner(newProject, getProjectID(), true);
|
|
||||||
|
|
||||||
// Add the ManagedProject to the project
|
|
||||||
IManagedProject newManagedProject = null;
|
|
||||||
IManagedBuildInfo info = null;
|
|
||||||
try {
|
|
||||||
info = ManagedBuildManager.createBuildInfo(newProject);
|
|
||||||
IProjectType parent = getProjectType();
|
|
||||||
newManagedProject = ManagedBuildManager.createManagedProject(newProject, parent);
|
|
||||||
if (newManagedProject != null) {
|
|
||||||
IConfiguration [] selectedConfigs = getSelectedConfigurations();
|
|
||||||
for (int i = 0; i < selectedConfigs.length; i++) {
|
|
||||||
IConfiguration config = selectedConfigs[i];
|
|
||||||
int id = ManagedBuildManager.getRandomNumber();
|
|
||||||
IConfiguration newConfig = newManagedProject.createConfiguration(config, config.getId() + "." + id); //$NON-NLS-1$
|
|
||||||
newConfig.setArtifactName(newManagedProject.getDefaultArtifactName());
|
|
||||||
}
|
|
||||||
// Now add the first supported config in the list as the default
|
|
||||||
IConfiguration defaultCfg = null;
|
|
||||||
IConfiguration[] newConfigs = newManagedProject.getConfigurations();
|
|
||||||
for(int i = 0; i < newConfigs.length; i++) {
|
|
||||||
if(newConfigs[i].isSupported()){
|
|
||||||
defaultCfg = newConfigs[i];
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(defaultCfg == null && newConfigs.length > 0)
|
|
||||||
defaultCfg = newConfigs[0];
|
|
||||||
|
|
||||||
if(defaultCfg != null) {
|
|
||||||
ManagedBuildManager.setDefaultConfiguration(newProject, defaultCfg);
|
|
||||||
ManagedBuildManager.setSelectedConfiguration(newProject, defaultCfg);
|
|
||||||
}
|
|
||||||
ManagedBuildManager.setNewProjectVersion(newProject);
|
|
||||||
ICDescriptor desc = null;
|
|
||||||
try {
|
|
||||||
desc = CCorePlugin.getDefault().getCProjectDescription(newProject, true);
|
|
||||||
desc.create(CCorePlugin.BUILD_SCANNER_INFO_UNIQ_ID, ManagedBuildManager.INTERFACE_IDENTITY);
|
|
||||||
// TODO: The binary parser setting is currently per-project in the rest of CDT.
|
|
||||||
// In the MBS, it is per-coonfiguration. For now, select the binary parsers of the
|
|
||||||
// first configuration.
|
|
||||||
// if (newConfigs.length > 0) {
|
|
||||||
// IToolChain tc = newConfigs[0].getToolChain();
|
|
||||||
// ITargetPlatform targetPlatform = tc.getTargetPlatform();
|
|
||||||
// }
|
|
||||||
} catch (CoreException e) {
|
|
||||||
AutotoolsUIPlugin.log(e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (BuildException e) {
|
|
||||||
AutotoolsUIPlugin.log(e);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Modify the project settings
|
|
||||||
if (newProject != null) {
|
|
||||||
optionPage.performApply(SubMonitor.convert(monitor, 2));
|
|
||||||
}
|
|
||||||
|
|
||||||
// Save the build options
|
|
||||||
monitor.subTask(AutotoolsUIPlugin.getResourceString(MSG_SAVE));
|
|
||||||
if (info != null) {
|
|
||||||
info.setValid(true);
|
|
||||||
ManagedBuildManager.saveBuildInfo(newProject, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
IStatus initResult = ManagedBuildManager.initBuildInfoContainer(newProject);
|
|
||||||
if (initResult.getCode() != IStatus.OK) {
|
|
||||||
// At this point, I can live with a failure
|
|
||||||
AutotoolsUIPlugin.log(initResult);
|
|
||||||
}
|
|
||||||
|
|
||||||
monitor.done();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void doRunPrologue(IProgressMonitor monitor) {
|
|
||||||
// Auto-generated method stub
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void doRunEpilogue(IProgressMonitor monitor) {
|
|
||||||
// Get my initializer to run
|
|
||||||
if(newProject == null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
IStatus initResult = ManagedBuildManager.initBuildInfoContainer(newProject);
|
|
||||||
if (initResult.getCode() != IStatus.OK) {
|
|
||||||
// At this point, I can live with a failure
|
|
||||||
AutotoolsUIPlugin.log(initResult);
|
|
||||||
}
|
|
||||||
|
|
||||||
// execute any operations specified by custom pages
|
|
||||||
// execute any operations specified by custom pages
|
|
||||||
IRunnableWithProgress operations[] = MBSCustomPageManager.getOperations();
|
|
||||||
|
|
||||||
if (operations != null)
|
|
||||||
{
|
|
||||||
for(int k = 0; k < operations.length; k++)
|
|
||||||
{
|
|
||||||
try {
|
|
||||||
operations[k].run(monitor);
|
|
||||||
} catch (InvocationTargetException | InterruptedException e) {
|
|
||||||
//TODO: what should we do?
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getProjectID() {
|
|
||||||
// return "org.eclipse.cdt.make.core.make"; //$NON-NLS-1$
|
|
||||||
return ManagedBuilderCorePlugin.MANAGED_MAKE_PROJECT_ID;
|
|
||||||
}
|
|
||||||
|
|
||||||
public IConfiguration[] getSelectedConfigurations() {
|
|
||||||
return projectConfigurationPage.getSelectedConfigurations();
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Add table
Reference in a new issue