NIHVIVO-2466 Prepare for special handling of rdfs:label in property display on profile page
This commit is contained in:
parent
452510b1a4
commit
bcf889028b
4 changed files with 57 additions and 19 deletions
|
@ -6,8 +6,6 @@ import java.util.List;
|
||||||
|
|
||||||
import org.apache.commons.logging.Log;
|
import org.apache.commons.logging.Log;
|
||||||
import org.apache.commons.logging.LogFactory;
|
import org.apache.commons.logging.LogFactory;
|
||||||
import org.openrdf.model.URI;
|
|
||||||
import org.openrdf.model.impl.URIImpl;
|
|
||||||
|
|
||||||
import edu.cornell.mannlib.vedit.beans.LoginStatusBean;
|
import edu.cornell.mannlib.vedit.beans.LoginStatusBean;
|
||||||
import edu.cornell.mannlib.vitro.webapp.auth.policy.PolicyHelper;
|
import edu.cornell.mannlib.vitro.webapp.auth.policy.PolicyHelper;
|
||||||
|
@ -132,18 +130,8 @@ public abstract class BaseIndividualTemplateModel extends BaseTemplateModel {
|
||||||
* DataProperty from it. It cannot be handled the way the vitro links and vitro public image
|
* DataProperty from it. It cannot be handled the way the vitro links and vitro public image
|
||||||
* are handled like ordinary ObjectProperty instances.
|
* are handled like ordinary ObjectProperty instances.
|
||||||
*/
|
*/
|
||||||
public DataPropertyStatementTemplateModel getNameStatement() {
|
public NameStatementTemplateModel getNameStatement() {
|
||||||
String propertyUri = VitroVocabulary.LABEL; // rdfs:label
|
return new NameStatementTemplateModel(getUri(), vreq, policyHelper);
|
||||||
DataPropertyStatementTemplateModel dpstm = new DataPropertyStatementTemplateModel(getUri(), propertyUri, vreq, policyHelper);
|
|
||||||
|
|
||||||
// If the individual has no rdfs:label, return the local name. It will not be editable (this replicates previous behavior;
|
|
||||||
// perhaps we would want to allow a label to be added. But such individuals do not usually have their profiles viewed or
|
|
||||||
// edited directly.
|
|
||||||
if (dpstm.getValue() == null) {
|
|
||||||
dpstm.setValue(getLocalName());
|
|
||||||
}
|
|
||||||
|
|
||||||
return dpstm;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* These methods simply forward to the methods of the wrapped individual. It would be desirable to
|
/* These methods simply forward to the methods of the wrapped individual. It would be desirable to
|
||||||
|
|
|
@ -26,7 +26,7 @@ public class DataPropertyStatementTemplateModel extends PropertyStatementTemplat
|
||||||
private static final Log log = LogFactory.getLog(DataPropertyStatementTemplateModel.class);
|
private static final Log log = LogFactory.getLog(DataPropertyStatementTemplateModel.class);
|
||||||
private static final String EDIT_PATH = "edit/editDatapropStmtRequestDispatch.jsp";
|
private static final String EDIT_PATH = "edit/editDatapropStmtRequestDispatch.jsp";
|
||||||
|
|
||||||
private String value = null;
|
protected String value = null;
|
||||||
|
|
||||||
// Used for editing
|
// Used for editing
|
||||||
private String dataPropHash = null;
|
private String dataPropHash = null;
|
||||||
|
@ -44,7 +44,7 @@ public class DataPropertyStatementTemplateModel extends PropertyStatementTemplat
|
||||||
* This method handles the special case where we are creating a DataPropertyStatementTemplateModel outside the GroupedPropertyList.
|
* This method handles the special case where we are creating a DataPropertyStatementTemplateModel outside the GroupedPropertyList.
|
||||||
* Specifically, it allows rdfs:label to be treated like a data property statement and thus have editing links. It is not possible
|
* Specifically, it allows rdfs:label to be treated like a data property statement and thus have editing links. It is not possible
|
||||||
* to handle rdfs:label like vitro links and vitroPublic image, because it is not possible to construct a DataProperty from
|
* to handle rdfs:label like vitro links and vitroPublic image, because it is not possible to construct a DataProperty from
|
||||||
* rdfs:label.
|
* rdfs:label.
|
||||||
*/
|
*/
|
||||||
DataPropertyStatementTemplateModel(String subjectUri, String propertyUri, VitroRequest vreq, EditingPolicyHelper policyHelper) {
|
DataPropertyStatementTemplateModel(String subjectUri, String propertyUri, VitroRequest vreq, EditingPolicyHelper policyHelper) {
|
||||||
super(subjectUri, propertyUri, policyHelper);
|
super(subjectUri, propertyUri, policyHelper);
|
||||||
|
@ -64,7 +64,7 @@ public class DataPropertyStatementTemplateModel extends PropertyStatementTemplat
|
||||||
this.value = value;
|
this.value = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setEditAccess(Literal value, EditingPolicyHelper policyHelper) {
|
protected void setEditAccess(Literal value, EditingPolicyHelper policyHelper) {
|
||||||
|
|
||||||
if (policyHelper != null) { // we're editing
|
if (policyHelper != null) { // we're editing
|
||||||
DataPropertyStatement dps = new DataPropertyStatementImpl(subjectUri, propertyUri, value.getLexicalForm());
|
DataPropertyStatement dps = new DataPropertyStatementImpl(subjectUri, propertyUri, value.getLexicalForm());
|
||||||
|
|
|
@ -0,0 +1,50 @@
|
||||||
|
/* $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.List;
|
||||||
|
|
||||||
|
import org.apache.commons.logging.Log;
|
||||||
|
import org.apache.commons.logging.LogFactory;
|
||||||
|
import org.openrdf.model.URI;
|
||||||
|
import org.openrdf.model.impl.URIImpl;
|
||||||
|
|
||||||
|
import com.hp.hpl.jena.rdf.model.Literal;
|
||||||
|
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.dao.DataPropertyStatementDao;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary;
|
||||||
|
|
||||||
|
public class NameStatementTemplateModel extends
|
||||||
|
DataPropertyStatementTemplateModel {
|
||||||
|
|
||||||
|
private static final Log log = LogFactory.getLog(NameStatementTemplateModel.class);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This method handles the special case where we are creating a DataPropertyStatementTemplateModel outside the GroupedPropertyList.
|
||||||
|
* Specifically, it allows rdfs:label to be treated like a data property statement and thus have editing links. It is not possible
|
||||||
|
* to handle rdfs:label like vitro links and vitroPublic image, because it is not possible to construct a DataProperty from
|
||||||
|
* rdfs:label.
|
||||||
|
*/
|
||||||
|
NameStatementTemplateModel(String subjectUri, VitroRequest vreq, EditingPolicyHelper policyHelper) {
|
||||||
|
super(subjectUri, VitroVocabulary.LABEL, vreq, policyHelper);
|
||||||
|
|
||||||
|
DataPropertyStatementDao dpsDao = vreq.getWebappDaoFactory().getDataPropertyStatementDao();
|
||||||
|
List<Literal> literals = dpsDao.getDataPropertyValuesForIndividualByProperty(subjectUri, VitroVocabulary.LABEL);
|
||||||
|
|
||||||
|
// Make sure the subject has a value for this property
|
||||||
|
if (literals.size() > 0) {
|
||||||
|
Literal literal = literals.get(0);
|
||||||
|
value = literal.getLexicalForm();
|
||||||
|
setEditAccess(literal, policyHelper);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
// If the individual has no rdfs:label, use the local name. It will not be editable (this replicates previous behavior;
|
||||||
|
// perhaps we would want to allow a label to be added. But such individuals do not usually have their profiles viewed or
|
||||||
|
// edited directly.
|
||||||
|
URI uri = new URIImpl(subjectUri);
|
||||||
|
value = uri.getLocalName();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -107,7 +107,7 @@ public class UserAccountsDaoJenaTest extends AbstractTestClass {
|
||||||
@Test
|
@Test
|
||||||
public void getUserAccountByUriWrongType() {
|
public void getUserAccountByUriWrongType() {
|
||||||
UserAccount u = dao.getUserAccountByUri(URI_ROLE1);
|
UserAccount u = dao.getUserAccountByUri(URI_ROLE1);
|
||||||
System.out.println(u);
|
//System.out.println(u);
|
||||||
assertNull("null result", u);
|
assertNull("null result", u);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -329,7 +329,7 @@ public class UserAccountsDaoJenaTest extends AbstractTestClass {
|
||||||
StmtIterator stmts = ontModel.listStatements();
|
StmtIterator stmts = ontModel.listStatements();
|
||||||
while (stmts.hasNext()) {
|
while (stmts.hasNext()) {
|
||||||
Statement stmt = stmts.next();
|
Statement stmt = stmts.next();
|
||||||
System.out.println(formatStatement(stmt));
|
//System.out.println(formatStatement(stmt));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue