From e665b4897164e82f2361d77f852bc3e89bb82425 Mon Sep 17 00:00:00 2001 From: Jim Blake Date: Fri, 7 Nov 2014 10:32:33 -0500 Subject: [PATCH] Add link to verbose panel, handle VCard oddities. --- .../edit/FauxPropertyRetryController.java | 151 +++++++++++------- .../mannlib/vitro/webapp/dao/VClassDao.java | 4 +- .../webapp/dao/jena/FauxPropertyDaoJena.java | 13 ++ .../individual/PropertyTemplateModel.java | 43 ++--- .../freemarker/lib/lib-properties.ftl | 6 +- 5 files changed, 135 insertions(+), 82 deletions(-) diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/FauxPropertyRetryController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/FauxPropertyRetryController.java index 3cbc9c1a8..e271dc1ad 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/FauxPropertyRetryController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/FauxPropertyRetryController.java @@ -10,8 +10,10 @@ import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Set; import javax.servlet.RequestDispatcher; import javax.servlet.ServletContext; @@ -127,16 +129,16 @@ public class FauxPropertyRetryController extends BaseEditController { this.baseProperty = req.getUnfilteredWebappDaoFactory() .getObjectPropertyDao() .getObjectPropertyByURI(beanForEditing.getURI()); - + addCheckboxValuesToTheRequest(); setFieldValidators(); + setListeners(); + setForwarders(); - doABunchOfOtherJunk(); + assembleFormObjectAndConnectToEpo(); } - - private String determineAction() { return (req.getParameter("create") == null) ? "update" : "insert"; } @@ -162,7 +164,8 @@ public class FauxPropertyRetryController extends BaseEditController { } /** - * Create a new FauxProperty object and let it inherit some values from its base property. + * Create a new FauxProperty object and let it inherit some values from + * its base property. */ private FauxProperty newFauxProperty(String baseUri) { FauxProperty fp = new FauxProperty(null, baseUri, null); @@ -171,92 +174,73 @@ public class FauxPropertyRetryController extends BaseEditController { fp.setGroupURI(base.getGroupURI()); fp.setRangeURI(base.getRangeVClassURI()); fp.setDomainURI(base.getDomainVClassURI()); - fp.setHiddenFromDisplayBelowRoleLevel(base.getHiddenFromDisplayBelowRoleLevel()); - fp.setHiddenFromPublishBelowRoleLevel(base.getHiddenFromPublishBelowRoleLevel()); - fp.setProhibitedFromUpdateBelowRoleLevel(base.getProhibitedFromUpdateBelowRoleLevel()); + fp.setHiddenFromDisplayBelowRoleLevel(base + .getHiddenFromDisplayBelowRoleLevel()); + fp.setHiddenFromPublishBelowRoleLevel(base + .getHiddenFromPublishBelowRoleLevel()); + fp.setProhibitedFromUpdateBelowRoleLevel(base + .getProhibitedFromUpdateBelowRoleLevel()); log.debug("Created new FauxProperty: " + fp); return fp; } private void addCheckboxValuesToTheRequest() { - req.setAttribute("selectFromExisting",beanForEditing.isSelectFromExisting()); - req.setAttribute("offerCreateNewOption", beanForEditing.isOfferCreateNewOption()); - req.setAttribute("collateBySubclass", beanForEditing.isCollateBySubclass()); - + req.setAttribute("selectFromExisting", + beanForEditing.isSelectFromExisting()); + req.setAttribute("offerCreateNewOption", + beanForEditing.isOfferCreateNewOption()); + req.setAttribute("collateBySubclass", + beanForEditing.isCollateBySubclass()); + // checkboxes on HTML forms are pretty annoying : we don't know if // someone *unchecked* a box, so we have to default to false on // updates. - if (beanForEditing.getURI() != null) { - beanForEditing.setSelectFromExisting(false); - beanForEditing.setOfferCreateNewOption(false); - beanForEditing.setCollateBySubclass(false); - } + if (beanForEditing.getURI() != null) { + beanForEditing.setSelectFromExisting(false); + beanForEditing.setOfferCreateNewOption(false); + beanForEditing.setCollateBySubclass(false); + } } - + private void setFieldValidators() { epo.getValidatorMap() .put("RangeURI", Arrays.asList(new Validator[] { new RequiredFieldValidator() })); } - private void doABunchOfOtherJunk() { - // set up any listeners + private void setListeners() { epo.setChangeListenerList(Collections .singletonList(new PropertyRestrictionListener(ctx))); + } + private void setForwarders() { // where should the postinsert pageforwarder go? // TODO // make a postdelete pageforwarder that will send us to the control // panel for the base property. // TODO + } + private void assembleFormObjectAndConnectToEpo() { FormObject foo = new FormObject(); foo.setErrorMap(epo.getErrMsgMap()); - foo.setOptionLists(new HashMap<>(createOptionsMap())); - - // We will need to set a lot of option lists and stuff. - // TODO - - // Put attributes on the request so the JSP can populate the fields. - // request.setAttribute("transitive",propertyForEditing.getTransitive()); - // request.setAttribute("objectIndividualSortPropertyURI", - // propertyForEditing.getObjectIndividualSortPropertyURI()); - // TODO - - // checkboxes are pretty annoying : we don't know if someone - // *unchecked* - // a box, so we have to default to false on updates. - // propertyForEditing.setSymmetric(false); - // TODO - epo.setFormObject(foo); - FormUtils.populateFormFromBean(beanForEditing, epo.getAction(), foo, epo.getBadValueMap()); } private Map> createOptionsMap() { Map> map = new HashMap<>(); - map.put("GroupURI", createClassGroupOptionList()); - - map.put("DomainURI", - createRootedVClassOptionList( - baseProperty.getDomainVClassURI(), - beanForEditing.getDomainURI())); - map.put("RangeURI", - createRootedVClassOptionList( - baseProperty.getRangeVClassURI(), - beanForEditing.getRangeURI())); - + map.put("DomainURI", buildDomainOptionList()); + map.put("RangeURI", buildRangeOptionList()); map.put("HiddenFromDisplayBelowRoleLevelUsingRoleUri", RoleLevelOptionsSetup.getDisplayOptionsList(beanForEditing)); map.put("ProhibitedFromUpdateBelowRoleLevelUsingRoleUri", RoleLevelOptionsSetup.getUpdateOptionsList(beanForEditing)); map.put("HiddenFromPublishBelowRoleLevelUsingRoleUri", RoleLevelOptionsSetup.getPublishOptionsList(beanForEditing)); - return map; } @@ -282,22 +266,73 @@ public class FauxPropertyRetryController extends BaseEditController { } } - private List