We are pleased to announce the immediate availability of Servoy 4.0.0 final.
Make a backup of your current Servoy installation (directory and database) before installing.
This version is available through the download page on the Servoy website (developer section). This version will also be available through auto update shortly.
Changes in Developer since RC5
[fix] mac debug smart client paint issue
[fix] case 144506: solution firstForm property falls back to 'Unresolved'
[fix] case 146430: element properties that reference non-existent other elements fall back to 'Unresolved'
[fix] case 142141: find/read only components enabled
[fix] case 146699: JavaScript calls from Java bean listeners or links in html area were not triggering the debugger
[fix] case 127555: history.remove(formname) now also destroys the form instance
[fix] case 146559: style not imported with solution
[fix] case 146560: column validation not checked out after import
[fix] developer icon in dock on macs
Changes in previous releases
http://forum.servoy.com/viewtopic.php?t=10777
Changes in Client
[new] form onUnLoad event, see unload event on a form
[new] case 119296: application.setStatusText(...) is now also working in web client
[new] case 127512: range check in find / search to detect bogus ranges
[new] function getDataProviderID(...) added for labels and buttons
[new] two new security methods: security.setSecuritySettings(...) and security.getElementUUIDs(...)
[new] case 120402: tabIndex property on tabpanel accepts tab name as input
[new] case 123401: allow the use of global methods in bgColorCalc property, see forum
[new] case 130080: application.getScreenWidth()/Height() now working in webclient
[new] case 47296: removeTableFilterParam(...), based on name which is a new optional argument in addTableFilterParam(...)
[enh] case 39682: convert foundset to dataset, databaseManager.convertToDataSet(...) now support the specification of column names [enh] print preview initial zoom can be specified as an argument
[enh] labelfor labels to become headers in tableview to apply styles
[enh] Servoy sequence range extended to long (64-bits)
[enh] UUID column support (as 16 bytes binary, 36 char string of native db type) and UUID sequence generator in case of primary key [enh] initialsort property in relations
[enh] case 127292: HTTP put and cookie support on the HTTP plugin [enh] form transparency can be set
[enh] support for script based tableview column resize/move, by changing the element location and size
[enh] support for user based tableview column resize/move, by dragging and resizing header elements
[enh] mail plugin can be put in debug mode to make testing with real data easier
[chg] case 134920: shorten the deeplink URL for SmartClients startup, can now be: http://<host>:<port>/servoy-client/<solution>.jnlp?m=<method>&a=<arg>
[chg] HTTP plugin charset support: getLastPageCharset() and poster.setCharset(charset)
[fix] case 131433: find/search triggers edit mode under certain circumstances
[fix] case 134575: OR-search sometimes returns records that do not match tableFilterParam
[fix] limit the width of the type ahead's field popup
[fix] case 132080: web client: non editable image_media field shows a white space
[fix] case 134157: web client: view of a checkbox is not correct
[fix] case 99940: right to left is not applied to the navigator and toolbars
[fix] case 138405: SSL use is not shown in smart client status bar when using the HTTP tunnel over HTTPS
[fix] case 75087,135421: asynchronous loading for HTML documents to speed up displaying
[fix] RTF area uses ISO 8859-1. So do not use OS default encoding to decode the contents...
[fix] case 52335: web client: tableView headers: text too large causes only header to grow, not column
[fix] case 142881: bold, italic, underline buttons don't work with RTF area
Debug Scripting Console
To use the debug scripting display/evaluate view (as seen in classic Developer), in the Servoy Eclipse developer, while in "debug" perspective, click Window -> "Show View" -> Other -> ScriptDebugConsole.
Timezone Behavior Change
Important behavior change: by default, the property "servoy.use.client.timezone" is set to true.
Property description:
When true the client timezone will be used to convert to the server/database timezone. It is highly recommended to use true as default to always see the correct/same dates/times in all clients (regardless of their timezone).
Impact:
Dates entered into the database in the past by clients in different timezones, without running with this property enabled, will be incorrect due to timezone calulation differences.
Easier way of setting Tab Sequence
Tab sequences can be set by pressing <ctrl>, then clicking the elements in the desired order while holding down the ctrl button. Then you can right click any of the selected items and select "Set tab sequence" to set the tab sequence to match the order in which you just clicked the items.
Error handling changes
In Servoy 4.0, the error handling of record deletion was slightly changed:
In Servoy 3.5, when deletion of records fails because of servoy-application-checks, an error message is logged, the delete is rejected and scripting methods return value false.
In Servoy 4.0, when deletion of records fails because of servoy-application-checks, a ServoyException is thrown. When an on-error method is defined, the exception will be passed to the method.
New Exception error codes
As a consequence of the error handling change described above, two new ServoyException error codes have been defined:
error 331: NO_PARENT_DELETE_WITH_RELATED_RECORDS :
i18nmessage: servoy.foundset.error.noParentDeleteWithRelatedrecords
error 332: DELETE_NOT_GRANTED :
i18nmessage: servoy.foundset.error.deleteNotGranted
Rhino Update
The Javascript engine we use, Rhino, has been updated from version 1.5R3 to 1.6R7. This fixes a number of issues:
1. .toFixed() now works as expected (http://forum.servoy.com/viewtopic.php?t ... ht=tofixed)
2. method.apply() now works as expected (http://forum.servoy.com/viewtopic.php?p=51648)
3. many regex issues have been fixed
It also adds some very interesting features:
1. XML support (http://www.w3schools.com/e4x/e4x_howto.asp, http://www.w3schools.com/e4x/e4x_example.asp )
2. Getter and Setter support on Objects (http://developer.mozilla.org/en/docs/Co ... nd_Setters )
API changes
[new] case 49029: added add/removeColumn methods to JSDataSet
Form Variables
Form instance variables are a new feature in Servoy 4.0. These variables are visible to all the form functions, but not to global functions or functions from other forms.
Form Inheritance
With Servoy 4.0, forms can inherit layout, variables and functions from other forms. Sub-forms receive part definitions from their super form and can add parts to the end of the list of form parts. For instance, if form B inherits from form A and form A has a leading grand total, form B cannot add a title, but it can add a body.
Overloaded super form methods can be called using "_super". This will prevent possible future clashes with "super", which is expected to become a reserved word in the JavaScript 2.0 specification.
Transparency Setting for Title Borders
The transparency setting for title borders is honored. By default, transparency has always been on. This means you should check your solutions for title borders that unintentionally have become transparent.
New Sample Solutions
Two new solutions are shipped: servoy_sample_bug_db and servoy_example_styles. The servoy_sample_bug_db solution is a sample solution that implements a bug tracking application; The servoy_example_styles solution demonstrates the use of styles.