<!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 M1 News</title>
</head>
<body>
<h1>Eclipse Project 4.5 M1 - New and Noteworthy</h1>
<p>Here are some of the more noteworthy things available in milestone build
  4.5 M1 (August 8, 2014)
  which is now available for <a href="http://download.eclipse.org/eclipse/downloads/" 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="#JDT">JDT</a></li>
  <li><a href="#PDE">PDE</a></li>
  <li><a href="#Platform">Platform</a></li>
</ul>

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

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

  <tr id="rename-copy-resource-dialog">
    <td class="title">Improved rename &amp; copy resource dialogs</td>
    <td class="content">
      The <b>Rename Resource</b> dialog on resource files now pre-selects the file name without the extension.
      <p>
      <img src="images/rename-resource.png" alt=""/>
      </p>
      When you copy/paste (<b>Ctrl+C</b> / <b>Ctrl+V</b>) a file onto itself to create a duplicate,
      the proposed new name is now just the old name followed by the digit 2 (or 3, etc., if that name is already taken).
      <p>
      <img src="images/resource-paste-conflict.png" alt=""/>
      </p>
    </td>
  </tr>

  <tr>
    <td colspan="2" class="section" id="PDE">PDE</td>
  </tr>
  <tr id="product-default-preferences">
    <td class="title">Products can set default preference values</td>
    <td class="content">
      In the <b>Product Editor</b> you can now use an Eclipse Preferences File ("*.epf") to
      generate the default preference settings in the product's customization file. 
      <p>
      <img src="images/product-preferences.png" alt=""/>
      </p>
      A wizard allows you to
      control which files to use for generating the preference defaults.
      <p>
      <img src="images/product-convert-preferences.png" alt=""/>
      </p>
    </td>
  </tr>
  <tr id="category-repository-references">
    <td class="title">Category editor can specify additional update repositories</td>
    <td class="content">
      In the <b>Category Manifest Editor</b> you can now specify additional update repositories that should be
      referenced by the generated update repository. These additional repositories will be searched for
      content whenever the generated repository receives a request for content.
      <p>
      <img src="images/category-repositories.png" alt=""/>
      </p>
    </td>
  </tr>
  <tr id="category-download-statistics">
    <td class="title">Category editor can define download statistics</td>
    <td class="content">
      In the <b>Category Manifest Editor</b> you can now specify a download statistics server that should
      be used to collect download statistics about your product. You can also specify which features and/or
      bundles should be used to collect download information. 
      <p>
      <img src="images/category-download-statistics.png" alt=""/>
      </p>
    </td>
  </tr>
  
  <tr>
    <td colspan="2" class="section" id="Platform">Platform</td>
  </tr>
    
    <tr id="new-ant-pngs">
        <td class="title">New Ant icons</td>
        <td class="content">
            The icons in Ant have been updated with some very nice new <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=426306">PNG versions</a>. 
            <p>
                <img src="images/ant-icons.png" alt="Some of the new Ant images"/>
            </p>
        </td>
    </tr>
    
    <tr id="step-filter-ext-point">
        <td class="title">New stepFilters extension point</td>
        <td class="content">
          The new <b>stepFilters</b> extension point allows clients to provide new step filters for existing debug models without having to extend those models. 
          <p>
          To use the new extension point, clients will require a dependency on <code>org.eclipse.debug.core</code>. Clients can then access any contributed step filters 
          using the new API: <code>org.eclipse.debug.core.DebugPlugin.getStepFilters(String)</code>.
          </p>
          <p>
          An example of the new extension point:
          </p>
<pre>
&lt;extension point=&quot;org.eclipse.debug.core.stepFilters&quot;&gt;
  &lt;stepFilter
   class=&quot;com.example.ExampleStepFilter&quot;
   modelIdentifier=&quot;com.example.debug.model&quot;&gt;
  &lt;/stepFilter&gt;
&lt;/extension&gt;
</pre>
        </td>
      </tr>
      
      <tr id="console-word-wrap">
        <td class="title">Word wrap in the Console</td>
        <td class="content">
            A new formatting option has been contributed to the <b>Console</b> view for all I/O consoles: <b>Word Wrap</b>.
            <p>
                The new option is available on the Console view toolbar and in the content popup menu within the Console view.
            </p>
            <img src="images/word-wrap.png" alt="The new word wrap toolbar and popup menu command"/>
        </td>
      </tr>
  
  <tr> 
    <td colspan="2">  </td>
  </tr>
</table>

</body>
</html>
