<!DOCTYPE html>
<html>
<head>
    <title>EMF Client Platform</title>
    <link rel="stylesheet" media="screen"
          href="public/stylesheets/bootstrap.css">
    <link rel="stylesheet" media="screen"
          href="public/stylesheets/bootstrap-responsive.css">
    <link rel="stylesheet" media="screen"
          href="public/stylesheets/theme.css">
    <link href='https://fonts.googleapis.com/css?family=Lato'
          rel='stylesheet' type='text/css'>
    <link rel="icon" type="image/png" href="public/images/ecp.png" />
    <script src="public/javascripts/jquery-1.9.0.min.js"
            type="text/javascript"></script>
    <script src="public/javascripts/bootstrap.js" type="text/javascript"></script>
</head>
<body>
<div class="container-fluid fill">
    <div class="banner">
        <div class="row-fluid">
            <div class="span2" style="padding: 0.5em;">
                <a href="index.html"> <img src="public/images/ecp.png"/>
                </a>
            </div>
            <div class="span10 pull-left">
                <h2>EMF Client Platform</h2>

                <p>Build an EMF application with one click</p>
            </div>
        </div>
    </div>
    <div class="row-fluid">
        <div class="navbar span12">
            <div class="navbar-inner" id="topbar">
                <button id="topbtn" type="button" class="btn btn-navbar"
                        data-toggle="collapse" data-target=".nav-collapse">
                    <span class="icon-bar"></span><span class="icon-bar"></span><span
                        class="icon-bar"></span>
                </button>
                <div class="nav-collapse">
                    <ul class="nav">
                        <li>
                            <a href="index.html">
                                <img class="nav-image" src="public/images/home.png"/>
                                <span>&nbsp;Home</span>
                            </a>
                        </li>
                        <li>
                            <a href="gettingstarted.html">
                                <img class="nav-image" src="public/images/getting-started.png"/>
                                <span>&nbsp;Getting Started</span>
                            </a>
                        </li>
                        <li>
                            <a href="download.html">
                                <img class="nav-image" src="public/images/download.png"/>
                                <span>&nbsp;Download</span>
                            </a>
                        </li>
                        <li>
                            <a href="documentation.html">
                                <img class="nav-image" src="public/images/documentation.png"/>
                                <span>&nbsp;Documentation</span>
                            </a>
                        </li>
                        <li>
                            <a href="support.html">
                                <img class="nav-image" src="public/images/support.png"/>
                                <span>&nbsp;Support</span>
                            </a>
                        </li>
                        <li>
                            <a href="gettinginvolved.html">
                                <img class="nav-image" src="public/images/getting-involved.png"/>
                                <span>&nbsp;Getting Involved</span>
                            </a>
                        </li>
                        <li>
                            <a href="communication.html">
                                <img class="nav-image" src="public/images/communication.png"/>
                                <span>&nbsp;Contact</span>
                            </a>
                        </li>
                    </ul>
                </div>
            </div>
        </div>
    </div>
    <div class="content">
        <h3>DOCUMENTATION</h3>

        <p>We are always trying to keep the documentation up-to-date. If
            you find anything outdated, wrong or missing, please do not hesitate
            to <a href="communication.html">contact us</a>.</p>
        <h4>Tutorials</h4>
        <div class="row-fluid">
            <div class="span7">
                <ul class="no-bullets">
                    <li><a
                            href="http://eclipsesource.com/blogs/tutorials/getting-started-with-the-emf-client-platform/"
                            target="_blank"> Getting started </a></li>
                    <ul>
                        <li><a
                                href="http://eclipsesource.com/blogs/tutorials/getting-started-with-the-emf-client-platform/#components"
                                target="_blank"> Components of ECP </a></li>
                        <li><a
                                href="http://eclipsesource.com/blogs/tutorials/getting-started-with-the-emf-client-platform/#explorer"
                                target="_blank"> The Explorer </a></li>
                        <li><a
                                href="http://eclipsesource.com/blogs/tutorials/getting-started-with-the-emf-client-platform/#editor"
                                target="_blank"> The Editor </a></li>
                        <li><a
                                href="http://eclipsesource.com/blogs/tutorials/getting-started-with-the-emf-client-platform/#repositoryexplorer"
                                target="_blank"> The Repository Explorer </a></li>
                        <li><a
                                href="http://eclipsesource.com/blogs/tutorials/getting-started-with-the-emf-client-platform/#custommodel"
                                target="_blank"> Adding your custom model </a></li>
                        <li><a
                                href="http://eclipsesource.com/blogs/tutorials/getting-started-with-the-emf-client-platform/#product"
                                target="_blank"> Define a custom product/feature based on ECP </a></li>
                    </ul>
                    <li><a
                            href="http://eclipsesource.com/blogs/tutorials/tutorialshow-to-customize-the-emf-client-platform"
                            target="_blank"> Customizing ECP </a></li>
                    <ul>
                        <li><a
                                href="http://eclipsesource.com/blogs/tutorials/tutorialshow-to-customize-the-emf-client-platform/#look"
                                target="_blank"> Customize the Look of Model Elements </a></li>
                        <li><a
                                href="http://eclipsesource.com/blogs/tutorials/tutorialshow-to-customize-the-emf-client-platform/#validation"
                                target="_blank"> Define Model Validation Constraints </a></li>
                        <li><a
                                href="http://eclipsesource.com/blogs/tutorials/tutorialshow-to-customize-the-emf-client-platform/#replaceeditor"
                                target="_blank"> Replace the Default Editor </a></li>
                        <li><a
                                href="http://eclipsesource.com/blogs/tutorials/tutorialshow-to-customize-the-emf-client-platform/#customizecontrols"
                                target="_blank"> Customize Editor Controls</a></li>
                    </ul>
                    <li>
                        Customize the Layout of the editor (EMF Forms)
                        <ul>
                            <li>
                                <a href="http://eclipsesource.com/blogs/tutorials/getting-started-with-EMF-Forms/"
                                   target="_blank">Getting started with EMF Forms</a></li>
                            <li>
                                <a
                                        href="http://eclipsesource.com/blogs/tutorials/emf-forms-view-model-elements/"
                                        target="_blank">Available View Model Elements</a>
                                <ul>
                                    <li><a
                                            href="http://eclipsesource.com/blogs/tutorials/emf-forms-view-model-elements/#tablecontrol"
                                            target="_blank">Table Control</a></li>
                                    <li><a
                                            href="http://eclipsesource.com/blogs/tutorials/emf-forms-view-model-elements/#customcontrols"
                                            target="_blank">CustomControl</a></li>

                                </ul>

                            </li>

                        </ul>
                    </li>
                    <li>Use and Set-Up Backends</li>
                    <ul>
                        <li><a
                                href="http://eclipsesource.com/blogs/tutorials/getting-started-with-emfstore/"
                                target="_blank">Getting started with EMFStore</a></li>
                    </ul>
                    <li>RAP</li>
                    <ul>
                        <li><a
                                href="http://eclipsesource.com/blogs/tutorials/how-to-run-ecp-rap-on-tomcat/"
                                target="_blank">How to run ECP + RAP on Tomcat</a></li>
                    </ul>
                    <li>EMF Client Platform Core API</li>
                    <ul>
                        <li><a href="http://eclipsesource.com/blogs/tutorials/emf-client-platform-core-api/#observerbus"
                               target="_blank">Listening to core events</a></li>
                    </ul>
                    <ul>
                        <li><a href="http://eclipsesource.com/blogs/tutorials/emf-client-platform-core-api/#changebroker"
                               target="_blank">The EMF Change Broker</a></li>
                    </ul>
                </ul>
            </div>
            <div class="span5">
                <!-- start feedwind code --><script type="text/javascript">document.write('\x3Cscript type="text/javascript" src="' + ('https:' == document.location.protocol ? 'https://' : 'http://') + 'feed.mikle.com/js/rssmikle.js">\x3C/script>');</script><script type="text/javascript">(function() {var params = {rssmikle_url: "http://eclipsesource.com/blogs/category/syndicate/feed/?tag=emfforms|http://eclipsesource.com/blogs/category/syndicate/feed/?tag=emfcp",rssmikle_frame_width: "300",rssmikle_frame_height: "600",frame_height_by_article: "0",rssmikle_target: "_blank",rssmikle_font: "Arial, Helvetica, sans-serif",rssmikle_font_size: "12",rssmikle_border: "off",responsive: "off",rssmikle_css_url: "",text_align: "left",text_align2: "left",corner: "off",scrollbar: "on",autoscroll: "on",scrolldirection: "up",scrollstep: "3",mcspeed: "20",sort: "Off",rssmikle_title: "on",rssmikle_title_sentence: "EMF Forms Feed",rssmikle_title_link: "",rssmikle_title_bgcolor: "#0D6688",rssmikle_title_color: "#FFFFFF",rssmikle_title_bgimage: "",rssmikle_item_bgcolor: "#FFFFFF",rssmikle_item_bgimage: "",rssmikle_item_title_length: "55",rssmikle_item_title_color: "#0D6688",rssmikle_item_border_bottom: "on",rssmikle_item_description: "on",item_link: "off",rssmikle_item_description_length: "150",rssmikle_item_description_color: "#666666",rssmikle_item_date: "gl1",rssmikle_timezone: "Etc/GMT",datetime_format: "%b %e, %Y %l:%M %p",item_description_style: "text",item_thumbnail: "full",item_thumbnail_selection: "auto",article_num: "15",rssmikle_item_podcast: "off",keyword_inc: "Eclipse;EMF;Forms",keyword_exc: ""};feedwind_show_widget_iframe(params);})();</script><div style="font-size:10px; text-align:center; width:300px;"><a href="http://feed.mikle.com/" target="_blank" style="color:#CCCCCC;">RSS Feed Widget</a><!--Please display the above link in your web page according to Terms of Service.--></div><!--  end  feedwind code -->
            </div>
        </div>

    <h4>Presentations</h4>

    <p>
        Here you will find a list a presentations related to ECP.
    </p>
    <ul class="no-bullets">
        <li>
            <h5>Are you still manually coding UIs?</h5>
            <iframe width="420" height="315" src="//www.youtube.com/embed/LjF_ZWVyKXc" frameborder="0"
                    allowfullscreen></iframe>
        </li>
        <li>
            <h5>
                Building a Tool based on Eclipse Modeling Framework
            </h5>
            <iframe src="http://player.vimeo.com/video/75465334" width="640" height="480" frameborder="0"
                    webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>
            <p>
                Long Version available <a
                    href="http://jaxenter.de/videos/JAX-TV-In-20-Minuten-zum-eigenen-Eclipse-Tool-171565">here</a>.
            </p>
        </li>
    </ul>
    <h4>JavaDoc</h4>

    <p>
        The latest JavaDoc can always be found
        <a href="http://download.eclipse.org/ecp/releases/javadoc/index.html"
           target="_blank">
            here
        </a>.
    </p>

    <h3>EMF Client Platform Bundle Overview</h3>
    <h4 a="emfforms-bundle-overview">EMF Forms</h4>
    <h5>EMF Forms Core</h5>
    <strong>ecp.common</strong>

    <p class="indent">
        This plugin includes classes used in EMF Forms and ECP plugins like UniqueSetting. UniqueSetting implements the
        equals method as well as the hashcode method and thus can be used in Collections other than Setting.
    </p>
    <strong>ecp.edit</strong>

    <p class="indent">
        This plugin defines interfaces and abstract classes for Controls as well as a factory for creating controls. The
        factory defines an extension point that allows the user to contribute his own controls.
    </p>

    </p>
    <strong>ecp.edit.swt</strong>

    <p class="indent">
        Uses the Controls Extension Point to contribute default controls for SWT such as TextControl or TableControl.
    </p>

    </p>
    <strong>ecp.ui.view</strong>

    <p class="indent">
        This contains UI independent classes that are needed for rendering, e.g., ViewProviderHelper, which allows the user
        to find a View for an EObject.
    </p>

    </p>
    <strong>ecp.ui.view.swt</strong>

    <p class="indent">
        This contains SWT classes. It provides abstract implementations for renderers and an entry point for rendering a
        View Model (ECPSWTViewRenderer).
    </p>

    </p>
    <strong>ecp.view.context</strong>

    <p class="indent">
        The ViewModelContext contains the model information for an open editor. Its lifecycle is bound to the lifecycle of
        an ECP editor, thus each instance of an editor has exactly one ViewModelContext. It provides access to the View
        Model and to the domain model. It also allows the user to register and retrieve registered ViewServices.
    </p>

    </p>
    <strong>ecp.view.core.swt</strong>

    <p class="indent">
        This defines renderers for core model elements (VView, VControl).
    </p>

    </p>
    <strong>ecp.view.model</strong>

    <p class="indent">
        This provides core model elements (View and Control) as well as abstract classes.
    </p>

    </p>
    <strong>ecp.view.model.edit</strong>

    <p class="indent">
        This is the generated edit plugin for core models.
    </p>

    </p>
    <strong>ecp.view.model.provider.generator</strong>

    <p class="indent">
        This is a ViewModel provider that generates a View Model based on the provided EObject.
    </p>

    </p>
    <strong>ecp.view.model.provider.xmi</strong>

    <p class="indent">
        This is a ViewModel provider that provides an extension point allowing the user to register serialized View Models.
    </p>

    <h5>EMF Forms Extension Models</h5>

    <!-------------------- CUSTOM -------------------->
    <h5>Categorization</h5>

    <strong>ecp.view.categorization.model</strong>

    <p class="indent">
        This defines a model for Categorizations, allowing the user to categorize the domain model.
    </p>

    </p>
    <strong>ecp.view.categorization.model.edit</strong>

    <p class="indent">
        This is the generated edit plugin for Categorizations.
    </p>

    </p>
    <strong>ecp.view.categorization.swt</strong>

    <p class="indent">
        This provides the SWT Renderer for the Categorization model.
    </p>

    <!-------------------- CUSTOM -------------------->
    <h5>Custom controls</h5>

    </p>
    <strong>ecp.view.custom.model</strong>

    <p class="indent">
        This model provides the HardcodedDomainModelReference, which allows the user to reference a specific control
        directly. In this way, custom controls (controls that reference an arbitrary number of features) can be added to the
        view model.
    </p>

    <strong>ecp.view.custom.model.edit</strong>

    <p class="indent">
        This is the generated edit plugin for custom models.
    </p>

    <strong>ecp.view.custom.ui.swt</strong>

    <p class="indent">
        This defines an abstract SWT implementation of custom controls by providing helper methods, e.g., by creating the
        validation icon.
    </p>

    <!-------------------- GROUP -------------------->
    <h5>Group widget</h5>

    </p>
    <strong>ecp.view.group.model</strong>

    <p class="indent">
        This is a group that behaves like a vertical layout but also shows a border with the group name as the title.
    </p>

    </p>
    <strong>ecp.view.group.model.edit</strong>

    <p class="indent">
        This is the generated edit plugin for group models.
    </p>

    </p>
    <strong>ecp.view.group.ui.swt</strong>

    <p class="indent">
        This is the SWT renderer for group models that renders groups.
    </p>


    <!-------------------- HORIZONTAL -------------------->
    <h5>Horizontal layout</h5>

    <strong>ecp.view.horizontal.model</strong>

    <p class="indent">
        This defines a model for horizontal layouts wherein elements are ordered next to each other.
    </p>

    <strong>ecp.view.horizontal.model.edit</strong>

    <p class="indent">
        This is the generated edit plugin for a horizontal layout.
    </p>

    <strong>ecp.view.horizontal.ui.swt</strong>

    <p class="indent">
        This is the SWT Renderer for a horizontal layout.
    </p>

    <!-------------------- LABEL -------------------->
    <h5>Label widget</h5>

    <strong>ecp.view.label.model</strong>

    <p class="indent">
        This allows the user to define a label with a name (the displayed text) and a style.
    </p>

    <strong>ecp.view.label.model.edit</strong>

    <p class="indent">
        This is the generated edit plugin for labels.
    </p>

    <strong>ecp.view.label.ui.swt</strong>

    <p class="indent">
        This is the SWT renderer for label models.
    </p>


    <!-------------------- RULE SERVICE -------------------->
    <h5>Rule service</h5>
    <strong>ecp.view.rule</strong>

    <p class="indent">
        This is the rule service, which evaluates visibility and enablement rules.
    </p>

    <strong>ecp.view.rule.model</strong>

    <p class="indent">
        This is the rule model, which allows users to define dynamic behavior like enabling/disabling of elements or
        showing/hiding of elements based on value changes in the domain model. A ShowRule, an EnableRule and Conditions are
        provided by this plugin.
    </p>

    <strong>ecp.view.rule.model.edit</strong>

    <p class="indent">
        This is the generated edit plugin for the rule model.
    </p>

    <!-------------------- STACK -------------------->
    <h5>Stack layout</h5>

    <strong>ecp.view.table.model</strong>
    <p class="indent">
        Contains the stack model.
    </p>

    <strong>ecp.view.stack.model.edit</strong>

    <p class="indent">
        This is the generated edit plugin for the stack model.
    </p>

    <strong>ecp.view.stack.ui.swt</strong>

    <p class="indent">
        SWT renderer for stacks.
    </p>

    <strong>ecp.view.stack.viewmodel</strong>

    <p class="indent">
        Stack Layout Viewmodel.
    </p>

    <!-------------------- TABLE -------------------->
    <h5>Table control</h5>

    <strong>ecp.view.table.model</strong>

    <p class="indent">
        This provides classes like a table and columns for defining and configuring tables.
    </p>

    <strong>ecp.view.table.model.edit</strong>

    <p class="indent">
        This is the generated edit plugin for the table model.
    </p>

    <strong>ecp.view.table.ui.swt</strong>

    <p class="indent">
        This is the SWT renderer for table elements.
    </p>

    <strong>ecp.view.table.columnservice</strong>

    <p class="indent">
        This is a context service that adds all columns to tables that do not have any columns defined.
    </p>

    <strong>ecp.view.table.editor</strong>
    <p>
        ECP View Table Additional Features for Editor.
    </p>

    <strong>ecp.view.table.migrate</strong>
    <p>
        Handles table mirgration, if necessary.
    </p>

    <!-------------------- TEMPLATE -------------------->
    <h5>Template model</h5>

    <strong>ecp.view.template.model</strong>

    <p class="indent">
        This is a model for configuring icons and colors of validation errors.
    </p>

    <strong>ecp.view.template.model.edit</strong>

    <p class="indent">
        This is the generated edit plugin for the template model.
    </p>

    <strong>ecp.view.template.service</strong>

    <p class="indent">
        This is the template service that provides the Current Template model.
    </p>

    <!-------------------- TREE MASTER DETAIL -------------------->
    <h5>Treemaster detail</h5>

    <strong>ecp.view.treemasterdetail.model</strong>

    <p class="indent">
        This is a tree master detail, which provides an element that displays the domain model on the left-hand side as a
        tree and allows users to edit it on the right-hand side.
    </p>

    <strong>ecp.view.treemasterdetail.model.edit</strong>

    <p class="indent">
        This is the generated edit plugin for the TreeMasterDetail model.
    </p>

    <strong>ecp.view.treemasterdetail.ui.swt</strong>

    <p class="indent">
        This is the SWT renderer for the tree master detail element.
    </p>

    <!-------------------- UNSET SERVICE -------------------->
    <h5>Unset service</h5>

    <strong>ecp.view.unset</strong>

    <p class="indent">
        This is the unset service, which monitors the View Model instance and sets all values of the domain model to default
        if they are not displayed anywhere in the View Model.
    </p>

    <!-------------------- VALIDATION SERVICE -------------------->
    <h5>Validation Service</h5>

    <strong>ecp.view.validation</strong>

    <p class="indent">
        This is the validation service, which monitors the domain model and calculates validation errors.
    </p>

    <strong>ecp.view.validation.bean</strong>

    <p class="indent">
        Performs validation using JSR 303.
    </p>

    <!-------------------- VALIDATION VIEW  -------------------->
    <h5>Validation View</h5>
    <strong>ecp.ui.validation</strong>
    <p class="indent">
        Contains the validation view.
    </p>

    <strong>ecp.ui.validation.e4</strong>
    <p class="indent">
        Contains the e4 validation view.
    </p>

    <strong>ecp.validation.diagnostician</strong>
    <p class="indent">
        ECP Diagnostician used during validation.
    </p>

    <strong>ecp.validation.validationvieweditorbridge</strong>
    <p class="indent">
        ECP Validation View to Editor Bridge
    </p>

    <!-------------------- MAPPING DMR -------------------->
    <h5>Mapping Domain Model References</h5>

    <strong>ecp.view.mappingdmr.databinding</strong>
    <p class="indent">
        Provides the databinding for domain model references that need to be resolved via a map key entry.
    </p>

    <strong>ecp.view.mappingdmr.model</strong>
    <p class="indent">
        Contains the model for mapped domain model references.
    </p>

    <strong>ecp.view.mappingdmr.model.edit</strong>
    <p class="indent">
        Contains the model edit functionality for domain model references.
    </p>

    <strong>ecp.view.mappingdmr.model.tooling</strong>
    <p class="indent">
        Provides tooling for mapped domain model references.
    </p>

    <h5>Dependency Injection Feature</h5>

    <strong>ecp.ui.view.swt.di</strong>
    <p class="indent">
        Contains the Dependency Injection SWT Renderer.
    </p>

    <strong>ecp.view.custom.ui.swt.di</strong>
    <p class="indent">
        Custom View SWT Dependency Injection.
    </p>

    <strong>ecp.view.model.common.di</strong>
    <p class="indent">
        Contains Common View Model Classes for Dependency Injection.
    </p>

    <!-------------------- VERTICAL LAYOUT -------------------->
    <h5>Vertical model</h5>

    <strong>ecp.view.vertical.model</strong>

    <p class="indent">
        This defines a vertical layout model wherein children are positioned under each other.
    </p>

    <strong>ecp.view.vertical.model.edit</strong>

    <p class="indent">
        This is the generated edit plugin for a vertical layout.
    </p>

    <strong>ecp.view.vertical.ui.swt</strong>

    <p class="indent">
        This is the SWT renderer for a vertical layout.
    </p>

    <!-------------------- DIFFMERGE -------------------->
    <h5>EMF Diffmerge</h5>

    <strong>ecp.diffmerge.context</strong>

    <p class="indent">
        This provides a specific ViewModelContext that can calculate a diff between two elements.
    </p>

    <strong>ecp.diffmerge.renderer.swt</strong>

    <p class="indent">
        This provides a specific renderer for the diff merge case.
    </p>

    <strong>ecp.diffmerge.swt</strong>

    <p class="indent">
        This bundle provides the Diff Dialog that allows users to see and merge diffs.
    </p>

    <!-------------------- MODEL EDIT CONTROLS -------------------->
    <h5>EMF Forms Model Edit Controls</h5>

    <strong>ecp.ui.view.editor.controls</strong>

    <p class="indent">
        These are specific controls to edit the view model (e.g., in the IDE).
    </p>

    <strong>ecp.view.template.controls.swt</strong>

    <p class="indent">
        These are specific controls to edit the template model.
    </p>

    <h4>ECP</h4>
    <h5>ECP Core</h5>

    <strong>ecp.core</strong>

    <p class="indent">
        This defines core classes like ECPProject.
    </p>

    <strong>ecp.core.emffilter</strong>

    <p class="indent">
        This provides a filter for default EPackages.
    </p>

    <strong>ecp.explorerbridge</strong>

    <p class="indent">
        This provides classes for connecting an ECPProject with a model element editor.
    </p>

    <strong>ecp.ui</strong>

    <p class="indent">
        These are SWT classes for ECP, e.g., ModelExplorer.
    </p>


    <strong>ecp.validation</strong>

    <p class="indent">
        This provides ECP validation used to calculate errors for ECPProjects.
    </p>

    <!-------------------- e3 -------------------->
    <h5>ECP e3</h5>
    <strong>ecp.application.e3</strong>

    <p class="indent">
        This is the e3 demo application for ECP.
    </p>

    <strong>ecp.editor.e3</strong>

    <p class="indent">
        This is the e3 editor used in ECP.
    </p>

    <strong>ecp.ui.e3</strong>

    <p class="indent">
        These are necessary e3 classes for ECP like handlers and views.
    </p>

    <strong>ecp.validation.connector</strong>

    <p class="indent">
        These are specific classes to display the validation errors in the model explorer tree.
    </p>

    <strong>ecp.emfstore.ui.e3</strong>

    <p class="indent">
        These are Eclipse 3.x specific UI parts for the EMFStore like share, commit and update commands.
    </p>

    <!-------------------- e4 -------------------->
    <h5>ECP e4</h5>

    <strong>ecp.application.e4</strong>

    <p class="indent">
        This is the e4 demo application for ECP.
    </p>

    <strong>ecp.ui.e4</strong>

    <p class="indent">
        These are necessary e4 classes for ECP like handlers and views.
    </p>

    <strong>ecp.emfstore.ui.e4</strong>

    <p class="indent">
        These are e4-specific UI parts for EMFStore like share, commit and update commands defined in a fragment.xml.
    </p>

    <!-------------------- WORKSPACE PROVIDER -------------------->
    <h5>ECP Workspace Provider</h5>

    <strong>ecp.workspace.core</strong>

    <p class="indent">
        A dataprovider for editing models from XMI files directly in the IDE.
    </p>

    <strong>ecp.workspace.ui</strong>

    <p class="indent">
        These are UI parts for the workspace provider like wizards for creating and loading xmi files.
    </p>

    <!-------------------- CDO PROVIDER -------------------->
    <h5>CDO Provider</h5>

    </p>
    <strong>ecp.cdo.core</strong>

    <p class="indent">
        This is a data provider for the CDO model repository.
    </p>

    </p>
    <strong>ecp.cdo.ui</strong>

    <p class="indent">
        These are UI parts for the CDO provider like check-in and update commands.
    </p>

    <!-------------------- EMFSTORE PROVIDER -------------------->
    <h5>EMFStore Provider</h5>

    <strong>ecp.emfstore.core</strong>

    <p class="indent">
        This is a data provider for EMFStore.
    </p>

    <strong>ecp.emfstore.ui</strong>

    <p class="indent">
        These are UI parts for the EMFStore like share, commit and update handler.

    </p>

    <h4>RAP</h4>
    <strong>ecp.rap</strong>

    <p class="indent">
        This is the RAP demo application for ECP.
    </p>

    </p>
    <strong>ecp.rap.util</strong>

    <p class="indent">
        This provides utility classes for RAP, e.g., a JFace Dialog wrapper.
    </p>
</div>
<div class="footer">
    <div class="row-fluid">
        <div class="span2 text-center">
            <a href="http://www.eclipse.org/legal/privacy.php" target="_blank">
                Privacy Policy </a>
        </div>
        <div class="span2 text-center">
            <a href="http://www.eclipse.org/legal/termsofuse.php"
               target="_blank"> Terms of Use </a>
        </div>
        <div class="span2 text-center">
            <a href="http://www.eclipse.org/legal/copyright.php"
               target="_blank"> Copyright </a>
        </div>
        <div class="span2 text-center">
            <a href="http://www.eclipse.org/legal/" target="_blank"> Legal
            </a>
        </div>
        <div class="span2 text-center">
            <a
                    href="http://www.eclipse.org/projects/project_summary.php?projectid=modeling.emft.emf-client"
                    target="_blank"> About </a>
        </div>
        <div class="span2 text-center">
            <a href="http://www.eclipse.org/" target="_blank">eclipse.org</a>
        </div>
    </div>
    <div class="text-center">
        Icons are from <a
            href="http://www.icondeposit.com/theicondeposit:108"
            target="_blank">Icon Deposit</a>
    </div>
</div>
</div>
</body>
<script type="text/javascript">
    var _gaq = _gaq || [];
    _gaq.push([ '_setAccount', 'UA-31075157-1' ]);
    _gaq.push([ '_trackPageview' ]);

    (function () {
        var ga = document.createElement('script');
        ga.type = 'text/javascript';
        ga.async = true;
        ga.src = ('https:' == document.location.protocol ? 'https://ssl'
                        : 'http://www')
                + '.google-analytics.com/ga.js';
        var s = document.getElementsByTagName('script')[0];
        s.parentNode.insertBefore(ga, s);
    })();
</script>
</html>
