From 3bf1f4b7898daec824134a68d804da9c09e92cd3 Mon Sep 17 00:00:00 2001 From: tworrall Date: Mon, 21 Nov 2011 18:35:09 +0000 Subject: [PATCH] NIHVIVO-3162 and 3245 date time interval form gernerator and template --- .../DateTimeIntervalFormGenerator.java | 45 ++++- .../DateTimeValueFormGenerator.java | 2 +- .../edit/forms/dateTimeIntervalForm.ftl | 169 +++++++----------- 3 files changed, 97 insertions(+), 119 deletions(-) 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 1745ec095..c34f1a553 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 @@ -2,15 +2,23 @@ package edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators; +import java.util.ArrayList; import java.util.Arrays; +import java.util.HashMap; +import java.util.List; import javax.servlet.http.HttpSession; +import com.hp.hpl.jena.rdf.model.Model; +import com.hp.hpl.jena.vocabulary.XSD; + import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; import edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.DateTimeWithPrecisionVTwo; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationVTwo; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.FieldVTwo; +import edu.cornell.mannlib.vitro.webapp.utils.FrontEndEditingUtils.EditMode; +import edu.cornell.mannlib.vitro.webapp.utils.generators.EditModeUtils; public class DateTimeIntervalFormGenerator extends BaseEditConfigurationGenerator implements EditConfigurationGenerator { @@ -58,21 +66,28 @@ public class DateTimeIntervalFormGenerator extends conf.addSparqlForExistingUris( "endField-precision", existingEndPrecisionQuery); - conf.addField(new FieldVTwo().setName("startField"). - setEditElement(new DateTimeWithPrecisionVTwo(null, + FieldVTwo startField = new FieldVTwo().setName("startField"); + startField.setEditElement(new DateTimeWithPrecisionVTwo(startField, VitroVocabulary.Precision.SECOND.uri(), - VitroVocabulary.Precision.NONE.uri()))); - conf.addField(new FieldVTwo().setName("endField"). - setEditElement(new DateTimeWithPrecisionVTwo(null, - VitroVocabulary.Precision.SECOND.uri(), - VitroVocabulary.Precision.NONE.uri()))); + VitroVocabulary.Precision.NONE.uri())); + + FieldVTwo endField = new FieldVTwo().setName("endField"); + endField.setEditElement(new DateTimeWithPrecisionVTwo(endField, + VitroVocabulary.Precision.SECOND.uri(), + VitroVocabulary.Precision.NONE.uri())); + conf.addField(startField); + conf.addField(endField); + + //Adding additional data, specifically edit mode + addFormSpecificData(conf, vreq); + return conf; } final static String n3ForStart = - "?subject <" + toDateTimeInterval + " ?intervalNode . \n" + + "?subject <" + toDateTimeInterval + "> ?intervalNode . \n" + "?intervalNode a <" + intervalType + "> . \n" + "?intervalNode <" + intervalToStart + "> ?startNode . \n" + "?startNode a <" + dateTimeValueType + "> . \n" + @@ -134,8 +149,20 @@ public class DateTimeIntervalFormGenerator extends "SELECT ?existingEndPrecision WHERE { \n" + "?subject <" + toDateTimeInterval + "> ?existingIntervalNode . \n" + "?intervalNode a <" + intervalType + "> . \n" + - "intervalNode <" + intervalToEnd + "> ?endNode . \n" + + "?intervalNode <" + intervalToEnd + "> ?endNode . \n" + "?endNode a <" + dateTimeValueType + "> . \n" + "?endNode <" + dateTimePrecision + "> ?existingEndPrecision . }"; + //Adding form specific data such as edit mode + public void addFormSpecificData(EditConfigurationVTwo editConfiguration, VitroRequest vreq) { + HashMap formSpecificData = new HashMap(); + formSpecificData.put("editMode", getEditMode(vreq).name().toLowerCase()); + editConfiguration.setFormSpecificData(formSpecificData); + } + + public EditMode getEditMode(VitroRequest vreq) { + List predicates = new ArrayList(); + predicates.add(toDateTimeInterval); + return EditModeUtils.getEditMode(vreq, predicates); + } } 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 77ea3979f..81d531a4d 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 @@ -101,7 +101,7 @@ public class DateTimeValueFormGenerator extends BaseEditConfigurationGenerator public EditMode getEditMode(VitroRequest vreq) { List predicates = new ArrayList(); - predicates.add(dateTimeValue); + predicates.add(toDateTimeValue); return EditModeUtils.getEditMode(vreq, predicates); } } \ No newline at end of file diff --git a/webapp/web/templates/freemarker/edit/forms/dateTimeIntervalForm.ftl b/webapp/web/templates/freemarker/edit/forms/dateTimeIntervalForm.ftl index 221fcc90b..447cabdfd 100644 --- a/webapp/web/templates/freemarker/edit/forms/dateTimeIntervalForm.ftl +++ b/webapp/web/templates/freemarker/edit/forms/dateTimeIntervalForm.ftl @@ -1,126 +1,77 @@ <#-- $This file is distributed under the terms of the license in /doc/license.txt$ --> -<#-- Custom form for adding date time intervals --> +<#-- Template for adding/editing time values --> -<#if editConfig.object?has_content> - <#assign editMode = "edit"> -<#else> - <#assign editMode = "add"> - +<#--Retrieve certain edit configuration information--> +<#assign editMode = editConfiguration.pageData.editMode /> +<#assign htmlForElements = editConfiguration.pageData.htmlForElements /> <#if editMode == "edit"> <#assign titleVerb="Edit"> - <#assign submitButtonText="Edit Date/Time Interval"> + <#assign submitButtonText="Edit Date/Time Value"> <#assign disabledVal="disabled"> <#else> <#assign titleVerb="Create"> - <#assign submitButtonText="Create Date/Time Interval"> + <#assign submitButtonText="Create Date/Time Value"> <#assign disabledVal=""/> -startField- + +<#--If edit submission exists, then retrieve validation errors if they exist--> +<#if editSubmission?has_content && editSubmission.submissionExists = true && editSubmission.validationErrors?has_content> + <#assign submissionErrors = editSubmission.validationErrors/> + -

${titleVerb} date time interval for ${subjectName}

+

${titleVerb} date time value for ${editConfiguration.subjectName}

+ +<#--Display error messages if any--> +<#if submissionErrors?has_content> + +
- -
-

Start

- - +

+<#--Need to draw edit elements for dates here--> + <#if htmlForElements?keys?seq_contains("startField")> + Start  ${htmlForElements["startField"]} + +

+ <#if htmlForElements?keys?seq_contains("endField")> + End  ${htmlForElements["endField"]} + - - - - - -
-
- - - - - - - - -
- -
-

End

- - - - - - - - -
-
- - - - - - - - -
-

- + + + + or + + Cancel +

+
- or +${stylesheets.add('', + '')} - Cancel -

- \ No newline at end of file +${scripts.add('', + '', + '')} \ No newline at end of file