From 1439c2195d8bf75668864c6368e42d9c9fdbbf28 Mon Sep 17 00:00:00 2001 From: Jim Blake Date: Thu, 6 Nov 2014 13:50:16 -0500 Subject: [PATCH] tweaks to make the boolean values work. --- .../vitro/webapp/beans/FauxProperty.java | 23 +++++++++++++------ .../edit/FauxPropertyRetryController.java | 20 ++++++++++++++++ .../webapp/dao/jena/FauxPropertyDaoJena.java | 19 +++++++++++++-- .../edit/specific/fauxProperty_retry.jsp | 2 +- 4 files changed, 54 insertions(+), 10 deletions(-) diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/beans/FauxProperty.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/beans/FauxProperty.java index 67bb52923..f5f9c9b3e 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/beans/FauxProperty.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/beans/FauxProperty.java @@ -24,6 +24,7 @@ public class FauxProperty extends BaseResourceBean implements ResourceBean, // May be null. Partial identifier on delete. private String domainURI; + private String baseLabel; private String rangeLabel; private String domainLabel; @@ -95,6 +96,14 @@ public class FauxProperty extends BaseResourceBean implements ResourceBean, this.rangeURI = rangeURI; } + public String getBaseLabel() { + return (baseLabel == null) ? localName(getBaseURI()) : baseLabel; + } + + public void setBaseLabel(String baseLabel) { + this.baseLabel = baseLabel; + } + public String getRangeLabel() { return (rangeLabel == null) ? localName(rangeURI) : rangeLabel; } @@ -212,13 +221,13 @@ public class FauxProperty extends BaseResourceBean implements ResourceBean, @Override public String toString() { return "FauxProperty[domainURI=" + domainURI + ", baseUri=" + getURI() - + ", rangeURI=" + rangeURI + ", rangeLabel=" + rangeLabel - + ", domainLabel=" + domainLabel + ", pickListName=" - + getPickListName() + ", contextUri=" + contextUri - + ", configUri=" + configUri + ", groupURI=" + groupURI - + "publicDescription=" + publicDescription + ", displayTier=" - + displayTier + ", displayLimit=" + displayLimit - + ", collateBySubclass=" + collateBySubclass + + ", baseLabel=" + baseLabel + ", rangeURI=" + rangeURI + + ", rangeLabel=" + rangeLabel + ", domainLabel=" + domainLabel + + ", pickListName=" + getPickListName() + ", contextUri=" + + contextUri + ", configUri=" + configUri + ", groupURI=" + + groupURI + "publicDescription=" + publicDescription + + ", displayTier=" + displayTier + ", displayLimit=" + + displayLimit + ", collateBySubclass=" + collateBySubclass + ", selectFromExisting=" + selectFromExisting + ", offerCreateNewOption=" + offerCreateNewOption + ", customEntryForm=" + customEntryForm + ", customListView=" 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 250f52723..3cbc9c1a8 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 @@ -127,12 +127,16 @@ public class FauxPropertyRetryController extends BaseEditController { this.baseProperty = req.getUnfilteredWebappDaoFactory() .getObjectPropertyDao() .getObjectPropertyByURI(beanForEditing.getURI()); + + addCheckboxValuesToTheRequest(); setFieldValidators(); doABunchOfOtherJunk(); } + + private String determineAction() { return (req.getParameter("create") == null) ? "update" : "insert"; } @@ -170,9 +174,25 @@ public class FauxPropertyRetryController extends BaseEditController { 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()); + + // 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); + } + } + private void setFieldValidators() { epo.getValidatorMap() .put("RangeURI", diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/FauxPropertyDaoJena.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/FauxPropertyDaoJena.java index 95f7e78f4..152de4498 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/FauxPropertyDaoJena.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/FauxPropertyDaoJena.java @@ -86,6 +86,15 @@ public class FauxPropertyDaoJena extends JenaBaseDao implements FauxPropertyDao this.models = new LockingOntModelSelector(wadf.getOntModelSelector()); } + /** + * Need to override this, so the boolean convenience methods will work off + * the correct model. + */ + @Override + protected OntModel getOntModel() { + return getOntModelSelector().getDisplayModel(); + } + @Override public List getFauxPropertiesForBaseUri(String uri) { try (LockedOntModel displayModel = models.getDisplayModel().read()) { @@ -110,6 +119,7 @@ public class FauxPropertyDaoJena extends JenaBaseDao implements FauxPropertyDao fpList.add(fp); } } + log.debug("Located " + fpList.size() + " FauxProperties."); return fpList; } } @@ -157,6 +167,7 @@ public class FauxPropertyDaoJena extends JenaBaseDao implements FauxPropertyDao FauxProperty fp = new FauxProperty(domainUri, baseUri, rangeUri); fp.setContextUri(contextUri); populateInstance(fp); + log.debug("Loaded FauxProperty: " + fp); return fp; } } @@ -174,6 +185,7 @@ public class FauxPropertyDaoJena extends JenaBaseDao implements FauxPropertyDao FauxProperty fp = new FauxProperty(domainUri, baseUri, rangeUri); fp.setContextUri(contexts.iterator().next().getContextUri()); populateInstance(fp); + log.debug("Loaded FauxProperty: " + fp); return fp; } } @@ -259,6 +271,8 @@ public class FauxPropertyDaoJena extends JenaBaseDao implements FauxPropertyDao @Override public void updateFauxProperty(FauxProperty fp) { + log.debug("Updating FauxProperty: " + fp); + try (LockedOntModel displayModel = models.getDisplayModel().read()) { if (fp.getContextUri() == null) { throw new IllegalStateException("ContextURI may not be null: " @@ -319,7 +333,7 @@ public class FauxPropertyDaoJena extends JenaBaseDao implements FauxPropertyDao fp.getCustomEntryForm(), displayModel); updatePropertyStringValue(config, LIST_VIEW_FILE, fp.getCustomListView(), displayModel); - + updatePropertyResourceURIValue(config, HIDDEN_FROM_DISPLAY_BELOW_ROLE_LEVEL_ANNOT, fp .getHiddenFromDisplayBelowRoleLevel().getURI()); @@ -385,6 +399,7 @@ public class FauxPropertyDaoJena extends JenaBaseDao implements FauxPropertyDao } private void populateLabelsFromTBox(FauxProperty fp) { + fp.setBaseLabel(findLabelForClass(fp.getBaseURI())); fp.setRangeLabel(findLabelForClass(fp.getRangeURI())); fp.setDomainLabel(findLabelForClass(fp.getDomainURI())); } @@ -426,7 +441,7 @@ public class FauxPropertyDaoJena extends JenaBaseDao implements FauxPropertyDao PROPERTY_OFFERCREATENEWOPTIONANNOT))); fp.setCustomEntryForm(getPropertyStringValue(config, PROPERTY_CUSTOMENTRYFORMANNOT)); - + fp.setHiddenFromDisplayBelowRoleLevel(getMostRestrictiveRoleLevel( config, HIDDEN_FROM_DISPLAY_BELOW_ROLE_LEVEL_ANNOT)); fp.setHiddenFromPublishBelowRoleLevel(getMostRestrictiveRoleLevel( diff --git a/webapp/web/templates/edit/specific/fauxProperty_retry.jsp b/webapp/web/templates/edit/specific/fauxProperty_retry.jsp index d8bd7fffe..de8b8af0c 100644 --- a/webapp/web/templates/edit/specific/fauxProperty_retry.jsp +++ b/webapp/web/templates/edit/specific/fauxProperty_retry.jsp @@ -6,7 +6,7 @@ Base property
- " disabled="disabled" />
+ " disabled="disabled" />
a specification of this property