<div>

  <h2>Badge support for TabItem</h2>

  <p>
    The TabItem widget now supports badges:
  </p>

  <img class="framed" alt="Badges on TabItems" src="./images/badges.png"/>

  <p>
    Those badges can be set using a data key:
  </p>

  <pre lang="java">tabItem.setData( RWT.BADGE, "23" );</pre>

  <p>
    The given string is displayed at the top-right of the item, overlaying it's border and part of
    the padding/margin areas. If the top padding + border + margin do not provide enough space to
    display the badge, it will be cut off. The theming of <em>Widget-Badge</em> and
    <em>TabItem</em> need to take badges into account if they are used. (This is already the case for
    the RAP default and business themes.)
  </p>

  <h2>Theming</h2>

  <h3>New Element “Widget-Badge”</h3>

  <p>
    To adjust the look of badges (see above), the <em>Widget-Badge</em> element
    can be used. It currently supports the properties <em>font</em>, <em>color</em>,
    <em>background-color</em>, <em>border</em> and <em>border-radius</em>.
  </p>

  <h3>New property for “TabItem”</h3>

  <p>
    The <em>TabItem</em> element now supports the <em>margin</em> property. It's default values
    differ slightly from the previous hard-coded values to accommodate the new badges.
  </p>

  <h3>New property <q>text-overflow</q></h3>

  <img class="framed" alt="Table items with ellipsis" src="./images/ellipsis.png"/>

  <p>
    <em>Table</em> and <em>Tree</em> items (and columns as well) now support the property
    <em>text-overflow</em>. When set to <em>ellipsis</em>, texts that don't fit into their cell will
    end with “…” instead of being cut off.
    The default RAP theme already has this setting.
    For custom themes, the default value is <em>clip</em>.
  </p>

  <h3>Changes in ProgressBar</h3>

  <p>
    The ProgressBar has been partially rewritten to use CSS3 properties instead of vector graphics.
    As a result, the indicator is now layouted more precisely when the bar is nearly empty or nearly
    full, but as a side-effect the <em>ProgressBar-Indicator</em> theming no longer supports the
    <em>border</em> property. It was not used by any of the themes included in RAP, so it won't change
    how the bar looks by default.
  </p>

  <h2>Remove Support for Internet Explorer 8</h2>

  <p>
    RAP 3.0 will require Internet Explorer 9 or above. Dropping support for Internet Explorer 8
    allowed us to remove thousands of lines of JavaScript code and will also enable more HTML5/CSS3
    feature in the future. For Windows Vista, IE9 can be manually installed.
    For Windows 7, IE10 is installed with Service Pack 1 and IE11 can be installed manually.
    Windows 8 has IE10 as it's default browser, which is upgraded to IE11 with Windows 8.1.
    If you still target Windows XP, you have to use either Firefox or Google Chrome.
  </p>

  <h2>RAP Tools</h2>

  <h3>Launch RWT application from ApplicationConfiguration class</h3>

  <p>
    RWT Launcher now allows you to run RWT application from its <em>ApplicationConfiguration</em>
    class. You can do this by specifying the <em>ApplicationConfiguration</em> class in the launcher
    main tab, from the file/project context menu or directly from the editor.
  </p>

  <img class="framed" alt="RWT Launcher" src="./images/rwt_launcher_app_config.png"/>

  <h2>Remove deprecated API</h2>

  <p>
    Most of the deprecated API have been removed. We will provide migration guide (similar to 2.0)
    in the next milestones.
  </p>

</div>
