NIHVIVO-3428 removed sort fields from object property editing form

This commit is contained in:
brianjlowe 2011-12-05 16:38:53 +00:00
parent 45d217e579
commit 654f5b6efb
2 changed files with 232 additions and 230 deletions

View file

@ -140,53 +140,15 @@ public class PropertyRetryController extends BaseEditController {
log.error("PropertyRetryController could not find the getPropertyByURI method in the PropertyWebappDao"); log.error("PropertyRetryController could not find the getPropertyByURI method in the PropertyWebappDao");
} }
FormObject foo = new FormObject(); FormObject foo = new FormObject();
foo.setErrorMap(epo.getErrMsgMap()); foo.setErrorMap(epo.getErrMsgMap());
HashMap<String, List<Option>> optionMap = new HashMap<String, List<Option>>(); HashMap<String, List<Option>> optionMap = new HashMap<String, List<Option>>();
try { try {
List<Option> namespaceIdList = FormUtils.makeOptionListFromBeans(ontDao.getAllOntologies(),"URI","Name", ((propertyForEditing.getNamespace()==null) ? "" : propertyForEditing.getNamespace()), null, (propertyForEditing.getNamespace()!=null)); populateOptionMap(optionMap, propertyForEditing, request, ontDao, propDao);
namespaceIdList.add(0, new Option(request.getFullWebappDaoFactory().getDefaultNamespace(),"default"));
optionMap.put("Namespace", namespaceIdList);
List<Option> namespaceIdInverseList = FormUtils.makeOptionListFromBeans(ontDao.getAllOntologies(),"URI","Name", ((propertyForEditing.getNamespaceInverse()==null) ? "" : propertyForEditing.getNamespaceInverse()), null, (propertyForEditing.getNamespaceInverse()!=null));
namespaceIdInverseList.add(new Option(request.getFullWebappDaoFactory().getDefaultNamespace(),"default"));
optionMap.put("NamespaceInverse", namespaceIdInverseList);
List<ObjectProperty> objPropList = propDao.getAllObjectProperties();
Collections.sort(objPropList);
List<Option> parentIdList = FormUtils.makeOptionListFromBeans(objPropList,"URI","PickListName",propertyForEditing.getParentURI(),null);
HashMap<String,Option> hashMap = new HashMap<String,Option>();
parentIdList = getSortedList(hashMap,parentIdList);
parentIdList.add(0,new Option("-1","none (root property)", false));
optionMap.put("ParentURI", parentIdList);
List<DataProperty> dpList = dpDao.getAllDataProperties();
Collections.sort(dpList);
List<Option> objectIndividualSortPropertyList = FormUtils.makeOptionListFromBeans(dpList,"URI","Name",propertyForEditing.getObjectIndividualSortPropertyURI(),null);
objectIndividualSortPropertyList.add(0,new Option("","- select data property -"));
optionMap.put("ObjectIndividualSortPropertyURI",objectIndividualSortPropertyList);
List<Option> domainOptionList = FormUtils.makeVClassOptionList(request.getFullWebappDaoFactory(), propertyForEditing.getDomainVClassURI());
if (propertyForEditing.getDomainVClass() != null
&& propertyForEditing.getDomainVClass().isAnonymous()) {
domainOptionList.add(0, new Option(
propertyForEditing.getDomainVClass().getURI(),
propertyForEditing.getDomainVClass().getName(),
true));
}
domainOptionList.add(0, new Option("","(none specified)"));
optionMap.put("DomainVClassURI", domainOptionList);
List<Option> rangeOptionList = FormUtils.makeVClassOptionList(request.getFullWebappDaoFactory(), propertyForEditing.getRangeVClassURI());
if (propertyForEditing.getRangeVClass() != null
&& propertyForEditing.getRangeVClass().isAnonymous()) {
rangeOptionList.add(0, new Option(
propertyForEditing.getRangeVClass().getURI(),
propertyForEditing.getRangeVClass().getName(),
true));
}
rangeOptionList.add(0, new Option("","(none specified)"));
optionMap.put("RangeVClassURI", rangeOptionList);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); log.error(e, e);
throw new RuntimeException(e);
} }
optionMap.put("HiddenFromDisplayBelowRoleLevelUsingRoleUri",RoleLevelOptionsSetup.getDisplayOptionsList(propertyForEditing)); optionMap.put("HiddenFromDisplayBelowRoleLevelUsingRoleUri",RoleLevelOptionsSetup.getDisplayOptionsList(propertyForEditing));
@ -227,7 +189,7 @@ public class PropertyRetryController extends BaseEditController {
RequestDispatcher rd = request.getRequestDispatcher(Controllers.BASIC_JSP); RequestDispatcher rd = request.getRequestDispatcher(Controllers.BASIC_JSP);
request.setAttribute("bodyJsp","/templates/edit/formBasic.jsp"); request.setAttribute("bodyJsp","/templates/edit/formBasic.jsp");
request.setAttribute("colspan","5"); request.setAttribute("colspan","4");
request.setAttribute("formJsp","/templates/edit/specific/property_retry.jsp"); request.setAttribute("formJsp","/templates/edit/specific/property_retry.jsp");
request.setAttribute("scripts","/templates/edit/formBasic.js"); request.setAttribute("scripts","/templates/edit/formBasic.js");
request.setAttribute("title","Property Editing Form"); request.setAttribute("title","Property Editing Form");
@ -248,6 +210,80 @@ public class PropertyRetryController extends BaseEditController {
doPost(request, response); doPost(request, response);
} }
private void populateOptionMap(HashMap<String, List<Option>> optionMap,
ObjectProperty propertyForEditing,
VitroRequest request,
OntologyDao ontDao,
ObjectPropertyDao propDao) {
List<Option> namespaceIdList = FormUtils.makeOptionListFromBeans(
ontDao.getAllOntologies(), "URI", "Name",
((propertyForEditing.getNamespace() == null)
? ""
: propertyForEditing.getNamespace()),
null, (propertyForEditing.getNamespace() != null));
namespaceIdList.add(0, new Option(
request.getFullWebappDaoFactory().getDefaultNamespace(), "default"));
optionMap.put("Namespace", namespaceIdList);
List<Option> namespaceIdInverseList = FormUtils.makeOptionListFromBeans(
ontDao.getAllOntologies(), "URI", "Name",
((propertyForEditing.getNamespaceInverse() == null)
? ""
: propertyForEditing.getNamespaceInverse()),
null, (propertyForEditing.getNamespaceInverse() != null));
namespaceIdInverseList.add(0, new Option(
request.getFullWebappDaoFactory().getDefaultNamespace(),"default"));
optionMap.put("NamespaceInverse", namespaceIdInverseList);
List<ObjectProperty> objPropList = propDao.getAllObjectProperties();
Collections.sort(objPropList);
List<Option> parentIdList = FormUtils.makeOptionListFromBeans(
objPropList,"URI","PickListName",propertyForEditing.getParentURI(),null);
HashMap<String,Option> hashMap = new HashMap<String,Option>();
parentIdList = getSortedList(hashMap,parentIdList);
parentIdList.add(0,new Option("-1","none (root property)", false));
optionMap.put("ParentURI", parentIdList);
// List<DataProperty> dpList = dpDao.getAllDataProperties();
// Collections.sort(dpList);
// List<Option> objectIndividualSortPropertyList =
// FormUtils.makeOptionListFromBeans(
// dpList, "URI", "Name",
// propertyForEditing.getObjectIndividualSortPropertyURI(),
// null);
// objectIndividualSortPropertyList.add(0, new Option(
// "","- select data property -"));
// optionMap.put("ObjectIndividualSortPropertyURI",
// objectIndividualSortPropertyList);
List<Option> domainOptionList = FormUtils.makeVClassOptionList(
request.getFullWebappDaoFactory(),
propertyForEditing.getDomainVClassURI());
if (propertyForEditing.getDomainVClass() != null
&& propertyForEditing.getDomainVClass().isAnonymous()) {
domainOptionList.add(0, new Option(
propertyForEditing.getDomainVClass().getURI(),
propertyForEditing.getDomainVClass().getName(),
true));
}
domainOptionList.add(0, new Option("","(none specified)"));
optionMap.put("DomainVClassURI", domainOptionList);
List<Option> rangeOptionList = FormUtils.makeVClassOptionList(
request.getFullWebappDaoFactory(),
propertyForEditing.getRangeVClassURI());
if (propertyForEditing.getRangeVClass() != null
&& propertyForEditing.getRangeVClass().isAnonymous()) {
rangeOptionList.add(0, new Option(
propertyForEditing.getRangeVClass().getURI(),
propertyForEditing.getRangeVClass().getName(),
true));
}
rangeOptionList.add(0, new Option("","(none specified)"));
optionMap.put("RangeVClassURI", rangeOptionList);
}
private List<VClass> makeVClassListForOptions(String VClassURI, List<VClass> allClassBeanList, VClassDao vclassDao) { private List<VClass> makeVClassListForOptions(String VClassURI, List<VClass> allClassBeanList, VClassDao vclassDao) {
List<VClass> currentClassList = new ArrayList<VClass>(); List<VClass> currentClassList = new ArrayList<VClass>();
VClass currentVClass = vclassDao.getVClassByURI(VClassURI); VClass currentVClass = vclassDao.getVClassByURI(VClassURI);

View file

@ -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 5 in PropertyRetryController.java --%> <%-- colspan set to 4 in PropertyRetryController.java --%>
<tr class="editformcell"> <tr class="editformcell">
<td valign="top" colspan="2"> <td valign="top" colspan="1">
<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="2"> <td style="vertical-align:bottom;" valign="bottom" colspan="1">
<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="2"> <td style="vertical-align:bottom;" valign="bottom" colspan="1">
<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="3"> <td valign="top" colspan="2">
<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="5"> <td valign="top" colspan="4">
<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,64 +122,6 @@
</c:if> </c:if>
</td> </td>
</tr> </tr>
<tr class="editformcell">
<td valign="bottom" colspan="2">
<em>Optional: display tier for this property<br />
(<strong>lower</strong> numbers display first)</em><br/>
<input name="DomainDisplayTier" value="<form:value name="DomainDisplayTier"/>" style="width:15%;" />
<c:set var="DomainDisplayTierError"><form:error name="DomainDisplayTier"/></c:set>
<c:if test="${!empty DomainDisplayTierError}">
<span class="notice"><c:out value="${DomainDisplayTierError}"/></span>
</c:if>
</td>
<td valign="bottom" colspan="1">
<em>Optional: display tier for this property's inverse<br />
(<strong>lower</strong> numbers display first)</em><br/>
<input name="RangeDisplayTier" value="<form:value name="RangeDisplayTier"/>" style="width:15%;" />
<c:set var="RangeDisplayTierError"><form:error name="RangeDisplayTier"/></c:set>
<c:if test="${!empty RangeDisplayTierError}">
<span class="notice"><c:out value="${RangeDisplayTierError}"/></span>
</c:if>
</td>
<td valign="bottom" colspan="2">
<em>Related <strong>object individuals</strong> to display without collapsing<br />
(<strong>lower</strong> numbers display first)</em><br/>
<input name="DomainDisplayLimit" value="<form:value name="DomainDisplayLimit"/>" style="width:15%;" />
<c:set var="DomainDisplayLimitError"><form:error name="DomainDisplayLimit"/></c:set>
<c:if test="${!empty DomainDisplayLimitError}">
<span class="notice"><c:out value="${DomainDisplayLimitError}"/></span>
</c:if>
</td>
</tr>
<tr class="editformcell">
<td valign="bottom" colspan="2">
&nbsp;</td>
<td valign="bottom" colspan="1">
<em>Optional: <strong>sort direction</strong><br />
(blank for ascending, &quot;desc&quot; 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>
<td valign="bottom" colspan="2">
<em>Optional: <strong>data property</strong> by which to sort related individuals</em><br />
<select name="ObjectIndividualSortPropertyURI"><form:option name="ObjectIndividualSortPropertyURI"/></select>
</td>
</tr>
<tr class="editformcell">
<td valign="bottom" colspan="5">
<c:choose>
<c:when test="${collateBySubclass}">
<input name="CollateBySubclass" type="checkbox" value="TRUE" checked="checked"/>collate by subclass
</c:when>
<c:otherwise>
<input name="CollateBySubclass" type="checkbox" value="TRUE"/>collate by subclass
</c:otherwise>
</c:choose>
</td>
</tr>
<tr class="editformcell"> <tr class="editformcell">
<td valign="bottom" colspan="1"> <td valign="bottom" colspan="1">
<c:choose> <c:choose>
@ -191,7 +133,7 @@
</c:otherwise> </c:otherwise>
</c:choose> </c:choose>
</td> </td>
<td valign="bottom" colspan="2"> <td valign="bottom" colspan="1">
<c:choose> <c:choose>
<c:when test="${symmetric}"> <c:when test="${symmetric}">
<input name="Symmetric" type="checkbox" value="TRUE" checked="checked"/> symmetric <input name="Symmetric" type="checkbox" value="TRUE" checked="checked"/> symmetric
@ -222,15 +164,54 @@
</c:choose> </c:choose>
</td> </td>
</tr> </tr>
<tr class="editformcell"> <tr class="editformcell">
<td valign="bottom" colspan="2"> <td valign="bottom" colspan="1">
<em>custom entry form</em><br /> <em>Optional: display tier for this property<br />
<input name="CustomEntryForm" size="30" value="<form:value name="CustomEntryForm"/>" /> (<strong>lower</strong> numbers display first)</em><br/>
<c:set var="CustomEntryFormError"><form:error name="CustomEntryForm"/></c:set> <input name="DomainDisplayTier" value="<form:value name="DomainDisplayTier"/>" style="width:15%;" />
<c:if test="${!empty CustomEntryFormError}"> <c:set var="DomainDisplayTierError"><form:error name="DomainDisplayTier"/></c:set>
<span class="notice"><c:out value="${CustomEntryFormError}"/></span> <c:if test="${!empty DomainDisplayTierError}">
<span class="notice"><c:out value="${DomainDisplayTierError}"/></span>
</c:if> </c:if>
</td>
<td valign="bottom" colspan="1">
<em>Optional: display tier for this property's inverse<br />
(<strong>lower</strong> numbers display first)</em><br/>
<input name="RangeDisplayTier" value="<form:value name="RangeDisplayTier"/>" style="width:15%;" />
<c:set var="RangeDisplayTierError"><form:error name="RangeDisplayTier"/></c:set>
<c:if test="${!empty RangeDisplayTierError}">
<span class="notice"><c:out value="${RangeDisplayTierError}"/></span>
</c:if>
</td>
<td valign="bottom" colspan="1">
<em>Related <strong>object individuals</strong> to display without collapsing<br />
(<strong>lower</strong> numbers display first)</em><br/>
<input name="DomainDisplayLimit" value="<form:value name="DomainDisplayLimit"/>" style="width:15%;" />
<c:set var="DomainDisplayLimitError"><form:error name="DomainDisplayLimit"/></c:set>
<c:if test="${!empty DomainDisplayLimitError}">
<span class="notice"><c:out value="${DomainDisplayLimitError}"/></span>
</c:if>
</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 class="editformcell">
<td valign="bottom" colspan="1">
<c:choose>
<c:when test="${collateBySubclass}">
<input name="CollateBySubclass" type="checkbox" value="TRUE" checked="checked"/>collate by subclass
</c:when>
<c:otherwise>
<input name="CollateBySubclass" type="checkbox" value="TRUE"/>collate by subclass
</c:otherwise>
</c:choose>
</td> </td>
<td valign="bottom" colspan="1"> <td valign="bottom" colspan="1">
<em><strong>Caution:</strong>delete object when statement deleted?</em><br /> <em><strong>Caution:</strong>delete object when statement deleted?</em><br />
@ -266,33 +247,18 @@
</c:choose> </c:choose>
</td> </td>
</tr> </tr>
<tr class="editformcell"> <tr class="editformcell">
<td valign="bottom" colspan="2"> <td valign="bottom" colspan="4">
&nbsp; <em>custom entry form</em><br />
</td> <input name="CustomEntryForm" size="30" value="<form:value name="CustomEntryForm"/>" />
<td valign="bottom" colspan="1"> <c:set var="CustomEntryFormError"><form:error name="CustomEntryForm"/></c:set>
<em>Optional: <strong>inverse sort direction</strong><br /> <c:if test="${!empty CustomEntryFormError}">
(blank for ascending, &quot;desc&quot; for descending)</em><br/> <span class="notice"><c:out value="${CustomEntryFormError}"/></span>
<input name="RangeEntitySortDirection" value="<form:value name="RangeEntitySortDirection"/>" />
<c:set var="RangeEntitySortDirectionError"><form:error name="RangeEntitySortDirection"/></c:set>
<c:if test="${!empty RangeEntitySortDirectionError}">
<span class="notice"><c:out value="${RangeEntitySortDirectionError}"/></span>
</c:if>
</td>
<td valign="bottom" colspan="2">
<em>Related <strong>object individuals of non-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> </c:if>
</td> </td>
</tr> </tr>
<tr class="editformcell"> <tr class="editformcell">
<td valign="bottom" colspan="5"> <td valign="bottom" colspan="4">
<b>Example</b><br /> <b>Example</b><br />
<input name="Example" style="width:90%;" value="<form:value name="Example"/>" /> <input name="Example" style="width:90%;" value="<form:value name="Example"/>" />
<c:set var="ExampleError"><form:error name="Example"/></c:set> <c:set var="ExampleError"><form:error name="Example"/></c:set>
@ -302,7 +268,7 @@
</td> </td>
</tr> </tr>
<tr class="editformcell"> <tr class="editformcell">
<td valign="bottom" colspan="5"> <td valign="bottom" colspan="4">
<b>Description</b> for ontology editors<br /> <b>Description</b> for ontology editors<br />
<textarea name="Description" style="width:90%;"><form:value name="Description"/></textarea> <textarea name="Description" style="width:90%;"><form:value name="Description"/></textarea>
<c:set var="DescriptionError"><form:error name="Description"/></c:set> <c:set var="DescriptionError"><form:error name="Description"/></c:set>