Changeset 245


Ignore:
Timestamp:
Mar 8, 2010, 5:53:30 PM (7 years ago)
Author:
tabma
Message:
  • columnmapping added
Location:
trunk/grails-app
Files:
6 edited

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>
Note: See TracChangeset for help on using the changeset viewer.