Eclipse 3.0 - New and Noteworthy


New Look and Feel

The look and feel of the workbench has evolved. Here are some of the things you will notice:

  • Title bars and tabs for views and editors look different.
  • Title bars and tabs for views and editors include an affordance for maximize and restore.
  • Views include a button for collapsing (minimize).
  • Perspective switching/opening toolbar support has changed.
    • it can be docked on the top right (default), top left or left.
    • perspective buttons include text for quickly identifying the current perspective.
  • The fast view bar can be on the bottom (default), left or right.
  • Fastview bar size is reduced when there are no fast views.
  • Title bars and tabs have been merged into one to save space.
  • Drag and drop has been improved (better feedback while dragging).
  • Detached views are supported  (Windows and Linux GTK only, due to platform limitations).
  • Editor management has changed.
  • View local toolbar will move up next to the view tab to save space when possible.
  • Different tab folder styles and uses of color have been employed to help indicate active and selected views and editors more clearly.
  • Other minor items such as status bar style, border widths, shading etc...

The new Welcome

Eclipse 3.0 now opens with a new Welcome. It contains several pages allowing you to learn about Eclipse, follow tutorials, try out samples or learn what's new in this release. The new feature is fully pluggable and Eclipse-based products can define their own Welcome using the same mechanism.

Responsive UI

A number of changes have occurred in the UI to support a higher level of responsiveness. This includes support for running jobs in the background instead of tying up the UI and having to wait.

What has been added:

  • Progress view
  • status line entry showing what's running in the background
  • dialog for showing operations that can be optionally run in the background

The new Progress view showing the progress of a CVS checkout and a Workspace build background operation. Many user operations can now optionally be run in the background. When you see the progress dialog with the Run In Background button you can select it and the operation you are running will allow you to continue to work.

This dialog also shows you the details of other currently running operations in the workspace and informs you when one operation is blocked waiting for another to complete.

Scalable UI

The Platform has provided additional ways for controlling workbench clutter allowing Eclipse-based products to scale down what the user sees in the UI for various reasons.

What has been added:

  • Capabilities, allows filtering of currently unneeded functions
  • ability to dynamically add UI components (based on OSGI runtime)
  • ability to conditionally contribute to menus and toolbars based on the type of object selected (for example the "Run> Ant Build..." option should only appear on XML files which contain an Ant script).

Fast View support enhancements

Fast view support has undergone some significant changes:

  • support for left/bottom/right docking of the fast view bar
  • support for vertical and horizontal orientation of views when made a fast view
  • improved drag and drop feedback for creating fast views and moving the fast view bar

Editor management enhancements

A number of changes and enhancements have gone into the editor management in Eclipse.

What has been done:

  • support for single and multiple editor tabs
    • single is especially useful for those who tend to have many files open or who like using the keyboard to navigate editors
  • affordance for editor pinning. When limiting the number of editors that can be opened at once, some editors that should not be closed can be pinned, there is now an affordance to indicate when an editor is pinned
  • chevrons have been added to handle the overflow of editors with an extra indication of how many more editors are open then there are tabs on the screen
  • new menu options, keyboard shortcuts and key bindings available for editor management
    • Close Others - close all editors but the current
    • Close All - menu option available
    • Ctrl+e - dropdown list of editors supports type ahead

Improved Key Binding Support

Key bindings have been improved in the following ways:

  • key bindings are supported in Dialogs
  • help with matching multi-key shortcuts
  • minor tweaks to the key binding mappings

The Eclipse Workbench now contains basic support for themes. This currently goes as far as allowing customization of colors and fonts used in the workbench at both the user and product level.

Background workspace auto-refresh

Changes made in the local file system can now be automatically refreshed in the workspace. This saves you from having to do a manual File > Refresh every time you modify files with an external editor or tool. This feature is currently disabled by default, but can be turned on from the Workbench preference page.

Simplified manual build commands

The set of available build commands in the Project menu has been simplified. The confusing Rebuild All and Rebuild Project commands have been replaced with a single Clean... command. The Build Project command in the Project menu (and in context menus) has been made smarter. It will now also build out-of-date prerequisite projects of the selected project if necessary. A new Build Working Set sub-menu lets you choose a set of projects to be built; this command brings all projects in that working set up to date, building any prerequisite projects that are not in the working set if (and only if) required. And you can quickly toggle auto-build on and off with Build Automatically.

Project menu

Cheat sheets

Users can now be guided through long tasks with many steps using cheat sheets. This new feature allows developers to define steps using XML-based content files and optionally offer actions that perform the steps for the user. Several tutorials available off the new Welcome page use the cheat sheet mechanism.

Rich Client Platform

Eclipse now includes the Rich Client Platform (RCP). Eclipse was designed as a universal tool integration platform. However, many facets and components of Eclipse are not particularly specific to IDEs and make equal sense in non-IDE applications. The rich functionality in the Eclipse plug-in architecture, runtime, and workbench can now be leveraged in building arbitrary applications.

Here is a snapshot of a simple web browser implemented using the Eclipse RCP:

(See RCP home page more details.)

Dynamic, standards based runtime

The Eclipse runtime has been modified to run on top of an implementation of the OSGi framework specification (see This move increases the runtime's flexibility and paves the way for the use of Eclipse in a wider range of scenarios and environments. By choosing a standard base for the runtime, Eclipse developers are able to reuse existing function and infrastructure. Regular Eclipse users benefit from these changes as the runtime is now dynamic. New plug-ins can be installed into a running Eclipse and used without restarting.


SWT and AWT/Swing Interoperability

Embedding Swing/AWT widgets inside SWT widgets is now supported on Windows with JDK 1.4 and above, and on GTK and Motif with recent beta versions of Sun JDK 1.5.

This screen shot shows an SWT Shell containing a Swing JTable to the right of an SWT Tree.

swt and swing

(SWT snippet used for this example.)

SWT Browser widget

SWT has a new browser widget that can display HTML documents. This native widget is supported on Windows (using Internet Explorer 5.0 and above), Linux GTK and Linux Motif (requires Mozilla 1.4 GTK2; Mozilla 1.5 GTK2 and Mozilla 1.6 GTK2 are also supported), Mac (Safari) and QNX (Voyager).

browser widget

See the SWT browser snippet and the SWT FAQ for details. The Eclipse Browser plug-in shown above is available from the Eclipse download page in the Example Plug-ins.

Mac OS X improvements

The Mac OS X implementation of SWT has been significantly extended and improved, particularly in the following areas:

  • Eclipse Launcher support, including launcher arguments and tilde expansion for the -data parameter
  • Stability and performance
  • Native drag and drop support
  • Printing support using the Quartz-based Mac OS X Printing Manager. Developers can now print high-quality output on raster and PostScript printers, generate PDF files, or use the standard previewer.

Eclipse 3.0 on Mac OS X

SWT support for complex script and right-to-left language support

In order to handle right-to-left and complex scripts it is necessary to deal with several problems. For example, languages like Hebrew and Arabic are written from right to left, which requires the text to be reordered according to the Bidi Algorithm described in Unicode annex #9, before drawing and measuring. Other languages, like Arabic and Farsi, require contextual shaping, which means that the same character can assume different forms according to its position in the word. Other common problems are combined characters or ligatures (two characters that are joined together). Languages like Thai have special rules for word breaking and cursor navigation. Windows supports all cases previously mentioned. On GTK support for Bidi is implemented, but complex scripts (Thai, South Asian scripts) are still not fully supported.

complex scripts

SWT Virtual table and improved table performance

In addition to significant performance improvements in this release, Table now supports the SWT.VIRTUAL style. This lets developers create tables with large amounts of data quickly. When TableItems are needed, they are created on-demand.

virtual table

(SWT snippet used for this example.)

Other SWT improvements

There are numerous other new SWT features and improvements in this release, including:

  • Multiple Monitors
  • Non-Rectangular Windows
  • Add Items to System Tray
  • GTK Accessibility
  • TIFF Image Decoding
  • Color Cursors
  • Colored Cells in Tables
  • Italic Font in StyledText
  • Linux GTK on AMD64
  • Post Mouse/Keyboard Event to Event Queue

Previous     Next

Copyright 2000, 2004 IBM Corporation and others.