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