Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'org.eclipse.m2e.editor/src/org/eclipse/m2e/editor/dialogs/ManageDependenciesDialog.java')
-rw-r--r--org.eclipse.m2e.editor/src/org/eclipse/m2e/editor/dialogs/ManageDependenciesDialog.java73
1 files changed, 26 insertions, 47 deletions
diff --git a/org.eclipse.m2e.editor/src/org/eclipse/m2e/editor/dialogs/ManageDependenciesDialog.java b/org.eclipse.m2e.editor/src/org/eclipse/m2e/editor/dialogs/ManageDependenciesDialog.java
index 35657975..61313d44 100644
--- a/org.eclipse.m2e.editor/src/org/eclipse/m2e/editor/dialogs/ManageDependenciesDialog.java
+++ b/org.eclipse.m2e.editor/src/org/eclipse/m2e/editor/dialogs/ManageDependenciesDialog.java
@@ -34,7 +34,6 @@ import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
@@ -75,6 +74,7 @@ import org.eclipse.m2e.core.ui.internal.editing.PomEdits.CompoundOperation;
import org.eclipse.m2e.core.ui.internal.editing.PomEdits.Operation;
import org.eclipse.m2e.core.ui.internal.editing.PomEdits.OperationTuple;
import org.eclipse.m2e.core.ui.internal.editing.PomHelper;
+import org.eclipse.m2e.core.ui.internal.util.ParentHierarchyEntry;
import org.eclipse.m2e.editor.MavenEditorPlugin;
import org.eclipse.m2e.editor.composites.DependencyLabelProvider;
import org.eclipse.m2e.editor.composites.ListEditorContentProvider;
@@ -94,7 +94,7 @@ public class ManageDependenciesDialog extends AbstractMavenDialog {
private TableViewer dependenciesViewer;
- private final LinkedList<MavenProject> projectHierarchy;
+ private final List<ParentHierarchyEntry> projectHierarchy;
private PomHierarchyComposite pomHierarchy;
@@ -109,12 +109,12 @@ public class ManageDependenciesDialog extends AbstractMavenDialog {
* The head of the list should be the child, while the tail should be the root parent, with the others in between.
*/
public ManageDependenciesDialog(Shell parent, ValueProvider<List<Dependency>> modelVProvider,
- LinkedList<MavenProject> hierarchy) {
+ List<ParentHierarchyEntry> hierarchy) {
this(parent, modelVProvider, hierarchy, null);
}
public ManageDependenciesDialog(Shell parent, ValueProvider<List<Dependency>> modelVProvider,
- LinkedList<MavenProject> hierarchy, List<Object> selection) {
+ List<ParentHierarchyEntry> hierarchy, List<Object> selection) {
super(parent, DIALOG_SETTINGS);
setShellStyle(getShellStyle() | SWT.RESIZE);
@@ -226,7 +226,7 @@ public class ManageDependenciesDialog extends AbstractMavenDialog {
pomHierarchy.addSelectionChangedListener(new PomViewerSelectionChangedListener());
if(getProjectHierarchy().size() > 0) {
- pomHierarchy.setSelection(new StructuredSelection(getProjectHierarchy().getLast()));
+ pomHierarchy.setSelection(new StructuredSelection(pomHierarchy.getProject()));
}
if(originalSelection != null && originalSelection.size() > 0) {
@@ -236,18 +236,14 @@ public class ManageDependenciesDialog extends AbstractMavenDialog {
return composite;
}
- /* (non-Javadoc)
- * @see org.eclipse.ui.dialogs.SelectionStatusDialog#computeResult()
- */
+ @Override
protected void computeResult() {
- MavenProject targetPOM = getTargetPOM();
- IMavenProjectFacade targetFacade = MavenPlugin.getMavenProjectRegistry().getMavenProject(targetPOM.getGroupId(),
- targetPOM.getArtifactId(), targetPOM.getVersion());
- MavenProject currentPOM = projectHierarchy.getFirst();
- IMavenProjectFacade currentFacade = MavenPlugin.getMavenProjectRegistry().getMavenProject(currentPOM.getGroupId(),
- currentPOM.getArtifactId(), currentPOM.getVersion());
-
- if(targetFacade == null || currentFacade == null) {
+ final ParentHierarchyEntry currentPOM = getCurrentPOM();
+ final ParentHierarchyEntry targetPOM = getTargetPOM();
+ final IFile current = currentPOM.getResource();
+ final IFile target = targetPOM.getResource();
+
+ if(target == null || current == null) {
return;
}
final boolean same = targetPOM.equals(currentPOM);
@@ -260,8 +256,6 @@ public class ManageDependenciesDialog extends AbstractMavenDialog {
*/
//First we remove the version from the original dependency
- final IFile current = currentFacade.getPom();
- final IFile target = targetFacade.getPom();
Job perform = new Job("Updating POM file(s)") {
@Override
protected IStatus run(IProgressMonitor monitor) {
@@ -348,13 +342,17 @@ public class ManageDependenciesDialog extends AbstractMavenDialog {
return dependencies;
}
- protected LinkedList<MavenProject> getProjectHierarchy() {
+ protected List<ParentHierarchyEntry> getProjectHierarchy() {
return this.projectHierarchy;
}
- protected MavenProject getTargetPOM() {
+ protected ParentHierarchyEntry getTargetPOM() {
IStructuredSelection selection = (IStructuredSelection) pomHierarchy.getSelection();
- return (MavenProject) selection.getFirstElement();
+ return (ParentHierarchyEntry) selection.getFirstElement();
+ }
+
+ protected ParentHierarchyEntry getCurrentPOM() {
+ return pomHierarchy.getProject();
}
/**
@@ -396,38 +394,19 @@ public class ManageDependenciesDialog extends AbstractMavenDialog {
return false;
}
- protected void checkStatus(MavenProject targetProject, LinkedList<Dependency> selectedDependencies) {
+ protected void checkStatus(ParentHierarchyEntry targetProject, LinkedList<Dependency> selectedDependencies) {
if(targetProject == null || selectedDependencies.isEmpty()) {
updateStatus(new Status(IStatus.ERROR, MavenEditorPlugin.PLUGIN_ID,
Messages.ManageDependenciesDialog_emptySelectionError));
return;
}
boolean error = false;
- IMavenProjectFacade facade = MavenPlugin.getMavenProjectRegistry().getMavenProject(targetProject.getGroupId(),
- targetProject.getArtifactId(), targetProject.getVersion());
- if(facade == null) {
+ if(targetProject.getFacade() == null) {
error = true;
updateStatus(new Status(IStatus.ERROR, MavenEditorPlugin.PLUGIN_ID,
Messages.ManageDependenciesDialog_projectNotPresentError));
} else {
- org.apache.maven.model.Model model = null;
- if(facade.getMavenProject() == null || facade.getMavenProject().getModel() == null) {
- try {
- model = MavenPlugin.getMavenModelManager().readMavenModel(facade.getPom());
- } catch(CoreException e) {
- Object[] arguments = {facade.getPom(), e.getLocalizedMessage()};
- String message = NLS.bind(Messages.ManageDependenciesDialog_pomReadingError, arguments);
- Status status = new Status(IStatus.ERROR, MavenEditorPlugin.PLUGIN_ID, message);
- LOG.info(message, e);
- updateStatus(status);
- error = true;
- }
- } else {
- model = facade.getMavenProject().getModel();
- }
- if(model != null) {
- error = checkDependencies(model, getDependenciesList());
- }
+ error = checkDependencies(targetProject.getProject().getModel(), getDependenciesList());
}
if(!error) {
@@ -548,17 +527,17 @@ public class ManageDependenciesDialog extends AbstractMavenDialog {
return new Object[0];
}
- if(getProjectHierarchy().getFirst().equals(parent)) {
+ if(getProjectHierarchy().get(0).equals(parent)) {
//We are the final child
return new Object[0];
}
- ListIterator<MavenProject> iter = getProjectHierarchy().listIterator();
+ ListIterator<ParentHierarchyEntry> iter = getProjectHierarchy().listIterator();
while(iter.hasNext()) {
- MavenProject next = iter.next();
+ ParentHierarchyEntry next = iter.next();
if(next.equals(parent)) {
iter.previous();
- MavenProject previous = iter.previous();
+ ParentHierarchyEntry previous = iter.previous();
return new Object[] {previous};
}
}

Back to the top