Create New Grid

    This script creates a new grid view.

    Defaults for this script are set for the Pubchem demo data tree in the sample project included in IJC.

    import com.chemaxon.ijc.form.api.*
    import com.chemaxon.ijc.form.api.renderers.*
    import com.chemaxon.ijc.commons.datarequest.api.FieldReference
    
    ety = dataTree.rootVertex.entity
    
    // Main script body
    grid = new Grid(createTableWidget())
    DFViews.create(dataTree, grid, "Sample grid")
    
    // create table widget
    def createTableWidget() {
        table = new TableWidget()
        table.setRowHeight(100)
        table.setHeaderRows(2)
        Border border = new Border()
        border.setBorderType(Border.BorderType.EMPTY)
        table.setBorder(border)
    
        table.addColumn(newFieldReference("Structure"), new StructureRenderer())
        table.addColumn(newFieldReference("CdId"), new IntegerRenderer())
        table.addColumn(newFieldReference("Mol Weight"), new FloatRenderer())
        table.addColumn(newFieldReference("Formula"), new TextRenderer())
        table.addColumn(newFieldReference("IUPAC name"), new MultiLineTextRenderer())
        table.addColumn(newFieldReference("Donors"), new IntegerRenderer())
        table.addColumn(newFieldReference("Acceptors"), new IntegerRenderer())
        table.addColumn(newFieldReference("Rot bonds"), new IntegerRenderer())
        table.addColumn(newFieldReference("DB regid"), new MultiLineTextRenderer())
        table.addColumn(newFieldReference("DB name"), new TextRenderer())
        table.addColumn(newFieldReference("XLogP"), new FloatRenderer())
    
        return table
    }
    
    def newFieldReference(name) {
      field = ety.fields.items.find { it.name == name }
      new FieldReference(ety.id, field.id)
    }