James Moger
2014-04-09 37ee4854c4cb0b8f5aa23e3f518dee3bf2d30558
src/main/java/com/gitblit/wicket/charting/Chart.java
File was renamed from src/main/java/com/gitblit/wicket/charting/GoogleChart.java
@@ -17,17 +17,22 @@
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.TimeZone;
import com.gitblit.Keys;
import com.gitblit.utils.StringUtils;
import com.gitblit.wicket.GitBlitWebApp;
import com.gitblit.wicket.GitBlitWebSession;
/**
 * Abstract parent class for Google Charts built with the Visualization API.
 * Abstract parent class for different type of chart: bar, pie & line
 *
 * @author James Moger
 *
 */
public abstract class GoogleChart implements Serializable {
public abstract class Chart implements Serializable {
   private static final long serialVersionUID = 1L;
   final String tagId;
@@ -36,17 +41,21 @@
   final String keyName;
   final String valueName;
   final List<ChartValue> values;
   final List<ChartValue> highlights;
   int width;
   int height;
   boolean showLegend;
   String dateFormat = "MMM dd";
   String clickUrl = null;
   public GoogleChart(String tagId, String title, String keyName, String valueName) {
   public Chart(String tagId, String title, String keyName, String valueName) {
      this.tagId = tagId;
      this.dataName = StringUtils.getSHA1(title).substring(0, 8);
      this.dataName = StringUtils.getSHA1(tagId).substring(0, 8);
      this.title = title;
      this.keyName = keyName;
      this.valueName = valueName;
      values = new ArrayList<ChartValue>();
      highlights = new ArrayList<ChartValue>();
      showLegend = true;
   }
@@ -73,12 +82,25 @@
   public void addValue(String name, double value) {
      values.add(new ChartValue(name, (float) value));
   }
   public void addValue(Date date, int value) {
      values.add(new ChartValue(String.valueOf(date.getTime()), value));
   }
   public void addHighlight(Date date, int value) {
      highlights.add(new ChartValue(String.valueOf(date.getTime()), value));
   }
   protected abstract void appendChart(StringBuilder sb);
   protected void line(StringBuilder sb, String line) {
      sb.append(line);
      sb.append('\n');
   }
   protected TimeZone getTimeZone() {
      return  GitBlitWebApp.get().settings().getBoolean(Keys.web.useClientTimezone, false) ? GitBlitWebSession.get()
            .getTimezone() :  GitBlitWebApp.get().getTimezone();
   }
   protected class ChartValue implements Serializable, Comparable<ChartValue> {
@@ -104,4 +126,20 @@
         return 0;
      }
   }
   public String getDateFormat() {
      return dateFormat;
   }
   public void setDateFormat(String dateFormat) {
      this.dateFormat = dateFormat;
   }
   public String getClickUrl() {
      return clickUrl;
   }
   public void setClickUrl(String clickUrl) {
      this.clickUrl = clickUrl;
   }
}