Fixed object property sorting on individual page for default list view. NIHVIVO-3415
Removed unused domainEntitySortField and rangeEntitySortField from ObjectProperty. Added rangeEntitySortField back to property_retry.jsp.
This commit is contained in:
parent
ceaf27a713
commit
9b30ecdcb1
8 changed files with 172 additions and 169 deletions
|
@ -52,14 +52,12 @@ public class ObjectProperty extends Property implements Comparable<ObjectPropert
|
||||||
private String namespaceInverse = null;
|
private String namespaceInverse = null;
|
||||||
private String localNameInverse = null;
|
private String localNameInverse = null;
|
||||||
|
|
||||||
private String domainEntitySortField = null;
|
|
||||||
private String domainEntitySortDirection = null;
|
private String domainEntitySortDirection = null;
|
||||||
private Integer domainDisplayTier = null;
|
private Integer domainDisplayTier = null;
|
||||||
private Integer domainDisplayLimit = 5;
|
private Integer domainDisplayLimit = 5;
|
||||||
|
|
||||||
private String objectIndividualSortPropertyURI = null;
|
private String objectIndividualSortPropertyURI = null;
|
||||||
|
|
||||||
private String rangeEntitySortField = null;
|
|
||||||
private String rangeEntitySortDirection = null;
|
private String rangeEntitySortDirection = null;
|
||||||
private Integer rangeDisplayTier = null;
|
private Integer rangeDisplayTier = null;
|
||||||
private Integer rangeDisplayLimit = 5;
|
private Integer rangeDisplayLimit = 5;
|
||||||
|
|
|
@ -29,12 +29,22 @@ public interface ObjectPropertyStatementDao {
|
||||||
|
|
||||||
Individual fillExistingObjectPropertyStatements( Individual entity );
|
Individual fillExistingObjectPropertyStatements( Individual entity );
|
||||||
|
|
||||||
int insertNewObjectPropertyStatement(ObjectPropertyStatement objPropertyStmt );
|
int insertNewObjectPropertyStatement(ObjectPropertyStatement objPropertyStmt );
|
||||||
|
|
||||||
public List<Map<String, String>> getObjectPropertyStatementsForIndividualByProperty(String subjectUri, String propertyUri, String objectKey, String query);
|
|
||||||
|
|
||||||
public List<Map<String, String>> getObjectPropertyStatementsForIndividualByProperty(String subjectUri, String propertyUri, String objectKey, String query, Set<String> constructQueries);
|
|
||||||
|
|
||||||
|
// public List<Map<String, String>> getObjectPropertyStatementsForIndividualByProperty(
|
||||||
|
// String subjectUri,
|
||||||
|
// String propertyUri,
|
||||||
|
// String objectKey,
|
||||||
|
// String queryString,
|
||||||
|
// Set<String> constructQueryStrings);
|
||||||
|
|
||||||
public Map<String, String> getMostSpecificTypesInClassgroupsForIndividual(String subjectUri);
|
public Map<String, String> getMostSpecificTypesInClassgroupsForIndividual(String subjectUri);
|
||||||
|
|
||||||
|
List<Map<String, String>> getObjectPropertyStatementsForIndividualByProperty(
|
||||||
|
String subjectUri, String propertyUri, String objectKey,
|
||||||
|
String queryString, Set<String> constructQueryStrings,
|
||||||
|
String sortDirection);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -82,20 +82,16 @@ class ObjectPropertyStatementDaoFiltering extends BaseFiltering implements Objec
|
||||||
@Override
|
@Override
|
||||||
public int insertNewObjectPropertyStatement(ObjectPropertyStatement objPropertyStmt) {
|
public int insertNewObjectPropertyStatement(ObjectPropertyStatement objPropertyStmt) {
|
||||||
return innerObjectPropertyStatementDao.insertNewObjectPropertyStatement(objPropertyStmt);
|
return innerObjectPropertyStatementDao.insertNewObjectPropertyStatement(objPropertyStmt);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Map<String, String>> getObjectPropertyStatementsForIndividualByProperty(
|
public List<Map<String, String>> getObjectPropertyStatementsForIndividualByProperty(
|
||||||
String subjectUri, String propertyUri, String objectKey, String query) {
|
String subjectUri, String propertyUri, String objectKey, String query,
|
||||||
return getObjectPropertyStatementsForIndividualByProperty(subjectUri, propertyUri, objectKey, query, null);
|
Set<String> queryStrings, String sortDirection) {
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<Map<String, String>> getObjectPropertyStatementsForIndividualByProperty(
|
|
||||||
String subjectUri, String propertyUri, String objectKey, String query, Set<String> queryStrings) {
|
|
||||||
|
|
||||||
List<Map<String, String>> data = innerObjectPropertyStatementDao.
|
List<Map<String, String>> data =
|
||||||
getObjectPropertyStatementsForIndividualByProperty(subjectUri, propertyUri, objectKey, query, queryStrings);
|
innerObjectPropertyStatementDao.getObjectPropertyStatementsForIndividualByProperty(
|
||||||
|
subjectUri, propertyUri, objectKey, query, queryStrings,sortDirection);
|
||||||
|
|
||||||
/* Filter the data
|
/* Filter the data
|
||||||
*
|
*
|
||||||
|
@ -135,6 +131,8 @@ class ObjectPropertyStatementDaoFiltering extends BaseFiltering implements Objec
|
||||||
public Map<String, String> getMostSpecificTypesInClassgroupsForIndividual(String subjectUri) {
|
public Map<String, String> getMostSpecificTypesInClassgroupsForIndividual(String subjectUri) {
|
||||||
return innerObjectPropertyStatementDao.getMostSpecificTypesInClassgroupsForIndividual(subjectUri);
|
return innerObjectPropertyStatementDao.getMostSpecificTypesInClassgroupsForIndividual(subjectUri);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
|
@ -264,29 +264,24 @@ public class ObjectPropertyStatementDaoJena extends JenaBaseDao implements Objec
|
||||||
* DataPropertyStatementDaoJena returns a List<DataPropertyStatement>. We need to accomodate
|
* DataPropertyStatementDaoJena returns a List<DataPropertyStatement>. We need to accomodate
|
||||||
* custom queries that could request any data in addition to just the object of the statement.
|
* custom queries that could request any data in addition to just the object of the statement.
|
||||||
* However, we do need to get the object of the statement so that we have it to create editing links.
|
* However, we do need to get the object of the statement so that we have it to create editing links.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<Map<String, String>> getObjectPropertyStatementsForIndividualByProperty(
|
|
||||||
String subjectUri,
|
|
||||||
String propertyUri,
|
|
||||||
String objectKey, String queryString) {
|
|
||||||
|
|
||||||
return getObjectPropertyStatementsForIndividualByProperty(
|
|
||||||
subjectUri, propertyUri, objectKey, objectKey, null);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Map<String, String>> getObjectPropertyStatementsForIndividualByProperty(
|
public List<Map<String, String>> getObjectPropertyStatementsForIndividualByProperty(
|
||||||
String subjectUri,
|
String subjectUri,
|
||||||
String propertyUri,
|
String propertyUri,
|
||||||
String objectKey,
|
String objectKey,
|
||||||
String queryString, Set<String> constructQueryStrings ) {
|
String queryString,
|
||||||
|
Set<String> constructQueryStrings,
|
||||||
|
String sortDirection) {
|
||||||
|
|
||||||
Model constructedModel = constructModelForSelectQueries(
|
Model constructedModel = constructModelForSelectQueries(
|
||||||
subjectUri, propertyUri, constructQueryStrings);
|
subjectUri, propertyUri, constructQueryStrings);
|
||||||
|
|
||||||
|
if("desc".equalsIgnoreCase( sortDirection ) ){
|
||||||
|
queryString = queryString.replaceAll(" ASC\\(", " DESC(");
|
||||||
|
}
|
||||||
|
|
||||||
log.debug("Query string for object property " + propertyUri + ": " + queryString);
|
log.debug("Query string for object property " + propertyUri + ": " + queryString);
|
||||||
|
|
||||||
Query query = null;
|
Query query = null;
|
||||||
|
@ -301,7 +296,7 @@ public class ObjectPropertyStatementDaoJena extends JenaBaseDao implements Objec
|
||||||
QuerySolutionMap initialBindings = new QuerySolutionMap();
|
QuerySolutionMap initialBindings = new QuerySolutionMap();
|
||||||
initialBindings.add("subject", ResourceFactory.createResource(subjectUri));
|
initialBindings.add("subject", ResourceFactory.createResource(subjectUri));
|
||||||
initialBindings.add("property", ResourceFactory.createResource(propertyUri));
|
initialBindings.add("property", ResourceFactory.createResource(propertyUri));
|
||||||
|
|
||||||
// Run the SPARQL query to get the properties
|
// Run the SPARQL query to get the properties
|
||||||
List<Map<String, String>> list = new ArrayList<Map<String, String>>();
|
List<Map<String, String>> list = new ArrayList<Map<String, String>>();
|
||||||
DatasetWrapper w = dwf.getDatasetWrapper();
|
DatasetWrapper w = dwf.getDatasetWrapper();
|
||||||
|
@ -341,7 +336,7 @@ public class ObjectPropertyStatementDaoJena extends JenaBaseDao implements Objec
|
||||||
}
|
}
|
||||||
|
|
||||||
private Model constructModelForSelectQueries(String subjectUri,
|
private Model constructModelForSelectQueries(String subjectUri,
|
||||||
String propertyUri,
|
String propertyUri,
|
||||||
Set<String> constructQueries) {
|
Set<String> constructQueries) {
|
||||||
|
|
||||||
if (constructQueries == null) {
|
if (constructQueries == null) {
|
||||||
|
@ -357,7 +352,7 @@ public class ObjectPropertyStatementDaoJena extends JenaBaseDao implements Objec
|
||||||
|
|
||||||
queryString = queryString.replace("?subject", "<" + subjectUri + ">");
|
queryString = queryString.replace("?subject", "<" + subjectUri + ">");
|
||||||
queryString = queryString.replace("?property", "<" + propertyUri + ">");
|
queryString = queryString.replace("?property", "<" + propertyUri + ">");
|
||||||
|
|
||||||
// we no longer need this query object, but we might want to do this
|
// we no longer need this query object, but we might want to do this
|
||||||
// query parse step to improve debugging, depending on the error returned
|
// query parse step to improve debugging, depending on the error returned
|
||||||
// through the RDF API
|
// through the RDF API
|
||||||
|
|
|
@ -79,6 +79,7 @@ public abstract class ObjectPropertyTemplateModel extends PropertyTemplateModel
|
||||||
|
|
||||||
private PropertyListConfig config;
|
private PropertyListConfig config;
|
||||||
private String objectKey;
|
private String objectKey;
|
||||||
|
private String sortDirection;
|
||||||
|
|
||||||
ObjectPropertyTemplateModel(ObjectProperty op, Individual subject, VitroRequest vreq,
|
ObjectPropertyTemplateModel(ObjectProperty op, Individual subject, VitroRequest vreq,
|
||||||
boolean editing)
|
boolean editing)
|
||||||
|
@ -87,6 +88,8 @@ public abstract class ObjectPropertyTemplateModel extends PropertyTemplateModel
|
||||||
super(op, subject, vreq);
|
super(op, subject, vreq);
|
||||||
setName(op.getDomainPublic());
|
setName(op.getDomainPublic());
|
||||||
|
|
||||||
|
sortDirection = op.getDomainEntitySortDirection();
|
||||||
|
|
||||||
// Get the config for this object property
|
// Get the config for this object property
|
||||||
try {
|
try {
|
||||||
config = new PropertyListConfig(this, getFreemarkerTemplateLoader(), vreq, op, editing);
|
config = new PropertyListConfig(this, getFreemarkerTemplateLoader(), vreq, op, editing);
|
||||||
|
@ -144,7 +147,8 @@ public abstract class ObjectPropertyTemplateModel extends PropertyTemplateModel
|
||||||
|
|
||||||
protected List<Map<String, String>> getStatementData() {
|
protected List<Map<String, String>> getStatementData() {
|
||||||
ObjectPropertyStatementDao opDao = vreq.getWebappDaoFactory().getObjectPropertyStatementDao();
|
ObjectPropertyStatementDao opDao = vreq.getWebappDaoFactory().getObjectPropertyStatementDao();
|
||||||
return opDao.getObjectPropertyStatementsForIndividualByProperty(subjectUri, propertyUri, objectKey, getSelectQuery(), getConstructQueries());
|
|
||||||
|
return opDao.getObjectPropertyStatementsForIndividualByProperty(subjectUri, propertyUri, objectKey, getSelectQuery(), getConstructQueries(), sortDirection);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected abstract boolean isEmpty();
|
protected abstract boolean isEmpty();
|
||||||
|
|
|
@ -217,15 +217,7 @@ public class ObjectPropertyStatementDaoStub implements
|
||||||
@Override
|
@Override
|
||||||
public List<Map<String, String>> getObjectPropertyStatementsForIndividualByProperty(
|
public List<Map<String, String>> getObjectPropertyStatementsForIndividualByProperty(
|
||||||
String subjectUri, String propertyUri, String objectKey,
|
String subjectUri, String propertyUri, String objectKey,
|
||||||
String query) {
|
String query, Set<String> constructQueries, String sortDir) {
|
||||||
throw new RuntimeException(
|
|
||||||
"ObjectPropertyStatementDaoStub.getObjectPropertyStatementsForIndividualByProperty() not implemented.");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<Map<String, String>> getObjectPropertyStatementsForIndividualByProperty(
|
|
||||||
String subjectUri, String propertyUri, String objectKey,
|
|
||||||
String query, Set<String> constructQueries) {
|
|
||||||
throw new RuntimeException(
|
throw new RuntimeException(
|
||||||
"ObjectPropertyStatementDaoStub.getObjectPropertyStatementsForIndividualByProperty() not implemented.");
|
"ObjectPropertyStatementDaoStub.getObjectPropertyStatementsForIndividualByProperty() not implemented.");
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,7 +32,7 @@
|
||||||
FILTER ( afn:namespace(?subclass) != "http://vitro.mannlib.cornell.edu/ns/vitro/0.7#" )
|
FILTER ( afn:namespace(?subclass) != "http://vitro.mannlib.cornell.edu/ns/vitro/0.7#" )
|
||||||
</collated>
|
</collated>
|
||||||
|
|
||||||
} ORDER BY <collated> ?subclass </collated> ?label ?label ?localName
|
} ORDER BY <collated> ?subclass </collated> ASC( ?label ) ASC( ?label ) ASC( ?localName )
|
||||||
</query-select>
|
</query-select>
|
||||||
|
|
||||||
<query-construct>
|
<query-construct>
|
||||||
|
|
|
@ -3,9 +3,9 @@
|
||||||
<%@ taglib prefix="form" uri="http://vitro.mannlib.cornell.edu/edit/tags" %>
|
<%@ taglib prefix="form" uri="http://vitro.mannlib.cornell.edu/edit/tags" %>
|
||||||
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
|
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
|
||||||
|
|
||||||
<%-- colspan set to 4 in PropertyRetryController.java --%>
|
<%-- colspan set to 5 in PropertyRetryController.java --%>
|
||||||
<tr class="editformcell">
|
<tr class="editformcell">
|
||||||
<td valign="top" colspan="1">
|
<td valign="top" colspan="2">
|
||||||
<b>Parent property</b><br/><br/>
|
<b>Parent property</b><br/><br/>
|
||||||
<select name="ParentURI"><form:option name="ParentURI"/></select>
|
<select name="ParentURI"><form:option name="ParentURI"/></select>
|
||||||
</td>
|
</td>
|
||||||
|
@ -36,7 +36,7 @@
|
||||||
</c:otherwise>
|
</c:otherwise>
|
||||||
</c:choose>
|
</c:choose>
|
||||||
</td>
|
</td>
|
||||||
<td style="vertical-align:bottom;" valign="bottom" colspan="1">
|
<td style="vertical-align:bottom;" valign="bottom" colspan="2">
|
||||||
<b>Local name for property*</b>
|
<b>Local name for property*</b>
|
||||||
<c:choose>
|
<c:choose>
|
||||||
<c:when test="${_action eq 'update'}">
|
<c:when test="${_action eq 'update'}">
|
||||||
|
@ -75,7 +75,7 @@
|
||||||
</c:otherwise>
|
</c:otherwise>
|
||||||
</c:choose>
|
</c:choose>
|
||||||
</td>
|
</td>
|
||||||
<td style="vertical-align:bottom;" valign="bottom" colspan="1">
|
<td style="vertical-align:bottom;" valign="bottom" colspan="2">
|
||||||
<b>Optional: Inverse property local name</b>
|
<b>Optional: Inverse property local name</b>
|
||||||
<c:choose>
|
<c:choose>
|
||||||
<c:when test="${_action eq 'update'}">
|
<c:when test="${_action eq 'update'}">
|
||||||
|
@ -106,14 +106,14 @@
|
||||||
<b>Domain class</b><br />
|
<b>Domain class</b><br />
|
||||||
<select name="DomainVClassURI"><form:option name="DomainVClassURI"/></select>
|
<select name="DomainVClassURI"><form:option name="DomainVClassURI"/></select>
|
||||||
</td>
|
</td>
|
||||||
<td valign="top" colspan="2">
|
<td valign="top" colspan="3">
|
||||||
<b>Range class</b><br />
|
<b>Range class</b><br />
|
||||||
<select name="RangeVClassURI" ><form:option name="RangeVClassURI"/></select>
|
<select name="RangeVClassURI" ><form:option name="RangeVClassURI"/></select>
|
||||||
</td>
|
</td>
|
||||||
|
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="editformcell">
|
<tr class="editformcell">
|
||||||
<td valign="top" colspan="4">
|
<td valign="top" colspan="5">
|
||||||
<b>Public Description</b> for front-end users, as it will appear on editing forms<br/>
|
<b>Public Description</b> for front-end users, as it will appear on editing forms<br/>
|
||||||
<textarea name="PublicDescription"><form:value name="PublicDescription"/></textarea>
|
<textarea name="PublicDescription"><form:value name="PublicDescription"/></textarea>
|
||||||
<c:set var="PublicDescriptionError"><form:error name="PublicDescription"/></c:set>
|
<c:set var="PublicDescriptionError"><form:error name="PublicDescription"/></c:set>
|
||||||
|
@ -122,48 +122,6 @@
|
||||||
</c:if>
|
</c:if>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="editformcell">
|
|
||||||
<td valign="bottom" colspan="1">
|
|
||||||
<c:choose>
|
|
||||||
<c:when test="${transitive}">
|
|
||||||
<input name="Transitive" type="checkbox" value="TRUE" checked="checked"/>transitive
|
|
||||||
</c:when>
|
|
||||||
<c:otherwise>
|
|
||||||
<input name="Transitive" type="checkbox" value="TRUE"/>transitive
|
|
||||||
</c:otherwise>
|
|
||||||
</c:choose>
|
|
||||||
</td>
|
|
||||||
<td valign="bottom" colspan="1">
|
|
||||||
<c:choose>
|
|
||||||
<c:when test="${symmetric}">
|
|
||||||
<input name="Symmetric" type="checkbox" value="TRUE" checked="checked"/> symmetric
|
|
||||||
</c:when>
|
|
||||||
<c:otherwise>
|
|
||||||
<input name="Symmetric" type="checkbox" value="TRUE"/> symmetric
|
|
||||||
</c:otherwise>
|
|
||||||
</c:choose>
|
|
||||||
</td>
|
|
||||||
<td valign="bottom" colspan="1">
|
|
||||||
<c:choose>
|
|
||||||
<c:when test="${functional}">
|
|
||||||
<input name="Functional" type="checkbox" value="TRUE" checked="checked"/> functional
|
|
||||||
</c:when>
|
|
||||||
<c:otherwise>
|
|
||||||
<input name="Functional" type="checkbox" value="TRUE"/> functional
|
|
||||||
</c:otherwise>
|
|
||||||
</c:choose>
|
|
||||||
</td>
|
|
||||||
<td valign="bottom" colspan="1">
|
|
||||||
<c:choose>
|
|
||||||
<c:when test="${inverseFunctional}">
|
|
||||||
<input name="InverseFunctional" type="checkbox" value="TRUE" checked="checked"/> inverse functional
|
|
||||||
</c:when>
|
|
||||||
<c:otherwise>
|
|
||||||
<input name="InverseFunctional" type="checkbox" value="TRUE"/> inverse functional
|
|
||||||
</c:otherwise>
|
|
||||||
</c:choose>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="editformcell">
|
<tr class="editformcell">
|
||||||
<td valign="bottom" colspan="1">
|
<td valign="bottom" colspan="1">
|
||||||
<em>Optional: display tier for this property<br />
|
<em>Optional: display tier for this property<br />
|
||||||
|
@ -174,7 +132,7 @@
|
||||||
<span class="notice"><c:out value="${DomainDisplayTierError}"/></span>
|
<span class="notice"><c:out value="${DomainDisplayTierError}"/></span>
|
||||||
</c:if>
|
</c:if>
|
||||||
</td>
|
</td>
|
||||||
<td valign="bottom" colspan="1">
|
<td valign="bottom" colspan="2">
|
||||||
<em>Optional: display tier for this property's inverse<br />
|
<em>Optional: display tier for this property's inverse<br />
|
||||||
(<strong>lower</strong> numbers display first)</em><br/>
|
(<strong>lower</strong> numbers display first)</em><br/>
|
||||||
<input name="RangeDisplayTier" value="<form:value name="RangeDisplayTier"/>" style="width:15%;" />
|
<input name="RangeDisplayTier" value="<form:value name="RangeDisplayTier"/>" style="width:15%;" />
|
||||||
|
@ -183,7 +141,7 @@
|
||||||
<span class="notice"><c:out value="${RangeDisplayTierError}"/></span>
|
<span class="notice"><c:out value="${RangeDisplayTierError}"/></span>
|
||||||
</c:if>
|
</c:if>
|
||||||
</td>
|
</td>
|
||||||
<td valign="bottom" colspan="1">
|
<td valign="bottom" colspan="2">
|
||||||
<em>Related <strong>object individuals</strong> to display without collapsing<br />
|
<em>Related <strong>object individuals</strong> to display without collapsing<br />
|
||||||
(<strong>lower</strong> numbers display first)</em><br/>
|
(<strong>lower</strong> numbers display first)</em><br/>
|
||||||
<input name="DomainDisplayLimit" value="<form:value name="DomainDisplayLimit"/>" style="width:15%;" />
|
<input name="DomainDisplayLimit" value="<form:value name="DomainDisplayLimit"/>" style="width:15%;" />
|
||||||
|
@ -192,89 +150,137 @@
|
||||||
<span class="notice"><c:out value="${DomainDisplayLimitError}"/></span>
|
<span class="notice"><c:out value="${DomainDisplayLimitError}"/></span>
|
||||||
</c:if>
|
</c:if>
|
||||||
</td>
|
</td>
|
||||||
<td valign="bottom" colspan="1">
|
|
||||||
<em>Related <strong>object individuals of inverse property</strong> to display without collapsing</em><br />
|
|
||||||
(<strong>lower</strong> numbers display first)<br/>
|
|
||||||
<input name="RangeDisplayLimit" value="<form:value name="RangeDisplayLimit"/>" style="width:15%;" />
|
|
||||||
<c:set var="RangeDisplayLimitError"><form:error name="RangeDisplayLimit"/></c:set>
|
|
||||||
<c:if test="${!empty RangeDisplayLimitError}">
|
|
||||||
<span class="notice"><c:out value="${RangeDisplayLimitError}"/></span>
|
|
||||||
</c:if>
|
|
||||||
</td>
|
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="editformcell">
|
<tr class="editformcell">
|
||||||
<td valign="bottom" colspan="1">
|
<td valign="bottom" colspan="2">
|
||||||
|
<em>Optional: <strong>sort direction</strong><br />
|
||||||
|
(blank for ascending, "desc" for descending)</em><br/>
|
||||||
|
<input name="DomainEntitySortDirection" value="<form:value name="DomainEntitySortDirection"/>" />
|
||||||
|
<c:set var="DomainEntitySortDirectionError"><form:error name="DomainEntitySortDirection"/></c:set>
|
||||||
|
<c:if test="${!empty DomainEntitySortDirectionError}">
|
||||||
|
<span class="notice"><c:out value="${DomainEntitySortDirectionError}"/></span>
|
||||||
|
</c:if>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
</tr>
|
||||||
|
<tr class="editformcell">
|
||||||
|
<td valign="bottom" colspan="5">
|
||||||
<c:choose>
|
<c:choose>
|
||||||
<c:when test="${collateBySubclass}">
|
<c:when test="${collateBySubclass}">
|
||||||
<input name="CollateBySubclass" type="checkbox" value="TRUE" checked="checked"/>collate by subclass
|
<input name="CollateBySubclass" type="checkbox" value="TRUE" checked="checked"/>collate by subclass
|
||||||
</c:when>
|
</c:when>
|
||||||
<c:otherwise>
|
<c:otherwise>
|
||||||
<input name="CollateBySubclass" type="checkbox" value="TRUE"/>collate by subclass
|
<input name="CollateBySubclass" type="checkbox" value="TRUE"/>collate by subclass
|
||||||
</c:otherwise>
|
</c:otherwise>
|
||||||
</c:choose>
|
</c:choose>
|
||||||
</td>
|
</td>
|
||||||
<td valign="bottom" colspan="1">
|
|
||||||
<em><strong>Caution:</strong>delete object when statement deleted?</em><br />
|
|
||||||
<c:choose>
|
|
||||||
<c:when test="${stubObjectRelation}">
|
|
||||||
<input name="StubObjectRelation" type="checkbox" value="TRUE" checked="checked"/>stub object relation with force delete
|
|
||||||
</c:when>
|
|
||||||
<c:otherwise>
|
|
||||||
<input name="StubObjectRelation" type="checkbox" value="TRUE"/>stub object relation with force delete
|
|
||||||
</c:otherwise>
|
|
||||||
</c:choose>
|
|
||||||
</td>
|
|
||||||
<td valign="bottom" colspan="1">
|
|
||||||
<em>select from existing choices when adding statements?</em><br />
|
|
||||||
<c:choose>
|
|
||||||
<c:when test="${selectFromExisting}">
|
|
||||||
<input name="SelectFromExisting" type="checkbox" value="TRUE" checked="checked"/>provide selection
|
|
||||||
</c:when>
|
|
||||||
<c:otherwise>
|
|
||||||
<input name="SelectFromExisting" type="checkbox" value="TRUE"/>provide selection
|
|
||||||
</c:otherwise>
|
|
||||||
</c:choose>
|
|
||||||
</td>
|
|
||||||
<td valign="bottom" colspan="1">
|
|
||||||
<em>when adding a new statement, also offer option to create new individual?</em><br />
|
|
||||||
<c:choose>
|
|
||||||
<c:when test="${offerCreateNewOption}">
|
|
||||||
<input name="OfferCreateNewOption" type="checkbox" value="TRUE" checked="checked"/>offer create option
|
|
||||||
</c:when>
|
|
||||||
<c:otherwise>
|
|
||||||
<input name="OfferCreateNewOption" type="checkbox" value="TRUE"/>offer create option
|
|
||||||
</c:otherwise>
|
|
||||||
</c:choose>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="editformcell">
|
|
||||||
<td valign="bottom" colspan="4">
|
|
||||||
<em>custom entry form</em><br />
|
|
||||||
<input name="CustomEntryForm" size="30" value="<form:value name="CustomEntryForm"/>" />
|
|
||||||
<c:set var="CustomEntryFormError"><form:error name="CustomEntryForm"/></c:set>
|
|
||||||
<c:if test="${!empty CustomEntryFormError}">
|
|
||||||
<span class="notice"><c:out value="${CustomEntryFormError}"/></span>
|
|
||||||
</c:if>
|
|
||||||
</td>
|
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="editformcell">
|
<tr class="editformcell">
|
||||||
<td valign="bottom" colspan="4">
|
<td valign="bottom" colspan="1">
|
||||||
<b>Example</b><br />
|
<c:choose>
|
||||||
<input name="Example" style="width:90%;" value="<form:value name="Example"/>" />
|
<c:when test="${transitive}">
|
||||||
<c:set var="ExampleError"><form:error name="Example"/></c:set>
|
<input name="Transitive" type="checkbox" value="TRUE" checked="checked"/>transitive
|
||||||
<c:if test="${!empty ExampleError}">
|
</c:when>
|
||||||
<span class="notice"><c:out value="${ExampleError}"/></span>
|
<c:otherwise>
|
||||||
</c:if>
|
<input name="Transitive" type="checkbox" value="TRUE"/>transitive
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
</td>
|
||||||
|
<td valign="bottom" colspan="2">
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${symmetric}">
|
||||||
|
<input name="Symmetric" type="checkbox" value="TRUE" checked="checked"/> symmetric
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<input name="Symmetric" type="checkbox" value="TRUE"/> symmetric
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
</td>
|
||||||
|
<td valign="bottom" colspan="1">
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${functional}">
|
||||||
|
<input name="Functional" type="checkbox" value="TRUE" checked="checked"/> functional
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<input name="Functional" type="checkbox" value="TRUE"/> functional
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
</td>
|
||||||
|
<td valign="bottom" colspan="1">
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${inverseFunctional}">
|
||||||
|
<input name="InverseFunctional" type="checkbox" value="TRUE" checked="checked"/> inverse functional
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<input name="InverseFunctional" type="checkbox" value="TRUE"/> inverse functional
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr class="editformcell">
|
<tr class="editformcell">
|
||||||
<td valign="bottom" colspan="4">
|
<td valign="bottom" colspan="2">
|
||||||
<b>Description</b> for ontology editors<br />
|
<em>custom entry form</em><br />
|
||||||
<textarea name="Description" style="width:90%;"><form:value name="Description"/></textarea>
|
<input name="CustomEntryForm" size="30" value="<form:value name="CustomEntryForm"/>" />
|
||||||
<c:set var="DescriptionError"><form:error name="Description"/></c:set>
|
<c:set var="CustomEntryFormError"><form:error name="CustomEntryForm"/></c:set>
|
||||||
<c:if test="${!empty DescriptionError}">
|
<c:if test="${!empty CustomEntryFormError}">
|
||||||
<span class="notice"><c:out value="${DescriptionError}"/></span>
|
<span class="notice"><c:out value="${CustomEntryFormError}"/></span>
|
||||||
</c:if>
|
</c:if>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
<td valign="bottom" colspan="1">
|
||||||
|
<em><strong>Caution:</strong>delete object when statement deleted?</em><br />
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${stubObjectRelation}">
|
||||||
|
<input name="StubObjectRelation" type="checkbox" value="TRUE" checked="checked"/>stub object relation with force delete
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<input name="StubObjectRelation" type="checkbox" value="TRUE"/>stub object relation with force delete
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
</td>
|
||||||
|
<td valign="bottom" colspan="1">
|
||||||
|
<em>select from existing choices when adding statements?</em><br />
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${selectFromExisting}">
|
||||||
|
<input name="SelectFromExisting" type="checkbox" value="TRUE" checked="checked"/>provide selection
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<input name="SelectFromExisting" type="checkbox" value="TRUE"/>provide selection
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
</td>
|
||||||
|
<td valign="bottom" colspan="1">
|
||||||
|
<em>when adding a new statement, also offer option to create new individual?</em><br />
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${offerCreateNewOption}">
|
||||||
|
<input name="OfferCreateNewOption" type="checkbox" value="TRUE" checked="checked"/>offer create option
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<input name="OfferCreateNewOption" type="checkbox" value="TRUE"/>offer create option
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
|
||||||
|
<tr class="editformcell">
|
||||||
|
<td valign="bottom" colspan="5">
|
||||||
|
<b>Example</b><br />
|
||||||
|
<input name="Example" style="width:90%;" value="<form:value name="Example"/>" />
|
||||||
|
<c:set var="ExampleError"><form:error name="Example"/></c:set>
|
||||||
|
<c:if test="${!empty ExampleError}">
|
||||||
|
<span class="notice"><c:out value="${ExampleError}"/></span>
|
||||||
|
</c:if>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="editformcell">
|
||||||
|
<td valign="bottom" colspan="5">
|
||||||
|
<b>Description</b> for ontology editors<br />
|
||||||
|
<textarea name="Description" style="width:90%;"><form:value name="Description"/></textarea>
|
||||||
|
<c:set var="DescriptionError"><form:error name="Description"/></c:set>
|
||||||
|
<c:if test="${!empty DescriptionError}">
|
||||||
|
<span class="notice"><c:out value="${DescriptionError}"/></span>
|
||||||
|
</c:if>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue