From 37ee4854c4cb0b8f5aa23e3f518dee3bf2d30558 Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Wed, 09 Apr 2014 20:57:09 -0400 Subject: [PATCH] Merged #43 "Switch to flotr2 graphs from GoogleCharts" --- src/main/java/com/gitblit/wicket/charting/Chart.java | 46 ++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 42 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/gitblit/wicket/charting/GoogleChart.java b/src/main/java/com/gitblit/wicket/charting/Chart.java similarity index 64% rename from src/main/java/com/gitblit/wicket/charting/GoogleChart.java rename to src/main/java/com/gitblit/wicket/charting/Chart.java index a718835..331b386 100644 --- a/src/main/java/com/gitblit/wicket/charting/GoogleChart.java +++ b/src/main/java/com/gitblit/wicket/charting/Chart.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; + } } -- Gitblit v1.9.1