<!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 rel='stylesheet'
		  href='https://fonts.googleapis.com/css?family=Noto+Sans' 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>
</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>Extension points - How to</h3>
		<p>When adding a new extension point please mind the following
			guidelines:</p>
		<ul>
			<li>The Plug-in ID must be the same as the id of the project
				defining the extension point.</li>
			<li>The Point ID must not be fully qualified. The name must be
				camel cased.</li>
			<li>The Point Name must be understandable and give a good hint
				at what the extension point is doing.</li>
			<li>The Description tab must contain a description for the
				extension point. If the point is experimental (API not fixed) add
				the following line:
				<div class="listing">&lt;b&gt;This extension point is
					experimental and is likely to change in the future releases as the
					activity support evolves.&lt;/b&gt;</div>
			</li>
			<li>The Since tab must contain the Version of the plugin since
				which it is part of the API. (Even if it is experimental). The
				Version format is maj.min, e.g. 1.1 .</li>
			<li>The Examples tab should contain an example of an usage of
				this extension point. Use the &lt;pre&gt;&lt;/pre&gt; tags to
				display markup.</li>
			<li>The API Information tab should contain a description of
				classes being used for defining this extension point.</li>
			<li>The Supplied Implementation tab should contain a
				description of a supplied implementation of this extension point,
				if one implementation is supplied.</li>
			<li>The Copyright tab must contain the copyright agreement, it
				look like this:
				<div class="listing">
					Copyright (c) 2011-2013 EclipseSource Muenchen GmbH and others.<br />
					All rights reserved. This program and the accompanying materials<br />
					are made available under the terms of the Eclipse Public License
					v1.0<br /> which accompanies this distribution, and is available
					at<br /> http://www.eclipse.org/legal/epl-v10.html<br />
				</div> The company name must be adjusted if necessary.
			</li>
		</ul>
		You can use HTML tags in all tabs. Use this possibility to improve
		the readability of your texts.
	</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>
</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(
      // status changed callback
      createTwitterWidget,
      // init finished callback
      createTwitterWidget
    )
  })(window)
</script>
</body>
</html>