Changeset 245

Show
Ignore:
Timestamp:
08-03-10 17:53:30 (4 years ago)
Author:
tabma
Message:

- columnmapping added

Location:
trunk/grails-app
Files:
6 modified

Legend:

Unmodified
Added
Removed
  • trunk/grails-app/controllers/dbnp/importer/ImporterController.groovy

    r215 r245  
    5757 
    5858    /** 
    59     * User has assigned all entities to the columns and continues to the next step (assigning properties to columns) 
     59    * User has assigned all entities and celltypes to the columns and continues to the next step (assigning properties to columns) 
    6060    * 
    61     * @param entity list of entities 
     61    * @param entity list of entities and columns it has been assigned to (columnindex:entitytype format) 
     62    * @param celltype list of celltypes and columns it has been assigned to (columnindex:celltype format) 
    6263    * @return properties page 
    6364    */ 
    6465    def savepreview = {  
    6566        def entities  = request.getParameterValues("entity") 
     67        def celltypes = request.getParameterValues("celltype") 
     68 
     69        celltypes.each { c -> 
     70            def temp = c.split(":") 
     71             
     72            session.header[temp[0].toInteger()].celltype =  temp[1].toInteger() 
     73        } 
     74 
     75        entities.each { e -> 
     76            def temp = e.split(":") 
     77            Class clazz 
     78            switch (temp[1]) { 
     79                case 0: clazz = Study 
     80                        break 
     81                case 1: clazz = Subject 
     82                        break 
     83                case 2: clazz = Event 
     84                        break 
     85                case 3: clazz = Protocol 
     86                        break 
     87                case 4: clazz = Sample 
     88                        break 
     89                default: clazz = String 
     90            } 
     91            session.header[temp[0].toInteger()].entity = clazz 
     92        } 
    6693 
    6794        // currently only one template is used for all entities 
     
    7299        render(view:"step2", model:[entities:entities, header:session.header, templates:templates]) 
    73100    } 
     101 
     102    /** 
     103    * @param columnproperty array of columns and the assigned property in `column:property_id` format 
     104    * 
     105    */ 
     106    def saveproperties = { 
     107 
     108        /*def columnproperties  = request.getParameterValues("columnproperty") 
     109        columnproperties.each { cp -> 
     110                def temp = cp.split(":") 
     111                session.header[temp[0]] 
     112        }*/ 
     113        for (e in session.header) { 
     114            println e 
     115        } 
     116        render ("properties saved") 
     117    } 
    74118} 
  • trunk/grails-app/domain/dbnp/importer/MappingColumn.groovy

    r190 r245  
    11package dbnp.importer 
    22 
     3/** 
     4* name: column name 
     5* type: GCSF field type 
     6* entity: GSCF entity class 
     7* property: GSCF field property 
     8* celltype: Excel cell type 
     9* index: column index 
     10* value: column value (optional, normally only name is used) 
     11*/ 
    312class MappingColumn { 
    413 
     
    716        Class entity 
    817        String property 
     18        Integer celltype 
     19        Integer index 
     20        String value 
    921 
    1022    static constraints = { 
    1123            name(unique: true) 
    1224    } 
     25 
     26    String toString() { 
     27        return name + "/" + type + "/" + entity + "/" + property + "/" + celltype + "/" + index + "/" + value 
     28    } 
    1329} 
  • trunk/grails-app/services/dbnp/importer/ImporterService.groovy

    r231 r245  
    5656            switch (c.getCellType()) { 
    5757                    case HSSFCell.CELL_TYPE_STRING:                      
    58                         header[c.getColumnIndex()] = new dbnp.importer.Column(value:df.formatCellValue(c), type:datamatrix_celltype); 
     58                        header[c.getColumnIndex()] = new dbnp.importer.MappingColumn(name:df.formatCellValue(c), celltype:datamatrix_celltype); 
    5959                        break 
    6060                    case HSSFCell.CELL_TYPE_NUMERIC: 
    61                         header[c.getColumnIndex()] = new dbnp.importer.Column(value:df.formatCellValue(c), type:datamatrix_celltype); 
     61                        header[c.getColumnIndex()] = new dbnp.importer.MappingColumn(name:df.formatCellValue(c), celltype:datamatrix_celltype); 
    6262                        break 
    6363                    case HSSFCell.CELL_TYPE_BLANK: 
    64                         header[c.getColumnIndex()] = new dbnp.importer.Column(value:df.formatCellValue(c), type:datamatrix_celltype); 
     64                        header[c.getColumnIndex()] = new dbnp.importer.MappingColumn(name:df.formatCellValue(c), celltype:datamatrix_celltype); 
    6565                        break 
    6666                    default: 
    67                         header[c.getColumnIndex()] = new dbnp.importer.Column(value:df.formatCellValue(c), type:datamatrix_celltype); 
     67                        header[c.getColumnIndex()] = new dbnp.importer.MappingColumn(name:df.formatCellValue(c), celltype:datamatrix_celltype); 
    6868                        break 
    6969            } 
  • trunk/grails-app/taglib/dbnp/importer/ImporterTagLib.groovy

    r231 r245  
    1919class ImporterTagLib { 
    2020    static namespace = 'importer' 
    21     def standardentities = [[type:0, name:"Study"], [type:1, name:"Subject"], [type:2, name:"Event"], 
     21    def standardentities = [[type:-1, name:"Don't import"], [type:0, name:"Study"], [type:1, name:"Subject"], [type:2, name:"Event"], 
    2222                        [type:3, name:"Protocol"], [type:4, name:"Sample"]] 
    2323 
     
    4343 
    4444    /** 
    45      * @param entities array of entity:columnindex values 
     45     * @param entities array in the format of columnindex:entitytype format 
    4646     */ 
    4747    def properties = { attrs -> 
     
    5151        attrs['entities'].each { se -> 
    5252            def temp = se.split(":") 
    53             def entity = [type:temp[0],columnindex:temp[1]] 
     53            def entity = [type:temp[1],columnindex:temp[0]] 
    5454            selectedentities.add(entity) 
    5555        } 
     
    6262 
    6363        options.each { e -> 
    64             res += "<option value=\"${e.type}:${customvalue}\"" 
     64            res += "<option value=\"${customvalue}:${e.type}\"" 
    6565            res += (e.type.toInteger() == selected) ? " selected" : "" 
    6666            res += ">${e.name}</option>" 
     
    8484 
    8585        switch (attrs['entitytype']) { 
    86             case 0  : createSelect(-1, "property", t.fields, "1") 
    87                      break 
     86            case 0  : createPropertySelect(attrs['name'], t.fields, columnindex) 
     87                      break 
    8888            case 1  : break 
    8989            case 2  : break 
    9090            case 3  : break 
    91             default : out << createPropertySelect("property", t.fields, columnindex) 
     91            default : out << createPropertySelect(attrs['name'], t.fields, columnindex) 
    9292                     break 
    9393        } 
  • trunk/grails-app/views/importer/common/_preview.gsp

    r215 r245  
    1919          <g:each var="column" in="${header}"> 
    2020              <td class="header"> 
    21                   <b>${column.value.value}</b> 
     21                  <b>${column.value.name}</b> 
    2222              </td> 
    2323          </g:each> 
     
    2828            <g:each var="column" in="${header}"> 
    2929                <td class="header"> 
    30                     <importer:celltypeSelect selected="${column.value.type.toInteger()}" name="celltype" customvalue="${column.key.toString()}"/> 
     30                    <importer:celltypeSelect selected="${column.value.celltype.toInteger()}" name="celltype" customvalue="${column.key.toString()}"/> 
    3131                </td> 
    3232            </g:each> 
  • trunk/grails-app/views/importer/common/_properties.gsp

    r231 r245  
    2424                        <tr> 
    2525                            <td class="header" width="200px"> 
    26                                 <b>${header[selentity.columnindex.toInteger()].value}</b> 
     26                                <b>${header[selentity.columnindex.toInteger()].name}</b> 
    2727                            </td> 
    2828                            <td>                                 
    29                                 <!-- <g:select name="template" from="${templates.fields}"/> --> 
    30                                 <importer:propertyChooser entity="${selentity.type.toLong()}" columnindex="${selentity.columnindex}"/> 
     29                                <importer:propertyChooser name="columnproperty" entity="${selentity.type.toLong()}" columnindex="${selentity.columnindex}"/> 
    3130                            </td> 
    3231                        </tr>