package hudson.plugins.findbugs.dashboard;
import edu.umd.cs.findbugs.annotations.SuppressWarnings;
import hudson.plugins.analysis.Messages;
import hudson.plugins.analysis.core.BuildResult;
import hudson.plugins.analysis.graph.CategoryBuildResultGraph;
import hudson.plugins.analysis.graph.GraphConfiguration;
import hudson.plugins.analysis.util.BoxRenderer;
import hudson.plugins.analysis.util.CategoryUrlBuilder;
import hudson.plugins.analysis.util.ToolTipBoxRenderer;
import hudson.plugins.analysis.util.ToolTipBuilder;
import hudson.plugins.analysis.util.ToolTipProvider;
import hudson.plugins.findbugs.FindBugsResult;
import hudson.util.ColorPalette;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.renderer.category.CategoryItemRenderer;
import org.jfree.data.category.CategoryDataset;
import java.awt.*;
import java.util.ArrayList;
import java.util.List;
/**
* Builds a review count graph for a specified result action.
*
* @author Keith Lea
*/
public class FindbugsEvaluationsGraph extends CategoryBuildResultGraph {
/** {@inheritDoc} */
@Override
public String getId() {
return "EVALS";
}
/** {@inheritDoc} */
@Override
public String getLabel() {
return "FindBugs Cloud Comments";
}
/** {@inheritDoc} */
@Override
protected List<Integer> computeSeries(final BuildResult current) {
List<Integer> series = new ArrayList<Integer>();
if (current instanceof FindBugsResult) {
FindBugsResult findBugsResult = (FindBugsResult) current;
series.add(findBugsResult.getNumberOfComments());
}
return series;
}
/** {@inheritDoc} */
@Override
protected JFreeChart createChart(final CategoryDataset dataSet) {
return createBlockChart(dataSet);
}
/** {@inheritDoc} */
@Override
protected Color[] getColors() {
return new Color[] {ColorPalette.RED, ColorPalette.BLUE};
}
// CHECKSTYLE:OFF
/** {@inheritDoc} */
@java.lang.SuppressWarnings("serial")
@SuppressWarnings("SIC")
@Override
protected CategoryItemRenderer createRenderer(final GraphConfiguration configuration, final String pluginName, final ToolTipProvider toolTipProvider) {
CategoryUrlBuilder url = new CategoryUrlBuilder(getRootUrl(), pluginName) {
/** {@inheritDoc} */
@Override
protected String getDetailUrl(final int row) {
if (row == 1) {
return "fixed";
}
else {
return "new";
}
}
};
ToolTipBuilder toolTip = new ToolTipBuilder(toolTipProvider) {
/** {@inheritDoc} */
@Override
protected String getShortDescription(final int row) {
if (row == 1) {
return Messages.Trend_Fixed();
}
else {
return Messages.Trend_New();
}
}
};
if (configuration.useBuildDateAsDomain()) {
return new ToolTipBoxRenderer(toolTip);
}
else {
return new BoxRenderer(url, toolTip);
}
}
// CHECKSTYLE:ON
}