Changeset 414

Show
Ignore:
Timestamp:
12-05-10 12:12:33 (4 years ago)
Author:
duh
Message:

- moved term / ontology setter to TemplateEntity? for transparent handling of ontology fields

Location:
trunk/grails-app
Files:
2 modified

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        }