aboutsummaryrefslogtreecommitdiff
path: root/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/UserChartController.java
diff options
context:
space:
mode:
authorScott Jackson <daneren2005@gmail.com>2013-07-27 14:33:25 -0700
committerScott Jackson <daneren2005@gmail.com>2013-07-27 14:33:38 -0700
commit4738428c2c205f42200386ae09b44b9ec07b9144 (patch)
treea6402978fe1b4655f90c3c8a181f4d246fbc5e89 /subsonic-main/src/main/java/net/sourceforge/subsonic/controller/UserChartController.java
parent82ec8315f777c319f2372540098e21111019d629 (diff)
downloaddsub-4738428c2c205f42200386ae09b44b9ec07b9144.tar.gz
dsub-4738428c2c205f42200386ae09b44b9ec07b9144.tar.bz2
dsub-4738428c2c205f42200386ae09b44b9ec07b9144.zip
Move subsonic-android to root
Diffstat (limited to 'subsonic-main/src/main/java/net/sourceforge/subsonic/controller/UserChartController.java')
-rw-r--r--subsonic-main/src/main/java/net/sourceforge/subsonic/controller/UserChartController.java145
1 files changed, 0 insertions, 145 deletions
diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/UserChartController.java b/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/UserChartController.java
deleted file mode 100644
index 0428eff8..00000000
--- a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/UserChartController.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
- This file is part of Subsonic.
-
- Subsonic is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- Subsonic is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with Subsonic. If not, see <http://www.gnu.org/licenses/>.
-
- Copyright 2009 (C) Sindre Mehus
- */
-package net.sourceforge.subsonic.controller;
-
-import java.awt.Color;
-import java.awt.GradientPaint;
-import java.awt.Paint;
-import java.util.List;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.jfree.chart.ChartFactory;
-import org.jfree.chart.ChartUtilities;
-import org.jfree.chart.JFreeChart;
-import org.jfree.chart.axis.AxisLocation;
-import org.jfree.chart.axis.CategoryAxis;
-import org.jfree.chart.axis.CategoryLabelPositions;
-import org.jfree.chart.axis.LogarithmicAxis;
-import org.jfree.chart.plot.CategoryPlot;
-import org.jfree.chart.plot.PlotOrientation;
-import org.jfree.chart.renderer.category.BarRenderer;
-import org.jfree.data.category.CategoryDataset;
-import org.jfree.data.category.DefaultCategoryDataset;
-import org.springframework.web.servlet.ModelAndView;
-
-import net.sourceforge.subsonic.domain.User;
-import net.sourceforge.subsonic.service.SecurityService;
-
-/**
- * Controller for generating a chart showing bitrate vs time.
- *
- * @author Sindre Mehus
- */
-public class UserChartController extends AbstractChartController {
-
- private SecurityService securityService;
-
- public static final int IMAGE_WIDTH = 400;
- public static final int IMAGE_MIN_HEIGHT = 200;
- private static final long BYTES_PER_MB = 1024L * 1024L;
-
- public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
- String type = request.getParameter("type");
- CategoryDataset dataset = createDataset(type);
- JFreeChart chart = createChart(dataset, request);
-
- int imageHeight = Math.max(IMAGE_MIN_HEIGHT, 15 * dataset.getColumnCount());
-
- ChartUtilities.writeChartAsPNG(response.getOutputStream(), chart, IMAGE_WIDTH, imageHeight);
- return null;
- }
-
- private CategoryDataset createDataset(String type) {
- DefaultCategoryDataset dataset = new DefaultCategoryDataset();
- List<User> users = securityService.getAllUsers();
- for (User user : users) {
- double value;
- if ("stream".equals(type)) {
- value = user.getBytesStreamed();
- } else if ("download".equals(type)) {
- value = user.getBytesDownloaded();
- } else if ("upload".equals(type)) {
- value = user.getBytesUploaded();
- } else if ("total".equals(type)) {
- value = user.getBytesStreamed() + user.getBytesDownloaded() + user.getBytesUploaded();
- } else {
- throw new RuntimeException("Illegal chart type: " + type);
- }
-
- value /= BYTES_PER_MB;
- dataset.addValue(value, "Series", user.getUsername());
- }
-
- return dataset;
- }
-
- private JFreeChart createChart(CategoryDataset dataset, HttpServletRequest request) {
- JFreeChart chart = ChartFactory.createBarChart(null, null, null, dataset, PlotOrientation.HORIZONTAL, false, false, false);
-
- CategoryPlot plot = chart.getCategoryPlot();
- Paint background = new GradientPaint(0, 0, Color.lightGray, 0, IMAGE_MIN_HEIGHT, Color.white);
- plot.setBackgroundPaint(background);
- plot.setDomainGridlinePaint(Color.white);
- plot.setDomainGridlinesVisible(true);
- plot.setRangeGridlinePaint(Color.white);
- plot.setRangeAxisLocation(AxisLocation.BOTTOM_OR_LEFT);
-
- LogarithmicAxis rangeAxis = new LogarithmicAxis(null);
- rangeAxis.setStrictValuesFlag(false);
- rangeAxis.setAllowNegativesFlag(true);
- plot.setRangeAxis(rangeAxis);
-
- // Disable bar outlines.
- BarRenderer renderer = (BarRenderer) plot.getRenderer();
- renderer.setDrawBarOutline(false);
-
- // Set up gradient paint for series.
- GradientPaint gp0 = new GradientPaint(
- 0.0f, 0.0f, Color.blue,
- 0.0f, 0.0f, new Color(0, 0, 64)
- );
- renderer.setSeriesPaint(0, gp0);
-
- // Rotate labels.
- CategoryAxis domainAxis = plot.getDomainAxis();
- domainAxis.setCategoryLabelPositions(CategoryLabelPositions.createUpRotationLabelPositions(Math.PI / 6.0));
-
- // Set theme-specific colors.
- Color bgColor = getBackground(request);
- Color fgColor = getForeground(request);
-
- chart.setBackgroundPaint(bgColor);
-
- domainAxis.setTickLabelPaint(fgColor);
- domainAxis.setTickMarkPaint(fgColor);
- domainAxis.setAxisLinePaint(fgColor);
-
- rangeAxis.setTickLabelPaint(fgColor);
- rangeAxis.setTickMarkPaint(fgColor);
- rangeAxis.setAxisLinePaint(fgColor);
-
- return chart;
- }
-
- public void setSecurityService(SecurityService securityService) {
- this.securityService = securityService;
- }
-}