Skip to main content
Jump to: navigation, search

Rap10M6 News

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

| RAP wiki home | RAP project home |

RAP 1.0 M6 - New and Noteworthy

This document will become the New and Noteworthy page for the next milestone release and meanwhile serves to document the development progress.

All features documented here can be obtained from CVS HEAD.

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:

  • Table#getItem(Point) and the corresponding TableViewer methods getItem and getItemAt
  • Tree#getItem(Point) and the corresponding TreeViewer methods getItem and getItemAt
  • Methods to control an editable Combo (getText, setText, clearSelection) and setVisibleItemCount that gives a hint on how many items are visible in the drop.down list.

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 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 has no more its default attribute
  • org.eclipse.rap.ui.entrypoint now needs an id in order to identify it
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


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.

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)

Back to the top