1. Made changes so that for people who have 0 known publications sparkline vis is not generated at all for their profile page.
This commit is contained in:
parent
68533c7bd3
commit
6a5194d677
2 changed files with 343 additions and 337 deletions
|
@ -1,335 +1,338 @@
|
||||||
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
|
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
|
||||||
|
|
||||||
package edu.cornell.mannlib.vitro.webapp.visualization.personpubcount;
|
package edu.cornell.mannlib.vitro.webapp.visualization.personpubcount;
|
||||||
|
|
||||||
import java.io.ByteArrayOutputStream;
|
import java.io.ByteArrayOutputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.PrintWriter;
|
import java.io.PrintWriter;
|
||||||
import java.util.HashSet;
|
import java.util.List;
|
||||||
import java.util.List;
|
import java.util.Map;
|
||||||
import java.util.Map;
|
import java.util.Map.Entry;
|
||||||
import java.util.Set;
|
|
||||||
import java.util.Map.Entry;
|
import javax.servlet.RequestDispatcher;
|
||||||
|
import javax.servlet.ServletException;
|
||||||
import javax.servlet.RequestDispatcher;
|
import javax.servlet.ServletOutputStream;
|
||||||
import javax.servlet.ServletException;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.ServletOutputStream;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import org.apache.commons.logging.Log;
|
||||||
|
import org.skife.csv.CSVWriter;
|
||||||
import org.apache.commons.logging.Log;
|
import org.skife.csv.SimpleWriter;
|
||||||
import org.skife.csv.CSVWriter;
|
|
||||||
import org.skife.csv.SimpleWriter;
|
import com.hp.hpl.jena.query.DataSource;
|
||||||
|
import com.itextpdf.text.Document;
|
||||||
import com.hp.hpl.jena.query.DataSource;
|
import com.itextpdf.text.DocumentException;
|
||||||
import com.itextpdf.text.Document;
|
import com.itextpdf.text.pdf.PdfWriter;
|
||||||
import com.itextpdf.text.DocumentException;
|
|
||||||
import com.itextpdf.text.pdf.PdfWriter;
|
import edu.cornell.mannlib.vitro.webapp.beans.Portal;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.controller.Controllers;
|
||||||
import edu.cornell.mannlib.vitro.webapp.beans.Portal;
|
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
||||||
import edu.cornell.mannlib.vitro.webapp.controller.Controllers;
|
import edu.cornell.mannlib.vitro.webapp.controller.visualization.VisualizationFrameworkConstants;
|
||||||
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
import edu.cornell.mannlib.vitro.webapp.visualization.PDFDocument;
|
||||||
import edu.cornell.mannlib.vitro.webapp.controller.visualization.VisualizationFrameworkConstants;
|
import edu.cornell.mannlib.vitro.webapp.visualization.exceptions.MalformedQueryParametersException;
|
||||||
import edu.cornell.mannlib.vitro.webapp.visualization.PDFDocument;
|
import edu.cornell.mannlib.vitro.webapp.visualization.valueobjects.BiboDocument;
|
||||||
import edu.cornell.mannlib.vitro.webapp.visualization.constants.VOConstants;
|
import edu.cornell.mannlib.vitro.webapp.visualization.valueobjects.Individual;
|
||||||
import edu.cornell.mannlib.vitro.webapp.visualization.constants.VisConstants;
|
import edu.cornell.mannlib.vitro.webapp.visualization.valueobjects.SparklineVOContainer;
|
||||||
import edu.cornell.mannlib.vitro.webapp.visualization.exceptions.MalformedQueryParametersException;
|
import edu.cornell.mannlib.vitro.webapp.visualization.visutils.UtilityFunctions;
|
||||||
import edu.cornell.mannlib.vitro.webapp.visualization.valueobjects.BiboDocument;
|
|
||||||
import edu.cornell.mannlib.vitro.webapp.visualization.valueobjects.Individual;
|
public class VisualizationRequestHandler {
|
||||||
import edu.cornell.mannlib.vitro.webapp.visualization.valueobjects.SparklineVOContainer;
|
|
||||||
import edu.cornell.mannlib.vitro.webapp.visualization.visutils.UtilityFunctions;
|
private VitroRequest vitroRequest;
|
||||||
|
private HttpServletRequest request;
|
||||||
public class VisualizationRequestHandler {
|
private HttpServletResponse response;
|
||||||
|
private Log log;
|
||||||
private VitroRequest vitroRequest;
|
|
||||||
private HttpServletRequest request;
|
|
||||||
private HttpServletResponse response;
|
|
||||||
private Log log;
|
public VisualizationRequestHandler(VitroRequest vitroRequest,
|
||||||
|
HttpServletRequest request, HttpServletResponse response, Log log) {
|
||||||
|
|
||||||
|
this.vitroRequest = vitroRequest;
|
||||||
public VisualizationRequestHandler(VitroRequest vitroRequest,
|
this.request = request;
|
||||||
HttpServletRequest request, HttpServletResponse response, Log log) {
|
this.response = response;
|
||||||
|
this.log = log;
|
||||||
this.vitroRequest = vitroRequest;
|
|
||||||
this.request = request;
|
}
|
||||||
this.response = response;
|
|
||||||
this.log = log;
|
public void generateVisualization(DataSource dataSource) {
|
||||||
|
|
||||||
}
|
String resultFormatParam = "RS_TEXT";
|
||||||
|
String rdfResultFormatParam = "RDF/XML-ABBREV";
|
||||||
public void generateVisualization(DataSource dataSource) {
|
|
||||||
|
String individualURIParam = vitroRequest.getParameter(VisualizationFrameworkConstants.INDIVIDUAL_URI_URL_HANDLE);
|
||||||
String resultFormatParam = "RS_TEXT";
|
|
||||||
String rdfResultFormatParam = "RDF/XML-ABBREV";
|
String renderMode = vitroRequest.getParameter(VisualizationFrameworkConstants.RENDER_MODE_URL_HANDLE);
|
||||||
|
|
||||||
String individualURIParam = vitroRequest.getParameter(VisualizationFrameworkConstants.INDIVIDUAL_URI_URL_HANDLE);
|
String visMode = vitroRequest.getParameter(VisualizationFrameworkConstants.VIS_MODE_URL_HANDLE);
|
||||||
|
|
||||||
String renderMode = vitroRequest.getParameter(VisualizationFrameworkConstants.RENDER_MODE_URL_HANDLE);
|
String visContainer = vitroRequest.getParameter(VisualizationFrameworkConstants.VIS_CONTAINER_URL_HANDLE);
|
||||||
|
|
||||||
String visMode = vitroRequest.getParameter(VisualizationFrameworkConstants.VIS_MODE_URL_HANDLE);
|
QueryHandler queryManager =
|
||||||
|
new QueryHandler(individualURIParam,
|
||||||
String visContainer = vitroRequest.getParameter(VisualizationFrameworkConstants.VIS_CONTAINER_URL_HANDLE);
|
resultFormatParam,
|
||||||
|
rdfResultFormatParam,
|
||||||
QueryHandler queryManager =
|
dataSource,
|
||||||
new QueryHandler(individualURIParam,
|
log);
|
||||||
resultFormatParam,
|
|
||||||
rdfResultFormatParam,
|
try {
|
||||||
dataSource,
|
List<BiboDocument> authorDocuments = queryManager.getVisualizationJavaValueObjects();
|
||||||
log);
|
|
||||||
|
/*
|
||||||
try {
|
* Create a map from the year to number of publications. Use the BiboDocument's
|
||||||
List<BiboDocument> authorDocuments = queryManager.getVisualizationJavaValueObjects();
|
* parsedPublicationYear to populate the data.
|
||||||
|
* */
|
||||||
/*
|
Map<String, Integer> yearToPublicationCount =
|
||||||
* Create a map from the year to number of publications. Use the BiboDocument's
|
queryManager.getYearToPublicationCount(authorDocuments);
|
||||||
* parsedPublicationYear to populate the data.
|
|
||||||
* */
|
/*
|
||||||
Map<String, Integer> yearToPublicationCount =
|
* In order to avoid unneeded computations we have pushed this "if" condition up.
|
||||||
queryManager.getYearToPublicationCount(authorDocuments);
|
* This case arises when the render mode is data. In that case we dont want to generate
|
||||||
|
* HTML code to render sparkline, tables etc. Ideally I would want to avoid this flow.
|
||||||
/*
|
* It is ugly!
|
||||||
* In order to avoid unneeded computations we have pushed this "if" condition up.
|
* */
|
||||||
* This case arises when the render mode is data. In that case we dont want to generate
|
if (VisualizationFrameworkConstants.DATA_RENDER_MODE_URL_VALUE.equalsIgnoreCase(renderMode)) {
|
||||||
* HTML code to render sparkline, tables etc. Ideally I would want to avoid this flow.
|
prepareVisualizationQueryDataResponse(queryManager.getAuthor(),
|
||||||
* It is ugly!
|
authorDocuments,
|
||||||
* */
|
yearToPublicationCount);
|
||||||
if (VisualizationFrameworkConstants.DATA_RENDER_MODE_URL_VALUE.equalsIgnoreCase(renderMode)) {
|
return;
|
||||||
prepareVisualizationQueryDataResponse(queryManager.getAuthor(),
|
}
|
||||||
authorDocuments,
|
|
||||||
yearToPublicationCount);
|
|
||||||
return;
|
if (VisualizationFrameworkConstants.PDF_RENDER_MODE_URL_VALUE.equalsIgnoreCase(renderMode)) {
|
||||||
}
|
prepareVisualizationQueryPDFResponse(queryManager.getAuthor(),
|
||||||
|
authorDocuments,
|
||||||
|
yearToPublicationCount);
|
||||||
if (VisualizationFrameworkConstants.PDF_RENDER_MODE_URL_VALUE.equalsIgnoreCase(renderMode)) {
|
return;
|
||||||
prepareVisualizationQueryPDFResponse(queryManager.getAuthor(),
|
}
|
||||||
authorDocuments,
|
|
||||||
yearToPublicationCount);
|
/*
|
||||||
return;
|
* Computations required to generate HTML for the sparklines & related context.
|
||||||
}
|
* */
|
||||||
|
|
||||||
/*
|
SparklineVOContainer valueObjectContainer = new SparklineVOContainer();
|
||||||
* Computations required to generate HTML for the sparklines & related context.
|
|
||||||
* */
|
VisualizationCodeGenerator visualizationCodeGenerator =
|
||||||
|
new VisualizationCodeGenerator(vitroRequest.getContextPath(),
|
||||||
SparklineVOContainer valueObjectContainer = new SparklineVOContainer();
|
individualURIParam,
|
||||||
|
visMode,
|
||||||
VisualizationCodeGenerator visualizationCodeGenerator =
|
visContainer,
|
||||||
new VisualizationCodeGenerator(vitroRequest.getContextPath(),
|
authorDocuments,
|
||||||
individualURIParam,
|
yearToPublicationCount,
|
||||||
visMode,
|
valueObjectContainer,
|
||||||
visContainer,
|
log);
|
||||||
authorDocuments,
|
|
||||||
yearToPublicationCount,
|
|
||||||
valueObjectContainer,
|
/*
|
||||||
log);
|
* This is side-effecting because the response of this method is just to redirect to
|
||||||
|
* a page with visualization on it.
|
||||||
|
* */
|
||||||
/*
|
RequestDispatcher requestDispatcher = null;
|
||||||
* This is side-effecting because the response of this method is just to redirect to
|
|
||||||
* a page with visualization on it.
|
if (VisualizationFrameworkConstants.DYNAMIC_RENDER_MODE_URL_VALUE.equalsIgnoreCase(renderMode)) {
|
||||||
* */
|
|
||||||
RequestDispatcher requestDispatcher = null;
|
prepareVisualizationQueryDynamicResponse(request, response, vitroRequest,
|
||||||
|
valueObjectContainer, yearToPublicationCount);
|
||||||
if (VisualizationFrameworkConstants.DYNAMIC_RENDER_MODE_URL_VALUE.equalsIgnoreCase(renderMode)) {
|
requestDispatcher = request.getRequestDispatcher("/templates/page/blankPage.jsp");
|
||||||
|
|
||||||
prepareVisualizationQueryDynamicResponse(request, response, vitroRequest,
|
} else {
|
||||||
valueObjectContainer);
|
prepareVisualizationQueryStandaloneResponse(request, response, vitroRequest,
|
||||||
requestDispatcher = request.getRequestDispatcher("/templates/page/blankPage.jsp");
|
valueObjectContainer);
|
||||||
|
|
||||||
} else {
|
requestDispatcher = request.getRequestDispatcher(Controllers.BASIC_JSP);
|
||||||
prepareVisualizationQueryStandaloneResponse(request, response, vitroRequest,
|
}
|
||||||
valueObjectContainer);
|
|
||||||
|
try {
|
||||||
requestDispatcher = request.getRequestDispatcher(Controllers.BASIC_JSP);
|
requestDispatcher.forward(request, response);
|
||||||
}
|
} catch (Exception e) {
|
||||||
|
log.error("EntityEditController could not forward to view.");
|
||||||
try {
|
log.error(e.getMessage());
|
||||||
requestDispatcher.forward(request, response);
|
log.error(e.getStackTrace());
|
||||||
} catch (Exception e) {
|
}
|
||||||
log.error("EntityEditController could not forward to view.");
|
|
||||||
log.error(e.getMessage());
|
} catch (MalformedQueryParametersException e) {
|
||||||
log.error(e.getStackTrace());
|
try {
|
||||||
}
|
handleMalformedParameters(e.getMessage());
|
||||||
|
} catch (ServletException e1) {
|
||||||
} catch (MalformedQueryParametersException e) {
|
log.error(e1.getStackTrace());
|
||||||
try {
|
} catch (IOException e1) {
|
||||||
handleMalformedParameters(e.getMessage());
|
log.error(e1.getStackTrace());
|
||||||
} catch (ServletException e1) {
|
}
|
||||||
log.error(e1.getStackTrace());
|
return;
|
||||||
} catch (IOException e1) {
|
}
|
||||||
log.error(e1.getStackTrace());
|
|
||||||
}
|
}
|
||||||
return;
|
|
||||||
}
|
private void prepareVisualizationQueryPDFResponse(Individual author, List<BiboDocument> authorDocuments,
|
||||||
|
Map<String, Integer> yearToPublicationCount) {
|
||||||
}
|
|
||||||
|
String authorName = null;
|
||||||
private void prepareVisualizationQueryPDFResponse(Individual author, List<BiboDocument> authorDocuments,
|
|
||||||
Map<String, Integer> yearToPublicationCount) {
|
/*
|
||||||
|
* To protect against cases where there are no author documents associated with the
|
||||||
String authorName = null;
|
* individual.
|
||||||
|
* */
|
||||||
/*
|
if (authorDocuments.size() > 0) {
|
||||||
* To protect against cases where there are no author documents associated with the
|
authorName = author.getIndividualLabel();
|
||||||
* individual.
|
}
|
||||||
* */
|
|
||||||
if (authorDocuments.size() > 0) {
|
/*
|
||||||
authorName = author.getIndividualLabel();
|
* To make sure that null/empty records for author names do not cause any mischief.
|
||||||
}
|
* */
|
||||||
|
if (authorName == null) {
|
||||||
/*
|
authorName = "";
|
||||||
* To make sure that null/empty records for author names do not cause any mischief.
|
}
|
||||||
* */
|
|
||||||
if (authorName == null) {
|
String outputFileName = UtilityFunctions.slugify(authorName) + "report" + ".pdf";
|
||||||
authorName = "";
|
|
||||||
}
|
response.setContentType("application/pdf");
|
||||||
|
response.setHeader("Content-Disposition", "attachment;filename=" + outputFileName);
|
||||||
String outputFileName = UtilityFunctions.slugify(authorName) + "report" + ".pdf";
|
|
||||||
|
ServletOutputStream responseOutputStream;
|
||||||
response.setContentType("application/pdf");
|
try {
|
||||||
response.setHeader("Content-Disposition", "attachment;filename=" + outputFileName);
|
responseOutputStream = response.getOutputStream();
|
||||||
|
|
||||||
ServletOutputStream responseOutputStream;
|
|
||||||
try {
|
Document document = new Document();
|
||||||
responseOutputStream = response.getOutputStream();
|
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||||
|
PdfWriter pdfWriter = PdfWriter.getInstance(document, baos);
|
||||||
|
document.open();
|
||||||
Document document = new Document();
|
|
||||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
PDFDocument pdfDocument = new PDFDocument(authorName, yearToPublicationCount, document, pdfWriter);
|
||||||
PdfWriter pdfWriter = PdfWriter.getInstance(document, baos);
|
|
||||||
document.open();
|
document.close();
|
||||||
|
|
||||||
PDFDocument pdfDocument = new PDFDocument(authorName, yearToPublicationCount, document, pdfWriter);
|
// setting some response headers & content type
|
||||||
|
response.setHeader("Expires", "0");
|
||||||
document.close();
|
response.setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0");
|
||||||
|
response.setHeader("Pragma", "public");
|
||||||
// setting some response headers & content type
|
response.setContentLength(baos.size());
|
||||||
response.setHeader("Expires", "0");
|
// write ByteArrayOutputStream to the ServletOutputStream
|
||||||
response.setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0");
|
baos.writeTo(responseOutputStream);
|
||||||
response.setHeader("Pragma", "public");
|
responseOutputStream.flush();
|
||||||
response.setContentLength(baos.size());
|
responseOutputStream.close();
|
||||||
// write ByteArrayOutputStream to the ServletOutputStream
|
|
||||||
baos.writeTo(responseOutputStream);
|
} catch (IOException e) {
|
||||||
responseOutputStream.flush();
|
e.printStackTrace();
|
||||||
responseOutputStream.close();
|
} catch (DocumentException e) {
|
||||||
|
e.printStackTrace();
|
||||||
} catch (IOException e) {
|
}
|
||||||
e.printStackTrace();
|
}
|
||||||
} catch (DocumentException e) {
|
|
||||||
e.printStackTrace();
|
private void prepareVisualizationQueryDataResponse(Individual author, List<BiboDocument> authorDocuments,
|
||||||
}
|
Map<String, Integer> yearToPublicationCount) {
|
||||||
}
|
|
||||||
|
String authorName = null;
|
||||||
private void prepareVisualizationQueryDataResponse(Individual author, List<BiboDocument> authorDocuments,
|
|
||||||
Map<String, Integer> yearToPublicationCount) {
|
/*
|
||||||
|
* To protect against cases where there are no author documents associated with the
|
||||||
String authorName = null;
|
* individual.
|
||||||
|
* */
|
||||||
/*
|
if (authorDocuments.size() > 0) {
|
||||||
* To protect against cases where there are no author documents associated with the
|
authorName = author.getIndividualLabel();
|
||||||
* individual.
|
}
|
||||||
* */
|
|
||||||
if (authorDocuments.size() > 0) {
|
/*
|
||||||
authorName = author.getIndividualLabel();
|
* To make sure that null/empty records for author names do not cause any mischief.
|
||||||
}
|
* */
|
||||||
|
if (authorName == null) {
|
||||||
/*
|
authorName = "";
|
||||||
* To make sure that null/empty records for author names do not cause any mischief.
|
}
|
||||||
* */
|
|
||||||
if (authorName == null) {
|
String outputFileName = UtilityFunctions.slugify(authorName) + "pub-count-sparkline" + ".csv";
|
||||||
authorName = "";
|
|
||||||
}
|
response.setContentType("application/octet-stream");
|
||||||
|
response.setHeader("Content-Disposition","attachment;filename=" + outputFileName);
|
||||||
String outputFileName = UtilityFunctions.slugify(authorName) + "pub-count-sparkline" + ".csv";
|
|
||||||
|
try {
|
||||||
response.setContentType("application/octet-stream");
|
|
||||||
response.setHeader("Content-Disposition","attachment;filename=" + outputFileName);
|
PrintWriter responseWriter = response.getWriter();
|
||||||
|
|
||||||
try {
|
/*
|
||||||
|
* We are side-effecting responseWriter since we are directly manipulating the response
|
||||||
PrintWriter responseWriter = response.getWriter();
|
* object of the servlet.
|
||||||
|
* */
|
||||||
/*
|
generateCsvFileBuffer(yearToPublicationCount,
|
||||||
* We are side-effecting responseWriter since we are directly manipulating the response
|
responseWriter);
|
||||||
* object of the servlet.
|
|
||||||
* */
|
responseWriter.close();
|
||||||
generateCsvFileBuffer(yearToPublicationCount,
|
|
||||||
responseWriter);
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
responseWriter.close();
|
}
|
||||||
|
}
|
||||||
} catch (IOException e) {
|
|
||||||
e.printStackTrace();
|
private void generateCsvFileBuffer(Map<String, Integer> yearToPublicationCount,
|
||||||
}
|
PrintWriter responseWriter) {
|
||||||
}
|
|
||||||
|
CSVWriter csvWriter = new SimpleWriter(responseWriter);
|
||||||
private void generateCsvFileBuffer(Map<String, Integer> yearToPublicationCount,
|
|
||||||
PrintWriter responseWriter) {
|
try {
|
||||||
|
csvWriter.append(new String[]{"Year", "Publications"});
|
||||||
CSVWriter csvWriter = new SimpleWriter(responseWriter);
|
for (Entry<String, Integer> currentEntry : yearToPublicationCount.entrySet()) {
|
||||||
|
csvWriter.append(new Object[]{currentEntry.getKey(), currentEntry.getValue()});
|
||||||
try {
|
}
|
||||||
csvWriter.append(new String[]{"Year", "Publications"});
|
|
||||||
for (Entry<String, Integer> currentEntry : yearToPublicationCount.entrySet()) {
|
} catch (IOException e) {
|
||||||
csvWriter.append(new Object[]{currentEntry.getKey(), currentEntry.getValue()});
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
} catch (IOException e) {
|
responseWriter.flush();
|
||||||
e.printStackTrace();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
responseWriter.flush();
|
private void prepareVisualizationQueryStandaloneResponse(HttpServletRequest request,
|
||||||
|
HttpServletResponse response, VitroRequest vreq,
|
||||||
}
|
SparklineVOContainer valueObjectContainer) {
|
||||||
|
|
||||||
private void prepareVisualizationQueryStandaloneResponse(HttpServletRequest request,
|
Portal portal = vreq.getPortal();
|
||||||
HttpServletResponse response, VitroRequest vreq,
|
|
||||||
SparklineVOContainer valueObjectContainer) {
|
request.setAttribute("sparklineVO", valueObjectContainer);
|
||||||
|
|
||||||
Portal portal = vreq.getPortal();
|
request.setAttribute("bodyJsp", "/templates/visualization/publication_count.jsp");
|
||||||
|
request.setAttribute("portalBean", portal);
|
||||||
request.setAttribute("sparklineVO", valueObjectContainer);
|
request.setAttribute("title", "Individual Publication Count visualization");
|
||||||
|
request.setAttribute("scripts", "/templates/visualization/visualization_scripts.jsp");
|
||||||
request.setAttribute("bodyJsp", "/templates/visualization/publication_count.jsp");
|
|
||||||
request.setAttribute("portalBean", portal);
|
}
|
||||||
request.setAttribute("title", "Individual Publication Count visualization");
|
|
||||||
request.setAttribute("scripts", "/templates/visualization/visualization_scripts.jsp");
|
private void prepareVisualizationQueryDynamicResponse(HttpServletRequest request,
|
||||||
|
HttpServletResponse response, VitroRequest vreq, SparklineVOContainer valueObjectContainer,
|
||||||
}
|
Map<String, Integer> yearToPublicationCount) {
|
||||||
|
|
||||||
private void prepareVisualizationQueryDynamicResponse(HttpServletRequest request,
|
Portal portal = vreq.getPortal();
|
||||||
HttpServletResponse response, VitroRequest vreq, SparklineVOContainer valueObjectContainer) {
|
|
||||||
|
request.setAttribute("sparklineVO", valueObjectContainer);
|
||||||
Portal portal = vreq.getPortal();
|
|
||||||
|
if (yearToPublicationCount.size() > 0) {
|
||||||
request.setAttribute("sparklineVO", valueObjectContainer);
|
request.setAttribute("shouldVIVOrenderVis", true);
|
||||||
|
} else {
|
||||||
request.setAttribute("portalBean", portal);
|
request.setAttribute("shouldVIVOrenderVis", false);
|
||||||
request.setAttribute("bodyJsp", "/templates/visualization/ajax_vis_content.jsp");
|
}
|
||||||
|
|
||||||
}
|
request.setAttribute("portalBean", portal);
|
||||||
|
request.setAttribute("bodyJsp", "/templates/visualization/ajax_vis_content.jsp");
|
||||||
private void handleMalformedParameters(String errorMessage)
|
|
||||||
throws ServletException, IOException {
|
}
|
||||||
|
|
||||||
Portal portal = vitroRequest.getPortal();
|
private void handleMalformedParameters(String errorMessage)
|
||||||
|
throws ServletException, IOException {
|
||||||
request.setAttribute("error", errorMessage);
|
|
||||||
|
Portal portal = vitroRequest.getPortal();
|
||||||
RequestDispatcher requestDispatcher = request.getRequestDispatcher(Controllers.BASIC_JSP);
|
|
||||||
request.setAttribute("bodyJsp", "/templates/visualization/visualization_error.jsp");
|
request.setAttribute("error", errorMessage);
|
||||||
request.setAttribute("portalBean", portal);
|
|
||||||
request.setAttribute("title", "Visualization Query Error - Individual Publication Count");
|
RequestDispatcher requestDispatcher = request.getRequestDispatcher(Controllers.BASIC_JSP);
|
||||||
|
request.setAttribute("bodyJsp", "/templates/visualization/visualization_error.jsp");
|
||||||
try {
|
request.setAttribute("portalBean", portal);
|
||||||
requestDispatcher.forward(request, response);
|
request.setAttribute("title", "Visualization Query Error - Individual Publication Count");
|
||||||
} catch (Exception e) {
|
|
||||||
log.error("EntityEditController could not forward to view.");
|
try {
|
||||||
log.error(e.getMessage());
|
requestDispatcher.forward(request, response);
|
||||||
log.error(e.getStackTrace());
|
} catch (Exception e) {
|
||||||
}
|
log.error("EntityEditController could not forward to view.");
|
||||||
}
|
log.error(e.getMessage());
|
||||||
|
log.error(e.getStackTrace());
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -4,6 +4,9 @@
|
||||||
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
|
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
|
||||||
|
|
||||||
<c:set var='sparkline' value='${requestScope.sparklineVO}'/>
|
<c:set var='sparkline' value='${requestScope.sparklineVO}'/>
|
||||||
|
<c:set var='shouldVIVOrenderVis' value='${requestScope.shouldVIVOrenderVis}'/>
|
||||||
|
|
||||||
${sparkline.sparklineContent}
|
<c:if test="${shouldVIVOrenderVis}">
|
||||||
${sparkline.sparklineContext}
|
${sparkline.sparklineContent}
|
||||||
|
${sparkline.sparklineContext}
|
||||||
|
</c:if>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue