From 926ee25abbef1aaee166ac12b5cc526c7eb6e106 Mon Sep 17 00:00:00 2001 From: Vivian Kong Date: Thu, 13 Nov 2008 16:12:38 +0000 Subject: [PATCH] bug 250982 - add progress reporting to new project wizard --- .../ui/wizards/MBSWizardHandler.java | 100 ++++++++++-------- .../ui/wizards/STDWizardHandler.java | 77 ++++++++------ .../cdt/ui/newui/PluginResources.properties | 2 + .../cdt/ui/wizards/CCProjectWizard.java | 14 ++- .../ui/wizards/CDTCommonProjectWizard.java | 75 +++++++++++-- .../cdt/ui/wizards/CProjectWizard.java | 14 ++- .../cdt/ui/wizards/CWizardHandler.java | 34 +++++- 7 files changed, 220 insertions(+), 96 deletions(-) diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/MBSWizardHandler.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/MBSWizardHandler.java index 5753acf9bb2..fac817543a5 100644 --- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/MBSWizardHandler.java +++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/MBSWizardHandler.java @@ -55,6 +55,7 @@ import org.eclipse.cdt.ui.wizards.EntryDescriptor; import org.eclipse.cdt.ui.wizards.IWizardItemsListListener; import org.eclipse.core.resources.IProject; import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; import org.eclipse.jface.operation.IRunnableWithProgress; @@ -520,54 +521,63 @@ public class MBSWizardHandler extends CWizardHandler { full_tcs.put(tc.getUniqueRealName(), tc); } - public void createProject(IProject project, boolean defaults, boolean onFinish) throws CoreException { - ICProjectDescriptionManager mngr = CoreModel.getDefault().getProjectDescriptionManager(); - ICProjectDescription des = mngr.createProjectDescription(project, false, !onFinish); - ManagedBuildInfo info = ManagedBuildManager.createBuildInfo(project); - - cfgs = fConfigPage.getCfgItems(false); - if (cfgs == null || cfgs.length == 0) - cfgs = CDTConfigWizardPage.getDefaultCfgs(this); - - if (cfgs == null || cfgs.length == 0 || cfgs[0].getConfiguration() == null) { - throw new CoreException(new Status(IStatus.ERROR, - ManagedBuilderUIPlugin.getUniqueIdentifier(), - Messages.getString("CWizardHandler.6"))); //$NON-NLS-1$ - } - Configuration cf = (Configuration)cfgs[0].getConfiguration(); - ManagedProject mProj = new ManagedProject(project, cf.getProjectType()); - info.setManagedProject(mProj); - - cfgs = CfgHolder.unique(cfgs); - cfgs = CfgHolder.reorder(cfgs); - - ICConfigurationDescription cfgDebug = null; - ICConfigurationDescription cfgFirst = null; - - for(int i = 0; i < cfgs.length; i++){ - cf = (Configuration)cfgs[i].getConfiguration(); - String id = ManagedBuildManager.calculateChildId(cf.getId(), null); - Configuration config = new Configuration(mProj, cf, id, false, true); - CConfigurationData data = config.getConfigurationData(); - ICConfigurationDescription cfgDes = des.createConfiguration(ManagedBuildManager.CFG_DATA_PROVIDER_ID, data); - config.setConfigurationDescription(cfgDes); - config.exportArtifactInfo(); - - IBuilder bld = config.getEditableBuilder(); - if (bld != null) { bld.setManagedBuildOn(true); } + public void createProject(IProject project, boolean defaults, boolean onFinish, IProgressMonitor monitor) throws CoreException { + try { + monitor.beginTask("", 100); //$NON-NLS-1$ + ICProjectDescriptionManager mngr = CoreModel.getDefault().getProjectDescriptionManager(); + ICProjectDescription des = mngr.createProjectDescription(project, false, !onFinish); + ManagedBuildInfo info = ManagedBuildManager.createBuildInfo(project); + monitor.worked(10); + cfgs = fConfigPage.getCfgItems(false); + if (cfgs == null || cfgs.length == 0) + cfgs = CDTConfigWizardPage.getDefaultCfgs(this); - config.setName(cfgs[i].getName()); - config.setArtifactName(removeSpaces(project.getName())); + if (cfgs == null || cfgs.length == 0 || cfgs[0].getConfiguration() == null) { + throw new CoreException(new Status(IStatus.ERROR, + ManagedBuilderUIPlugin.getUniqueIdentifier(), + Messages.getString("CWizardHandler.6"))); //$NON-NLS-1$ + } + Configuration cf = (Configuration)cfgs[0].getConfiguration(); + ManagedProject mProj = new ManagedProject(project, cf.getProjectType()); + info.setManagedProject(mProj); + monitor.worked(10); + cfgs = CfgHolder.unique(cfgs); + cfgs = CfgHolder.reorder(cfgs); - IBuildProperty b = config.getBuildProperties().getProperty(PROPERTY); - if (cfgDebug == null && b != null && b.getValue() != null && PROP_VAL.equals(b.getValue().getId())) - cfgDebug = cfgDes; - if (cfgFirst == null) // select at least first configuration - cfgFirst = cfgDes; + ICConfigurationDescription cfgDebug = null; + ICConfigurationDescription cfgFirst = null; + + int work = 50/cfgs.length; + + for(int i = 0; i < cfgs.length; i++){ + cf = (Configuration)cfgs[i].getConfiguration(); + String id = ManagedBuildManager.calculateChildId(cf.getId(), null); + Configuration config = new Configuration(mProj, cf, id, false, true); + CConfigurationData data = config.getConfigurationData(); + ICConfigurationDescription cfgDes = des.createConfiguration(ManagedBuildManager.CFG_DATA_PROVIDER_ID, data); + config.setConfigurationDescription(cfgDes); + config.exportArtifactInfo(); + + IBuilder bld = config.getEditableBuilder(); + if (bld != null) { bld.setManagedBuildOn(true); } + + config.setName(cfgs[i].getName()); + config.setArtifactName(removeSpaces(project.getName())); + + IBuildProperty b = config.getBuildProperties().getProperty(PROPERTY); + if (cfgDebug == null && b != null && b.getValue() != null && PROP_VAL.equals(b.getValue().getId())) + cfgDebug = cfgDes; + if (cfgFirst == null) // select at least first configuration + cfgFirst = cfgDes; + monitor.worked(work); + } + mngr.setProjectDescription(project, des); + doTemplatesPostProcess(project); + doCustom(project); + monitor.worked(30); + } finally { + monitor.done(); } - mngr.setProjectDescription(project, des); - doTemplatesPostProcess(project); - doCustom(project); } protected void doTemplatesPostProcess(IProject prj) { diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/STDWizardHandler.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/STDWizardHandler.java index b246ad481fd..7890c1a61bb 100644 --- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/STDWizardHandler.java +++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/STDWizardHandler.java @@ -7,6 +7,7 @@ * * Contributors: * Intel Corporation - initial API and implementation + * IBM Corporation *******************************************************************************/ package org.eclipse.cdt.managedbuilder.ui.wizards; @@ -26,6 +27,7 @@ import org.eclipse.cdt.managedbuilder.ui.properties.Messages; import org.eclipse.cdt.ui.newui.UIMessages; import org.eclipse.core.resources.IProject; import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.jface.wizard.IWizard; import org.eclipse.swt.widgets.Composite; @@ -48,40 +50,49 @@ public class STDWizardHandler extends MBSWizardHandler { /** * Note that configurations parameter is ignored */ - public void createProject(IProject project, boolean defaults, boolean onFinish) throws CoreException { - ICProjectDescriptionManager mngr = CoreModel.getDefault().getProjectDescriptionManager(); - ICProjectDescription des = mngr.createProjectDescription(project, false, !onFinish); - ManagedBuildInfo info = ManagedBuildManager.createBuildInfo(project); - ManagedProject mProj = new ManagedProject(des); - info.setManagedProject(mProj); - - cfgs = CfgHolder.unique(fConfigPage.getCfgItems(defaults)); - cfgs = CfgHolder.reorder(cfgs); - - for (int i=0; i