<!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>

    <script src="public/javascripts/common.js" type="text/javascript"></script>
    <link rel="stylesheet" type="text/css" href="//www.eclipse.org/eclipse.org-common/themes/solstice/public/stylesheets/vendor/cookieconsent/cookieconsent.min.css" />
    <script src="public/javascripts/cookieconsent.js" type="text/javascript"></script>
    <style type="text/css">
    	#greyedout {
    		position: fixed;
		    top: 0px;
		    left: 0px;
		    width: 100%;
		    height: 100%;
		    z-index: 1000;
	        background: rgba(0, 0, 0, 0.8);
	        display: flex;
       		justify-content: center;
   			align-items: center;
    	}
    </style>
</head>
<body>
<div id="greyedout">
	<h1>Please navigate to the <b><a href="./emfforms">EMF Forms</a></b> web site, as ECP is now merged into EMFForms.</h1>
</div>
<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="span12">
                <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>
                                </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>

        <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 id="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>
<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
    new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-5WLCZXC');</script>
<!-- End Google Tag Manager -->
<script>
  (function(w) {
    w.cookieconsent.init();
  })(window)
</script>
</body>
</html>
