<!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>Are you still manually coding UIs?</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>
		<!-- CONTENT -->
		<div class="content">
			<div class="row-fluid">
				<p class="span4">
					The EMF Client Platform is a framework for building EMF-based
					client applications. The goal is to provide reusable, adaptable and
					extensible UI components to develop applications based on a given
					EMF model. All components can be used stand-alone and be embedded
					into your own application. To get started, ECP provides a demo
					application, which integrates all provided components. This demo
					application allows you to get started by only providing your EMF
					model. </br>
					<b style="color: #ff4036">Looking for EMF Forms please see <a
						href="http://eclipse.org/ecp/emfforms">here</a>.
					</b>
				</p>

				<div class="span8">
					<div id="carousel" class="carousel slide">
						<ol class="carousel-indicators">
							<li data-target="#carousel" data-slide-to="0" class="active"></li>
							<li data-target="#carousel" data-slide-to="1"></li>
							<li data-target="#carousel" data-slide-to="2"></li>
							<li data-target="#carousel" data-slide-to="3"></li>
							<li data-target="#carousel" data-slide-to="4"></li>
						</ol>
						<div class="carousel-inner">
							<div class="active item">
								<img src="public/images/application.png" />

								<div class="carousel-caption">
									<p class="lead">One-Click Application</p>
								</div>
							</div>
							<div class="item">
								<img src="public/images/editor.png" />

								<div class="carousel-caption">
									<p class="lead">Ready-to-use Editor</p>
								</div>
							</div>
							<div class="item">
								<img src="public/images/explorer.png" />

								<div class="carousel-caption">
									<p class="lead">Intuitive Explorer</p>
								</div>
							</div>
							<div class="item">
								<img src="public/images/repos.png" />

								<div class="carousel-caption">
									<p class="lead">Simple Management of Repositories</p>
								</div>
							</div>
							<div class="item">
								<img src="public/images/validation.png" />

								<div class="carousel-caption">
									<p class="lead">Live Validation</p>
								</div>
							</div>
						</div>
						<!-- Carousel nav -->
						<a class="carousel-control left" href="#carousel"
							data-slide="prev">&lsaquo;</a> <a class="carousel-control right"
							href="#carousel" data-slide="next">&rsaquo;</a>
					</div>
				</div>

			</div>
			<div class="row-fluid">
				<div class="span8">
					<div class="row-fluid">
						<div class="span6">
							<div class="feature">
								<h6>Form-Based UI (<a
            href="http://eclipse.org/ecp/emfforms">EMF Forms</a>)</h6>
								<ul>
									<li>Editing of all existing entities and their child
										elements</li>
									<li>Default Widgets for all existing data types</li>
									<li>UI Validation</li>
									<li>Extensible and adaptable</li>
									<li>UI can be expressed model-based</li>
									<li>Exchangable renderers (SWT, JavaFX, Web, ...)</li>
									<li class="no-bullets"><a href="#editor" role="button"
										data-toggle="modal">Details &raquo;</a> <!-- Modal -->
										<div id="editor" class="modal hide fade" tabindex="-1"
											role="dialog" aria-labelledby="editorLabel"
											aria-hidden="true">
											<div class="modal-header">
												<button type="button" class="close" data-dismiss="modal"
													aria-hidden="true">x</button>
												<h3 id="editorLabel">Editor</h3>
											</div>
											<div class="modal-body">
												<p>
													Many applications require to display and modify entities in
													a form-based UI. "<a href="http://eclipse.org/ecp/emfforms">EMF
														Forms</a>", a sub project of the EMF Client Platform provides
													support for this. <a href="http://eclipse.org/ecp/emfforms">EMF
														Forms</a> allows to render a form-based UI for a single entity
													or several entities. The form-based UI allows the
													modification of all attributes and references. By default,
													the UI is rendered reflectively, meaning you can open any
													entity of your application without any additional
													adaptations or code generation. If you add new entity types
													to your model, the <a
														href="http://eclipse.org/ecp/emfforms">EMF Forms</a> will
													still work out-of-the-box.
												</p>

												<p>
													<a href="http://eclipse.org/ecp/emfforms">EMF Forms</a> can
													be embedded into any kind of UI, even in dialogs. The demo
													application shows the integration of EMF Forms as an RCP
													editor.
												</p>

												<p>
													Additionally, the <a href="http://eclipse.org/ecp/emfforms">EMF
														Forms</a> shows the result of validation constraints. This
													way, users are informed about malformed data, e.g. a
													missing attribute.
												</p>

												<p>
													<a href="http://eclipse.org/ecp/emfforms">EMF Forms</a>
													highly customizable, it is possible to add custom
													components (widgets) for certain attributes or references.
													Additionally EMF Forms allows to customize the layout of
													the UI and include specific UI customizations, such as
													rule-based visibility of controls. Customizations can be
													expressed in a simple model and are interpreted by a
													rendering component. Therefore you do not have to manually
													write UI code. The approach is even independant from a UI
													toolkit, you can migrate your UI to JavaFX or to the Web
													just by replacing the renderer. <a
														href="http://eclipse.org/ecp/emfforms">EMF Forms</a>
													allows to customize and optimized form-based UIs for your
													application. As the relfective default UI still works for
													all elements you perform customization in small iterative
													steps. Please see <a href="http://eclipse.org/ecp/emfforms">here</a>
													for more information about EMF Forms.
												</p>
											</div>
											<div class="modal-footer">
												<button class="btn" data-dismiss="modal" aria-hidden="true">Good
													stuff!</button>
											</div>
										</div></li>
								</ul>
							</div>
						</div>
						<div class="span6">
							<div class="feature">
								<h6>One-Click Application</h6>
								<ul>
									<li>Demo application including all components</li>
									<li>Enables quick prototyping</li>
									<li>No additional coding or code generation</li>
									<li>Requires only an EMF Model</li>
									<li>Launch your application in less than one minute</li>
									<li>Robust against data/model evolution</li>
									<li class="no-bullets"><a href="#oneClick" role="button"
										data-toggle="modal">Details &raquo;</a> <!-- Modal -->
										<div id="oneClick" class="modal hide fade" tabindex="-1"
											role="dialog" aria-labelledby="oneClickLabel"
											aria-hidden="true">
											<div class="modal-header">
												<button type="button" class="close" data-dismiss="modal"
													aria-hidden="true">x</button>
												<h3 id="oneClickLabel">One Click Applications</h3>
											</div>
											<div class="modal-body">
												<p>EMF enables the automatic generation of the entity
													model for an application. Additionally, EMF provides
													frameworks for a variety of tasks, e.g., to store and
													collaboratively work on these entities. However, creating a
													user interface for browsing and modifying entities based on
													an EMF model still requires a lot of manual work. The same
													is true for the integration of different storage
													technologies.</p>

												<p>The EMF Client Platform enables you to set up the
													first version of your own application in less than one
													minute, just by providing your entity model in EMF. In
													contrast to the generated editor of EMF, the EMF Client
													Platform provides not only a generic UI but a highly
													extensible and adaptable UI to create, modify and share EMF
													model instances. No manual coding or code generation is
													required. As a prerequisite, you only need to provide an
													EMF model plugin describing the entity objects of your
													application as well as the corresponding edit plugin - both
													generated from your EMF Ecore model. The EMF Client
													Platform is able to render its UI reflectively, based only
													on the information contained in the model.</p>
												Since the EMF Client Platform provides a reflective UI, the
												resulting application is robust against a change in the data
												model. That means you can evolve the underlying data model
												without any manual adaptations of the UI. Based on the
												provided application, the EMF Client Platform is highly
												customizable. It allows to iteratively add custom pieces to
												the already running application. Therefore it enables you to
												develop an application in a very agile manner, maintain a
												shippable application at any point in time and focus only on
												the things you want to adapt.
												</p>
											</div>
											<div class="modal-footer">
												<button class="btn" data-dismiss="modal" aria-hidden="true">Cool!</button>
											</div>
										</div></li>
								</ul>
							</div>
						</div>
						<!--/span6-->

					</div>
					<!--/row-->
					<div class="row-fluid">
						<div class="span6">
							<div class="feature">
								<h6>Explorer</h6>
								<ul>
									<li>Displays all entities in a hierarchy</li>
									<li>Allows to create, group, move and delete entities</li>
									<li>Works out-of-the-box</li>
									<li>Iteratively Customizable</li>
									<li class="no-bullets"><a href="#explorer" role="button"
										data-toggle="modal">Details &raquo;</a> <!-- Modal -->
										<div id="explorer" class="modal hide fade" tabindex="-1"
											role="dialog" aria-labelledby="explorerLabel"
											aria-hidden="true">
											<div class="modal-header">
												<button type="button" class="close" data-dismiss="modal"
													aria-hidden="true">x</button>
												<h3 id="explorerLabel">Explorer</h3>
											</div>
											<div class="modal-body">
												<p>The explorer of the EMF Client Platform provides an
													hierarchical overview of all entities existing in an
													application. It also allows to create projects, grouping
													the data of your application. Within projects, the explorer
													allows the creation of entities and sub-entities. These
													entities can be moved via drag and drop and opened in the
													editor with a double click.</p>

												<p>All features of the explorer are just based on the
													description of your application data, therefore no
													additional efforts are required to use the explorer for
													your application. However, the look of the displayed
													elements and the hierarchy of displayed elements can be
													highly customized to fit your needs.</p>
											</div>
											<div class="modal-footer">
												<button class="btn" data-dismiss="modal" aria-hidden="true">Nice!</button>
											</div>
										</div></li>
								</ul>
							</div>
						</div>

						<!--/span-->
						<div class="span6">
							<div class="feature">
								<h6>Persistence</h6>
								<ul>
									<li>Pre-configured, extensible persistence layer</li>
									<li>Exchangeable backends</li>
									<li>Server and Repository support</li>
									<li>Built-In Support for files, EMFStore and CDO</li>
									<li class="no-bullets"><a href="#persistence"
										role="button" data-toggle="modal">Details &raquo;</a> <!-- Modal -->
										<div id="persistence" class="modal hide fade" tabindex="-1"
											role="dialog" aria-labelledby="persistenceLabel"
											aria-hidden="true">
											<div class="modal-header">
												<button type="button" class="close" data-dismiss="modal"
													aria-hidden="true">x</button>
												<h3 id="persistenceLabel">Persistence</h3>
											</div>
											<div class="modal-body">
												<p>The EMF Client Platform provides a pre-configured
													persistence layer to store the data of your application. It
													allows the usage of different data providers to store your
													data based on your requirements. The platform already ships
													with different data provider implementations to store your
													data in files or in server solutions (repositories) such as
													EMFStore or CDO. Therefore a repository view is provided
													allowing to configure and manage different servers.</p>

												<p>Finally the EMF Client Platform is extensible by new
													custom data providers to integrate an existing or custom
													backend technology.</p>
											</div>
											<div class="modal-footer">
												<button class="btn" data-dismiss="modal" aria-hidden="true">Awesome!</button>
											</div>
										</div></li>
								</ul>
							</div>
						</div>
						<!--/span-->

					</div>
					<!--/row-->
					<div class="row-fluid">
						<div class="span6">
							<div class="feature">
								<h6>Extensibility and Adaptability</h6>
								<ul>
									<li>Many points for customization</li>
									<li>Iterativ adaptations</li>
									<li>Shippable application at any time</li>
									<li class="no-bullets">&nbsp;</li>
									<li class="no-bullets"><a href="#extensibility"
										role="button" data-toggle="modal">Details &raquo;</a> <!-- Modal -->
										<div id="extensibility" class="modal hide fade" tabindex="-1"
											role="dialog" aria-labelledby="extensibilityLabel"
											aria-hidden="true">
											<div class="modal-header">
												<button type="button" class="close" data-dismiss="modal"
													aria-hidden="true">x</button>
												<h3 id="extensibilityLabel">Extensibility</h3>
											</div>
											<div class="modal-body">
												<p>The EMF Client Platform creates a running application
													just by providing an data model to it. This application
													serves as a good starting point for development. However,
													most scenarios require adaptation of this default
													application in some places. Many adaptations just require
													adaptation of the underlying data model itself. However,
													some adaptations require custom implementations. Therefore
													the EMF Client Platform offers various extension points.
													This allows you to implement small pieces and iteratively
													plug them into the running application. However, your
													application always remains shippable as you can very
													selectively replace components and iteratively embed your
													custom components into the continuously runnable
													application.</p>
											</div>
											<div class="modal-footer">
												<button class="btn" data-dismiss="modal" aria-hidden="true">Great!</button>
											</div>
										</div></li>
								</ul>
							</div>
						</div>
						<!--/span-->
						<div class="span6">
							<div class="feature">
								<h6>Reusable Components</h6>
								<ul>
									<li>Highly modular architecture</li>
									<li>Avoid unwanted dependencies</li>
									<li>Re-Use single components</li>
									<li class="no-bullets">&nbsp;</li>
									<li class="no-bullets"><a href="#reusability"
										role="button" data-toggle="modal">Details &raquo;</a> <!-- Modal -->
										<div id="reusability" class="modal hide fade" tabindex="-1"
											role="dialog" aria-labelledby="reusabilityLabel"
											aria-hidden="true">
											<div class="modal-header">
												<button type="button" class="close" data-dismiss="modal"
													aria-hidden="true">x</button>
												<h3 id="reusabilityLabel">Reusability</h3>
											</div>
											<div class="modal-body">
												<p>The EMF Client Platform provides a fully functional
													and integrated application. However, the architecture is
													highly modular and consists of many small and re-usable
													pieces. Therefore you can chose, which parts of the
													platform you want to apply in your projects and which not.
													As an example you can re-use the editor without the
													navigator, you can only re-use the persistence layer
													without any UI components or you can just rely on some of
													the provided dialogs. In any case you avoid the
													re-implementations of generic components saving the effort
													for valuable components.</p>
											</div>
											<div class="modal-footer">
												<button class="btn" data-dismiss="modal" aria-hidden="true">Sounds
													good!</button>
											</div>
										</div></li>
								</ul>
							</div>

						</div>

					</div>
				</div>

				<div class="span4" style="padding: 1em">
					<a class="twitter-timeline"
						href="https://twitter.com/search?q=%23emfcp" height="525"
						data-widget-id="344734102089510912">Tweets about "#emfcp"</a>
					<script>
						!function(d, s, id) {
							var js, fjs = d.getElementsByTagName(s)[0], p = /^http:/
									.test(d.location) ? 'http' : 'https';
							if (!d.getElementById(id)) {
								js = d.createElement(s);
								js.id = id;
								js.src = p
										+ "://platform.twitter.com/widgets.js";
								fjs.parentNode.insertBefore(js, fjs);
							}
						}(document, "script", "twitter-wjs");
					</script>


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