From 99da2bc5a436e54799922ea9bfef147de2809902 Mon Sep 17 00:00:00 2001 From: brianjlowe Date: Wed, 20 Nov 2013 16:48:24 -0500 Subject: [PATCH] VIVO-561 faux property indication in verbose display --- .../individual/PropertyTemplateModel.java | 24 +++++++++++++++++++ .../freemarker/lib/lib-properties.ftl | 6 +++++ 2 files changed, 30 insertions(+) diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/PropertyTemplateModel.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/PropertyTemplateModel.java index f7d5c603b..2fe95a71c 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/PropertyTemplateModel.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/PropertyTemplateModel.java @@ -11,11 +11,14 @@ import org.apache.commons.logging.LogFactory; import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.auth.policy.PolicyHelper; import edu.cornell.mannlib.vitro.webapp.beans.BaseResourceBean.RoleLevel; +import edu.cornell.mannlib.vitro.webapp.beans.DataProperty; import edu.cornell.mannlib.vitro.webapp.beans.Individual; +import edu.cornell.mannlib.vitro.webapp.beans.ObjectProperty; import edu.cornell.mannlib.vitro.webapp.beans.Property; 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.Route; +import edu.cornell.mannlib.vitro.webapp.dao.ObjectPropertyDao; import edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary; import edu.cornell.mannlib.vitro.webapp.web.templatemodels.BaseTemplateModel; @@ -94,6 +97,27 @@ public abstract class PropertyTemplateModel extends BaseTemplateModel { String editUrl = UrlBuilder.getUrl(getPropertyEditRoute(), "uri", property.getURI()); verboseDisplay.put("propertyEditUrl", editUrl); + + if(isFauxProperty(property)) { + verboseDisplay.put("fauxProperty", "true"); + } + } + + private boolean isFauxProperty(Property prop) { + if(!(prop instanceof ObjectProperty)) { + return false; + } + ObjectPropertyDao opDao = vreq.getWebappDaoFactory().getObjectPropertyDao(); + ObjectProperty baseProp = opDao.getObjectPropertyByURI(prop.getURI()); + if(baseProp == null) { + return false; + } + ObjectProperty possibleFaux = (ObjectProperty) prop; + if (possibleFaux.getDomainPublic() == null) { + return (baseProp.getDomainPublic() != null); + } else { + return !possibleFaux.getDomainPublic().equals(baseProp.getDomainPublic()); + } } protected abstract int getPropertyDisplayTier(Property p); diff --git a/webapp/web/templates/freemarker/lib/lib-properties.ftl b/webapp/web/templates/freemarker/lib/lib-properties.ftl index 95b467eda..65b2e5eb8 100644 --- a/webapp/web/templates/freemarker/lib/lib-properties.ftl +++ b/webapp/web/templates/freemarker/lib/lib-properties.ftl @@ -231,7 +231,13 @@ name will be used as the label. --> <#local verboseDisplay = property.verboseDisplay!> <#if verboseDisplay?has_content>
+ <#if verboseDisplay.fauxProperty??> + (faux property of + ${verboseDisplay.localName} + <#if verboseDisplay.fauxProperty??> + ) + (${property.type?lower_case} property); order in group: ${verboseDisplay.displayRank}; display level: ${verboseDisplay.displayLevel};