blob: 6e33551112ae6b2937008464171d2b2209b841c8 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="copyright" content="Copyright (c) Eclipse contributors and others 2018, 2019. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page."/>
<meta http-equiv="Content-Language" content="en-us"/>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<link rel="STYLESHEET" href="../book.css" type="text/css"/>
<style type="text/css">
body {max-width: 900px;}
table.news col.title {width: 30%;}
/*img {max-width: 520px;}*/
table.news {table-layout: fixed; border-collapse: collapse; width: 100%;}
table.news td {border-top: solid thin black; padding: 10px; overflow: visible;}
table.news tr {vertical-align: top;}
table.news tr td.section {font-size: 20px; font-weight: bold;}
table.news tr td.title {vertical-align: top; font-weight: bold;}
table.news tr td.content {vertical-align: top;}
ul {padding-left: 13px;}
</style>
<title>Eclipse Platform What's New in 4.13</title>
</head>
<body>
<h2>What's New in Eclipse 4.13</h2>
<p>Here are descriptions of some of the changes of interest to plug-in developers
made to the Eclipse Platform and SWT for the 4.13 release of Eclipse.
</p>
<ul>
<li><a href="#Platform">Platform Changes</a></li>
<li><a href="#SWT">SWT Changes</a></li>
<li><a href="#JFace">JFace Changes</a></li>
</ul>
<p>
New features oriented towards end-users of the platform
can be viewed in the
<a href="../../org.eclipse.platform.doc.user/whatsNew/platform_whatsnew.html">What's New</a>
section of the Workbench User Guide.
</p>
<!-- ****************** START OF N&N TABLE****************** -->
<table class="news">
<colgroup>
<col class="title" />
<col />
</colgroup>
<tbody>
<!-- ******************** Platform ********************** -->
<tr>
<td id="Platform" class="section" colspan="2"><h2>Platform Changes</h2></td>
</tr>
<tr id="generic-editor-icon"> <!-- https://bugs.eclipse.org/bugs/show_bug.cgi?id=513034 -->
<td class="title">Content-type-specific icons in generic editor</td>
<td class="content">
An extension was added to the generic editor so that it now can provide icons for content-type. See extension point <b>org.eclipse.ui.genericeditor.icons</b> for more details.
<p>
<img src="images/generic-editor-icon.png" alt="" />
</p>
</td>
</tr>
<tr id="multiline-sfe"> <!-- https://bugs.eclipse.org/bugs/show_bug.cgi?id=548650 -->
<td class="title">Multiline Support for StringFieldEditor</td>
<td class="content">
The implementation of <code>StringFieldEditor</code> now provides the option to use a multi-line Text widget, suitable
for editing larger String values in a preference page.
</td>
</tr>
<tr id="request-specific-quickaccess"> <!-- https://bugs.eclipse.org/bugs/show_bug.cgi?id=548058 -->
<td class="title">API to compute Quick Access proposals according to user input</td>
<td class="content">
An extension interface <b><code>org.eclipse.ui.quickaccess.IQuickAccessComputerExtension</code></b> to use as extension to
<code>org.eclipse.ui.quickaccess.IQuickAccessComputer</code> when using extension point <code>org.eclipse.ui.quickaccess/computer</code>
was added. This provides the ability to compute a new extra set of proposals whenever filter change.
</td>
</tr>
<tr id="javax-injext">
<td class="title">Bundle org.eclipse.core.runtime no longer reexports javax.inject</td>
<td class="content">
The org.eclipse.core.runtime bundle had <code>javax.inject</code> as an <b>optional</b> dependency, which it
previously reexported, but not anymore.
<p>
Technically, it's not a breaking change as <code>javax.inject</code> was never
guaranteed to be there thus whether it is reexported or not was not certain. Eclipse Platform can not guarantee the API stability of this package so it makes no
sense to make such a promise.
</p>
<p>
Clients have to <code>Import-Package: javax.inject</code> explicitly if they need it.
</p>
</td>
</tr>
<tr id="non-persisted-ui"> <!-- https://bugs.eclipse.org/bugs/show_bug.cgi?id=544871 -->
<td class="title">E4XMIResource optionally filters Transient UI Elements</td>
<td class="content">
When using the E4XMIResource directly, transient UI elements are no longer filtered by default.
Note that transient UI elements are filtered by default when saved from the application.
<p>To filter transient UI elements, call the save method with the new option
<code>options.put(E4XMIResource.OPTION_FILTER_PERSIST_STATE, Boolean.TRUE); resource.save(options);</code></p>
</td>
</tr>
<tr id="logging-api"> <!-- https://bugs.eclipse.org/bugs/show_bug.cgi?id=550347 -->
<td class="title">Simplified Platform logging API</td>
<td class="content">
Platform provides convenient logging API, <code>Platform.getLog(Class)</code> which can be used to access the log for the bundle to which the class belongs.
</td>
</tr>
<tr id="monitor-logging"> <!-- https://bugs.eclipse.org/bugs/show_bug.cgi?id=482062 -->
<td class="title">Tracing option for correct progress reporting usage</td>
<td class="content">
Earlier releases added support for tracing the correct usage of progress monitors. Unfortunately, this was missed while documenting in previous noteworthy documents.
<p>To enable this tracing, add <code>org.eclipse.equinox.common/progress_monitors=true</code> in your ".options" file and start Eclipse via the -debug flag, or use the tracing option in the launch configuration.
</p>
<p>
<img src="images/progress-monitor.png" alt="" />
</p>
</td>
</tr>
<!-- ******************** End of Platform ********************** -->
<!-- *********************** SWT *********************** -->
<tr>
<td id="SWT" class="section" colspan="2"><h2>SWT Changes</h2></td>
</tr>
<tr id="gdkpixbuf-imageloader"> <!-- https://bugs.eclipse.org/bugs/show_bug.cgi?id=545032 -->
<td class="title">New native implementation of ImageLoader on GTK</td>
<td class="content">
The implementation of <code>ImageLoader</code> on GTK now uses the native <code>GdkPixbuf</code> API for image loading and saving.
<p>
Key highlights of the new ImageLoader on GTK:
</p>
<ul>
<li>Loading and saving images has native performance, with a significant speedup especially in loading JPEG files</li>
<li>Better GIF animation support</li>
<li>Support for more image formats</li>
</ul>
</td>
</tr>
<tr id="gtk-toolitem-padding"> <!-- https://bugs.eclipse.org/bugs/show_bug.cgi?id=395296 -->
<td class="title">Reduced ToolItem padding on GTK</td>
<td class="content">
A fix in <code>ToolItem</code> has greatly reduced the size of some toolbars on GTK.
<p>
Previously, all <code>ToolItem</code>s were the same size as the largest of them in a given toolbar. With this fix, items are
now independently sized, which reduces the total size of toolbars that contain large items.
</p>
<p>
EGit's Rebase Interactive view is a good example of this fix. In the following screenshot, the toolbar shown on top has
the fix applied, compared to the larger, unpatched toolbar on the bottom.
</p>
<p><img src="images/gtk-toolitem-padding.png" alt="ToolItems with reduced padding compared to before"/></p>
</td>
</tr>
<tr id="win32-text-search-cancel"> <!-- https://bugs.eclipse.org/bugs/show_bug.cgi?id=293230 -->
<td class="title">Search/Cancel icons supported in Text widget on Windows</td>
<td class="content">
The Text widget on Windows now supports displaying the search and cancel icons for <code>SWT.ICON_SEARCH</code> and <code>SWT.ICON_CANCEL</code> styles respectively.
With the Windows support added, these style APIs are now supported on all the three platforms and are no longer marked as a <code>HINT</code>.
<p><img src="images/win32-text-search-cancel.png" alt="Text widget with search and clear buttons"/></p>
</td>
</tr>
<tr id="swt-is-dark-theme"> <!-- https://bugs.eclipse.org/bugs/show_bug.cgi?id=549451 -->
<td class="title">API to query if current OS theme is dark</td>
<td class="content">
A new method <code>public static boolean Display.isSystemDarkTheme()</code> is now available to query if the current OS theme has a dark appearance.
The method returns <code>true</code> if the current OS theme is dark, else it returns <code>false</code>.
</td>
</tr>
<tr id="swt-styled-text-disabled"> <!-- https://bugs.eclipse.org/bugs/show_bug.cgi?id=4745 -->
<td class="title">StyledText now supports a disabled look</td>
<td class="content">
The StyledText widget now supports a disabled look on all platforms when <code>StyledText.setEnabled(false)</code> is called.
<p><img src="images/styled-text-disabled-gtk.png" alt=""/></p>
<p><img src="images/styled-text-disabled-win.png" alt=""/></p>
<p><img src="images/styled-text-disabled-mac.png" alt=""/></p>
</td>
</tr>
<tr id="swt-disabled-colors"> <!-- https://bugs.eclipse.org/bugs/show_bug.cgi?id=548190 -->
<td class="title">New color constants for disabled widgets</td>
<td class="content">
Two new color constants are available in SWT, to match the colors used in disabled widgets. <code>SWT.COLOR_TEXT_DISABLED_BACKGROUND</code> matches the background color of a disabled text widget, and
<code>SWT.COLOR_WIDGET_DISABLED_FOREGROUND</code> matches the foreground color of a disabled widget.
</td>
</tr>
<tr id="swt-snippet-explorer"> <!-- https://bugs.eclipse.org/bugs/show_bug.cgi?id=547934 -->
<td class="title">SWT Snippet Explorer</td>
<td class="content">
The <a href="https://www.eclipse.org/swt/snippets/" target="_blank">SWT Snippets</a> project in the <a href="https://git.eclipse.org/c/platform/eclipse.platform.swt.git/" target="_blank">SWT repository</a> now includes a simple application called SnippetExplorer which can list, search and launch single or
multiple snippets at once. It also shows the snippets description, source code and a preview image where applicable.
<p><img src="images/swt-snippet-explorer.png" alt=""/></p>
</td>
</tr>
<tr id="swt-gtk-input-methods"> <!-- https://bugs.eclipse.org/bugs/show_bug.cgi?id=548628 -->
<td class="title">Input method switching on GTK</td>
<td class="content">
Early versions of GTK3 allowed the input method to be changed at the application level. This
functionality has been deprecated for quite some time, and has now been removed from SWT.
<p>To change the input method, please use the global input method settings available in the desktop environment.</p>
</td>
</tr>
<!-- *********************** End of SWT *********************** -->
<!-- *********************** JFace *********************** -->
<tr>
<td id="JFace" class="section" colspan="2"><h2>JFace Changes</h2></td>
</tr>
<tr id="columnViewEditor-cycleTabTraversal"> <!-- https://bugs.eclipse.org/bugs/show_bug.cgi?id=549194 -->
<td class="title">New ColumnViewerEditor tab traversal added</td>
<td class="content">
Tabbing to the start or end of a viewer (during an inline edit) is
now possible by passing
<b><code>ColumnViewerEditor.TABBING_CYCLE_IN_VIEWER</code></b> as a feature when calling
<code>TableViewerEditor.create(viewer,
editorActivationStrategy, feature)</code> or <code>TreeViewerEditor.create(viewer, editorActivationStrategy,
feature)</code>.
<p>
With this new feature flag enabled:
</p>
<ul>
<li>
Pressing <b>Tab</b> while editing the <b>last item</b> in a
viewer starts an inline edit on the <b>first item</b>.
</li>
<li>
Pressing <b>Shift+Tab</b> while editing the first item starts an
inline edit on the last item.
</li>
</ul>
</td>
</tr>
<!-- *********************** End of JFace *********************** -->
</tbody>
</table>
<!-- ****************** END OF N&N TABLE ****************** -->
</body>
</html>