From cedf138f3c9afeae7bcbda5dbb0511ebec297d10 Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Mon, 10 Jun 2013 18:45:32 -0400 Subject: [PATCH] Globl and per-repository setting to exclude authors form metrics (issue-251) --- src/main/java/com/gitblit/wicket/charting/GooglePieChart.java | 25 ++++++++++++++++++++++--- 1 files changed, 22 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/gitblit/wicket/charting/GooglePieChart.java b/src/main/java/com/gitblit/wicket/charting/GooglePieChart.java index 945e08b..a9b4667 100644 --- a/src/main/java/com/gitblit/wicket/charting/GooglePieChart.java +++ b/src/main/java/com/gitblit/wicket/charting/GooglePieChart.java @@ -16,7 +16,9 @@ package com.gitblit.wicket.charting; import java.text.MessageFormat; +import java.util.ArrayList; import java.util.Collections; +import java.util.List; import com.gitblit.utils.StringUtils; @@ -44,10 +46,27 @@ line(sb, MessageFormat.format("{0}.addRows({1,number,0});", dName, values.size())); Collections.sort(values); - - StringBuilder colors = new StringBuilder("colors:["); - for (int i = 0; i < values.size(); i++) { + List<ChartValue> list = new ArrayList<ChartValue>(); + + int maxSlices = 10; + int maxCount = Math.min(maxSlices - 1, values.size()); + + for (int i = 0; i < maxCount; i++) { ChartValue value = values.get(i); + list.add(value); + } + if (values.size() >= maxSlices) { + float others = 0; + for (int i = maxSlices - 1; i < values.size(); i++) { + others += values.get(i).value; + } + ChartValue other = new ChartValue("other", others); + list.add(other); + } + + StringBuilder colors = new StringBuilder("colors:["); + for (int i = 0; i < list.size(); i++) { + ChartValue value = list.get(i); colors.append('\''); colors.append(StringUtils.getColor(value.name)); colors.append('\''); -- Gitblit v1.9.1