source: trunk/grails-app/domain/dbnp/studycapturing/TemplateFieldType.groovy @ 1153

Last change on this file since 1153 was 1153, checked in by robert@…, 7 years ago

Removed template field types INTEGER and FLOAT (since LONG and DOUBLE accept more values and keeping both is confusing for the user), see ticket #154.
Also included message in the template editor to show that a string can only contain max 255 characters. (see ticket #193)

  • Property svn:keywords set to Author Date Rev
File size: 2.0 KB
Line 
1package dbnp.studycapturing
2
3/**
4 * Enum describing the type of a TemplateField.
5 *
6 * Revision information:
7 * $Rev: 1153 $
8 * $Author: robert@isdat.nl $
9 * $Date: 2010-11-17 10:34:09 +0000 (wo, 17 nov 2010) $
10 */
11public enum TemplateFieldType implements Serializable {
12        STRING('String','Text', 'max 255 chars'),                                                                                       // string
13        TEXT('Long string', 'Text', 'unlimited'),                                                                               // text
14        //INTEGER('Integer number', 'Numerical', '1'),                                                  // integer
15        //FLOAT('Floating-point number', 'Numerical', '1.0'),                                           // float
16        DOUBLE('Floating point number', 'Numerical', '1.0'),                                    // double
17        STRINGLIST('List of items', 'Text', ''),                                                                // string list
18        ONTOLOGYTERM('Ontology Reference', 'Other', ''),                                                // ontology reference
19        DATE('Date', 'Date', '2010-01-01'),                                                                             // date
20        RELTIME('Relative time', 'Date', '3 days'),                                                             // relative date, e.g. days since start of study
21        FILE('File', 'Other', '')               ,                                                                               // file
22        BOOLEAN('Boolean', 'Other', 'true/false'),                                                              // boolean
23        TEMPLATE('Template', 'Other', ''),                                                                              // template
24        MODULE('Module', 'Other', ''),                                                                                  // third party connected module,
25        LONG('Integer number', 'Numerical', '100')                                                              // long
26    // TODO: add a timezone-aware date type to use for study start date
27
28    String name
29        String category
30        String example
31
32        TemplateFieldType(String name) {
33                this.name = name
34        }
35        TemplateFieldType(String name, String category, String example) {
36                this.name = name
37                this.category = category
38                this.example = example
39        }
40
41        static list() {
42                [STRING, TEXT, DOUBLE, STRINGLIST, ONTOLOGYTERM, DATE, RELTIME, FILE, BOOLEAN, TEMPLATE, MODULE, LONG]
43        }
44
45        def getDefaultValue() {
46                switch (this) {
47                        case [STRING, TEXT]:
48                                return ""
49                        case DOUBLE:
50                                return Double.MIN_VALUE
51                        case STRINGLIST:
52                                return null
53                        case ONTOLOGYTERM:
54                                return null
55                        case DATE:
56                                return null
57                        case RELTIME:
58                                return null
59                        case FILE:
60                                return ""
61                        case BOOLEAN:
62                                return false
63                        case TEMPLATE:
64                                return null
65                        case MODULE:
66                                return null
67                        case LONG:
68                                return Long.MIN_VALUE
69                        default:
70                                throw new NoSuchFieldException("Field type ${fieldType} not recognized")
71                }
72        }
73}
Note: See TracBrowser for help on using the repository browser.