Here are descriptions of some of the changes of interest to plug-in developers made to the Eclipse Platform, Equinox and SWT for the 3.6 release of Eclipse.
|Platform test framework support for JUnit 4||The platform's automated testing framework now supports running tests with JUnit 4. The test framework previously only allowed running with JUnit version 3.|
|Headless external tool builders||
Launching support for Ant and external tools is provided by the new headless plug-ins
|Event admin added||The OSGi event admin specification provides a general purpose event bus for posting and sending events to event handlers. The Equinox event admin implementation has been added to the platform feature.|
|Help UI extensibility||New extension points allow additional buttons and
frames to be added to the help web application. In the image below the title search frame,
the rightmost button and the frame below the content page are all contributed.
|Customizable help footer||
The customization org.eclipse.help.base/footer allows a footer to be added to the Eclipse help system. This can be used for infocenters or in Eclipse-based products.
|Scoping by criteria in help system||The help web application now allows the table of contents, the
index and the search results to be filtered by book/topic or by criteria. Criteria are defined in
the table of contents or using the extension point org.eclipse.help.criteriaDefinition. The list of
displayed criteria is defined at the product level. Products which do not define criteria (including
the Eclipse SDK) will not show any UI for criteria.
|Sorting help topics||A new attribute "sort" has been added to the <toc> and <topic> elements in a table of contents which causes subtopics to be sorted alphabetically when the value is set to "true".|
|Reusable intro news reader||The EclipseRSSViewer class allows multiple RSS news readers to
be easily added to an intro page.
|See entries in keyword index||See entries can now be added to the help system keyword index.
|Extension point for help search||A new extension point org.eclipse.help.base.searchParticipant has been added. This allows clients to add documents not in the html or xhtml format to the search index used by the help system. This should be used in place of the deprecated extension point org.eclipse.help.base.luceneSearchParticipants which is not binary compatible across Lucene versions.|
|Multi-locale support in extension registry||The Equinox extension registry now supports running
in a multi-locale mode. When running in this mode, translated extension attributes can be
obtained for any locale, whereas they were previously only available for the system's
current locale. Multi-locale mode is enabled via the -registryMultiLanguage
command line argument, or by setting the Java system property eclipse.registry.MultiLanguage=true.
The registry also uses a new LocaleProvider service for obtaining the locale for a given execution context. This allows a system to provide an alternative mechanism for computing the current locale, rather than using the singleton locale defined by the Java runtime environment.
|New Equinox weaving feature||The byte code weaving work in the Equinox incubator has passed the
graduation review and the major parts of the work are now part of the Equinox distribution.
Equinox Weaving provides a general infrastructure for load-time byte code weaving for the Equinox OSGi runtime. Currently Equinox Weaving includes a weaver for AspectJ to load-time weave aspects into bundles (AspectJ Development Tools and the Scala IDE for Eclipse already use this to realize deeper integration with the Eclipse Java development tools, for example).
These four bundles are contained in the distribution:
|Multi-session Equinox console||The Equinox console has been enhanced to
allow multiple console sessions to be connected. Previous versions of the
Equinox console would only allow a single session to be connected at a time.
The console only allowed for connections from two built connection types,
through standard in/out or though a telnet port.
A new service interface has been introduced: org.eclipse.osgi.framework.console.ConsoleSession. Implementers of a console session register themselves as an OSGi service. The console implementation will then automatically use the console session for input and output of a console connection.
|Revert support in p2 director||The p2 director application now supports reverting to an earlier profile state from the command line. Use the new -revert argument to specify a previous profile state to revert to.|
|Browser can use WebKitGTK+||Linux users can now use WebKitGTK+ instead of Mozilla as the Browser control's native renderer.
See Can the Browser use the WebKit renderer on GTK?.
|Icon support for GTK Text widgets||The text widget can now display the search and cancel icons inside the widget. This runs on Linux platforms with a GTK version of 2.16 or greater.
|Mozilla browser support on Solaris SPARC||Mozilla browser support has been added for the Solaris SPARC platform (Solaris 10, GTK+).|
|Browser closing API||The new API method Browser.close() is used to
close a browser, but allows the close to be cancelled by an onbeforeunload handler.
See Snippet 326.
|Key events for F16-F20||New key event constants have been added for the keyboard function keys F16 to F20.|
|DND insertion feedback for tables||The default drop target effect for Table now supports DND.FEEDBACK_INSERT_BEFORE
|Horizontal mouse wheel||New event constants have been added for horizontal mouse wheels. See SWT.MouseHorizontalWheel and SWT.MouseVerticalWheel.|
|Variable tab stops in StyledText||New API in StyledText allows the application to specify a non-uniform sequence of tab stops.
See Snippet 325.
|StyledText: per line variable tab stops||
Tab stop support in StyledText has been improved to allow each line to have its own sequence of tab stops.
has been modified from Snippet325 to show this.
|CLabel set/get margins||New API has been added to CLabel to set and get the left, top, right and bottom margin spacing.|
A new field has been added to
|New API in Scrollbar||
New methods have been added to Scrollbar to return the bounds for the thumb and its track.
|State mask for selection events||SelectionEvent.stateMask is now set on selection and default selection events for all native controls.|
A new event has been added to Text, Combo, and StyledText. It is sent when the writing direction is changed via keyboard shortcut.
|Browser.setUrl() can specify post data and headers||The new API
|Wrap indent in StyledText||
StyledText and TextLayout now offer API to allow the application
to control the amount of indent space for wrapped lines.
See Snippet 331.
|Improved bidi segments support||
The bidi segments support in StyledText and TextLayout was changed
to allow the application to specify which Unicode Control Characters to use in the segments boundaries.
See Snippet 332.
|Right-to-Left text support on Cocoa||
On Cocoa, setting the
|Skin engine support||
New API added to allow CSS engines to skin widgets at the appropriate time
|New layout API||
New API added to
|Browser.setText() can restrict content permissions||
New Browser API
SWT Accessibility has new API for making applications more accessible to Assistive
Technology products such as screen readers.
The new API can be found in the
A new event type has been added to SWT to notify applications that a document
should be opened. Listeners for OpenDoc events can be added to a Display.
Support has also been added to the Equinox launcher, and the Eclipse workbench. Users are now able to associate file types with Eclipse and have Eclipse launched when they open a file of an associated type.
|Program working directory||
New API has been added to Program to allow the working directory to be
specified when launching an executable. See
|XULRunner 1.9.2 support||The Browser widget now has full support for the recent release of XULRunner 1.9.2.|
|TaskItem overlay image||
The new API
|TaskItem overlay text||
The new API
The new APIs
The new API
Running on Mac OS X:
CTabFolder has been improved and now allows clients to change its look by implementing their own renderers.
|Draw background at an offset||
New API was added in