Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew M Finkbeiner2012-08-16 15:40:47 +0000
committerRoberto E. Escobar2012-08-16 15:40:47 +0000
commit580d24131679ca99e2c6045f5aea4b84c00561eb (patch)
treec3d856b2665441846be2e906d369127028b4a8c5
parent69bd659e604af66270bc915194998b0ba9a7e6bd (diff)
downloadorg.eclipse.osee-580d24131679ca99e2c6045f5aea4b84c00561eb.tar.gz
org.eclipse.osee-580d24131679ca99e2c6045f5aea4b84c00561eb.tar.xz
org.eclipse.osee-580d24131679ca99e2c6045f5aea4b84c00561eb.zip
bug[ats_0390M]: Add clear markers safety net and popup menu action
-rw-r--r--plugins/org.eclipse.osee.ote.ui.markers/build.properties3
-rw-r--r--plugins/org.eclipse.osee.ote.ui.markers/plugin.xml31
-rw-r--r--plugins/org.eclipse.osee.ote.ui.markers/src/org/eclipse/osee/ote/ui/markers/ClearOteMarkerAction.java56
-rw-r--r--plugins/org.eclipse.osee.ote.ui.markers/src/org/eclipse/osee/ote/ui/markers/ClearOteMarkerActionView.java49
-rw-r--r--plugins/org.eclipse.osee.ote.ui.markers/src/org/eclipse/osee/ote/ui/markers/MarkerPlugin.java13
-rw-r--r--plugins/org.eclipse.osee.ote.ui.markers/src/org/eclipse/osee/ote/ui/markers/OteMarkerHelper.java24
6 files changed, 167 insertions, 9 deletions
diff --git a/plugins/org.eclipse.osee.ote.ui.markers/build.properties b/plugins/org.eclipse.osee.ote.ui.markers/build.properties
index 34d2e4d2dad..e9863e281ea 100644
--- a/plugins/org.eclipse.osee.ote.ui.markers/build.properties
+++ b/plugins/org.eclipse.osee.ote.ui.markers/build.properties
@@ -1,4 +1,5 @@
source.. = src/
output.. = bin/
bin.includes = META-INF/,\
- .
+ .,\
+ plugin.xml
diff --git a/plugins/org.eclipse.osee.ote.ui.markers/plugin.xml b/plugins/org.eclipse.osee.ote.ui.markers/plugin.xml
new file mode 100644
index 00000000000..1605d8e2578
--- /dev/null
+++ b/plugins/org.eclipse.osee.ote.ui.markers/plugin.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+ <extension
+ point="org.eclipse.ui.popupMenus">
+ <objectContribution
+ adaptable="true"
+ id="org.eclipse.osee.ote.ui.markers.contribution1"
+ nameFilter="*"
+ objectClass="org.eclipse.core.resources.IResource">
+ <action
+ enablesFor="+"
+ label="Clear OTE Markers"
+ class="org.eclipse.osee.ote.ui.markers.ClearOteMarkerActionView"
+ menubarPath="org.eclipse.osee.ote.ui.test.manager.menu1/markers"
+ id="org.eclipse.osee.ote.ui.markers.clearMarkers">
+ </action>
+ </objectContribution>
+ <viewerContribution
+ targetID="#CompilationUnitEditorContext"
+ id="markerConf">
+ <action
+ label="Clear OTE Markers"
+ menubarPath="org.eclipse.jdt.ui.source.menu"
+ id="org.eclipse.osee.ote.ui.markers.editorClearMarkers"
+ class="org.eclipse.osee.ote.ui.markers.ClearOteMarkerAction"/>
+ </viewerContribution>
+
+ </extension>
+
+</plugin>
diff --git a/plugins/org.eclipse.osee.ote.ui.markers/src/org/eclipse/osee/ote/ui/markers/ClearOteMarkerAction.java b/plugins/org.eclipse.osee.ote.ui.markers/src/org/eclipse/osee/ote/ui/markers/ClearOteMarkerAction.java
new file mode 100644
index 00000000000..fe610b4516c
--- /dev/null
+++ b/plugins/org.eclipse.osee.ote.ui.markers/src/org/eclipse/osee/ote/ui/markers/ClearOteMarkerAction.java
@@ -0,0 +1,56 @@
+package org.eclipse.osee.ote.ui.markers;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+
+import org.eclipse.core.resources.IResource;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.ui.IEditorActionDelegate;
+import org.eclipse.ui.IEditorPart;
+
+public class ClearOteMarkerAction implements IEditorActionDelegate{
+
+ ArrayList<IResource> selections;
+ private IEditorPart editor;
+
+ public ClearOteMarkerAction() {
+ selections = new ArrayList<IResource>();
+ }
+
+ @Override
+ public void run(IAction action) {
+ for(IResource resource:selections){
+ MarkerPlugin.findAndRemoveOteMarkers(resource);
+ }
+ }
+
+ @Override
+ public void selectionChanged(IAction action, ISelection selection) {
+ selections.clear();
+ if(selection instanceof StructuredSelection){
+ Iterator<?> i = ((StructuredSelection)selection).iterator();
+ while (i.hasNext()) {
+ Object obj = i.next();
+ if (obj instanceof IResource) {
+ IResource resource = (IResource) obj;
+ if (resource != null) {
+ selections.add(resource);
+ }
+ }
+ }
+ } else {
+ Object obj = editor.getEditorInput().getAdapter(IResource.class);
+ if(obj != null){
+ selections.add((IResource)obj);
+ }
+ }
+ }
+
+ @Override
+ public void setActiveEditor(IAction action, IEditorPart targetEditor) {
+ this.editor = targetEditor;
+ }
+
+}
diff --git a/plugins/org.eclipse.osee.ote.ui.markers/src/org/eclipse/osee/ote/ui/markers/ClearOteMarkerActionView.java b/plugins/org.eclipse.osee.ote.ui.markers/src/org/eclipse/osee/ote/ui/markers/ClearOteMarkerActionView.java
new file mode 100644
index 00000000000..5754818268b
--- /dev/null
+++ b/plugins/org.eclipse.osee.ote.ui.markers/src/org/eclipse/osee/ote/ui/markers/ClearOteMarkerActionView.java
@@ -0,0 +1,49 @@
+package org.eclipse.osee.ote.ui.markers;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+
+import org.eclipse.core.resources.IResource;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.ui.IViewActionDelegate;
+import org.eclipse.ui.IViewPart;
+
+public class ClearOteMarkerActionView implements IViewActionDelegate {
+
+ ArrayList<IResource> selections;
+
+ public ClearOteMarkerActionView() {
+ selections = new ArrayList<IResource>();
+ }
+
+ @Override
+ public void run(IAction action) {
+ for(IResource resource:selections){
+ MarkerPlugin.findAndRemoveOteMarkers(resource);
+ }
+ }
+
+ @Override
+ public void selectionChanged(IAction action, ISelection selection) {
+ selections.clear();
+ if(selection instanceof StructuredSelection){
+ Iterator<?> i = ((StructuredSelection)selection).iterator();
+ while (i.hasNext()) {
+ Object obj = i.next();
+ if (obj instanceof IResource) {
+ IResource resource = (IResource) obj;
+ if (resource != null) {
+ selections.add(resource);
+ }
+ }
+ }
+ }
+ }
+
+ @Override
+ public void init(IViewPart view) {
+
+ }
+}
diff --git a/plugins/org.eclipse.osee.ote.ui.markers/src/org/eclipse/osee/ote/ui/markers/MarkerPlugin.java b/plugins/org.eclipse.osee.ote.ui.markers/src/org/eclipse/osee/ote/ui/markers/MarkerPlugin.java
index 6fcc0ecc480..959dff4e698 100644
--- a/plugins/org.eclipse.osee.ote.ui.markers/src/org/eclipse/osee/ote/ui/markers/MarkerPlugin.java
+++ b/plugins/org.eclipse.osee.ote.ui.markers/src/org/eclipse/osee/ote/ui/markers/MarkerPlugin.java
@@ -15,6 +15,7 @@ import java.util.logging.Level;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.resources.IResource;
import org.eclipse.core.resources.IResourceChangeEvent;
import org.eclipse.core.resources.IResourceChangeListener;
import org.eclipse.core.resources.IResourceDelta;
@@ -108,9 +109,21 @@ public class MarkerPlugin implements BundleActivator {
}
}
}
+ findAndRemoveOteMarkers(file);
}
static synchronized void updateMarkerInfo(IFile file, List<IMarker> markers) {
filesToWatch.put(file, markers);
}
+
+ public static void findAndRemoveOteMarkers(IResource resource){
+ try {
+ IMarker[] markersToRemove = resource.findMarkers("org.eclipse.osee.ote.ui.output.errorMarker", false, IResource.DEPTH_INFINITE);
+ for(IMarker localMarker:markersToRemove){
+ localMarker.delete();
+ }
+ } catch (CoreException e) {
+ OseeLog.log(MarkerPlugin.class, Level.SEVERE, e);
+ }
+ }
}
diff --git a/plugins/org.eclipse.osee.ote.ui.markers/src/org/eclipse/osee/ote/ui/markers/OteMarkerHelper.java b/plugins/org.eclipse.osee.ote.ui.markers/src/org/eclipse/osee/ote/ui/markers/OteMarkerHelper.java
index 920940cde14..43edad63197 100644
--- a/plugins/org.eclipse.osee.ote.ui.markers/src/org/eclipse/osee/ote/ui/markers/OteMarkerHelper.java
+++ b/plugins/org.eclipse.osee.ote.ui.markers/src/org/eclipse/osee/ote/ui/markers/OteMarkerHelper.java
@@ -18,6 +18,7 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.logging.Level;
+
import org.eclipse.core.resources.IMarker;
import org.eclipse.core.resources.IResource;
import org.eclipse.osee.framework.logging.OseeLog;
@@ -103,15 +104,22 @@ public class OteMarkerHelper {
Map<String, IResource> resources = new HashMap<String, IResource>();
for (MarkerInfo marker : markerInfo) {
+ if (!fileAlreadyLookedFor.contains(marker.getFile())) {
+ fileAlreadyLookedFor.add(marker.getFile());
+ IResource resource = AWorkspace.findWorkspaceFile(marker.getFile());
+ if (resource != null) {
+ resources.put(marker.getFile(), resource);
+ }
+ }
+ }
+
+ for (MarkerInfo marker : markerInfo) {
+ IResource resourceToMark = resources.get(marker.getFile());
+ MarkerPlugin.findAndRemoveOteMarkers(resourceToMark);
+ }
+
+ for (MarkerInfo marker : markerInfo) {
try {
- if (!fileAlreadyLookedFor.contains(marker.getFile())) {
- fileAlreadyLookedFor.add(marker.getFile());
- IResource resource = AWorkspace.findWorkspaceFile(marker.getFile());
- if (resource != null) {
- resources.put(marker.getFile(), resource);
- }
- }
-
IResource resourceToMark = resources.get(marker.getFile());
if (resourceToMark != null) {
Map<String, Object> scriptMarkerMap = new HashMap<String, Object>();

Back to the top