/**
* $URL: https://source.sakaiproject.org/svn/sitestats/trunk/sitestats-api/src/java/org/sakaiproject/sitestats/api/chart/ChartService.java $
* $Id: ChartService.java 105078 2012-02-24 23:00:38Z ottenhoff@longsight.com $
*
* Copyright (c) 2006-2009 The Sakai Foundation
*
* Licensed under the Educational Community License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.opensource.org/licenses/ECL-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.sakaiproject.sitestats.api.chart;
import org.sakaiproject.sitestats.api.StatsManager;
import org.sakaiproject.sitestats.api.report.Report;
public interface ChartService {
/**
* Generate a site visits chart.
* @param siteId The site id.
* @param viewType One of StatsManager.VIEW_WEEK, StatsManager.VIEW_MONTH, StatsManager.VIEW_YEAR
* @param width The chart width.
* @param height The chart height.
* @param render3d Render a 3D chart?
* @param transparency Set chart transparency (accept values between 0.0 and 1.0)
* @param itemLabelsVisible Render labels on top of bars
* @return The chart image in a byte array.
* @see StatsManager
*/
public byte[] generateVisitsChart(
String siteId, String viewType,
int width, int height,
boolean render3d, float transparency,
boolean itemLabelsVisible);
/**
* Generate a site activity chart.
* @param siteId The site id.
* @param viewType One of StatsManager.VIEW_WEEK, StatsManager.VIEW_MONTH, StatsManager.VIEW_YEAR
* @param chartType One of StatsManager.CHARTTYPE_PIE, StatsManager.CHARTTYPE_BAR
* @param width The chart width.
* @param height The chart height.
* @param render3d Render a 3D chart?
* @param transparency Set chart transparency (accept values between 0.0 and 1.0)
* @param itemLabelsVisible Render labels on top of bars
* @return The chart image in a byte array.
* @see StatsManager
*/
public byte[] generateActivityChart(
String siteId, String viewType, String chartType,
int width, int height,
boolean render3d, float transparency,
boolean itemLabelsVisible);
/**
* Generate a generic chart based on a know dataset.
* @param siteId The site id.
* @param dataset A JFreeChart Dataset object
* @param chartType One of StatsManager.CHARTTYPE_BAR, StatsManager.CHARTTYPE_LINE, StatsManager.CHARTTYPE_PIE
* @param width The chart width.
* @param height The chart height.
* @param render3d Render a 3D chart?
* @param transparency Set chart transparency (accept values between 0.0 and 1.0)
* @param itemLabelsVisible Render labels on top of bars
* @param timePeriod For TimeSeries charts, this indicates the time period unit: {@link StatsManager#CHARTTIMESERIES_DAY}, {@link StatsManager#CHARTTIMESERIES_WEEKDAY}, {@link StatsManager#CHARTTIMESERIES_MONTH}, {@link StatsManager#CHARTTIMESERIES_YEAR}
* @return The chart image in a byte array.
* @see StatsManager
* @see org.jfree.data.general.Dataset
*/
public byte[] generateChart(
String siteId, Object dataset, String chartType,
int width, int height,
boolean render3d, float transparency,
boolean itemLabelsVisible, String timePeriod);
/**
* Generate a generic chart based on an existing report definition with report data.
* @param report A Report object.
* @param width The chart width.
* @param height The chart height.
* @param render3d Render a 3D chart?
* @param transparency Set chart transparency (accept values between 0.0 and 1.0)
* @param itemLabelsVisible Render labels on top of bars
* @return The chart image in a byte array.
* @see StatsManager
* @see org.jfree.data.general.Dataset
*/
public byte[] generateChart(
Report report,
int width, int height,
boolean render3d, float transparency,
boolean itemLabelsVisible);
}