<!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. 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="news.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 Project 4.19 - New and Noteworthy</title>
</head>

<body>
<h2>Plug-in Development Environment</h2>
<ul>
	<!--<li><a href="#dialogs-wizards-views">Dialogs, Wizards and Views</a></li>-->
	<li><a href="#editors">Editors</a></li>
	<li><a href="#APITools">API Tools</a></li>
	<!--<li><a href="#pde-compiler">PDE Compiler</a></li>-->
	<li><a href="#api">API Enhancements</a></li>
</ul>

<!-- ****************** START OF N&N TABLE****************** -->
<table class="news">
<colgroup>
  <col class="title" />
  <col />
</colgroup>
<tbody>
  <!-- ******************** Dialogs, Wizard and Views ********************** -->

  <!-- ******************** End ofDialogs, Wizard and Views ********************** -->
  
  <!-- ******************** Editors ********************** -->
  <tr>
    <td id="editors" class="section" colspan="2"><h2>Editors</h2></td>
  </tr>
  <tr id="pde-editor-enhancements"> <!--https://bugs.eclipse.org/bugs/show_bug.cgi?id=568865 -->
    <td class="title"><a href="#pde-editor-enhancements">Include/exclude bundles directly from the target definition view</a></td>
    <td class="content">
      It is now possible to include and exclude a bundle directly from the <b>Target Definition</b> view. You should check the <b>Show location content</b> button, select a bundle and then the <b>Remove</b> button turns into an <b>Exclude</b> action.
   	  <p>
       <img src="images/pde_excl_incl_01.png" alt="" />
      </p>
      Of course, it's possible to include excluded items later.
      <p>
       <img src="images/pde_excl_incl_02.png" alt="" />
      </p>
      The changes are now directly reflected in the <b>Content</b> tab as well.
      <p>
       <img src="images/pde_excl_incl_03.png" alt="" />
      </p>
      If multiple items are selected and are of different state, the button turns into a <b>Toggle</b> one.
       <p>
       <img src="images/pde_excl_incl_04.png" alt="" />
      </p>
      This feature demonstrates the power of the recent <a href="#pde-api-enhancements">API enhancements</a>.
    </td>
  </tr>
  <!-- ******************** End of Editors ********************** -->

  <!-- ******************** APITools ********************** -->
  <tr>
    <td id="APITools" class="section" colspan="2"><h2>API Tools</h2></td>
   </tr>
   <tr id="pde-compiler-info-sev"> <!--https://bugs.eclipse.org/bugs/show_bug.cgi?id=569528 -->
    <td class="title"><a href="#pde-warn-missing-bundle-from-baseline">Warning for missing bundle in API baseline</a></td>
    <td class="content">
   	  In <b>Preferences &gt; Plug-in Development &gt; API Baselines</b>, there is a new option to warn about missing bundle from the API baseline.
      <p>
       <img src="images/pde-new-option.png" alt="" />
      </p>
       The default severity for this option is warning. For the plug-ins that are not present in the currently active API baseline, API tools reports
       the warning as below:
      <p>
       <img src="images/pde-warn-missing-bundle-from-baseline.png" alt="" />
      </p>
    </td>
      </tr>
   <tr id="pde-api-exporttext"> <!--https://bugs.eclipse.org/bugs/show_bug.cgi?id=570433 -->
    <td class="title"><a href="#pde-api-exporttext">Improved text for exported packages in the editor</a></td>
    <td class="content">
   	  <p>The text for <b>Exported Packages</b> was improved and the reference to the strict mode was removed, as Equinox does not support this mode since a while. 
   	  </p>
   	   <p>
       <img src="images/pde-export-text.png" alt="" />
      </p>
    </td>
  </tr>
  <!-- ******************** End of APITools ********************** -->
  
   <!-- ******************** PDE Compiler ********************** -->

   <!-- ******************** End of PDE Compiler ********************** --> 
  
  <!-- ******************** API Enhancements ********************** -->
  <tr>
    <td id="api" class="section" colspan="2"><h2>API Enhancements</h2></td>
  </tr>
  <tr id="pde-api-enhancements"> <!--https://bugs.eclipse.org/bugs/show_bug.cgi?id=568865 -->
    <td class="title"><a href="#pde-api-enhancements">New advanced editing capabilities for custom target platforms</a></td>
    <td class="content">
    <p>The API for adding custom Target-Platform-Locations was refactored and the existing implementation was cleaned up to support more advanced editing capabilities.
     This was done by merging the functionality of the previous interfaces <code>ITargetLocationEditor</code> and <code>ITargetLocationUpdater</code>. They have been incorporated into the new interface <code>ITargetLocationHandler</code>,
     and now you only need to implement this interface and override the default implemented methods as desired.
    </p>
    <p>
    All methods for editing a target location now use a TreePath, so it's possible to also edit child items. Additionally, the new API offers the following new capabilities:
    </p>
    <ul>
     <li><code>canRemove/remove</code> - Ability to add custom remove operations for sub-items</li>
     <li><code>canEnable/canDisable/toggle</code> - Ability to provide an alternative to remove operation where items are only disabled instead of completely removed from the target</li>
     <li><code>reload</code> - Ability to get notification about user request to reload the target</li>
      </ul>
    </td>
  </tr>
  <!-- ******************** End of API Enhancements ********************** -->
</tbody>
</table>
<!-- ****************** END OF N&N TABLE ****************** -->

<script type="text/javascript" src="scripts.js"></script>
  <p style="text-align:center">
    <a href="platform_isv.php">Previous</a> <a style="margin:1em" href=".">Up</a> <span style="color:#808080">Next</span>
  </p>
</body>
</html>
