blob: ae4185e9ec3c9291e3cec55b7524c85116c0b184 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta name="copyright" content="Copyright (c) IBM Corporation and others 2000, 2006. This page is made available under license. For full details, see the LEGAL section in the documentation that contains this page.">
<meta http-equiv="Content-Language" content="en-us">
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<link rel="STYLESHEET" href="../book.css" type="text/css">
<style>
td {border-top: solid thin black;}
img[alt] {background-color:#ffdddd;}
tr {vertical-align: top;}
</style>
<title>Eclipse Platform What's New in 3.1</title>
</head>
<body>
<h2>What's New in 3.1</h2>
<p>Here are descriptions of some of the more interesting or
significant changes made to the Eclipse Platform for the 3.1 release of
Eclipse. They are grouped into:</p>
<ul>
<li><a href="#Platform">Platform Changes</a></li>
<li><a href="#SWT">SWT Changes</a></li>
<li><a href="#TeamCVS">Team/CVS Changes</a></li>
<li><a href="#Ant">Ant Changes</a></li>
<li><a href="#Debug">Debug Changes</a></li>
</ul>
<!-- ******************** Platform ********************** -->
<table cellpadding="10" cellspacing="0" width="600">
<colgroup>
<col width="20%">
<col width="80%">
</colgroup>
<tbody>
<tr>
<td colspan="2"><a name="Platform"></a>
<div style="font-size: 20px; font-weight: bold;">Platform Changes</div>
</td>
</tr>
<tr>
<td><p align="right"><b>Significant performance enhancements</b></p></td>
<td><p>Performance has been significantly enhanced
across the board compared to the Eclipse 3.0 release.</p><p>We have also added debugging
support that can continually monitor performance while the workbench
is running, and have made pervasive benchmarking tests
part of the standard test suites. The results of these tests are linked off of the download
page for each build. Here is an example of part of the output:</p>
<p><img src="images/perf-example.png" alt="Example performance graph"></p></td>
</tr>
<tr>
<td><p align="right"><b>Support for
bi-directional text</b></p></td>
<td><p>Support for bi-directional languages (BIDI),
has been extended across the platform. Window layout orientation can
be configured from the command line, and a suitable default orientation
is inferred from the locale. Note that SWT fully supports BIDI on Windows
only.</p>
<p><img src="images/bidi.png" alt="Screenshot of mirrored Eclipse perspective" ></p></td>
</tr>
<tr>
<td> <p align="right"><b>New undo/redo API</b></p></td>
<td> <p>Applications can now access a platform history of operations that can be undone
by using an API in org.eclipse.core.commands.operations. IUndoableOperation
defines the interface for operations that can be undone and redone.
Views and editors can provide access to the undo and redo support by
using the UndoActionHandler and RedoActionHandler provided in org.eclipse.ui.operations.
</p>
<p><img src="images/undosample.png" alt="Screenshot of an application's undo-redo options"></p></td>
</tr>
<tr>
<td> <p align="right"><b>Filtering
preferences and properties</b></p></td>
<td><p>The Preferences and Properties dialogs now
have a field for filtering the pages displayed to just those that have
names or keywords that match the specified prefix. The example below shows
matches for the keyword &quot;tab&quot;.</p> <p><img src="images/preferences.png" alt="Screenshot of new preferences dialog" ></p></td>
</tr>
<tr>
<td> <p align="right"><b>Navigating
preferences and properties</b></p></td>
<td><p>General support for linking preference and
property pages allows pages with related settings to refer to each other
and provide quick access to the other page. Combined with web-style forward
and backward navigation in the top right-hand corner, it is now much easier
to work with a set of related preference pages. </p>
<p><img src="images/workspace.gif" alt="Screenshot showing preference linking" ></p></td>
</tr>
<tr>
<td> <p align="right"><b>Importing
multiple projects</b></p></td>
<td><p>The <b>Import &gt; Existing Project into Workspace</b>
command now allows you to search for all projects under a specified location
and import any projects found in a single operation. You can now also import existing
projects from TAR and ZIP archive files. </p>
<p><img src="images/importmultiple.png" alt="Screenshot of 'Import Objects' dialog"></p></td>
</tr>
<tr>
<td> <p align="right"><b>Import and export
to tar.gz format</b></p></td>
<td><p>The <b>Import</b> and <b>Export &gt; Zip File</b>
wizards now support the <tt>tar.gz</tt> compressed archive file format popular
on UNIX systems. The wizards have been renamed <b>Import</b> and <b>Export
&gt; Archive File</b> accordingly.</p>
<p><img src="images/export-targz.gif" alt="Screenshot showing export to tar.gz" ></p></td>
</tr>
<tr>
<td> <p align="right"><b>Editor lookup
based on content type</b></p></td>
<td><p>When determining the appropriate editor to
open for a given file, the file's content type is now taken into account.
Editors may now advertise that they are capable of working on certain
content types as well as their traditional file name and extensions. </p></td>
</tr>
<tr>
<td> <p align="right"><b>File names
containing colon and backslash characters</b></p></td>
<td><p>It was previously not possible to create resources
in Eclipse with names containing colon ('<b>:</b>') and backslash ('<b>\</b>') characters.
Such characters are now permitted when running Eclipse on operating systems
such as Linux that allow such characters in file names. Care must be taken
when file names must be meaningful across multiple operating environments;
Windows, in particular, does not allow either of these characters in file
names. </p>
<p><img src="images/colon-slash.gif" alt="Screenshot showing :\ in filename" ></p></td>
</tr>
<tr>
<td> <p align="right"><b>Support for
executable and archive attributes</b></p></td>
<td><p>You can now view and change operating system-specific file
attributes such as the executable bit (Unix-based) and the archive bit (Windows).
CVS will now preserve these attributes when you check files
out of, or commit files to, a repository, and import wizards will preserve
the attributes of files and directories that are imported from a local
file system.</p>
<p><img src="images/attributes.png" alt="Screenshot of a file's properties on an 'Info' dialog"></p></td>
</tr>
<tr>
<td> <p align="right"><b>Line delimiter
support</b></p></td>
<td> <p>You can now set the line delimiter that
is used when creating new text files. You can provide a single setting
for the entire workspace, or for a given project. In addition, line
delimiter conversions can now be applied to projects, folders, and files,
not just to the contents of a single editor.</p>
<p><img src="images/line-delimiter.png" alt="Screenshot of default delimiter dialog"></p></td>
</tr>
<tr>
<td> <p align="right"><b>Single JAR
plug-ins</b></p></td>
<td> <p>Eclipse now provides the ability to ship
a plug-in packaged as a single JAR file rather than as a directory of
files. Think of this as folding the plug-in metadata (<tt>plugin.xml</tt> etc.)
into its code JAR. This move has a number of benefits ranging from smaller
footprint to easier/faster install to fitting better with the standard
Java notion of JARs.</p>
<p>In Eclipse 3.1 most plug-ins are shipped as JARs in all distributions.
This format is the new best practice for Eclipse packaging.</p>
<p><img src="images/jard_plugins.png" alt="Screenshot showing JARed plug-ins" ></p></td>
</tr>
<tr>
<td> <p align="right"><b>Improved
editor context menus</b></p></td>
<td> <p>Many commands that were
available only in other views are now right at your finger tips in the editor
context menu. For example, you can commit files to CVS or run and debug
Java programs and Ant builds from the editor's context menu.</p>
<p><img src="images/platform01.gif" alt="Screenshot showing team contributions on Editor menu" title="Team contributions on Editor menu"></p></td>
</tr>
<tr>
<td> <p align="right"><b>View all
keyboard shortcuts</b></p></td>
<td><p>While working with your favorite editors and
views in Eclipse, just press Ctrl+Shift+L to see a full list of the currently
available key bindings. This is a great way to learn what is available
in the UI and to speed up your productivity by learning more key bindings.
This information is also available in the improved <b>General &gt; Keys</b>
preference page. </p>
<p><img border="0" src="images/keycompletions.gif" alt="Screenshot of keybindings" ></p></td>
</tr>
<tr>
<td> <p align="right"><b>Detached
view behavior</b></p></td>
<td> <p>Eclipse 3.1 (on platforms
that support it) now has improved "detached view" support. It is now much
easier to place views wherever desired, including over another Eclipse
window. </p>
<p>Right-click on the view to be moved and select &quot;Detached&quot; from the menu.
(Alternatively, drag the view by its tab to detach the view from its position in the perspective.)</p>
<p><img src="images/detachview1.png" alt="Screenshot of the context menu's 'Detach' option"></p>
<p>Then, place the view where you choose. You can also drag and drop other views into the same
window.</p>
<p><img src="images/detachview2.png" alt="Screenshot of the floating view"> </p>
<p>To return the view to its position, use the context menu's <b>Restore</b> function.
(Alternatively, drag the view by its tab.)</p></td>
</tr>
<tr>
<td><p align="right"><b>Draggable perspective button</b></p></td>
<td><p>Eclipse 3.1 enables you to re-ordering perspective buttons by dragging them
within the Perspective switcher.
You can also open a new window for a perspective by dragging that perspective button
outside the perspective switcher. </p>
<p><img src="images/platform02.gif" alt="Series of screenshots showing perspective buttons being dragged"
title="Perspective buttons being dragged"></p></td>
</tr>
<tr>
<td> <p align="right"><b>Animations</b></p></td>
<td> <p>The workbench supports more animations
to help users understand where UI elements are going. Creating a fast
view, for example, is now animated. This can be enabled/disabled via a preference
in <b>General > Appearance > Enable animations</b>. </p></td>
</tr>
<tr>
<td> <p align="right"> <b>Improved error dialog
for background operations</b> </p></td>
<td> <p>The error dialog for displaying background operations
is now more consistent with the error dialogs displayed elsewhere in
the workbench. Extra buttons are shown when additional information is
available, such as this dialog, which results from a failed CVS operation:</p>
<p><img src="images/cvsfail.gif" alt="Screenshot showing CVS error dialog"></p></td>
</tr>
<tr>
<td> <p align="right"><b>Import and
export of preferences</b></p></td>
<td> <p>The Import/Export wizards now support preferences.
You can choose to import or export all changed settings, or only specific
preferences (where supported). </p>
<p><img src="images/importwiz.png" alt="Screenshot of the 'Import Preferences' dialog"></p></td>
</tr>
<tr>
<td> <p align="right"><b>Content type
preference page</b></p></td>
<td><p>There is a new preference page where you can edit content types
and their associated file names and character sets.
This has been added to the <b>General > Editors</b> list of preference pages.</p>
<p><img src="images/contenttypes.gif" alt="Screenshot of 'Content Types' dialog" ></p></td>
</tr>
<tr>
<td> <p align="right"><b>Capabilities
preference page</b></p></td>
<td><p>A new <b>Capabilities</b> preference page has been
introduced to simplify management of capabilities in large Eclipse-based
products. </p>
<p><img src="images/capabilities.gif" alt="Screenshot of 'Capabilities' preference page" ></p></td>
</tr>
<tr>
<td> <p align="right"><b>Word completion</b></p></td>
<td><p>In any text editor you can complete a
prefix to a word occurring in all currently open editors or buffers. The
default key binding for word completion is Alt+/. (Ctrl+. on the Mac).</p>
</td>
</tr>
<tr>
<td> <p align="right"><b>Open untitled
files</b></p></td>
<td><p>A text editor can be opened without creating
a file first: select <b>File &gt; New &gt; Untitled Text File</b>.</p></td>
</tr>
<tr>
<td> <p align="right"><b>Shared editor
preferences</b></p></td>
<td><p>The <b>General &gt; Editors &gt; Text Editors</b>
preference page contains settings for all text editors. Preferences previously
duplicated on the Text and Java editor pages have been merged, and other
text-based editors can also be expected to honor those settings where
applicable in the future. </p>
<p><img src="images/shared-preferences.png" alt="Screenshot of shared editor preferences"></p></td>
</tr>
<tr>
<td> <p align="right"><b>Preference
for undo history size</b></p></td>
<td><p>The undo history size can be set for text
editors on the <b>General &gt; Editors &gt; Text Editors</b> preference
page: </p>
<p><img alt="Picture of undo history size preference" title="Undo history size preference" src="images/undo_history_size.png"></p></td>
</tr>
<tr>
<td>
<p align="right"><b>Hyperlink support</b></p>
</td>
<td><p>Hyperlink support, which was restricted to
the Java editor, has been generalized and moved down to Platform Text.
General hyperlinking preferences are available on the <b>General &gt;
Editors &gt; All Text Editors</b> preference page, and simple URL
hyperlinking now works in the standard Text editor:</p>
<p><img title="Hyperlinking in Text editor" alt="Picture of hyperlinking in Text editor" src="images/hyperlinking.gif"></p>
<p>The Web Browser support is used to show the link, see <b>General &gt; Web Browser</b> preference page for details.</p>
<p>All <tt>SourceViewer</tt>s that are configured with a <tt>SourceViewerConfiguration</tt>
automatically get URL hyperlinking.</p>
</td>
</tr>
<tr>
<td><p align="right"><b>Undoing first
change clears dirty indicator</b></p></td>
<td> <p>The "pending changes" indicator (*) in the editor tab
goes away if the initial change is undone.</p></td>
</tr>
<tr>
<td> <p align="right"><b>Multi-line
text search and replace</b></p></td>
<td><p>Regular expression patterns used in text searches will
match text straddling lines. </p>
<p><img alt="Mutli line search" src="images/multi-line-search.gif" ></p></td>
</tr>
<tr>
<td> <p align="right"><b>Welcome launch
bar</b></p></td>
<td><p>When the 'Go to the Workbench' link is selected
in Eclipse SDK welcome, the entire Welcome page is collapsed into a new
Welcome launch bar that appears in the lower-left Workbench window trim area
by default. The Welcome launch bar allows users to restore
the last Welcome page, or to jump to one of the main pages using the shortcuts. </p>
<p>While the platform controls the basic behavior and the 'Restore' button,
background and foreground color as well as the shortcuts are contributed
via the welcome extension. See the plug-in manifest for the org.eclipse.platform
for an example of a Welcome launch bar definition.</p>
<p align="center"><img border="0" src="images/intro-launch-bar.png" alt="Screenshot of Welcome launch bar"></p></td>
</tr>
<tr>
<td> <p align="right"><b>New Help
view</b></p></td>
<td><p>Help has been brought closer to where you work
with the introduction of the <b>Help</b> view. It contains various pages that
provide assistance when you need it. If you press Shift+F1 (Unix-based) or
F1 (Windows), the view will open with the topics related to what you are
working on at the moment. You can also switch to All Topics and see what
else is there in the local help. The new documentation search spanning local
help, remote InfoCenters, Eclipse.org, and the web is now directly accessible
from the <b>Help</b> menu (via <b>Help &gt; Search Help</b>). </p>
<p align="center"><img border="0" src="images/help-view.png" alt="Screenshot of new help view"></p></td>
</tr>
<tr>
<td> <p align="right"><b>Dynamic Help
now available for all dialogs</b></p></td>
<td><p>The new dynamic help that was added to the
workbench window in M5 is now available in dialogs as well. When triggered
by the system-specific help shortcut (F1 on Windows, Shift+F1 on Linux GTK etc.),
a shell opens aligned with the dialog showing the related help
information. Multi-page dialogs like wizards, preferences, launch configurations,
searches, etc. trigger the help pane to update its content as you flip
from page to page. </p>
<p><img border="0" src="images/dynamic-help.png" alt="Screenshot showing dynamic help"></p></td>
</tr>
<tr>
<td> <p align="right"><b>Downloading
of updates in background</b></p></td>
<td><p>The Update Manager's install wizard (<b>Help
&gt; Software Updates &gt; Find and Install</b>) now allows downloading
of plug-ins in the background. This way you can continue working while
plug-ins are being downloaded. Once everything is downloaded, the install
phase (unzipping the JAR files and moving them to the installation directory)
is still controlled by a modal dialog.</p></td>
</tr>
<tr>
<td> <p align="right"><b>Improved
handling of feature dependencies</b></p></td>
<td><p>When installing a feature that depends on other
features, the install wizard lets you automatically include all available
dependencies. Press the <b>Select Required</b> button to include all pre-requisites
of the selected features, and then <b>Install All</b> to complete the
install. </p>
<p> <img border="0" src="images/select-required.png" alt="Screenshot of Select Required button"></p></td>
</tr>
<tr>
<td> <p align="right"><b>Import/export bookmarks to
update sites</b></p></td>
<td><p>You can now export your update site bookmarks
to a file. This makes it easy to migrate your bookmarks from build to
build, share them across multiple Eclipse installs, or give them to other
developers. </p>
<p><img border="0" src="images/sites-import-export.png" alt="Screenshot showing Import/Export buttons"></p></td>
</tr>
<tr>
<td> <p align="right"><b>Update site
mirrors</b></p></td>
<td><p>Update sites can now specify a list of servers
that mirror their content. As features are looked up on a mirrored update
site, you're prompted to pick any of the available mirrors. </p>
<p><img border="0" src="images/mirrors.png" alt="Screenshot showing mirrors"></p>
<p>(See bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=69008">69008</a>
for details on how to specify mirrors in the site.xml.)</p></td>
</tr>
<tr>
<td> <p align="right"><b>RCP delta
pack</b></p></td>
<td><p>A new RCP delta pack is now available (it's
listed under the RCP SDK section of the download page). It contains all
the operating system-specific fragments of the RCP plug-ins, and is aimed at RCP developers
who need to create a family of downloads of their application for different
operating systems. This is more efficient than downloading all the operating system-specific
RCP binary drops.</p></td>
</tr>
<!-- *********************** SWT *********************** -->
<tr>
<td colspan="2"><a name="SWT"></a>
<div style="font-size: 20px; font-weight: bold;">SWT Changes</div>
</td>
</tr>
<tr>
<td> <p align="right"><b>SWT Browser
widget improvements</b></p></td>
<td> <p>Many improvements have been made to the
SWT Browser widget. </p>
<p>On Windows, new windows can now be opened in a stand-alone Internet
Explorer browser. On Linux, the browser now works with Mozilla 1.7 GTK2 as well as
with Mozilla 1.4 GTK2 and above.</p>
<p>A new execute method passes an arbitrary string of JavaScript commands
to be directly evaluated by the underlying native JavaScript engine
(Internet Explorer on Windows, Mozilla on Linux, Safari on the Mac)
in the context of the HTML document that is currently loaded in the
browser widget.</p>
<p><img border="0" src="images/demo.gif" alt="Screenshot of embedded browser view"></p>
<p>The new Browser Demo example (shown above) illustrates how to integrate
HTML content with the SWT Browser widget into an application. The easy
way to get the SWT samples is via the new welcome page.</p></td>
</tr>
<tr>
<td> <p align="right"><b>New spinner
widget</b></p></td>
<td><p>SWT now provides a spinner widget
on all window systems. See <code>org.eclipse.swt.widgets.Spinner</code>. </p>
<p><img border="0" src="images/spinner_float.png" alt="Screenshot of SWT spinner widgets"></p></td>
</tr>
<tr>
<td> <p align="right"><b>GC.setLineCap,
GC.setLineJoin</b></p></td>
<td><p><code>GC.setLineCap</code> lets
you control how the end of a line should be drawn (flat, round, or square
styles as shown in the top line of the figure below). <code>GC.setLineJoin</code>
allows you to control how one line attaches to another one in methods
like <code>GC.drawPolylines</code> or <code>GC.drawPolygon</code>. Join
styles are bevel, round, and miter (bottom row). </p>
<p><img border="0" src="images/gc-caps-joins.png" alt="Screenshot showing new SWT line styles" ></p>
<p>See the SWT snippet <a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet168.java?rev=HEAD&amp;content-type=text/vnd.viewcvs-markup">for
drawing lines with different cap and join styles</a>.</p></td>
</tr>
<tr>
<td> <p align="right"><b>Mouse wheel
events</b></p></td>
<td><p>SWT now provides events when the
user spins the mouse wheel. Note that the default behavior of scrolling
the scroll bar continues to work as before. See <code>SWT.MouseWheel</code>.</p></td>
</tr>
<tr>
<td> <p align="right"><b>Improved
layout support</b></p></td>
<td><p>There are new methods on <code>Composite</code>
and <code>Layout</code> to allow applications to improve layout performance
and to force the laying out of all children even when there is an intermediate
parent that does not resize. </p>
<ul>
<li><code>Composite.layout(Control[])</code></li>
<li><code>Composite.layout(boolean, boolean)</code></li>
<li><code>Composite.setLayoutDeferred(boolean)</code></li>
<li><code>Layout.flushCache(Control)</code></li>
</ul></td>
</tr>
<tr>
<td> <p align="right"><b>Remove widgets
from Layout</b></p></td>
<td> <p><code>RowData</code> and <code>GridData</code>
have a new <code>exclude</code> attribute for removing the associated
widget from the layout management. Previously, applications had to dispose
and recreate widgets to achieve this effect.</p>
<p>For more details, see the example <a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet175.java?rev=HEAD&amp;content-type=text/vnd.viewcvs-markup">snippet</a>.</p></td>
</tr>
<tr>
<td> <p align="right"><b>SWT for Solaris-GTK+</b></p></td>
<td><p>Solaris-GTK has joined the lineup
of supported configurations for which SWT and Eclipse are routinely built.</p></td>
</tr>
<tr>
<td> <p align="right"><b>Selection
clipboard</b></p></td>
<td><p>
UNIX users on both GTK and Motif can now select text and paste with the middle mouse button.
(If you have a two-button mouse, press both buttons simultaneously.)
</p>
</td>
</tr>
<tr>
<td> <p align="right"><b>Native tree
with columns</b></p></td>
<td> <p>The SWT <code>Tree</code>
widget can now display multiple columns. New API in Tree, TreeItem,
and TreeColumn provides the same support for columns as Table. This
obsoletes the <code>TableTree</code> widget, which is now deprecated.</p>
<p><img border="0" src="images/treetable.png" alt="Screenshot of multi-column Tree"></p>
<p>For more details see the example <a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet170.java?rev=HEAD&amp;content-type=text/vnd.viewcvs-markup">snippet</a>.</p></td>
</tr>
<tr>
<td> <p align="right"><b>Reorderable
table columns</b></p></td>
<td> <p>The display order of columns
in a table can be changed by dragging the column header (as well as by
being set programmatically).</p>
<p><img border="0" src="images/moveable.png" alt="Screenshot of Table column being moved"></p>
<p>For more details see the example <a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet181.java?rev=HEAD&amp;content-type=text/vnd.viewcvs-markup">snippet</a>.</p></td>
</tr>
<tr>
<td> <p align="right"><b>
Standalone SWT download is now an Eclipse project</b></p></td>
<td> <p>For developers of standalone
SWT applications, the SWT component is available as a separate download. For
Eclipse 3.1, the SWT download can now be easily imported into your workspace as a project.</p>
<ol><li>Download SWT for standalone applications. A standalone version of SWT is
available on the same download page as the Eclipse SDK. Look for the section
titled SWT Binary and Source. Do not extract the archive file, just save it to
disk.</li>
<li>Select <b>Import...</b> from the <b>File</b> menu.</li>
<li>Select <b>Existing Projects into Workspace</b> and click on the <b>Next</b> button.</li>
<li>Select <b>Select archive file:</b> and use the <b>Browse</b> button to locate the SWT
standalone archive you have previously downloaded.</li>
<li>Click <b>Finish</b>.</li>
</ol>
<p>The org.eclipse.swt project you have imported defines the location of the native libraries
so you can run your application with the standard Java or JUnit launchers.</p>
</td>
</tr>
<tr>
<td> <p align="right"><b>Starting
SWT standalone applications using PDE</b></p></td>
<td> <p>In 3.1, the core Eclipse plug-ins,
including SWT, are packaged as single JAR files rather than as a directory of files.
The SWT plug-in JAR now contains everything including the native libraries.</p>
<p>In order to run a standalone SWT application, the native libraries must be placed
on the java library path. If you use the SWT Binary and Source download this is resolved for you
but sometimes it is useful to build against the SWT plug-in from the Eclipse SDK.
In Eclipse 3.0, standalone SWT developers added the native libraries using -Djava.library.path.
In Eclipse 3.1, since the native libraries are inside a JAR, developers cannot
easily locate the libraries.</p>
<p>To run and debug your SWT application using the SWT plug-in from
Eclipse, you can use the SWT application launcher to locate the native libraries. A shortcut to the
launcher is available in the context menu of your Java class via
<b>Run As &gt; SWT Application</b>.</p>
<p><img border="0" src="images/swtlauncher.png" alt="Screenshot of SWT application launching" ></p>
<p>Please note that the SWT application launcher may be unnecessary in future releases.</p>
</td>
</tr>
<tr>
<td> <p align="right"><b>Advanced
graphics</b></p></td>
<td> <p>A new API has been added for
advanced graphics operations such as paths for curves and lines, alpha
blending and transformations.
This new API requires the <a href="http://cairographics.org/introduction" target="_blank">Cairo Vector engine</a>
on GTK and Motif and <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdicpp/GDIPlus/GDIPlus.asp" target="_blank">GDI+</a>
on Windows.
</p>
<p><img border="0" src="images/advanced_gc.jpg" alt="Screenshot showing advanced GC features in use" ></p>
<p>For more details see the example <a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet10.java?rev=HEAD&amp;content-type=text/vnd.viewcvs-markup">snippet</a>.</p></td>
</tr>
<tr>
<td> <p align="right"><b>Windows XP
look and feel for Buttons</b></p></td>
<td> <p>Under Windows XP, buttons
with images now show the expected look and feel for the current skin. </p>
<p><img border="0" src="images/xpbuttons.png" alt="Screenshot of image buttons on XP"></p>
<p>For more details on Windows XP skins, see the <a href="http://dev.eclipse.org/viewcvs/index.cgi/~checkout~/platform-swt-home/faq.html#xpthemes">SWT
FAQ</a>.</p></td>
</tr>
<tr>
<td> <p align="right"><b>New Link
widget</b></p></td>
<td> <p>The new <code>Link</code>
widget displays text containing hyperlinks.</p>
<p><img border="0" src="images/linkwidget.png" alt="Screenshot of new link widget"></p>
<p>For more details, see the example <a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet183.java?rev=HEAD&amp;content-type=text/vnd.viewcvs-markup">snippet</a>.</p></td>
</tr>
<tr>
<td> <p align="right"><b>Strike through
and underline in StyledText</b></p></td>
<td> <p>Text can be underlined or
a strike can be drawn through it with the new <code>StyleRange.underline</code>
and <code>StyleRange.strikeout</code> fields.</p>
<p><img border="0" src="images/strike_underline.png" alt="Screenshot showing new SWT text styles"></p>
<p>For more details see the example <a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet189.java?rev=HEAD&amp;content-type=text/vnd.viewcvs-markup">snippet</a>.</p></td>
</tr>
<!-- ******************* Team/CVS ******************** -->
<tr>
<td colspan="2"><a name="TeamCVS"></a>
<div style="font-size: 20px; font-weight: bold;">Team/CVS Changes</div>
</td>
</tr>
<tr>
<td> <p align="right"><b>CVS outgoing
change sets<br>
</b></p></td>
<td><p>Outgoing change sets allow you to organize
outgoing changes into logical groups before they are committed. To enable
outgoing change sets: </p>
<ol>
<li>Put the <b>Synchronize</b> view into <b>Outgoing</b> mode.</li>
<li>Click the Change Set button <img alt="Change Set button" src="images/changelog-obj.png"> in the
<b>Synchronize</b> view</li>
<li>Select an outgoing change, right-click on it, and choose <b>Add To
&gt; New Change Set...</b> from the context menu.
</li></ol>
<p>You can also appoint
a change set as the default and have all subsequent outgoing changes added
to that set automatically. Commands on the context menu allow outgoing
changes to be moved between change sets. When the change set is committed
to the CVS repository, the comment associated with the change set is used
as the CVS commit comment.
</p>
<p><img src="images/outgoing-commit-sets.png" alt="Screenshot of outgoing change sets"></p></td>
</tr>
<tr>
<td> <p align="right"><b>Colorful
CVS label decorations<br>
</b></p></td>
<td><p>CVS label decorations can be configured to
use color and font to highlight file states. You can enable color and
font decorations for CVS on the <b>Team &gt; CVS &gt; Label decorations</b>
preference page and configure them for outgoing changes and for ignored
files via the <b>General &gt; Colors and Fonts &gt; CVS</b> preference
page. </p>
<p><img src="images/team-decorators.png" alt="Screenshot of colored CVS label decorations"></p></td>
</tr>
<tr>
<td> <p align="right"> <strong>Support for
CVSNT</strong> </p></td>
<td><p>Thanks to the efforts of the CVSNT developers, the Eclipse
CVS client can now supports CVSNT. CVSNT version 2.0.58b
has been tested with Eclipse 3.1.</p></td>
</tr>
<tr>
<td> <p align="right"><b>CVS commit
review</b></p></td>
<td><p>The commit dialog now includes a list of the
files that are being committed. This makes it easy to browse the files
while writing the commit comment, and to hold back certain files by removing
them from the list. It's especially useful when committing directly from
the <b>Package Explorer</b> or <b>Navigator</b> view. </p>
<p><img src="images/commit-wizard.png" alt="Screenshot of commit review"></p>
<p>There are also CVS preferences (<b>Team &gt; CVS</b>) for determining
whether commit comments are mandatory and for specifying the maximum
number of files that should be displayed when committing.</p></td>
</tr>
<tr>
<td> <p align="right"><b>CVS improved
file type support</b></p></td>
<td><p>CVS now prompts whenever a file with an unknown
file type is about to be committed. This allows you to explicitly configure
a file type instead of CVS picking binary as the default. Also, file type
decisions can now be based on the file name alone (for example, <tt>Makefile</tt>), not
just the file extension. </p>
<p><img src="images/file-types.png" alt="Screenshot of file type support"></p></td>
</tr>
<tr>
<td> <p align="right"><b>CVS branch
and merge</b></p></td>
<td><p>The CVS branch wizard now lets you use content
assist to pick a branch from a project already branched in your workspace. </p>
<p><img src="images/branching.png" alt="Screenshot of branching"></p>
<p>When merging you can simply specify the end tag and the wizard will
automatically find the appropriate start tag. If a start tag is not
available, you can still merge without seeing a preview in the <b>Synchronize</b>
view.</p></td>
</tr>
<tr>
<td> <p align="right"><b>CVS filtering
tags</b></p></td>
<td><p>The tag selection dialog used by the CVS replace
and compare commands to select a branch or version now shows matching
tags live as you type.</p>
<p><img src="images/tag-filtering.png" alt="Screenshot of tag filtering"></p></td>
</tr>
<!-- *********************** Ant ********************** -->
<tr>
<td colspan="2"><a name="Ant"></a>
<div style="font-size: 20px; font-weight: bold;">Ant Changes</div>
</td>
</tr>
<tr>
<td> <p align="right"><b>Ant debugger</b></p></td>
<td><p>The new Ant debugger helps you debug the execution
of your Ant buildfiles. It includes the standard debugger features such as
breakpoints, stepping, dependency call stack, and run-to-line support. </p>
<p><img src="images/ant_dep_callstack.gif" title="Debug view" alt="Ant dependency call stack" ></p>
<p>The presentation of Ant properties are also grouped in the <b>Variables</b> view
for your convenience: </p>
<ul>
<li>System: Ant properties set from the System for the build</li>
<li>User: properties such as those set using the -D option</li>
<li>Runtime: all properties set during the execution of the build</li>
</ul></td>
</tr>
<tr>
<td> <p align="right"><b>Folding in
the<br>
Ant Editor</b></p></td>
<td> <p>The Ant editor now supports folding of build
file regions. Hovering over a folded Ant element lets you peek at the
hidden code. You can quickly control folding presentation of a buildfile
from the editor ruler menu.</p>
<p><img src="images/ant_folding.gif" alt="Screenshot of code folding in the Ant editor" title="Ant Code Folding" > </p>
</td>
</tr>
<tr>
<td> <p align="right"><b>Rename in
File for the Ant editor</b></p></td>
<td> <p>You can now rename occurrences of properties
and targets within the same buildfile within the Ant editor. To activate,
place the cursor within the occurrence to be renamed, right-click, and
use the editor context menu (or the Alt+Shift+R keyboard shortcut).
</p>
<p><img src="images/rename.png" alt="Screenshot showing rename in Ant editor"></p></td>
</tr>
<tr>
<td> <p align="right"><b>Mark Occurrences
in the Ant editor</b></p></td>
<td> <p>You can now enable the Ant editor to mark
occurrences of properties and targets. Mark occurrences is controlled
via the Ant editor preferences and editor toolbar action.</p>
<p><img src="images/pref.png" alt="Screenshot showing Ant mark occurrences preference" ></p>
<p><img src="images/occur.png" alt="Screenshot of highlighted occurrences" ></p></td>
</tr>
<tr>
<td> <p align="right"><b>Hyperlink
navigation in Ant editor</b></p></td>
<td> <p>The Ant Editor supports hyperlink navigation
using the Ctrl key modifier. The key modifier can be changed from the
<b>Ant &gt; Editor &gt; Navigation</b> preference page.</p>
<p><img src="images/ant-hyperlink.gif" title="Ant Hyperlink Support" alt="Ant hyperlink support"></p></td>
</tr>
<tr>
<td> <p align="right"><b>Ant editor
selected elements only</b></p></td>
<td><p>The Ant editor can now be scoped to show only
the selected source element in a buildfile. As with other editors, it
is hooked up to the <b>Show source of selected elements only</b> toggle
button in the Eclipse tool bar.</p></td>
</tr>
<tr>
<td> <p align="right"><b>Improved
Ant navigation</b></p></td>
<td><p>In the Ant editor, <b>Navigate &gt; Open declaration</b>
(F3) will now navigate you to the referenced target or property.</p></td>
</tr>
<tr>
<td> <p align="right"><b>Errors now
show in external Ant buildfiles</b></p></td>
<td><p>Error and warning annotations now show even
for Ant buildfiles that are opened using <b>File &gt; Open External File...</b></p></td>
</tr>
<tr>
<td> <p align="right"><b>Ant manual
at your fingertips</b></p></td>
<td> <p>In the Ant editor, place your cursor on
the name of an Ant task, type, etc. and press Shift+F2 to open
a browser on the relevant page in the Ant manual.</p>
<p><img src="images/ant-external-documentation.gif" title="Ant External Documentation" alt="Ant external documentation" ></p></td>
</tr>
<tr>
<td> <p align="right"><b>Ant target
per build kind</b></p></td>
<td> <p>The <b>Targets</b> tab for an Ant builder allows
you to specify the target(s) that should be executed for each build
kind. This includes the target to execute when you invoke a &quot;Clean&quot;.</p>
<p><img src="images/build_targets.gif" title="Builder properties dialog" alt="Targets tab" ></p></td>
</tr>
<tr>
<td> <p align="right"><b>More control
over error reporting in the Ant editor</b></p></td>
<td> <p>You can now set the Ant editor to ignore all buildfile problems.
As well, you can specify specific buildfile names for which
the editor should not report problems. Both settings are controlled
using the Ant editor preferences for <b>Problems</b>.</p>
<p><img src="images/control.png" alt="Screenshot of Ant error reporting preferences"></p></td>
</tr>
<!-- ******************** Debug ********************* -->
<tr>
<td colspan="2"><a name="Debug"></a>
<div style="font-size: 20px; font-weight: bold;">Debug Changes</div>
</td>
</tr>
<tr>
<td> <p align="right"><b>Console EOF</b></p></td>
<td><p>In the <b>Console</b> view you can signal end-of-file
to a program waiting for input by pressing Ctrl+Z on Windows (Ctrl+D on Linux).
</p></td>
</tr>
<tr>
<td> <p align="right"><b>Console encoding</b></p></td>
<td><p>The <b>Console</b> can be configured to display output
using a character encoding different from the default encoding. To set
the console encoding for an application, use the <b>Console Encoding</b>
settings on the <b>Common</b> tab of a launch configuration.</p></td>
</tr>
<tr>
<td> <p align="right"><b>Capturing
program output</b></p></td>
<td> <p>A program's output can now be captured
in a file in addition to being written to the console. The behavior
is controlled by settings found on the <b>Common</b> tab of launch configurations.
</p></td>
</tr>
<tr>
<td> <p align="right"><b>Multiple
console views</b></p></td>
<td> <p>If you need to see multiple consoles
at once, you can now open additional <b>Console</b> views via the <b>New Console
View</b> command found on the <b>Open Console</b> drop-down menu in
the <b>Console</b> view.</p></td>
</tr>
<tr>
<td> <p align="right"><b>Breakpoint
organization</b></p></td>
<td> <p>The <b>Breakpoints</b> view allows breakpoints
to be grouped by type, project, file, or working sets, and supports
nested groupings. You can use breakpoint working sets to group breakpoints
into problem-specific sets that can be quickly enabled and disabled
as a whole. Newly-created breakpoints are automatically placed into
the default breakpoint working set (displayed in <b>bold</b>). You can copy
and paste and drag and drop breakpoints between breakpoint working sets,
and a breakpoint can be placed in more than one breakpoint working set.</p>
<p><img src="images/breakpoint_workingsets.png" title="Breakpoints view" alt="Breakpoints view showing working sets"></p></td>
</tr>
</tbody>
</table>
<!-- ****************** END OF N&N TABLE ****************** -->
</body>
</html>