There's a hot new drop of Eclipse to warm you up during these coldest days of winter. Here are some of the more noteworthy things available in milestone build M5 (February 9, 2007) which is now available for download. See the build notes for details about bugs fixed and other changes.
PDE |
|
| PDE editors facelift | All PDE form-based editors have acquired a new
look and feel. Visual enhancements include the following:
In addition, all PDE form editor pages comply with the latest UI recommendations for margins and spacing.
|
| Field validation in plug-in and product editors | PDE now validates plug-in and product editor
form fields while input is being entered.
During validation, form fields are decorated according to problem severity and provide status messages via tool tips. All status messages are qualified with a field label and rolled up into the form title header where they are available on mouse over.
As with source page validation, the problem severity used by field validation is configurable on the Plug-in Development > Compilers preference page. |
| Update site target provisioner | You can now point to an update site, download plug-ins,
and install them into your target platform, all in a single step by using
the new Update Site Target Provisioning wizard.
The target provisioning wizards can be accessed via the Add button on the Plug-in Development > Target Platform preference page.
|
| Analyze dependencies for JAR archives | When creating a plug-in from existing JAR archives (File > New > Project > Plug-in
Development > Plug-in from existing JAR archives), PDE now computes
the dependencies required to run the code in the archive.
Plug-ins targeted to run with an OSGi framework will have their dependencies specified with Import-Package statements, while plug-ins targeted to run with Eclipse will have theirs specified with Require-Bundle statements.
|
| Uses directive calculation | PDE is now able to calculate the OSGi uses directive
for exported packages.
The uses directive is important because it models inter-package dependencies to ensure that consistent class spaces are calculated for each bundle. This helps prevent ClassCastExceptions when multiple versions of a package or bundle are installed in the Framework. The calculation can be initiated from the Organize Manifests wizard (PDE Tools > Organize Manifests... from the context menu of plug-in projects) or the Calculate Uses button in the Exported Packages section on the Runtime page of the plug-in manifest editor.
|
| Extensible launch shortcuts | PDE now provides the org.eclipse.pde.ui.launchShortcuts extension
point to enable custom launch shortcuts and additional launch modes (e.g.
profile) to be integrated into the Testing section of
the plug-in manifest editor.
|
| Bundling JREs for cross-platform Eclipse product export | The Product editor now gives you the option
to bundle a JRE with your exported Eclipse product. JREs can be specified
on a per-platform basis.
|
| New launcher for your product | When you export an Eclipse product that runs on top of Eclipse 3.3 via File > Export > Plug-in Development > Eclipse product, PDE will now customize the new Equinox launcher (described in a separate item) for your product. |
| Self-hosting with multiple versions of the same plug-in | PDE now supports self-hosting scenarios that will allow you to develop
and run with multiple versions of the same plug-in in the workspace or
target platform.
Development scenarios where this new support is particularly useful include:
|
| Multi-version support for build contributions | Support has been added to allow for multiple versions of the same bundle to appear in a client's map file contribution to the build and therefore retrieved to be part of the same build. Clients wishing to take advantage of this functionality should specify a version in the map file as well as in the referencing feature. |
| GET fetch support | A new GET fetch factory was added to PDE Build which allows clients to specify URLs in their map files contributions to a build. The factory generates a call to the Ant Get task, and clients are able to specify whether or not the fetched file should be unzipped, which is especially useful for clients who are retrieving build input from an HTTP server. |
| Pre-built bundle support | Attributes have been added to the CVS fetch task which allow clients to specify that the bundle they are referring to in their map file is pre-built and should be downloaded directly to the build directory. |
Platform |
|
| Equinox launcher | The native Eclipse launcher has been rewritten
to use JNI calls as much as possible. The Java VM will be started in-process
using the JNI Invocation API unless the -vm argument points directly to
a Java launcher.
Among other advantages, this change allows for SWT widgets to be used in the splash screen. As well, the splash screen can appear much earlier if the product is set up properly. |
| OSGi R4.1 | The Equinox Framework implements all the new features being proposed in the OSGi R4.1 (Draft) specification. The most noteworthy change is the standardization of the lazy activation policy. |
| DragDetect API | Custom widget implementers can now use Control.setDragDetect() to
disable the default drag detection and Control.dragDetect() to
implement their own. For example, a custom list control could start dragging
only when an item is selected. Typed events for drag detection are now
available (see DragDetectListener and DragDetectEvent).
This example
snippet created the snapshot shown below.
|
| Drag over and drag under effects | Custom drag over and drag under effects can
now be implemented for any control. Custom widget implementers can provide
feedback that is appropriate for their control by subclassing DragSourceEffect and DropTargetEffect.
The default effects for the Table, Tree and StyledText controls
have been changed to use these classes (see TreeDragSourceEffect, TreeDropTargetEffect and
the corresponding classes for these controls). This StyledText example
snippet created the snapshot shown below.
|
| Color cursors on GTK | You can now create color cursors on GTK. This example
snippet created the cursor shown in the snapshot below.
|
| Text SEARCH style | On platforms that have this concept, Text controls
can now have the look and feel of a search field with the SWT.SEARCH style.
Adding the SWT.CANCEL style gives the user a way to cancel
the search. This example
snippet created the Text control shown in the snapshot
below.
|
| Mnemonics and the focus indicator | Custom widgets respect the platform settings when drawing mnemonics and the focus indicator. You do not need to do anything special to get this behavior - the paint graphics context respects platform preferences. See bug 118709 for more information. |
| Mozilla everywhere | Mozilla can now be used as the underlying browser
control on Windows and OS X, providing that you have XULRunner installed
and registered. To use this just create your Browser with the SWT.MOZILLA style.
For more specific version requirements for running on OS X see bug
79213 comment 46. This example
snippet created the snapshot below.
|
| SWT on Vista (WPF) | There is now an early access version of the SWT port to Windows Presentation
Foundation (WPF),
a new window system that comes pre-installed on Microsoft Windows Vista. Note that the Win32 port of SWT continues to work well on Windows platforms and fully exploits the new look and feel of Windows Vista.
|
| Native look for search widgets | The Workbench is utilizing the new SWT support
for native search look and feel on platforms that support it.
|
| Signing info | The About Eclipse > Plug-In Details dialog
now shows signing info for all plug-ins in the system.
|
| Easy working set creation | You can easily create a working set from the Add To Working Set dropdown in the main toolbar.
|
| Custom splash screens | API is now in place to provide custom splash screens using
SWT. We've used this to embed the build ID in the default Eclipse splash
screen.
|
| |
|
| Open files with other editors |
You can now open files with editors that are not registered for the specific
file extension. Right-click on your file and select Open with > Other.
You will be presented with a list of editors to choose from.
|
| Forms enhancements | Visual and functional enhancements have been
made to UI forms, including rendering and layout of the heading area, with
drop-down menu, drag and drop, and shared-header support. A new message
manager interface was added, along with a forms implementation that makes
validation easier for the developer and richer for the user by supporting
multiple messages and showing which field the error occurred in.
|
| Cheat sheet open from URL and visual improvements | A cheat sheet can be opened from the Web by
specifying its URL in the open cheat sheet dialog.
Sub steps in a cheat sheet are now clearly separated using horizontal lines. Sub steps can now be previewed. The background colors in the cheat sheet view have been adjusted to make the active step stand out more. |
| Print multiple help topics | You can now print multiple topics in the help
window with a single action. The new print drop-down button above the table
of contents allows you to print a complete topic sub-tree at any level,
and will automatically generate a table of contents in the printed document.
|
| Help navigation topics | The help window will automatically generate
a topic if one was not specified in the table of contents. The topic will
contain the title and links to the immediate sub-topics to help the user
navigate.
|
| Text drag and drop in text editors | It is now possible to drag and drop text to
and from text editors:
This feature can be controlled via General > Editors > Text Editors > Enable drag and drop of text preference. |
| Configurable and extendable
hyperlink detection |
Hyperlink detection in text editors can now
be configured via General > Editors > Text Editors > Hyperlinking preference
page:
Clients can use the |
| Text editors restore caret position | The caret position is now restored when restarting the workbench or opening a copy of the current editor via the New Editor command. |
| Highlighting of individual changes in text merge | Compare editors now have the capability to highlight
individual changes. This can be enabled on the Text Compare tab
of the General > Compare/Patch preference page.
|
| Flat presentation in model-based synchronizations | A flat presentation has been added to model-based
synchronizations. For CVS, model-based synchronizations are the default.
|
JDT |
|
| Rename refactoring inside Java editor | When run in a Java editor, The Refactor > Rename action
now starts in a lightweight fashion directly inside the editor.
All references to the renamed identifier are updated in real time inside the editor. Pressing the Enter key or clicking the link executes the refactoring on the whole workspace. To configure more options, the Rename dialog can still be opened. The popup window can be minimized and it can be moved to various locations around the identifier and to the lower-right corner of the editor. To use the Rename dialog all the time, you can disable this feature on the Java preference page. |
| Project-specific settings for Save actions | The actions executed when a Java editor is saved
can now be configured per project:
This makes it easy to enforce a project-wide standard by sharing the settings across a team. |
| New clean ups and save actions | Two new Clean Ups have been implemented:
You can choose to remove trailing whitespace on all lines or to ignore empty lines. Sort members can sort either all members of a compilation unit, or ignore fields, enum constants, and initializers (because sorting such members may result in semantic changes). Remove trailing whitespace and sort members are also available as Save actions. |
| Format by comment type | It is now possible to enable and disable comment
formatting for each comment type individually. The available comment types
are:
|
| Deprecated and non-modifiable classpath variables | System-defined classpath variables can now
be deprecated and/or declared read-only via the Users should replace deprecated classpath variables by better mechanisms such as Libraries. For some variables (e.g. JUNIT_HOME), the Problems view even offers quick fixes to migrate existing projects. |
| Completion using favorite static imports | Content Assist can now propose completions
for static members from a list of favorite imports that can be configured
on the Java > Editor > Content Assist > Favorites preference
page.
For example, if you have added
The import preferences from the Java > Editor > Content Assist preference page are honored when inserting such a proposal. |
| Completion in catch clause | Content Assist inside a try-catch clause can
now infer exception type names based on exceptions detected to be thrown
in the corresponding try block. These exceptions are now listed before
other possible exceptions.
Note that it will automatically filter out the exceptions caught prior to the completion location, as shown in this example:
|
| Improved detection of unused private constructors | The compiler is now better able to detect unused
private constructors. It now tolerates more than the trivial pattern for
blocking instantiation (private constructor with no parameters). Basically,
unless a non-private constructor also exists, it will ignore unused private
constructors.
Hence, the following scenario does not produce any warnings:
But the following case will be flagged by compiler:
Also note that Clean Up can discard any unused constructors:
|
| Unused local types detection | The support for detecting unused private/local
constructs has been improved to also flag unused local inner types, as
shown in the following example:
|
The above features are just the ones that are new since the previous milestone build. Summaries for earlier 3.3 milestone builds: