platform ui R3.0
platform user interface
Eclipse documentation banner
Overall 3.0 Plan
The 3.0 plan below is a proto plan and input from the community is very welcome.
Last revised: Monday June 23, 2003.

Overall Platform UI themes
  • Improve the User Experience:
    • Evolve the Eclipse user experience
    • Improve UI scalability
    • Improve initial user experience
    • Aid ongoing learning
    • Improve UI affordances (visual cues)
  • Improve UI Responsiveness
  • Rich Client Platform
Evolve the Eclipse user experience
  • New look / graphic design.
  • Better integration with platform look and feel on non-Windows platforms.
  • Lighter-weight dialogs and wizards.
  • Floating toolbars and views.
  • Transparency in floating toolbars and views.
  • Invoking commands via mouse gestures.
Improve UI scalability
  • Investigate scalability problems in Eclipse and Eclipse-based products.
  • Support scaling down the UI for specific user roles.
  • Minimize the number of similar views and actions.
Improve initial user experience
  • Improved welcome page, tailored to user's role(s).
  • Enable progressive exposure to features.
Aid ongoing learning
  • Apply welcome page, Tips & Tricks, and Help more effectively.
  • Improve affordances (visual cues) indicating when help is available.
Improve UI affordances
  • Indicate when help is available, with action to access it.
  • Indicate when editor is maximized, with action to toggle maximized state.
Improve file encoding support
  • Encodings contributed via extension point.
  • Same encodings used in preferences and text editor.
Improve keyboard support in secondary windows
  • Key bindings currently work only in the main Eclipse window.
  • They should also apply in secondary windows like dialogs, wizards, and floating views.
Improve editor management
  • The current mechanism for switching between editors using tabs does not scale to having many open editors.
  • Implement an alternative mechanism for switching between editors that is scalable and stable, yet efficient.
  • Perform user testing and iterate to improve the UI for editor switching.
  • Allow the same file to be opened simultaneously in different editors.
Allow editors to open files outside workspace
  • Allow files outside the workspace to be opened in Eclipse.
  • Allow this to be triggered by opening a file in the OS shell.
Display HTML in a widget
  • Allow the embedded HTML widget provided by SWT to be used in Workbench editors and views.
  • Provide a preference page for configuring the HTML widget (proxies, etc.)
  • Adapt the Welcome page to use the HTML widget.
Improve workspace synchronization with file system
  • Ensure that the Workbench updates properly when automatically synchronizing the workspace with the file system, without interrupting the user.
  • Provide any preferences needed for configuring automatic synchronization.
Content-type-based editor lookup
  • Support a notion of content type for files and resources, and use this to drive decisions like which editor to use.
  • Consolidate the several existing file-type registries in Eclipse.
  • Allow different actions on a file for different content types.
Improve support for opening workspaces
  • Use a user-specific default workspace location more suitable for shared multi-user Eclipse installs.
  • Facilitate switching between workspaces.
Provide a general purpose navigator
  • provide a more flexible, general purpose, extensible navigator infrastructure
  • not specifically tied to Workspace
  • allow content providers and related actions to be plugged in
  • subsume the current Navigator, Package Explorer and various Navigator-like views in WSAD
Improve UI Responsiveness
  • Support concurrent activities such as background builds and searches.
  • Establish quantitative UI responsiveness targets, verified by benchmarks.
Enable Eclipse to be used as a rich client platform
  • Rearchitect the Platform UI into "Workbench Proper" and "IDE Tooling" layers:
    • The "Workbench Proper" layer defines all the general-purpose mechanisms in the current Workbench, but no concrete actions, views, preference pages, or other contributions built-in, and no dependencies on org.eclipse.core.resources.
    • The "IDE Tooling" layer defines the concrete contributions that make up the current IDE Tooling aspect of the Platform UI, but contributed using only APIs from the Workbench Proper layer.
  • The two layers will be implemented in separate plug-ins and will have separate install-time features.
  • Applications can build directly on the Workbench Proper layer, and can ship without the IDE Tooling layer if they don't use it.
Provide user settings
  • Allow preferences and other settings to be associated with the user rather than the workspace. The same user preferences will apply across all workspaces opened by the user.
  • Investigate shared/team preferences.
Support adding and removing plug-ins dynamically
  • Update the Workbench appropriately when contributions are added and removed due to plug-ins being dynamically added and removed.
  • Ensure that the Workbench drops all references to plug-ins being removed.
Allow plug-in deactivation
  • Ensure that the Workbench drops all references to plug-ins being deactivated.
Support product branding
  • Allow products to customize the look and feel of Eclipse to convey a particular product or corporate brand.
  • Allow plug-ins to be developed independently of a particular brand, enabling them to be used and integrated across different products.
Accessibility (support for people with disabilities)
  • Evaluate overall Eclipse SDK accessibility on GTK 2.2.
  • Continue to interact with the community to determine the needs of people with disabilities.
  • Fix problems as needed to make Eclipse accessible and to comply with Section 508 legislation.
Improve action contributions
  • Simplify the action contribution and command APIs and extension points.
Improve UI guidelines
  • Bring guidelines up to R2.1 level.
  • Continue to evolve them concurrently for R3.0.
Support logical resources
  • Allow the Workbench to present and manipulate items in terms of logical resources.
  • These may be represented by multiple underlying files (e.g. an Enterprise Bean) or by a portion of a file (e.g. a resource in an archive).
 
Next Milestone Plan (3.0 M7 : February 13, 2004)
Tod
  • M7 pre Eclipse Con (Due last week of Jan)
    • Responsive UI (2 weeks)
      • Feedback on background work (i.e. remove need for progress view)
      • Respond to the following:
        • Something changed in a background view
        • Some error occurred in a background Job
        • View is not valid, i.e. working
        • View information; used be on the title bar
        • Clippy behaviour? Do we need to consider some external single place for notification and information?
  • M7 post eclipse con
    • JFace
      • Decorator performance improvements
      • Bug fixing
    • Enabling workbench (open resource dialog) for appropriate jobs
    • Progress view (Stefan)
    • Bug fixing
    • UI usability
    • tooling for generating/validating holes and stale activity references categories etc...
Kim
  • M7 pre Eclipse Con (Due last week of Jan)
    • Scalability
      • Work on the WSADIE concrete use case for this
        • fix bugs resulting from this
      • OOBE/Welcome experience do what is necessary for Dejans team in TO to be able to keep working on this, be involved in the design and direction
        • need a startup hook instead of default perspective on open
      • OSGI related needs
      • Show all
Deb
  • M7 pre Eclipse Con (Due last week of Jan)
    • OSGI Support
      • Import and update Woodys code based on M6
      • Provide something for students on Jan 12
      • Establish scenarios we want to support
        • Add a plug-in
        • Update a plug-in
        • Etc
      • o Work with KH on common support across scalability and OSGI
Chris
  • New Look
    • Work with New Look team providing weekly updates to new look based on feedback from usability and design teams
Doug
  • Performance and leak checking
  • Minor key related bug fixes
  • Preferences (in terms of Scalability)
    • Expanded API for user preferences separate User and System preferences for export
    • Improved import/export
Nick
  • Make the Workbench be dynamic-aware. Minimum support: allow plug-ins to be dynamically added.
  • Investigate Lotus RCP M11, in particular:
    • their changes to toolbars
    • their changes to L&F (no view titlebars, limited layout customization)
    • their support for themes (i.e. branding)
  • Work with students on new RCP demo app, illustrating generic workbench and dynamic plug-ins.
Stefan
  • Test suite for new RCP APIs.
  • Fill in holes in RCP API definition and implementation.
  • Improve existing browser example, and release it as regular CVS project
Other Items
  • Commands
    • [would like] Explicit Menus and toolbars extension defining them in terms of commands
    • Action.setAccelerator() will not have meaning any more
    • what about the type of actions + radio + checkbox etc…
    • API for key bindings so that no more hardcoded key listeners
    • Ctrl+shift problems on GTK (42009)
    • Mac accelerators not drawn properly
    • Parameterized handlers
    • Styles for commands so menus can do the right thing with them
Next Milestone Plan (3.0 M5 : November 21, 2003)
Overall goals for M5
  • Merge RCP stream into HEAD.
  • Complete roles support (in terms of activities).
  • Improve the user experience in the area of editor management.
  • Prototype ideas for new look.
  • Bring UI Guidelines up to 2.1 level.
Key Dates
  • R3.0 Milestone 5: November 21, 2003
  • Last day of development: November 17, 2003
  • Build/test/fix pass: November 18-21, 2003
General Items
  • inbox tracking
  • testing
  • bug fixing
Enable Eclipse to be used as a Rich Client Platform
  • Fine tuning split between Generic Workbench and IDE Workbench
  • Expose CoolBarManager as API in JFace and use it in workbench configurer APIs
  • Validate porting guide against downstream plug-ins in Eclipse SDK
  • Fix up test harnesses (PDE JUnit and automated test harness)
  • Fix up org.eclipse.ui.win32 plug-in
  • Catch up to latest changes in HEAD, then merge into HEAD stream
Improve UI Scalability
  • Polish UI for roles
  • Role management and activity management API design
  • Content-based object contributions (e.g. actions targeting XML files)
Improve Action Contributions
  • Review existing bug reports against action contributions
  • Investigate new API (both programmatic and XML) for improving contributions and contributing in terms of commands
  • Investigate key bindings in dialogs
Improve UI responsiveness
  • Progress service API design and UI presentation
  • API review
  • Investigate how New Look affects the progress feedback
Improve editor management
  • Implement a drop-down control for switching between editors, as an alternative to the editor tabs
Improve UI guidelines
  • Circulate R2.1 level UI guidelines for review by product teams
Instrumentation
  • Instrument Eclipse to gather usability data about preferences, and use and customization of perspectives
Previous Milestone Plan (3.0 M4 : October 10, 2003)
Overall goals for M4
  • Absorb team restructuring
  • Complete the RCP refactoring.
  • Demonstrate roles concept and start fleshing it out.
  • Improve the user experience in the area of editor management.
  • Bring UI Guidelines up to 2.1 level.
Key Dates
  • R3.0 Milestone 3: October 10, 2003
  • Last day of development: October 3, 2003
  • Build/test/fix pass: October 6-10, 2003
General Items
  • inbox tracking
  • testing
  • bug fixing
Enable Eclipse to be used as a Rich Client Platform
  • Complete refactoring into RCP and IDE layers
  • Catch up to changes in HEAD stream
  • Fix up test suites and examples
  • Coordinate changes with Text team
Improve UI Scalability
  • Spike-through and demo of roles concept
  • Investigate product-level configuration of visibility of actions and other contributions
  • Role management API design
  • Resolve notions of context vs. activity
Improve Action Contributions
  • API design and implementation of new commands infrastructure
  • API design and implementation of new contexts mechanism
  • Test suite for commands infrastructure (TBD)
  • Test suite for contexts mechanism (TBD)
  • Complete move to new key filter mechanism
  • Resolve platform differences in key filter mechanism with SWT team
  • Shortcuts on menus
  • Key bindings in dialogs
  • Programmatically executing commands (i.e. by id)
Improve UI responsiveness
  • Stability improvements to background job manager
  • Moving slow features (e.g. Open Resource dialog) onto Job API
Improve UI guidelines
  • Bring guidelines up to R2.1 level
Instrumentation
  • Instrument Eclipse to gather usability data about preferences, and use and customization of perspectives
General Purpose Navigator
  • On hold - no activity
Previous Milestone Plan (3.0 M3 : August 29, 2003)
Overall goals for M3
  • Make good progress on implementation of high risk, high impact plan items.
  • Improve the user experience in the area of editor management.
  • Bring UI Guidelines up to 2.1 level.
Key Dates
  • R3.0 Milestone 3: August 29, 2003
  • Last day of development: August 25, 2003
  • Build/test/fix pass: August 26-28, 2003
General Items
  • inbox tracking (6 days)
  • testing (21 days)
  • bug fixing (14 days)
Enable Eclipse to be used as a rich client platform
  • Complete initial cut of new application API, generic workbench implementation, and re-implementation of IDE in terms of them (10 days; target Aug. 1)
  • Move all IDE-specific UI API and implementation into IDE-specific UI plug-ins (8 days; target Aug. 8)
  • Post-operative restructuring workbench and IDE workbench internals (10 days)
  • Write description of how to write applications (10 days)
  • Complete proposal to make breaking changes (3 days)
  • Complete porting guide chapters (2 days)
  • Coordinate with restructuring of Help component (3 days)
  • Coordinate with restructuring of Update component (1 day)
  • Coordinate with restructuring of Text component (1 day)
  • Catching up to changes in HEAD stream (3 days)
Improve UI scalability
  • API design and implementation of new commands infrastructure (TBD)
  • Test suite for commands infrastructure (TBD)
  • API design and implementation of new contexts mechanism (TBD)
  • Test suite for commands infrastructure (TBD)
  • Test suite for contexts mechanism (TBD)
  • Investigate backwards compatibility (TBD)
  • Proposal to make any breaking changes (TBD)
  • Porting guide (TBD)
General Purpose Navigator
  • Complete design of Navigator (TBD)
  • Make good progress on implementation of Navigator (TBD)
  • Proposal to make (minor) breaking changes (TBD)
Improve UI responsiveness
  • Feature improvements to background job manager (5 days)
  • Stability improvements to background job manager (5 days)
  • Moving slow features (e.g. Tasks/Problems view update) onto Job API (10+ days)
Improve editor management
  • Implement a drop-down control for switching between editors, as an alternative to the editor tabs (7 days)
Improve UI guidelines
  • Bring guidelines up to R2.1 level (3 days)
Absences
  • vacation: 32 days
Previous Milestone Plan (3.0 M2 : July 18, 2003)
Overall goals for M2
  • Reduce uncertainty through design work and prototyping on high risk, high impact plan items.
  • Improve the user experience in the areas of editor management and perspective customization.
General Items
  • inbox tracking (14 days)
  • testing (7 days)
  • bug fixing (14 days)
Enable Eclipse to be used as a rich client platform
  • Detailed design of the Rich Client Platform (17 days)
Improve UI scalability
  • Prototype mechanisms for managing the progressive exposure of views and commands, independent of the perspective mechanism (8 days)
  • Improvements to action architecture (7 days)
General Purpose Navigator
  • Detailed design of the general purpose Navigator view (19 days)
  • Prototype incorporating the following (15 days):
    • support for workspace structure (projects)
    • old Navigator-like presentation of simple projects
    • Package Explorer-like presentation of Java projects
Improve UI responsiveness
  • UI framework for background job manager and progress reporting (13 days)
  • Preliminary UI for job progress indicator and details view (5 days)
Improve editor management
  • Implement a drop-down control for switching between editors, as an alternative to the editor tabs (7 days)
Provide user settings
  • Gathering requirements for user settings (3 days)
  • Proposal for user settings (4 days)
Improve perspective customization dialog
  • Show menubar and toolbar location for items
  • Show descriptions for items
  • Improve organization of dialog (separate tabs for shortcuts and command sets)
  • (5 days)
Improve UI guidelines
  • Bring guidelines up to R2.1 level (3 days)
Absences
  • vacation: 26 days
Previous Milestone Plan (3.0 M1 : June 6, 2003)
General Items
  • Working on PR backlog.
Improve UI scalability
  • Investigate opportunities for reducing the number of Navigator-like views in Eclipse-based products.
  • Investigate opportunities to better exploit the Properties view.
  • Prototype mechanisms for managing the progressive exposure of views and commands, independent of the perspective mechanism.
  • Improvements to perspective customization dialog: show location, description, and categories for items.
Improve UI responsiveness
  • Investigate and prototype a background job manager.
  • Support progress monitoring and status reporting of multiple background operations.
Improve editor management
  • Implement a drop-down control for switching between editors, as an alternative to the editor tabs.
Enable Eclipse to be used as a rich client platform
  • Proposal for splitting Platform UI into the "Workbench Proper" and "IDE Tooling" layers.
Legend
item is under development. item is under investigation.
item is finished. ( ) item is time permitted.
[>3.0] item is deferred.