From 69e9c7f261d068e5204cec60b5c0c803802628fb Mon Sep 17 00:00:00 2001 From: hjkhjk54 Date: Wed, 23 Nov 2011 22:07:25 +0000 Subject: [PATCH] updates to submission including addition of uris/literals to form to support dynamic field addition such as in add associated concept --- .../BaseEditSubmissionPreprocessorVTwo.java | 3 - .../VTwo/MultiValueEditSubmission.java | 76 +++++++++++-------- 2 files changed, 43 insertions(+), 36 deletions(-) diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/VTwo/BaseEditSubmissionPreprocessorVTwo.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/VTwo/BaseEditSubmissionPreprocessorVTwo.java index 1a3f8911e..8f08b6138 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/VTwo/BaseEditSubmissionPreprocessorVTwo.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/VTwo/BaseEditSubmissionPreprocessorVTwo.java @@ -2,9 +2,6 @@ package edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo; -import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.EditConfiguration; - - public abstract class BaseEditSubmissionPreprocessorVTwo implements EditSubmissionVTwoPreprocessor { diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/VTwo/MultiValueEditSubmission.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/VTwo/MultiValueEditSubmission.java index 90fa9aa7f..b9e4c53c7 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/VTwo/MultiValueEditSubmission.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/VTwo/MultiValueEditSubmission.java @@ -73,19 +73,7 @@ public class MultiValueEditSubmission { for( String var: editConfig.getUrisOnform() ){ String[] valuesArray = queryParameters.get( var ); //String uri = null; - List values = (valuesArray != null) ? Arrays.asList(valuesArray) : null; - if( values != null && values.size() > 0){ - //Iterate through the values and check to see if they should be added or removed from form - urisFromForm.put(var, values); - for(String uri : values) { - if( uri != null && uri.length() == 0 && editConfig.getNewResources().containsKey(var) ){ - log.debug("A new resource URI will be made for var " + var + " since it was blank on the form."); - urisFromForm.remove(var); - } - } - } else { - log.debug("No value found for query parameter " + var); - } + addUriToForm(editConfig, var, valuesArray); } this.literalsFromForm =new HashMap>(); @@ -97,26 +85,8 @@ public class MultiValueEditSubmission { } else if( field.getEditElement() != null ){ log.debug("skipping field with edit element, it should not be in literals on form list"); }else{ - String[] valuesArray = queryParameters.get(var); - List valueList = (valuesArray != null) ? Arrays.asList(valuesArray) : null; - if( valueList != null && valueList.size() > 0 ) { - List literalsArray = new ArrayList(); - //now support multiple values - for(String value:valueList) { - value = EditN3Utils.stripInvalidXMLChars(value); - //Add to array of literals corresponding to this variable - if (!StringUtils.isEmpty(value)) { - literalsArray.add(createLiteral( - value, - field.getRangeDatatypeUri(), - field.getRangeLang())); - } - } - literalsFromForm.put(var, literalsArray); - - }else{ - log.debug("could not find value for parameter " + var ); - } + String[] valuesArray = queryParameters.get(var); + addLiteralToForm(editConfig, field, var, valuesArray); } } @@ -294,4 +264,44 @@ public class MultiValueEditSubmission { public void setEntityToReturnTo(String string) { entityToReturnTo = string; } + + //Added specifically to help with "dynamic" forms such as addition of concept + public void addLiteralToForm(EditConfigurationVTwo editConfig, FieldVTwo field, String var, String[] valuesArray) { + List valueList = (valuesArray != null) ? Arrays.asList(valuesArray) : null; + if( valueList != null && valueList.size() > 0 ) { + List literalsArray = new ArrayList(); + //now support multiple values + for(String value:valueList) { + value = EditN3Utils.stripInvalidXMLChars(value); + //Add to array of literals corresponding to this variable + if (!StringUtils.isEmpty(value)) { + literalsArray.add(createLiteral( + value, + field.getRangeDatatypeUri(), + field.getRangeLang())); + } + } + literalsFromForm.put(var, literalsArray); + + }else{ + log.debug("could not find value for parameter " + var ); + } + } + //Add literal to form + //Add uri to form + public void addUriToForm(EditConfigurationVTwo editConfig, String var, String[] valuesArray) { + List values = (valuesArray != null) ? Arrays.asList(valuesArray) : null; + if( values != null && values.size() > 0){ + //Iterate through the values and check to see if they should be added or removed from form + urisFromForm.put(var, values); + for(String uri : values) { + if( uri != null && uri.length() == 0 && editConfig.getNewResources().containsKey(var) ){ + log.debug("A new resource URI will be made for var " + var + " since it was blank on the form."); + urisFromForm.remove(var); + } + } + } else { + log.debug("No value found for query parameter " + var); + } + } }