Page History
Table of Contents | ||
---|---|---|
|
Stoc |
---|
Purpose
The Solution Model is a feature since Servoy version 4.1 which allows you to manipulate different kinds of objects on-the-fly through scripting. You can perform actions such as:
...
To create a new blue line border of width 1 and use that on an existing form:
Code Block |
---|
var border = solutionModel.createLineBorder(1, 'blue');
var form = solutionModel.getForm('myForm);
form.borderType = border;
|
...
To create a new calculation with name myCalculation on table customers of server example_data which returns 1:
Code Block |
---|
var calculation = solutionModel.newCalculation('function myCalculation() { return 1; }', JSVariable.INTEGER, 'db:/example_data/customers');
|
To get the existing calculation myCalculation on table customers of server example_data:
Code Block |
---|
var calculation = solutionModel.getCalculation('myCalculation', 'db:/example_data/customers');
|
To output whether or not this calculation is a stored one:
Code Block |
---|
application.output('Stored calculation: ' + calculation.isStored();
|
To remove existing calculation myCalculation:
Code Block |
---|
solutionModel.removeCalculation('myCalculation', 'db:/example_data/customers');
|
...
To create a new stylesheet with name myStyle with a default style class for forms:
Code Block |
---|
var style = solutionModel.newStyle('myStyle' 'form { background-color: transparent; }';
|
To get existing stylesheet myStyle:
Code Block |
---|
var style = solutionModel.getStyle('myStyle')
|
To add a default style class for fields:
Code Block |
---|
style.text += 'field { background-color: blue; }';
|
To remove existing stylesheet myStyle:
Code Block |
---|
solutionModel.removeStyle('myStyle');
|
...
To create a new global variable with name myGlobalVariable of type TEXT:
Code Block |
---|
var globalVariable = solutionModel.newGlobalVariable('myGlobalVariable', JSVariable.TEXT);
|
To get existing global variable myGlobalVariable:
Code Block |
---|
var globalVariable = solutionModel.getGlobalVariable('myGlobalVariable');
|
To change its default value to abc:
Code Block |
---|
myGlobalVariable.defaultValue = 'abc';
|
To remove existing global variable myGlobalVariable:
Code Block |
---|
solutionModel.removeGlobalVariable('myGlobalVariable');
|
...
To create a new global method with name myGlobalMethod:
Code Block |
---|
var globalMethod = solutionModel.newGlobalMethod('function myGlobalMethod() { currentcontroller.newRecord(); }');
|
To get existing global method myGlobalMethod:
Code Block |
---|
var globalMethod = solutionModel.getGlobalMethod('myGlobalMethod');
|
To make it appear in the menu:
Code Block |
---|
globalMethod.showInMenu = true;
|
To remove existing global method myGlobalMethod:
Code Block |
---|
solutionModel.removeGlobalMethod('myGlobalMethod');
|
...
To create a new form with name myForm:
Code Block |
---|
var form = solutionModel.newForm('myForm');
|
To get existing form myForm:
Code Block |
---|
var form = solutionModel.getForm('myForm');
|
To disable its navigator:
Code Block |
---|
form.navigator = SM_DEFAULTS.NONE;
|
...
To clone existing form myForm to cloned form myClonedForm:
Code Block |
---|
var form = solutionModel.getForm('myForm');
var clonedForm = solutionModel.cloneForm('myClonedForm', form);
|
To remove existing form myForm:
Code Block |
---|
var success = history.removeForm('myForm');
if (success) {
solutionModel.removeForm('myForm');
}
|
To revert existing form myForm to its original design-time state:
Code Block |
---|
var success = history.removeForm('myForm');
if (success) {
solutionModel.revertForm('myForm');
}
|
...
To retrieve component with name myButton:
Code Block |
---|
var component = form.getComponent('myButton');
|
To hide the element:
Code Block |
---|
component.visible = true;
|
To retrieve all available components on the form:
Code Block |
---|
var components = form.getComponents();
|
To change the width of all elements to 200:
Code Block |
---|
for (var i = 0; i < components.length; i++) {
components[i].width = 200;
}
|
To clone an existing component:
Code Block |
---|
solutionModel.cloneComponent('myClonedComponent', component);
|
...
To create a new form variable with name myFormVariable:
Code Block |
---|
var formVariable = form.newFormVariable('myFormVariable', JSField.TEXT_FIELD);
|
To get existing form variable myFormVariable:
Code Block |
---|
var formVariable = form.getFormVariable('myFormVariable');
|
To change its default value to abc:
Code Block |
---|
formVariable.defaultValue = 'abc';
|
To remove existing form variable myFormVariable:
Code Block |
---|
form.removeFormVariable('myFormVariable');
|
...
To create a new form method with name myFormMethod:
Code Block |
---|
var formMethod = form.newFormMethod('function myFormMethod() {controller.newRecord(); }');
|
To get existing form method myFormMethod:
Code Block |
---|
var formMethod = form.getFormMethod('myformMethod');
|
To make it appear in the menu:
Code Block |
---|
globalMethod.showInMenu = true;
|
To remove existing form method myFormMethod:
Code Block |
---|
form.removeFormMethod('myFormMethod');
|
...
To create a new body:
Code Block |
---|
var part = form.newPart(JSPart.BODY, 20);
|
To retrieve the existing body part:
Code Block |
---|
var part = form.getPart(JSPart.BODY);
|
To change its background to white:
Code Block |
---|
part.background = 'white';
|
To remove the existing body part:
Code Block |
---|
form.removePart(JSPart.BODY);
|
...
To create a tree view with name myBean:
Code Block |
---|
var bean = form.newBean('myBean', 'com.servoy.extensions.beans.dbtreeview.DBTreeView', 200, 200, 300, 300);
|
To get existing bean myBean:
Code Block |
---|
form.getBean('myBean');
|
To change its anchoring to top, left and bottom:
Code Block |
---|
bean.anchors = SM_ANCHOR.NORTH | SM_ANCHOR.WEST | SM_ANCHOR.SOUTH;
|
To remove existing bean myBean:
Code Block |
---|
form.removeBean('myBean');
|
...
To create a new button with name myButton and text Text and attaching global method myGlobalMethod to it:
Code Block |
---|
var globalMethod = solutionModel.getGlobalMethod('myGlobalMethod');
var button = form.newButton('Text', 0, 0, 80, 20, globalMethod);
button.name = 'myButton';
|
To get existing button myButton:
Code Block |
---|
var button = solutionModel.getButton('myButton');
|
To change its height to 30:
Code Block |
---|
button.height = 30;
|
To remove existing button myButton:
Code Block |
---|
form.removeButton('myButton');
|
...
To create a new text field with name myField with form variable myFormVariable as its dataprovider:
Code Block |
---|
var formVariable = form.getFormVariable('myFormVariable');
var field = form.newField(formVariable, JSField.TEXT_FIELD, 0, 0, 100, 200);
field.name = 'myField';
|
To get existing field myField:
Code Block |
---|
var field = form.getField('myField');
|
To change its display type to a text area:
Code Block |
---|
field.displayType = JSField.TEXT_AREA;
|
To remove existing field myField:
Code Block |
---|
form.removeField('myField');
|
...
To create a new label with name myLabel with text Text:
Code Block |
---|
var label = form.newLabel('Text', 0, 0, 100, 20);
label.name = 'myLabel';
|
To get existing label myLabel:
Code Block |
---|
var label = form.getLabel('myLabel');
|
To change its horizontal alignment to center:
Code Block |
---|
label.horizontalAlignment = SM_ALIGNMENT.CENTER;
|
To remove existing label myLabel:
Code Block |
---|
form.removeLabel('myLabel');
|
...
To create a new portal with name myPortal based on relation myRelation:
Code Block |
---|
var relation = solutionModel.getRelation('myRelation');
var portal = form.newPortal('myPortal', relation, 0, 0, 500, 500);
|
To get existing portal myPortal:
Code Block |
---|
var portal = form.getPortal('myPortal');
|
To make it resizable:
Code Block |
---|
portal.resizable = true;
|
To remove existing portal myPortal:
Code Block |
---|
form.removePortal('myPortal');
|
...
To create a new tab with name myTabPanel:
Code Block |
---|
var tabPanel = form.newTabPanel('myTabPanel', 0, 0, 500, 500);
|
To get existing tab panel myTabPanel:
Code Block |
---|
var tabPanel = form.getTabPanel('myTabPanel);
|
To add a new tab with name myTab based on relation myRelation:
Code Block |
---|
var relation = solutionModel.getRelation('myRelation');
var tab = tabPanel.newTab('myTab', 'Text', myRelatedForm, relation);
|
To remove existing tab panel myTabPanel:
Code Block |
---|
form.removeTabPanel('myTabPanel');
|
...
To create a new relation with name myRelation between tables customers and orders:
Code Block |
---|
var relation = solutionModel.newRelation('myRelation', 'db:/example_data/customers', 'db:/example_data/orders', JSRelation.INNER_JOIN);
|
To get existing relation myRelation:
Code Block |
---|
var relation = solutionModel.getRelation('myRelation');
|
To create new a new relation item based on fields id and customer_id:
Code Block |
---|
relation.newRelationItem('id', '=', 'customer_id');
|
To remove existing relation myRelation:
Code Block |
---|
solutionModel.removeRelation('myRelation');
|
...
To create a new value list with name myValueList:
Code Block |
---|
var valueList = solutionModel.newValueList('myValueList', JSValueList.CUSTOM_VALUES);
|
To get existing value list myValueList:
Code Block |
---|
var valueList = solutionModel.getValueList('myValueList');
|
To set custom values for the value list:
Code Block |
---|
valueList.customValues = '1\n2';
|
To remove existing value list myValueList:
Code Block |
---|
solutionModel.removeValueList('myValueList');
|
...
To create new media with name myMedia:
Code Block |
---|
var media = solutionModel.newMedia('myMedia', plugins.http.getMediaData('http://www.servoy.com/images/logo_servoy.gif'));
|
To get existing media myMedia:
Code Block |
---|
var media = solutionModel.getMedia('myMedia');
|
To change its content:
Code Block |
---|
media.bytes = plugins.http.getMediaData('http://servoy.com/images/headerimages/open_source.jpg');
|
To remove existing media myMedia:
Code Block |
---|
solutionModel.removeMedia('myMedia');
|
...