From 8fc32d28edba522308046df55d8feb64b9275232 Mon Sep 17 00:00:00 2001 From: Tim Worrall Date: Wed, 18 Jun 2014 14:24:32 -0400 Subject: [PATCH] VIVO-799: only display individuals with rdfs labels in custom form picklists --- .../mannlib/vitro/webapp/beans/Individual.java | 3 ++- .../dao/filtering/IndividualFiltering.java | 5 +++++ .../vitro/webapp/dao/jena/IndividualDaoSDB.java | 1 + .../IndividualsViaObjectPropetyOptions.java | 17 +++++++++++------ 4 files changed, 19 insertions(+), 7 deletions(-) diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/beans/Individual.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/beans/Individual.java index 0f19cc9c7..c27169c04 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/beans/Individual.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/beans/Individual.java @@ -24,7 +24,8 @@ public interface Individual extends ResourceBean, Comparable { * one of the labels will be returned, which one is undefined. */ String getRdfsLabel(); - + void setRdfsLabel(String in); + String getVClassURI(); void setVClassURI(String in); diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/filtering/IndividualFiltering.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/filtering/IndividualFiltering.java index addab2929..c33a9a16c 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/filtering/IndividualFiltering.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/filtering/IndividualFiltering.java @@ -345,6 +345,11 @@ public class IndividualFiltering implements Individual { _innerIndividual.setName(in); } + @Override + public void setRdfsLabel(String in) { + _innerIndividual.setRdfsLabel(in); + } + @Override public void setNamespace(String namespace) { _innerIndividual.setNamespace(namespace); diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/IndividualDaoSDB.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/IndividualDaoSDB.java index 4e0d11b77..c70b17981 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/IndividualDaoSDB.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/IndividualDaoSDB.java @@ -278,6 +278,7 @@ public class IndividualDaoSDB extends IndividualDaoJena { this.dwf, datasetMode, wadf, SKIP_INITIALIZATION); ent.setName(label); + ent.setRdfsLabel(label); return ent; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/VTwo/fields/IndividualsViaObjectPropetyOptions.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/VTwo/fields/IndividualsViaObjectPropetyOptions.java index f9f1e3416..893eb31b2 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/VTwo/fields/IndividualsViaObjectPropetyOptions.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/VTwo/fields/IndividualsViaObjectPropetyOptions.java @@ -129,13 +129,18 @@ public class IndividualsViaObjectPropetyOptions implements FieldOptions { for (Individual ind : individuals) { String uri = ind.getURI(); if (uri != null) { - String label = ind.getName().trim(); - List msTypes = ind.getMostSpecificTypeURIs(); - if ( hasSubclasses && msTypes.size() > 0 ) { - label += " (" + getMsTypeLocalName(msTypes.get(0), wDaoFact) + ")"; + // The picklist should only display individuals with rdfs labels. + // SO changing the following line -- tlw72 + // String label = ind.getName().trim(); + String label = ind.getRdfsLabel(); + if ( label != null ) { + List msTypes = ind.getMostSpecificTypeURIs(); + if ( hasSubclasses && msTypes.size() > 0 ) { + label += " (" + getMsTypeLocalName(msTypes.get(0), wDaoFact) + ")"; + } + optionsMap.put(uri, label); + ++optionsCount; } - optionsMap.put(uri, label); - ++optionsCount; } } return optionsMap;