Bug 528025 - POM version error resolution is not multi-selectable
Change-Id: I1e78f2714c788457e1bd4835f1b15634a964e079
Signed-off-by: Vikas Chandra <Vikas.Chandra@in.ibm.com>
diff --git a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/internal/tools/pomversion/PomVersionMarkerResolution.java b/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/internal/tools/pomversion/PomVersionMarkerResolution.java
index 7899be1..b813224 100644
--- a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/internal/tools/pomversion/PomVersionMarkerResolution.java
+++ b/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/internal/tools/pomversion/PomVersionMarkerResolution.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2013, 2016 IBM Corporation and others.
+ * Copyright (c) 2013, 2017 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -10,6 +10,8 @@
*******************************************************************************/
package org.eclipse.releng.internal.tools.pomversion;
+import java.util.HashSet;
+
import org.eclipse.core.filebuffers.FileBuffers;
import org.eclipse.core.filebuffers.ITextFileBuffer;
import org.eclipse.core.filebuffers.ITextFileBufferManager;
@@ -24,7 +26,8 @@
import org.eclipse.jface.text.IDocument;
import org.eclipse.osgi.util.NLS;
import org.eclipse.releng.tools.RelEngPlugin;
-import org.eclipse.ui.IMarkerResolution;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.ui.views.markers.WorkbenchMarkerResolution;
/**
@@ -32,18 +35,26 @@
* Replaces the version string to one based on the version in the manifest. The corrected
* version must have been stored on the marker at creation time.
*/
-public class PomVersionMarkerResolution implements IMarkerResolution {
+public class PomVersionMarkerResolution extends WorkbenchMarkerResolution {
+ private IMarker marker;
private String correctedVersion;
/**
* New marker resolution that will offer to replace the current POM version with corrected version
* @param correctedVersion new version to insert
+ * @deprecated Use PomVersionMarkerResolution(IMarker marker,String correctedVersion) instead
*/
+ @Deprecated
public PomVersionMarkerResolution(String correctedVersion) {
this.correctedVersion = correctedVersion;
}
+ public PomVersionMarkerResolution(IMarker marker,String correctedVersion) {
+ this.marker = marker;
+ this.correctedVersion = correctedVersion;
+ }
+
@Override
public String getLabel() {
return NLS.bind(Messages.PomVersionMarkerResolution_label, correctedVersion);
@@ -51,6 +62,11 @@
@Override
public void run(IMarker marker) {
+ try {
+ correctedVersion = (String) marker.getAttribute(IPomVersionConstants.POM_CORRECT_VERSION);
+ } catch (CoreException e1) {
+ RelEngPlugin.log(e1);
+ }
if (correctedVersion == null || correctedVersion.trim().length() == 0) {
return;
}
@@ -94,4 +110,31 @@
}
}
}
+
+ @Override
+ public String getDescription() {
+ return null;
+ }
+
+ @Override
+ public Image getImage() {
+ return null ;
+ }
+
+ @Override
+ public IMarker[] findOtherMarkers(IMarker[] markers) {
+ HashSet<IMarker> mset = new HashSet<>(markers.length);
+ for (IMarker iMarker : markers) {
+ if (iMarker.equals(marker))
+ continue;
+ try {
+ if (iMarker.getType().equals(IPomVersionConstants.PROBLEM_MARKER_TYPE))
+ mset.add(iMarker);
+ } catch (CoreException e) {
+
+ }
+ }
+ int size = mset.size();
+ return mset.toArray(new IMarker[size]);
+ }
}
diff --git a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/internal/tools/pomversion/PomVersionResolutionGenerator.java b/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/internal/tools/pomversion/PomVersionResolutionGenerator.java
index 2c8cbf4..ba5d9f1 100644
--- a/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/internal/tools/pomversion/PomVersionResolutionGenerator.java
+++ b/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/internal/tools/pomversion/PomVersionResolutionGenerator.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2013, 2016 IBM Corporation and others.
+ * Copyright (c) 2013, 2017 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -30,7 +30,7 @@
if (marker.getType().equals(IPomVersionConstants.PROBLEM_MARKER_TYPE)){
String correctedVersion = (String) marker.getAttribute(IPomVersionConstants.POM_CORRECT_VERSION);
if (correctedVersion != null && correctedVersion.length() > 0){
- return new IMarkerResolution[] {new PomVersionMarkerResolution(correctedVersion)};
+ return new IMarkerResolution[] {new PomVersionMarkerResolution(marker,correctedVersion)};
}
}
} catch (CoreException e){