Servoy 3.5.6

We are pleased to announce the immediate availability of Servoy 3.5.6

Make a backup of your current Servoy installation (directory and database) before installing.

This version will be available shortly through auto update for users of 3.5 versions (check via help menu → check for new version)

Changes
[new] case 122988: added global method converter plugin
[new] added ianywhere_utils solution, it can create a new database on Sybase SQL Anywhere
[new] case 121819: custom tableview headers possible via “labelFor” labels

[enh] new parameter for zoom level in controller.showPrintPreview(…)
[enh] new http tunnel version to better support proxies
[enh] case 128595: added solution name to some error messages during solution import
[enh] case 121025: insert/overwrite mode added (especially important for date fields), see below
[enh] case 39761: use field format to upper or lower case field values

[chg] case 119960: search was not disabled when onSearchCmd was set to none, see below
[chg] case 119702: allow loadRecords(…) with custom query without where-clause
[chg] case 126995: empty count aggregation will return 0, even if foundset has no records

[fix] DBTreeView bean update on record changes
[fix] case 119613: after changing the L&F, the boundaries of some dialogs were not removed resulting in a clipped GUI
[fix] case 119565: webclient doesn’t update valuelist fields when shown as radio buttons
[fix] case 114828: added sort direction arrows for tableview columns in rich client
[fix] case 120142: use of display format in non-editable calendar field
[fix] case 113285: pdf_forms plugin was not saving form values when the forms table was using db_ident as key
[fix] case 99929: calendar in webclient only works if field is editable
[fix] Servoy sign-in web page will persist the password field value when a user asks for it in the RememberMe checkbox
[fix] case 118714: made skipping of ‘sys’ tables that are reported as normal tables configurable via admin page
[fix] read-only text_area field also supports onAction event when enter is pressed
[fix] file plugin getDesktopFolder() returned the incorrect result on mac
[fix] case 121625: setBorder(…) takes the old margins into account
[fix] case 121531: when the BODY or HEADER parts had the default color on Mac, they were displayed with white background instead of the default color
[fix] case 122332: File > Import, when failing; leaves transaction open
[fix] case 122359: do not reset db sequence to db identity columns at startup (was happening with PostgreSQL)
[fix] prevent batch processor executing multiple methods at the same time in a single client
[fix] case 121185: on Safari sometimes the tabpanels were not arranged correctly
[fix] case 122266: webclient: same dataprovider used on fields with different formats caused entry issues
[fix] case 123755: web client problems in combination with IE 6
[fix] case 86575: web client should only accept one click for buttons and links
[fix] case 124294: find bug with security permissions on tabpanels
[fix] case 122994: navigating combobox using arrow keys fires onAction and onDataChange
[fix] case 121788: wrong language used with date formats containing day and/or month in web client
[fix] case 124675: stylesheet borders not showing in webclient
[fix] case 124653: rollback not changing the edit icon
[fix] case 124895: rectangle transparency problems
[fix] case 123350: incorrect image alignment in printing
[fix] case 123018: wrong type-ahead field popup dimension
[fix] case 119296: made application.setStatusText(…) work in web client
[fix] case 121347: inMemDataGrid bean: columns only sort once
[fix] case 125599: multiple mouse listeners were registered with a tableview if the form was closed and reopened
[fix] case 126766: can’t create temp file with specific pdf filename if prefix contains less than 3 characters
[fix] case 125382: fix calculation “stored” display GUI flag
[fix] case 120399: button in a tableview needs two clicks to have its action executed
[fix] case 125612: save button in media field sometimes has incorrect image
[fix] corrected sample code in DBTreeView bean
[fix] case 120676: when a component on a form fell outside the visible area of the form and the component was tabbed to, the form did not scroll to make the component visible
[fix] case 128014: file plugin: showFileOpenDialog(…) with file filter doesn’t show directories
[fix] case 126830: when autosave is disabled, databaseManager.getChangedRecordData(…) always returned an empty dataset
[fix] better support for remote executing a method inside an existing rich client through the webstart url by use of cookies
[fix] case 125137: multiline label changes position if rotated (90,270) on record/listview
[fix] case 119583: webclient type-ahead could not handle values with trailing spaces
[fix] case 128898: stricter check for non-sql identifiers to be quoted before sending to database (like at-signs)
[fix] sybase wouldn’t be installed on 64-bit Intel Macs
[fix] case 39878: calendar in rich client: today is selected in a brighter color
[fix] case 128274: when reading JPEG files in Java 5, the image quality was lost (at least for certain JPEG files). In Java 1.4 and Java 6 it all worked fine. Added a workaround to make it work also in Java 5
[fix] case 127074: dialect issue with Sybase ASE when using aggregates
[fix] case 128293: added tooltip/sample code for setI18NMessagesFilter(…), made i18nPanel/dialogs handle filters better
[fix] case 130811: “unexpected element” exception when importing solutions
[fix] case 126540: inconsistent behavior of insert procedure on SQL-server 2000
[fix] case 129346: unwanted spaces and new lines in rtf area
[fix] case 130236: reorderable flag ignored in portals
[fix] case 130892: prevent setting of empty string tooltip
[fix] aliases generated for sql joins were too long for certain databases
[fix] case 129194: in webclient, filtered out the backspace key on readonly fields where the user could otherwise enter text. This prevents the users from trying to delete the text in a readonly field and being taken to the previous page in web client
[fix] case 116600: ‘Could not update columninfo, column has none’ on import of solution (issue related to temp table support)
[fix] case 116925: web client in IE: when showing a modal form in dialog, the parent window goes blank
[fix] case 120629: field shows too small in webclient
[fix] case 120729: alignment controls not working in HTML area
[fix] case 129011: after showing a dialog with text toolbar, all consecutive dialogs seem to have a text toolbar
[fix] case 129044: select solution dialog doesn’t jump/scroll to selected solution

HTTP tunnel change
With Servoy 3.5.6, switching on the http tunnel has become a lot easier. Configuration changes are no longer needed to turn on the tunnel. Note that for servers updated via auto-update, the configuration files have not changed. Should you wish to switch on the tunnel on such a server, you should follow the old guidelines as posted with the original 3.5 release.
The new guidelines are as follows:

  1. Open /servoy.properties and add the following line:
    SocketFactory.rmiServerFactory=com.servoy.j2db.server.rmi.tunnel.ServerTunnelRMISocketFactoryFactory

  2. Macintosh ONLY:
    Open servoy_server.sh
    Change the line that starts with “java” so that it starts with:
    java -Djava.net.preferIPv4Stack=true

  3. [Re]start Servoy.

Smart Client Insert/Overwrite mode
In smart client, you can now switch between insert and overwrite mode with the insert key. By default, datefields are in overwrite mode as they always were but now a field that is in overwrite mode will not delete characters by pressing delete or backspace. The cursor will just move one character to the left. You still can delete everything by selecting it all and pressing delete. All other fields are by default in insert mode, but can now be switched to overwrite.

Search Behavior Change
Servoy search now behaves as advertised. With onSearch set to ‘none’, the user will not be allowed to leave find mode using enter or F3. You could add a button/script to allow the user to leave the field. Please check your solutions for this before using Servoy 3.5.6 in a production environment.

Sample Solution Changes
The sample crm has been updated to demonstrate a more desirable way to handle database transactions.

Previous release
http://forum.servoy.com/viewtopic.php?t=9995

Thanks Guys
I was working with RTF last night and the extra line bug was driving me crazy
well done

Standing ovation here. Best update ever guys.

Many thanks!

Dean Westover
Choices Software, Inc.

Hello

svroemisse:
We are pleased to announce the immediate availability of Servoy 3.5.6

Just the first things I noticed on a quick test (on a Mac) with the new 3.5.6 version:

svroemisse:
[new] case 121819: custom tableview headers possible via “labelFor” labels

May be my assumption is wrong, but I don’t see a labelFor property for my fields on a table view!? Where can I set custom tableview headers for fields?

svroemisse:
[fix] case 114828: added sort direction arrows for tableview columns in rich client

Nice to see that addition. Unfortunatly, the sort arrow direction is wrong (at least on the Mac), it’s just the opposite of how it’s standard on the Mac.
And, when sorting a column, the column appearance get’s changed (to some ugly button style appearance)! Also the height of the header row becomes 2 pixels higher. The appearance and height of the column must not change when sorting.
May I wish for a bit a bigger triangle? I think it’s very small and nearly visible (my opinion only). Or even better use the standard triangle of the corresponding OS. Yes, it must/seems to be possible, please see my screenshot in this thread: http://forum.servoy.com/viewtopic.php?t … t+triangle, they appeared there, so it’s no magic .-) The column headers even can get the (OS delivered) colour, although in the example there are all blue instead of only the sorted one.

And when I am at it, would it be possible to put above and below the slider on a table view the same visual footer/header appearance element as the columns are - now it is the default background. Not a big thing but just doesn’t look too professional (and looks as something is “wrong” or “forgotten” at that place).

Best regards, Robert

Might be a coincidence but . . . .

The Web/Rich Client icons did not work when I tested 3.5.6 Developer - and also could not access Servoy-Admin. Now the icons & Admin are also not working in my 3.5.3 and 3.5.5 versions.

Edit/Prefs: start two-way socket … is ticked, start data & http service… is ticked, HTTP/RMI ports are 8080/1099. Clicking [Test] button does not seem to have an effect as message stays on ‘HttpService is not running’

Have restarted computer but no change.

Also noted that when select Quit Servoy nothing happens until I also click the red dot to close the window.

Additional info - downloaded to create a fresh install but could not get past the 2nd installer screen as it was blank except for text at top ‘Please read the following licence agreement carefully’ and the QUIT button. Eventually updated the 3.5.5 version.

Maybe my computer is saying ‘don’t work on a Saturday afternoon’ - but any other suggestions welcomed.

Thanks

Servoy Developer
Version 3.5.6-build 519
Java version 1.4.2-85 (Mac OS X)

Aaahhh - another self-inflicted wound.

It was the Java version wat dun it !!

Changing Java settings to Java 5 / 1.5 fixed everything.

Servoy Developer
Version 3.5.6-build 519
Java version 1.5.0_13-119 (Mac OS X)

I don’t know if anyone has noticed, but switching between design and browse mode in really large solutions is now at least 5 times faster than before! That’s a great enhancement…

[new] added ianywhere_utils solution, it can create a new database on Sybase SQL Anywhere

Wow… Wow… Wow…

XPGS…

Thank you very much

Bevil

Hello Servoy World!

@ Robert Huber

The LabelFor property in available on “label” not on “field”.

@ All

Where are documented these News/Enhancements?

[new] case 122988: added global method converter plugin

[enh] new parameter for zoom level in controller.showPrintPreview(…)
[enh] case 39761: use field format to upper or lower case field values

And specifically I’m interested in the latter:
I need a way to format to uppercase the user input without the need to specify U for every chars in a lenghty field and must also permit the input of numbers NOT only letters.

Now if you put U in the format, in that position you can only put a letter, not a number or a simbol.

Of course, without using field = field.toUpperCase()

Hello Gianni

That’s fine, but where is the label on a table view forms? There are no labels, these are done above the field by Servoy automatically.

Best regards, Robert

Gianni1962PiacenzaIT:
Hello Servoy World!

@ Robert Huber

The LabelFor property in available on “label” not on “field”.

Bug 128583 Incorrect behavior AutoSelectOnEnter with AutoSave OFF

was reported to me as solved and would be deployed in the next version (3.5.6), but I don’t see it in the releasenotes

@ Robert Huber

custom tableview headers possible via “labelFor” labels

If you need to customize tableview headers you must put on the form the labels for your fields and set the property labelFor to couple labels and fields.

The name property of the fields must be populated because is this the name to put as reference in labelFor.

When you add fields to a form using Place fields, if you select the two check-boxes Place labels and Fill name property, Servoy will do this for you!

You must remember that you cannot change the text property on fields at runtime, but you CAN do this on labels.

An addition to Gianni comments on the customizable tableView headers:

for each field in the tableView of which you want to customize the header, you place an extra label on you form and connect the label to the field using the labelfor property on the label (set it to the name of the field).

Now, style the label as you want and at runtime, the styling of the label will be used to style the header of the column of the tableview. The label will NOT show up as a separate label on your form at runtime.

Paul

Hello Paul

Why so complicated? Why don’t you just offer the labelFor property on a field (on table view). If the field is for example right aligned, you will want the column label also right aligned, wouldn’t you? I assume the format of the field should be the same as the column label, so also only one formatting is needed. With this solution we have to create lot’s of labels we actually don’t need.

Best regards, Robert

pbakker:
An addition to Gianni comments on the customizable tableView headers:

for each field in the tableView of which you want to customize the header, you place an extra label on you form and connect the label to the field using the labelfor property on the label (set it to the name of the field).

Now, style the label as you want and at runtime, the styling of the label will be used to style the header of the column of the tableview. The label will NOT show up as a separate label on your form at runtime.

Paul

Your assumption that the format of the column fields is always the same as the format of the label is not true.

This way you have all the flexibility.

labelFor on a field makes no sense: a field is NOT a label.

Paul

Hello Paul

pbakker:
Your assumption that the format of the column fields is always the same as the format of the label is not true.

This way you have all the flexibility.

Yes, that could be, but I also hope you see that this optimization is much more than the often called 80:20 rule, may be 99:1. And gives a lot of labels on a (table view) form as work for not much gain.

pbakker:
labelFor on a field makes no sense: a field is NOT a label.

Paul

I agree with you that a field is not a label. If only everything else in Servoy would be so consistent and strict .-)

Thanks and regards, Robert

Just a note – When I upgraded to 3.5.6 from 3.5.5 the default background color of my forms got darker by a bit. Not going to worry about it, but some might. See attached, in the lower right of the screen is 3.5.5 and the upper left is 3.5.6.

On the change you made:

[fix] case 123018: wrong type-ahead field popup dimension

We’re very happy about this one, but it had some unintended consequences that I think could be rapidly fixed.

Basically, we complained about this kind of thing on the forum post http://forum.servoy.com/viewtopic.php?t=9690&highlight= partially because we were having trouble with the bug where typeaheads weren’t as wide as their field, but when that was the case it was also possible to get typeaheads to be LONGER than the field they’re attached to. Which was useful – since comboboxes can’t do that, nor can any menu type?

Is it possible/easy to ASAP make it so that typeaheads can never be SHORTER than the field they’re attached to, but can be longer depending on the values within the valuelist (within reason of course).

This used to be possible when the bug was present, see attached where this typeahead (just made to look like a combobox for visual reasons) in the top left is 3.5.5 and bottom right is 3.5.6. You’ll see my problem immediately I believe and understand the size of the problem – it’s a show stopper for us if they can’t read the menus:

We changed this. Now the popup window can exceed the width of the parent. In the same time I put a maximum value, but also put horizontal scroller if needed. The change will be available in the next build.

Regards

Hello Paul

In trying to format a label I am stuck with the margin property. I tried to use these

text-align: left;
margin: 0px 2px 0px 0px;

in the hope the label would be left (it is) with a little margin to the left. When setting margin there is no reaction of the label to these settings. Is it a bug or is there another property for label margins?

Best regards, Robert

pbakker:
An addition to Gianni comments on the customizable tableView headers:

for each field in the tableView of which you want to customize the header, you place an extra label on you form and connect the label to the field using the labelfor property on the label (set it to the name of the field).

Now, style the label as you want and at runtime, the styling of the label will be used to style the header of the column of the tableview. The label will NOT show up as a separate label on your form at runtime.

Paul