Skip to main content
Jump to: navigation, search

Rap10M6 News

Revision as of 16:57, 17 August 2007 by (Talk | contribs) (RAP Common)

| RAP wiki home | RAP project home |

RAP 1.0 M6 - New and Noteworthy

Here are some of the more noteworthy things available in milestone build M6 (August 17, 2007) which is now available for download.

RAP Common

API Cleanup

The org.eclipse.rap.rwt plug-in no longer depends on org.eclipse.rap.w4t. All code necessary for RWT was re-packaged and moved to org.eclipse.rap.rwt. Most applications should not be affected at all, in some cases it may be necessary to re-organize imports. In case your plug-in(s) depend on org.eclipse.rap.w4t, please remove this dependency.

We provided some API beforehand that is not yet functional and will be implemented until 1.0. The list below gives an overview:

The VM arguments org.eclipse.swt.clientLogLevel and org.eclipse.swt.clientLibraryVariant were changed to org.eclipse.rwt.clientLogLevel and org.eclipse.rwt.clientLibraryVariant respectively.

The two most used request parameter names lost their w4t prefix. In order to start a distinct entry point, just replace w4t_startup with startup like this: localhost:1234/rap?startup=myEntryPoint. The request parameter for custom service handlers also changed its name to custom_service_handler.

The UICallBackUtil class can now be found in org.eclipse.rwt.lifecycle.UICallBack. The names of its activate/deactivateUICallBacks methods have been shortened to activate/deactivate.

The factory methods Color#getColor( ... ), Font#getFont( ... ), and Image#findImage( ... ) have been moved to the new class

The work on branding functionality needs two little changes in your existing plugin.xml.

  • org.eclipse.rap.ui.theme no longer has its default attribute
  • org.eclipse.rap.ui.entrypoint now needs an id in order to identify itself

If you develop custom widgets for RAP, please note that some parts of the RWT API needed for this task are still considered provisional. The affected classes are those in the org.eclipse.rwt.lifecycle package, that are related to the widget life cycle, such as AbstractWidgetLCA, *LCAUtil, JSWriter. Although we don't expect heavy changes in this area, we think that technical progress might lead to modifications that also influence custom widgets.

Extension Point move

To be with RAP as near as possible at the original implementation of RCP we decided to repackage some bits to a new bundle called org.eclipse.rap.ui - an equivalent to the existing org.eclipse.ui plug-in. As a consequence some of the existing extension points have been moved to another namespace. Here is a list with all changes:

The RAP-specific extension points were moved from the org.eclipse.rap.ui.workbench namespace to org.eclipse.rap.ui. This affects:

  • adapterfactory
  • entrypoint
  • phaselistener
  • resources

Extension points for themeing were moved from org.eclipse.rap.swt to the namespace mentioned above. This affects:

  • themeableWidgets
  • themes

All other extensions points (like org.eclipse.ui.*) are not affected at all.

To adapt your existing plug-ins

  • open your manifest editor of your plug-in
  • switch to the "Dependencies" tab
  • replace org.eclipse.rap.ui.workbench with org.eclipse.rap.ui
  • switch to the "plugin.xml" tab in order to adapt the namespace changes according to the list above. PDE will help here.


Latest qooxdoo

We just migrated to the latest revision of qooxdoo, the client-side JavaScript library of RAP. Beside many bug fixes, with this update, two flavors of qooxdoo builds are provided. The one with which RAP runs by default is optimized in size and speed. Targeted to custom widget developers is the debug variant. When launching RAP with the -Dorg.eclipse.rwt.clientLibraryVariant=DEBUG VM argument, the debug version of qooxdoo is used that offers better readable JavaScript code.

Text Size Determination API

The API that serves as replacement for the SWT-GC functionalities for text size determination has been created. The methods textExtent(Font,String,int), stringExtent(Font,String), getCharHeight(Font) and getAvgCharWidth(Font) are available at the class

Table appearance

The TableItem now supports all appearance settings known from SWT. For each cell the background color, foreground color, font and image can now be defined separately.


Tree with columns

The Tree widget is now able to manage and display several columns per TreeItem. Also setting images for different cells and having nice headers are new features of the tree. As you can see on the screenshot, the default images are not needed anymore. Columns can be resized or packed to have an optimal user expierence.



Blocking Window

Due to API compatibility to RCP we implemented a solution for blocking windows and removed the IWindowCallBack mechanism. Note that there is still some work behind the scence to do, since the current implementation may be a little heavy weighted. See the example snippet that shows how to use the blocking mechanism with the InputDialog.

    String title = "Input Dialog";
    String mesg = "Enter at least five characters";
    String def = "default text";
    final InputDialog dlg;
    dlg = new InputDialog( getShell(), title, mesg, def, val );
    int returnCode =;
    if( returnCode == InputDialog.OK ) {
      inputDlgResLabel.setText( "Input Result: " + dlg.getValue() );
    } else {
      inputDlgResLabel.setText( "No Result" );

RAP Forms

Forms Suppport

There is initial support for the Forms Toolkit, Forms Editors and the like. The focus was put on API compatibility and functionality rather than mimicking the exact look of RCP Forms. The following is a list of the things that are already available:

  • ColumnLayout and TableWrapLayout
  • ExpandableComposite and Section
  • Hyperlink, ImageHyperlink (yet without actually showing the image) and HyperlinkGroup
  • TreeNode, Twistie and their common ancestor ToggleHyperlink
  • ScrolledPageBook
  • Form and ScrolledForm, FormToolkit
  • Form editors (FormEditor, FormPage, SharedHeaderFormEditor)


Thanks to the donation of a Fortune 500 corporation we were able to acquire additional resources to have this implemented.

RAP Workbench

New extension points

Commands can be implemented using org.eclipse.ui.handlers. With the org.eclipse.ui.menus extension point they can be placed in the main menu, view dropdown menus, context menus. They can also be added to the main toolbar, view toolbars, and various trim locations. The org.eclipse.ui.popupMenus extension point allows a plug-in to contribute to the popup menus of other views and editors. See org.eclipse.ui.popupMenus and org.eclipse.ui.menus documentation


If you ever wanted to customize the startup page, the page title or even the servlet name you can now use the org.eclipse.rap.ui.branding extension point. You can specify your own branding, specify settings like page title, favicon, servletname, etc. There is also an additionalHeaders element available to define own tags for the head of your page like meta informations. Each branding can also be associated with specific entrypoints to apply the branding only on those ones mentioned in your plugin.xml file. RAPBranding.png

The above features are just the ones that are new since the previous milestone build. Summaries for earlier milestone builds:

New for RAP 1.0 milestone build M5 (July 13, 2007)
New for RAP 1.0 milestone build M4 (June 08, 2007)
New for RAP 1.0 milestone build M3 (April 27, 2007)
New for RAP 1.0 milestone build M2 (March 2, 2007)

Copyright © Eclipse Foundation, Inc. All Rights Reserved.