committing persongrantcount related files,new Egocentric swf file, CoPIVisCodeGenerator, person_level.js (to include co-author and co-pi vis).

This commit is contained in:
bkoniden 2010-12-15 17:20:57 +00:00
parent 31dbc619a4
commit 313a2da5da
23 changed files with 1900 additions and 240 deletions

View file

@ -21,6 +21,9 @@
class="edu.cornell.mannlib.vitro.webapp.visualization.entitycomparison.EntityPublicationCountRequestHandler" />
<bean id="coprincipalinvestigator"
class="edu.cornell.mannlib.vitro.webapp.visualization.coprincipalinvestigator.CoPIGrantCountRequestHandler" />
<bean id="person_grant_count"
class="edu.cornell.mannlib.vitro.webapp.visualization.persongrantcount.PersonGrantCountRequestHandler" />
<bean id="visualizationInjector"
class="edu.cornell.mannlib.vitro.webapp.controller.visualization.VisualizationInjector">
@ -44,6 +47,9 @@
<entry key="coprincipalinvestigator">
<ref bean="coprincipalinvestigator"></ref>
</entry>
<entry key="person_grant_count">
<ref bean="person_grant_count"></ref>
</entry>
</map>
</property>

View file

@ -172,11 +172,7 @@
org.apache.commons.fileupload.servlet.FileCleanerCleanup
</listener-class>
</listener>
<listener>
<listener-class>edu.cornell.mannlib.vitro.webapp.dao.jena.VClassGroupCache</listener-class>
</listener>
<!--
<listener>
<listener-class>
@ -193,7 +189,7 @@
</listener>
-->
<!-- vivo specific -->
<!-- vivo specific -->
<listener>
<listener-class>edu.cornell.mannlib.vitro.webapp.servlet.setup.VivoMergedListFilteringSetup</listener-class>
</listener>
@ -351,16 +347,6 @@
<url-pattern>/N3EditForm</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>MenuN3EditController</servlet-name>
<servlet-class>edu.cornell.mannlib.vitro.webapp.controller.freemarker.MenuN3EditController</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MenuN3EditController</servlet-name>
<url-pattern>/MenuN3EditController</url-pattern>
</servlet-mapping>
<!-- This is the new navigation controller. It is not ready for the 1.1 release
see http://issues.library.cornell.edu/browse/NIHVIVO-597
<servlet>
@ -509,7 +495,6 @@
<url-pattern>/csv2rdf</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>JenaExportController</servlet-name>
<servlet-class>edu.cornell.mannlib.vitro.webapp.controller.jena.JenaExportController</servlet-class>
@ -1264,16 +1249,24 @@
</servlet-mapping>
<servlet>
<servlet-name>DummyVisClient</servlet-name>
<servlet-name>DummyVisClientFM</servlet-name>
<servlet-class>edu.cornell.mannlib.vitro.webapp.controller.visualization.freemarker.DummyVisClientController</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DummyVisClientFM</servlet-name>
<url-pattern>/admin/dummyVisClientfm</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>DummyVisClient</servlet-name>
<servlet-class>edu.cornell.mannlib.vitro.webapp.controller.visualization.DummyVisClientController</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DummyVisClient</servlet-name>
<url-pattern>/admin/dummyVisClient</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>VisualizationController</servlet-name>
@ -1334,15 +1327,6 @@
</servlet-mapping>
-->
<servlet>
<servlet-name>ajaxSparqlQuery</servlet-name>
<servlet-class>edu.cornell.mannlib.vitro.webapp.controller.ajax.SparqlQueryAjaxController</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ajaxSparqlQuery</servlet-name>
<url-pattern>/ajax/sparqlQuery</url-pattern>
</servlet-mapping>
<!-- ============================== servlet-mappings ======================== -->
<servlet-mapping>
<servlet-name>fetch</servlet-name>

View file

@ -29,7 +29,21 @@ function getWellFormedURLs(given_uri, type) {
return finalURL;
} else if (type == "profile") {
} else if (type == "copi") {
finalURL = $.ajax({
url: contextPath + "/visualization",
data: ({vis: "utilities", vis_mode: "COPI_URL", uri: given_uri}),
dataType: "text",
async: false,
success:function(data){
}
}).responseText;
return finalURL;
}else if (type == "profile") {
finalURL = $.ajax({
url: contextPath + "/visualization",
@ -213,40 +227,70 @@ function processProfileInformation(nameContainerID,
function visLoaded(nodes){
var jsonedNodes = jQuery.parseJSON(nodes);
var tableID = "";
var tableContainer = "";
if(visMode == "coauthorship"){
tableID = "coauthorships_table";
tableContainer = "coauth_table_container";
} else{
tableID = "copis_table";
tableContainer = "copi_table_container";
}
$(document).ready(function() {
createTable("coauthorships_table", "coauth_table_container", jsonedNodes.slice(1));
createTable("coauthorships_table" , "coauth_table_container" , jsonedNodes.slice(1));
});
}
function createTable(tableID, tableContainer, tableData) {
var number_of_works = "";
var tableCaption = "";
var tableColumnTitle1 = "";
var tableColumnTitle2 = "";
if(visMode == "coauthorship"){
tableCaption = "Co-authors ";
tableColumnTitle1 = "Author";
tableColumnTitle2 = "Publications with <br />";
}else{
tableCaption = "Co-pis ";
tableColumnTitle1 = "Principal Investigator";
tableColumnTitle2 = "Grants with <br />";
}
var table = $('<table>');
table.attr('id', tableID);
table.append($('<caption>').html("Co-authors <a href=\"" + egoCoAuthorsListDataFileURL + "\">(.CSV File)</a>"));
table.append($('<caption>').html(tableCaption + "<a href=\"" + egoCoAuthorsListDataFileURL + "\">(.CSV File)</a>"));
var header = $('<thead>');
var row = $('<tr>');
var authorTH = $('<th>');
authorTH.html("Author");
authorTH.html(tableColumnTitle1);
row.append(authorTH);
row.append($('<th>').html("Publications with <br />" + $('#ego_label').text()));
row.append($('<th>').html(tableColumnTitle2 + "" + $('#ego_label').text()));
header.append(row);
table.append(header);
$.each(tableData, function(i, item){
if(visMode == "coauthorship"){
number_of_works = item.number_of_authored_works;
}else{
number_of_works = item.number_of_investigated_grants;
}
var row = $('<tr>');
row.append($('<td>').html(item.label));
row.append($('<td>').html(item.number_of_authored_works));
row.append($('<td>').html(number_of_works));
table.append(row);
@ -259,10 +303,38 @@ function createTable(tableID, tableContainer, tableData) {
//renderStatsOnNodeClicked, CoRelations, noOfCoRelations
//function nodeClickedJS(json){
function renderStatsOnNodeClicked(json){
//console.log(json);
var obj = jQuery.parseJSON(json);
var works = "";
var persons = "";
var relation = "";
var earliest_work = "";
var latest_work = "";
var number_of_works = "";
if(visMode == "coauthorship"){
works = "Publication(s)";
persons = "Co-author(s)";
relation = "coauthorship"
earliest_work = obj.earliest_publication;
latest_work = obj.latest_publication;
number_of_works = obj.number_of_authored_works;
}else{
works = "Grant(s)";
persons = "Co-PI(s)";
relation = "copi";
earliest_work = obj.earliest_grant;
latest_work = obj.latest_grant;
number_of_works = obj.number_of_investigated_grants;
}
$("#dataPanel").attr("style","visibility:visible");
$("#works").empty().append(obj.number_of_authored_works);
$("#works").empty().append(number_of_works);
/*
* Here obj.url points to the uri of that individual
@ -272,19 +344,19 @@ function renderStatsOnNodeClicked(json){
if (obj.url == egoURI) {
$("#authorName").addClass('author_name').removeClass('neutral_author_name');
$('#num_works > .author_stats_text').text('Publication(s)');
$('#num_authors > .author_stats_text').text('Co-author(s)');
$('#num_works > .author_stats_text').text(works);
$('#num_authors > .author_stats_text').text(persons);
} else {
$("#authorName").addClass('neutral_author_name').removeClass('author_name');
$('#num_works > .author_stats_text').text('Joint Publication(s)');
$('#num_authors > .author_stats_text').text('Joint Co-author(s)');
$('#num_works > .author_stats_text').text('Joint ' + works);
$('#num_authors > .author_stats_text').text('Joint ' + persons);
}
$("#profileUrl").attr("href", getWellFormedURLs(obj.url, "profile"));
$("#coAuthorshipVisUrl").attr("href", getWellFormedURLs(obj.url, "coauthorship"));
$("#coAuthorshipVisUrl").attr("href", getWellFormedURLs(obj.url, relation));
processProfileInformation("authorName",
"profileMoniker",
"profileImage",
@ -299,12 +371,12 @@ function renderStatsOnNodeClicked(json){
$("#coAuthorshipVisUrl").attr("href","#");
}
$("#coAuthors").empty().append(obj.num_coauthors);
$("#coAuthors").empty().append(obj.noOfCorelations);
$("#firstPublication").empty().append(obj.earliest_publication);
(obj.earliest_publication)?$("#fPub").attr("style","visibility:visible"):$("#fPub").attr("style","visibility:hidden");
$("#lastPublication").empty().append(obj.latest_publication);
(obj.latest_publication)?$("#lPub").attr("style","visibility:visible"):$("#lPub").attr("style","visibility:hidden");
$("#firstPublication").empty().append(earliest_work);
(earliest_work)?$("#fPub").attr("style","visibility:visible"):$("#fPub").attr("style","visibility:hidden");
$("#lastPublication").empty().append(latest_work);
(latest_work)?$("#lPub").attr("style","visibility:visible"):$("#lPub").attr("style","visibility:hidden");
// obj.url:the url parameter for node
@ -332,7 +404,19 @@ function getEncodedCoPIURL(){
}
function renderCoAuthorshipVisualization() {
var visualization = "";
var encodedURL = "";
if(visMode == "coauthorship"){
visualization = "CoAuthor";
encodedURL = getEncodedCoAuthorURL();
} else {
visualization = "CoPI";
encodedURL = getEncodedCoPIURL();
}
// console.log('visualization is ' + visualization + ' and encodedURL is '+ encodedURL);
// Version check for the Flash Player that has the ability to start Player
// Product Install (6.0r65)
var hasProductInstall = DetectFlashVer(6, 0, 65);
@ -371,7 +455,8 @@ function renderCoAuthorshipVisualization() {
"src", swfLink,
// "flashVars", 'coAuthorUrl='+ encodeURL(egoCoAuthorshipDataFeederURL) + '&coPIUrl=' + encodeURL(egoCoPIDataFeederURL) ,
// "flashVars", 'coAuthorUrl='+ getEncodedCoAuthorURL() + '&coPIUrl=' + getEncodedCoPIURL() ,
"flashVars", 'graphmlUrl=' + getEncodedCoAuthorURL() + '&labelField=label&visType=CoAuthor',
// "flashVars", 'graphmlUrl=' + getEncodedCoAuthorURL() + '&labelField=label&visType=CoAuthor',
"flashVars", 'graphmlUrl=' + encodedURL + '&labelField=label&visType='+visualization,
"width", "800",
"height", "850",
"align", "top",

View file

@ -0,0 +1,17 @@
<%-- $This file is distributed under the terms of the license in /doc/license.txt$ --%>
<%@ page import="edu.cornell.mannlib.vitro.webapp.visualization.valueobjects.SparklineData" %>
<%@ 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="pub_count_vis_container">
${sparkline.sparklineContent}
</div>
${sparkline.sparklineContext}
</div>

View file

@ -10,7 +10,10 @@
<c:url var="loadingImageLink" value="/${themeDir}site_icons/visualization/ajax-loader.gif"></c:url>
<c:set var='egoPubSparkline' value='${requestScope.egoPubSparklineVO}' />
<c:set var='egoGrantSparkline' value='${requestScope.egoGrantSparklineVO}' />
<c:set var='uniqueCoauthorsSparkline' value='${requestScope.uniqueCoauthorsSparklineVO}' />
<c:set var='uniqueCopisSparkline' value='${requestScope.uniqueCopisSparklineVO}' />
<c:set var='egoPubSparklineContainerID' value='${requestScope.egoPubSparklineContainerID}' />
<c:set var='uniqueCoauthorsSparklineVisContainerID' value='${requestScope.uniqueCoauthorsSparklineVisContainerID}' />
@ -18,6 +21,10 @@
<c:set var='numOfAuthors' value='${requestScope.numOfAuthors}' />
<c:set var='numOfCoAuthorShips' value='${requestScope.numOfCoAuthorShips}' />
<c:set var='numOfInvestigators' value='${requestScope.numOfInvestigators}' />
<c:set var='numOfCoPIs' value='${requestScope.numOfCoPIs}' />
<c:url var="egoVivoProfileURL" value="/individual">
<c:param name="uri" value="${requestScope.egoURIParam}" />
</c:url>
@ -34,10 +41,18 @@
<c:param name="uri" value="${requestScope.egoURIParam}" />
</c:url>
<c:url var="coprincipalinvestigator" value="/visualization">
<c:param name="vis" value="coprincipalinvestigator"/>
<c:url var="coprincipalinvestigatorURL" value="/visualization">
<c:param name="vis" value="person_level"/>
<c:param name="render_mode" value="standalone"/>
<c:param name="uri" value="${requestScope.egoURIParam}"/>
<c:param name = "vis_mode" value = "copi"/>
</c:url>
<c:url var="coauthorshipURL" value="/visualization">
<c:param name="vis" value="person_level"/>
<c:param name="render_mode" value="standalone"/>
<c:param name="uri" value="${requestScope.egoURIParam}"/>
<c:param name = "vis_mode" value = "coauthorship"/>
</c:url>
<script language="JavaScript" type="text/javascript">
@ -103,22 +118,41 @@ $(document).ready(function(){
<%-- Sparkline --%>
<h2 class="sub_headings">General Statistics</h2>
<div id="${egoPubSparklineContainerID}">
${egoPubSparkline.sparklineContent}
</div>
<c:choose>
<c:when test='${visMode == "coauthorship"}'>
<div id="${egoPubSparklineContainerID}">
${egoPubSparkline.sparklineContent}
</div>
<div id="${uniqueCoauthorsSparklineVisContainerID}">
${uniqueCoauthorsSparkline.sparklineContent}
</div>
</c:when>
<c:otherwise>
<div id="${egoPubSparklineContainerID}">
${egoGrantSparkline.sparklineContent}
</div>
<div id="${uniqueCoauthorsSparklineVisContainerID}">
${uniqueCopisSparkline.sparklineContent}
</div>
</c:otherwise>
</c:choose>
<div id="${uniqueCoauthorsSparklineVisContainerID}">
${uniqueCoauthorsSparkline.sparklineContent}
</div>
<h2 class="sub_headings">Co-Author Network
<c:choose>
<c:when test='${visMode == "coauthorship"}'>
<h2 class="sub_headings">Co-Author Network </h2>
</c:when>
<c:otherwise>
<h2 class="sub_headings">Co-PI Network </h2>
</c:otherwise>
</c:choose>
<c:choose>
<c:when test="${numOfCoAuthorShips > 0 || numOfAuthors > 0}">
<a href="${coAuthorshipDownloadFile}">(GraphML File)</a></h2>
<a href="${coAuthorshipDownloadFile}">(GraphML File)</a>
</c:when>
<c:otherwise>
</h2>
<c:if test='${numOfAuthors > 0}'>
<c:set var='authorsText' value='multi-author' />
</c:if>
@ -149,55 +183,118 @@ $(document).ready(function(){
//-->
</script>
</div>
<div id="dataPanel">
<br />
<br />
<div id="profileImage" class="thumbnail"></div>
<div class="bold"><strong><span id="authorName" class="neutral_author_name">&nbsp;</span></strong></div>
<div class="italicize"><span id="profileMoniker" class="author_moniker"></span></div>
<div><a href="#" id="profileUrl">VIVO profile</a> | <a href="#" id="coAuthorshipVisUrl">Co-author network</a></div>
<br />
<div class="author_stats" id="num_works"><span class="numbers" style="width: 40px;" id="works"></span>&nbsp;&nbsp;<span class="author_stats_text">Publication(s)</span></div>
<div class="author_stats" id="num_authors"><span class="numbers" style="width: 40px;" id="coAuthors"></span>&nbsp;&nbsp;<span class="author_stats_text">Co-author(s)</span></div>
<div class="author_stats" id="fPub" style="visibility:hidden"><span class="numbers" style="width:40px;" id="firstPublication"></span>&nbsp;&nbsp;<span>First Publication</span></div>
<div class="author_stats" id="lPub" style="visibility:hidden"><span class="numbers" style="width:40px;" id="lastPublication"></span>&nbsp;&nbsp;<span>Last Publication</span></div>
</div>
</div>
</c:if>
<div style="text-align:center; clear: left;">
<a href='<c:out value="${coprincipalinvestigator}"/>'> View all grants and corresponding co-pi network for this author</a>
</div>
<c:if test='${numOfAuthors > 0}'>
<div class="vis_stats">
<h2 class="sub_headings">Tables</h2>
<div class="vis-tables">
<p id="publications_table_container" class="datatable">
${egoPubSparkline.table}
</p>
<c:choose>
<c:when test='${visMode == "coauthorship"}'>
<div id="dataPanel">
<br />
<br />
<div id="profileImage" class="thumbnail"></div>
<div class="bold"><strong><span id="authorName" class="neutral_author_name">&nbsp;</span></strong></div>
<div class="italicize"><span id="profileMoniker" class="author_moniker"></span></div>
<div><a href="#" id="profileUrl">VIVO profile</a> | <a href="#" id="coAuthorshipVisUrl">Co-author network</a></div>
<br />
<div class="author_stats" id="num_works"><span class="numbers" style="width: 40px;" id="works"></span>&nbsp;&nbsp;<span class="author_stats_text">Publication(s)</span></div>
<div class="author_stats" id="num_authors"><span class="numbers" style="width: 40px;" id="coAuthors"></span>&nbsp;&nbsp;<span class="author_stats_text">Co-author(s)</span></div>
<div class="author_stats" id="fPub" style="visibility:hidden"><span class="numbers" style="width:40px;" id="firstPublication"></span>&nbsp;&nbsp;<span>First Publication</span></div>
<div class="author_stats" id="lPub" style="visibility:hidden"><span class="numbers" style="width:40px;" id="lastPublication"></span>&nbsp;&nbsp;<span>Last Publication</span></div>
</div>
<c:if test='${numOfCoAuthorShips > 0}'>
<div class="vis-tables">
<p id="coauth_table_container" class="datatable"></p>
</div>
</c:if>
<div style="clear:both;"></div>
</div>
</c:when>
<c:otherwise>
<div id="dataPanel">
<br />
<br />
<div id="profileImage" class="thumbnail"></div>
<div class="bold"><strong><span id="authorName" class="neutral_author_name">&nbsp;</span></strong></div>
<div class="italicize"><span id="profileMoniker" class="author_moniker"></span></div>
<div><a href="#" id="profileUrl">VIVO profile</a> | <a href="#" id="coAuthorshipVisUrl">Co-PI network</a></div>
<br />
<div class="author_stats" id="num_works"><span class="numbers" style="width: 40px;" id="works"></span>&nbsp;&nbsp;<span class="author_stats_text">Grant(s)</span></div>
<div class="author_stats" id="num_authors"><span class="numbers" style="width: 40px;" id="coAuthors"></span>&nbsp;&nbsp;<span class="author_stats_text">Co-PI(s)</span></div>
<div class="author_stats" id="fPub" style="visibility:hidden"><span class="numbers" style="width:40px;" id="firstPublication"></span>&nbsp;&nbsp;<span>First Grant</span></div>
<div class="author_stats" id="lPub" style="visibility:hidden"><span class="numbers" style="width:40px;" id="lastPublication"></span>&nbsp;&nbsp;<span>Last Grant</span></div>
</div>
</c:otherwise>
</c:choose>
</div>
</c:if>
<c:choose>
<c:when test='${visMode == "coauthorship"}'>
<div style="text-align:center; clear: left;">
<a href='<c:out value="${coprincipalinvestigatorURL}"/>'> View all grants and corresponding co-pi network for this person</a>
</div>
</c:when>
<c:otherwise>
<div style="text-align:center; clear: left;">
<a href='<c:out value="${coauthorshipURL}"/>'> View all publications and corresponding co-author network for this person</a>
</div>
</c:otherwise>
</c:choose>
<c:choose>
<c:when test='${visMode == "coauthorship"}'>
<c:if test='${numOfAuthors > 0}'>
<div class="vis_stats">
<h2 class="sub_headings">Tables</h2>
<div class="vis-tables">
<p id="publications_table_container" class="datatable">
${egoPubSparkline.table}
</p>
</div>
<c:if test='${numOfCoAuthorShips > 0}'>
<div class="vis-tables">
<p id="coauth_table_container" class="datatable"></p>
</div>
</c:if>
<div style="clear:both;"></div>
</div>
</c:if>
</c:when>
<c:otherwise>
<c:if test='${numOfInvestigators > 0}'>
<div class="vis_stats">
<h2 class="sub_headings">Tables</h2>
<div class="vis-tables">
<p id="publications_table_container" class="datatable">
${egoGrantSparkline.table}
</p>
</div>
<c:if test='${numOfCoPIs > 0}'>
<div class="vis-tables">
<p id="coauth_table_container" class="datatable"></p>
</div>
</c:if>
<div style="clear:both;"></div>
</div>
</c:if>
</c:otherwise>
</c:choose>
</div>

View file

@ -59,6 +59,7 @@ var egoCoAuthorsListDataFileURL = "${egoCoAuthorsListDataFileURL}";
var egoCoPIDataFeederURL = "${egoCoPIDataFeederURL}";
var contextPath = "${contextPath}";
var domainParam = "${requestScope.completeURL}";
var visMode = "${requestScope.visMode}";
// -->
</script>