NOTE: this is PRE-RELEASE SOFTWARE, use with caution and make BACKUPS before you start.

This version will be available shortly through auto update for users of versions later than 3.5 b2 (check via help menu -> check for new version)

Changes[enh] mnemonic and labelfor properties on buttons and labels
[enh] plugins.file.showFileOpenDialog() accepts a fifth optional parameter to filter on file type
[enh] onAction event works with enter key in webclient
[enh] warning for use of plugin dialog in web client
[enh] add more explicit JVM versions to support in the smartclient jnlp file

[chg] AJAX can be switched on/off on a per-solution basis
[chg] implemented application.getUserPropertyNames()
[chg] create and use the log table with user_uid instead of user_name

[fix] columns can be sorted based on another column using onRecordSort
[fix] for spaces that were discarded in the format
[fix] serialize converter no longer has issues with multidimensional arrays
[fix] problems with servoy developer and using multiple monitors
[fix] pdf_output plugin printer problems using some fonts
[fix] omit last record in tableview
[fix] jar file refresh problem if client uses java 1.6
[fix] type-ahead in combination with n-m relations now working
[fix] updates via raw sql plugin wouldn't show in executing client after calling flushAllClientsCache or notifyDataChange
[fix] importing solution with calculation datatype change doesn't update the datatype in override mode
[fix] canDelete/canUpdate/canInsert/canRead functions returning wrong values for first form shown
[fix] changing selected record, then setting focus doesn't work with webclient in Internet Explorer
[fix] instanceof check on dates in Javascript
[fix] made repository dialog multideveloper-safe
[fix] onHide method doesn't block switching to design mode anymore
[fix] images not refreshing with AJAX
[fix] dimensions of the formInDialog can only be set once
[fix] spaces in tableview headers are not converted when text is html
[fix] relation.alldataprovider
[fix] tableview headers sometimes too small
[fix] data notification in web client did not always work
[fix] relaxed criteria for going into find mode
[fix] in webclient non-ajax mode, table view pager didn't submit form data
[fix] blobloader data retrieval problem
[fix] onRecordSave event not fired if there is a form with the same foundset shown in a tab panel
[fix] rawSql plugin actions are now wrapped in the database transaction used by Servoy client
[fix] client shutdown form server admin page postponed for several minutes to enable client to shutdown properly
[fix] html areas wouldn't show all content in print preview or when printing
[fix] during import, the non-text qualifier was not recognized

Not sure what it fixes but it breaks existing functionality.
I use application.setWindowSize() to resize a FID depending on what a user selects IN the FID.
In 3.1 this works fine but in 3.5rc2 it resizes the main window instead.

at org.apache.wicket.Component.render(Component.java:1919)
at org.apache.wicket.MarkupContainer.renderNext(MarkupContainer.java:1179)
at org.apache.wicket.MarkupContainer.renderComponentTagBody(MarkupContainer.java:1349)
at org.apache.wicket.MarkupContainer.onComponentTagBody(MarkupContainer.java:1284)
at org.apache.wicket.Component.renderComponent(Component.java:2092)
at org.apache.wicket.MarkupContainer.onRender(MarkupContainer.java:1294)

at org.apache.wicket.Component.render(Component.java:1919)
at org.apache.wicket.MarkupContainer.renderNext

Last edited by erdione on Mon Jun 11, 2007 7:05 am, edited 1 time in total.

When I do a clean import of an existing 3.1.6 solution with Text type fields (Postgres db, Sybase local repository), why does the data provider screen not show the length attribute for a Text type field? Here is a message I noted during a clean import of my existing solution:

The server version of the column 'notes' of table 'tr_securities' in server 'production' has length -1 while in the import version the column has length 2147483647.

It seems to work ok (data is saving etc) ... just that no length attribute is visible in the data providers. Is this the new expected behaviour? It used to show the length (e.g. - 2147483647).

I think Servoy should initialize the record without padding it out to 50 spaces as the current behaviour forces us to issue a string trim on every varchar field: the extra spaces are not user keyed. Also, if you can replicate, pls double check data provider behaviour once spaces are trimmed off in part.

Timestamp with timezone is working well.

Postgres 8.2.3. Here is the SQL (let me know if you need the full DDL - you should get the same behaviour without the city_subregion constraint):

-- Table: city

-- DROP TABLE city;

CREATE TABLE city
(
city_id bigint NOT NULL, -- City_ID
subregion_id bigint, -- Subregion_ID
city character(50) NOT NULL, -- City
creation_user_id bigint, -- User ID (app layer insertion) integer
creation_timestamp timestamp with time zone, -- Timestamp for record creation
modify_user_id bigint, -- User ID for the last modification of this record. Application layer managed.
modification_timestamp timestamp with time zone, -- Timestamp for the last user to modify this record. Application layer managed.
CONSTRAINT pk_city PRIMARY KEY (city_id),
CONSTRAINT city_subregion FOREIGN KEY (subregion_id)
REFERENCES subregion (subregion_id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
)
WITHOUT OIDS;
ALTER TABLE city OWNER TO postgres;
COMMENT ON TABLE city IS 'Cities known to the Country and SubRegion hierarchy.';
COMMENT ON COLUMN city.city_id IS 'City_ID';
COMMENT ON COLUMN city.subregion_id IS 'Subregion_ID';
COMMENT ON COLUMN city.city IS 'City';
COMMENT ON COLUMN city.creation_user_id IS 'User ID (app layer insertion) integer';
COMMENT ON COLUMN city.creation_timestamp IS 'Timestamp for record creation';
COMMENT ON COLUMN city.modify_user_id IS 'User ID for the last modification of this record. Application layer managed.';
COMMENT ON COLUMN city.modification_timestamp IS 'Timestamp for the last user to modify this record. Application layer managed.';

You are using char(50) as type for the city field. This is treated by the database as a fixed-width field that is padded (by postgres, not by Servpy) when data is shorter.
Data type varchar(50) does what you need.

Those properties allow you to create a "relation" between a label and a field (Servoy will do it for you automatically when placing fields with labels on your form).

Once the relation is in place, when you then set a mnemonic on the label, this will allow your users to access the field which you "related" to the label through keyboard shortcuts.

A mnemonic is a letter, usually one of the letters in the text of the label. Depending on the L&F used, the letter will be underlines or become underlined when the user presses the ALT key.

When the user presses the ALT key and then the letter you set as mnemonic, cursor focus will go the the "related" field.

Note: If there are multiple labels/buttons or menuitems (yes, all the menuitems of Servoy already have mnemonics attached to them) using the same letter as mnemonic, the focus will go the the first "object" which uses it.

one of the new features on 3.5 is the ability to set a "logical" column name instead of the database field name. This is great, but it would be greater if you could access the i18n editor from the column properties window, so it'd be easier to stablish a i18n title.

pbakker wrote:Those properties allow you to create a "relation" between a label and a field (Servoy will do it for you automatically when placing fields with labels on your form).

Got it (you have to choose to fill name property, in order to do that).
But is it also working on MacOS X?
Because I set up a field with "c" as mnemonic, but alt-c gives me the copyright sign, command-c activates the copy function and control-c does nothing...