diff options
author | Milos Kleint | 2011-03-07 13:35:56 +0000 |
---|---|---|
committer | Milos Kleint | 2011-03-07 13:36:33 +0000 |
commit | ba4071b2ae824fd5a5e6f901784c1c49c19f50a2 (patch) | |
tree | 1a1751e863643d39b2e517fe94d63c8c76a57209 /org.eclipse.m2e.core.ui | |
parent | 04acf36286b61be597a15fc97e2ef269ae6eb47c (diff) | |
download | m2e-core-ba4071b2ae824fd5a5e6f901784c1c49c19f50a2.tar.gz m2e-core-ba4071b2ae824fd5a5e6f901784c1c49c19f50a2.tar.xz m2e-core-ba4071b2ae824fd5a5e6f901784c1c49c19f50a2.zip |
338944 fix the canFinish() and getNextPage() in case there is no mapping data due to error in gathering the data.
Diffstat (limited to 'org.eclipse.m2e.core.ui')
3 files changed, 26 insertions, 8 deletions
diff --git a/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/lifecyclemapping/LifecycleMappingConfiguration.java b/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/lifecyclemapping/LifecycleMappingConfiguration.java index 43cd028b..933d08b4 100644 --- a/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/lifecyclemapping/LifecycleMappingConfiguration.java +++ b/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/lifecyclemapping/LifecycleMappingConfiguration.java @@ -179,6 +179,9 @@ public class LifecycleMappingConfiguration { } public static LifecycleMappingConfiguration clone(LifecycleMappingConfiguration original, Collection<MavenProjectInfo> filter) { + if (original == null) { + throw new IllegalArgumentException("The original LifecycleMappingConfiguration shall not be null."); + } LifecycleMappingConfiguration result = new LifecycleMappingConfiguration(); for (MavenProjectInfo info : filter) { ProjectLifecycleMappingConfiguration res = original.projects.get(info); diff --git a/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/wizards/MavenImportWizard.java b/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/wizards/MavenImportWizard.java index d871adde..989a6ef3 100644 --- a/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/wizards/MavenImportWizard.java +++ b/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/wizards/MavenImportWizard.java @@ -36,6 +36,8 @@ import org.eclipse.m2e.core.ui.internal.actions.SelectionUtil; import org.eclipse.m2e.core.ui.internal.lifecyclemapping.LifecycleMappingConfiguration; import org.eclipse.ui.IImportWizard; import org.eclipse.ui.IWorkbench; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** @@ -46,6 +48,7 @@ import org.eclipse.ui.IWorkbench; @SuppressWarnings("restriction") public class MavenImportWizard extends AbstractMavenProjectWizard implements IImportWizard { + private static final Logger LOG = LoggerFactory.getLogger(MavenImportWizard.class); private MavenImportWizardPage page; private LifecycleMappingPage lifecycleMappingPage; @@ -166,7 +169,8 @@ public class MavenImportWizard extends AbstractMavenProjectWizard implements IIm boolean complete = page.isPageComplete(); if (complete && getContainer().getCurrentPage() == page) { //only apply this logic on the first page LifecycleMappingConfiguration mapping = getMappingConfiguration(); - if (mapping == null || !mapping.isMappingComplete()) { + //mapping is null when the scanning failed to finish. in that case we want to wizard to end on the first page. + if (mapping != null && !mapping.isMappingComplete()) { return false; } } @@ -197,10 +201,13 @@ public class MavenImportWizard extends AbstractMavenProjectWizard implements IIm } /** - * @return + * @return null or a clone */ public LifecycleMappingConfiguration getMappingConfiguration() { - return LifecycleMappingConfiguration.clone(mappingConfiguration, getProjects()); + if (mappingConfiguration != null) { + return LifecycleMappingConfiguration.clone(mappingConfiguration, getProjects()); + } + return null; } /** @@ -210,6 +217,7 @@ public class MavenImportWizard extends AbstractMavenProjectWizard implements IIm * */ void scanProjects(final List<MavenProjectInfo> list, IProgressMonitor monitor) throws CoreException { + LOG.debug("About to calculate lifecycle mapping configuration"); ProjectImportConfiguration importConfiguration = getProjectImportConfiguration(); mappingConfiguration = LifecycleMappingConfiguration.calculate(list, importConfiguration, monitor); } diff --git a/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/wizards/MavenImportWizardPage.java b/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/wizards/MavenImportWizardPage.java index cdef4484..b8a05d52 100644 --- a/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/wizards/MavenImportWizardPage.java +++ b/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/wizards/MavenImportWizardPage.java @@ -25,6 +25,7 @@ import org.eclipse.core.resources.IWorkspaceRoot; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.Path; import org.eclipse.jface.dialogs.IMessageProvider; import org.eclipse.jface.operation.IRunnableWithProgress; import org.eclipse.jface.viewers.CheckStateChangedEvent; @@ -322,7 +323,11 @@ public class MavenImportWizardPage extends AbstractMavenWizardPage { createAdvancedSettings(composite, new GridData(SWT.FILL, SWT.TOP, false, false, 3, 1)); resolverConfigurationComponent.template.addModifyListener(new ModifyListener(){ public void modifyText(ModifyEvent arg0) { - validate(); + Display.getDefault().asyncExec(new Runnable() { + public void run() { + validate(); + } + }); } }); @@ -453,8 +458,11 @@ public class MavenImportWizardPage extends AbstractMavenWizardPage { boolean isAlreadyExists(MavenProjectInfo info) { if(info!=null) { IWorkspace workspace = ResourcesPlugin.getWorkspace(); - IProject project = getImportConfiguration().getProject(workspace.getRoot(), info.getModel()); - return project.exists(); + String name = getImportConfiguration().getProjectName(info.getModel()); + if (name != null && name.length() > 0) { + IProject project = workspace.getRoot().getProject(name); + return project.exists(); + } } return false; } @@ -511,7 +519,6 @@ public class MavenImportWizardPage extends AbstractMavenWizardPage { } } } - setMessage(null); setPageComplete(projectTreeViewer.getCheckedElements().length > 0); projectTreeViewer.refresh(); @@ -525,7 +532,7 @@ public class MavenImportWizardPage extends AbstractMavenWizardPage { IWizardPage next = super.getNextPage(); MavenImportWizard wizard = (MavenImportWizard)getWizard(); LifecycleMappingConfiguration config = wizard.getMappingConfiguration(); - if (config != null && config.isMappingComplete()) { + if (config == null || config.isMappingComplete()) { next = null; } return next; |