package com.hundsun.ares.studio.internal.ui;
import org.eclipse.core.resources.IMarker;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.jface.viewers.IDecoration;
import org.eclipse.jface.viewers.ILabelProviderListener;
import org.eclipse.jface.viewers.ILightweightLabelDecorator;
import com.hundsun.ares.studio.core.builder.IAresMarkers;
import com.hundsun.ares.studio.ui.ARESUI;
public class AresProjectProblemProvider implements ILightweightLabelDecorator {
public static final String ICONS_FOLDER_PREFIX = "icons/";
/* (non-Javadoc)
* @see org.eclipse.jface.viewers.IBaseLabelProvider#addListener(org.eclipse.jface.viewers.ILabelProviderListener)
*/
public void addListener(ILabelProviderListener listener) {
}
/* (non-Javadoc)
* @see org.eclipse.jface.viewers.IBaseLabelProvider#dispose()
*/
public void dispose() {
}
/* (non-Javadoc)
* @see org.eclipse.jface.viewers.IBaseLabelProvider#isLabelProperty(java.lang.Object, java.lang.String)
*/
public boolean isLabelProperty(Object element, String property) {
return false;
}
/* (non-Javadoc)
* @see org.eclipse.jface.viewers.IBaseLabelProvider#removeListener(org.eclipse.jface.viewers.ILabelProviderListener)
*/
public void removeListener(ILabelProviderListener listener) {
}
/* (non-Javadoc)
* @see org.eclipse.jface.viewers.ILightweightLabelDecorator#decorate(java.lang.Object, org.eclipse.jface.viewers.IDecoration)
*/
public void decorate(Object element, IDecoration decoration) {
if (element instanceof IProject) {
IProject project = (IProject) element;
if (!project.isAccessible())
return;
try {
int level = project.findMaxProblemSeverity(IAresMarkers.MARKER_ID, true, IResource.DEPTH_INFINITE);
if (level == IMarker.SEVERITY_ERROR) {
decoration.addOverlay(ARESUI.getImageDescriptor(ICONS_FOLDER_PREFIX + ARESUI.IMG_PATH_ERROR), IDecoration.BOTTOM_LEFT);
} else if (level == IMarker.SEVERITY_WARNING) {
decoration.addOverlay(ARESUI.getImageDescriptor(ICONS_FOLDER_PREFIX + ARESUI.IMG_PATH_WARNING), IDecoration.BOTTOM_LEFT);
}
} catch (CoreException e) {
e.printStackTrace();
}
}
}
}