From 0078c2b7816bcfc32078226e263ce346926014d0 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Wed, 12 Jun 2013 17:18:11 -0400
Subject: [PATCH] Workaround incomplete blame commit dara (issue-254)
---
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