1. Created a draft person level vis (integration of sparkline & co-authorship vis)

2. Modified the person pub count to use a single VO to give access to jsp to various contents of sparkline.
3. Modified test bed to include link to Person Level vis.
This commit is contained in:
cdtank 2010-07-01 16:45:02 +00:00
parent 0e8e1dc9e2
commit 64ff99a222
7 changed files with 86 additions and 72 deletions

View file

@ -2,6 +2,8 @@ package edu.cornell.mannlib.vitro.webapp.visualization.personlevel;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
import java.util.Map;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
@ -21,6 +23,8 @@ import edu.cornell.mannlib.vitro.webapp.visualization.coauthorship.CoAuthorshipG
import edu.cornell.mannlib.vitro.webapp.visualization.coauthorship.QueryHandler;
import edu.cornell.mannlib.vitro.webapp.visualization.coauthorship.VisVOContainer;
import edu.cornell.mannlib.vitro.webapp.visualization.exceptions.MalformedQueryParametersException;
import edu.cornell.mannlib.vitro.webapp.visualization.personpubcount.VisualizationCodeGenerator;
import edu.cornell.mannlib.vitro.webapp.visualization.valueobjects.BiboDocument;
import edu.cornell.mannlib.vitro.webapp.visualization.visutils.UtilityFunctions;
public class VisualizationRequestHandler {
@ -53,18 +57,25 @@ public class VisualizationRequestHandler {
String visContainer = vitroRequest.getParameter(VisualizationFrameworkConstants.VIS_CONTAINER_URL_HANDLE);
QueryHandler queryManager =
new QueryHandler(egoURIParam,
edu.cornell.mannlib.vitro.webapp.visualization.coauthorship.QueryHandler coAuthorshipQueryManager =
new edu.cornell.mannlib.vitro.webapp.visualization.coauthorship.QueryHandler(egoURIParam,
resultFormatParam,
rdfResultFormatParam,
dataSource,
log);
edu.cornell.mannlib.vitro.webapp.visualization.personpubcount.QueryHandler sparklineQueryManager =
new edu.cornell.mannlib.vitro.webapp.visualization.personpubcount.QueryHandler(egoURIParam,
resultFormatParam,
rdfResultFormatParam,
dataSource,
log);
try {
VisVOContainer authorNodesAndEdges = queryManager.getVisualizationJavaValueObjects();
edu.cornell.mannlib.vitro.webapp.visualization.coauthorship.VisVOContainer coAuthorshipVO =
coAuthorshipQueryManager.getVisualizationJavaValueObjects();
/*
* 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
@ -77,49 +88,46 @@ public class VisualizationRequestHandler {
* When just the graphML file is required - based on which actual visualization will
* be rendered.
* */
prepareVisualizationQueryDataResponse(authorNodesAndEdges);
prepareVisualizationQueryDataResponse(coAuthorshipVO);
return;
}
List<BiboDocument> authorDocuments = sparklineQueryManager.getVisualizationJavaValueObjects();
/*
* Create a map from the year to number of publications. Use the BiboDocument's
* parsedPublicationYear to populate the data.
* */
Map<String, Integer> yearToPublicationCount = sparklineQueryManager
.getYearToPublicationCount(authorDocuments);
/*
* Computations required to generate HTML for the sparklines & related context.
* */
/*
* This is required because when deciding the range of years over which the vis
* was rendered we dont want to be influenced by the "DEFAULT_PUBLICATION_YEAR".
* */
// publishedYearsForCollege.remove(VOConstants.DEFAULT_PUBLICATION_YEAR);
edu.cornell.mannlib.vitro.webapp.visualization.personpubcount.VisVOContainer sparklineVO =
new edu.cornell.mannlib.vitro.webapp.visualization.personpubcount.VisVOContainer();
/*
VisualizationCodeGenerator visualizationCodeGenerator =
new VisualizationCodeGenerator(yearToPublicationCount, log);
String visContentCode = visualizationCodeGenerator
.getMainVisualizationCode(authorDocuments,
publishedYears,
visMode,
visContainer);
String visContextCode = visualizationCodeGenerator
.getVisualizationContextCode(vitroRequest.getRequestURI(),
collegeURIParam,
visMode);
*/
/*
* This is side-effecting because the response of this method is just to redirect to
* a page with visualization on it.
* */
edu.cornell.mannlib.vitro.webapp.visualization.personpubcount.VisualizationCodeGenerator visualizationCodeGenerator =
new edu.cornell.mannlib.vitro.webapp.visualization.personpubcount.VisualizationCodeGenerator(
vitroRequest.getRequestURI(),
egoURIParam,
VisualizationCodeGenerator.FULL_SPARKLINE_MODE_URL_HANDLE,
visContainer,
authorDocuments,
yearToPublicationCount,
sparklineVO,
log);
RequestDispatcher requestDispatcher = null;
prepareVisualizationQueryStandaloneResponse(egoURIParam, request, response, vitroRequest);
prepareVisualizationQueryStandaloneResponse(egoURIParam, sparklineVO, request, response, vitroRequest);
// requestDispatcher = request.getRequestDispatcher(Controllers.BASIC_JSP);
requestDispatcher = request.getRequestDispatcher("/templates/page/blankPage.jsp");
requestDispatcher = request.getRequestDispatcher("/templates/page/blankPage.jsp");
try {
requestDispatcher.forward(request, response);
@ -170,10 +178,12 @@ public class VisualizationRequestHandler {
}
}
private void prepareVisualizationQueryStandaloneResponse(String egoURIParam,
HttpServletRequest request,
HttpServletResponse response,
VitroRequest vreq) {
private void prepareVisualizationQueryStandaloneResponse(
String egoURIParam,
edu.cornell.mannlib.vitro.webapp.visualization.personpubcount.VisVOContainer sparklineVO,
HttpServletRequest request,
HttpServletResponse response,
VitroRequest vreq) {
Portal portal = vreq.getPortal();
@ -181,6 +191,7 @@ public class VisualizationRequestHandler {
// request.setAttribute("visContextCode", visContextCode);
request.setAttribute("egoURIParam", egoURIParam);
request.setAttribute("sparklineVO", sparklineVO);
request.setAttribute("bodyJsp", "/templates/visualization/person_level.jsp");
request.setAttribute("portalBean", portal);

View file

@ -33,9 +33,9 @@ public class VisualizationCodeGenerator {
private static final String defaultVisContainerDivID = "vis_container";
private static final String SHORT_SPARKLINE_MODE_URL_HANDLE = "short";
public static final String SHORT_SPARKLINE_MODE_URL_HANDLE = "short";
private static final String FULL_SPARKLINE_MODE_URL_HANDLE = "full";
public static final String FULL_SPARKLINE_MODE_URL_HANDLE = "full";
private Map<String, Integer> yearToPublicationCount;

View file

@ -123,10 +123,6 @@ public class VisualizationRequestHandler {
log);
String visContentCode = valueObjectContainer.getSparklineContent();
String visContextCode = valueObjectContainer.getSparklineContext();
System.out.println("ft url - " + valueObjectContainer.getFullTimelineNetworkLink());
System.out.println("dnld fl - " + valueObjectContainer.getDownloadDataLink());
System.out.println("table - " + valueObjectContainer.getTable());
@ -143,12 +139,12 @@ public class VisualizationRequestHandler {
if (VisualizationFrameworkConstants.DYNAMIC_RENDER_MODE_URL_VALUE.equalsIgnoreCase(renderMode)) {
prepareVisualizationQueryDynamicResponse(request, response, vitroRequest,
visContentCode, visContextCode);
valueObjectContainer);
requestDispatcher = request.getRequestDispatcher("/templates/page/blankPage.jsp");
} else {
prepareVisualizationQueryStandaloneResponse(request, response, vitroRequest,
visContentCode, visContextCode, valueObjectContainer);
valueObjectContainer);
requestDispatcher = request.getRequestDispatcher(Controllers.BASIC_JSP);
}
@ -294,12 +290,10 @@ public class VisualizationRequestHandler {
private void prepareVisualizationQueryStandaloneResponse(HttpServletRequest request,
HttpServletResponse response, VitroRequest vreq,
String visContentCode, String visContextCode, VisVOContainer valueObjectContainer) {
VisVOContainer valueObjectContainer) {
Portal portal = vreq.getPortal();
request.setAttribute("visContentCode", visContentCode);
request.setAttribute("visContextCode", visContextCode);
request.setAttribute("sparklineVO", valueObjectContainer);
request.setAttribute("bodyJsp", "/templates/visualization/publication_count.jsp");
@ -310,13 +304,11 @@ public class VisualizationRequestHandler {
}
private void prepareVisualizationQueryDynamicResponse(HttpServletRequest request,
HttpServletResponse response, VitroRequest vreq,
String visContentCode, String visContextCode) {
HttpServletResponse response, VitroRequest vreq, VisVOContainer valueObjectContainer) {
Portal portal = vreq.getPortal();
request.setAttribute("visContentCode", visContentCode);
request.setAttribute("visContextCode", visContextCode);
request.setAttribute("sparklineVO", valueObjectContainer);
request.setAttribute("portalBean", portal);
request.setAttribute("bodyJsp", "/templates/visualization/ajax_vis_content.jsp");

View file

@ -1,3 +1,6 @@
${requestScope.visContentCode}
<%@ page import="edu.cornell.mannlib.vitro.webapp.visualization.personpubcount.VisVOContainer" %>
${requestScope.visContextCode}
<c:set var='sparkline' value='${requestScope.sparklineVO}'/>
${sparkline.sparklineContent}
${sparkline.sparklineContext}

View file

@ -211,6 +211,13 @@
<c:param name="uri" value="http://vivo.library.cornell.edu/ns/0.1#individual12053"/>
</c:url>
<c:url var="personLevel1" value="/admin/visQuery">
<c:param name="vis" value="person_level"/>
<c:param name="render_mode" value="standalone"/>
<c:param name="container" value="ego_sparkline"/>
<c:param name="uri" value="http://vivo.library.cornell.edu/ns/0.1#individual5748"/>
</c:url>
<c:url var="loadingImageLink" value="/${themeDir}site_icons/visualization/ajax-loader.gif"></c:url>
<style type="text/css">
@ -300,8 +307,11 @@ $(document).ready(function() {
<h1 id="test-bed">Visualization Testbed (Not to be seen by eventual end users)</h1>
<a href='<c:out value="${coAuthorship1}"/>'>vis link for coauthorship -> "Erb, Hollis Nancy"</a>
&nbsp;<a href='<c:out value="${coAuthorship1Data}"/>'>Data</a>
&nbsp;&nbsp;<a href='<c:out value="${coAuthorship1Data}"/>'>Data</a>
&nbsp;&nbsp;<a href='<c:out value="${personLevel1}"/>'>Person Level</a>
<br />
<a href='<c:out value="${coAuthorship2}"/>'>vis link for coauthorship -> "Not Working" {"Crane, Brian"}</a>&nbsp;
<a href='<c:out value="${coAuthorship2Data}"/>'>Data</a><br />

View file

@ -1,14 +1,12 @@
<%@ page import="edu.cornell.mannlib.vitro.webapp.visualization.personpubcount.VisVOContainer" %>
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<c:set var="portalBean" value="${requestScope.portalBean}" />
<c:set var="portalBean" value="${requestScope.portalBean}" />
<c:set var="themeDir">
<c:out value="${portalBean.themeDir}" />
</c:set>
<c:set var="contextPath">
<c:out value="${pageContext.request.contextPath}" />
</c:set>
<c:set var="themeDir"><c:out value="${portalBean.themeDir}" /></c:set>
<c:set var="contextPath"><c:out value="${pageContext.request.contextPath}" /></c:set>
<c:set var='sparkline' value='${requestScope.sparklineVO}'/>
<c:url var="egoCoAuthorshipDataURL" value="/admin/visQuery">
<c:param name="vis" value="coauthorship" />
@ -112,7 +110,7 @@ var contextPath = "${contextPath}";
<%-- Image --%>
<div class="datatypeProperties">
<div class="datatypePropertyValue">
<div id="ego_profile-image" class="statementWrap thumbnail">
<div id="ego_profile_image" class="statementWrap thumbnail">
</div>
</div>
</div>
@ -122,7 +120,7 @@ var contextPath = "${contextPath}";
<div class="datatypePropertyValue">
<div id="ego_sparkline">
${requestScope.egoURIParam}
${sparkline.sparklineContent}
</div>
</div>
@ -250,10 +248,10 @@ $(document).ready(function(){
processProfileInformation("ego_label",
"ego_moniker",
"ego_profile-image",
"ego_profile_image",
jQuery.parseJSON(getWellFormedURLs("${requestScope.egoURIParam}", "profile_info")));
renderSparklineVisualization("${egoSparklineVisURL}");
//renderSparklineVisualization("${egoSparklineVisURL}");
var obj = jQuery.parseJSON('{"name":"John"}');

View file

@ -3,14 +3,14 @@
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<c:set var='sparkline' value='${requestScope.sparklineVO}'/>
<div class="staticPageBackground">
<div id="vis_container">
${requestScope.visContentCode}
</div>
${requestScope.visContextCode}
${sparkline.sparklineContent}
</div>
${sparkline.sparklineContext}
</div>