Create New Tabbed Pane

This script creates a new tabbed pane in a form 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
form = new Form()
tabbedPane = createTabbedPaneWidget()
label = createLabelWidget("TabbedPane demo")

firstTab = tabbedPane.getTabAt(0)
firstTab.addWidget(label)
firstTab.addWidget(createTableWidget())
firstTab.addWidget(createTextBoxWidget())

secondTab = tabbedPane.getTabAt(1)
secondTab.addWidget(label)
secondTab.addWidget(createMolWidget())
secondTab.addWidget(createSheetWidget())
secondTab.setBackgroundColor("#FFFFFF")

form.addWidget(tabbedPane)
DFViews.create(dataTree, form, "TabbedPane form")


// widgets creation methods
def createTabbedPaneWidget() {
    tabbedPane = new TabbedPaneWidget("First tab")
    tabbedPane.setSize(410, 630)
    tabbedPane.addTab(new PanelWidget("Second tab"))
    return tabbedPane
}

def createLabelWidget(label) {
    widget = new LabelWidget(label)
    widget.setSize(160, 50)
    widget.setFont(new Font("Arial", Font.Style.BOLD, 16))
    return widget
}

def createTableWidget() {
    table = new TableWidget()
    table.setPosition(0, 50)
    table.setSize(400, 500)
    table.setRowHeight(60)

    table.addColumn(newFieldReference("CdId"), new IntegerRenderer())
    structureColumn = table.addColumn(newFieldReference("Structure"), new StructureRenderer())
    structureColumn.setColumnWidth(150)
    table.addColumn(newFieldReference("Formula"), new TextRenderer())
    table.addColumn(newFieldReference("Donors"), new IntegerRenderer())

    return table
}

def createTextBoxWidget() {
    widget = new TextBoxWidget()
    widget.setPosition(0, 550)
    widget.setSize(400, 50)

    widget.setField(newFieldReference("IUPAC name"))
    widget.setRenderer(new TextRenderer())
    return widget
}

def createMolWidget() {
    widget = new MolWidget()
    widget.setPosition(0, 50)
    widget.setSize(300, 300)

    widget.setField(newFieldReference("Structure"))
    widget.setRenderer(new StructureRenderer())
    return widget
}

def createSheetWidget() {
    sheet = new SheetWidget()
    sheet.setPosition(0, 350)
    sheet.setSize(300, 250)

    sheet.addRow(newFieldReference("CdId"), new IntegerRenderer())
    sheet.addRow(newFieldReference("Structure"), new StructureRenderer())
    sheet.addRow(newFieldReference("Formula"), new TextRenderer())
    sheet.addRow(newFieldReference("Donors"), new IntegerRenderer())

    return sheet
}

def newFieldReference(name) {
  field = ety.fields.items.find { it.name == name }
  new FieldReference(ety.id, field.id)
}


Versions: This script has been tested on IJC version 6.1. This script will not work in IJC versions prior 6.1.



Copyright © 1999-2012 ChemAxon Ltd.    All rights reserved.