<!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 http-equiv="Content-Language" content="en-us" />
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" href="default_style.css" type="text/css" title="main" media="screen" />
<title>Eclipse Project 4.5 M2 News</title>
</head>
<body>
<h1>Eclipse Project 4.5 M2 - New and Noteworthy</h1>
<p>Here are some of the more noteworthy things available in the Mars milestone build M2 (2014-09-19)
  which is now available for <a href="http://download.eclipse.org/eclipse/downloads/#4.5_Stable_Build" target="_top">download</a>.
  <br/>
  We also recommend to read the Tips and Tricks, either via <b>Help &gt; Tips and Tricks...</b> or online for
  <a href="http://help.eclipse.org/topic/org.eclipse.platform.doc.user/tips/platform_tips.html">Platform</a>,
  <a href="http://help.eclipse.org/topic/org.eclipse.jdt.doc.user/tips/jdt_tips.html">JDT</a>, and
  <a href="http://help.eclipse.org/topic/org.eclipse.pde.doc.user/tips/pde_tips.htm">PDE</a>.
</p>
<ul>
  <li><a href="#Platform">Platform</a></li>
  <li><a href="#JDT">JDT</a></li>
  <li><a href="#PDE">PDE</a></li>
</ul>

<table class="news" border="0" cellpadding="10" cellspacing="0" width="80%">

  <tr>
    <td colspan="2" class="section" id="Platform">Platform</td>
  </tr>

  <tr id="resource-notifications">
    <td class="title">New debug option for resource change notifications</td>
    <td class="content">
      In order to help troubleshooting problems with resource change listeners,
      a new debug option was added to print information about which event triggers which
      listener. This option gives a better picture of the flow of all workspace
      change events and how other plugins react to those changes. To enable the new
      option, add
      <pre>
      org.eclipse.core.resources/debug=true
      org.eclipse.core.resources/notifications=true</pre>
      in your <a href="http://help.eclipse.org/luna/topic/org.eclipse.pde.doc.user/guide/tools/launchers/tracing.htm">.options file</a>
      or use the <b>General &gt; Tracing</b> preference page to
      enable it.
    </td>
  </tr>

  <tr id="i18n-for-cssbridge">
    <td class="title">I18n support for CSS bridge</td>
    <td class="content">
      Internationalization and localization support for the CSS bridge has been added. More information can be found in <b><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=437902">bug 437902</a></b>
      <p>
      Example:
      </p>
      <p>
      	1. Modified files needed to enable the i18n support in the CSS bridge for the Polish locale:
      </p>
      <img src="images/i18n_for_cssbridge-required_mod_files.png" alt="Modified files for the i18n support"/>
      <p>
      	2. Launch the Eclipse instance with the '-nl pl' command line arguments. Running CSS bridge with Polish locale:
      </p>
      <img src="images/i18n_for_cssbridge-colorAndFontDialog.png" alt="CSS bridge with polish locale"/>      
    </td>
  </tr>

  <tr id="jface-structuredselection">
    <td class="title">Direct access to structured selection of a JFace Viewer</td>
    <td class="content">
      The JFace <code>StructuredViewer</code> class now has an API to access the <code>IStructuredSelection</code> directly.
      Examples:
<pre>	IStructuredSelection sel = viewer.getStructuredSelection();
	ITreeSelection treeSel = treeViewer.getStructuredSelection();</pre>
      Bye bye <code>(IStructuredSelection) viewer.getSelection()</code>, we won't miss you!
    </td>
  </tr>


  <tr>
    <td colspan="2" class="section" id="JDT">JDT</td>
  </tr>

  <tr id="jdt-performance">
    <td class="title">Improved compiler performance</td>
    <td class="content">
      Significant performance improvements have been made to the Java compiler on generics-heavy code.
      Details on affected scenarios, fix and performance results can be found on <b><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=434326">bug 434326</a></b>
    </td>
  </tr>

  <tr>
    <td colspan="2" class="section" id="PDE">PDE</td>
  </tr>

  <tr id="pde-css-product-editor">
    <td class="title">Products can specify CSS file</td>
    <td class="content">
      In the <b>Product Editor</b>, on the <b>Customization</b> tab, you can now
      specify the name of a CSS file to be used to style the product. 
       
      <p>
        <img src="images/product-css-location.png" alt="Your product must have the Eclipse 4 CSS support installed and you must synchronize the product with its defining plug-in to keep the extension point up to date."/>
      </p>
    </td>
  </tr>

  <tr>
    <td colspan="2"/>
  </tr>
</table>
<p>The above features are just the ones that are new since the previous milestone
build. Summaries for earlier Mars milestone builds:</p>
<ul>
  <li><a href="https://www.eclipse.org/eclipse/news/4.5/M1/">News for Eclipse Mars milestone build M1</a></li>
</ul>
</body>
</html>
