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
This commit is contained in:
parent
5e89e6f4ff
commit
535f07ceaa
8 changed files with 46 additions and 34 deletions
|
@ -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<String> to List<String>.
|
||||
* Only accepts String and List<String> as multi args.
|
||||
|
|
|
@ -81,7 +81,8 @@ public class DateTimeIntervalFormGenerator extends
|
|||
|
||||
//Adding additional data, specifically edit mode
|
||||
addFormSpecificData(conf, vreq);
|
||||
|
||||
//Prepare
|
||||
prepare(vreq, conf);
|
||||
return conf;
|
||||
|
||||
}
|
||||
|
|
|
@ -64,7 +64,8 @@ public class DateTimeValueFormGenerator extends BaseEditConfigurationGenerator
|
|||
|
||||
//Adding additional data, specifically edit mode
|
||||
addFormSpecificData(conf, vreq);
|
||||
|
||||
//prepare
|
||||
prepare(vreq, conf);
|
||||
return conf;
|
||||
}
|
||||
|
||||
|
|
|
@ -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<String, String> generateSparqlForExistingLiterals() {
|
||||
HashMap<String, String> map = new HashMap<String, String>();
|
||||
String query = "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> ";
|
||||
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<String>>());
|
||||
|
||||
List<String> assertions = new ArrayList<String>();
|
||||
assertions.add(getN3ForName());
|
||||
|
||||
fields.put(field.getName(), field);
|
||||
|
||||
return fields;
|
||||
|
|
|
@ -93,7 +93,8 @@ public class DefaultDataPropertyFormGenerator extends BaseEditConfigurationGener
|
|||
literalField.setValidators(list( "nonempty" ));
|
||||
editConfiguration.setN3Required(Arrays.asList( dataPropN3 ));
|
||||
}
|
||||
|
||||
//prepare
|
||||
prepare(vreq, editConfiguration);
|
||||
return editConfiguration;
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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= "<http://example.com/vivo#ChangeMeUniveristy>";
|
||||
|
||||
|
@ -47,6 +47,8 @@ public class InstitutionalInternalClassForm implements EditConfigurationGenerato
|
|||
editConfig.setUrlPatternToReturnTo("/siteAdmin");
|
||||
|
||||
editConfig.setSubmitToUrl("/edit/process");
|
||||
//prepare
|
||||
prepare(vreq, editConfig);
|
||||
return editConfig;
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue