Servoy 3.0 Release Candidate 2

We announce the immediate availability of Servoy 3.0 Release Candidate 2

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

This version is available through auto update and download page on Servoy website (developer section)

Changes:
[fix]-security.checkPassword() always returns false
[fix]-controller.showPrintPreview() does not work in webclient
[fix]-custom navigator is not visible anymore, after displaying a formInDialog
[fix]-Cannot upload solutions via adminpage
[fix]-addTab changes application.getMethodTriggerFormName() output
[fix]-Auto Enter Value “modification user name” returns “user id” instead “user name”
[fix]-bean classpath errors in Servoy 3.0
[fix]-date search in tableview
[fix]-all bugs reported on http://forum.servoy.com/viewtopic.php?t=6434
[fix]-numberformat error during solution import
[fix]-lost styles during solution import
[fix]-loads of webclient CSS fixes
[fix]-invisible bean was showing in the webclient
[fix]-Media field and Calendar field buttons are not visible when form is readonly or not enabled
[fix]-when dialog is shown the data disappears from the main window
[fix]-global default value was lost (overwritten by the null) when editing or selecting the global
[fix]-modules nodes in editor window are sorted now
[fix]-i18n search for values did not work outside the default language
[enh]-addTab has an 8th param that can be a relation (foundset) to add een related tab
[enh]-code completion popup can be resized (drag the lower right corner)
[enh]-i18n keys as tag are supported like “%%i18n:%%” when usedTags is enabled
[enh]-webclient expiredpage url setting in server adminpage

Previous releases:
http://forum.servoy.com/viewtopic.php?t=6865

[enh]-addTab has an 8th param that can be a relation (foundset) to add een related tab
[enh]-code completion popup can be resized (drag the lower right corner)
[enh]-i18n keys as tag are supported like “%%i18n:%%” when usedTags is enabled

VERY NICE!!! :D :D

OmitRecord is no longer working properly. An error message is returned : org.mozilla.javascript.JavaScriptException: com.servoy.j2db.dataprocessing.DataException: ASA Error -131: Syntax error near ‘)’ on line 1

Normal omit seams to work just fine, could you explain how you got this error? provide simple sample solution perhaps?

Hello,

Thanks for RC2. I think I found a request focus bug involving form-in-dialogs. I can reproduce it in the CRM demo by doing the following:

  1. Create a global method with the following code:
application.closeFormDialog(true);

forms.list_contacts.editContact();
  1. Put a button on the “dlg_contacts” form with the above method attached to the onAction event.

  2. Click the “Edit Contact” button on the main company form. The cursor is in the prefix field, as expected. Now click the button you added in #2. The edit contact form should reappear, but the cursor is no longer in the prefix field.

So, I guess that calling a second FID doesn’t honor the requestFocus() fx?

This isn’t new to RC2, but at least on Macs, the selectOnEnter field property is broken. When checked, the contents of a field are not selected automatically.

Unfortunally, the Oracle issue reported in the releasenotes of B3 is still there…

In Servoy, when trying to create a form I get the following error:

com.servoy.j2db.persistence.RepositoryException: java.sql.SQLException: Stream has already been closed Stream has already been closed

In the console I get:

2006-08-22 08:47:35,125 ERROR [AWT-EventQueue-0] com.servoy.j2db.persistence.Ser
ver - java.sql.SQLException: Stream has already been closed
2006-08-22 08:47:35,125 ERROR [AWT-EventQueue-0] com.servoy.j2db.util.Debug - Th
rowable
com.servoy.j2db.persistence.RepositoryException: java.sql.SQLException: Stream h
as already been closed Stream has already been closed
at com.servoy.j2db.persistence.Server.char(Unknown Source)
at com.servoy.j2db.persistence.Server.getTable(Unknown Source)
at com.servoy.j2db.develop.z.di(Unknown Source)
at com.servoy.j2db.develop.z.actionPerformed(Unknown Source)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:18
49)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.jav
a:2169)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel
.java:420)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258
)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonL
istener.java:234)
at java.awt.Component.processMouseEvent(Component.java:5488)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3126)
at java.awt.Component.processEvent(Component.java:5253)
at java.awt.Container.processEvent(Container.java:1966)
at java.awt.Component.dispatchEventImpl(Component.java:3955)
at java.awt.Container.dispatchEventImpl(Container.java:2024)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212
)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)

at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
at java.awt.Container.dispatchEventImpl(Container.java:2010)
at java.awt.Window.dispatchEventImpl(Window.java:1774)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchTh
read.java:242)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
ad.java:163)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
ad.java:153)
at java.awt.Dialog$1.run(Dialog.java:515)
at java.awt.Dialog.show(Dialog.java:536)
at java.awt.Component.show(Component.java:1300)
at java.awt.Component.setVisible(Component.java:1253)
at com.servoy.j2db.util.b.setVisible(Unknown Source)
at com.servoy.j2db.develop.z.a(Unknown Source)
at com.servoy.j2db.develop.c.bi.doIt(Unknown Source)
at com.servoy.j2db.cmd.c$2.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchTh
read.java:242)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
ad.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)

at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)

When opening the dataprovider dialog, it opens on a table in a non Oracle DB. When I then click open an Oracle DB, all tables show, but when I click on one of the tables, so I can see the columns, the columns remain the same columns of the table the dataprovider dialog opened in and I get the following error in the console:

2006-08-22 08:52:20,671 ERROR [AWT-EventQueue-0] com.servoy.j2db.persistence.Ser
ver - java.sql.SQLException: Stream has already been closed
2006-08-22 08:52:20,671 ERROR [AWT-EventQueue-0] com.servoy.j2db.util.Debug - Th
rowable
com.servoy.j2db.persistence.RepositoryException: java.sql.SQLException: Stream h
as already been closed Stream has already been closed
at com.servoy.j2db.persistence.Server.char(Unknown Source)
at com.servoy.j2db.persistence.Server.getTable(Unknown Source)
at com.servoy.j2db.develop.DefineDataProviderPanel$2.valueChanged(Unknow
n Source)
at javax.swing.tree.DefaultTreeSelectionModel.fireValueChanged(DefaultTr
eeSelectionModel.java:629)
at javax.swing.tree.DefaultTreeSelectionModel.notifyPathChange(DefaultTr
eeSelectionModel.java:1078)
at javax.swing.tree.DefaultTreeSelectionModel.setSelectionPaths(DefaultT
reeSelectionModel.java:287)
at javax.swing.tree.DefaultTreeSelectionModel.setSelectionPath(DefaultTr
eeSelectionModel.java:170)
at javax.swing.JTree.setSelectionPath(JTree.java:1174)
at javax.swing.plaf.basic.BasicTreeUI.selectPathForEvent(BasicTreeUI.jav
a:2296)
at javax.swing.plaf.basic.BasicTreeUI$Handler.handleSelectionImpl(BasicT
reeUI.java:3505)
at javax.swing.plaf.basic.BasicTreeUI$Handler.handleSelection(BasicTreeU
I.java:3480)
at javax.swing.plaf.basic.BasicTreeUI$Handler.mousePressed(BasicTreeUI.j
ava:3461)
at java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:22
2)
at java.awt.Component.processMouseEvent(Component.java:5485)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3126)
at java.awt.Component.processEvent(Component.java:5253)
at java.awt.Container.processEvent(Container.java:1966)
at java.awt.Component.dispatchEventImpl(Component.java:3955)
at java.awt.Container.dispatchEventImpl(Container.java:2024)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212
)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3889)

at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
at java.awt.Container.dispatchEventImpl(Container.java:2010)
at java.awt.Window.dispatchEventImpl(Window.java:1774)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchTh
read.java:242)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
ad.java:163)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
ad.java:153)
at java.awt.Dialog$1.run(Dialog.java:515)
at java.awt.Dialog.show(Dialog.java:536)
at java.awt.Component.show(Component.java:1300)
at java.awt.Component.setVisible(Component.java:1253)
at com.servoy.j2db.util.b.setVisible(Unknown Source)
at com.servoy.j2db.develop.l.new(Unknown Source)
at com.servoy.j2db.develop.c.r.doIt(Unknown Source)
at com.servoy.j2db.cmd.c$2.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchTh
read.java:242)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
ad.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)

at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)

Please look into this…

Paul

Tnx for all the fixes in the WebClient GUI, it looks great now.

Only one minor point I saw:
If you upload a small image into a Image field, it’s offset to the right a bit, so it’s not hidden behind the upload/save buttons that are displayed in the WebClient.
But, the offset seems to be the same for editable, not editable and disabled fields.

  • For editable fields the offset is fine.
  • For non editable fields, the offset is too much, since only 1 button is shown inside the field (“save media” button)
  • For disabled fields the offset is too much, because no buttons are displayed at all.

On another note: Why does a non editable image field have a “Save media” button? When clikcing on the button, nothing seems to happen anyway.

Paul

The loadrecords command no longer loads all items in the dataset but only a subset of the records.

Re the omitrecord command even the option on the select menu is giving the same error.

Could it be I need to download a completely new install.

The loadRecords is working correctly. A third party software was the culprit.

However the omitRecords issue remains.

application.getMethodTriggerElementName();
application.getMethodTriggerFormName();

The above functions are not working in debug mode.

textfield.requestFocus() doesn’t work in the WebClient, but is shown when the WebClient filter is enabled.

Paul

Code:
application.getMethodTriggerElementName();
application.getMethodTriggerFormName();

The above functions are not working in debug mode.

Because of this problem I couldn’t debug my methods.

Once I enable the debugger then I’m getting a series of error messages enventhough I disable the debugger.

I need to close the solution & open it again to get rid of the errors.

Is there any quick fix for this?

Thanks for any help.

I have the same problem as Backer’s. This problem is very annoying. It means that I could not just go ahead with development when I stumbled on an error.

Please help us to give a quick update.

Thanks!

Also getting the debugger error. As soon as Debugger switched on methods triggered by buttons do not seem to fire at all.

Works OK on Version 3.0rc1-build 365 - so I guess it’s a ‘feature’ introduced by rc2 :)

A quick fix would be very useful

Graham Greensall
Worxinfo Ltd

Java version 1.5.0_06-64 (Mac OS X)

NOTE: This feature is not working ONLY IN DEBUG mode. Should work fine when the debugger is off.

The team is well aware of the problem, and are working to correct it ASAP.

Great!! You are such a good team! Hope to see this fixed soon!

Servoy Developer
Version 3.0rc2-build 366
Java version 1.5.0_08-b03 (Windows XP)

  1. With autoSave set to false, onRecordSave is being called when I first select a record, and again when I leave it. When I first open a form a start nexting through its records this doesn’t happen, but from the moment I click in a field on the form, this starts to happen. I expect onRecordSave to fire only when I’m leaving a record I’ve “touched” either by clicking or tabbing into one of its elements.

  2. When I return false from the onRecordSave method, it still saves the record when I select a different record. This is the case with autoSave on or off.

This is in the smart client, on a solution that was created in 2.2.5 and then upgraded through 3.0 betas, RC1, RC2, in case that makes a difference.

Maybe I’m missing something. What I thought we were aiming for in 3.x is an onRecordSave event that

a) will ONLY be called when a user is LEAVING a record that was “clicked into”
b) will let me to PREVENT auto-saving by returning false

I was also expecting that if I turned autoSave off, no changes would be saved until I issue a saveData. In my tests, changes are being saved automatically as I leave the record even with autoSave off.

Thanks.

Servoy Developer
Version 3.0rc2-build 366
Java version 1.5.0_08-b03 (Windows XP)

Often, when going in and out of design mode I get this message:

“I’m not the row manager for row”

and then Servoy goes brain-dead on me. I can’t get back into run-time mode. I close the solution and it leaves a navigation (aka controller) form onscreen. etc. etc.

Servoy Developer
Version 3.0rc2-build 366
Java version 1.5.0_08-b03 (Windows XP)

In the web client I see the << < 1 2 > >> controls Servoy is putting below lists that have more rows than can be displayed within the list object.

In FireFox, I often can’t click on these controls, even though they are underlined and blue - my cursor doesn’t turn into a hand when hovering over these controls. When this happens, the only way I can get them to work is to tab to them and then hit return.

Also I’m wondering if there will be a way for us to customize these controls and put buttons with attractive icons there.