Servoy Stuff Browser Suite FAQ

Servoy Stuff Browser Suite FAQ

Please read carefully: the following contains important information about the use of the Browser Suite in its current version.

What is it? It is a suite of native bean components and plugins all Servoy-Aware and tightly integrated with the Servoy platform: - a browser bean - a flash player bean - a html editor bean - a client plugin to rule them all - a server plugin to setup a few admin flags - an installer to help deployment

What version of Servoy is supported? - Servoy 5+ Servoy 4.1.8+ will be supported, starting with version 0.9.40+, except for Mac OS X developer (client will work though)

What OS/platforms are currently supported? In Developer: - Windows all platform - Mac OS X 10.5+ - GTK based In Smart client: - Windows all platform - Mac OS X 10.5+ - Linux GTK based

The web client is not currently supported, although a limited support might come in the future if there is enough demand for it…

What versions are currently supported? - Windows: java 5 or java 6 (except updates 10 to 14) – 32 and 64-bit - Mac OS X: java 5 or java 6 – 32 and 64-bit - Linux: java 6 (except updates 10 to 14) – 32 and 64-bit

Where can I get it? http://www.servoyforge.net/projects/browsersuite

What is it made of? It is build on the powerful DJ-NativeSwing project ( http://djproject.sourceforge.net/ns ) v0.9.9 This library is using the SWT project ( http://www.eclipse.org/swt ) v3.6.1 And various other projects like the JNA project ( https://jna.dev.java.net/ ) v3.2.4 The XULRunner engine ( https://developer.mozilla.org/En/XULRunner ) v1.9.1.7

1/12 Servoy Stuff Browser Suite FAQ The FCKEditor HTML editor ( http://docs.cksource.com/FCKeditor_2.x/Developers_Guide ) v2.6.6 The TinyMCE HTML editor ( http://wiki.moxiecode.com/index.php/TinyMCE:Index ) v3.3.7 The CKEditor HTML editor ( http://docs.cksource.com/CKEditor_3.x/Developers_Guide ) v3.4.1 The Filemanager extension ( http://labs.corefive.com/projects/filemanager/ ) The installer is build with IZPack ( http://izpack.org/ ) v4.3.3

What is the licensing of these various projects? The browser suite is released under the terms of the FreeBSD Open Source License The DJ-NativeSwing project, the JNA library, TinyMCE are also released under the terms of the LGPL Open Source License The XULRunner engine is released under the terms of the MPL license. The FCKEditor and CKEditor are released under GPL, LGPL and MPL licenses The Eclipse SWT library is released under the Eclipse EPL 1.0 license The IZPack installer is used under the terms of the Apache License v2.0

How do I install it? 0- Download the installer to your hard disk (it is 68.6 Mb because it contains all the native components and libraries for ALL the supported platforms) 1- Double-click the installer or launch using “java –jar BrowserSuiteInstall.jar” on the command line, you will get the first screen:

2/12 Servoy Stuff Browser Suite FAQ

2- Click next to see the license(s) agreement (you can click on the links to browse to the descriptions of the licenses):

3/12 Servoy Stuff Browser Suite FAQ

3- Check the “I accept the terms of the license agreement” to enable the “Next” button, then click Next to see the different pieces of software that will be installed:

The Server install can’t be unchecked; it contains the required elements of the suite for your platform. The XULRunner engine can be unchecked if you don’t intend to use XULRunner at all. The Developer node can be unchecked if you are installing on a Servoy server.

4/12 Servoy Stuff Browser Suite FAQ

4- Click next to enter your target path (by default it will point to the default installation folder of Servoy, but if Servoy is located elsewhere, use the browse button to point to it):

The installer will warn you that the folder already exists, this is normal since the software is an extension to Servoy, you need to click ‘Yes’:

5/12 Servoy Stuff Browser Suite FAQ 5- The installer finally shows you a summary of what you have selected (what installation packs and where they will be installed), click Next to confirm:

6/12 Servoy Stuff Browser Suite FAQ

6- The installer then proceeds with the installation (and possibly launch a separate java process to install the XULRunner engine if it is not found on your machine and if you have chosen to install it):

7- That’s it! Note that it also saved an uninstaller in your /Servoy/Uninstaller folder:

7/12 Servoy Stuff Browser Suite FAQ What is installed and where? The bean jar is installed in /Servoy/application_server/beans/browser_suite.jar The plugins and dependencies are installed in /Servoy/application_server/plugins/ this is: - browser_suite.jar - browser_suite.jar.jnlp - browser_suite/ o ckeditor.jar o DJNativeSwing.jar o DJNativeSwing-SWT.jar o FCKeditor.jar o Filemanager.jar o jna.jar o jna_WindowUtils.jar o MozillaInterfaces.jar o TinyMCE.jar o XULInstaller.jar

The SWT libraries for all platforms are installed in Servoy/application_server/server/webapps/ROOT/browser_suite/swt/: - linux/ o org.eclipse.swt.gtk.linux.x86_3.7.1.v3737.jar o org.eclipse.swt.gtk.linux.x86_64_3.7.1.v3737.jar - macosx/ o org.eclipse.swt.cocoa.macosx.x86_64_3.7.1.v3737.jar o org.eclipse.swt.cocoa.macosx_3.7.1.v3737.jar - windows/ o org.eclipse.swt.win32.win32.x86_3.7.1.v3737.jar o org.eclipse.swt.win32.win32.x86_64_3.7.1.v3737.jar

The XULRunner engine for all clients are installed in Servoy/application_server/server/webapps/ROOT/browser_suite//: - linux/ o xulrunner.jar - macosx/ o xulrunner.jar - windows/ o xulrunner.jar

Then in Developer, depending on the platform (os/arch) the related swt library located in Servoy/application_server/server/webapps/ROOT/browser_suite/swt is also placed in Servoy/developer/plugins (in a windows/ or linux/ subfolder)

And its use is declared in the files: - Servoy/developer/configuration/org.eclipse.equinox.simpleconfigurator/bundles.info - Servoy/developer/features/org.eclipse.rcp_3.5.X.vHASH/feature.xml

The sample solution is located at Servoy5/application_server/solutions/ BrowserSuiteTest.servoy

8/12 Servoy Stuff Browser Suite FAQ

The uninstaller is located at Servoy/Uninstaller/BrowserSuiteUninstaller.jar

Finally the servoy.ini file is altered to add a few flags for the use in Developer. And the servoy.properties file is also altered to add a few flags to the entry “servoy.vmClientArgs”

Be sure to keep these flags later if you want to keep using the suite.

How to uninstall this stuff? Simply launch the uninstaller Servoy/Uninstaller/BrowserSuiteUninstaller.jar by double-click or typing “java –jar BrowserSuiteUninstaller.jar” from the command line.

NB: Make sure that you DO NOT CHECK the “Force the deletion of…” checkbox (otherwise you will also delete your Servoy installation!) Unfortunately there is not yet an option to disable this checkbox for good in IZPack (I have filed a request for this, no news from the IzPack team).

How to update to a new version of Servoy Developer/new version of the suite? If you want to update to a new version of Servoy (in Developer), first uninstall the suite, perform the Servoy update using Eclipse, then reinstall the suite. These steps are not necessary if you update a server only install using the servoy_updater.jar.

If you want to update the suite itself, it is no longer necessary to uninstall the previous install first, you can perform an install directly and it will simply replace all the files with newer versions while taking care to keep all the initial configuration files untouched. Sometimes though you would better uninstall first, especially when new version of jars should replace the new ones.

As a general rule, to be on the safe side, always uninstall the Browser Suite first before doing any kind of installation of plugin or update of Servoy again, then reinstall after your changes.

What to expect of this version? A few bugs ;-)

The idea is to test on as many configurations available to you as possible and see how it works (or not) for you. Then report, so that I can build a reliable v1.0 as soon as possible.

This is a preview/beta version, so I would not recommend using it in production unless you are really living on the edge ;-) If you do, please note that it is at your own risk and that I will not take any responsibilities for any broken solutions/installations/servers/buildings/power plant…

9/12 Servoy Stuff Browser Suite FAQ

Still the software is pretty stable already in the supported target platforms. I will welcome bug reports if you can give me as much information as possible about the problem you encountered.

Meaning: a complete description of your system - developer/smart client? Version of Servoy, version of the OS, version of Java, memory usage, thread dump, servoy_log.txt relevant to the problem, .log file (located in your workspace/.metadatas/ folder), client stack-trace, screenshots, sample solutions, and generally anything that could help fixing the problem quickly… You can send all this using this address: [email protected]

What to expect of a final v1.0 version? Mostly bug fixes and a stable version for all the supported platforms, maybe a few additional methods and events, but the current methods/properties should not change. No Web client support nor VLCPlayer is planned for v1.0, but some support for it might happen after that.

Where is the doc? How to use this stuff?? Good question ;-) I’m working on it. It will probably be part of the final installer too, as pdf or html docs or a url link in the Servoy/application_server/docs folder.

For now with this preview version, you can use the sample solution to get to know the functionalities better. Simply import from Servoy Developer in your workspace (you can do that directly from the solution explorer now with Servoy 5!). The solution is based on a server named ‘browser_suite’ which contains a few tables with some sample data.

To use out of the sample solution, place the bean you want on a form, you can choose one of: - ServoyBrowser - ServoyFlashPlayer - ServoyHtmlEditor

When placed on a form, you will be able to tweak the properties in Serclipse using the properties view. Each bean have help/sample for all scripting methods (simply click on the named element in the solution explorer and you will see the available methods along with help, and you will be able to get some sample methods using the built-in Servoy help system: push that button!).

What is the native browser used for which platform? By default the suite will try to use XULRunner (unless you set the browsersuite.useXULRunner flag to false in the server admin, or you chose not to install XULRunner during the installation process) If this flag is set to false, the beans will use Internet Explorer on Windows, Safari on Mac OS X and on Linux. – You can override the use of XULRunner per bean instance, using the ‘forceNative’ bean property too.

Using XULRunner allows for better cross-platform consistency of the html rendering (XULRunner is using the same rendering engine as Firefox 3.5: the chrome engine), and better integration with Servoy, because of the XPCOM API which allows me to hook a specific “media” protocol handler, and a download manager…

10/12 Servoy Stuff Browser Suite FAQ One downside to the use of XULRunner is that it will add 9 to 17Mb of download to the client (depending on the client’s platform). But this is on first use only, of course. Another thing to take into consideration is the fact that XULRunner is not available for 64-bit platforms, - thus it will not be downloaded by the client, even if the browsersuite.useXULRunner is set to true – the default)

So, what is the download impact for the clients depending on their platform? Components Win 32-bit Win 64-bit Mac 32-bit Mac 64-bit Linux 32-bit Linux 64-bit Beans, Plugins + 4.70M 4.70M 4.70M 4.70M 4.70M 4.70M dependencies SWT 2.28M 2.30M 2.03M 1.92M 2.08M 2.25M = 6.98M 7.00M 6.73M 6.62M 6.78M 6.95M + XULRunner 12.09M - 17.00M - 12.70M - TOTAL 19.07M 7.00M 23.73M 6.62M 19.48M 6.95M

Is this stuff i18n? Yes!

Here’s a list of keys you can use with their default (English) values: browserSuite.menuCommand.fileLabel = File browserSuite.menuCommand.newWindowLabel = New Window browserSuite.menuCommand.openLocationLabel = Open location... browserSuite.menuCommand.openFileLabel = Open file... browserSuite.menuCommand.homeLabel = Home browserSuite.menuCommand.printLabel = Print browserSuite.menuCommand.showSourceLabel = View source... browserSuite.menuCommand.showDownloads = Show downloads... browserSuite.menuCommand.viewLabel = View browserSuite.menuCommand.toolbarsLabel = Toolbars browserSuite.menuCommand.buttonBarLabel = Button Bar browserSuite.menuCommand.locationBarLabel = Location Bar browserSuite.menuCommand.statusBarLabel = Status Bar browserSuite.menuCommand.backLabel = Back browserSuite.menuCommand.forwardLabel = Forward browserSuite.menuCommand.reloadLabel = Reload browserSuite.menuCommand.stopLabel = Stop browserSuite.menuCommand.closeLabel = Close browserSuite.openLocation.windowTitle = Open Location browserSuite.openLocation.windowMessage = Please enter the location to open: browserSuite.downloadManager.alertOneDownloadTitle = Sorry browserSuite.downloadManager.alertOneDownloadMessage = A single download at a time is allowed! browserSuite.downloadManager.cancelConfirmTitle = Confirm cancel browserSuite.downloadManager.cancelButtonLabel = Cancel download browserSuite.downloadManager.cancelConfirmMessage = Do you really want to cancel the current download? browserSuite.downloadManager.alertNoDownloadTitle = Sorry browserSuite.downloadManager.alertNoDownloadMessage = No downloads allowed!

11/12 Servoy Stuff Browser Suite FAQ Where are the sources? You can find al the sources of the BrowserSuite (4 projects) on the ServoyForge web site. http://www.servoyforge.net/

You can check-out the sources from the repository at: svn://svn.servoyforge.net/browsersuite/

What are the know issues/bugs? Check the http://www.servoyforge.net/projects/browsersuite/issues page for know issues.

As they say: ‘your mileage may vary’.

In any case, I’d like to hear about it with as much details as possible, since this will help me build a more reliable v1.0 asap.

For any questions, bug reports, suggestions, feature requests, insults, etc… please use this email address: [email protected]

Looking forward to hear from you,

-Patrick Talbot Servoy Stuff

12/12