Changeset 414


Ignore:
Timestamp:
May 12, 2010, 12:12:33 PM (7 years ago)
Author:
duh
Message:
  • moved term / ontology setter to TemplateEntity? for transparent handling of ontology fields
Location:
trunk/grails-app
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/grails-app/controllers/dbnp/studycapturing/WizardController.groovy

    r411 r414  
    619619                                // iterate through fields (= template fields and domain properties)
    620620                                flow.subjects[ subjectId ].giveFields().each() { subjectField ->
    621                                         def value = params.get( 'subject_' + subjectId + '_' + subjectField.escapedName() )
    622 
    623 /*** THIS SHOULD PROBABLY MOVE INTO TEMPLATE ENTITY ***/
    624                                         // handle ontology terms
    625                                         if (value instanceof String && subjectField.type.toString() == "ONTOLOGYTERM") {
    626                                                 // iterate through ontologies and find term
    627                                                 subjectField.ontologies.each() { ontology ->
    628                                                         def term = ontology.giveTermByName( value )
    629 
    630                                                         // found a term?
    631                                                         if (term) {
    632                                                                 value = term
    633                                                         }
    634                                                 }
    635                                         }
    636 /*** END ***/
    637 
    638621                                        // set the field
    639622                                        flow.subjects[ subjectId ].setFieldValue(
    640623                                                subjectField.name,
    641                                                 value
     624                                                params.get( 'subject_' + subjectId + '_' + subjectField.escapedName() )
    642625                                        )
    643626                                }
  • trunk/grails-app/domain/dbnp/studycapturing/TemplateEntity.groovy

    r413 r414  
    320320         */
    321321        def setFieldValue(String fieldName, value) {
    322 
     322                // get the template field
    323323                TemplateField field = getField(this.giveFields(),fieldName)
    324324
     
    332332                }
    333333
    334                 // Convenience setter for dates: handle string values for date fields
     334                // Magic setter for dates: handle string values for date fields
    335335                if (field.type == TemplateFieldType.DATE && value && value.class == String) {
    336336                        // a string was given, attempt to transform it into a date instance
     
    351351                }
    352352
     353                // Magic setter for ontology terms: handle string values
     354                if (field.type == TemplateFieldType.ONTOLOGYTERM && value && value.class == String) {
     355                        // iterate through ontologies and find term
     356                        field.ontologies.each() { ontology ->
     357                                def term = ontology.giveTermByName(value)
     358
     359                                // found a term?
     360                                if (term) {
     361                                        value = term
     362                                }
     363                        }
     364                }
     365
    353366                // Set the field value
    354367                if (isDomainField(field)) {
    355                         if (!value) {
     368                        // got a value?
     369                        if (value) {
     370                                println "setting [" + ((super) ? super.class : '??') + "] domain field: [" + fieldName + "] ([" + value.toString() + "] of type [" + value.class + "])"
     371
     372                                // set value
     373                                this[field.name] = value
     374                        } else {
    356375                                println "removing [" + ((super) ? super.class : '??') + "] domain field: [" + fieldName + "]"
    357376
    358377                                // remove value
    359378                                this[field.name] = null
    360                         } else {
    361                                 println "setting [" + ((super) ? super.class : '??') + "] domain field: [" + fieldName + "] ([" + value.toString() + "] of type [" + value.class + "])"
    362 
    363                                 // set value
    364                                 this[field.name] = value
    365379                        }
    366380                } else {
     
    386400        /**
    387401         * Check if a given field is a domain field
    388          * @param field
     402         * @param TemplateField         field instance
    389403         * @return boolean
    390404         */
     
    393407        }
    394408
    395         boolean isDomainField(String fieldName) {
     409        /**
     410         * Check if a given field is a domain field
     411         * @param String        field name
     412         * @return boolean
     413         */     boolean isDomainField(String fieldName) {
    396414                return this.giveDomainFields()*.name.contains(fieldName)
    397415        }
Note: See TracChangeset for help on using the changeset viewer.