Pranav Kuber and Nizar Lethif are developers in the CSI and PIM teams. They've implemented an interesting prototype that shows how to run and integrate with XUL applications in Notes 8 (with some additional plugin from Sametime). They've also planned to write a developerworks article with more information about how exactly they've implemented this. The description below is from Pranav and Nizar.
Niklas
This article discusses how existing applications written in XUL (XML User-interface Language) can participate in the Composite Application Infrastructure. As an effort to address this, we implemented a new container which should be generic enough to embed any application which can be rendered in a browser. So far, we have implemented this container framework to support XUL.
Some useful XUL links:
http://www.xulplanet.com/tutorials
http://developer.mozilla.org/en/docs/Introduction_to_XUL
The container creates an instance of the com.ibm.swt.xulrunner.browser.SWTXULRunnerBrowser browser and registers the properties with the Property Broker.
The com.ibm.swt.xulrunner.browser.SWTXULRunnerBrowser plug-in is available as a part of Sametime 7.5.1.
The Sametime installable will be available at http://www.ibm.com/developerworks/downloads/ls/lst
Currently, the com.ibm.swt.xulrunner.browser.SWTXULRunnerBrowser is not part of the Notes 8.0 plug-ins.
The developer of the CA specifies the following:
The URL of the application. The WSDL file. JavaScript to be invoked on receiving any property event.
The XUL contianer is available on the Component Palette in the Composite Applications Editor. The developer can drag and drop this container on the Composite Application's page. When the Property Broker fires an event with the container, the container in turn executes the JavaScript specified by the developer on the browser.
Example:
In order to demonstrate a working implementation, we created a XUL application which uses the ThinkPlace APIs to extract ideas and display them in a table.
ThinkPlace is a collaborative tool that allows IBM employees to surface opportunities to grow our business, identify solutions to critical client business needs and offer ideas for process improvements that will enhance IBM's culture or make us more competitive in the marketplace.
The APIs exposed by ThinkPlace are REST APIs.
More information on REST APIs: http://en.wikipedia.org/wiki/Representational_State_Transfer
Initially the developer registers the properties with the Property Broker through the Advanced Properties Dialog. It takes in the URL for the XUL application, the WSDL file and the JavaScript to be executed on an incoming property event.
(Refer to the screen shot below).
The Composite Application is created with one of the components as the XUL application above and the other, a notes database. When we click on the “Search ThinkPlace” button, a property event is fired (search).
This “search” property event is recognized by the container which in turn fires the JavaScript that is associated with this property event.
Refer to the screen shots of the application
1. The application, onload.
2. After clicking on the "Search ThinkPlace" button.
As of now, this container supports property event subscription only. We are still working on a generic solution for property event publish.
Developers:
Nizar Lethif (nizarlethif@in.ibm.com)
Pranav Kuber (pranav.kuber@in.ibm.com)
More specific implementation details will be made available in the Developer Works article.