<?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">
  <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>Commercial RCP Applications</h3>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200"><a href="images/abzealcore.png" target="_blank">	<img src="images/abzealcoreThumb.png"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a> </td>
          <td valign="top"><b>AB ZealCore System Debugger</b><br>
            <a href="http://www.zealcore.com/products.html" target="_blank">AB ZealCore System Debugger Homepage</a> <br>
            The ZealCore System Debugger collects and refines information contained in logs. This is achieved by advanced post processing of log information, by fusion of different logs, by mapping recorded information to high level models, and, not the least, by bringing order to the log exploration and debugging process. The System Debugger can be used during development, integration, test, deployment, and operation depending on when the logs have been gathered.<br/><br/>
            The ZealCore System Debugger lets you create projects and logsets for tracking down bugs in software. A logset can cover information from several logs, and a project can manage several logsets, either from one and the same system collected at different occasions, from different software versions or e.g., from different nodes in a distributed system. Moreover, the ZealCore System Debugger allows you to make advanced post processing of data including filtering and advanced searches that can pinpoint a specific behavior. The search results are synchronized with other views and exploring the results is just a click away. Assertions allow for automatic fault identification, risks and negative trends. The latter is especially powerful when the post processing is performed on e.g., logs from different versions of software for a system � making it possible to detect subtle behavioral differences between the software versions which later could lead to system failures or poor performance.
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200"><a href="images/actuatebirt.jpg" target="_blank">	<img src="images/actuatebirtthumb.jpg"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a> </td>
          <td valign="top"><b>Actuate BIRT Report Designer</b><br>
            <a href="http://www.actuate.com/birt" target="_blank">Actuate BIRT Report Designer Homepage</a> <br>
            The Actuate BIRT Report Designer is a powerful tool for designing and deploying reports against data sources ranging from typical business SQL databases, to XML data sources, to in-memory Java objects. The Actuate BIRT Report Designer provides a complete visual report design environment and is based on the Eclipse Open Source BIRT and RCP projects. Utilizing the benefits of RCP, this tool focuses on the needs of the typical report developer who wants an easy to use tool for creating reports.<br/>
            The Actuate BIRT Report Designer is part of an integrated family of reporting tools that range from the Actuate BusinessReport Studio, a web based report design tool for business users, to the Actuate BIRT Report Designer Pro, aimed at professional developers. Actuate products also include a variety of deployment choices for reports, from an embedded Java engine, to the enterprise class iServer, with report scheduling, distribution and a full high-availability, clustered server.
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200"><a href="images/deviceAuthority.jpg" target="_blank">	<img src="images/deviceAuthorityThumb.jpg"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a> </td>
          <td valign="top"><b>AlterPoint DeviceAuthority</b><br>
            <a href="http://www.alterpoint.com" target="_blank">AlterPoint DeviceAuthority Homepage</a> <br>
            AlterPoint helps you optimize your network investment
            The world's most respected enterprises use AlterPoint's Advanced Network Management Solutions to maintain existing infrastructure, ensure continuous compliance, and roll out new technology.
            <br/><br/>Because network configurations are at the root of the performance, security and complexity challenges that next generation networks create, AlterPoint built DeviceAuthority, the world's first multi-platform, network change and configuration software solution designed to optimize network investment.
            <br/><br/>DeviceAuthority normalizes configurations across different types of devices from multiple manufacturers, making it much simpler to enforce policies, perform upgrades, make changes, manage security, etc. By absorbing the underlying details of devices, DeviceAuthority provides a unified management interface to reduce the number of tools needed to manage the network. DeviceAuthority can manage thousands of changes per hour and accommodate the largest, most diverse, and sophisticated networks.
            <br/><br/>After normalizing the configuration data, DeviceAuthority collects and organizes this data in the Network CMDB. This unique unified data model approach enables policies and knowledge to be mapped across vendor types to single-vendor manageability, with multi-vendor flexibility�that can also be leveraged by other tools.
            <br/><br/>AlterPoint�s Integrated Network Environment (INE) is based on the Eclipse platform with over 100,000 developers worldwide. The INE combines powerful network engineering tools with the flexibility to create a single customized �workbench� that can easily accommodate and integrate all other tools.
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200"><a href="images/alaranismapbuilder.jpg" target="_blank">	<img src="images/alaranismapbuilderthumb.jpg"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a> </td>
          <td valign="top"><b>arlanis Universal Data Converter</b><br>
            <a href="http://www.arlanis.com" target="_blank">arlanis Universal Data Converter Homepage</a> <br>
            The arlanis Universal Data Converter is an all-purpose data conversion tool to convert almost any data file - whatever its format may be - into another one. It is suitable in virtually any IT project and can easily be integrated in foreign architectures - due to its universal and unique design. With the arlanis Universal Data Converter you can convert data from one system into another, you can manage B2B data exchange and you can create import- or export-interfaces for your own applications. Data conversions can be done on a regular basis or as one-time data migrations.
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200"></td>
          <td valign="top"><b>Applied Biosystems - Sequence Scanner Software</b><br>
            <a href="http://www.appliedbiosystems.com/sequencescanner" target="_blank">Sequence Scanner Software Homepage</a> <br>
            Sequence Scanner Software is a freely available program for viewing, editing,	printing, reporting, and exporting the DNA sequence data generated by Applied	Biosystems's DNA sequencing instruments.  The application is a Eclipse v3.1 RCP application which leverages many features of Eclipse including the preferences API,	the forms API, drag-and-drop with the OS, and the underlying workbench framework.	Prominent features include the ability to review multiple electropherogram traces in a thumbnail format, simultaneous viewing of raw and analyzed trace data, seven different reports for reviewing data quality, high-quality printing with print preview, and the ability to export trace data in several graphical formats, including jpg and pdf.  Follow the link for a slide show of screen shots.
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200"><a href="images/atante.jpg" target="_blank">	<img src="images/atanteThumb.jpg"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a> </td>
          <td valign="top"><b>Atante eye.CRM</b><br>
            <a href="http://www.atante.pl" target="_blank">eye.CRM Homepage</a> <br>
            eye.CRM is a CRM (Customer Relation Management) application software, which enables the users to manage their relationships with customers, including finding, winning and activating new customers, as well as subsequent actions connected with the trade procedure.
            <br/><br/>
            By using a central data source, the software provides an effective exchange of information between employees dealing with a particular customer and enables a quick response to all the events regarding this customer.  Shared documents' system give all the entitled the access to the current customer documentary.
            <br/><br/>
            Advanced privileges system gives administrators total control over users' access to modules of the application, as well as to the particular data.
            <br/><br/>
            The software was prepared to handle any size of groups of users and to enable managers to monitor the subordinates� work. An inappreciable support for supervisors is a reporting system BIRT, which was made the most of.
            <br/><br/>
            The extended calendar views (created in GEF), which are used by the software, help the users in their everyday work and provide the control over their scheduled events.
            <br/><br/>
            MySQL database management system, applied in the software, has been fully used, with its advanced facilities, such as: a database transactions, table partitioning, and many others, which gives the program invaluable stability.
            <br/><br/>
            The application software was designed to maximize the benefits coming from RCP, such as the possibility to split the functionalities between a number of plug-ins. Thanks to such a software architecture, changes done in the final product are neither time- nor source-consuming.
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200"><a href="images/sqlEdge.jpg" target="_blank">	<img src="images/sqlEdgeThumb.jpg"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a> </td>
          <td valign="top"><b>Bay Breeze Software - SQL Edge </b><br>
            <a href="http://www.baybreezesoft.com" target="_blank">SQL Edge Homepage</a> <br>
            SQL Edge allows users to execute SQL queries, browse schema information and visualize data relationships. With SQL Edge, users can use only one query to retrieve data in a master table, and then browse data in all related detail tables. Users can also edit table data in the data grids.
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200"><a href="images/bazaa.png" target="_blank">	<img src="images/bazaaThumb.png"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a> </td>
          <td valign="top">
            <b>BaZaa </b><br>
            <a href="http://bazaanetworks.com" target="_blank">Bazaa Homepage</a> <br>
            BaZaa is a real-time peer-to-peer search, listing and notification system that automatically pushes relevant matches to your desktop based on your personal preferences. With BaZaa you list or search items quickly and buy and sell with no commissions and assured privacy
            <ul>
              <li>No wasted time</li>
              <li>Assured privacy</li>
              <li>No Commissions</li>
              <li>No irrelevant information</li>
              <li>No more endless searching of multiple websites</li>
              <li>Information pushed to your desktop in real-time based on your preferences</li>
            </ul>
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200">	<a href="images/bigBlogZoo.png" target="_blank"><img src="images/bigBlogZooThumb.png"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a> </td>
          <td valign="top"><b>BigBlogZoo </b><br>
            <a href="http://www.bigblogzoo.com" target="_blank">BigBlogZoo Homepage</a> <br>
            The BigBlogZoo is a Semantic Web Browser. Nearly 80,000 newsfeeds and blogs have been categorized and integrated into a collaborative framework we call the Zoo. We present to the user the channel concept, much like a television, except for a browser. Users can submit, browse, spider and reaggregate these channels.  Future enhancements for collaboration will include the ability to reorganize and rate channels.
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200">	<a href="images/bsiORS.png" target="_blank"><img src="images/bsiORSThumb.png"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a> </td>
          <td valign="top"><b>BSI CRM on Eclipse </b><br>
            <a href="http://www.bsiag.com" target="_blank">BSI CRM Homepage</a> <br>
            BSI CRM with ORS - Your CRM Solution on Eclipse. This customer relationship management (CRM) solution is a fully configured RCP application to support the whole customer contact process from first contact to the successful project implementation and also retention management. This RCP solution is currently in daily use at PostFinance, one of the major financial solution provider of Switzerland. Consultants manage their contacts, tasks, projects, marketing campaigns with ORS. BSI Business Systems Integration AG (www.bsiag.com) has integrated the standard ORS into the Eclipse framework thus providing all benefits of RCP.
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200"><a href="images/cctvnet.jpg" target="_blank"><img src="images/cctvnetThumb.jpg"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a> </td>
          <td valign="top"><b>CCTVnet</b><br>
            <a href="http://www.cctvnet.biz" target="_blank">CCTVnet Homepage</a><br>
            CCTVnet is a comprehensive video monitoring/recording software for network-based CCTV plants with emphasis on observation and intervention. The well-known similar video and audio crossbars are replaced by modern network technology by a virtual matrix. It is now possible to make all safety-relevant information accessible everywhere independently of their geographical origin, in order to be able to seize the appropriate measures fast and reliably.
            <br/>CCTVnet is suitable for any size of CCTV system, from a single site/building to a geographically distributed system. Certain optional features like work-delegation, VoIP, redundancy, and scalability make it a good choice even for large systems with many different sites.
            <br/>As opposed to our competitors, CCTVnet supports different hardware manufacturers which helps you to protect your hardware investments and keeps you open for future inventions. Due to this independence, it is also possible to migrate existing analogue systems without replacing the hardware.
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200"><a href="images/spidermonkey.jpg" target="_blank"><img src="images/spidermonkeyThumb.jpg"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a> </td>
          <td valign="top"><b>CoreFiling SpiderMonkey</b><br>
            <a href="http://www.corefiling.com/products/spidermonkey.html" target="_blank">SpiderMonkey Homepage</a><br>
            SpiderMonkey is a powerful multi-user XBRL taxonomy editor built on the Eclipse platform.  XBRL, the eXtensible Business Reporting Language, offers an open system standard for the reporting of financial and statistical information.  SpiderMonkey is a flexible modelling tool that allows business users to create, refine and extend XBRL taxonomies, the �dictionaries� which specify the precise definitions of terms used in financial documents.  The XBRL standard is considered by many as a successful market-based implementation of semantic web concepts.  XBRL taxonomies can be easily understood as ontologies by those working in that sphere.  As an RCP application, SpiderMonkey can provide an effective cross-platform user experience and customers can readily take advantage of plug-ins to extend the application.  There is a fully functional, free version of the tool available for download.  A supported single user version, as well as a full multi-user edition, is also available.
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200">	<a href="images/codesigner.jpg" target="_blank"><img src="images/codesignerThumb.jpg"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a> </td>
          <td valign="top"><b>Crypto Intelligence - CodeSigner </b><br>
            <a href="http://www.cryptointel.com/codesigner.html" target="_blank">CodeSigner Homepage</a> <br>
            CodeSigner is a unique and unmatched approach to automating the software signing process to scale on an enterprise level, offering software integrity preservation and software authorization policies to exist. Software signing protects companies and their clients from fraudulent code that could introduce computer viruses, worms, and other malicious code designed to disrupt and steal from organizations and clients alike. Code signing works by validating the software�s content and it�s author.
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200">	<a href="images/scormeditor.gif" target="_blank"><img src="images/scormeditorthumb.gif"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a> </td>
          <td valign="top"><b>DeltaLearn Advanced Editor - DeltaLearn </b><br>
            <a href="http://www.deltalearn.com" target="_blank">DeltaLearn Homepage</a> <br>
            DeltaLearn Advanced Editor is an e-learning content generation tool based on the SCORM standard. Deltalearn SCORM editor is a comprehensive integrated SCORM manifest editing environment with a powerful graphical editor for generating SCORM metadata that improves productivity and dramatically decreases authoring time by replacing the traditional error-prone, time-consuming, manual XML manifest editing. DeltaLearn Advanced Editor comes out of the box with a comprehensive set of features and capabilities; a fast, powerful, standards-based, user-friendly SCORM manifest editor that enables you to easily create complex SCORM content that can operate with any compliant LMS.
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200">	<a href="images/deltawalker.png" target="_blank"><img src="images/deltawalkerThumb.png"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a> </td>
          <td valign="top">
            <b>DeltaWalker</b><br>
            <A href="http://www.deltopia.com" target="_blank">DeltaWalker Homepage</A><br>
            DeltaWaker is a file and folder comparison application by Deltopia Inc. <br/><br/>
            DeltaWalker lets you compare, edit, and merge files and synchronize folders. It runs on Windows, Mac OS X and Linux.<br/><br/>
            DeltaWalker is a compelling choice for software, web, and legal professionals, as well as scientists, engineers and anyone who works with text, documents, and folders that change over time.<br/>
            Highlights:<br/><br/>
            <ul>
            <li> Finely tuned and optimized file and folder comparison engine</li>
            <li> Unicode support with character encoding auto-detection, when character encoding information is available</li>
            <li> Structure comparison and visualization of XML files</li>
            <li> Ergonomic file and folder comparison integration</li>
            <li> Extensive in-place text editing capabilities, where changes are instantly processed by the differencing engine.</li>
            <li> Two and three-way file and folder comparison, incl. vertical, horizontal, and ancestor on top layouts</li>
            <li> Manual and automatic (three-way comparison only) merging of differences </li>
            <li> Unlimited, intelligent undo/redo</li>
            <li> Color highlighted differences and changes (QuickDiffs)</li>
            <li> Birds-eye difference view and navigation</li>
            <li> Print/print-preview</li>
            <li> Patch creation capabilities</li>
            <li> Command-line interface</li>
            <li> Notification mechanism for local disk changes of files and folders loaded in DW</li>
            <li> Automatic software updates</li>
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200">	<a href="images/eclarusbpm.jpg" target="_blank"><img src="images/eclarusbpmThumb.jpg"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a> </td>
          <td valign="top"><b>eClarus - Business Process Modeler for Business Analysts</b><br>
            <A href="http://www.eclarus.com/products_business.html" target="_blank">Business Process Modeler Homepage</A><br>
            eClarus Business Process Modeler for Business Analysts is a business process diagramming, modeling, and IT collaboration tool. It enables business analysts at all technical levels to communicate and collaborate more effectively with IT, help cut application change backlogs, and improve control of business rules by business stake-holders.
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200">	<a href="images/paris.jpg" target="_blank"><img src="images/parisThumb.jpg"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a> </td>
          <td valign="top"> <b>Eiswind Book Publishing Software</b><br>
            <a href="http://www.book-publishing-software.com" target="_blank">Eiswind book publishing software Homepage</a><br>
            Eiswind Book Publishing Software is an easy to learn and use solution, that's highly adaptable to your individual needs.<br>
            Our Solution is a multi-user system. Data and documents are stored on a central server, that may be installed at your site or hosted by Eiswind. We communicate through a secure SSL layer, so that you can access your data from wherever you are on the internet without any hassle.<br>
            It's based on a modular system, with an open interface concept. Eiswind Publishing Software grows with your needs.<br>
            Eiswind Book Publishing Software is available in Mac OS/X and Windows versions.<br>
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200">	<a href="images/changemanager.jpg" target="_blank"><img src="images/changemanagerThumb.png"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a> </td>
          <td valign="top">
            <b>Embarcadero Change Manager - CM/Data, CM/Config </b><br>
            <A href="http://www.embarcadero.com/products/changemanager/index.html" target="_blank">Embarcadero Change Manager - CM/Data, CM/Config Homepage</A><br>
            <p>Embarcadero Change Manager 4.0 is a professional-grade database change management tool for both application and database developers.</p>
            <p>Change Manager CM/Data is a high-speed database tool that compares, validates, and synchronizes data between tables that are within the same database, in two different databases, and even across different DBMSs (e.g. SQL Server to SQL Server, SQL Server to Oracle, etc.)</p>
            <p>CM/Data speeds up large, distributed data comparison jobs to accelerate development and data migrations. By replicating complete production data in development and test databases, CM/Data lets developers troubleshoot and resolve issues faster and more accurately. CM/Data helps developers manage data differences, migrate data from test to production, verify data replication, and ensure reference data is accurate across multiple applications.</p>
            <p>Change Manager CM/Config is a configuration management tool that compares, monitors, and archives database configuration attributes across hundreds of database instances in the enterprise.</p>
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200">	<a href="images/ea_studio_community.jpg" target="_blank"><img src="images/ea_studio_communityThumb.png"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a> </td>
          <td valign="top"><b>Embarcadero Technologies EA/Studio Community Edition </b><br>
            <A href="http://www.embarcadero.com/products/eastudio/communityedition" target="_blank">Embarcadero Technologies EA/Studio Community Edition</A><br>
            Embarcadero Technologies EA/Studio Community Edition is a free business process modeling (BPM) tool built on the Eclipse framework. Business process modelers and database architects can use it to engage in more productive and efficient enterprise architecture modeling, including documenting business processes for regulatory compliance purposes. EA/Studio Community Edition supports XML and the business process modeling notation (BPMN), includes standard process modeling elements, and offers the ability to easily import Visio diagrams. When additional functionality is required, users can upgrade to the commercial version of <a href="http://www.embarcadero.com/products/eastudio/">EA/Studio</a>, which includes conceptual modeling, impact analysis and usage reporting. Users of both EA/Studio Community Edition and the commercial version of EA/Studio can seamlessly collaborate and share files between the two versions. EA/Studio Community Edition is available free of charge and can be accessed by visiting <a href="http://www.embarcadero.com/products/eastudio/communityedition">www.embarcadero.com/products/eastudio/communityedition</a>.
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200">	<a href="images/insightdesktop.jpg" target="_blank"><img src="images/insightdesktopThumb.jpg"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a> </td>
          <td valign="top"><b>Ember - Insight Desktop</b><br>
            <A href="http://ember.com/products_zigbee_development_tools_desktop.html" target="_blank">Ember - Insight Desktop</A><br>
            Ember's InSight Desktop is the most integrated ZigBee application debugging tool available. By providing developers with a complete view of their network in a graphical manner, InSight Desktop greatly reduces debugging effort and time to market. From within InSight Desktop, developers can automatically discover and connect to their target devices over a TCP/IP network using InSight Adpaters and Ember�s unrivaled Ethernet backchannel technology.
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200">	<a href="images/ezMgt.jpg" target="_blank"><img src="images/ezMgtThumb.jpg"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a> </td>
          <td valign="top"><b>ezMgt</b><br>
            <A href="http://www.ezmgt.com" title=http://www.ezmgt.com/ target="_blank">ezMgt Homepage</A><br>
            EzMgt provides a set of tools developed to help you monitor your network. Our free MIB Browser includes a MIB Editor (content assistant, SMIv2 compiler, syntax highlighting, code folding, hyperlink navigation), SNMP Query View to query and manage SNMP agents, SNMP Tracer View, and tools like ping, traceroute and whois.
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200"><a href="images/logicMindGuide.jpg" target="_blank"><img src="images/logicMindGuideThumb.jpg"> <br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a></td>
          <td valign="top"><b>Future Management - Logic MindGuide </b><br>
            <a href="http://www.logicmindguide.com" target="_blank">Logic MindGuide Homepage</a> <br>
            Logic MindGuide is a software tool (in German language) that supports the user in planning and deciding complex tasks frequently seen in customer-oriented product development, strategy development and evaluation tasks. Using RCP, it provides table-based, Excel-like interfaces based on the custom table widget KTable as well as figures built with GEF.	It writes reports in RTF and XLS format utilizing plugin-ed versions of iText and JExcelApi.
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200"><a href="images/easyMonitoring.jpg" target="_blank"><img src="images/easyMonitoringThumb.jpg"> <br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a></td>
          <td valign="top">
            <b>Global Vision Systems - EasyMonitoring </b><br>
            <a href="http://www.global-vision-systems.com" target="_blank">EasyMonitoring Homepage</a> <br>
            EasyMonitoring� is a 4D visualisation platform that makes easier to supervise and analyse complex systems in 3D and in real time. EasyMonitoring is dedicated to designing departments, control rooms and training centres in need of a powerful, flexible and user-friendly Human Machine Interface. It is generic and adaptable to any system described by telemetry, like a satellite, an aeroplane, a car, a production unit, a factory or a tall building.
            <br/><br/>EasyMonitoring� can import most of the 3D CAD models (CATIA, IGES, etc.) and connect to most common database (MySQL, ODBC, Oracle, etc.). Thanks to the clean and interactive eclipse's HMI, the user can easily link the 3D model to the data to tailor its own supervision solution. Real-time 3D rendering is done in C++, real-time data processing is done in java and the front end user interface is an eclipse RCP.
            <br/><br/>Technical Data :
            <ul>
              <li>Up to 15.000 parameters processed per second</li>
              <li>3D digital mock-up with up to 20 million triangles, integrated geometric simplification</li>
              <li>Interoperable (Windows, Linux, Unix)</li>
              <li>Open platform to be enhanced by plug-ins</li>
            </ul>
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200"><a href="images/lotus.jpg" target="_blank"><img src="images/lotusThumb.png"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a> </td>
          <td valign="top"><b>IBM Lotus Expeditor</b><br>
            <a href="http://www-306.ibm.com/software/lotus/products/expeditor/" target="_blank">IBM Lotus Expeditor Homepage</a><br>
            IBM Lotus� Expeditor software is the IBM SOA client integration platform.   It can assist developers in integrating information from a wide variety of client (RCP, Java�, Web, AJAX and Microsoft .NET) and server (Java EE, Web Services, Portlets, and 3270 / 5250 host emulation sessions) applications.  This can enable I/T organizations to fine tune the user interface and tie it to the business process in order to increase end user effectiveness.  Integrated middleware and encryption also can assist developers to extend applications for off line use, to enhance employee productivity, regardless of network connection. This can also be used to reduce the network latency typically found in web applications.  <br>
            <br>
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200"><a href="images/lotussymphony.jpg" target="_blank"><img src="images/lotussymphonyThumb.jpg"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a> </td>
          <td valign="top"><b>IBM Lotus Symphony </b><br>
            <a href="http://symphony.lotus.com" target="_blank">IBM Lotus Symphyony Homepage</a><br>
            IBM� Lotus� Symphony� is a richly-featured set of productivity tools that are intuitive and easy to use and provided at no charge. There are three applications that make up Lotus Symphony: Lotus Symphony Documents, Lotus Symphony Spreadsheets, Lotus Symphony Presentations.
            Lotus Symphony puts you in charge � take control over spiraling upgrade costs, ensure access to documents well into the future with new standard file formats (ODF), get more from your current investments with support for Microsoft Windows and Office file types.<br/>
            <br/>
            <a href="http://symphony.lotus.com/software/lotus/symphony/benefits_for_users.jspa">Users</a> can enjoy the easy-to-use interface and online community for templates, tips and support. <br/>
            <br/>
            <a href="http://symphony.lotus.com/software/lotus/symphony/benefits_for_businesses.jspa">Businesses</a> can control software acquisition and upgrade costs, provide ability to compatibility with Microsoft Office file formats, protect future access to documents with support for ODF and support a global workforce with Lotus Symphony's native language support for over 23 languages.<br/>
            <br/>
            <a href="http://symphony.lotus.com/software/lotus/symphony/developers.jspa">Developers</a> can extend their Eclipse RCP applications to take advantage of Lotus Symphony and then ship the resulting application.  Lotus Symphony is provided at no charge.
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200"><a href="images/ibmCloudScape.jpg" target="_blank"><img src="images/ibmCloudScapeThumb.jpg"> <br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a></td>
          <td valign="top"><b>IBM Cloudscape Workbench</b><br>
            <a href="http://www.ibm.com/developerworks/db2/downloads/csworkbench/" target="_blank">Cloudscape Workbench Homepage</a> <br>
            Logic MindGuide is a software tool (in German language) that supports the user in planning and deciding complex tasks frequently seen in customer-oriented product development, strategy development and evaluation tasks. Using RCP, it provides table-based, Excel-like interfaces based on the custom table widget KTable as well as figures built with GEF.	It writes reports in RTF and XLS format utilizing plugin-ed versions of iText and JExcelApi.
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200">	<a href="images/incrementalEpic.png" target="_blank"><img src="images/incrementalEpicThumb.png"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a> </td>
          <td valign="top"><b>Incremental Ltd.</b><br>
            <a href="http://www.incremental.eu.com" target="_blank">Incremental Homepage</a><br>
            Software for ship repair. Management software for niche markets in made-to-order manufacturing, covering the full production lifecycle from tendering through to invoicing.  We are currently focussing on ship repair.<br/>
            Technologies such as Hibernate and Apache POI allow us to fit in with almost any client's infrastructure.<br/>
            RCP's plug-in structure offers client-by-client customisation with low development and support costs.<br/>
            Check out our <a href="http://www.incremental.eu.com/screencams/screencams.htm">Screencams.</a>
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200">	<a href="images/infonoiaWHO.jpg" target="_blank"><img src="images/infonoiaWHOThumb.jpg"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a> </td>
          <td valign="top"><b>Infonoia SA (WHO HIV/AIDS Toolkits) </b> <br>
            <A href="http://www.infonoia.com/en/content.jsp?d=inf.04.01" title=http://www.infonoia.com/en/content.jsp?d=inf.04.01 target="_blank">Infonoia SA Homepage</A><br>
            This RCP application by Infonoia SA is to allow 4000 partners and clients of the World	Health Organization - many of them in developing countries - to consult and search document collections on HIV/AIDS initiatives ("toolkits") in offline mode. The Eclipse update manager infrastructure allows to provision users with up-to-date documents and new application features via low bandwidth connections. A previous version of the	application received a Fraunhofer and Linux Association award in 2004.
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200"><a href="images/iMedic.jpg" target="_blank">	<img src="images/iMedicThumb.jpg"> <br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a></td>
          <td valign="top">
            <b>iMEDIC - Open X</b><br>
            <a href="http://www.imedic.de/projekt_open_it.php" target="_blank">iMEDIC Open X Homepage</a><br>
            iMEDIC's Open X is a framework for workflow applications focused on decision making processes in the public administration. Compliant to federal standards and with support for advanced electronic signatures, users can provide juridically reliable statements.
            <p>Open X is a J2EE application based on jBPM and Hibernate and provides flexible workflows held in a common workflow repository. Deployment and update of the RCP based client is managed centrally using Java Web Start (http://sourceforge.net/projects/webrcp/).</p>
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200"><a href="images/innovation.jpg" target="_blank">	<img src="images/innovationThumb.jpg"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a> </td>
          <td valign="top"><b>Innovation Gate - WGA Eclipse</b> (WebGate Anywhere)<br>
            <a href="http://www2.innovationgate.de/WebGatePublisher/ig/html/default/ebrn-6abjyf.en.0" target="_blank">Webgate Anywhere Eclipse Homepage</a><br>
            WGA Eclipse is an Eclipse v. 3.1 Rich Client Application that communicates via WebServices with the WebGate Anywhere server system. Features include a flexible workspace for individual users, intuitive handling of the client controls and tools, a compact installation on client systems, and the live update site that enables updating the clients thoughout the Enterprise.
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200"><a href="images/inventage.jpg" target="_blank">	<img src="images/inventageThumb.jpg"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a> </td>
          <td valign="top"><b>Inventage AG and Infometis AG</b> - <b>Capri</b> - Client Advisory  Dashboard<br>
            <a href="http://www.inventage.com/invweb/gencontent?page=solutions_capri&lang=en" target="_blank">Capri Homepage</a><br>
            Capri is an effective CRM solution for financial advisors and private bankers. It integrates all client data in one application and allows seamless  management of client services through a single user interface. Its open multi-tier architecture provides a highly extendable platform with various integration levels. Sophisticated security technologies satisfy even the most demanding Swiss banking privacy and confidentiality requirements.
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200">	<a href="images/itScope.jpg" target="_blank"><img src="images/itScopeThumb.jpg"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a> </td>
          <td valign="top"><b>ITscope GbR</b> - <b>ITscope Marketviewer</b><br>
            <a href="http://www.itscope.de" target="_blank">ITscope Marketviewer Homepage</a><br>
            ITscope Marketviewer is a catalogue and purchasing software for business to business relations in the IT sector. It acts as an interface to an extensive product database and shows all relevant information for purchasers such as product sources, properties, images and data sheets.
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200">	<a href="images/jigsawarchive.png" target="_blank"><img src="images/jigsawarchivethumb.png"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a> </td>
          <td valign="top"><b>Jigsaw Archive</b><br>
            <a href="http://www.jigsawarchive.com" target="_blank">Jigsaw Archive Homepage</a><br>
            JIGSAW Archive increases the performance and stability of your Lotus Notes/Domino environment by automating the management of electronic mailboxes, optimizing the storage of email, eliminating the need for mailbox quotas and preventing the proliferation of personal archives.
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200"><a href="images/labimage.jpg" target="_blank"><img src="images/labimagethumb.jpg"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a></td>
          <td valign="top"><b>Kapelan Bio-Imaging</b> - <b>LabImage 1D 2006</b><br>
            <a href="http://www.labimage.net" target="_blank">LabImage 1D 2006 Homepage</a><br>
            Software to analyse 1D Electrophoresis gels</br>
            Kapelan Bio-Imaging offers a new software solution for the analysis of 1D Electrophoresis gels. LabImage is based on Kapelan Bio-Imaging platform using eclipse RCP. The software enables users in biology and medicine to analyse 1D electrophoresis gels.
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200">	 </td>
          <td valign="top"><b>Kapelan Bio-Imaging</b> - <b>LabImaging</b><br>
            <a href="http://www.labimaging.com" target="_blank">LabImaging Homepage</a><br>
            eclipse based platform for rapid bio-imaging software development
            <br/>LabImaging is an eclipse RCP based platform to develop solutions in bioinformatics and image analysis. The platform provides ready to use modules and concepts for image analysis, hardware controlling up to licence management and workflow control.
            <br/>The platform is highly flexible and delivers a tool for prototyping as well as ready to sell applications.
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200">	<a href="images/WebAnalyzer.png" target="_blank"><img src="images/WebAnalyzerThumb.png"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a> </td>
          <td valign="top"><b>Load Tester PRO</b>
            <br><a href="http://www.webperformance.com/load-testing" target="_blank">Load Tester PRO Homepage</a> <br>
            Spot web performance problems in your operating system or application server quickly with Load Tester PRO. The automated record and configuration process means no complicated hand-coding, and no scripting languages to learn.  Load Tester PRO� analyzes your test case and configures dynamic variables for most websites automatically. At the push of a button you can generate load from outside your network to test the entire application stack, including the firewall, or generate load from inside your test lab. With our detailed, configurable reports, you'll find the hidden bottlenecks quickly and dramatically cut your load testing time.
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200">	<a href="images/xmind.png" target="_blank"><img src="images/xmindThumb.png"> <br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a></td>
          <td valign="top"><b>Mango Software - XMIND</b><br>
            <a href="http://www.xmind.org/" target="_blank">XMIND Homepage</a><br>
            XMIND is an Eclipse RCP based visual thinking/mind mapping software.
            It helps people catch their creative thoughts flashing through their mind and turn them into guide lines of their activities. It's engaged in becoming the best assistant for planners and managers! All your plans, notes, meetings, speeches, even brainstorming and writing outlines can be perfectly expressed by simply drawing them down in a map with XMIND. You can also export them to Word/Powerpoint/PDF if you want to share your thoughts freely. XMIND uses Draw2D and Draw2D's extension in GMF to draw mind maps and export them to image files.
            Besides, You can import MindManager and FreeMind files into XMIND. So that you can turn from these two softwares to XMIND without losing anything. Now XMIND supports both Windows and Mac OS X.<br>
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200">	<a href="images/marketContours.jpg" target="_blank"><img src="images/marketContoursThumb.jpg"> <br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a></td>
          <td valign="top"><b>Market Contours </b><br>
            <a href="http://www.marketcontours.com/" target="_blank">Market Contours Homepage</a><br>
            Market Contours is a trading strategy development tool for non-programmers. Visual editors and analysis tools make it easy for traders to express their ideas using familiar concepts. The Eclipse RCP was instrumental in creating an easy-to-use product.  Perspectives, form-based editors and other features give Market Contours a valuable competitive advantage.<br>
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200">	<a href="images/snaps.gif" target="_blank"><img src="images/snapsThumb.gif"> <br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a></td>
          <td valign="top"><b>MyEclipse - SNAPs</b><br>
            <a href="http://www.MyEclipseIDE.com" target="_blank">MyEclipse SNAPs Homepage</a><br>
            Lightweight, Individual, Task-Based Developement Tools FREE as Part of the MyEclipse Distribution<br/>
            MyEclipse SNAPs (Simple Non-integrated APplications) are special-purpose, Windows-integrated applications that are targeted for quick, non-IDE based development tasks. Free your mind, work, and skill by eliminating project and file structures. Bridge the gap between tool environments by using SNAPs in with NetBeans, IntelliJ IDEA, and Visual Studio, eliminating vendor lock-in. Use SNAPs to get coding, not waiting for a full IDE to spin up.<br/>
            Currently available are the MyEclipse Visual HTML Designer, Java Image Editor, Database Explorer, and XML Editor - more on the way!<br/>
            The SNAPs are provided for the Windows OS platform and are included in the All-in-One installer - free with the MyEclipse distribution!<br/>
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200">	<a href="images/packman.png" target="_blank"><img src="images/packmanThumb.png"> <br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a></td>
          <td valign="top"><b>Nulogy - PackMan </b><br>
            <a href="http://www.nulogy.com/content/view/42/59/" target="_blank">PackMan Homepage</a><br>
            PackMan is the most comprehensive production management system available for contract packaging. It provides operational intelligence to contract packagers and logistics service providers performing co-packing operations (also known as kitting or secondary packaging), allowing them to run their businesses more competitively and profitably.<br />
            In particular, PackMan helps reduce costs, improve accuracy, and raise productivity by automating and streamlining processes such as budgeting, quoting, scheduling, bill-of-materials planning, and billing. PackMan�s real-time tracking and costing of labour also permits live performance measurement, production monitoring, and on-demand reporting. PackMan is robust enterprise software designed to be usable in an industrial environment by both basic and expert users.
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200">	<a href="images/osmosis.png" target="_blank"><img src="images/osmosisThumb.png"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a> </td>
          <td valign="top">
            <b>Osmosis Filios</b><br>
            <a href="http://www.osmosis.gr/software/filios.html" target="_blank">Osmosis Filios Homepage</a><br>
            Osmosis Filios is a fully manageable and complete application made specialy for the paediatric (pediatric) sector. This software addresses to paediatricians and offers an update management of their work. The unified software environment provide the following abilities:
            <ul>
              <li>Registry information</li>
              <li>Maintenance of analytic visiting record</li>
              <li>Ultimate control of vaccination�s record, that have been done or they should be done, by arranging the regular visits</li>
              <li>According to the sex, printable growth charts that comes from statistics from the Centers for Disease Control and Prevention (CDC), indicates the evolutionary process of the child, pointing out periods of unnatural up growth.</li>
            </ul>
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200">	<a href="images/phurnace.png" target="_blank"><img src="images/phurnaceThumb.png"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a> </td>
          <td valign="top"><b>Phurnace Deliver</b><br>
            <a href="http://www.phurnace.com" target="_blank">Phurnace Homepage</a><br>
            Phurnace Deliver troubleshoots configuration problems and accelerates deployments of Java EE applications. It eliminates the error-prone, repetitive processes and headaches associated with troubleshooting, configuring, installing, and migrating of software running on web application servers -- regardless of vendor or version. Developers and system administrators use Phurnace to eliminate errors, save time, and reduce overall deployment costs.
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200">	<a href="images/planningForce.png" target="_blank"><img src="images/planningForceThumb.png"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a> </td>
          <td valign="top">
            <b>PlanningForce</b><br>
            <a href="http://www.planningforce.com " target="_blank">PlanningForce Homepage</a><br>
            <p>PlanningForce is a project planning tool that helps you select, plan and balance the combination of Project Portfolio or Scope, Resources and Schedule, in line with chosen goals.
            <p>The scheduling engine automaitically produces optimized project plans and resource allocations, i.e. resource-constrained schedules, while taking into account skill requirements, calendars, priorities, constraints, and variations in time ( e.g. efficiency, head count).</p>
            <p>Unlike MS Project, you can plan and re-plan multiple projects in a snap, compare different scenarios, and plan the workforce.</p>
            <p>Use it for strategic planning, operational planning, agile planning and estimating duration and resources for any type of project</p>
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200">	<a href="images/plumChirp.jpg" target="_blank"><img src="images/plumChirpThumb.jpg"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a> </td>
          <td valign="top"><b>Plum Canary - Chirp</b><br>
            <a href="http://www.plumcanary.com" target="_blank">Chirp Homepage</a><br>
            Chirp is a team collaboration software application based on open standards that transforms how you assign,	track, and analyze the activities of teams with whom you work.  It helps you keep your finger on the pulse of work being done by teammates in one or many projects. Enter task assignments both big and small, then	use the dashboard to identify trouble areas, or create reports to provide to your managers.  Chirp is	multi-user by design, automatically synchronizing task assignments and status updates between everyone on	your team (within or between organizations) using your Plum Canary Sync Service subscription.  As a rich client application, Chirp works both offline and online, using SyncML and other open standards to update your entire project team with changes made while you are offline.  And being based on Eclipse and SWT, Chirp is cross-platform, with versions available for both Windows and OS X.  Chirp is available for 30-day	free trial prior to purchase.
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200">	<a href="images/progmate.png" target="_blank"><img src="images/progmateThumb.jpg"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a> </td>
          <td valign="top">
            <b>PROGMATE DOCs</b><br>
            <a href="http://www.progmate.pl/en/products/home" target="_blank">PROGMATE DOCs Homepage</a><br>
            <p>PROGMATE DOCs is a new generation system that organizes documentation in every company. Documents contain information necessary for your company to function in a proper way. If you want to have an easy access to these documents, know where they are all the time, and make work with documentation easier and faster it is time for you to use 21st century solution! PROGMATE DOCs in a very practical way solves creation, management and documents organization problems. Moreover, the system enables coordination of all processes connected with working on documents and guarantees stability no matter how intense the usage of the system is. PROGMATE DOCs is an example of an overall approach to a problem that gives a chance for a detailed analysis of various aspects of document management. Elements that create PROGMATE DOCs:</p>
            <p>Document Management - manages documentation and makes information search easier<br/>
              Waiting Room - coordinates channels through which documents come in the system<br/>
              Warehouse - manages paper versions of the documents<br/>
              Integration - delivers data from other systems<br/>
              Process - streamlines and speeds up documentation workflow
            </p>
            <p>The system was created for users, so thanks to intuitive solutions it does not require complex IT knowledge. Software is available in various languages.</p>
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200">	<a href="images/aimeGrid.png" target="_blank"><img src="images/aimeGridThumb.png"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a> </td>
          <td valign="top"><b>Recursa Software</b> - <b>Amie Calculation Engine</b><br>
            <a href="http://www.recursa.com" target="_blank">Aime Calculation Engine Homepage</a>      <br>
            The Amie Management Tool is an Eclipse v 3.1 Rich Client Application that communicates with the Amie Calculation Engine using WebServices.  It is a new generation service designed to speed up and simplify the development of applications that require complex mathematical models, business rules, calculations or formulas.
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200">	<a href="images/tridentide.jpg" target="_blank"><img src="images/tridentidethumb.jpg"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a> </td>
          <td valign="top"><b>Redbird Software</b> - <b>Trident IDE</b><br>
            <a href="http://www.scormsoft.com/trident" target="_blank">Trident IDE Homepage</a>      <br>
            Trident is an integrated development environment (IDE) for creating, testing, and packaging SCORM content. Trident is the most powerful and comprehensive tool of its kind, and the easiest to use. Create content packages with simple wizards and templates. Edit manifests, including sequencing and metadata, with intuitive form-based editors and synchronized code views. Organize content elements with drag-n-drop and undo/redo. Preview and validate content packages with a single click. Deploy content packages compatible with any SCORM conformant learning management system (LMS). Learn advanced SCORM techniques with comprehensive help and documentation. Trident�s integrated tool-set makes creating e-learning content and complying with SCORM standards easy. Trident is more than an editor, it is the SCORM IDE. Download Trident from Redbird Software at: <a href="http://www.scormsoft.com/trident">http://www.scormsoft.com/trident</a>.
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200"><a href="images/rpcore.jpg" target="_blank"><img src="images/rpcorethumb.jpg"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a></td>
          <td valign="top"><b>RPC Software</b> - <b>CORE Business System</b><br>
            <a href="http://www.rpcsoftware.com" target="_blank">CORE Business System Homepage</a> <br>
            CORE Business System is a project centric Enterprise Resource Planning tool that leverages the Eclipse Workbench, SWT and Plugins to offer a robust and easily customizable software solution that integrates your entire company. CORE's open license and framework allow you to scale and change our system to meet your business' needs.
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200"><a href="images/foreFlight.jpg" target="_blank"><img src="images/foreFlightThumb.jpg"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a> </td>
          <td valign="top"><b>SilverCurve - ForeFlight</b><br>
            <a href="http://www.foreflight.com" target="_blank">ForeFlight Homepage</a><br>
            ForeFlight is an Eclipse RCP-based desktop application designed to streamline weather-based preflight decisions for general aviation pilots. ForeFlight displays critical information graphically and prominently for a quick sense of the environmental conditions and displays alerts when conditions are near or exceeding the user's preferred limits. ForeFlight connects via the web to weather and information services to acquire current observations (METARs) and forecasts (TAFs), then integrates this up-to-the-minute information with the FAA airport listing for the the selected U.S. airport. The software offers multiple ergonomic views of the weather that affects the go/no-go flight decision, including cloud-base layers, winds and crosswinds, weather phenomena (like thunderstorms), and an assessment of the flight rules (such as VFR or IFR).
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200">	<a href="images/sophora_cms.gif" target="_blank"><img src="images/sophoraThumb.gif"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a> </td>
          <td valign="top"> <b>Sophora CMS </b>- A new take on Content Management<br>
            <a href="http://www.sophoracms.com" target="_blank">Sophora CMS Homepage</a><br>
            Sophora is: Fast. Powerful. Flexible. Easy to use. Comfortable.
            We built Sophora with these five key challenges in mind. To be quicker and easier.
            To not sacrifice function for form. And with respect for the need for intuitive and useable content management systems so that every day tasks are simplified. Take a look at Sophora's unique combination of features and see for yourself. Faster content, more relevant news and a simplified work experience. Sophora CMS.
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200"><a href="images/DtvBMS.jpg" target="_blank"><img src="images/DtvBMSThumb.jpg"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a> </td>
          <td valign="top"><b>SkyWalker Software - DtvBMS(DTV Broadcasting Management System)</b><br>
            <a href="http://www.skywalkersoft.com.cn/english/scheduling.html" target="_blank">DtvBMS Homepage</a><br>
            DtvBMS is an enterprise software product for Digital Broadcasting Traffic Control System that integrates different subsystems for the whole lifecycle of digital media and facilitates broadcaster's everyday operation. SkyWalker Software utilizes Eclipse RCP as the basing block for their whole product suite, and builds their own XUL engine for rapid application development. DtvBMS uses GEF and various eclipse subprojects for complicated GUI and business logic operations.
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200"><a href="images/snapxt.jpg" target="_blank"><img src="images/snapxtThumb.jpg"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a> </td>
          <td valign="top">
            <b>SnapXT Studio</b><br>
            <a href="http://www.snapxt.com" target="_blank">SnapXT Homepage</a><br>
            SnapXT Studio can be used to rapidly build applications that require:
            <ul>
              <li>the aggregation of data from multiple sources, including databases, Web services and user input;</li>
              <li>the transformation of this data using rules;</li>
              <li>the delivery of the aggregated and transformed data to one or more end points,  including databases, Web services and/or user interfaces.</li>
            </ul>
            The Eclipse-based desktop studio is used to create SnapXT services that are executed on a Java application server. These services are XML documents that define the meta data of a SnapXT application. The meta data is interpreted at runtime and executed by SnapXT runtime engines. The services are supported by different application layers in the platform, including security, content management, data access and a repository for managing services.<br />
            SnapXT Studio is based on open source projects, including Eclipse, Hibernate, Jboss, BIRT and Echo.<br />
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200"><a href="images/arenanetwork.jpg" target="_blank"><img src="images/arenanetworkThumb.jpg"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a> </td>
          <td valign="top"><b>Sphere Networks - Arena Network Manager</b><br>
            <a href="http://www.sphere.ae/products.php?prd_id=2" target="_blank">Arena Network Manager Homepage</a><br>
            Arena Network Manager is Sphere Networks next generation of Pro Active Management solutions. Arena Network Manager is built from the ground up using the latest technologies to meet and respond to your ever growing, ever changing enterprise environment. Arena Network Manager is built on our reliable, robust and extremely flexible Arena Platform, and provides a single point to manage your enterprise; covering active Network devices, Firewalls, Databases and Enterprise software.
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200"><a href="images/syschecker.jpg" target="_blank"><img src="images/syscheckerThumb.png"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a> </td>
          <td valign="top"><b>SysChecker Desktop </b><b></b><br>
            <a href="http://www.kdpsoftware.co.uk/monitoring_system_i/" target="_blank">SysChecker Desktop Homepage</a><br>
            Syschecker Desktop is an RCP application built using Eclipse. The product proactively monitors various operational aspects of a number of System i servers and reports back to the user any problems that may exist on any of the systems being monitored. Alerts are by e-mail or audio or visual from the desktop. As with most Eclipse applications there is embedded help and the product will run on Windows or Linux desktops.  The e-mail support requires use of an SMTP server and has been tested with Exchange,Sendmail and Lotus notes. A free version is available for testing purposes and allows the user to monitor 5 objects on a given server, three are predefined system objects and the user is able to define two more.
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200"><a href="images/tasktop.png" target="_blank"><img src="images/tasktopThumb.png"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a> </td>
          <td valign="top"><b>Tasktop</b><b></b><br>
            <a href="http://www.tasktop.com" target="_blank">Tasktop Homepage</a><br>
            Tasktop extends Eclipse Mylyn to focus your entire workday by supporting web browsing, email and calendaring in Eclipse. Tasktop tracks the files and web pages that you access, showing you only the ones that are relevant. Switching between tasks becomes a single-click operation--all of your documents and browser tabs are instantly restored. When used with a task repository, Tasktop provides rich editing and change notifications for your issues within Eclipse, relieving email inbox congestion. With Tasktop, installs and updates of Mylyn and partner connectors for CollabNet, JIRA and Rally are automated.
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200"><a href="images/visual_relation_browser.png" target="_blank"><img src="images/visual_relation_browserThum.png"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a> </td>
          <td valign="top"><b>Teamcenter</b><b></b><br>
            <a href="http://www.siemens.com/teamcenter/" target="_blank">Teamcenter Homepage</a><br>
            Teamcenter powers innovation and productivity by connecting people and processes with knowledge. Teamcenter�s comprehensive portfolio of proven digital lifecycle management solutions is built on an open PLM foundation.  Teamcenter, winner of the INDUSTRYWEEK Technology of the Year Award for 2005, is the de facto standard for PLM deployments, and is backed by Siemens' leadership in delivery. Teamcenter solutions power companies� strategic business initiatives, including new product development and introduction (NPDI); global product development; global manufacturing; maintenance, repair and overhaul (MRO); strategic sourcing and regulatory compliance. Teamcenter solutions link users with secure, global access to a single source of product knowledge, enabling process excellence throughout the lifecycle.  Teamcenter has two applications based on the Eclipse framework: The Rich Client and the Business Modeler IDE.  With the Rich Client you can perform all of your PLM interaction from a single client.  One of the perspectives in the Rich Client is a graphical browser that allows a user to visually navigate an assembly structure and drill down into its sub-assemblies as well as its individual components. If more detailed investigation of the component or sub-assembly is desired its 2D and 3D visual representation is just a mouse click away.  The Business Modeler IDE allow codeless modification of Teamcenter business processes.
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200"></td>
          <td valign="top"><b>Third Brigade </b><b></b><br>
            <a href="http://www.thirdbrigade.com" target="_blank">Third Brigade Homepage</a><br>
            Third Brigade is a leader in the emerging IT security field of Host Intrusion Prevention (HIP) and deliver a hybrid of centrally managed host-based firewall, intrusion detection and prevention solutions with vulnerability scanning capabilities. Their products consist of smart agents that are installed on Windows and Linux application host systems and security management portal applications that are accessed through Third Brigade's security management platform. The solution shields servers from the broadest range of attacks, providing unparalleled protection for an organization's most sensitive information.
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200">	<a href="images/xactium.png" target="_blank"><img src="images/xactiumThumb.png"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a> </td>
          <td valign="top"><b>Xactium</b> - <b>XMFMosaic</b><br>
            <a href="http://www.xactium.com" target="_blank">XMFMosiac Homepage</a> <br>
            Xactium is a world leader in advanced software and systems modelling tool.  Xactium's flagship product <a href="http://albini.xactium.com/content/index.php?option=content&task=section&id=7&Itemid=49" target="_blank">XMF-Mosaic</a> is a next generation meta-modelling tool and meta-programming environment that supports the rapid construction of powerful development environments to support a diverse range of development paradigms (Language Driven Development, MDA, Software Factories, Executable Modelling and whatever the next *big* paradigm is!) The Mosaic component of XMF-Mosaic is completely based on Eclipse RCP.
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200"><a href="images/xtremeJ.png" target="_blank"><img src="images/xtremeJThumb.png"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a> </td>
          <td valign="top"><b>XtremeJ - Operations Console</b><br>
            <a href="http://www.xtremej.com/product.php" target="_blank">XtremeJ Operations Console Homepage</a> <br>
            XtremeJ Operations Console, part of XtremeJ Management Suite, is a monitoring and management tool for Java applications and J2EE application servers that are compliant to the JMX specification. Built on top of the Eclipse RCP platform, it is a standalone application that provides rich client experience to the operations staff who do not need to be exposed to the details of the underlying JMX technology.
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200"><a href="images/yalips.png" target="_blank"><img src="images/yalipsThumb.png"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a> </td>
          <td valign="top"><b>yalips</b><br>
            <a href="http://www.yalips.com/" target="_blank">yalips Homepage</a> <br>
            yalips is an Eclipse RCP based software integrating Brainstorming, Learning, Project Management, and UML Software Modeling in a single tool. It provides features that are usually spread among software tools from various vendors.<br/>
            Although yalips is based on Eclipse RCP and especially GEF and Draw2D, it also utilizes the Eclipse framework to provide custom dialogs for a unique rich user experience.
          </td>
        </tr>
      </table>
    </div>
    <div class="rcpThumbnail">
      <table class="table">
        <tr>
          <td valign="top" align="center" width="200"><a href="images/Yoxos.png" target="_blank"><img src="images/YoxosThumb.png"><br><img src="images/zoom.gif" style="padding-top:2px;"> Enlarge Screenshot </a> </td>
          <td valign="top"><b>Yoxos Install Manager </b><br>
            <a href="http://www.yoxos.com" target="_blank">Yoxos Install Manager Homepage</a> <br>
            The Yoxos Eclipse Distribution enables Eclipse users to easily create and keep their Eclipse and plugin installations up-to-date and stable.  The Yoxos Install Manager (YIM) is an RCP application built on the Eclipse Workbench that enables users to browse, search and select features from the contents of the Yoxos Eclipse Distribution and install them to an Eclipse installation. It also features Wizards, Cheatsheets and its own Update UI. The YIM is able to run from a CD-ROM and as a JNLP application from a website.
          </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>