Skip to main content
Jump to: navigation, search


Revision as of 18:28, 4 September 2007 by (Talk | contribs) (Draft plan for RAP 1.0)

| RAP wiki home | RAP project home |

RAP development plan

This document is a draft and is subject to change, we welcome all feedback.

To ensure the planning process is transparent and open to the entire Eclipse community, we (the RAP project team) post plans in an embryonic form and revise them throughout the release cycle.

Draft plan for RAP 1.0

  • 2006-06 - 2006-09 initial code contribution: Java component library for UI development (done)
  • 2006-10: Moving widget toolkit to org.eclipse packages, re(de)fine widget toolkit api (done / without milestone release)
  • 2007-02 M1: Basic WebWorkbench implementation running on OSGi (functionality implemented - release targeted for first week of february) (done)
  • 2007-03 M2: extending workbench functionality, initial work on Perspective switcher, extending jface functionality (dialog framework) (done)
  • 2007-04-27 M3: move to org.eclipse.swt, org.eclipse.jface, org.eclipse.ui namespaces, .war deployment, ViewActions (basic implementation), Taborder (done)
  • 2007-06-08 M4: move to qooxdoo 0.7, finalize move to a RCP API subset, implement untyped listeners, adapt codebase to RCP 3.3, theme management, expand JFace, Workbench implementation (open/close workbench parts, ...) (done)
  • 2007-07-13 M5: background process management (ProgressMonitor, Display.syncExec ...), finalize new table component, branding functionality, performance optimization (client side widget cache), expand Workbench implementation (perspective extensions, perspective switcher, ...), client side font size calculation, data binding (done)
  • 2007-08-17 M6
    • Provide all API for Release 1.0
      • check for UnsupportedOperationException (done)
      • move required classes from w4t to rwt bundle, refactor package names (done)
      • revise request parameter names (w4t_startup, w4t_custom_service_handler) (done)
      • introduce org.eclipse.ui plug-in (done)
      • resolve api differences for Dialogs, Color, Font, Image (done)
      • mark Adaptable non-api (done)
      • Provide facade for TextSizeDetermination (done)
      • Define API for custom widget developers
    • performance optimization
    • finalize TableViewer, TreeViewer
    • branding functionality (done)
      • servlet name
      • favicon
      • title
      • theming
      • make index page body configurable
  • 2007-09-14 RC1: Code freeze for 1.0 (IN PROGRESS)
    • final performance optimization
    • error handling
      • deliver exceptions as HTML page with HTTP status 500 (done)
      • change client-side response processing to react on HTTP status != 200 (done)
    • robustness
      • verify JavaScript response (e.g. detect initial comment) and react accordingly (warning, session restart) (done)
      • 190762 "confirm exit" message in branding (displayed when pressing F5, location change)
      • handle requests from different browser tabs/windows: deliver HTML page that informs the user that there is already a session running and provide a link to start a new session
      • request versioning (request counter): in case of an invalid request, send above mentioned HTML page
      • handle deep links when there is already a session running: inform user that request has been processed by existing session, optionally send request when activating browser tab/window
      • Message to the user when connection is lost (see 183213): let the user retry to send the request, terminate/clean up client application when problem persists. Re-check 188045
      • move initialization code from EngineConfigWrapper to bundle startup
    • fixing of major bugs
      • 186804 Can't set a textfield value if text is too long, verify that this also solves 200910 (done)
      • 187258 Support doit on ShellEvent for shellClosing (done)
      • 187540 Dynamically generated context menus do not lay out correctly (done)
      • 191964 SWT.MULTI for Tree broken
      • 196911 Invalid value Text#getText with opened shell (done)
      • Implement 'empty' API: VerifyEvents, 200394, 200396, 200397, 187252
      • Fix bugs introduced with API cleanup: 201403, 201225, 201286, 201528 (done)
      • 190762 Ask before browser window/tab is closed
      • 188045 Problem with character-encoding of request data
      • 200390 URLImageDescriptor cannot resolve image URLs with platform:/ schema
      • 199965 Activate event on shell open
      • 201080 [Text] disposing of focused text widget causes JavaScript error
  • 2007-09-28 v1.0: Release 1.0
    • fixing of critical bugs

The work will be conducted in the following components

Component: org.eclipse.rap.ui


  • WorkbenchAdvisor, WorkbenchWindowAdvisor, ActionBarAdvisor
  • extension of menubars / toolbars by extension points
  • WorkbenchWindow SelectionService
  • WorkbenchPage PartListener

  • IWorkbenchPart, IViewPart
  • IWorkbenchPart: maximize, minimize, restore (done)
  • IWorkbenchPart: Workbench Actions for opening workbench parts
  • IWorkbenchPart: Close-Button (configuarble)
  • Toolbar, Menu for ViewParts

  • ActionSets: IWorkbenchWindowActionDelegate


  • definition of perspectives by IPerspectiveFactory (partly done - finalizing implementation e.g. StandaloneView)
  • Perspective extensions
  • Perspective Switcher
  • Perspective Actions(open, close etc)
  • Perspective Name in WindowTitle

Component: org.eclipse.rap.jface

  • Actions
  • MenuManager
  • CoolBarManager
  • Structured Viewers: TreeViewer, TableViewer
  • WindowManager, Window, ApplicationWindow
  • ImageDescriptor, ImageRegistry
  • Dialog Framework (done for the most frequently used classes)

Component: org.eclipse.rap.rwt

  • Font: base implementation (done)
  • Font: font size calculation

  • Image: ImageLoader with size calculation
  • Table: Extending the current implementation to match SWT (e.g. inline-editing, bounds, font, and color for TableItem, images, etc.)
  • Tree: Extending the functionality to match SWT Tree (e.g. selection should not cause expand event, Images etc.)
  • Browser-Widget (mostly done)
  • Z-Index (done)
  • Modify-Event (done for existing widgets as there are Text and Spinner)
  • Menu: Extending the functionality to match SWT (e.g. enable and visible properties, ArmEvent for MenuItem, MenuEvent for Menu, etc.)

Community involvement desirable

the implementation of the following functionality will largely depend on community involvement

  • StatusBar (implemented by RAP team)
  • TraverseEvents? (deferred)
  • Short-Cuts (Accelerator) (deferred)
  • Preferences (deferred)
  • Drag&Drop of Workbenchparts (deferred)
  • Columns for the tree widget (used e.g. by the PropertySheet) (implemented by RAP team)

Out of scope for version 1.0

  • IEditorPart, IEditorInput (done)
  • Workspace, Resources
  • Help System, context sensitive help, HelpEvents
  • KeyEvents
  • Low-Level-MouseEvents
  • Paint-Events
  • Undocked ViewParts
  • Navigation
  • Accessibility
  • SWT-AWT - Bridge
  • StyledText
  • Cursor

Back to the top