jWidgets to make it easier to develop Eclipse based components for composite applications

Perusing the the Composite Application Wiki I discovered a technology IBM calls jWidgets. Basically they are for Composite Application Java component development what iWidgets are to websites that is a widget framework for easily and more quickly doing stuff. Developing Java components for composite applications is a little hard as you have to manage wires etc. yourself. A framework would make that a lot easier and that’s exactly what jWidgets are.

Having the technology available to Lotus Notes (and not just Lotus Expeditor) would be really cool. From an IBM’er I however learned that they haven’t been formally tested in Notes, but the technical capability is there. They have only been tested formally in Lotus Expeditor 6.2.2.

jWidgets – Easy Creation of Java Composite Application Components

What is new in 8.5.2 for XPages

Lotus Notes/Domino 8.5.2 is out and the other day I was hosting an XPages training session so I thought a little bit about what’s new with XPages. Of course XPage ninjas like Matt has already written about it (Matt White: What’s new with XPages in 8.5.2) but as I was reading up I found some links I wanted to highlight. Most info may be found on the IBM wiki.

  • onClientLoad Event. Its now possible to add scripts in the events to be executed when the page is submitted or this panel or some containing panel is partial updated.
  • Extensions API
  • Two new Global Objects for Server Side JavaScript, sessionAsSigner (open a session using the signer rights) and sessionAsSignerWithFullAccess(open a session using the signer rights, while giving it full access to the data)
    • sessionAsSigner – Assigns credentials based on the signer of the of XPages design element. The session is restricted by the application’s ACL and the security tab of the server’s Domino Directory entry.
    • sessionAsSignerWithFullAccess – Assigns credentials based on the signer of the of XPages design element and allows full administrative access to the application’s data. The signer must have the right to such access or the session is not created.
  • New resource xp:headTag – this allow you in an easy way to put stuff into the header of a XPage
  • XPages ECL to Permissions updated to include more Java Permissions
    In V851 of XPages, security for executing Java code in XPages in the Notes Client was very restricted. For XPages V852, the Java Permissions managed by the XPages ECL settings have been broadened to be similar to the set of Java Permissions allowed by Java Agents and to bring a level of equivalence between Java Permissions allowed for XPages on Domino Server (Unrestricted) and XPages in the Notes Client. For example, in V851 the ECL Network permission only covered the Java SocketPermission, now it covers NetPermission and other related Java network permissions.
  • Referencing a Managed Bean from JavaScript now supported in XPiNC. This fixes a bug where a Managed Bean, first referenced in JavaScript (which triggered the creation of the Bean) caused a security exception. The workaround was to first have this Managed Bean referenced and created as a DataSource (referencing the Bean from then on was fine). This bug is now fixed.

MyWidgets just got better – Option to specify a custom widget icon for sidebar

Please note: The following is from the release notes of Notes 8.5.2 so I don’t take credit for writing this. Lotus Notes 8.5.2 is in beta and there are no guarantees that the features described here will be in the final product that IBM ships.

Power users and administrators can add a new viewImageUrl attribute to the palleteItem element in a widget’s extension.xml definition to specify a custom icon to use in the sidebar view/title bar for that widget. The viewImageURL attribute value must be a URL to the desired image, for example:

viewImageUrl="http://my.server.com/myImage.ico"

Example widget XML syntax is shown below:

MyWidgets just got better – Option to set default widget double-click action

Please note: The following is from the release notes of Notes 8.5.2 so I don’t take credit for writing this. Lotus Notes 8.5.2 is in beta and there are no guarantees that the features described here will be in the final product that IBM ships.

You can now set a default double-click action to open widgets in the sidebar, a new window, a float window, or a tab. The default does not impact widgets that have a pre-defined double-click action defined in their XML. The supplied default is newWindow.

Note: See Tech Note 1399534 “Adding a widget custom double-click action” for information about customizing an individual widget’s double-click action. (Red: I was unable to find this technote – maybe it hasn’t been published yet).

This change enables the control of what action is taken when you double click on a widget in the My Widgets sidebar panel. The default will act on all widgets that do not already have a pre-defined double click action. The new plugin_customization.ini file preference is

com.ibm.rcp.toolbox/doubleClickAction=<option>

where valid values for <option> are:

  • sideBar
  • newWindow
  • float
  • tab

For example, to set the default double-click action to open the widget action in the sidebar, add the following statement to the user’s local plugin_customization.ini file:

com.ibm.rcp.toolbox/doubleClickAction=sideBar

MyWidgets just got better – Option to reuse a single sidebar panel for a particular widget’s action

Please note: The following is from the release notes of Notes 8.5.2 so I don’t take credit for writing this. Lotus Notes 8.5.2 is in beta and there are no guarantees that the features described here will be in the final product that IBM ships.

You can now specify if a widget uses only one sidebar panel or if multiple sidebar panels are allowed. You can set a preference in the widget XML to define whether a new Sidebar panel is opened for each widget action or whether the same Sidebar panel is reopened and overwritten for each action initiated by that widget. There are three types of actions that add a widget to the client sidebar panel.

  • The widget property “Contribute to Sidebar on startup.” When enabling this option, a sidebar panel is opened in the sidebar for the widget.
  • Right click on a widget in the My Widgets sidebar panel and choose Open in -> Sidebar. Every time this action is executed, a new sidebar panel is opened.
  • Create a Live Text action that puts the action results into the sidebar. Every time this action is executed, a new sidebar panel is opened.

If a user needs to look up multiple pieces of data using a particular widget, there would be a new sidebar panel opened for each lookup. Administrators and power uses can add a new “singletonSidebar” attribute to the palleteItem element in the widget’s XML definition after creating and exporting the widget. Valid values are “true” and “false” and sample syntax, where it would appear in the widget’s XML file, is as follows:

<webcontextConfiguration version="1.1">
<palleteItem singletonSidebar="false"

OR

<webcontextConfiguration version="1.1">
<palleteItem singletonSidebar="true"

When set to “true” the three actions described will share the same widget sidebar view. When set to “false” the three actions above will open in new sidebar views.
Note: The default value is “false” so as not to affect Notes 8.5.1 and prior behavior.

Note: If there were multiple sidebars opened for a widget prior to applying this feature improvement and then you upgrade to a release with this feature improvement (and implement it), the previous sidebars will not be reused and will remain open until the user manually closes them.

MyWidgets just got better – Option to hide and unhide display of widget thumbnail

Disclaimer: The following is from the release notes of Notes 8.5.2 so I don’t take credit for writing this. Lotus Notes 8.5.2 is in beta and there are no guarantees that the features described here will be in the final product that IBM ships.

You can now control whether a widget’s thumbnail is visible in the My Widgets sidebar panel. As an administrator or power user you can add a hideThumbnail=true or hideThumbnail=false parameter to the palleteItem element in the widget’s XML. Users can hide any visible widget thumbnail using a new “Hide” user interface option. Users can un-hide all hidden widget thumbnails using a new “Show All” user interface option.

To prevent users from displaying a hidden widget thumbnail, add the following statement to the user’s plugin_customization.ini file:

com.ibm.rcp.toolbox/allowUserShowHideWidgets=false

An administrator or power user can create a widget, export it, and manually add a flag that controls whether the widget is hidden on the My Widgets sidebar panel. If you install a widget that has been modified in this way, the widget will not be visible on the My Widgets sidebar panel. A “Show All” option becomes enabled. The attribute that controls this feature is hideThumbnail and is set in the widget’s .XML.

  • hideThumbnail=true — Hides the widget thumbnail in the My Widgets sidebar panel
  • hideThumbnail=false — (default) Displays the widget thumbnail in the My Widgets sidebar panel

Example:

<?xml version="1.0" encoding="UTF-8"?>
<webcontextConfiguration version="1.1">
<palleteItem hideThumbnail="true" id="Test1"
    providerId="com.ibm.rcp.toolbox.prov.provider.ToolboxProvisioning"
    title="Test1" url="file:///c:/provUpdateSite2/site.xml">
    <data>

You can disable display of the client’s “Hide” and “Show All” options by adding the com.ibm.rcp.toolbox/allowUserShowHideWidgets preference to the user’s plugin_customization.ini file.

  • com.ibm.rcp.toolbox/allowUserShowHideWidgets=false — Prevents display of Hide” and “Show All” options
  • com.ibm.rcp.toolbox/allowUserShowHideWidgets=true — (default) Allows display of Hide” and “Show All” options