Changeset 534
- Timestamp:
- Jun 4, 2010, 4:00:31 PM (13 years ago)
- Location:
- trunk/grails-app
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/grails-app/controllers/dbnp/importer/ImporterController.groovy
r492 r534 60 60 61 61 session.importer_header = ImporterService.getHeader(wb, 0) 62 session.importer_study = Study.get(params.study.id.toInteger()) 62 63 session.importer_template_id = params.template_id 63 session.importer_study = Study.get(params.study.id.toInteger())64 64 session.importer_workbook = wb 65 65 … … 81 81 82 82 session.importer_header = ImporterService.getHeader(wb, 0, entityClass) 83 session.importer_study = Study.get(params.study.id.toInteger()) 83 84 session.importer_template_id = params.template_id 84 85 session.importer_workbook = wb … … 193 194 194 195 /** 195 * @param columnproperty array of columns containing index and property _id196 * @param columnproperty array of columns containing index and property (represented as a String) 196 197 * 197 198 */ 198 199 def saveproperties = { 199 200 200 params.columnproperty.index.each { columnindex, property_id -> 201 session.importer_header[columnindex.toInteger()].property = TemplateField.get(property_id.toInteger()) 201 params.columnproperty.index.each { columnindex, property -> 202 def template = Template.get(session.imported_template_id) 203 204 def entityClass = Class.forName(session.importer_header[columnindex.toInteger()].entity.getName(), true, this.getClass().getClassLoader()) 205 def entityObj = entityClass.newInstance(template:template) 206 207 208 session.importer_header[columnindex.toInteger()].property = property 209 210 //if it's an identifier set the mapping column true or false 211 entityObj.giveFields().each { 212 (it.preferredIdentifier && (it.name==property)) ? session.importer_header[columnindex.toInteger()].identifier = true : false 213 } 202 214 } 203 215 -
trunk/grails-app/domain/dbnp/importer/MappingColumn.groovy
r496 r534 3 3 4 4 /** 5 * name: column name 6 * t ype: GCSF field type5 * name: column name (in Excel) 6 * templatefieldtype: GSCF field type 7 7 * entity: GSCF entity class 8 8 * property: GSCF template field … … 16 16 dbnp.studycapturing.TemplateFieldType templatefieldtype 17 17 Class entity 18 TemplateFieldproperty18 String property 19 19 Integer index 20 20 String value -
trunk/grails-app/services/dbnp/importer/ImporterService.groovy
r489 r534 56 56 def header = [:] 57 57 def df = new DataFormatter() 58 def property = new dbnp.studycapturing.TemplateField()58 def property = new String() 59 59 60 60 for (HSSFCell c: sheet.getRow(datamatrix_start)) { … … 68 68 switch (datamatrix_celltype) { 69 69 case HSSFCell.CELL_TYPE_STRING: 70 //parse cell value as double 71 def parsable = true 72 def templatefieldtype = TemplateFieldType.STRING 73 74 // is this string perhaps a double? 75 try { 76 formatValue(c.getStringCellValue(), TemplateFieldType.DOUBLE) 77 } catch (NumberFormatException nfe) { parsable = false } 78 finally { 79 if (parsable) templatefieldtype = TemplateFieldType.DOUBLE 80 } 81 70 82 header[index] = new dbnp.importer.MappingColumn(name:df.formatCellValue(headercell), 71 templatefieldtype: TemplateFieldType.STRING,83 templatefieldtype:templatefieldtype, 72 84 index:index, 73 85 entity:theEntity, … … 290 302 291 303 switch(mc.entity) { 292 case Study : (record.any {it.getClass()==mc.entity}) ? 0 : record.add(study) 293 if (mc.identifier) { study.title = value; break } 294 study.setFieldValue(mc.property.name, value) 295 break 296 case Subject : (record.any {it.getClass()==mc.entity}) ? 0 : record.add(subject) 297 if (mc.identifier) { subject.name = value; break } 298 subject.setFieldValue(mc.property.name, value) 299 break 300 case Event : (record.any {it.getClass()==mc.entity}) ? 0 : record.add(event) 301 if (mc.identifier) { event.eventdescription = value; break } 302 event.setFieldValue(mc.property.name, value) 303 break 304 case Sample : (record.any {it.getClass()==mc.entity}) ? 0 : record.add(sample) 305 if (mc.identifier) { sample.name = value; break } 306 sample.setFieldValue(mc.property.name, value) 304 case Study : (record.any {it.getClass()==mc.entity}) ? 0 : record.add(study) 305 study.setFieldValue(mc.property, value) 306 break 307 case Subject : (record.any {it.getClass()==mc.entity}) ? 0 : record.add(subject) 308 subject.setFieldValue(mc.property, value) 309 break 310 case Event : (record.any {it.getClass()==mc.entity}) ? 0 : record.add(event) 311 event.setFieldValue(mc.property, value) 312 break 313 case Sample : (record.any {it.getClass()==mc.entity}) ? 0 : record.add(sample) 314 sample.setFieldValue(mc.property, value) 307 315 break 308 316 case Object : // don't import … … 319 327 * @return object corresponding to the TemplateFieldType 320 328 */ 321 def formatValue(String value, TemplateFieldType type) {322 switch (type) {323 case TemplateFieldType.STRING: return value.trim()324 case TemplateFieldType.TEXT: return value.trim()325 case TemplateFieldType.INTEGER: return Integer.valueOf(value.replaceAll("[^0-9]",""))326 case TemplateFieldType.FLOAT: return Float.valueOf(value.replace(",","."));327 case TemplateFieldType.DOUBLE: return Double.valueOf(value.replace(",","."));328 case TemplateFieldType.STRINGLIST: return value.trim()329 case TemplateFieldType.ONTOLOGYTERM: return value.trim()330 case TemplateFieldType.DATE: return value331 default: return value332 }329 def formatValue(String value, TemplateFieldType type) throws NumberFormatException { 330 switch (type) { 331 case TemplateFieldType.STRING : return value.trim() 332 case TemplateFieldType.TEXT : return value.trim() 333 case TemplateFieldType.INTEGER : return Integer.valueOf(value.replaceAll("[^0-9]","")) 334 case TemplateFieldType.FLOAT : return Float.valueOf(value.replace(",",".")); 335 case TemplateFieldType.DOUBLE : return Double.valueOf(value.replace(",",".")); 336 case TemplateFieldType.STRINGLIST : return value.trim() 337 case TemplateFieldType.ONTOLOGYTERM : return value.trim() 338 case TemplateFieldType.DATE : return value 339 default : return value 340 } 333 341 } 334 342 } -
trunk/grails-app/taglib/dbnp/importer/ImporterTagLib.groovy
r492 r534 84 84 def allfieldtypes = attrs['allfieldtypes'] 85 85 86 def templatefields = (allfieldtypes=="true") ? t.fields : t.fields.findAll { it.type == mc.templatefieldtype } 86 //def templatefields = (allfieldtypes=="true") ? t.fields : t.fields.findAll { it.type == mc.templatefieldtype } 87 def templatefields = (allfieldtypes=="true") ? 88 t.fields + mc.entity.giveDomainFields() : 89 t.fields.findAll { it.type == mc.templatefieldtype } + mc.entity.giveDomainFields() 87 90 88 91 (mc.identifier) ? out << "<select style=\"font-size:10px\" name=\"\" disabled><option>Identifier</option></select>": … … 102 105 def res = "<select style=\"font-size:10px\" name=\"${name}.index.${columnIndex}\">" 103 106 104 options.each { f -> 105 res += "<option value=\"${f.id}\"" 106 //res += (e.type.toInteger() == selected) ? " selected" : "" 107 res += ">${f}</option>" 107 options.each { f -> 108 res+= "<option value=\"${f.name}\">" 109 110 res+= (f.preferredIdentifier) ? 111 "${f.name} (IDENTIFIER)</option>" : 112 "${f.name}</option>" 108 113 } 109 114 -
trunk/grails-app/views/importer/index_simple.gsp
r496 r534 72 72 </td> 73 73 <td> 74 <g:select name="study _id" from="${studies}" optionKey="id"/>74 <g:select name="study.id" from="${studies}" optionKey="id"/> 75 75 </td> 76 76 </tr>
Note: See TracChangeset
for help on using the changeset viewer.