1. More updates to the map of science vis.

This commit is contained in:
tankchintan 2011-05-28 00:05:42 +00:00
parent 1c594395aa
commit c79c6cf968
13 changed files with 150 additions and 14 deletions

View file

@ -32,6 +32,24 @@ div.overview-value :last-child {
padding-right: 10px;
vertical-align: text-top;
}
/* <------ INDIVIDUAL MAP OF SCIENCE */
#map-of-science {
float: right;
padding: 0 3px 20px 0;
background-color: #fff;
}
#map-of-science h3 {
margin: 0;
padding: 0;
}
#map-of-science h3 img {
padding-right: 10px;
vertical-align: text-top;
}
/* <------ POSITIONS */
ul#individual-personInPosition {
list-style-type: circle;

View file

@ -9,6 +9,15 @@
width: 100%;
}
#map-of-science-info {
margin-bottom: 6px;
margin-top: -6px;
}
.hide-dom-on-init {
display: none;
}
#left-column {
float: left;
width: 260px;
@ -24,6 +33,12 @@
height: 480px;
}
#percent-mapped-info {
float:right;
display: none;
margin-top: 5px;
}
#header-entity-label {
font-family: "Lucida Sans Unicode","Lucida Grande", Geneva, helvetica, sans-serif;
font-size: 1.5275em;
@ -102,6 +117,10 @@ a.clear-selected-entities {
/* table */
.science-area-tab {
}
#main-science-areas-table-container table {
cellpadding: 0;
cellspacing: 0;
@ -119,6 +138,10 @@ a.clear-selected-entities {
width: 100%;
}
table.datatable-table tbody tr {
border-top: 3px solid;
}
#main-science-areas-table-footer {
margin-top: 10px;
text-align: left;
@ -136,4 +159,4 @@ a.clear-selected-entities {
.paginatedtabs {
font-size: 0.81em;
}
}

View file

@ -19,8 +19,8 @@ var DataTableWidget = Class.extend({
widget: '',
init: function(opts) {
this.opts = opts;
init: function(sciMapWidget) {
this.sciMapWidget = sciMapWidget;
this.subdisciplineInfo = {};
this.disciplineInfo = {};
@ -64,10 +64,10 @@ var DataTableWidget = Class.extend({
me.disciplineInfo[currentSubdisciplinesDiscipline].publicationCount =
me.disciplineInfo[currentSubdisciplinesDiscipline].publicationCount + density;
}
});
$(".hide-dom-on-init").show();
me.setupView();
},
hasKey: function(key) {
@ -81,6 +81,13 @@ var DataTableWidget = Class.extend({
},
initView: function() {
},
parseIDIntoScienceTypeAreaID: function(rawID) {
var type = rawID.substring(0, rawID.indexOf("-"));
var area = rawID.substring(rawID.indexOf("-") + 1);
return [type, area];
},
setupView: function() {
var me = this;
@ -125,7 +132,7 @@ var DataTableWidget = Class.extend({
var i = 0;
$.each(me.disciplineInfo, function(index, item) {
rowsToInsert[i++] = '<tr><td>' + SCIMAP_TYPE.DISCIPLINE + '</td>';
rowsToInsert[i++] = '<tr id="' + SCIMAP_TYPE.DISCIPLINE + '-' + index + '" style="color:' + DISCIPLINES[index].color + ';"><td>' + SCIMAP_TYPE.DISCIPLINE + '</td>';
rowsToInsert[i++] = '<td>' + item.label + '</td>';
rowsToInsert[i++] = '<td>' + item.publicationCount.toFixed(1) + '</td>';
rowsToInsert[i++] = '<td>' + (100 * (item.publicationCount / me.pubsMapped)).toFixed(1) + '</td></tr>';
@ -133,7 +140,7 @@ var DataTableWidget = Class.extend({
$.each(me.subdisciplineInfo, function(index, item) {
rowsToInsert[i++] = '<tr><td>' + SCIMAP_TYPE.SUBDISCIPLINE + '</td>';
rowsToInsert[i++] = '<tr id="' + SCIMAP_TYPE.SUBDISCIPLINE + '-' + index + '" style="color:' + DISCIPLINES[SUBDISCIPLINES[index].discipline].color + ';"><td>' + SCIMAP_TYPE.SUBDISCIPLINE + '</td>';
rowsToInsert[i++] = '<td>' + item.label + '</td>';
rowsToInsert[i++] = '<td>' + item.publicationCount.toFixed(1) + '</td>';
rowsToInsert[i++] = '<td>' + (100 * (item.publicationCount / me.pubsMapped)).toFixed(1) + '</td></tr>';
@ -144,6 +151,18 @@ var DataTableWidget = Class.extend({
table.append(tbody);
$("#" + me.dom.containerID).append(table);
table.children("tbody").children("tr").mouseenter(function() {
var params = me.parseIDIntoScienceTypeAreaID($(this).attr("id"));
me.sciMapWidget.mouseIn(params[0], params[1]);
});
table.children("tbody").children("tr").mouseleave(function() {
var params = me.parseIDIntoScienceTypeAreaID($(this).attr("id"));
me.sciMapWidget.mouseOut(params[0], params[1]);
});
/*
* GMAIL_STYLE_PAGINATION_CONTAINER_CLASS, ACTIVE_DISCIPLINE_SUBDISCIPLINE_FILTER has to be declared
* for the filter & pagination to work properly.
@ -195,7 +214,11 @@ var DataTableWidget = Class.extend({
me.widget.fnFilter("");
});
$("#percent-mapped-info").show();
$("#percent-mapped").text((100 * me.pubsMapped / (me.pubsWithNoJournals + me.pubsWithInvalidJournals + me.pubsMapped)).toFixed(2));
},
changeFilter: function(filterType) {
var me = this;

View file

@ -108,7 +108,7 @@ ScimapMarkerManager = MarkerManager.extend({
marker.focus();
});
},
mouseIn: function(key) {
mouseOut: function(key) {
var marker = this.getMarker(key);
if (marker) {
marker.unfocus();

View file

@ -39,7 +39,7 @@ var EntityVisModeController = Class.extend({
initWidgets: function(map, sliderControl) {
var widgets = {};
widgets['scimap'] = new ScimapWidget(map, sliderControl);
widgets['sci_area_table'] = new DataTableWidget();
widgets['sci_area_table'] = new DataTableWidget(widgets['scimap']);
this.widgets = widgets;
},

View file

@ -6,6 +6,8 @@
<#if temporalVisualizationEnabled>
<#assign classSpecificExtension>
<#include "individual-visualizationTemporalGraph.ftl">
<div style="clear: both;"></div>
<#include "individual-visualizationMapOfScience.ftl">
</#assign>
</#if>

View file

@ -18,7 +18,10 @@
<section id="visualization" role="region">
<#if isAuthor>
<#assign coAuthorIcon = "${urls.images}/visualization/co_author_icon.png">
<#assign mapOfScienceIcon = "${urls.images}/visualization/mapofscience/vivo_scimap_icon_v001.png">
<#assign coAuthorVisUrl = individual.coAuthorVisUrl>
<#assign mapOfScienceVisUrl = individual.mapOfScienceUrl>
<#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" />
@ -28,12 +31,21 @@
<div class="collaboratorship-link-separator"></div>
<div id="coauthorship_link_container" class="collaboratorship-link-container">
<div class="collaboratorship-icon">
<div class="collaboratorship-icon">
<a href="${coAuthorVisUrl}"><img src="${coAuthorIcon}" alt="Co-author network icon" width="30px" height="30px" /></a>
</div>
<div class="collaboratorship-link"><a href="${coAuthorVisUrl}">Co-Author Network</a></div>
</div>
<div class="collaboratorship-link-separator"></div>
<div id="mapofscience_link_container" class="collaboratorship-link-container">
<div class="collaboratorship-icon">
<a href="${mapOfScienceVisUrl}"><img src="${mapOfScienceIcon}" alt="Map Of Science icon" width="30px" height="30px" /></a>
</div>
<div class="collaboratorship-link"><a href="${mapOfScienceVisUrl}">Map Of Science</a></div>
</div>
${scripts.add('<script type="text/javascript" src="${googleJSAPI}"></script>',
'<script type="text/javascript" src="${urls.base}/js/visualization/visualization-helper-functions.js"></script>',
'<script type="text/javascript" src="${urls.base}/js/visualization/sparkline.js"></script>')}

View file

@ -0,0 +1,8 @@
<#-- $This file is distributed under the terms of the license in /doc/license.txt$ -->
<#-- Map Of Science visualization -->
<section id="map-of-science" role="region">
<h3><img src="${urls.images}/visualization/mapofscience/vivo_scimap_icon_v001.png" width="25px" height="25px" />
<a href="${individual.mapOfScienceUrl}">Map Of Science</a></h3>
</section>

View file

@ -25,6 +25,8 @@
</#if>
<#assign mapOfScienceIcon = '${urls.images}/visualization/mapofscience/vivo_scimap_icon_v001.png'>
<#assign entityMapOfScienceDataURL = "${urls.base}${dataVisualizationURLRoot}?vis=${mapOfScienceVisParam}&uri=${entityURI}&output=json">
<#assign entityMapOfScienceDisciplineCSVURL = "${urls.base}${dataVisualizationURLRoot}?vis=${mapOfScienceVisParam}&uri=${entityURI}&output=csv&vis_mode=discipline">
<#assign entityMapOfScienceSubDisciplineCSVURL = "${urls.base}${dataVisualizationURLRoot}?vis=${mapOfScienceVisParam}&uri=${entityURI}&output=csv&vis_mode=subdiscipline">

View file

@ -7,7 +7,24 @@ corresponding changes in the included Templates. -->
<#include "mapOfScienceSetup.ftl">
<div id="map-of-science-response">
<div id="left-column">
<#--
<div id="subject-parent-entity" class="hide-dom-on-init">
<a id="subject-parent-entity-profile-url" href="#"></a>&nbsp;
<a id="subject-parent-entity-temporal-url" href="#"><img src="${mapOfScienceIcon}" width="15px" height="15px"/></a>
</div>
-->
<h2 id="header-entity-label" class="hide-dom-on-init"><span><a id="entityMoniker" href="${entityVivoProfileURL}">${entityLabel}</a>&nbsp;
<img id="incomplete-data-disclaimer" class="infoIcon" src="${urls.images}/iconInfo.png" alt="information icon" title="This information is based solely on Publications which have been loaded into the VIVO system" /></span></h2>
<div id="map-of-science-info" class="hide-dom-on-init"> Explore publication activity across 554 scientific sub-disciplines
<img class="filterInfoIcon" src="${urls.images}/iconInfo.png"
alt="information icon"
title="Spiel on Discipline vs Sub-Discipline" />
</div>
<div id="left-column" class="hide-dom-on-init">
<div id="notification-container" style="display:none">
<div id="error-notification" class="ui-state-error" style="padding:10px; -moz-box-shadow:0 0 6px #980000; -webkit-box-shadow:0 0 6px #980000; box-shadow:0 0 6px #980000;">
<a class="ui-notify-close" href="#"><span class="ui-icon ui-icon-close" style="float:right"></span></a>
@ -32,7 +49,7 @@ corresponding changes in the included Templates. -->
<span id="subdisciplines-filter" class="filter-option">554 Sub-Disciplines</span>
<img class="filterInfoIcon" src="${urls.images}/iconInfo.png"
alt="information icon"
title="Spiel on Discuipline vs Sub-Discipline" />
title="Spiel on Discipline vs Sub-Discipline" />
</div>
<div id="main-science-areas-table-container"></div>
@ -42,5 +59,12 @@ corresponding changes in the included Templates. -->
</div>
</div>
<div id="right-column"><div id="map_area"></div></div>
<div id="right-column"><div id="map_area"></div>
<div id="percent-mapped-info">
mapped <span id="percent-mapped"></span>% of publications
<img class="filterInfoIcon" src="${urls.images}/iconInfo.png"
alt="information icon"
title="Spiel on percent mapped" /></div>
</div>
</div>

View file

@ -125,6 +125,7 @@ public class VisualizationFrameworkConstants {
public static final String UTILITIES_VIS = "utilities";
public static final String ENTITY_COMPARISON_VIS = "entity_comparison";
public static final String PUBLICATION_TEMPORAL_VIS_SHORT_URL = "publication-graph";
public static final String MAP_OF_SCIENCE_VIS_SHORT_URL = "map-of-science";
public static final String GRANT_TEMPORAL_VIS_SHORT_URL = "grant-graph";
public static final String CO_PI_VIS = "coprincipalinvestigator";

View file

@ -121,7 +121,23 @@ public class MapOfScienceVisualizationRequestHandler implements
organizationEntity = OrganizationUtilityFunctions.mergeEntityIfShareSameURI(
organizationEntity,
organizationWithAssociatedPeople);
}
} /*else {
// This is for just people.
Set<SubEntity> test = new HashSet<SubEntity>();
test.add(new SubEntity(subjectEntityURI));
documentURIForAssociatedPeopleTOVO = SelectOnModelUtilities
.getPublicationsWithJournalForAssociatedPeople(dataset, test);
organizationEntity = OrganizationUtilityFunctions.mergeEntityIfShareSameURI(
organizationEntity,
organizationWithAssociatedPeople);
}*/
if (allDocumentURIToVOs.isEmpty() && documentURIForAssociatedPeopleTOVO.isEmpty()) {

View file

@ -86,6 +86,13 @@ public class IndividualTemplateModel extends BaseIndividualTemplateModel {
return getVisUrl(temporalVisURL);
}
public String getMapOfScienceUrl() {
String mapOfScienceVisURL = getBaseVisUrl() + "/" + VisualizationFrameworkConstants.MAP_OF_SCIENCE_VIS_SHORT_URL + "/";
return getVisUrl(mapOfScienceVisURL);
}
public String getSelfEditingId() {
String id = null;
String idMatchingProperty = ConfigurationProperties.getBean(getServletContext()).getProperty("selfEditing.idMatchingProperty");