package fr.liglab.adele.cilia.workbench.common.ui.view.ciliaerrorview;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.core.resources.IMarker;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
public static String MARKER_TYPE = "fr.liglab.adele.cilia.workbench.common.marker";
public static IMarker
createErrorMarker(String description, Object rootSourceProvider, Object sourceProvider) {
return createMarker(IMarker.SEVERITY_ERROR, description, rootSourceProvider, sourceProvider);
}
public static IMarker
createWarningMarker(String description, Object rootSourceProvider, Object sourceProvider) {
return createMarker(IMarker.SEVERITY_WARNING, description, rootSourceProvider, sourceProvider);
}
public static IMarker
createMarker(
int severity, String description, Object rootSourceProvider,
Object sourceProvider) {
IMarker marker = null;
try {
marker = ResourcesPlugin.getWorkspace().getRoot().createMarker(MARKER_TYPE);
marker.setAttribute(IMarker.MESSAGE, description);
marker.setAttribute(IMarker.SEVERITY, severity);
marker.setAttribute(IMarker.TRANSIENT, true);
if (rootSourceProvider != null)
marker.setAttribute(RootSourceProviderField.FIELD_ID, rootSourceProvider);
if (sourceProvider != null)
marker.setAttribute(SourceProviderField.FIELD_ID, sourceProvider);
} catch (CoreException e) {
e.printStackTrace();
}
return marker;
}
public static IMarker[]
findMarkers()
throws CoreException {
List<IMarker> retval = new ArrayList<IMarker>();
IMarker[] markers = ResourcesPlugin.getWorkspace().getRoot()
.findMarkers(MARKER_TYPE, true, IResource.DEPTH_INFINITE);
for (IMarker marker : markers)
if (marker.exists())
retval.add(marker);
return retval.toArray(new IMarker[0]);
}
public static IMarker[]
findMarkers(Object rootSourceProvider)
throws CoreException {
List<IMarker> retval = new ArrayList<IMarker>();
for (IMarker marker : findMarkers())
if (marker.getAttribute(RootSourceProviderField.FIELD_ID) == rootSourceProvider)
retval.add(marker);
return retval.toArray(new IMarker[0]);
}
public static void deleteMarkers(Object rootSourceProvider)
throws CoreException {
for (IMarker marker : findMarkers(rootSourceProvider))
marker.delete();
}
}