diff options
author | Milos Kleint | 2010-12-28 12:42:26 +0000 |
---|---|---|
committer | Milos Kleint | 2010-12-28 12:42:26 +0000 |
commit | 7dec9732b2dfc1a53981322154c77d8650564f69 (patch) | |
tree | 40ce1da23613373f7369b3d8c6cc71d360e9e7f3 /org.eclipse.m2e.editor/src/org/eclipse/m2e/editor/composites/DependenciesComposite.java | |
parent | cf565350118fd3f54cfa51151f99cc9a2918ebf0 (diff) | |
download | m2e-core-7dec9732b2dfc1a53981322154c77d8650564f69.tar.gz m2e-core-7dec9732b2dfc1a53981322154c77d8650564f69.tar.xz m2e-core-7dec9732b2dfc1a53981322154c77d8650564f69.zip |
MNGECLIPSE-2547 have the dependency management's Add button reuse the same selection dialog
Diffstat (limited to 'org.eclipse.m2e.editor/src/org/eclipse/m2e/editor/composites/DependenciesComposite.java')
-rw-r--r-- | org.eclipse.m2e.editor/src/org/eclipse/m2e/editor/composites/DependenciesComposite.java | 44 |
1 files changed, 31 insertions, 13 deletions
diff --git a/org.eclipse.m2e.editor/src/org/eclipse/m2e/editor/composites/DependenciesComposite.java b/org.eclipse.m2e.editor/src/org/eclipse/m2e/editor/composites/DependenciesComposite.java index b6f5dbb7..f6f770ba 100644 --- a/org.eclipse.m2e.editor/src/org/eclipse/m2e/editor/composites/DependenciesComposite.java +++ b/org.eclipse.m2e.editor/src/org/eclipse/m2e/editor/composites/DependenciesComposite.java @@ -444,20 +444,38 @@ public class DependenciesComposite extends Composite { dependencyManagementEditor.setAddButtonListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { - // TODO calculate current list of artifacts for the project - Set<ArtifactKey> artifacts = Collections.emptySet(); - MavenRepositorySearchDialog dialog = new MavenRepositorySearchDialog(getShell(), // - Messages.DependenciesComposite_searchDialog_title, IIndex.SEARCH_ARTIFACT, artifacts, true); - if(dialog.open() == Window.OK) { - IndexedArtifactFile af = (IndexedArtifactFile) dialog.getFirstResult(); - if(af != null) { - Dependency dependency = createDependency(dependencyManagementProvider, - POM_PACKAGE.getDependencyManagement_Dependencies(), // - af.group, af.artifact, af.version, af.classifier, "jar".equals(nvl(af.type)) ? "" : nvl(af.type), //$NON-NLS-1$ //$NON-NLS-2$ - "compile".equals(nvl(dialog.getSelectedScope())) ? "" : nvl(dialog.getSelectedScope()));//$NON-NLS-1$ //$NON-NLS-2$ - dependencyManagementEditor.setInput(dependencyManagementProvider.getValue().getDependencies()); - dependencyManagementEditor.setSelection(Collections.singletonList(dependency)); + final AddDependencyDialog addDepDialog = new AddDependencyDialog(getShell(), true, editorPage.getProject(), editorPage.getPomEditor().getMavenProject()); + + /* + * Load the dependency tree for the dialog so it can show already + * added transitive dependencies. + */ + Runnable runnable = new Runnable() { + + public void run() { + pomEditor.loadDependencies(new Callback() { + + public void onFinish(DependencyNode node) { + addDepDialog.setDepdencyNode(node); + } + + public void onException(CoreException ex) { + MavenLogger.log(ex); + } + }, Artifact.SCOPE_TEST); } + }; + + addDepDialog.onLoad(runnable); + + if(addDepDialog.open() == Window.OK) { + List<Dependency> deps = addDepDialog.getDependencies(); + for(Dependency dep : deps) { + setupDependency(dependencyManagementProvider, POM_PACKAGE.getDependencyManagement_Dependencies(), dep); + } + setDependenciesInput(); + dependencyManagementEditor.setInput(dependencyManagementProvider.getValue().getDependencies()); + dependencyManagementEditor.setSelection(Collections.singletonList(deps.get(0))); } } }); |