<?xml version="1.0" encoding="UTF-8"?>
<components>
<component id="chart">
  <name>
    Chart
  </name>
  <maintainer>
    Ralf Sternberg
  </maintainer>
  <description>
    <p>
      Chart widgets for RAP, based on <a href="http://d3js.org/">d3.js</a> and
      <a href="http://nvd3.org/">nvd3.js</a>
    </p>
  </description>
  <builds>
    <build>nightly</build>
  </builds>
</component>
<component id="fileupload">
  <name>
    FileUpload
  </name>
  <maintainer>
    Ivan Furnadjiev
  </maintainer>
  <description>
    <p>
      RAP File Upload Support
    </p>
    <p>
      <em>This component has been graduated and moved to the RAP core as of 3.0.</em>
    </p>
  </description>
  <builds>
    <build>2.0</build>
    <build>2.1</build>
    <build>2.2</build>
    <build>2.3</build>
  </builds>
</component>
<component id="nebula-grid">
  <name>
    Nebula Grid widget for RAP
  </name>
  <maintainer>
    Ivan Furnadjiev
  </maintainer>
  <description>
    <p>
      RAP port of the <a href="http://www.eclipse.org/nebula/widgets/grid/grid.php">Grid widget</a>
      from the <a href="http://www.eclipse.org/nebula">Nebula project</a>.
    </p>
    <p>
      The Grid widget is a spreadsheet/table component that offers features not currently
      available in the base SWT Tree/Table like column grouping, checkboxes on multiple
      columns, variable item height and more.
    </p>
    <p>
      <em>This component has been graduated and moved to the RAP core as of 3.0.</em>
    </p>
  </description>
  <builds>
    <build>2.0</build>
    <build>2.1</build>
    <build>2.2</build>
    <build>2.3</build>
  </builds>
</component>
<component id="dropdown">
  <name>
    AutoSuggest (DropDown)
  </name>
  <maintainer>
    Tim Buschtöns
  </maintainer>
  <description>
    <p>
      AutoSuggest is a widget that attaches type-ahead suggestions to a Text field.
      This component is built upon the DropDown widget that displays a list of selectable items
      below a text field.
    </p>
    <p>
      <em>As of RAP 2.3, the DropDown widget has become part of RWT, while the AutoSuggest remains
      in this repository.</em>
    </p>
    <p>
      <a href="http://wiki.eclipse.org/RAP/Incubator/DropDown">DropDown wiki page</a>
    </p>
  </description>
  <builds>
    <build>2.1</build>
    <build>2.2</build>
    <build>2.3</build>
    <build>3.0</build>
    <build>nightly</build>
  </builds>
</component>
<component id="richtext">
  <name>
    RichText Widget
  </name>
  <maintainer>
    Tim Buschtöns
  </maintainer>
  <description>
    <p>
      This is a custom widget for RAP that wraps the CKEditor, a web-based WYSIWYG/Rich-Text editor.
      This version is compatible with RAP 2.1 and above, and is based on CKEditor version 3.6.6.1.
    </p>
    <p>
      For more information, view the readme.txt in the <code>org.eclipse.rap.addons.ckeditor</code> bundle.
    </p>
    <p>
      <em>This component has been graduated and moved to the RAP core as of 3.1.</em>
    </p>
  </description>
  <builds>
    <build>2.2</build>
    <build>2.3</build>
    <build>3.0</build>
  </builds>
</component>
<component id="e4">
  <name>
    E4 on RAP
  </name>
  <maintainer>
    Tom Schindl
  </maintainer>
  <description>
    <p>
      This component provides a target platform to run Eclipse 4 applications on RAP.
      The E4 application model and the DI-Container are fully supported,
      including the event bus (IEventBroker), ExtendedObjectSuppliers (@UIEventTopic, @Preference)
      and runtime language change support.
      For details, see <a href="http://eclipsesource.com/blogs/2014/04/10/getting-started-with-eclipse4-applications-on-rap/">this blog post</a>.
    </p>
  </description>
  <builds>
    <build>2.3</build>
    <build>3.0</build>
    <build>nightly</build>
  </builds>
</component>
<component id="clientscripting">
  <name>
    ClientScripting
  </name>
  <maintainer>
    Tim Buschtöns
  </maintainer>
  <description>
    <p>
      ClientScripting allows developers to handle certain events that occur in RAP applications
      directly on the client without creating any http-requests. Client scripts are written in
      JavaScript using an SWT-like API.
    </p>
    <p>
      <a href="http://wiki.eclipse.org/RAP/ClientScripting">ClientScripting wiki page</a>
    </p>
    <p>
      <em>This component has been graduated and moved to the RAP core as of 2.2.</em>
    </p>
  </description>
  <builds>
    <build>2.0</build>
    <build>2.1</build>
  </builds>
</component>
<component id="osgi-packaging">
  <name>
    OSGi-Packaging
  </name>
  <maintainer>
    Markus Knauer
  </maintainer>
  <description>
    <p>
      OSGi-Packaging re-packages RAP bundles plus important bundles from the Eclipse
      ecosystem to be used in OSGi containers other than Equinox. As a start it provides
      the necessary Karaf features and Karaf archive in order to run RAP applications
      in Apache Karaf.
    </p>
  </description>
</component>
<component id="cnf">
  <name>
    Common Navigator Framework (CNF)
  </name>
  <maintainer>
    Bartosz Michalik
  </maintainer>
  <description>
    <p>
      Port of the <a href="http://wiki.eclipse.org/CNF">Common Navigator Framework</a>
      for RAP.
    </p>
  </description>
</component>
<component id="gef">
  <name>
    Graphical Editing Framework (GEF)
  </name>
  <maintainer>
    Austin Riddle
  </maintainer>
  <description>
    <p>
      Initial port of <a href="http://eclipse.org/gef/">Draw2D, GEF and Zest</a> for RAP, still under development.
    </p>
  </description>
</component>
<component id="pde">
  <name>
    PDE Runtime
  </name>
  <maintainer>
    Arnaud Mergey
  </maintainer>
  <description>
    <p>
      Ports of the plugin-spy and error log views from
      <a href="http://www.eclipse.org/pde/pde-ui/">PDE UI</a>.
    </p>
    <p>
      <a href="http://wiki.eclipse.org/RAP/Incubator/PDERuntime">wiki page</a>
    </p>
  </description>
</component>
<component id="tabbed-properties">
  <name>
    Tabbed Properties View
  </name>
  <maintainer>
    Gunnar Wagenknecht
  </maintainer>
  <description>
    <p>
      RAP port of the
      <a href="http://www.eclipse.org/articles/Article-Tabbed-Properties/tabbed_properties_view.html">Tabbed Properties View</a>.
    </p>
  </description>
</component>
<component id="visualization">
  <name>
    Google Visualization
  </name>
  <maintainer>
    Austin Riddle
  </maintainer>
  <description>
    <p>
      This component provides a simple integration of all of the
      Google Visualization widgets as RAP custom widgets:
      Motion Chart, Annotated Timeline, Area Chart, Bar Chart,
      Column Chart, Gauge, Geomap, Intensity Map, Line Chart,
      Pie Chart, Scatter Chart, and Table.
    </p>
  </description>
</component>
</components>
