James Moger
2013-06-12 ada1a326fa36ceb46922006f87d4cff0c49e071f
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('\'');
@@ -68,8 +87,8 @@
            cName, tagId));
      line(sb,
            MessageFormat
                  .format("{0}.draw({1}, '{'width: {2,number,0}, height: {3,number,0}, chartArea:'{'left:20,top:20'}', title: ''{4}'', {5} '}');",
                        cName, dName, width, height, title, colors.toString()));
                  .format("{0}.draw({1}, '{' title: ''{4}'', {5}, legend: '{' position:''{6}'' '}' '}');",
                        cName, dName, width, height, title, colors.toString(), showLegend ? "right" : "none"));
      line(sb, "");
   }
}