NIHVIVO-2018 Move visualization url-building out of templates into template models. Create vivo-specific IndividualTemplateModel for this purpose.

This commit is contained in:
rjy7 2011-02-11 23:04:40 +00:00
parent 51e424e993
commit 55e86daf91
4 changed files with 80 additions and 8 deletions

View file

@ -131,6 +131,7 @@
</section>
</section>
<#assign nameForOtherGroup = "other"> <#-- used by both individual-propertyGroupMenu.ftl and individual-properties.ftl -->
<#-- Property group menu -->
@ -139,7 +140,6 @@
<#-- Ontology properties -->
<#include "individual-properties.ftl">
${stylesheets.add("/css/individual/individual.css")}
${stylesheets.add("/css/individual/individual-vivo.css")}

View file

@ -18,7 +18,7 @@
<section id="visualization" role="region">
<#if isAuthor>
<#assign coAuthorIcon = "${urls.images}/visualization/co_author_icon.png">
<#assign coAuthorURL = "${urls.base}${standardVisualizationURLRoot}?vis=person_level&uri=${individual.uri}&vis_mode=coauthor">
<#assign coAuthorVisUrl = individual.coAuthorVisUrl>
<#assign googleJSAPI = "https://www.google.com/jsapi?autoload=%7B%22modules%22%3A%5B%7B%22name%22%3A%22visualization%22%2C%22version%22%3A%221%22%2C%22packages%22%3A%5B%22imagesparkline%22%5D%7D%5D%7D">
<img class="infoIcon" src="${urls.images}/iconInfo.png" alt="information icon" title="The publication information may be incomplete" />
@ -29,9 +29,9 @@
<div id="coauthorship_link_container" class="collaboratorship-link-container">
<div class="collaboratorship-icon">
<a href="${coAuthorURL}"><img src="${coAuthorIcon}" alt="Co-author Network icon" width="30px" height="30px" /></a>
<a href="${coAuthorVisUrl}"><img src="${coAuthorIcon}" alt="Co-author network icon" width="30px" height="30px" /></a>
</div>
<div class="collaboratorship-link"><a href="${coAuthorURL}">Co-Author Network</a></div>
<div class="collaboratorship-link"><a href="${coAuthorVisUrl}">Co-Author Network</a></div>
</div>
${scripts.add(googleJSAPI)}
@ -48,14 +48,14 @@
</#if>
<#if isInvestigator>
<#assign coInvestigatorURL = "${urls.base}${standardVisualizationURLRoot}?vis=person_level&uri=${individual.uri}&vis_mode=copi">
<#assign coInvestigatorVisUrl = individual.coInvestigatorVisUrl>
<#assign coInvestigatorIcon = "${urls.images}/visualization/co_investigator_icon.png">
<div id="coinvestigator_link_container" class="collaboratorship-link-container">
<div class="collaboratorship-icon">
<a href="${coInvestigatorURL}"><img src="${coInvestigatorIcon}" alt="Co-investigator Network icon" width="30px" height="30px" /></a>
<a href="${coInvestigatorVisUrl}"><img src="${coInvestigatorIcon}" alt="Co-investigator network icon" width="30px" height="30px" /></a>
</div>
<div class="collaboratorship-link"><a href="${coInvestigatorURL}">Co-Investigator Network</a></div>
<div class="collaboratorship-link"><a href="${coInvestigatorVisUrl}">Co-Investigator Network</a></div>
</div>
</#if>
</section>

View file

@ -3,5 +3,5 @@
<#-- Temporal graph visualization -->
<section id="temporal-graph" role="region">
<h3><img src="${urls.images}/visualization/temporal_vis_icon.jpg" width="25px" height="25px" /><a href="${urls.base}/visualization?vis=entity_comparison&uri=${individual.uri}">Temporal Graph</a></h3>
<h3><img src="${urls.images}/visualization/temporal_vis_icon.jpg" width="25px" height="25px" /><a href="${individual.temporalGraphUrl}">Temporal Graph</a></h3>
</section>

View file

@ -0,0 +1,72 @@
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
package edu.cornell.mannlib.vitro.webapp.web.templatemodels.individual;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import edu.cornell.mannlib.vitro.webapp.beans.Individual;
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder;
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder.ParamMap;
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder.Route;
public class IndividualTemplateModel extends BaseIndividualTemplateModel {
private static final Log log = LogFactory.getLog(IndividualTemplateModel.class);
public IndividualTemplateModel(Individual individual, VitroRequest vreq) {
super(individual, vreq);
}
private String getBaseVisUrl() {
return getUrl(Route.VISUALIZATION.path(), "uri", getUri());
}
private String getVisUrl(ParamMap params) {
String baseVisUrl = getBaseVisUrl();
return UrlBuilder.addParams(baseVisUrl, params);
}
private String getVisUrl(String...params) {
return getVisUrl(new ParamMap(params));
}
private String getPersonVisUrl(ParamMap params) {
if (!isPerson()) {
return null;
}
ParamMap paramMap = new ParamMap("vis", "person_level");
paramMap.put(params);
return getVisUrl(paramMap);
}
/* Access methods for templates */
public boolean isPerson() {
return isVClass("http://xmlns.com/foaf/0.1/Person");
}
public boolean isOrganization() {
return isVClass("http://xmlns.com/foaf/0.1/Organization");
}
public String getCoAuthorVisUrl() {
return getPersonVisUrl(new ParamMap("vis_mode", "coauthor"));
}
public String getCoInvestigatorVisUrl() {
return getPersonVisUrl(new ParamMap("vis_mode", "copi"));
}
public String getTemporalGraphUrl() {
if (!isOrganization()) {
return null;
}
return getVisUrl("vis", "entity_comparison");
}
}