Changeset 559


Ignore:
Timestamp:
Jun 11, 2010, 4:22:26 PM (9 years ago)
Author:
roberth
Message:

Added boolean template field type

Location:
trunk/grails-app
Files:
1 added
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/grails-app/domain/dbnp/studycapturing/TemplateEntity.groovy

    r550 r559  
    2121        Map templateDoubleFields = [:]
    2222        Map templateDateFields = [:]
     23        Map templateBooleanFields = [:]
    2324
    2425        // N.B. If you try to set Long.MIN_VALUE for a reltime field, an error will occur
     
    3940                templateRelTimeFields: long,
    4041                templateFileFields: String,
     42                templateBooleanFields: boolean,
    4143                systemFields: TemplateField
    4244        ]
     
    291293
    292294                        // got an error, or not?
     295                        return (!error)
     296                })
     297                templateBooleanFields(validator: { fields, obj, errors ->
     298                        def error = false
     299                        fields.each { key, value ->
     300                                if (value) {
     301                                        fields[key] = true;
     302                                } else {
     303                                        fields[key] = false;
     304                                }
     305                        }
    293306                        return (!error)
    294307                })
     
    324337                        case TemplateFieldType.ONTOLOGYTERM:
    325338                                return templateTermFields
     339                        case TemplateFieldType.BOOLEAN:
     340                                return templateBooleanFields
    326341                        default:
    327342                                throw new NoSuchFieldException("Field type ${fieldType} not recognized")
     
    402417                // get the template field
    403418                TemplateField field = getField(this.giveFields(), fieldName)
     419
     420                if( field.type == TemplateFieldType.BOOLEAN ) {
     421                        println( 'Boolean: ' + fieldName + " - " + value );
     422                }
    404423
    405424                // Convenience setter for template string list fields: find TemplateFieldListItem by name
     
    531550                                                this[field.name] = 0;
    532551                                                break;
     552                                        case [ 'BOOLEAN' ]:
     553                                                this[field.name] = false;
     554                                                break;
    533555                                        default:
    534556                                                this[field.name] = null
  • trunk/grails-app/domain/dbnp/studycapturing/TemplateFieldType.groovy

    r550 r559  
    1818        DATE('Date'),
    1919        RELTIME('Relative time'), // relative date, e.g. days since start of study
    20         FILE('File')
     20        FILE('File'),
     21        BOOLEAN('Boolean')
    2122    // TODO: add a timezone-aware date type to use for study start date
    2223    // TODO: add a BOOLEAN type (checkbox)
     
    2930
    3031        static list() {
    31                 [STRING, TEXT, INTEGER, FLOAT, DOUBLE, STRINGLIST, ONTOLOGYTERM, DATE, RELTIME, FILE]
     32                [STRING, TEXT, INTEGER, FLOAT, DOUBLE, STRINGLIST, ONTOLOGYTERM, DATE, RELTIME, FILE, BOOLEAN]
    3233        }
    3334
     
    5253                        case FILE:
    5354                                return ""
     55                        case BOOLEAN:
     56                                return false;
    5457                        default:
    5558                                throw new NoSuchFieldException("Field type ${fieldType} not recognized")
  • trunk/grails-app/taglib/dbnp/studycapturing/WizardTagLib.groovy

    r557 r559  
    977977                                                ){helpText}
    978978                                                break
     979                                        case ['BOOLEAN']:
     980                                                inputElement = (renderType == 'element') ? 'checkBoxElement' : 'checkBox'
     981                                                out << "$inputElement"(
     982                                                        description: ucName,
     983                                                        name: prependName + it.escapedName(),
     984                                                        value: fieldValue
     985                                                ){helpText}
     986                                                break
    979987                                        default:
    980988                                                // unsupported field type
Note: See TracChangeset for help on using the changeset viewer.