Page History
...
The function description in the handlers section can be just "function" or a more complex type describing the arguments and return type
{ "parameters: [{start: 'int'}, {end: 'int'}], returns: 'string'}
type
"functionName": {
"returns": "string",
"parameters":[
{
"name":"start",
"type":"int"
}
...
"name":"end",
"type":"int"
}
]
},
The signature description should also be like the complex function type, describing the arguments and return type
"functionName": {
"returns": "string",
"parameters":[
{
"name":"start: 'int'}, {end: 'int'}], returns: 'string'",
"type":"int"
}
{
"name":"end",
"type":"int"
}
]
}
Example
As an example we could have a textfield Tab Panel that has a definition like this
Code Block | ||
---|---|---|
| ||
{ "name": '"svy-textfield'tabpanel", "displayName": 'Text input', definition: 'servoydefault/textfield/textfield.js', libraries: ['servoydefault/textfield/formatting.js','//netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.css'], model: { toolTipText: 'string', background: 'color', dataProviderID: { 'type':'dataprovider', 'ondatachange': { 'onchange':'onDataChangeMethodID', 'callback':'onDataChangeCallback'}}, format: {'for':'dataProviderID' ,'type':'format'}, // value will be just the format string as a whole }, handlers: { onDataChangeMethodID: 'function', }, api: { requestFocus: { }, getSelectedText: { returns: 'string' }, setSelection: { parameters: [{start: 'int'}, {end: 'int'}] } } |
...
"Tab Panel",
"icon": "servoydefault/tabpanel/tabs.gif",
"definition": "servoydefault/tabpanel/tabpanel.js",
"serverscript": "servoydefault/tabpanel/tabpanel_server.js",
"libraries": ["servoydefault/tabpanel/accordionpanel.css"],
"model":
{
"background" : "color",
"borderType" : "border",
"enabled" : {"type":"boolean", "default":true},
"fontType" : "font",
"foreground" : "color",
"horizontalAlignment" : {"type" :"int", "scope" :"design", "values" :[{"LEFT":2}, {"CENTER":0},{"RIGHT":4}],"default" : -1},
"location" : "point",
"readOnly" : "boolean",
"selectedTabColor" : "color",
"size" : {"type" :"dimension", "default" : {"width":300, "height":300}},
"styleClass" : { "type" :"styleclass", "scope" :"design", "values" :[]},
"tabIndex" : "int",
"tabOrientation" : {"type" :"int", "scope" :"design", "values" :[{"default" :0}, {"TOP":1}, {"HIDE":-1}]},
"tabSeq" : {"type" :"tabseq", "scope" :"design"},
"tabs" : "tab[]",
"transparent" : "boolean",
"visible" : {"type":"boolean", "default":true}
},
"handlers":
{
"onChangeMethodID" : "function",
"onTabChangeMethodID" : "function"
},
"api":
{
"addTab": {
"returns": "boolean",
"parameters":[
{
"name":"form/formname",
"type":"object []"
},
{
"name":"name",
"type":"object",
"optional":"true"
}
]
},
"getMaxTabIndex": {
"returns": "int"
}
},
"types": {
"tab": {
"model": {
"name": "string",
"containsFormId": "form",
"text": "tagstring",
"relationName": "relation",
"active": "boolean",
"foreground": "color",
"disabled": "boolean",
"imageMediaID": "string",
"mnemonic": "string"
}
}
}
} |