diff options
author | Milos Kleint | 2011-03-03 09:40:55 +0000 |
---|---|---|
committer | Milos Kleint | 2011-03-03 09:40:55 +0000 |
commit | b06367d7b09d7ff293044da4c000fa192fb014f5 (patch) | |
tree | 33ebf57d43b743997a7e527440b546360edb64d7 /org.eclipse.m2e.core.ui | |
parent | bcfefbd521969b366054d85f3b8d7f796997a7ea (diff) | |
download | m2e-core-b06367d7b09d7ff293044da4c000fa192fb014f5.tar.gz m2e-core-b06367d7b09d7ff293044da4c000fa192fb014f5.tar.xz m2e-core-b06367d7b09d7ff293044da4c000fa192fb014f5.zip |
335701 correct next/finish button enablement logic based of the mapping anylysis result. when there are problems with mapping, disable finish on first page and enable next, and vice versa
Diffstat (limited to 'org.eclipse.m2e.core.ui')
2 files changed, 37 insertions, 4 deletions
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 dec3b77a..1b44f509 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 @@ -21,7 +21,6 @@ import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.jobs.Job; -import org.eclipse.jface.operation.IRunnableWithProgress; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.m2e.core.MavenPlugin; import org.eclipse.m2e.core.internal.lifecyclemapping.discovery.IMavenDiscoveryProposal; @@ -87,6 +86,7 @@ public class MavenImportWizard extends AbstractMavenProjectWizard implements IIm } public boolean performFinish() { + //mkleint: this sounds wrong. if(!page.isPageComplete()) { return false; } @@ -124,6 +124,23 @@ public class MavenImportWizard extends AbstractMavenProjectWizard implements IIm return true; } + /* (non-Javadoc) + * @see org.eclipse.jface.wizard.Wizard#canFinish() + */ + @Override + public boolean canFinish() { + //in here make sure that the lifecycle page is hidden from view when the mappings are fine + //but disable finish when there are some problems (thus force people to at least look at the other page) + boolean complete = page.isPageComplete(); + if (complete) { + LifecycleMappingConfiguration mapping = getMappingConfiguration(); + if (mapping == null || !mapping.isMappingComplete()) { + return false; + } + } + return super.canFinish(); + } + /** * @return */ 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 e6dfc5b2..6a1cdfa8 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 @@ -37,6 +37,7 @@ import org.eclipse.jface.viewers.ITreeContentProvider; import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.jface.viewers.SelectionChangedEvent; import org.eclipse.jface.viewers.Viewer; +import org.eclipse.jface.wizard.IWizardPage; import org.eclipse.m2e.core.MavenPlugin; import org.eclipse.m2e.core.embedder.MavenModelManager; import org.eclipse.m2e.core.project.AbstractProjectScanner; @@ -44,6 +45,7 @@ import org.eclipse.m2e.core.project.LocalProjectScanner; import org.eclipse.m2e.core.project.MavenProjectInfo; import org.eclipse.m2e.core.project.ProjectImportConfiguration; import org.eclipse.m2e.core.ui.internal.Messages; +import org.eclipse.m2e.core.ui.internal.lifecyclemapping.LifecycleMappingConfiguration; import org.eclipse.osgi.util.NLS; import org.eclipse.swt.SWT; import org.eclipse.swt.events.FocusAdapter; @@ -322,7 +324,7 @@ public class MavenImportWizardPage extends AbstractMavenWizardPage { projectScanner.run(monitor); ((MavenImportWizard) getWizard()).scanProjects(getProjects(projectScanner.getProjects()), monitor); } - + //this collects all projects for analyzing.. List<MavenProjectInfo> getProjects(Collection<MavenProjectInfo> input) { List<MavenProjectInfo> toRet = new ArrayList<MavenProjectInfo>(); for (MavenProjectInfo info : input) { @@ -475,12 +477,26 @@ public class MavenImportWizardPage extends AbstractMavenWizardPage { } } } - + setMessage(null); setPageComplete(projectTreeViewer.getCheckedElements().length > 0); projectTreeViewer.refresh(); } - + + /* (non-Javadoc) + * @see org.eclipse.jface.wizard.WizardPage#getNextPage() + */ + @Override + public IWizardPage getNextPage() { + IWizardPage next = super.getNextPage(); + MavenImportWizard wizard = (MavenImportWizard)getWizard(); + LifecycleMappingConfiguration config = wizard.getMappingConfiguration(); + if (config != null && config.isMappingComplete()) { + next = null; + } + return next; + } + /** * ProjectLabelProvider */ |