Skip to content

Instantly share code, notes, and snippets.

@edalquist
Created January 23, 2012 20:50
Show Gist options
  • Save edalquist/1665478 to your computer and use it in GitHub Desktop.
Save edalquist/1665478 to your computer and use it in GitHub Desktop.
/**
* Copyright (c) 2000-2009, Jasig, Inc.
* See license distributed with this file and available online at
* https://www.ja-sig.org/svn/jasig-parent/tags/rel-10/license-header.txt
*/
package org.jasig.stats.reporting.view;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.view.AbstractView;
import com.google.visualization.datasource.DataSourceHelper;
import com.google.visualization.datasource.DataSourceRequest;
import com.google.visualization.datasource.base.DataSourceException;
import com.google.visualization.datasource.base.ReasonType;
import com.google.visualization.datasource.base.ResponseStatus;
import com.google.visualization.datasource.base.StatusType;
import com.google.visualization.datasource.datatable.DataTable;
/**
* @author Eric Dalquist
* @version $Revision$
*/
public class GoogleVisualizationView extends AbstractView {
/* (non-Javadoc)
* @see org.springframework.web.servlet.view.AbstractView#renderMergedOutputModel(java.util.Map, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
*/
@Override
protected void renderMergedOutputModel(Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) throws Exception {
DataSourceRequest dsRequest = null;
try {
// Extract the request parameters.
dsRequest = new DataSourceRequest(request);
// Get the data table.
final DataTable data = (DataTable)model.get("data");
DataSourceHelper.setServletResponse(data, dsRequest, response);
}
catch (RuntimeException rte) {
this.logger.error("A runtime exception has occured", rte);
ResponseStatus status = new ResponseStatus(StatusType.ERROR, ReasonType.INTERNAL_ERROR, rte.getMessage());
if (dsRequest == null) {
dsRequest = DataSourceRequest.getDefaultDataSourceRequest(request);
}
DataSourceHelper.setServletErrorResponse(status, dsRequest, response);
}
catch (DataSourceException e) {
DataSourceHelper.setServletErrorResponse(e, request, response);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment