Table of Contents | style | upper-roman
---|
Stoc |
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:
...
The Solution Model is the blueprint of your developed solution. You can modify its blueprint during runtime, but the object still needs to be actually built to become available to the user. Compare it to building a house and where certain rules apply when you want to make changes to the already built house.
...
It's also possible to create new instances of a form within Servoy (by using the function application.createNewFormInstance()). These are copies of the actual house, rather than copies of the blueprint. It is not possible for the Solution Model to grab the properties of these copies, but only from the original. So when you try to grab the new instance of a form by using the Solution Model, then it will retrieve the original form from which the new instance has been created and not the new instance itself.
Even though the Solution Model allows a wide variety of objects that can be manipulated, there are some limitations. The following objects are (currently) not included:
...
Note | ||
---|---|---|
| ||
Manipulating solutions and modules are not applicable for the Solution Model because they are not relevant during deployment. At this point the collection of solutions and modules have become one flat solution. Therefore, no (references to) solutions and modules can be made with the Solution Model. |
...
The Solution Model has certain types of functions:
...
Note | ||
---|---|---|
| ||
As of Servoy version 6 a new method exists, called servoyDeveloper.save(). By running this method in the Debug Client or the Command Console of the Developer, changes by the Solution Model are being pushed back and saved into the worspace. |
This section shows some (simple) examples of how different objects can be controlled with the Solution Model. Per object you will find how to:
...
Code Block |
---|
solutionModel.removeStyle('myStyle'); |
...
To create a new global variable with name myGlobalVariable of type TEXT:
...
Code Block |
---|
solutionModel.removeGlobalVariable('myGlobalVariable'); |
...
To create a new global method with name myGlobalMethod:
...
Note | ||
---|---|---|
| ||
To test to what type of object the retrieved component belongs to, you need to use the JavaScript operator instanceof. For example, if you want to find out if the component is a button, use: component instanceof JSButton |
...
To create a new form variable with name myFormVariable:
...
Code Block |
---|
form.removeFormVariable('myFormVariable'); |
...
To create a new form method with name myFormMethod:
...
Code Block |
---|
form.removeFormMethod('myFormMethod'); |
...
To create a new body:
Code Block |
---|
var part = form.newPart(JSPart.BODY, 20); |
...
Code Block |
---|
form.removePortal('myPortal'); |
...
To create a new tab with name myTabPanel:
...
Code Block |
---|
solutionModel.removeRelation('myRelation'); |
...
To create a new value list with name myValueList:
...