<?php
/**
 * Copyright (c) 2014, 2018 Eclipse Foundation and others.
 *
 * This program and the accompanying materials are made
 * available under the terms of the Eclipse Public License 2.0
 * which is available at https://www.eclipse.org/legal/epl-2.0/
 *
 * Contributors:
 *    Christopher Guindon (Eclipse Foundation) - initial API and implementation
 *
 * SPDX-License-Identifier: EPL-2.0
 */
?>

<div id="midcolumn">
  <h1><?php print $pageTitle; ?></h1>
  <p>This page contains links to applications built on the <a href="http://wiki.eclipse.org/index.php/Rich_Client_Platform" target="_top">Eclipse
    Rich Client Platform (RCP)</a>. The listings here are intended to get you started
    in finding out more about products and projects that use the Eclipse RCP. You can also view a <a href="./example_rcp_applications_v2.pdf">pdf presentation</a> of  RCP based applications.
  </p>
  <p>We have also prepared some case studies of organizations that are using Eclipse RCP. Hopefully it will provide you a better understanding of the benefits from using Eclipse RCP for your application platform. </p>
  <p>We'd like these pages to be useful to you - so please <a href="mailto:news@eclipse.org">email</a>
    us your pointers and comments!
  </p>
  <div class="homeitem3col">
    <h3>Open Source RCP Applications</h3>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200"><a href="images/apacheldap.png" target="_blank"><img src="images/apacheldapThumb.png"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a></td>
          <td valign="top"> <b>Apache Directory Studio</b><br>
            <a href="http://directory.apache.org/studio/" target="_blank">Apache Directory Studio Homepage<br></a>
            Apache Directory Studio is a complete directory tooling platform intended to be used with any LDAP server however it is particularly designed for use with the Apache Directory Server.
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200"><a href="images/azureus.png" target="_blank"><img src="images/azureusthumb.png"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a></td>
          <td valign="top"> <b>Azureus</b><br>
            <a href="http://azureus.sourceforge.net/" target="_blank">Azureus Homepage<br></a>
            Azureus is a BitTorrent client based on the Eclipse SWT. Core features include multiple simultaneous torrent downloads, detailed speed limits and statistics, faster download startups with PeerExchange, the use of magnet-URIs and integration with routers and firewalls. The user interface is highly customizable and available in 40 languages. Three different user interface levels suit everybody, from beginner to expert. Azureus features its own integrated BitTorrent tracker for publishing local content and can use proxy servers and anonymous TOR/I2P networks. It can also be extended with plug-ins, e.g. a web interface for remote access.
            Azureus has more than a million active users and is one of the most popular BitTorrent clients. It also won the 2006 "Best Overall Winner" Sourceforge.net Community Choice Award.
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200"><a href="images/bioclipse.png" target="_blank"><img src="images/bioclipseThumb.png"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a></td>
          <td valign="top"> <b>Bioclipse</b><br>
            <a href="http://www.bioclipse.net/index.php" target="_blank">Bioclipse Homepage<br></a>
            The Bioclipse project is aimed at creating a Java-based, open source, visual platform for chemo- and bioinformatics based on the Eclipse RCP.  The current plug-ins include 3D-visulization of molecules and proteins, 2D-editing of small molecules, NMR-Spectra visualization and analysis, as well as basic Sequence editing. Work is also being done to develop plug-ins for phylogenetic analysis, multiple alignments, molecular databases, a 3D-model builder, and QSAR-analysis.
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200"><a href="images/brainBox.png" target="_blank"><img src="images/brainBoxThumb.png"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a></td>
          <td valign="top"> <b>BrainBox</b> - Mateus Pimenta<br>
            <a href="http://brainbox.sourceforge.net/" target="_blank">BrainBox Homepage<br></a>
            BrainBox is a simulation toolbox, similar to MatLab Simulink. It simulates physics and mathematical models based on a block diagram description. BrainBox is Web Services compatible, providing asynchronous simulations by using a J2EE based server.  Besides, BrainBox provides a complete user interface to help create the block diagrams and interact with the simulation results. It also provides a build-in JavaScript language and a lot of extensions points for developers to create their own customized toolboxes
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200"><a href="images/eclipseTrader.jpg" target="_blank"><img src="images/eclipseTraderThumb.jpg"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a></td>
          <td valign="top"> <b>Eclipse Trader</b> - Marco Maccaferri<br>
            <a href="http://eclipsetrader.sourceforge.net" target="_blank">Eclipse Trader Homepage<br></a>
            Eclipse Trader is a set of plug-ins for the Eclipse RCP dedicated to the building of an online stock trading system. It features shares pricing watch, intraday and history charts with technical analysis indicators, level II/market depth view, news watching, and integrated trading.
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200"><a href="images/ezingbuilder.jpg" target="_blank"><img src="images/ezingbuilderthumb.jpg"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a></td>
          <td valign="top"> <b>eZingBuilder</b><br>
            <a href="http://ezingbuilder.sourceforge.net/cms/" target="_blank">eZingBuilder Homepage<br></a>
            eZingBuilder is a eclipse plug-in for tapestry. It have a visual (WYSIWYG) HTML editor and wizards for tapestry. It can now create a Dynamic Tapestry Web Project and edit the html template and finally deploy it to a server(ex tomcat).The plan is to make it an application builder like PowerBuilder and Visual Web Developer for Tapestry.
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200"><a href="images/escapek.png" target="_blank"><img src="images/escapekThumb.png"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a></td>
          <td valign="top"> <b>Escape-K</b><br>
            <a href="http://www.escapek.org/" target="_blank">Escape-K Homepage<br></a>
            Escape-K is an open-source IT management platform. It provides a complete set of tools for IT service management. Its modular architecture, based on Eclipse RCP and EJB3 components, makes it suitable for any sized organization. This provides IT service providers with a highly scalable system that supports small companies as well as global IT services who have large user base requirements.<br/>
            Main planned features are Component Management DataBase, helpdesk management, system monitoring, etc.
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200">	<a href="images/gumTree.jpg" target="_blank"><img src="images/gumTreeThumb.jpg"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a></td>
          <td valign="top"> <b>GumTree</b> - Australian Nuclear Science and Technology Organisation (ANSTO) Tony Lam, Andy Gotz, Ferdi Franceschini, Paul Hathaway, Nick Hauser <br>
            <a href="http://gumtree.sourceforge.net/wiki" target="_blank">Gumtree Homepage</a><br>
            GumTree is an open source multi-platform scientific workbench for performing scientific experiment under a server-client environment. It provides easy-to-use graphical user interface for instrument data acquisition, online or offline data visualisation and analysis. The aim of GumTree is to provide a highly Integrated Scientific Experiment Environment (ISEE), allowing interaction between different components within the workbench. GumTree is being adapted to several instrument control server systems including TANGO, EPICS and SICS, with simple-to-extend model for software developers. Current developments include acquisition, control and analysis on neutron and synchrotron beamlines. In the future it will be extended telescope control and other scientific instruments with distributed hardware.
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200"><a href="images/J3DWorkbench.JPG" target="_blank"><img src="images/J3DWorkbenchThumb.png"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a> </td>
          <td valign="top"> <b>J3DWorkbench</b><br>
            <a href="http://sourceforge.net/projects/j3dworkbench/" target="_blank">J3DWorkbench Homepage</a><br>
            An extensible, real-time, WYSIWYG, 3D visualization, simulation, and game-design authoring tool. Integrates Java3D and the RCP framework from Eclipse using SWT_AWT. Drag-&-Drop editing of a complex Java3D scene graph. Rapid prototyping of 3D scenes.
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200"><a href="images/jcommander.jpg" target="_blank"><img src="images/jCommanderThumb.jpg"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a> </td>
          <td valign="top"> <b>jCommander</b><br>
            <a href="http://jcommander.sourceforge.net/" target="_blank">jCommander Homepage</a><br>
            JCommander is a next generation file manager with a powerful tab based user interface. Being multi-platform and distributed under an open-source license it is freely usable on virtually any platform and operating system. It is still under heavy development and actively seeking contributors.
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200"><a href="images/JCrypTool.png" target="_blank"><img src="images/JCrypToolThumb.png"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a> </td>
          <td valign="top"> <b>JCrypTool</b><br>
            <a href="http://jcryptool.sourceforge.net" target="_blank">JCrypTool Homepage</a><br>
            JCrypTool is the upcoming cryptography e-learning platform based on the Eclipse Rich Client Platform. The platform independent e-learning application supports users in experimenting with various cryptographic mechanisms like classic, symmetric and asymmetric encryption, digital signatures, hash values and XML security. Besides learning and experimenting with cryptography and cryptanalysis, JCrypTool supports users in writing their own cryptography plug-ins and using them in JCrypTool. The JCrypTool team therefore invites developers to join the team and extend JCrypTool with their cryptography based plug-ins.
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200"><a href="images/jfire.png" target="_blank"><img src="images/jfireThumb.png"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a> </td>
          <td valign="top"> <b>jFire</b><br>
            <a href="http://jfire.org" target="_blank">jFire Homepage</a><br>
            JFire is a flexible Open Source ERP framework based J2EE, JDO and the Eclipse RCP. It manages all common tasks an ERP system aims, like the distribution of products, customer relationship management and accounting. The framework is designed to be highly customizable and provides the common base for developers in need of an ERP system specialized for their business. Outstanding features of the JFire RCP client are a classsharing plugin allowing remote classloading from the JFire server, integration with many Eclipse projects like GEF and BIRT or a Workbench-wide extendable exception handler. GUI and clientside objects for most basic features are already included in the core system, this comprises organisation and user management, basic product definition, trading and many more. They can can be reused or customized via extension-points in order to build new applications tailored to many kinds of businesses.
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200"><a href="images/jLibrary.png" target="_blank"><img src="images/jLibraryThumb.png"> <br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a></td>
          <td valign="top"> <b>jLibrary</b> - Martin Perez Mari�an <br>
            <a href="http://jlibrary.sourceforge.net/" target="_blank">jLibrary Homepage</a><br>
            jLibrary is an Open Source CMS system developed with Eclipse Rich Client platform. It has a rich set of features: remote/local repositories, metadata, native editors support (acrobat, MS Word, OpenOffice, ...), HTML/XML editor with syntax highlighting, graphical relation browser, categories, favorites, web spider to download our preferred web pages, etc. Currently the web is in Spanish, but the program is internationalized to support English and Spanish. Windows and Linux platforms are supported.
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200"><a href="images/jTrackAndField.jpg" target="_blank"><img src="images/jTrackAndFieldThumb.jpg"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a> </td>
          <td valign="top"> <b>JTrackAndField</b> - Simon Martinelli <br>
            <a href="http://www.jtaf.ch/" target="_blank">JTrackAndField Homepage</a><br>
            JTrackAndField is an Open Source Eclipse Rich Client that manages track and field events. You can edit participants, categories, disciplines and clubs. Even the formulas for point calculation are configurable (following the IAAF and SLV standards). Formulas can be imported and exported. Every participant can have up to ten free configurable disciplines. The bulletins of the participants and the rank list can be configured and are generated as PDF. Other features such as disciplines rank lists are coming soon. JTrack and Field is currently translated in English and German.
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200"><a href="images/kalypso.png" target="_blank"><img src="images/kalypsoThumb.png"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a> </td>
          <td valign="top"> <b>Kalypso</b> - Bjoernsen Beratende<br>
            <a href="http://www.kalypso-simulation-platform.org" target="_blank">Kalypso Homepage</a><br>
            Kalypso-Simulation-Platform (Kalypso) is an open source application for geospatial modelling and simulation. It is primarily developed to be a user friendly tool for GIS-based modelling and simulation of hydrological and hydraulic numerical models. Thanks to a generic approach one can use the platform to handle models of arbitrary nature.
            <br/>Kalypso consists of a Rich Client application which lets the user visualize and edit GML data in a generic way (both GML 2 and 3 versions are supported) and is also a client for several OGC Webservices (WMS, WFS, SOS). On the other hand, Kalypso brings a set of artifacts for a service oriented architecture in order to support gml processing.
            <br/>Kalypso parses GML application schemas including depending ones such as the GML base schemas itself into a strong feature- and property-typed system by building on top of standard XML techniques such as SAX and Java API for XML-Binding.
            <br/>Customized versions of the kalypso-simulation-platform are deployed for several engineering tasks such as flood forecast systems or decision support
            <br/>(Kalypso-Enterprise).
            <br/>Kalypso is LGPL open source and among others it is based on the Eclipse Platform and degree.
            <br/>Please see <a href="http://www.kalypso-simulation-platform.org" target="_blank">http://www.kalypso-simulation-platform.org</a>
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200"><a href="images/komo.jpg" target="_blank"><img src="images/komoThumb.jpg"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a> </td>
          <td valign="top"> <b>Komo</b> - Michael Schmidt<br>
            <a href="http://pgfoundry.org/projects/komo-client/" target="_blank">Komo Homepage</a><br>
            Komo (Hawaiian for "enter") is a standalone RCP application that is intended to be the foundation for developing database client user interfaces, thus serving as a rapid application development tool.  It is customized for use with PostgreSQL but minor changes would allow it to be used with other client-server RDBMS systems.  Komo includes basic program functions, takes advantage of many RCP UI features (searchable help, splash screen, welcome screen, minimize to toolbar, wizards, and preference pages), implements database connectivity with JDBC, and has threaded basic database utilities (reindex, vacuum, backup, restore).  To develop customized client UIs, developers would import Komo into their Eclipse workspace, add application-specific features (viewers, editors, reports) and modify the existing branding elements.  Komo is freeware released under the BSD license and is available (Windows demo or source code only) at pgfoundry.org.  So, "enter" client UI development and "enter" your database with Komo!
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200"><a href="images/mytourbook.png" target="_blank"><img src="images/mytourbookThumb.png"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a> </td>
          <td valign="top"> <b>My Tourbook</b><br>
            <a href="http://mytourbook.sourceforge.net " target="_blank">My Tourbook Homepage</a><br>
            MyTourbook can visualize and analyze tours which are recorded by a GPS device, ergometer, bike- or exercise computer. Tours which are recorded with a GPS device can be displayed in a map. The statistical views summarizes the data and shows the performance by day/week/month/year for several years.
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200"><a href="images/officeIntegrationEditor.jpg" target="_blank"><img src="images/officeIntegrationEditorThumb.jpg"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a> </td>
          <td valign="top"> <b>NOA Office Integration Editor</b><br>
            <a href="http://ubion.ion.ag/plonesoftwarecenter/003officeintegrationeditor" target="_blank">NOA Office Integration Editor Homepage</a><br>
            With the NOA Office Integration Editor Plugin you can extend your Eclipse IDE or Rich Client Application with the functionality of the free Office Suite OpenOffice.org. This plug-in will provide an editor in order to modify all document types of OpenOffice.org in a real integrated environment. In addition you will get several wizards for the creation of new OpenOffice.org documents.
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200">	<a href="images/NomadPIM.png" target="_blank"><img src="images/NomadPIMThumb.png"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a> </td>
          <td valign="top"> <b>Nomad PIM</b> - Lars Grammel  <br>
            <a href="http://nomadpim.sourceforge.net/" target="_blank">Nomad PIM Homepage</a><br>
            Nomad PIM is an Eclipse rich client platform based personal information manager (PIM). Currently, there are modules for notes, diary, contacts and money management, in addition to a basic workarea where a text can be written.
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200">	<a href="images/paperDog.jpg" target="_blank"><img src="images/paperDogThumb.jpg"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a> </td>
          <td valign="top"> <b>PaperDog</b><br>
            <a href="http://sourceforge.net/projects/paperdog/" target="_blank">PaperDog Homepage</a><br>
            PaperDog is a J2EE-based client-server-system for versioning, managing and archiving of documents and other files. PaperDog provides a full-text search based on Apache Lucene for most common file-formats. It serves as a technical demonstration for implementing best-practice approaches to combine an RCP-application with a J2EE container (JBoss) backend.
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200"><a href="images/relations.jpg" target="_blank"><img src="images/relationsThumb.jpg"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a>  </td>
          <td valign="top"> <b>Relations</b> - Benno Luthiger<br>
            <a href="http://sourceforge.net/projects/relations-rcp/" target="_blank">Relations Homepage</a><br>
            Relations RCP is a personal wiki style application for knowledge creation and management. Its use is the visualization of terms and concepts and the relations governing these items. Relations is implemented as Eclipse RCP application.
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200"><a href="images/reload.jpg" target="_blank"><img src="images/reloadThumb.jpg"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a>  </td>
          <td valign="top"> <b>Reload Project</b> - Bolton University, UK <br>
            <a href="http://www.reload.ac.uk/" target="_blank">Reload Project Homepage</a><br>
            Reload Project is producing open source tools to edit and create IMS specifications.  These standards and specifications include Meta-data, Content Packaging, SCORM (as used by the US DoD) and Learning Design. The software tools are used extensively in the sphere of e-Learning throughout the world (over 1000 downloads a month) and have become the de facto reference tools. These tools are free and open source (source code available at SourceForge) and available now for download at: <a href="http://www.reload.ac.uk/ldeditor.html" target="_blank">http://www.reload.ac.uk/ldeditor.html</a>
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200"><a href="images/rssowl.jpg" target="_blank"><img src="images/rssowlThumb.jpg"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a>  </td>
          <td valign="top"> <b>RSSOwl</b> - Benjamin Pasero<br>
            <a href="http://www.rssowl.org/" target="_blank">RSSOwl Homepage</a><br>
            Applications that collect data from RSS-compliant sites are called RSS readers or "aggregators." RSSOwl is such an application. RSSOwl lets you gather, organize, update, and store information from any compliant source in a convenient, easy to use interface, save selected information in various formats for offline viewing and sharing, and much more. It's easy to configure, available in many many languages and the best of all: It's platform-independent.
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200">	<a href="images/schoolclipse.jpg" target="_blank"><img src="images/schoolclipseThumb.jpg"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a> </td>
          <td valign="top"> <b>Schoolclipse </b> - Stavros S. Kounis & Konstantinos Lappas  <br>
            <a href="https://schoolclipse.dev.java.net/" target="_blank">Schoolclipse Homepage</a><br>
            Schoolclipse is an Eclipse RCP application for private school management. It can handle students (as contacts), information related to students (enrolments, fees, payments, tasks, ...) and school information (courses, lesson classes, ...)
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200">	<a href="images/skyway.jpg" target="_blank"><img src="images/skywayThumb.jpg"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a> </td>
          <td valign="top"> <b>Skyway Builder Community Edition</b> - Skyway Software  <br>
            <a href="http://www.skywayperspectives.org " target="_blank">Skyway Builder Community Edition</a><br>
            Skyway Builder CE is an open source, Eclipse-based solution for developing and deploying JEE Rich Internet Applications (RIAs) and Web Services.  Using a model-centric approach to development and deployment, Skyway Builder CE generates standard Java code that conforms to industry best practices on the Spring Framework and Spring MVC in a web-server-only runtime environment and/or in a full JEE container.  The generated solutions are equally portable across open source and commercial infrastructure stacks.  Skyway Builder leverages a variety of Eclipse projects, including EMF, GMF, WST and JDT, and as a SpringSource Certified Solution Partner, SpringSource has certified the integration of Spring and SpringSource software with Skyway Builder.
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200"><a href="images/talend.jpg" target="_blank"><img src="images/talendThumb.jpg"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a> </td>
          <td valign="top"> <b>Talend Open Studio 1.0</b> - Talend Open Data Solutions<br>
            <a href="http://www.talend.com/" target="_blank">Talend Homepage</a><br>
            Talend Open Studio is the first ETL open source software provider for data integration tools (ETL: Extract, Transform, Load)<br/>
            It is an GRAPHICAL solution of Datamanagement. Talend's fundamental technology breaks with the market's leading proprietary solutions, associated with the open source model, significantly modifying the rules of the game in the data integration market. Finally, data integration solutions are available to companies of all sizes with Talend. Talend products are based on Eclipse technologies (RCP, EMF, GMF�) and Perl.<br/>
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200"><a href="images/uDig.png" target="_blank"><img src="images/uDigThumb.png"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a> </td>
          <td valign="top"> <b>uDig GIS</b> - Refractions Research <br>
            <a href="http://udig.refractions.net/" target="_blank">uDig GIS Homepage</a><br>
            uDig is a User-friendly Desktop Internet GIS. It provides a graphical interface to OGC standard internet mapping servers (WMS, WFS), local data files, and spatial databases. uDig has programming extension points for additional functionality and custom spatial application development.
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200">	<a href="images/wiredReach.png" target="_blank"><img src="images/wiredReachThumb.png"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a> </td>
          <td valign="top"> <b>WiredReach </b> - WiredReach  <br>
            <a href="http://www.wiredreach.com/" target="_blank">WiredReach Homepage</a><br>
            WiredReach is a universal content sharing platform built on a set of open standards and technologies (Eclipse, JXTA, RDF, RSS, and XMPP) that allows users to selectively share content with others in a completely decentralized and secure manner. The term "content" itself is very loosely defined in the platform, and it can include things like presence, blogs, bookmarks, documents, calendars, music, photos... virtually any type of social media.<br>
            Traditional content sharing and collaboration applications are usually built using proprietary protocols and/or as closed networks which limit their applicability and scope. Our vision, instead, is to enable an open collaboration network (the User-Centric Web) - one that blurs the boundaries between the desktop and the web and that can be extended by anyone. To that effect, we will also be releasing our core platform under an open source license.
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200">	<a href="images/zdt.jpg" target="_blank"><img src="images/zdtthumb.jpg"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a> </td>
          <td valign="top"> <b>Zhongwen Development Tool (ZDT)</b> - Chris Fong  <br>
            <a href="http://zdt.sourceforge.net" target="_blank">ZDT Homepage</a><br>
            The ZDT (Zhongwen Development Tool) is an open source, multi-platform application aimed at helping people learn Chinese.  It features a built-in Chinese-English dictionary (based on the CEDICT project), an annotation tool for obtaining popup translations of Chinese text, and an integrated flashcard system.  The dictionary is searchable by Chinese characters, pinyin, or English definitions.  Flashcards are organized into categories and can easily be created from any source of Chinese text.  A sound plug-in is available (in beta form), which allows hearing characters pronounced by a native Chinese speaker in any part of the application.
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200">	<a href="images/ziptie.jpg" target="_blank"><img src="images/ziptieThumb.jpg"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a> </td>
          <td valign="top"> <b>ZipTie</b> -  AlterPoint, Inc.<br>
            <a href="http://www.ziptie.org" target="_blank">ZipTie Homepage</a><br>
            Today, most network engineers use a combination of proprietary, vendor-supplied network management systems and a "bag o' tools" comprising scripts and home grown applications written and maintained internally, but there is no standardization. As networks become more complex and include more unique and specialized hardware to perform specific duties within the network infrastructure, being able to manage them becomes increasingly difficult. The proprietary network management systems�also known as element management systems�sadly only serve the purpose of that specific hardware vendor and not the greater network as a whole.
            <br/>The ZipTie project was created to provide a better alternative to proprietary, vendor-supplied element management systems.  ZipTie is an open source framework for network inventory management for multi-vendor infrastructures that offers a vendor-independent approach for maintaining a reliable and consistent inventory of network configurations.
          </td>
        </tr>
      </table>
    </div>
  </div>
</div>

<div id="rightcolumn">
  <div class="sideitem">
    <h6>Related Links</h6>
    <ul>
      <li><a href="rcpos.php">Open Source RCP Applications</a></li>
      <li><a href="rcpcp.php">Commercial RCP Applications</a></li>
      <li><a href="../articles/">Articles</a></li>
    </ul>
  </div>
</div>