From 535f07ceaa8b67e2a17833dad9182b758861937d Mon Sep 17 00:00:00 2001 From: hjkhjk54 Date: Thu, 1 Dec 2011 21:08:14 +0000 Subject: [PATCH] updates to forms to include prepare for update within generators instead of in edit request dispatch controller which was overriding default add new individual form's functionality in case of creating a new object to replace an existing one --- .../BaseEditConfigurationGenerator.java | 31 +++++++++++++++++++ .../DateTimeIntervalFormGenerator.java | 3 +- .../DateTimeValueFormGenerator.java | 3 +- ...aultAddMissingIndividualFormGenerator.java | 9 ++---- .../DefaultDataPropertyFormGenerator.java | 3 +- .../generators/DefaultDeleteGenerator.java | 4 ++- .../InstitutionalInternalClassForm.java | 4 ++- .../EditRequestDispatchController.java | 23 -------------- 8 files changed, 46 insertions(+), 34 deletions(-) diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/generators/BaseEditConfigurationGenerator.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/generators/BaseEditConfigurationGenerator.java index 574c73b6d..5a7fc023f 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/generators/BaseEditConfigurationGenerator.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/generators/BaseEditConfigurationGenerator.java @@ -6,6 +6,8 @@ import java.util.List; import javax.servlet.http.HttpSession; +import com.hp.hpl.jena.rdf.model.Model; + import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationUtils; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationVTwo; @@ -48,6 +50,35 @@ public abstract class BaseEditConfigurationGenerator implements EditConfiguratio editConfiguration.setObject( EditConfigurationUtils.getObjectUri(vreq) ); } + //Prepare for update or non-update + //Originally included in edit request dispatch controller but moved here due to + //exceptions such as default add missing individual form + void prepare(VitroRequest vreq, EditConfigurationVTwo editConfig) { + //This used to get the model from the servlet context + // Model model = (Model) getServletContext().getAttribute("jenaOntModel"); + Model model = vreq.getJenaOntModel(); + + if( editConfig.getSubjectUri() == null) + editConfig.setSubjectUri( EditConfigurationUtils.getSubjectUri(vreq)); + if( editConfig.getPredicateUri() == null ) + editConfig.setPredicateUri( EditConfigurationUtils.getPredicateUri(vreq)); + + String objectUri = EditConfigurationUtils.getObjectUri(vreq); + Integer dataKey = EditConfigurationUtils.getDataHash(vreq); + if (objectUri != null && ! objectUri.trim().isEmpty()) { + // editing existing object + if( editConfig.getObject() == null) + editConfig.setObject( EditConfigurationUtils.getObjectUri(vreq)); + editConfig.prepareForObjPropUpdate(model); + } else if( dataKey != null ) { // edit of a data prop statement + //do nothing since the data prop form generator must take care of it + editConfig.prepareForDataPropUpdate(model, vreq.getWebappDaoFactory().getDataPropertyDao()); + } else{ + //this might be a create new or a form + editConfig.prepareForNonUpdate(model); + } + } + /** * Method to turn Strings or multiple List to List. * Only accepts String and List as multi args. diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/generators/DateTimeIntervalFormGenerator.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/generators/DateTimeIntervalFormGenerator.java index c34f1a553..952979e85 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/generators/DateTimeIntervalFormGenerator.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/generators/DateTimeIntervalFormGenerator.java @@ -81,7 +81,8 @@ public class DateTimeIntervalFormGenerator extends //Adding additional data, specifically edit mode addFormSpecificData(conf, vreq); - + //Prepare + prepare(vreq, conf); return conf; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/generators/DateTimeValueFormGenerator.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/generators/DateTimeValueFormGenerator.java index 81d531a4d..b5b3fc4e8 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/generators/DateTimeValueFormGenerator.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/generators/DateTimeValueFormGenerator.java @@ -64,7 +64,8 @@ public class DateTimeValueFormGenerator extends BaseEditConfigurationGenerator //Adding additional data, specifically edit mode addFormSpecificData(conf, vreq); - + //prepare + prepare(vreq, conf); return conf; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/generators/DefaultAddMissingIndividualFormGenerator.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/generators/DefaultAddMissingIndividualFormGenerator.java index 2e3409cbe..52a863212 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/generators/DefaultAddMissingIndividualFormGenerator.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/generators/DefaultAddMissingIndividualFormGenerator.java @@ -116,8 +116,7 @@ public class DefaultAddMissingIndividualFormGenerator implements EditConfigurati //default obj property form.populateTemplate or some such method //Select from existing also set within template itself setTemplate(editConfiguration, vreq); - //Set edit key - setEditKey(session, editConfiguration, vreq); + //edit key now set in the edit request dispatch controller return editConfiguration; } @@ -307,7 +306,7 @@ public class DefaultAddMissingIndividualFormGenerator implements EditConfigurati private HashMap generateSparqlForExistingLiterals() { HashMap map = new HashMap(); String query = "PREFIX rdfs: "; - query += "SELECT ?existingName WHERE { ?" + objectVarName + " rdfs:label ?existingName }"; + query += "SELECT ?existingName WHERE { ?" + objectVarName + " rdfs:label ?existingName . }"; map.put("name", query); return map; } @@ -374,9 +373,7 @@ public class DefaultAddMissingIndividualFormGenerator implements EditConfigurati field.setRangeLang(null); field.setLiteralOptions(new ArrayList>()); - - List assertions = new ArrayList(); - assertions.add(getN3ForName()); + fields.put(field.getName(), field); return fields; diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/generators/DefaultDataPropertyFormGenerator.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/generators/DefaultDataPropertyFormGenerator.java index 5fc228d52..b9513ae8a 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/generators/DefaultDataPropertyFormGenerator.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/generators/DefaultDataPropertyFormGenerator.java @@ -93,7 +93,8 @@ public class DefaultDataPropertyFormGenerator extends BaseEditConfigurationGener literalField.setValidators(list( "nonempty" )); editConfiguration.setN3Required(Arrays.asList( dataPropN3 )); } - + //prepare + prepare(vreq, editConfiguration); return editConfiguration; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/generators/DefaultDeleteGenerator.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/generators/DefaultDeleteGenerator.java index bf261cb34..d032c2d0c 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/generators/DefaultDeleteGenerator.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/generators/DefaultDeleteGenerator.java @@ -43,7 +43,7 @@ import edu.cornell.mannlib.vitro.webapp.search.beans.ProhibitedFromSearch; * This is the page to which the user is redirected if they select Delete on the default property form. * */ -public class DefaultDeleteGenerator implements EditConfigurationGenerator { +public class DefaultDeleteGenerator extends BaseEditConfigurationGenerator implements EditConfigurationGenerator { private Log log = LogFactory.getLog(DefaultObjectPropertyFormGenerator.class); private String subjectUri = null; @@ -74,6 +74,8 @@ public class DefaultDeleteGenerator implements EditConfigurationGenerator { editConfiguration = setupEditConfiguration(vreq, session); } editConfiguration.setTemplate(template); + //prepare update? + prepare(vreq, editConfiguration); return editConfiguration; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/generators/InstitutionalInternalClassForm.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/generators/InstitutionalInternalClassForm.java index 6aafcf931..d2c085ace 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/generators/InstitutionalInternalClassForm.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/generators/InstitutionalInternalClassForm.java @@ -16,7 +16,7 @@ import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.Field; * * */ -public class InstitutionalInternalClassForm implements EditConfigurationGenerator { +public class InstitutionalInternalClassForm extends BaseEditConfigurationGenerator implements EditConfigurationGenerator { String INTERNAL_CLASS_ANNOTATION_URI= ""; @@ -47,6 +47,8 @@ public class InstitutionalInternalClassForm implements EditConfigurationGenerato editConfig.setUrlPatternToReturnTo("/siteAdmin"); editConfig.setSubmitToUrl("/edit/process"); + //prepare + prepare(vreq, editConfig); return editConfig; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/controller/EditRequestDispatchController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/controller/EditRequestDispatchController.java index d47ea41f0..2c192e640 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/controller/EditRequestDispatchController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/controller/EditRequestDispatchController.java @@ -150,29 +150,6 @@ public class EditRequestDispatchController extends FreemarkerHttpServlet { //put edit configuration in session so it can be accessed on form submit. EditConfigurationVTwo.putConfigInSession(editConfig, session); - - Model model = (Model) getServletContext().getAttribute("jenaOntModel"); - - if( editConfig.getSubjectUri() == null) - editConfig.setSubjectUri( EditConfigurationUtils.getSubjectUri(vreq)); - if( editConfig.getPredicateUri() == null ) - editConfig.setPredicateUri( EditConfigurationUtils.getPredicateUri(vreq)); - - String objectUri = EditConfigurationUtils.getObjectUri(vreq); - Integer dataKey = EditConfigurationUtils.getDataHash(vreq); - if (objectUri != null && ! objectUri.trim().isEmpty()) { - // editing existing object - if( editConfig.getObject() == null) - editConfig.setObject( EditConfigurationUtils.getObjectUri(vreq)); - editConfig.prepareForObjPropUpdate(model); - } else if( dataKey != null ) { // edit of a data prop statement - //do nothing since the data prop form generator must take care of it - editConfig.prepareForDataPropUpdate(model, vreq.getWebappDaoFactory().getDataPropertyDao()); - } else{ - //this might be a create new or a form - editConfig.prepareForNonUpdate(model); - } - return editConfig; }