diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/GroupedPropertyList.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/GroupedPropertyList.java index 7c023e022..4ee0d14a7 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/GroupedPropertyList.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/GroupedPropertyList.java @@ -476,6 +476,19 @@ public class GroupedPropertyList extends BaseTemplateModel { return null; } + public PropertyTemplateModel getProperty(String propertyUri, String rangeUri) { + + for (PropertyGroupTemplateModel pgtm : groups) { + List properties = pgtm.getProperties(); + for (PropertyTemplateModel ptm : properties) { + if (propertyUri.equals(ptm.getUri()) && rangeUri.equals(ptm.getRangeUri())) { + return ptm; + } + } + } + return null; + } + public PropertyTemplateModel pullProperty(String propertyUri) { return pullProperty(propertyUri, null); } diff --git a/webapp/web/templates/freemarker/lib/lib-properties.ftl b/webapp/web/templates/freemarker/lib/lib-properties.ftl index c54bd9b16..4925b61ca 100644 --- a/webapp/web/templates/freemarker/lib/lib-properties.ftl +++ b/webapp/web/templates/freemarker/lib/lib-properties.ftl @@ -22,6 +22,24 @@ +<#-- Return true iff there are statements for this property --> +<#function hasVisualizationStatements propertyGroups propertyName rangeUri> + + <#local property = propertyGroups.getProperty(propertyName, rangeUri)!> + + <#-- First ensure that the property is defined + (an unpopulated property while logged out is undefined) --> + <#if ! property?has_content> + <#return false> + + + <#if property.collatedBySubclass!false> <#-- collated object property--> + <#return property.subclasses?has_content> + <#else> + <#return property.statements?has_content> <#-- data property or uncollated object property --> + + + <#----------------------------------------------------------------------------- Macros for generating property lists