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)
}