Class: Gentable

otris.gadget.gui. Gentable

To use this gadget you have to implement a gadgetAction with the name gentableDefinition
which returns the gentable definition in the typical xml format (See the example below for details).
You can use the following default button actions (function-Tag) appendNewRow, cloneRow,deleteRow,moveUpRow and
moveDownRow in your xml structure.

XML Example (See gentable documentation for details):

<?xml version="1.0" encoding="UTF-8"?>
<table_def name="otris_gadgetGentable">
    <xmlfield>xmlfield</xmlfield>
    <alwaysShowToolbar>false</alwaysShowToolbar>
    <storeFormat>json</storeFormat>
    <field number="1">
        <label>de:Konto;en:account</label>
        <title>account</title>
        <type>NUMBER</type>
        <width>90</width>
        <maxLength>10</maxLength>
        <editable>true</editable>
    </field>
    ...
    <button>
        <label>de:Neue Zeile;en:New row</label>
        <function>appendNewRow</function>
    </button>
...    
</table_def>

Constructors

Name Type Description
viewId string optional

The viewId of the gadget object (The viewId specifies the destination in the DOM. This destination must exist otherwise the gadget is not rendered.)

  • Since:
    • Documents 5.0d HF2
Example
// #import "Gadget_API_Controller"
function gadgetGentableExample() {
    this.execute = function() {
        gentableGadget = new otris.gadget.gui.Gentable();
        // definition name for caching (tomcat cache)
        gentableGadget.setDefinitionName("myFirstGentableDefinition");
        // set custom store options
        gentableGadget.setStore({type : "field", fieldName: gadgetContext.fieldName });
        // define the height of the grid
        gentableGadget.setStyle("height", "200px");
        return gentableGadget.transfer();
    };
};
// gadgetAction which returns the gentable definition 
function gentableDefinition() {
    this.execute = function() {
        var xmlFile, xmlString = "";
        try {
            xmlFile = new File("C:\\development\\gadgetGentableDefinitions\\myFirstDef.xml", "r");
            if (!xmlFile.ok()) {
                throw xmlFile.error();
            }
            while (!xmlFile.eof()) {
                xmlString += xmlFile.readLine();
            }
            return xmlString;
        }
        catch (ex) {
            throw ex;
        }
        finally {
            xmlFile && xmlFile.close();
        }
    };
};

Extends

Methods

inherited addClientFunction(clientFunction)

Adds a JavaScript Function to this Transferable Object. When the Object is transfered to the client the functions added to this Object will be available on the client side.

Name Type Description
clientFunction function

The function to be added to the clientFunctions of this Object. (Can be a JavaScript Function or an Object returned by otris.gadget.util.FunctionUtils.getFunctionObject)

inherited addContainerButton(buttonConfig){object}

Adds a container button.
If the gadget is displayed in a dialog the container buttons are rendered as dialog buttons (bottom right corner of the dialog).
Otherwise the container buttons are ignored

Name Type Description
buttonConfig object

button config object

Name Type Default Description
id string

button id

label string

button label

clickFunction string

name of the client function to execute on click

disabled boolean false optional
  • Since:
    • Documents 5.0e
Returns:
Type Description
object buttonConfig
Example
// Alternative gadget action button
gadgetForm.addContainerButton({ id: "myCustomSaveButton", label: "Speichern", clickFunction: "saveGadgetData" });
gadgetForm.addClientFunction(function saveGadgetData(event) {
  var gForm = documentsContext.getGadgetContext().getClientObject();
  gForm.submitForm({ gadgetAction: "processForm" }, { showBusyPanel: true });
});

inherited addPdfButton(config)

Adds a button to download the displayed gadget as pdf. The button will show on hover in the left top corner of the gadget.

Name Type Description
config object optional

config object

Name Type Default Description
filename string content.pdf optional

filename of the pdf for download

buttonStyle string left: 200px; optional

style for the pdf button to be applied to

  • Since:
    • Documents 5.0d
Example
myGadget.addPdfButton({filename: "myCustomFilename.pdf", buttonStyle: "left: 200px; });

inherited addSettings(option)

Adds a setting (an option that can be defined by the user) to the gadget.

Name Type Description
option GadgetSetting | Array.<GadgetSetting>

the setting(s) to add to the gadget.

  • Since:
    • Documents 5.0a

inherited onGadgetLoad(onloadHandler)

Sets an onLoad handler for the Gadget. The handler is executed when the gadget is displayed at the client.

Name Type Description
onloadHandler function | string

the handler to be executed (must be either a javascript function or a string representing a function)

inherited setContainerButtons(containerButtonConfigs)

Set the container buttons.
Please note that existing default buttons are removed by this operation.

Name Type Description
containerButtonConfigs Array.<object>

array of button config objects

Name Type Default Description
id string

button id

label string

button label

clickFunction string

name of the client function to execute on click

disabled boolean false optional

inherited setContextData(contextData)

Set additional data which is serialized with JSON.stringify() and then transferred to the client
On the client side the the context data is accessible with the GadgetContext

Name Type Description
contextData any

the context data

  • Since:
    • Documents 5.0c
Example
var htmlGadget = new otris.gadget.gui.HTML("<h1>Only a simple example</h1>");
var myGadgetData = {
    mySpecialId: 44137,
    myIndexArray: [1,7,6,3,2],
    myTitle: "A special GadgetTitle"
};
htmlGadget.setContextData(myGadgetData);

setDefinitionName(name)

Sets the definitionName for the gentable definition. This name is used to cache the
definition. It is NOT used for the gentable registry. The registry only uses the name
defined in the XML definition (<table_def name="nameUsedForRegistry">...).

Name Type Description
name string

definition name used as a cache key

setEditable(editable)

Enable/disable the edit mode of the grid

Name Type Description
editable boolean

set the grid editable or readonly

inherited setNavibarEntry(gadgetConfig, label)

Add a navibar entry. Define a gadgetConfig that reloads the gadget.
Only works if the gadget ist displayed in main list view area.

Name Type Description
gadgetConfig object

gadgetConfig

label string optional

label for the navibar entry (defaults to the gadget title)

  • Since:
    • Documents 5.0e

setStore(store)

Define which store type the grid should use.

Name Type Description
store object

store configuration

Name Type Description
type string

sort type field or script

fieldName string optional

field name for the store type field

scriptName string optional

script name for the store type script (Script parameter gentableData contains the grid data)

scriptParams object optional

optional script parameter

Example
// Using a file field to store the grid data
gadgetGrid.setStore({
    type : "field",
    fieldName: gadgetContext.fieldName + "Data"
});

// Using a script to store the grid data
gadgetGrid.setStore({
    type : "script",
    scriptName: "propertyGridSaveScript",
    scriptParams: {
        myCustomParam : "myParamValue"
    } 	
});
// The script is called with a parameter `gentableData` which contains the grid data

inherited setStyle(name, value)

Sets a style attribute of the html container

Name Type Description
name string

the name of the style parameter (i.e. "height")

value string

the value of the style parameter (i.e. "100px")

inherited setTitle(title)

Sets the Title of the Form

Name Type Description
title string

the title of the form (will be displayed as the window header on dashboards)

inherited store(key, value)

Stores data that can later be accessed on client side.
ATTENTION: The store used in this method is global.
Use setContextData to store data for this gadget instance.

Name Type Description
key string

the key to store the data

value any

the value, or object that should be stored

inherited transfer()

Creates the Transfer object to send to the client