Changes to vclass, object property, and data property editing forms (JSPs) and controllers, plus one new vitro.css class

This commit is contained in:
jcorson-rikert 2012-06-25 17:01:41 +00:00
parent c36d9565a1
commit 9c7e231324
7 changed files with 438 additions and 405 deletions

View file

@ -21,6 +21,7 @@ import edu.cornell.mannlib.vedit.beans.FormObject;
import edu.cornell.mannlib.vedit.controller.BaseEditController;
import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission;
import edu.cornell.mannlib.vitro.webapp.beans.ObjectProperty;
import edu.cornell.mannlib.vitro.webapp.beans.DataProperty;
import edu.cornell.mannlib.vitro.webapp.beans.PropertyGroup;
import edu.cornell.mannlib.vitro.webapp.beans.VClass;
import edu.cornell.mannlib.vitro.webapp.controller.Controllers;
@ -28,6 +29,7 @@ import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
import edu.cornell.mannlib.vitro.webapp.dao.ObjectPropertyDao;
import edu.cornell.mannlib.vitro.webapp.dao.PropertyGroupDao;
import edu.cornell.mannlib.vitro.webapp.dao.VClassDao;
import edu.cornell.mannlib.vitro.webapp.dao.DataPropertyDao;
public class PropertyEditController extends BaseEditController {
@ -46,6 +48,7 @@ public class PropertyEditController extends BaseEditController {
ObjectPropertyDao propDao = vreq.getFullWebappDaoFactory().getObjectPropertyDao();
VClassDao vcDao = vreq.getFullWebappDaoFactory().getVClassDao();
PropertyGroupDao pgDao = vreq.getFullWebappDaoFactory().getPropertyGroupDao();
DataPropertyDao dpDao = vreq.getFullWebappDaoFactory().getDataPropertyDao();
ObjectProperty p = (ObjectProperty)propDao.getObjectPropertyByURI(request.getParameter("uri"));
request.setAttribute("property",p);
@ -57,15 +60,15 @@ public class PropertyEditController extends BaseEditController {
results.add("display name"); // column 5
results.add("group"); // column 6
results.add("display tier"); // column 7
results.add("example"); // column 8
results.add("description"); // column 9
results.add("public description"); // column 10
results.add("public description"); // column 8
results.add("example"); // column 9
results.add("editor description"); // column 10
results.add("display level"); //column 11
results.add("update level"); // column 12
results.add("custom entry form"); // column 13
results.add("select from existing"); // column 14
results.add("offer create new option"); // column 15
results.add("force stub object deletion"); // column 16
results.add("relatedsort direction"); // column 16
results.add("URI"); // column 17
String displayName = (p.getDomainPublic()==null) ? p.getLocalName() : p.getDomainPublic();
@ -135,12 +138,12 @@ public class PropertyEditController extends BaseEditController {
results.add("unspecified"); // column 6
}
results.add("domain: "+p.getDomainDisplayTier() + ", range: "+p.getRangeDisplayTier()); // column 7
String exampleStr = (p.getExample() == null) ? "" : p.getExample();
results.add(exampleStr); // column 8
String descriptionStr = (p.getDescription() == null) ? "" : p.getDescription();
results.add(descriptionStr); // column 9
String publicDescriptionStr = (p.getPublicDescription() == null) ? "" : p.getPublicDescription();
results.add(publicDescriptionStr); // column 10
results.add(publicDescriptionStr); // column 8
String exampleStr = (p.getExample() == null) ? "" : p.getExample();
results.add(exampleStr); // column 9
String descriptionStr = (p.getDescription() == null) ? "" : p.getDescription();
results.add(descriptionStr); // column 10
results.add(p.getHiddenFromDisplayBelowRoleLevel() == null ? "unspecified" : p.getHiddenFromDisplayBelowRoleLevel().getLabel()); // column 11
results.add(p.getProhibitedFromUpdateBelowRoleLevel() == null ? "unspecified" : p.getProhibitedFromUpdateBelowRoleLevel().getLabel()); // column 12
@ -148,7 +151,26 @@ public class PropertyEditController extends BaseEditController {
results.add(p.getCustomEntryForm() == null ? "unspecified" : p.getCustomEntryForm()); // column 13
results.add(p.getSelectFromExisting() ? "true" : "false"); // column 14
results.add(p.getOfferCreateNewOption() ? "true" : "false"); // column 15
results.add(p.getStubObjectRelation() ? "true" : "false"); // column 16
//results.add(p.getStubObjectRelation() ? "true" : "false"); // column 16
/*
String datapropStr = "";
if (p.getObjectIndividualSortPropertyURI() != null) {
DataProperty dProp = dpDao.getDataPropertyByURI(p.getObjectIndividualSortPropertyURI());
if (dProp != null && dProp.getURI() != null && dProp.getLocalNameWithPrefix() != null) {
try {
datapropStr = "<a href=\"datapropEdit?uri="+URLEncoder.encode(dProp.getURI(),"UTF-8")+"\">"+dProp.getLocalNameWithPrefix()+"</a>";
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
results.add(datapropStr); // column 16
} else {
results.add("name (rdfs:label)"); // column 16
}
*/
results.add(p.getDomainEntitySortDirection() == null ? "ascending" : p.getDomainEntitySortDirection()); // column 16
results.add(p.getURI()); // column 17
request.setAttribute("results",results);
request.setAttribute("columncount",NUM_COLS);

View file

@ -37,7 +37,6 @@ import edu.cornell.mannlib.vitro.webapp.beans.VClass;
import edu.cornell.mannlib.vitro.webapp.controller.Controllers;
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
import edu.cornell.mannlib.vitro.webapp.controller.edit.utils.RoleLevelOptionsSetup;
import edu.cornell.mannlib.vitro.webapp.dao.DataPropertyDao;
import edu.cornell.mannlib.vitro.webapp.dao.ObjectPropertyDao;
import edu.cornell.mannlib.vitro.webapp.dao.OntologyDao;
import edu.cornell.mannlib.vitro.webapp.dao.VClassDao;
@ -74,7 +73,6 @@ public class PropertyRetryController extends BaseEditController {
epo.setDataAccessObject(propDao);
OntologyDao ontDao = request.getFullWebappDaoFactory().getOntologyDao();
VClassDao vclassDao = request.getFullWebappDaoFactory().getVClassDao();
DataPropertyDao dpDao = request.getFullWebappDaoFactory().getDataPropertyDao();
ObjectProperty propertyForEditing = null;
if (!epo.getUseRecycledBean()){
@ -166,7 +164,9 @@ public class PropertyRetryController extends BaseEditController {
request.setAttribute("inverseFunctional",propertyForEditing.getInverseFunctional());
request.setAttribute("selectFromExisting",propertyForEditing.getSelectFromExisting());
request.setAttribute("offerCreateNewOption", propertyForEditing.getOfferCreateNewOption());
request.setAttribute("stubObjectRelation", propertyForEditing.getStubObjectRelation());
//request.setAttribute("stubObjectRelation", propertyForEditing.getStubObjectRelation());
request.setAttribute("objectIndividualSortPropertyURI", propertyForEditing.getObjectIndividualSortPropertyURI());
request.setAttribute("domainEntitySortDirection", propertyForEditing.getDomainEntitySortDirection());
request.setAttribute("collateBySubclass", propertyForEditing.getCollateBySubclass());
//checkboxes are pretty annoying : we don't know if someone *unchecked* a box, so we have to default to false on updates.
@ -177,7 +177,7 @@ public class PropertyRetryController extends BaseEditController {
propertyForEditing.setInverseFunctional(false);
propertyForEditing.setSelectFromExisting(false);
propertyForEditing.setOfferCreateNewOption(false);
propertyForEditing.setStubObjectRelation(false);
//propertyForEditing.setStubObjectRelation(false);
propertyForEditing.setCollateBySubclass(false);
}
@ -187,7 +187,7 @@ public class PropertyRetryController extends BaseEditController {
RequestDispatcher rd = request.getRequestDispatcher(Controllers.BASIC_JSP);
request.setAttribute("bodyJsp","/templates/edit/formBasic.jsp");
request.setAttribute("colspan","4");
request.setAttribute("colspan","5");
request.setAttribute("formJsp","/templates/edit/specific/property_retry.jsp");
request.setAttribute("scripts","/templates/edit/formBasic.js");
request.setAttribute("title","Property Editing Form");
@ -243,17 +243,19 @@ public class PropertyRetryController extends BaseEditController {
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<DataProperty> dpList = dpDao.getAllDataProperties();
Collections.sort(dpList);
List<Option> objectIndividualSortPropertyList =
FormUtils.makeOptionListFromBeans(
dpList, "URI", "Name",
propertyForEditing.getObjectIndividualSortPropertyURI(),
null);
objectIndividualSortPropertyList.add(0, new Option(
"","- name (rdfs:label) -"));
optionMap.put("ObjectIndividualSortPropertyURI",
objectIndividualSortPropertyList);
*/
List<Option> domainOptionList = FormUtils.makeVClassOptionList(
request.getFullWebappDaoFactory(),

View file

@ -31,7 +31,7 @@ import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory;
public class VclassEditController extends BaseEditController {
private static final Log log = LogFactory.getLog(VclassEditController.class.getName());
private static final int NUM_COLS = 12;
private static final int NUM_COLS = 10;
public void doPost (HttpServletRequest req, HttpServletResponse response) {
if (!isAuthorizedToDisplayPage(req, response, SimplePermission.EDIT_ONTOLOGY.ACTIONS)) {
@ -63,9 +63,7 @@ public class VclassEditController extends BaseEditController {
results.add("display level"); // 7
results.add("update level"); // 8
results.add("custom entry form"); // 9
results.add("custom display view"); // 10
results.add("custom search view"); // 11
results.add("URI"); // 12
results.add("URI"); // 10
String name = vcl.getLocalNameWithPrefix();
String shortDef = (vcl.getShortDef()==null) ? "" : vcl.getShortDef();
@ -116,9 +114,7 @@ public class VclassEditController extends BaseEditController {
results.add(hiddenFromDisplay); // 7
results.add(ProhibitedFromUpdate); // 8
results.add(customEntryForm); // 9
results.add(customDisplayView); // 10
results.add(customSearchView); // 11
results.add(uri); // 12
results.add(uri); // 10
request.setAttribute("results", results);
request.setAttribute("columncount", NUM_COLS);
request.setAttribute("suppressquery", "true");

View file

@ -396,6 +396,11 @@ ul.ingestMenu {
tr.editformcell td input[type="text"] {
width: 30% !important;
}
tr.editformcell td input.fullWidthInput {
width: 90% !important;
}
tr.editformcell td select {
font-size: .8em;
}

View file

@ -4,59 +4,52 @@
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
<%-- colspan set to 4 in DatapropRetryController.java --%>
<tr class="editformcell">
<td valign="top" colspan="1">
<b>Public Name</b><br/><i>as will display on public pages</i><br/>
<input name="PublicName" value="<form:value name="PublicName"/>"/>
<td valign="top" colspan="2">
<b>Public label</b><br/>
<input name="PublicName" type="text" class="fullWidthInput" value="<form:value name="PublicName"/>"/>
<c:set var="PublicNameError"><form:error name="PublicName"/></c:set>
<c:if test="${!empty PublicNameError}">
<span class="notice"><c:out value="${PublicNameError}"/></span>
</c:if>
</td>
<td valign="top" colspan="1">
<b>Property Group</b><br/>
<i>(for display headers and dashboard)</i><br/>
<td valign="top" colspan="2">
<b>Property group</b><br/>
<select name="GroupURI">
<form:option name="GroupURI"/>
</select>
</select><br/>
<i>for grouping properties on individual pages</i><br/>
</td>
<td valign="bottom" colspan="1">
<b>Display Level</b><br /><i>(specify least restrictive level allowed)</i><br/>
<select name="HiddenFromDisplayBelowRoleLevelUsingRoleUri"><form:option name="HiddenFromDisplayBelowRoleLevelUsingRoleUri"/></select>
</td>
<td valign="bottom" colspan="1">
<b>Update Level</b><br /><i>(specify least restrictive level allowed)</i><br />
<select name="ProhibitedFromUpdateBelowRoleLevelUsingRoleUri"><form:option name="ProhibitedFromUpdateBelowRoleLevelUsingRoleUri"/></select>
</td>
</tr>
<tr><td colspan="5"><hr color="Gainsboro"/></td></tr>
<tr class="editformcell">
<!-- c:set var="existingLocalName" value="<form:value name='LocalName'/>"/ -->
<td valign="top" colspan="2">
<b>Ontology</b><br/>
<c:choose>
<c:when test="${_action eq 'update'}">
<i>Change only via the "change URI" button on the previous screen</i><br/>
<select name="Namespace" disabled="disabled">
<form:option name="Namespace"/>
</select>
</select><br/>
<i>Edit via "change URI" on previous screen</i><br/>
</c:when>
<c:otherwise>
<i>specifies Namespace</i><br/>
<select name="Namespace">
<form:option name="Namespace"/>
</select>
</select><br/>
</c:otherwise>
</c:choose>
</td>
<td valign="top" colspan="2">
<b>Local Name*</b>
<b>Internal name*</b> (RDF local name)<br/><br/>
<c:choose>
<c:when test="${_action eq 'update'}">
<br/><i>Change only via the "change URI" button on the previous screen</i><br/>
<input name="LocalName" value="<form:value name="LocalName"/>" disabled="disabled"/>
<input type="text" name="LocalName" class="fullWidthInput" value="<form:value name="LocalName"/>" disabled="disabled"/><br/>
<i>Edit via &quot;change URI&quot;</i><br/>
</c:when>
<c:otherwise>
<i>(must be a valid XML name)<br/>startLowercaseAndUseCamelStyle</i><br/>
<input name="LocalName" value="<form:value name="LocalName"/>"/>
<input type="text" name="LocalName" class="fullWidthInput" value="<form:value name="LocalName"/>"/><br/>
<i>must be valid XML without spaces; by</i><br/>
<i>convention use camel case with no initial capital</i><br/>
</c:otherwise>
</c:choose>
<c:set var="LocalNameError"><form:error name="LocalName"/></c:set>
@ -65,39 +58,52 @@
</c:if>
</td>
</tr>
<tr><td colspan="5"><hr color="Gainsboro"/></td></tr>
<tr class="editformcell">
<td valign="top" colspan="2">
<b>Domain Class</b><br/>
<b>Domain class</b><br/>
<select name="DomainClassURI">
<form:option name="DomainClassURI"/>
</select>
</td>
</tr>
<tr class="editformcell">
<td valign="top" colspan="2">
<b>Range Datatype</b><br/>
<b>Range datatype</b><br/>
<select name="RangeDatatypeURI">
<form:option name="RangeDatatypeURI"/>
</select>
</select><br/>
<i>Use &quot;untyped&quot; instead of &quot;string&quot; to allow language tags</i>
</td>
<td valign="bottom" colspan="2">
<c:set var="functionalLabel" value="<b>Functional property</b> <i>(has at most one value for each individual)</i>" />
<c:choose>
<c:when test="${functional}">
<input name="Functional" type="checkbox" value="TRUE" checked="checked"/>${functionalLabel}
</c:when>
<c:otherwise>
<input name="Functional" type="checkbox" value="TRUE"/>${functionalLabel}
</c:otherwise>
</c:choose>
</td>
</tr>
<tr><td colspan="5"><hr color="Gainsboro"/></td></tr>
<tr class="editformcell">
<td valign="top" colspan="4">
<b>Example</b><br/>
<b>Make this property be:</b><br/><br/>
<c:set var="functionalLabel" value=" functional"/>
<c:choose>
<c:when test="${functional}">
<input name="Functional" type="checkbox" value="TRUE" checked="checked"/>${functionalLabel}<br/><br/>
</c:when>
<c:otherwise>
<input name="Functional" type="checkbox" value="TRUE"/>${functionalLabel}<br/><br/>
</c:otherwise>
</c:choose>
<i>A &quot;functional&quot; property has at most one value for each individual</i></br>
</td>
</tr>
<tr><td colspan="5"><hr color="Gainsboro"/></td></tr>
<tr class="editformcell">
<td valign="top" colspan="4">
<b>Public description</b> for front-end users, as it will appear on editing forms<br/>
<textarea name="PublicDescription"><form:value name="PublicDescription"/></textarea>
<c:set var="PublicDescriptionError"><form:error name="PublicDescription"/></c:set>
<c:if test="${!empty PublicDescriptionError}">
<span class="notice"><c:out value="${PublicDescriptionError}"/></span>
</c:if>
</td>
</tr>
<tr class="editformcell">
<td valign="top" colspan="4">
<b>Example</b> for ontology editors<br/>
<textarea name="Example"><form:value name="Example"/></textarea>
<c:set var="ExampleError"><form:error name="Example"/></c:set>
<c:if test="${!empty ExampleError}">
@ -105,7 +111,6 @@
</c:if>
</td>
</tr>
<tr class="editformcell">
<td valign="top" colspan="4">
<b>Description</b> for ontology editors<br/>
@ -116,38 +121,43 @@
</c:if>
</td>
</tr>
<tr><td colspan="5"><hr color="Gainsboro"/></td></tr>
<tr class="editformcell">
<td valign="top" colspan="4">
<b>Public Description</b> for front-end users, as it will appear on editing forms<br/>
<textarea name="PublicDescription"><form:value name="PublicDescription"/></textarea>
<c:set var="PublicDescriptionError"><form:error name="PublicDescription"/></c:set>
<c:if test="${!empty PublicDescriptionError}">
<span class="notice"><c:out value="${PublicDescriptionError}"/></span>
</c:if>
<td valign="top" colspan="2">
<b>Display level</b><br/>
<select name="HiddenFromDisplayBelowRoleLevelUsingRoleUri"><form:option name="HiddenFromDisplayBelowRoleLevelUsingRoleUri"/></select><br/>
<i>specify least restrictive level allowed</i><br/>
</td>
<td valign="top" colspan="2">
<b>Update level</b><br />
<select name="ProhibitedFromUpdateBelowRoleLevelUsingRoleUri"><form:option name="ProhibitedFromUpdateBelowRoleLevelUsingRoleUri"/></select><br/>
<i>specify least restrictive level allowed</i><br/>
</td>
</tr>
<tr><td colspan="5"><hr color="Gainsboro"/></td></tr>
<tr class="editformcell">
<td valign="top" colspan="1">
<b>Display Tier</b><br/>
<input name="DisplayTier" value="<form:value name="DisplayTier"/>"/>
<td valign="top" colspan="2">
<b>Display tier</b> within property group<br/>
<input type="text" name="DisplayTier" value="<form:value name="DisplayTier"/>"/>
<c:set var="DisplayTierError"><form:error name="DisplayTier"/></c:set>
<c:if test="${!empty DisplayTierError}">
<span class="notice"><c:out value="${DisplayTierError}"/></span>
</c:if>
</td>
<td valign="top" colspan="1">
<b>Data Entry Limit</b><br/>
<input name="DisplayLimit" value="<form:value name="DisplayLimit"/>"/>
<td valign="top" colspan="2">
<b>Display limit</b> before &quot;more ...&quot; button is displayed<br/>
<input type="text" name="DisplayLimit" value="<form:value name="DisplayLimit"/>"/>
<c:set var="DisplayLimitError"><form:error name="DisplayLimit"/></c:set>
<c:if test="${!empty DisplayLimitError}">
<span class="notice"><c:out value="${DisplayLimitError}"/></span>
</c:if>
</td>
<td valign="top" colspan="1">
<em>Optional: <b>custom entry form</b></em><br />
<input name="CustomEntryForm" size="30" value="<form:value name="CustomEntryForm"/>" />
</tr>
<tr><td colspan="5"><hr color="Gainsboro"/></td></tr>
<tr class="editformcell">
<td valign="top" colspan="2">
<b>Custom entry form</b><br/>
<input type="text" name="CustomEntryForm" class="fullWidthInput" 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>
@ -155,4 +165,5 @@
</td>
</td>
</tr>
<tr><td colspan="5"><hr color="Gainsboro"/></td></tr>

View file

@ -6,46 +6,40 @@
<%-- colspan set to 5 in PropertyRetryController.java --%>
<tr class="editformcell">
<td valign="top" colspan="2">
<b>Parent property</b><br/><br/>
<b>Parent property</b><br/>
<select name="ParentURI"><form:option name="ParentURI"/></select>
</td>
<td valign="top" colspan="1">
<b>Property Group</b><br />
<em>(for display headers and dashboard)</em><br/>
<select name="GroupURI"><form:option name="GroupURI"/></select>
<td valign="top" colspan="2">
<b>Property group</b><br/>
<select name="GroupURI"><form:option name="GroupURI"/></select><br/>
<i>for grouping properties on individual pages</i><br/>
</td>
<td valign="bottom" colspan="1">
<b>Display Level</b><br /><i>(specify least restrictive level allowed)</i><br/>
<select name="HiddenFromDisplayBelowRoleLevelUsingRoleUri"><form:option name="HiddenFromDisplayBelowRoleLevelUsingRoleUri"/></select>
</td>
<td valign="bottom" colspan="1">
<b>Update Level</b><br />(specify least restrictive level allowed)<br />
<select name="ProhibitedFromUpdateBelowRoleLevelUsingRoleUri"><form:option name="ProhibitedFromUpdateBelowRoleLevelUsingRoleUri"/></select>
</td>
</tr>
<tr><td colspan="5"><hr color="Gainsboro"/></td></tr>
<tr class="editformcell">
<td style="vertical-align:bottom;" valign="bottom" colspan="1">
<b>Ontology</b>
<td style="vertical-align:top;" valign="top" colspan="1">
<b>Ontology</b><br/>
<c:choose>
<c:when test="${_action eq 'update'}">
<br/><i>Change only via the "change URI" button on the previous screen</i><br/>
<select name="Namespace" disabled="disabled"><form:option name="Namespace"/></select>
<select name="Namespace" disabled="disabled"><form:option name="Namespace"/></select><br/>
<i>Edit via "change URI" on previous screen</i>
</c:when>
<c:otherwise>
<br/><select name="Namespace"><form:option name="Namespace"/></select>
</c:otherwise>
</c:choose>
</td>
<td style="vertical-align:bottom;" valign="bottom" colspan="2">
<b>Local name for property*</b>
<td style="vertical-align:top;" valign="top" colspan="2">
<b>Internal name*</b> (RDF local name)<br/><br/>
<c:choose>
<c:when test="${_action eq 'update'}">
<br/><i>Change only via the "change URI" button on the previous screen</i><br/>
<input name="LocalName" value="<form:value name="LocalName"/>" style="width:90%;" disabled="disabled"/>
<input type="text" name="LocalName" class="fullWidthInput" disabled="disabled" value="<form:value name='LocalName'/>" /><br/>
<i>Edit via "change URI"</i>
</c:when>
<c:otherwise>
<br/><i>(must be a valid XML name without spaces)</i><br/>
<input name="LocalName" value="<form:value name="LocalName"/>" style="width:90%;"/>
<input type="text" name="LocalName" class="fullWidthInput" value="<form:value name="LocalName"/>" /><br/>
<i>must be valid XML without spaces; by</i><br/>
<i>convention use camel case with no initial capital</i><br/>
</c:otherwise>
</c:choose>
<c:set var="LocalNameError"><form:error name="LocalName"/></c:set>
@ -53,38 +47,40 @@
<span class="notice"><c:out value="${LocalNameError}"/></span>
</c:if>
</td>
<td style="vertical-align:bottom;" valign="bottom" colspan="2">
<b>Optional: Label for public display</b><br />
<input type="text" name="DomainPublic" value="<form:value name="DomainPublic"/>" style="width:90%;" maxlength="80" />
<td style="vertical-align:top;" valign="top" colspan="2">
<b>Label for public display</b><br/><br/>
<input type="text" name="DomainPublic" class="fullWidthInput" maxlength="80" value="<form:value name="DomainPublic"/>" />
<c:set var="DomainPublicError"><form:error name="DomainPublic"/></c:set>
<c:if test="${!empty DomainPublicError}">
<span class="notice"><c:out value="${DomainPublicError}"/></span>
</c:if>
</td>
</tr>
<tr><td colspan="5"><hr color="Gainsboro"/></td></tr>
<tr class="editformcell">
<td style="vertical-align:bottom;" valign="bottom" colspan="1">
<b>Optional: Inverse property ontology</b>
<td style="vertical-align:top;" valign="top" colspan="1">
<b>Inverse property ontology</b><br/>
<c:choose>
<c:when test="${_action eq 'update'}">
<br/><i>Change only via the "change URI" button on the previous screen</i><br/>
<select name="NamespaceInverse" disabled="disabled"><form:option name="NamespaceInverse"/></select>
<select name="NamespaceInverse" disabled="disabled"><form:option name="NamespaceInverse"/></select><br/>
<i>Edit via "change URI"</i><br/>
</c:when>
<c:otherwise>
<br/><select name="NamespaceInverse"><form:option name="NamespaceInverse"/></select>
<select name="NamespaceInverse"><form:option name="NamespaceInverse"/></select>
</c:otherwise>
</c:choose>
</td>
<td style="vertical-align:bottom;" valign="bottom" colspan="2">
<b>Optional: Inverse property local name</b>
<td style="vertical-align:top;" valign="top" colspan="2">
<b>Inverse property internal name</b> (RDF local name)<br/>
<c:choose>
<c:when test="${_action eq 'update'}">
<br/><i>Change only via the "change URI" button on the previous screen</i><br/>
<input name="LocalNameInverse" value="<form:value name="LocalNameInverse"/>" style="width:90%;" disabled="disabled"/>
<input type="text" name="LocalNameInverse" class="fullWidthInput" disabled="disabled" value="<form:value name="LocalNameInverse"/>" /><br/>
<i>Edit via "change URI"</i><br/>
</c:when>
<c:otherwise>
<br/><i>(must be a valid XML name without spaces)</i><br/>
<input name="LocalNameInverse" value="<form:value name="LocalNameInverse"/>" style="width:90%;"/>
<input type="text" name="LocalNameInverse" class="fullWidthInput" value="<form:value name="LocalNameInverse"/>" /><br/>
<i>must be a valid XML name without spaces; by</i><br/>
<i>convention use camel case with no initial capital</i><br/>
</c:otherwise>
</c:choose>
<c:set var="LocalNameInverseError"><form:error name="LocalNameInverse"/></c:set>
@ -92,26 +88,75 @@
<span class="notice"><c:out value="${LocalNameInverseError}"/></span>
</c:if>
</td>
<td valign="bottom" style="vertical-align:bottom;" colspan="2">
<b>Optional: Inverse property label for public display</b><br />
<input type="text" name="RangePublic" value="<form:value name="RangePublic"/>" style="width:90%;" maxlength="80" />
<td valign="top" style="vertical-align:top;" colspan="2">
<b>Inverse property label</b><br/><br/>
<input type="text" name="RangePublic" value="<form:value name="RangePublic"/>" class="fullWidthInput" maxlength="80" /><br/>
<br/>
<c:set var="RangePublicError"><form:error name="RangePublic"/></c:set>
<c:if test="${!empty RangePublicError}">
<span class="notice"><c:out value="${RangePublicError}"/></span>
</c:if>
</td>
</tr>
<tr><td colspan="5"><hr color="Gainsboro"/></td></tr>
<tr class="editformcell">
<td valign="top" colspan="2">
<b>Domain class</b><br />
<select name="DomainVClassURI"><form:option name="DomainVClassURI"/></select>
</td>
<td valign="top" colspan="3">
<td valign="top" colspan="2">
<b>Range class</b><br />
<select name="RangeVClassURI" ><form:option name="RangeVClassURI"/></select>
</td>
</tr>
<tr><td colspan="5"><hr color="Gainsboro"/></td></tr>
<tr class="editformcell">
<td valign="top" colspan="2">
<b>Make this property be:</b><br/><br/>
<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="top" colspan="1">
<br/><br/>
<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="top" colspan="1">
<br/><br/>
<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="top" colspan="1">
<br/><br/>
<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><td colspan="5"><hr color="Gainsboro"/></td></tr>
<tr class="editformcell">
<td valign="top" colspan="5">
<b>Public Description</b> for front-end users, as it will appear on editing forms<br/>
@ -122,165 +167,126 @@
</c:if>
</td>
</tr>
<tr><td colspan="5"><hr color="Gainsboro"/></td></tr>
<tr class="editformcell">
<td valign="bottom" colspan="1">
<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%;" />
<td valign="top" colspan="5">
<b>Example</b> for ontology editors<br/>
<input type="text" 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="top" 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>
<tr><td colspan="5"><hr color="Gainsboro"/></td></tr>
<tr class="editformcell">
<td valign="top" colspan="2">
<b>Display level</b><br />
<select name="HiddenFromDisplayBelowRoleLevelUsingRoleUri"><form:option name="HiddenFromDisplayBelowRoleLevelUsingRoleUri"/></select><br/>
<i>specify least restrictive level allowed</i>
</td>
<td valign="top" colspan="2">
<b>Update level</b><br/>
<select name="ProhibitedFromUpdateBelowRoleLevelUsingRoleUri"><form:option name="ProhibitedFromUpdateBelowRoleLevelUsingRoleUri"/></select><br/>
<i>specify least restrictive level allowed</i>
</td>
</tr>
<tr><td colspan="5"><hr color="Gainsboro"/></td></tr>
<tr class="editformcell">
<td valign="top" colspan="1">
<b>Display tier</b> for this property<br/>
<input type="text" name="DomainDisplayTier" value="<form:value name="DomainDisplayTier"/>" /><br/>
<i><b>lower</b> numbers display first</i><br/>
<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="2">
<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%;" />
<td valign="top" colspan="2">
<b>Display tier</b> for inverse property<br/>
<input type="text" name="RangeDisplayTier" value="<form:value name="RangeDisplayTier"/>" /><br/>
<i><b>lower</b> numbers display first</i><br/>
<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">
<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>
</tr>
<tr class="editformcell">
<td valign="bottom" colspan="5">
<td valign="top" colspan="2">
When displaying related individuals from different classes,<br/><br/>
<c:choose>
<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:otherwise>
<input name="CollateBySubclass" type="checkbox" value="TRUE"/>collate by subclass
</c:otherwise>
</c:choose>
</td>
</td>
</tr>
<tr><td colspan="5"><hr color="Gainsboro"/></td></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 valign="top" colspan="2">
<b>Number</b> of individuals to display<br/>
<input type="text" name="DomainDisplayLimit" value="<form:value name="DomainDisplayLimit"/>" /><br/>
<i>before showing a &quot;more ...&quot; button</i><br/>
<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="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 valign="top" colspan="3">
<b>Sort direction</b> for related individuals, alphabetically by their name (rdfs:label)<br/>
<input type="text" name="DomainEntitySortDirection" value="<form:value name="DomainEntitySortDirection"/>" /><br/>
<i>blank for ascending, &quot;desc&quot; for descending</i><br/>
<i><b>Note:</b> will be ignored if a custom list view has been configured for this property</i><br/>
<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="2">
<em>custom entry form</em><br />
<input name="CustomEntryForm" size="30" value="<form:value name="CustomEntryForm"/>" />
<tr><td colspan="5"><hr color="Gainsboro"/></td></tr>
<tr class="editformcell">
<td valign="top" colspan="2">
Select related individuals from existing choices?<br/><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="top" colspan="2">
Allow creating new related individuals?<br/><br/><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>
<td valign="top" colspan="1">
<b>Custom entry form</b><br/><br/>
<input type="text" name="CustomEntryForm" class="fullWidthInput" 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>
<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>
</td>
</tr>
<tr><td colspan="5"><hr color="Gainsboro"/></td></tr>

View file

@ -4,132 +4,123 @@
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:c="http://java.sun.com/jstl/core" xmlns:form="http://vitro.mannlib.cornell.edu/edit/tags" version="2.0">
<tr class="editformcell">
<td valign="bottom" colspan="2">
<b>Class Name</b><i> for editing pick lists and the Index</i><br/>
<i>... use initial capital letters; spaces OK</i><br/>
<input type="text" name="Name" value="${formValue['Name']}" style="width:90%" maxlength="120" />
<span class="warning"><form:error name="Name"/></span>
</td>
<td valign="bottom" colspan="1">
<b>Display Level</b><br /><i>(specify least restrictive level allowed)</i><br/>
<select name="HiddenFromDisplayBelowRoleLevelUsingRoleUri"><form:option name="HiddenFromDisplayBelowRoleLevelUsingRoleUri"/></select>
</td>
<td valign="bottom" colspan="1">
<b>Update Level</b><br /><i>(specify least restrictive level allowed)</i><br />
<select name="ProhibitedFromUpdateBelowRoleLevelUsingRoleUri"><form:option name="ProhibitedFromUpdateBelowRoleLevelUsingRoleUri"/></select>
</td>
</tr>
<tr class="editformcell">
<td valign="bottom" colspan="1">
<b>Class Group</b><br/>
<i>for search results and the Index</i><br/>
<select name="GroupURI" ><form:option name="GroupURI"/></select>
<span class="warning"><form:error name="GroupURI"/></span>
</td>
<td valign="bottom" colspan="2">
<b>Ontology</b><br/>
<c:choose>
<c:when test="${_action eq 'update'}">
<i>Change via the "change URI" button on previous screen</i><br/>
<select name="Namespace" disabled="disabled"><form:option name="Namespace"/></select>
</c:when>
<c:otherwise>
<i>(must be a valid XML name without spaces)</i><br/>
<select name="Namespace"><form:option name="Namespace"/></select>
</c:otherwise>
</c:choose>
</td>
<td valign="bottom" colspan="1">
<b>Internal Name*</b><br/>
<c:choose>
<c:when test="${_action eq 'update'}">
<i>Change via "change URI"</i><br/>
<input name="LocalName" disabled="disabled" value="${formValue['LocalName']}" style="width:90%"/>
</c:when>
<c:otherwise>
<i>must be valid XML</i><br/><i>by convention starts with a capital letter</i><br/>
<input name="LocalName" value="${formValue['LocalName']}" style="width:90%"/>
</c:otherwise>
</c:choose>
<c:set var="LocalNameError"><form:error name="LocalName"/></c:set>
<c:if test="${!empty LocalNameError}">
<span class="notice"><c:out value="${LocalNameError}"/></span>
</c:if>
</td>
</tr>
<tr class="editformcell">
<td valign="top" colspan="4">
<b>Short Definition</b><br/>
<input type="text" name="ShortDef" value="${formValue['ShortDef']}" style="width:95%" maxlength="255" />
<c:set var="ShortDefError"><form:error name="ShortDef"/></c:set>
<c:if test="${!empty ShortDefError}">
<span class="notice"><c:out value="${ShortDefError}"/></span>
</c:if>
</td>
</tr>
<tr class="editformcell">
<td valign="top" colspan="4">
<b>Example</b><br/>
<input type="text" name="Example" value="${formValue['Example']}" style="width:95%" maxlength="120" />
<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="4">
<b>Description</b><br/>
<textarea style="width:95%;height:10ex;" name="Description"><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>
<tr class="editformcell">
<td valign="top" colspan="1">
<b>Display Limit</b><br/>
<input style="width:95%;" type="text" name="DisplayLimit" value="${formValue['DisplayLimit']}" maxlength="120" />
<c:set var="DisplayLimitError"><form:error name="DisplayLimit"/></c:set>
<c:if test="${!empty DisplayLimitError}">
<span class="notice"><c:out value="${DisplayLimitError}"/></span>
</c:if>
</td>
<td valign="top" colspan="1">
<b>Display Rank</b><br/>
<input size="4" type="text" name="DisplayRank" value="${formValue['DisplayRank']}" maxlength="120" />
<c:set var="DisplayRankError"><form:error name="DisplayRank"/></c:set>
<c:if test="${!empty DisplayRankError}">
<span class="notice"><c:out value="${DisplayRankError}"/></span>
</c:if>
</td>
</tr>
<tr class="editformcell">
<td valign="bottom" colspan="1">
<em>Optional: <strong>custom entry form</strong></em><br />
<input name="CustomEntryForm" style="width:90%" value="${formValue['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>
<td valign="bottom" colspan="1">
<em>Optional: <strong>custom display view</strong></em><br />
<input name="CustomDisplayView" style="width:90%" value="${formValue['CustomDisplayView']}"/>
<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>
<td valign="bottom" colspan="2">
<em>Optional: <strong>custom search view</strong></em><br />
<input name="CustomSearchView" style="width:45%" value="${formValue['CustomSearchView']}"/>
<c:set var="CustomSearchViewError"><form:error name="CustomSearchView"/></c:set>
<c:if test="${!empty CustomSearchViewError}">
<span class="notice"><c:out value="${CustomSearchViewError}"/></span>
</c:if>
</td>
</tr>
<tr class="editformcell">
<td valign="bottom" colspan="2">
<b>Class label</b><br/>
<input type="text" name="Name" value="${formValue['Name']}" class="fullWidthInput" maxlength="120" /><br/>
<i>by convention use initial capital letters; spaces OK</i><br/>
<span class="warning"><form:error name="Name"/></span>
</td>
<td valign="bottom" colspan="2">
<b>Class group</b><br/>
<select name="GroupURI" ><form:option name="GroupURI"/></select><br/>
<i>for menu pages, search results and the index page</i><br/>
<span class="warning"><form:error name="GroupURI"/></span>
</td>
</tr>
<tr><td colspan="5"><hr color="Gainsboro"/></td></tr>
<tr class="editformcell">
<td valign="bottom" colspan="2">
<b>Ontology</b><br/>
<c:choose>
<c:when test="${_action eq 'update'}">
<select name="Namespace" disabled="disabled"><form:option name="Namespace"/></select><br/>
<i>Edit via "change URI" on previous screen</i><br/>
</c:when>
<c:otherwise>
<select name="Namespace"><form:option name="Namespace"/></select>
</c:otherwise>
</c:choose>
</td>
<td valign="bottom" colspan="1">
<b>Internal name*</b> (RDF local name)<br/>
<c:choose>
<c:when test="${_action eq 'update'}">
<input type="text" name="LocalName" disabled="disabled" value="${formValue['LocalName']}" class="fullWidthInput"/><br/>
<i>Edit via "change URI"</i><br/>
</c:when>
<c:otherwise>
<input type="text" name="LocalName" value="${formValue['LocalName']}" class="fullWidthInput" /><br/>
<i>must be valid XML without spaces; by</i><br/>
<i>convention use camel case with an initial capital</i><br/>
</c:otherwise>
</c:choose>
<c:set var="LocalNameError"><form:error name="LocalName"/></c:set>
<c:if test="${!empty LocalNameError}">
<span class="notice"><c:out value="${LocalNameError}"/></span>
</c:if>
</td>
</tr>
<tr><td colspan="5"><hr color="Gainsboro"/></td></tr>
<tr class="editformcell">
<td valign="top" colspan="3">
<b>Short definition</b> to display publicly<br/>
<input type="text" name="ShortDef" value="${formValue['ShortDef']}" class="fullWidthInput" maxlength="255" />
<c:set var="ShortDefError"><form:error name="ShortDef"/></c:set>
<c:if test="${!empty ShortDefError}">
<span class="notice"><c:out value="${ShortDefError}"/></span>
</c:if>
</td>
</tr>
<tr class="editformcell">
<td valign="top" colspan="3">
<b>Example</b> for ontology editors<br/>
<input type="text" name="Example" value="${formValue['Example']}" class="fullWidthInput" maxlength="120" />
<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="4">
<b>Description</b> for ontology editors<br/>
<textarea style="width:95%;height:10ex;" name="Description"><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>
<tr><td colspan="5"><hr color="Gainsboro"/></td></tr>
<tr class="editformcell">
<td valign="bottom" colspan="1">
<b>Display level</b><br/>
<select name="HiddenFromDisplayBelowRoleLevelUsingRoleUri"><form:option name="HiddenFromDisplayBelowRoleLevelUsingRoleUri"/></select><br/>
<i>specify least restrictive level allowed</i><br/>
</td>
<td valign="bottom" colspan="1">
<b>Update level</b><br/>
<select name="ProhibitedFromUpdateBelowRoleLevelUsingRoleUri"><form:option name="ProhibitedFromUpdateBelowRoleLevelUsingRoleUri"/></select><br/>
<i>specify least restrictive level allowed</i><br />
</td>
</tr>
<tr><td colspan="5"><hr color="Gainsboro"/></td></tr>
<tr class="editformcell">
<!--td valign="top" colspan="1">
<b>Display Limit</b><br/>
<input style="width:95%;" type="text" name="DisplayLimit" value="${formValue['DisplayLimit']}" maxlength="120" />
<c:set var="DisplayLimitError"><form:error name="DisplayLimit"/></c:set>
<c:if test="${!empty DisplayLimitError}">
<span class="notice"><c:out value="${DisplayLimitError}"/></span>
</c:if>
</td-->
<td valign="top" colspan="1">
<b>Display rank</b> within class group<br/>
<input type="text" name="DisplayRank" value="${formValue['DisplayRank']}" maxlength="120" />
<c:set var="DisplayRankError"><form:error name="DisplayRank"/></c:set>
<c:if test="${!empty DisplayRankError}">
<span class="notice"><c:out value="${DisplayRankError}"/></span>
</c:if>
</td>
<td valign="top" colspan="2">
<b>Custom entry form</b><br/>
<input type="text" name="CustomEntryForm" value="${formValue['CustomEntryForm']}" maxlength="120"/>
<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><td colspan="5"><hr color="Gainsboro"/></td></tr>
</jsp:root>