Twitter Logo Follow us on Twitter
Project Information About this project

RAP 1.1 M4 - New and Noteworthy

Here are some of the more noteworthy things that will be available in the milestone build M4 (May 6, 2008) which is now available for download.

This list shows all bugs that were fixed during this milestone.


General

CVS Reorganization Since the number of RAP projects has increased in the past, we decided to reorganize the structure of our source code repository to make it more concise. Thus we started to introduce different subfolders. Besides the sandbox there's now a new folder called runtime which contains the projects jface, jface.databinding, ui, forms, views, and workbench which has been adopted to the Eclipse 3.4 code page. If you work against CVS, you have to replace the old versions of these projects with those from the runtime folder.

The CVS reorganization is an ongoing effort and is scheduled to be finished with the RAP 1.1 release. If you want to stay tuned, you can set yourself CC to bug #201257. The updated team project set provided here contains all projects you need for RAP development.


RWT

RWT Split-up RWT has been split into a host bundle and qooxdoo 0.7 fragment. This was done to enable us to start working on the upcoming qooxdoo 0.8 version. This split-up will also allow interested parties to develop other client-side implementations for RAP in the future.

Developers who work against CVS have to check out the fragment org.eclipse.rap.rwt.q07 and include it in their launch configurations.

Note: Customize your build process so that the org.eclipse.rap.rwt.q07 fragment is included. Ensure also that it's listed under the osgi.bundles property in your config.ini but doesn't get started.

Theming Support for theme files in CSS format
RAP supports theme files in CSS syntax now. CSS theme files for RAP must be valid CSS 2.1 files, except for a couple of RAP specific properties and pseudo classes.

The following is an example for a simple CSS theme file:

  * {
    backgound-color: white;
  }
  
  Button[PUSH], Button[TOGGLE] {
    border: 2px solid blue;
    color: rgb( 17, 23, 103 );
    background-color: #f9f9f9;
  }
  
  Button[PUSH]:hover, Button[TOGGLE]:hover {
    background-color: white;
  }
          

The support for the new syntax is just the first step towards a more flexible theming. Internally, the theming engine is still based on the old properties. As an effect, only a subset of the flexibility provided by CSS is already supported. For more information on the topic, have a look at the RAP Help.

Developers are encouraged to write CSS theme files now. The old property-based theme files are still supported but considered deprecated.


Workbench

Eclipse 3.4 Adoption The RAP counterparts of JFace, Workbench, Forms and Databinding have been migrated to the 3.4 code base.

During this effort, we tried to achieve feature completeness as far as possible to get a clear picture of what is needed to enable single sourcing of the RAP and RCP Workbench in the future.

Here are some of the more noteworthy things that are now available:

  • Presentation

    The workbench demo comes with a presentation sketch that makes use of the newly adopted presentation support. Launch the demo and use Window > Preferences > Demo Prefernce Page to switch between the available presentations. After that, you need to reload the browser page in order to see the changes.

  • Preference Pages

    Support for preference pages is now available. Note that in order to keep preference settings session scoped, you need to initialize the PreferenceStore of the page with a suitable PreferenceStore. AbstractUIPlugin#getPreferenceStore() returns such an implementation.

  • IMemento for workbench state persistence

    The save and restore mechanism must be activated like shown in the snippet below.

    public class DemoWorkbenchAdvisor extends WorkbenchAdvisor {
    
      public void initialize( IWorkbenchConfigurer configurer ) {
        getWorkbenchConfigurer().setSaveAndRestore( true );
        super.initialize( configurer );
      }
    
    [...]
                

Please note due to the complexity of this transition there may still exist some problems, in particular with the newly introduced functionality. Within the upcoming RC development cycles we will focus on bug fixes. Please feel encouraged to try out the current milestone and provide us with feedback.


Tooling

RAP JUnit RAP provides an equivalent to the "PDE JUnit Tests" to allow to run tests that require an OSGi environment up and running.

The snippet below shows how a RAP JUnit test case looks like. To compile such a test, the containing plug-in needs a dependency on org.eclipse.rap.junit. This allows to use the RAPTestCase that provides UI-Updates during the tests. If you don't want to see UI-updates during the test runs, you can directly use org.junit.TestCase instead. In order to run a test, choose Run As > RAP JUnit Test from the editors' context menu.

public class RapJUnitTest extends RAPTestCase {
  public void testOpenView() {
    try {
      IWorkbenchPage page = getPage();
      page.showView( "org.eclipse.rap.demo.DemoTreeViewPartI" );
    } catch( PartInitException e ) {
      e.printStackTrace();
    }
    assertEquals( 1, getPage().getViewReferences().length );

    getPage().hideView( getPage().getViewReferences()[ 0 ] );
    assertEquals( 0, getPage().getViewReferences().length );
  }

  private IWorkbenchPage getPage() {
    IWorkbench workbench = PlatformUI.getWorkbench();
    IWorkbenchWindow window = workbench.getActiveWorkbenchWindow();
    return window.getActivePage();
  }
}
          

RAP JUnit supports only the 3.x Test Runner at the moment.


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