blob: 414f52d77df03088329c11f9b4b7a9f48f7ae15b [file] [log] [blame]
<?xml version="1.0" encoding="iso-8859-1" ?>
<!--
Copyright (c) 2009 EclipseSource and others.
All rights reserved. This program and the accompanying materials
are made available under the terms of the Eclipse Public License v1.0
which accompanies this distribution, and is available at
http://www.eclipse.org/legal/epl-v10.html
-->
<noteworthy version="1.3">
<entry category="RWT" milestone="M1">
<title>
CSS Gradients and Rounded Borders
</title>
<description>
<![CDATA[
The RAP theming now supports gradients and rounded borders for many
widgets.
Both features are implemented using vector graphics (SVG/VML) on the
client-side.
Of course, this works with all browsers supported by RAP.
<br/>
<img src="images/GradientsAndRoundedBorders.png"
style="margin-top: 10px; margin-bottom: 10px" />
<br />
For gradients we followed the CSS syntax
<a href="http://webkit.org/blog/175/introducing-css-gradients/">implemented by Safari</a>,
as there is no official CSS syntax around.
Beside a start color and an end color, you can also define any
number of intermediate steps.
Currently, only vertical linear gradients are supported.
<pre>
background-image: gradient(
linear, left top, left bottom,
from( #ffffff ),
color-stop( 48%, #f0f0f0 ),
color-stop( 52%, #e0e0e0 ),
to( #cccccc )
);
</pre>
For rounded borders, we followed the approach outlined in the
<a href="http://www.w3.org/TR/css3-background/#the-border-radius">CSS Backgrounds and Borders Module</a>.
You can set rounded borders using the <code>border-radius</code>
property, even a different radius for every corner is possible.
<pre>
border: 2px solid #005092;
border-radius: 6px;
</pre>
]]>
</description>
</entry>
<entry category="RWT" milestone="M1">
<title>
New API added
</title>
<description>
<![CDATA[
This will make it easier for the community to reuse existing code or
to utilize new features.
Here is a list of API methods added in M1:
<br />
<ul>
<li><code>ActionFactory#RESET_PERSPECTIVE</code></li>
<li><code>Combo#getSelection()</code> and
<code>Combo#setTextLimit()</code></li>
<li><code>Composite#setLayoutDeferred( boolean )</code></li>
<li><code>CTabFolder#setUnselectedImageVisible( boolean )</code> and
<code>CTabFolder#setSelectionBackground( Color[],int[] )</code>
</li>
<li><code>Display#getSystemCursor( int )</code></li>
<li><code>List#getTopIndex</code> and
<code>List#setTopIndex</code></li>
<li><code>List#showSelection()</code></li>
<li><code>ProgressBar#setState()</code></li>
<li><code>Shell#setModified( boolean )</code></li>
<li><code>Spinner#getText()</code>,
<code>Spinner#getTextLimit()</code> and
<code>Spinner#setTextLimit( int )</code></li>
<li><code>SWT.TOOL</code> style flag for <code>Shell</code></li>
<li><code>ToolBar#getItem( Point )</code></li>
<li><code>Widget#getListeners( int )</code> and
<code>Widget#isListening( int )</code></li>
</ul>
]]>
</description>
</entry>
<entry category="RWT" milestone="M1">
<title>
Help Events
</title>
<description>
<![CDATA[
It is now possible to attach help listeners to controls and menus.
These events are generated when help is requested for a control or
menu, typically when the user presses F1.
]]>
</description>
</entry>
<entry category="JFace / Workbench" milestone="M1">
<title>
Cheatsheet support
</title>
<description>
<![CDATA[
With the support of the FormText widget we now provide an
implementation of the cheatsheets plugin known from RCP. With this
it's possible to provide step-by-step cheatsheets with direct
integration of the application itself.
<br />
<img src="images/cheatsheets.png"
style="margin-top: 10px; margin-bottom: 10px"/>
<br />
See the
<a href="http://help.eclipse.org/galileo/topic/org.eclipse.platform.doc.isv/guide/ua_cheatsheet.htm">Eclipse help</a>
for more informations about cheatsheets and how to use them.
]]>
</description>
</entry>
<entry category="RWT" milestone="M2">
<title>
Infrastructure for client-side unit tests
</title>
<description>
<![CDATA[
The new Javascript-Testrunner enables developers to write client-side
tests for their custom-widgets using a JUnit-like syntax. The
TestRunner also includes tools to simulate client-server communication
and user-interactions. A simple test-case might look like this:
<pre>
qx.Class.define( "com.example.widgets.tests.CustomWidgetTest", {
extend : qx.core.Object,
members : {
testText : function() {
var widget = new com.example.widgets.CustomWidget();
widget.setText( "Hello World!" );
assertEquals( "Hello World!", widget.getText() );
}
}
} );
</pre>
<br />
If any assert fails, the TestRunner will inform the developer via
its very simple UI and freeze Qooxdoo to ease debugging.
<br />
The project is located in the <a href="/rap/source/">RAP CVS</a>
under <code>runtime.rwt.test/org.eclipse.rap.rwt.q07.jstest</code>.
]]>
</description>
</entry>
<entry category="RWT" milestone="M2">
<title>
DateTime DROP_DOWN
</title>
<description>
<![CDATA[
The DateTime widget now supports the <code>SWT.DROP_DOWN</code> style.
<pre>
DateTime dateTime = new DateTime( parent, SWT.DATE | SWT.DROP_DOWN );
</pre>
<br />
<img src="images/RAPDateTimeDropDown.png"
title="DateTime widget with DROP_DOWN style"
style="margin-top:10px; margin-bottom:10px" />
<br />
The appearance of the drop-down button can be changed with CSS in
the same way like in Combo.
]]>
</description>
</entry>
<entry category="RWT" milestone="M2">
<title>
Compression Turned Off by Default
</title>
<description>
<![CDATA[
Until now, responses sent by RAP were compressed using gzip. When
running on Tomcat, this could lead to character garbage being delivered
to the browser (see
<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=259977">bug
259977</a>).
<br />
Therefore we decided to turn off compression in RAP by default
(<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=285669">bug
285669</a>).
Beside the issue in Tomcat, compression is a task that should rather
be done by the servlet container to give administrators better control
over the setup.
<br />
Compression can be turned on by specifying the VM argument
<code>org.eclipse.rwt.compression=true</code>. This is the default
setting for newly created launch configurations.
]]>
</description>
</entry>
<entry category="RWT" milestone="M2">
<title>
New API added
</title>
<description>
<![CDATA[
Here is a list of API methods added in M2:
<br />
<ul>
<li><code>Text#getCaretPosition()</code></li>
<li><code>CTabFolder#setSelectionBackground( Image )</code></li>
<li><code>CTabItem#setShowClose( boolean )</code></li>
<li><code>Display#getCursorLocation()</code></li>
<li><code>Control#isReparentable()</code> and
<code>Control#setParent()</code></li>
<li><code>SWT.SHEET</code> style flag for <code>Shell</code></li>
<li><code>Tree#select( TreeItem )</code> and
<code>Tree#deselect( TreeItem )</code></li>
<li><code>Shell#setImages( Image[] )</code> and
<code>Shell#getImages()</code>
<li><code>Shell#setMinimumSize( int, int )</code>,
<code>Shell#setMinimumSize( Point )</code> and
<code>Shell#getMinimumSize()</code></li>
<li><code>List#deselect( int )</code>,
<code>List#deselect( int, int )</code> and
<code>List#deselect( int[] )</code></li>
<li><code>Control#update()</code> and
<code>Display#update()</code></li>
<li><code>ScrolledComposite#showControl( Control )</code>,
<code>ScrolledComposite#setShowFocusedControl( boolean )</code> and
<code>ScrolledComposite#getShowFocusedControl()</code></li>
<li><code>Table#showColumn( TableColumn )</code></li>
</ul>
]]>
</description>
</entry>
<entry category="JFace / Workbench" milestone="M2">
<title>
Layout Override Mechanism
</title>
<description>
<![CDATA[
To customize an existing RAP design was not possible without touching
the providing bundle. Therefore we introduce a new mechanism to make it
much easier for adding or replacing own contributions to a design.<br/>
The mechanism makes it possible to replace existing LayoutSets.
Therefore LayoutSet elements from the
<code>org.eclipse.rap.ui.layouts</code> extension point got a new
optional attribute called overridesId. To override a single LayoutSet
a developer has to create a new extension of
<code>org.eclipse.rap.ui.layouts</code> and give it the same id as the
Layout which contains the LayoutSet to override. After this he just
has to declare a new LayoutSet element and set the overridesId to the
original one. <br/>
<img src="images/LayoutSetOverridding.png" alt="Overriding LayoutSets"
title="Screenshot taken from org.eclipse.rap.examples"
style="margin-top:10px" />
<br/>
It's important to use the same identifiers for images, fonts, colors
and positions within the <code>ILayoutSetInitializer</code>.
]]>
</description>
</entry>
<entry category="JFace / Workbench" milestone="M2">
<title>
Tooltips for TableViewer
</title>
<description>
<![CDATA[
The <code>TableViewer</code> can now display tooltips for its content.
It can be activated by calling
<code>ColumnViewerToolTipSupport#enableFor()</code>.
Afterwards you need to override
<code>CellLabelProvider#getToolTipText(Object)</code> and have it
return the respective tooltip text. Other tooltip-related methods
(<code>getToolTipBackgroundColor</code>, etc.) are not supported.
<br />
<img src="images/TableViewerToolTip.jpeg"
title="TableViewer showing a tooltip"
style="margin-top:10px" />
]]>
</description>
</entry>
<entry category="JFace / Workbench" milestone="M2">
<title>
HelpSystem support
</title>
<description>
<![CDATA[
With the support for the Eclipse Help infrastructure, you're now able
to integrate the well-known help system into your RAP applications.
<br />
<img src="images/helpsystem.png"
title="HelpSystem in Action"
style="margin-top:10px; margin-bottom:10px" />
<br />
Currently RAP only provides the infrastructure to plug in a help
system implementation. Depending on your needs you can go ahead and
use a simple implementation as shown in our
<a href="http://wiki.eclipse.org/RAP/FAQ#How_to_integrate_the_Eclipse_Help_System_in_a_RAP_application.3F">FAQ</a>.
In case you are already using the cheatsheets plugin with links to the
help system, please be sure to include a help system implementation.
Otherwise your users will not be able to open the associated help
topics.
]]>
</description>
</entry>
<entry category="Look &amp; Feel" milestone="M2">
<title>
New Configuration Dialog
</title>
<description>
<![CDATA[
To provide a more consistent design we replaced the configuration
dialog of the Business design with a more lightweight implementation.
Additionally we added an effect called
<a href="http://en.wikipedia.org/wiki/Lightbox_(JavaScript)">Lightbox</a>
which occurs when the dialog is open. To improve the usability of
the design we also have disabled the configuration button if a view
has no actions or viewmenu.
<img src="images/ConfigurationDialog.png" alt="ConfigurationDialog"
title="New RAP Business design configuration dialog"
style="margin-top:10px" />
]]>
</description>
</entry>
<entry category="Look &amp; Feel" milestone="M2">
<title>
Fancy design
</title>
<description>
<![CDATA[
With <a href="../1.2/">RAP 1.2</a> we released a new look and
feel called business design. With this design we wanted to show
how RAP can look like in a serious sector. Now we introduce another
example called fancy design. This design shows that RAP is a
really modern technology and can look like one too.<br/>
To use this design a developer should follow the
<a href="http://eclipsesource.com/blogs/2009/06/02/yes-its-a-rap-application/">
steps from the business design</a> and replace the servlet name with
"fancy". <br/>
<img src="images/fancyDesign.png" alt="RAP fancy design"
title="Screenshot taken from the RAP fancy design"
style="margin-top:10px" />
<br/>
Please note that we changed a few IDs of some of the <code>
LayoutSets</code>. So, if you have replaced some LayoutSets please
update the <code>overridesId</code> attributes by removing the
word "business".
]]>
</description>
</entry>
<entry category="RWT" milestone="M3">
<title>
New API added
</title>
<description>
<![CDATA[
Here is a list of API methods added in M3 :
<br />
<ul>
<li><code>Display#addListener()</code> and
<code>Display#removeListener()</code> which allow to register for
<code>SWT.Close</code> and <code>SWT.Dispose</code> events.
</li>
<li><code>Display#disposeExec()</code></li>
<li><code>Display#close()</code></li>
<li><code>Shell()</code> default constructor</li>
<li><code>SelectionEvent#stateMask</code>, that represents the state
of the keyboard modifier keys at the time the event was generated
</li>
<li>Improved <code>Display#getDefault()</code> - now creates a
display if executed from the user-interface thread. (see
<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=293809">bug
293809</a> for details)
</li>
</ul>
]]>
</description>
</entry>
<entry category="RWT" milestone="M3">
<title>
Non-shared SWT Resources
</title>
<description>
<![CDATA[
Constructors for the following resources were implemented
<ul>
<li><code>Cursor</code></li>
<li><code>Color</code></li>
<li><code>Font</code></li>
<li><code>Image</code></li>
</ul>
The factory methods (<code>Graphics#get*</code>) are still the
recommended way for dealing with resources in RWT.
If single-sourcing is desired and the extra memory is justifible,
using resource-constructors might be considered.
<br />
With this change, also <code>dispose()</code> and
<code>isDisposed()</code> were introduced.
Even though these methods exist for all resources (shared and non-shared)
it is considered an error to disposed of factory-created (shared)
resources and an <code>IllegalStateException</code> is thrown in this
case.
]]>
</description>
</entry>
<entry category="RWT" milestone="M3">
<title>
Browser History
</title>
<description>
<![CDATA[
New API has been added to interact with the browser's history stack.
The <code>IBrowserHistory</code> implementation can be obtained via
<code>RWT.getBrowserHistory()</code>.
To create a new history entry, you can use its <code>createEntry()</code>
method. In order to receive notification of user-directed changes to the
current history entry, use <code>addBrowserHistoryListener()</code>.
<br/>
<img style="margin-top:10px; margin-bottom:10px" src="images/BrowserHistory.png" />
<br />
To see the browser history support in action, see the
<a href="http://rap.eclipsesource.com/rapdemo/examples">RAP Examples</a>
]]>
</description>
</entry>
<entry category="RWT" milestone="M3">
<title>
Customizable focus indicator
</title>
<description>
<![CDATA[
We implemented a themeable focus indicator for buttons.
This allows to show the focus rectangle <i>inside</i> the buttons.
<br />
<img style="margin-top:10px" src="images/Button-focus.png" />
]]>
</description>
</entry>
<entry category="Look &amp; Feel" milestone="M3">
<title>
Theming and new designs
</title>
<description>
<![CDATA[
We extended the theming for a couple of widgets (such as CTabFolder,
CLabel, Combo, Spinner and DateTime) and improved the new "fancy"
design e.g. the support for standalone views was added.<br/>
<img style="margin-top:10px; margin-bottom:10px" src="images/fancyStandaloneView.png" />
<br/>
A great deal of the bugs and enhancement requests fixed in
M3 are related to design and theming.
]]>
</description>
</entry>
<entry category="Tooling" milestone="M3">
<title>
Session Timeout Option
</title>
<description>
<![CDATA[
The RAP Application Launcher now has an option to specify the session
timeout in Seconds. This can come in handy if you whish to test session
shutdown scenarios and saves you from remembering the lengthy
<code>org.eclipse.equinox.http.jetty.context.sessioninactiveinterval</code>
VM argument.
<br/>
<img style="margin: 10px 10px 0px;" src="images/SessionTimeout.png" />
]]>
</description>
</entry>
<entry category="RWT" milestone="M4">
<title>
Drag and Drop
</title>
<description>
<![CDATA[
RAP now supports Drag and Drop. The user can use the mouse and keyboard
the way he is used to in his desktop applications to move, copy or link
data. The API is SWT-compatible, using <code>DragSource</code>,
<code>DropTarget</code> and <code>Transfer</code>.
<br />
This first version still has some limitations, in particular: feedback-
effects (e.g. for trees and tables) are missing, the escape key can not
be used to cancel a drag, and the operationChanged-event is not yet
thrown. We expect to deliver those features soon.
<br />
<img style="margin: 10px 10px 0px;" src="images/dnd.png" />
<br />
To try out drag and drop online, see the
<a href="http://rap.eclipsesource.com/rapdemo/examples">RAP Examples</a>
(go to the <i>List</i> page).
]]>
</description>
</entry>
<entry category="RWT" milestone="M4">
<title>
New API added
</title>
<description>
<![CDATA[
Here is a list of new API that was added in M4:
<br />
<ul>
<li><code>Text#getText( int, int )</code></li>
</ul>
]]>
</description>
</entry>
<entry category="RWT" milestone="M4">
<title>
Changes to ISessionStore
</title>
<description>
<![CDATA[
The <code>ISessionStore</code> has undergone slight API changes.
The methods <code>addSessionStoreListener</code>,
<code>removeSessionStoreListener</code>
and <code>getAttributeNames</code> are affected in that they don't throw
an exception anymore when being invoked on an invalidated session.
<br />
Instead their return value indicates whether they completed successfully.
Due to the multi-threaded environment, it is not possible to reliably
determine the outcome before calling one of these methods (isBound()
could have changed meanwhile). Please see the JavaDoc for more details.
<br />
We don't expect to break existing clients, the changes are documented here
for completeness. However, if you are having trouble file a
<a href="/rap/bugs/">new bug</a> or re-open
<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=278258">bug 278258</a>
]]>
</description>
</entry>
<entry category="JFace / Workbench" milestone="M4">
<title>
ControlDecoration
</title>
<description>
<![CDATA[
JFace ControlDecoration support has been added. Clients can now
decorate any kind of control with an image and description text shown
when the user hovers over the image.
<img style="margin-top:10px; margin-bottom:10px" src="images/ControlDecoration.png" />
<br/>
]]>
</description>
</entry>
<entry category="Look &amp; Feel" milestone="M4">
<title>
Widget Theming
</title>
<description>
<![CDATA[
Almost all RWT widgets got a new theming. The theming is coupled with the
<a href="http://www.eclipse.org/rap/noteworthy/news_13M2.php#Look%20&%20Feel">
design examples</a>. So, we have created two themes. One for the
<a href="http://eclipsesource.com/blogs/2009/06/02/yes-its-a-rap-application/">
business design</a> which uses a blue color scheme and one for the
<a href="http://eclipsesource.com/blogs/2009/09/02/new-fancy-rich-ajax-platform-rap-theme/">
fancy design</a> which uses a green color scheme. To activate one of these
themes just add the bundle <code>org.eclipse.rap.design.example</code>
to your launch configuration and set the theming id in your branding to
<code>org.eclipse.rap.design.example.business.theme</code> or <code>
org.eclipse.rap.design.example.fancy.theme</code>.
<img style="margin-top:10px; margin-bottom:10px" src="images/RAPNewTheming.png" />
<br/>
]]>
</description>
</entry>
<entry category="RWT" milestone="M5">
<title>
BrowserFunction
</title>
<description>
<![CDATA[
With the support for SWT BrowserFunctions it is now possible to register
custom Java functions for a Browser widget and call them from JavaScript.
In addition it allows you to pass any parameters from JavaScript to the
Java function.
<br />
Thanks to the donation of henzler informatik gmbh we were able to acquire
additional resources to have the BrowserFunction implemented for M5.
]]>
</description>
</entry>
<entry category="RWT" milestone="M5">
<title>
ImageData
</title>
<description>
<![CDATA[
<code>ImageData</code> and related classes (<code>ImageLoader</code>,
<code>ImageLoaderEvent</code>, etc.) are now public API. As a result, the
<code>Image(Device,ImageData)</code> constructor is also available.
<br />
The factory methods (Graphics#getImage) are still the recommended way
for creating image in RWT. If single-sourcing is desired and the extra
memory is justifible, using constructors might be considered.
]]>
</description>
</entry>
<entry category="JFace / Workbench" milestone="M5">
<title>
Multi-locale extension registry
</title>
<description>
<![CDATA[
Since M4, the Equinox
<a href="http://archive.eclipse.org/eclipse/downloads/drops/S-3.6M4-200912101301/eclipse-news-M4.html#Equinox">
extension registry is able to handle multiple locales</a>
(see bug
<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=244468">244468</a>
for details). A socalled LocaleProvider service is used to determine the
current locale.
<br />
<br />
The RAP workbench now registers a LocaleProider service that returns the
locale based on the RWT locale of the current session.
<br />
Please note that you have to add a new system property in order to
activate the multi-language support for Equinox:
<br />
<code>-Declipse.registry.MultiLanguage=true</code>
<br />
<br />
With these changes the <code>org.eclipse.rap.equinox.registry</code>
fragment is rendered obsolete.
]]>
</description>
</entry>
<entry category="JFace / Workbench" milestone="M5">
<title>
Servlet Filter support
</title>
<description>
<![CDATA[
Since M5, there is support for Servlet Filters in Equinox. See the
<a href="http://archive.eclipse.org/eclipse/downloads/drops/S-3.6M5-201001291300/eclipse-news-M5.html#Equinox">
3.6M5 New &amp; Noteworthy</a> for details.
]]>
</description>
</entry>
<entry category="JFace / Workbench" milestone="M5">
<title>
IApplication support
</title>
<description>
<![CDATA[
With support for <code>IApplication</code>s, you're now able to start
a RAP application the same way as it is possible in RCP. This means
that you don't need to provide an <code>IEntryPoint</code>
implementation.
<pre>
&lt;extension
id=&quot;myapp&quot;
point=&quot;org.eclipse.core.runtime.applications&quot;&gt;
&lt;application visible=&quot;true&quot;&gt;
&lt;run class=&quot;org.eclipse.rap.demo.DemoWorkbench&quot;&gt;&lt;/run&gt;
&lt;/application&gt;
&lt;/extension&gt;
</pre>
As stated in this example, the entrypoint parameter to access the
application is equal to the id of the extension. This means the
application is available at <i>host:port/rap?startup=myapp</i>.
In case you want to refer to your application in the branding extension
point (e.g. as default entrypoint), you have to use the fully-qualified
name of the extension (e.g. org.eclipse.rap.demobundle.myapp).
]]>
</description>
</entry>
<entry category="RWT" milestone="M5">
<title>
New API added
</title>
<description>
<![CDATA[
Here is a list of API added in M5:
<br />
<ul>
<li><code>Composite#layout( Control[], int )</code></li>
<li><code>MouseEvent#stateMask</code></li>
<li><code>Widget#reskin( int )</code> and
<code>SWT.Skin</code> event</li>
</ul>
]]>
</description>
</entry>
<entry category="Look &amp; Feel" milestone="M5">
<title>
Coolbar
</title>
<description>
<![CDATA[
Before RAP 1.3 M5 the CoolbarManager has renderd the contribution items
into the main Coolbar. Since M5 the items render themselves. This results
in more flexibility and you can use all items which implements
<code>IContributionItem</code> and the method
<code>fill(ToolBar parent, int index)</code>. To render the items into the
UI a <code>ToolBar</code> is used instead of a <code>CoolBar</code>. Since
<a href="http://www.eclipse.org/rap/noteworthy/news_13M2.php">1.3 M2</a>,
RAP has a new <code>ToolBar</code> implementation which provides more
opportunities for
<a href="http://help.eclipse.org/galileo/index.jsp?topic=/org.eclipse.rap.help/help/html/advanced/theming.html">
theming</a>. This gives you the possibility to style the
<code>ToolBar</code> in a way that fits more with your
<a href="http://www.eclipse.org/rap/noteworthy/news_13M2.php#Look%20&%20Feel">
RAP design</a>. <br/>
<img style="margin-top:10px; margin-bottom:10px" src="images/newToolbarBusiness.png" />
<br/>
<img style="margin-top:10px; margin-bottom:10px" src="images/newToolbarFancy.png" />
]]>
</description>
</entry>
<entry category="Look &amp; Feel" milestone="M5">
<title>
MenuBar
</title>
<description>
<![CDATA[
The <a href="http://eclipsesource.com/blogs/2008/12/18/extended-presentation-api/">
interaction desing API</a> gives you the possibility to style a Shell's
<code>MenuBar</code>. With RAP 1.3 M5 we have created a whole new
<code>MenubarManager</code> implementation to provide a much more flexible
menu. Therefore, we use a <code>ToolBar</code> to provide you a high themable
menubar. <br/>
<img style="margin-top:10px; margin-bottom:10px" src="images/newMenuBusiness.png" />
<br/>
<img style="margin-top:10px; margin-bottom:10px" src="images/newMenuFancy.png" />
]]>
</description>
</entry>
<entry category="RWT" milestone="M6">
<title>
New API added
</title>
<description>
<![CDATA[
Here is a list of API added in M6:
<br />
<ul>
<li><code>Shell#setFullScreen( boolean )</code> and
<code>Shell#getFullScreen()</code></li>
<li><code>Text#setMessage( String )</code> and
<code>Text#getMessage()</code></li>
<li><code>TabFolder#getItem( Point )</code></li>
<li><code>TabItem#getBounds()</code></li>
<li><code>Text#setEchoChar( char )</code> and
<code>Text#getEchoChar()</code></li>
<li>To aid single-sourcing the <code>SWT#SYSTEM_MODAL</code> and
<code>SWT#PRIMARY_MODAL</code> styles were introduced. They behave
the same as the <code>SWT#APPLICATION_MODAL</code> flag.</li>
<li><code>SWT.MenuDetect</code> event and its typed counterpart</li>
<li><code>SWT.Arm</code> event and its typed counterpart</li>
<li><code>Tree#getItemHeight()</code></li>
<li><code>TreeItem#getTextBounds( int )</code></li>
<li><code>CLabel#setMargins( int, int, int, int )</code> and related
methods</li>
<li><code>Device#getFontList( String, boolean )</code></li>
<li><code>Spinner#setDigits( int )</code></li>
<li><code>Display#setAppName( String )</code> /
<code>#getAppName()</code> and
<code>Display#setAppVersion( String )</code> /
<code>getAppVersion()</code></li>
</ul>
]]>
</description>
</entry>
<entry category="RWT" milestone="M6">
<title>
FontMetrics
</title>
<description>
<![CDATA[
In order to increase code-resuse for text measurement from SWT, we
introduced the classes <code>GC</code> and <code>FontMetrics</code>.
<br />
<code>getAverageCharWidth</code>, <code>getHeight</code> from
<code>FontMetrics</code> and <code>getCharWidth</code>,
<code>stringExtent</code>, <code>textExtent</code> from <code>GC</code>
delegate to the respective methods from class <code>Graphics</code>.
]]>
</description>
</entry>
<entry category="JFace / Workbench" milestone="M6">
<title>
JFace 3.6
</title>
<description>
<![CDATA[
We adopted the JFace 3.6 code base to make new JFace features available and
increase code-reuse between RAP and RCP. Some of the more noteworthy changes
are listed below:
<ul>
<li><code>PixelConverter</code> and <code>Dialog#convert...</code>
methods to convert between pixels and DLUs and vice versa</code></li>
<li><code>MessageDialog#CONFIRM</code> and <code>MessageDialog#open()
</code></li>
<li><code>RowLayoutFactory</code> and <code>RowDataFactory</code></li>
<li>Enhancements in <code>TableColumnLayout</code> and
<code>TreeColumnLayout</code></li>
<li><code>ConfigureColumns</code>, a column configuration dialog for
trees and tables</li>
<li><code>ArrayContentProvider#getInstance</code></li>
<li><code>ICheckStateProvider</code> for tree- and table-viewer with
checkboxes</li>
</ul>
]]>
</description>
</entry>
<entry category="JFace / Workbench" milestone="M6">
<title>
Forms 3.6
</title>
<description>
<![CDATA[
We adopted the Forms 3.6 code base too. New API added:
<ul>
<li><code>MasterDetailsBlock#createContent( IManagedForm, Composite )</code></li>
</ul>
]]>
</description>
</entry>
<entry category="Look &amp; Feel" milestone="M6">
<title>
View contribution item visibility
</title>
<description>
<![CDATA[
We have extended the branding to make all view contribution items visible
by default while using one of the
<a href="http://eclipsesource.com/blogs/2009/09/02/new-fancy-rich-ajax-platform-rap-theme/">
new designs</a>. The <code>presentationFactory</code> subelement of the
<code>org.eclipse.rap.ui.branding</code> extension point got a new
attribute called <code>viewActionsVisible</code>. The value of this
attribute is <code>false</code> by default. So, all view contribution
items are invisble to provide a cleaner UI. When changing this value to
<code>true</code>, all items will be visible and the
<a href="http://www.eclipse.org/rap/noteworthy/news_13M2.php#Look%20&%20Feel">
configuration menu</a> will be disabled.
<br/>
<img style="margin-top:10px; margin-bottom:10px" src="images/viewActionVisibility.png" />
]]>
</description>
</entry>
<entry category="Tooling" milestone="M6">
<title>
Styled RAP Templates
</title>
<description>
<![CDATA[
We have added the new designs and themes to the RAP templates. The old
templates made usage of the default theme. We changed this for two of
the three existing RAP templates. The following changes were made:
<ul>
<li><b>RAP Application with a view</b> uses the
<a href="http://eclipsesource.com/blogs/2009/11/20/advanced-rap-theming/">
fancy theme</a> now.</li>
<li><b>RAP Maildemo</b> uses the
<a href="http://eclipsesource.com/blogs/2009/06/02/yes-its-a-rap-application/">
business design</a> now.</li>
</ul>
The <b>Hello World</b> template still uses the default theme.
]]>
</description>
</entry>
<entry category="Integration with other Projects" milestone="M6">
<title>
EMF on RAP
</title>
<description>
<![CDATA[
We are proud to announce that <a href="http://www.eclipse.org/emf">EMF</a>
now provides RAP support out of the box. To see how it works, please refer
to this <a href="http://wiki.eclipse.org/RAP/EMF_Integration">wiki page</a>.
<br/>
<img style="margin-top:10px; margin-bottom:10px" src="images/emf_rap.png" />
]]>
</description>
</entry>
<entry category="Integration with other Projects" milestone="M6">
<title>
Riena on RAP
</title>
<description>
<![CDATA[
We are happy to announce, that initial support to run Riena on RAP
has been provided by the Riena team. Please see
<a href="http://eclipsesource.com/blogs/2010/02/20/riena-meets-eclipse-rap-goes-to-browser/">this blog</a>
and the <a href="http://wiki.eclipse.org/Riena_on_RAP">Riena on RAP</a>
wiki page for further details.
<br/>
<img style="margin-top:10px; margin-bottom:10px" src="images/riena-on-rap.png" />
]]>
</description>
</entry>
<entry category="Integration with other Projects" milestone="M6">
<title>
EPP Package
</title>
<description>
<![CDATA[
The <a href="http://eclipse.org/epp">Eclipse Packaging Project</a> now
offers an <strong>Eclipse for RCP/RAP Developers</strong> package from its
download page.
<br />
It is a complete set of tools for developers who want to create Eclipse
plug-ins, Rich Client or Rich Ajax Applications (RCP + RAP).
]]>
</description>
</entry>
<entry category="RWT" milestone="M7">
<title>
SWT API implemented
</title>
<description>
<![CDATA[
Here is a list of SWT API that was implemented in M7:
<br />
<ul>
<li><code>Device#getDPI()</code></li>
<li><code>Device#getDepth()</code></li>
<li><code>Display#beep()</code></li>
<li><code>Image#getBackground()</code></li>
<li><code>Image#setBackground()</code></li>
<li><code>SWT#CURSOR_NO</code> and <code>SWT#CURSOR_APPSTARTING</code></li>
<li><code>SWT#getVersion()</code></li>
<li><code>Display#findDisplay()</code></li>
<li><code>Display#getSyncThread()</code></li>
<li><code>Display#getCursorControl()</code></li>
</ul>
]]>
</description>
</entry>
<entry category="RWT" milestone="M7">
<title>
Theme Contributions
</title>
<description>
<![CDATA[
It is now possible to contribute CSS code to existing themes using the
extension point <code>org.eclipse.rap.ui.themes</code>.
This way, plug-in developers can easily add CSS rules for their controls
without the need to copy and extend an existing theme.
<br/>
<img style="margin-top:10px; margin-bottom:10px" src="images/ThemeContributions.png" />
]]>
</description>
</entry>
<entry category="RWT" milestone="M7">
<title>
ServiceHandlers
</title>
<description>
<![CDATA[
It is now possible to contribute <code>ServiceHandler</code>s via
extensions using the extension point
<code>org.eclipse.rap.ui.serviceHandler</code>.
This way, plug-in developers can easily declare ServiceHandlers
instead of registering them programmtically.
<br/>
<img style="margin-top:10px; margin-bottom:10px" src="images/ServiceHandlerExt.png" />
]]>
</description>
</entry>
<entry category="RWT" milestone="M7">
<title>
Theme Extensions
</title>
<description>
<![CDATA[
The theming was extended in serveral places
<ul>
<li>
The Shell has a new themeable element called <code>Shell-DisplayOverlay</code>.
When a modal shell with is opened, there is a usually invisible
element that is blocking all user-interactions with what is behind the
shell. This "overlay" can now be themed to visualize this behaviour, using
a semi-transparent background-color or image.
<br />
For example:
<pre>
Shell-DisplayOverlay {
background-image: none;
background-color: #000000;
opacity: 0.5;
}
</pre>
<br />
<img src="images/modal.png" style="margin-top: 10px; margin-bottom: 10px" />
</li>
<li>
We introduced the <code>opacity</code>-property on the following widgets:
<br />
<code>Label</code>, <code>CLabel</code>, <code>Composite</code>,
<code>Menu</code>, <code>Menuitem</code>, <code>ToolBar</code>,
<code>ToolItem</code>, <code>ToolTip</code> and
<code>ProgressBar-Indicator</code>
<br />
<img src="images/opacity.png" style="margin-top: 10px; margin-bottom: 10px" />
<br />
This is an easy way to achieve semi-transparency. Be aware that there are
currently two unresolved issues regarding its use in Internet Explorer:
<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=302713">Bug 302713</a>
and
<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=303603">Bug 303603</a>
<br />
In some cases those can trigger minor graphical glitches.
</li>
<li>
The Combo and CCombo widgets now have a styleable FocusIndicator like Button.
</li>
<li>
The Text widget now supports backgroundGradient.
</li>
<li>
Tables with alternating row colors, combined with vertical-only grid
lines are a common design that was so far not supported by RAP. With
the introduction of the <code>vertical</code> and <code>horizontal</code>
states for the <code>Table-GridLine</code>-element, this is now possible:
<pre>
Table-GridLine {
color: #d0d0d0;
}
Table-GridLine:horizontal {
color: transparent;
}
</pre>
<br />
<img src="images/table-vertical-lines.png" style="margin-top: 10px; margin-bottom: 10px" />
</li>
<li>
We now support animations as part of the theming. They allow for simple
transition-effects to create a more organic user-experience. Currently
only a few widgets (<code>Button</code>, <code>ToolItem</code>,
<code>ToolTip</code>, <code>Shell-DisplayOverlay</code>,
<code>Menu</code>) and effects are available, but you can expect
more in the future. The API is a subset of the
<a href="http://www.w3.org/TR/css3-animations">CSS3 Working Draft for
animations</a>. To define an animation you need to set three values
(effect, duration, and timing function) and you can define several per
widget.
<br />
For example, to create an animated hover-effect for buttons, the syntax
could look like this:
<pre>
Button : {
animation: hoverIn 200ms linear, hoverOut 500ms ease-out;
}
</pre>
</li>
]]>
</description>
</entry>
<entry category="RWT" milestone="M7">
<title>
Graphics Context
</title>
<description>
<![CDATA[
A subset of the graphics context (GC) from SWT is now available in RAP.
It can be used for basic drawing on the the <code>Canvas</code> widget:
<br/>
<pre>
Canvas canvas = new Canvas( parent, SWT.NONE );
canvas.addPaintListener( new PaintListener() {
public void paintControl( PaintEvent event ) {
Rectangle rect = canvas.getClientArea();
event.gc.drawOval( 0, 0, rect.width - 1, rect.height - 1 );
}
} );
</pre>
<img style="margin-top:10px; margin-bottom:10px" src="images/gc.png" />
<br/>
The graphics are rendered on HTML5 Canvas on the client, for Internet
Explorer, a VML-based (vector-graphics) emulation is used.
The performance on IE may degrade drastically when the number of shapes
drawn exceeds a limit of about 500.
<br/>
To see the graphics context in action, try out the Canvas page in the
<a href="http://rap.eclipsesource.com/rapdemo/examples">RAP Examples</a>.
]]>
</description>
</entry>
<entry category="RWT" milestone="M7">
<title>
Font Dialog
</title>
<description>
<![CDATA[
RAP now contains an implementation of the SWT FontDialog.
<br/>
<img style="margin-top:10px; margin-bottom:10px" src="images/FontDialog.png" />
]]>
</description>
</entry>
</noteworthy>