e4 1.0 M4 - New and Noteworthy

It's cold and dark February, and all the e4 committers have been holed up, hacking away furiously to produce another milestone along the path to the e4 1.0 release. Here are some of the more noteworthy things available in milestone build M4 (February 26, 2010) which is now available for download. See the build notes for details about bugs fixed and other changes.


e4 compatibility layer Work on the e4 compatibility layer continues in parallel with the introduction of new e4 APIs for implementing this bridge. Our goal for this layer is to provide API compatibility for plug-ins written against 3.x versions of the Eclipse platform. Currently, a number of views from the Java and Debug perspectives, and Java editors can be opened. Context menus and toolbars are beginning to be populated and parts that react to other parts such as the Properties views accurately display the selected information. See the wiki page for details on how to build and run the compatibility layer.

New look for for the workbench The compatibility workbench in this milestone also serves as an early prototype of the new styling being designed for the workbench. The rounded edges of part stacks, including the shadowed borders and gutters between stacks, reflect the current direction in the design mockups. The tabs have been modified to remove tab rendering from non-selected tabs. Refinement in colors, fonts, and interaction design for the tabs are still underway. The designer's mockup is posted on the e4 visual design wiki, so you can compare where we are in this milestone to where we are going.

An e4 application's window can be seen rendering
    Eclipse 3.x views and editors. The application has been suspended due to a compiler error and the
    variables of the currently selected stack frame are displayed to the user for analysis.

Flexible tab rendering As part of the ongoing effort of working towards a new look for e4, new API was introduced in SWT 3.6 for pluggable CTabFolder rendering. On the e4 side, this new API is now being used to introduce the new CTabFolder look.

Drag and Drop tabs You can now drag tabs from one tab folder to another. Once you click on the tab and drag it you'll see that it becomes semi-transparent and tracks with the mouse. As a nice side-effect of going through the model for the drag state, the live parts are being dragged - not pictures of them. For example, if you drag the Progress view it will continue to update during the drag operation. You can use the ESC key to abort the drag operation, which simply drops the element back where it came from.

Dragging a tab


Semantic File System The Semantic File System (SFS) continues the e4 work on flexible resources and brings in a capability to work with a non-file-system-based content.

The SFS allows the resource model to tap a variety of sources of information that reside on the Internet or a corporate network. The minimal requirement is that the source of information exposes its content in the form of Internet resources. That is, pieces of information that can be addressed via URI/URL and transferred via a byte stream. The resource-based content will usually be accessed via the HTTP protocol but the SFS also allows plugging in other communication protocols.

Remote content exposed via SFS can be mounted as a resource hierarchy underneath an Eclipse project so that standard Eclipse editors/tools can work with this content as if it were coming from the local file system.

You can start playing with local-only aspects of the SFS by creating a new project and choosing SFS as a file system implementation:

Create new project on SFS

You can discover the full capabilities of SFS by running through SFS Examples that demonstrate additional features and aspects of the user interface.

SFS team integration The Semantic File System integrates with different aspects of the Eclipse Platform Team support:
  • Repository Provider to control content lifecycle (e.g. open for edit, revert, etc)
  • Synchronization support to control flow of changes between Eclipse and remote sources of information
  • History View
  • Merge/Compare

For example, you can share the project via the SFS Repository provider in order to enable FileModificationValidator and MoveDeleteHook functionality:

Share SFS project

Or you can open the Synchronize perspective and examine your changes using Compare Editor:

Share SFS project

For more information about Semantic File System, see the SFS wiki.

The SFS is currently in an early incubation phase so that the APIs and the functionality are likely to be changed/extended in the upcoming milestones.

e4 Visual Designer

e4 project wizard A project wizard has been added to help creating a simple e4 application project.

A screencast is provided to help getting started with an e4 application. It shows how to develop, run and deploy an e4 application using the e4 wizard and e4 Visual Designer.

Hierarchical outline view The following new features have been added to the Hierarchical outline view:
  • DnD for moving and copy
  • DnD creation from Palette
  • Copy/Paste/Cut
  • Undo/Redo

Model integrity control Model integrity control in the current e4 workbench is very weak. The only model integrity control currently provided is the integrity of the java programming language itself. The UI meta model provides almost no integrity checking. Since e4 Visual Designer relies on the UI meta model, we need additional model integrity control.

A command-based mechanism has been added in both the Outline view and WYSIWYG editor to guarantee the correctness of the UI model and provides the undo/redo capability.

Perspective switching A context menu has been added in the Outline view to switch one perspective to another.

Change the active part A context menu has been added in the Outline view and WYSIWYG editor to change the active part contained in a PartStack.

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