diff --git a/extra/org.eclipse.emf.ecp.application.e4/.classpath b/extra/org.eclipse.emf.ecp.application.e4/.classpath
new file mode 100644
index 0000000..ad32c83
--- /dev/null
+++ b/extra/org.eclipse.emf.ecp.application.e4/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/extra/org.eclipse.emf.ecp.application.e4/.project b/extra/org.eclipse.emf.ecp.application.e4/.project
new file mode 100644
index 0000000..e570693
--- /dev/null
+++ b/extra/org.eclipse.emf.ecp.application.e4/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.emf.ecp.application.e4</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
diff --git a/extra/org.eclipse.emf.ecp.application.e4/.settings/org.eclipse.jdt.core.prefs b/extra/org.eclipse.emf.ecp.application.e4/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..c537b63
--- /dev/null
+++ b/extra/org.eclipse.emf.ecp.application.e4/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6
diff --git a/extra/org.eclipse.emf.ecp.application.e4/.settings/org.eclipse.pde.core.prefs b/extra/org.eclipse.emf.ecp.application.e4/.settings/org.eclipse.pde.core.prefs
new file mode 100644
index 0000000..f29e940
--- /dev/null
+++ b/extra/org.eclipse.emf.ecp.application.e4/.settings/org.eclipse.pde.core.prefs
@@ -0,0 +1,3 @@
+eclipse.preferences.version=1
+pluginProject.extensions=false
+resolve.requirebundle=false
diff --git a/extra/org.eclipse.emf.ecp.application.e4/Application.e4xmi b/extra/org.eclipse.emf.ecp.application.e4/Application.e4xmi
new file mode 100644
index 0000000..ae99994
--- /dev/null
+++ b/extra/org.eclipse.emf.ecp.application.e4/Application.e4xmi
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<application:Application xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:application="http://www.eclipse.org/ui/2010/UIModel/application" xmlns:basic="http://www.eclipse.org/ui/2010/UIModel/application/ui/basic" xmlns:menu="http://www.eclipse.org/ui/2010/UIModel/application/ui/menu" xmi:id="_0JoRAJgREeKJoJcmiy2C6w" elementId="org.eclipse.e4.ide.application">
+  <children xsi:type="basic:TrimmedWindow" xmi:id="_0JoRAZgREeKJoJcmiy2C6w" label="org.eclipse.emf.ecp.e4.application" width="500" height="400">
+    <children xsi:type="basic:PartSashContainer" xmi:id="_AErb0JgUEeKJoJcmiy2C6w" elementId="org.eclipse.emf.ecp.e4.application.partsashcontainer.1" selectedElement="_lM0okJgTEeKJoJcmiy2C6w">
+      <children xsi:type="basic:PartSashContainer" xmi:id="_lM0okJgTEeKJoJcmiy2C6w" elementId="org.eclipse.emf.ecp.e4.application.partsashcontainer.0" horizontal="true">
+        <children xsi:type="basic:PartStack" xmi:id="_8GAbsJoUEeKJoJcmiy2C6w" elementId="org.eclipse.emf.ecp.e4.application.partstack.2">
+          <children xsi:type="basic:Part" xmi:id="_nOXCgJgTEeKJoJcmiy2C6w" elementId="org.eclipse.emf.ecp.e4.application.part.navigator" contributionURI="bundleclass://org.eclipse.emf.ecp.application.e4/org.eclipse.emf.ecp.e4.view.ECPModelView" label="Model Navigator" closeable="true">
+            <menus xsi:type="menu:PopupMenu" xmi:id="_dAsF4JgZEeKJoJcmiy2C6w" elementId="org.eclipse.emf.ecp.e4.application.popupmenu.navigator" label="Navigator menu">
+              <children xsi:type="menu:HandledMenuItem" xmi:id="_ibQRIJgZEeKJoJcmiy2C6w" elementId="org.eclipse.emf.ecp.e4.application.handledmenuitem.newProject" label="New Project" command="_ogB3AJgZEeKJoJcmiy2C6w"/>
+              <children xsi:type="menu:HandledMenuItem" xmi:id="_c1wWwJoSEeKJoJcmiy2C6w" elementId="org.eclipse.emf.ecp.e4.application.handledmenuitem.project.newModelElement" label="New Model Element" command="_StwzEJoSEeKJoJcmiy2C6w"/>
+              <children xsi:type="menu:HandledMenuItem" xmi:id="_eu6RsJrLEeKJoJcmiy2C6w" elementId="org.eclipse.emf.ecp.e4.application.handledmenuitem.0"/>
+            </menus>
+            <toolbar xmi:id="_uWMcwJoUEeKJoJcmiy2C6w" elementId="org.eclipse.emf.ecp.e4.application.toolbar.0">
+              <children xsi:type="menu:HandledToolItem" xmi:id="_CPQPoJrKEeKJoJcmiy2C6w" elementId="org.eclipse.emf.ecp.e4.application.handledtoolitem.1" command="_ogB3AJgZEeKJoJcmiy2C6w"/>
+            </toolbar>
+          </children>
+        </children>
+        <children xsi:type="basic:PartStack" xmi:id="_nrd1QJgTEeKJoJcmiy2C6w" elementId="org.eclipse.emf.ecp.e4.application.partstack.0">
+          <tags>editorPart</tags>
+        </children>
+      </children>
+      <children xsi:type="basic:PartStack" xmi:id="_wpiYYJoUEeKJoJcmiy2C6w" elementId="org.eclipse.emf.ecp.e4.application.partstack.1">
+        <children xsi:type="basic:Part" xmi:id="_CJd-EJgUEeKJoJcmiy2C6w" elementId="org.eclipse.emf.ecp.e4.application.part.repository" contributionURI="bundleclass://org.eclipse.emf.ecp.application.e4/org.eclipse.emf.ecp.e4.view.ECPRepositoryView" label="Repository View">
+          <menus xsi:type="menu:PopupMenu" xmi:id="_WzCwgJgcEeKJoJcmiy2C6w" elementId="org.eclipse.emf.ecp.e4.application.popupmenu.repository" label="Repo Popup">
+            <children xsi:type="menu:HandledMenuItem" xmi:id="_bKyM0JgcEeKJoJcmiy2C6w" elementId="org.eclipse.emf.ecp.e4.application.handledmenuitem.checkout" label="Checkout" iconURI="platform:/plugin/org.eclipse.emf.ecp.e4.application/icons/sample.gif" command="_eOWrgJgcEeKJoJcmiy2C6w"/>
+          </menus>
+        </children>
+      </children>
+    </children>
+    <trimBars xmi:id="_MWSIoJgaEeKJoJcmiy2C6w" elementId="org.eclipse.emf.ecp.e4.application.trimbar.0">
+      <children xsi:type="menu:ToolBar" xmi:id="_M4bMYJgaEeKJoJcmiy2C6w" elementId="org.eclipse.emf.ecp.e4.application.toolbar.1">
+        <children xsi:type="menu:HandledToolItem" xmi:id="_N5wtkJgaEeKJoJcmiy2C6w" elementId="org.eclipse.emf.ecp.e4.application.handledtoolitem.0" label="New Project" command="_ogB3AJgZEeKJoJcmiy2C6w"/>
+      </children>
+    </trimBars>
+  </children>
+  <handlers xmi:id="_q5IcYJgZEeKJoJcmiy2C6w" elementId="org.eclipse.emf.ecp.e4.application.handler.newProject" contributionURI="bundleclass://org.eclipse.emf.ecp.application.e4/org.eclipse.emf.ecp.e4.handlers.NewProjectHandler" command="_ogB3AJgZEeKJoJcmiy2C6w"/>
+  <handlers xmi:id="_fb0kMJgcEeKJoJcmiy2C6w" elementId="org.eclipse.emf.ecp.e4.application.handler.checkoutProject" contributionURI="bundleclass://org.eclipse.emf.ecp.application.e4/org.eclipse.emf.ecp.e4.handlers.CheckoutProjectHandler" command="_eOWrgJgcEeKJoJcmiy2C6w"/>
+  <handlers xmi:id="_XchBMJoSEeKJoJcmiy2C6w" elementId="org.eclipse.emf.ecp.e4.application.handler.project.newModelElement" contributionURI="bundleclass://org.eclipse.emf.ecp.application.e4/org.eclipse.emf.ecp.e4.handlers.NewModelElementHandler" command="_StwzEJoSEeKJoJcmiy2C6w"/>
+  <descriptors xmi:id="_5aBzoJgREeKJoJcmiy2C6w" elementId="org.eclipse.emf.ecp.e4.application.partdescriptor.editor" label="Editor" tooltip="Editor" allowMultiple="true" category="editorPart" closeable="true" contributionURI="bundleclass://org.eclipse.emf.ecp.application.e4/org.eclipse.emf.ecp.e4.editor.ECPE4Editor"/>
+  <commands xmi:id="_ogB3AJgZEeKJoJcmiy2C6w" elementId="org.eclipse.emf.ecp.e4.application.command.newProject" commandName="New Project"/>
+  <commands xmi:id="_eOWrgJgcEeKJoJcmiy2C6w" elementId="org.eclipse.emf.ecp.e4.application.command.checkoutProject" commandName="Checkout"/>
+  <commands xmi:id="_StwzEJoSEeKJoJcmiy2C6w" elementId="org.eclipse.emf.ecp.e4.application.command.project.newModelElement" commandName="New Model element"/>
+  <commands xmi:id="_X2_JIJoyEeKJoJcmiy2C6w" elementId="org.eclipse.emf.ecp.e4.application.command.repository.emfstore.login" commandName="New Model element"/>
+  <addons xmi:id="_0JoRApgREeKJoJcmiy2C6w" elementId="org.eclipse.e4.core.commands.service" contributionURI="bundleclass://org.eclipse.e4.core.commands/org.eclipse.e4.core.commands.CommandServiceAddon"/>
+  <addons xmi:id="_0JoRA5gREeKJoJcmiy2C6w" elementId="org.eclipse.e4.ui.contexts.service" contributionURI="bundleclass://org.eclipse.e4.ui.services/org.eclipse.e4.ui.services.ContextServiceAddon"/>
+  <addons xmi:id="_0JoRBJgREeKJoJcmiy2C6w" elementId="org.eclipse.e4.ui.bindings.service" contributionURI="bundleclass://org.eclipse.e4.ui.bindings/org.eclipse.e4.ui.bindings.BindingServiceAddon"/>
+  <addons xmi:id="_0JoRBZgREeKJoJcmiy2C6w" elementId="org.eclipse.e4.ui.workbench.commands.model" contributionURI="bundleclass://org.eclipse.e4.ui.workbench/org.eclipse.e4.ui.internal.workbench.addons.CommandProcessingAddon"/>
+  <addons xmi:id="_0JoRBpgREeKJoJcmiy2C6w" elementId="org.eclipse.e4.ui.workbench.contexts.model" contributionURI="bundleclass://org.eclipse.e4.ui.workbench/org.eclipse.e4.ui.internal.workbench.addons.ContextProcessingAddon"/>
+  <addons xmi:id="_0JoRB5gREeKJoJcmiy2C6w" elementId="org.eclipse.e4.ui.workbench.bindings.model" contributionURI="bundleclass://org.eclipse.e4.ui.workbench.swt/org.eclipse.e4.ui.workbench.swt.util.BindingProcessingAddon"/>
+</application:Application>
diff --git a/extra/org.eclipse.emf.ecp.application.e4/META-INF/MANIFEST.MF b/extra/org.eclipse.emf.ecp.application.e4/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..1d14705
--- /dev/null
+++ b/extra/org.eclipse.emf.ecp.application.e4/META-INF/MANIFEST.MF
@@ -0,0 +1,32 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: ECP e4 Application
+Bundle-SymbolicName: org.eclipse.emf.ecp.application.e4;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-Activator: org.eclipse.emf.ecp.e4.application.Activator
+Require-Bundle: javax.inject;bundle-version="1.0.0",
+ org.eclipse.core.runtime;bundle-version="3.8.0",
+ org.eclipse.swt;bundle-version="3.100.1",
+ org.eclipse.core.databinding;bundle-version="1.4.1",
+ org.eclipse.core.databinding.beans;bundle-version="1.2.200",
+ org.eclipse.jface;bundle-version="3.8.101",
+ org.eclipse.jface.databinding;bundle-version="1.6.0",
+ org.eclipse.e4.ui.services;bundle-version="0.10.2",
+ org.eclipse.e4.ui.workbench;bundle-version="0.10.3",
+ org.eclipse.e4.core.services;bundle-version="1.0.0",
+ org.eclipse.e4.core.di;bundle-version="1.1.0",
+ org.eclipse.e4.ui.di;bundle-version="0.10.1",
+ org.eclipse.e4.core.contexts;bundle-version="1.1.0",
+ org.eclipse.e4.ui.workbench.swt;bundle-version="0.10.2",
+ org.eclipse.core.databinding.property;bundle-version="1.4.100",
+ org.eclipse.e4.ui.css.core;bundle-version="0.10.2",
+ org.w3c.css.sac;bundle-version="1.3.1",
+ org.eclipse.e4.core.commands;bundle-version="0.10.1",
+ org.eclipse.e4.ui.bindings;bundle-version="0.10.1",
+ org.eclipse.emf.ecp.editor;bundle-version="1.0.0",
+ org.eclipse.emf.ecp.ui;bundle-version="1.0.0"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Import-Package: javax.annotation;version="1.0.0",
+ org.eclipse.emf.ecp.explorereditorbridge.internal;version="1.0.0",
+ org.osgi.framework;version="1.3.0"
+Bundle-ActivationPolicy: lazy
diff --git a/extra/org.eclipse.emf.ecp.application.e4/build.properties b/extra/org.eclipse.emf.ecp.application.e4/build.properties
new file mode 100644
index 0000000..25bc7a6
--- /dev/null
+++ b/extra/org.eclipse.emf.ecp.application.e4/build.properties
@@ -0,0 +1,7 @@
+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               plugin.xml,\
+               Application.e4xmi,\
+               css/default.css
+source.. = src/
diff --git a/extra/org.eclipse.emf.ecp.application.e4/css/default.css b/extra/org.eclipse.emf.ecp.application.e4/css/default.css
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/extra/org.eclipse.emf.ecp.application.e4/css/default.css
diff --git a/extra/org.eclipse.emf.ecp.application.e4/icons/sample.gif b/extra/org.eclipse.emf.ecp.application.e4/icons/sample.gif
new file mode 100644
index 0000000..34fb3c9
--- /dev/null
+++ b/extra/org.eclipse.emf.ecp.application.e4/icons/sample.gif
Binary files differ
diff --git a/extra/org.eclipse.emf.ecp.application.e4/icons/save_edit.gif b/extra/org.eclipse.emf.ecp.application.e4/icons/save_edit.gif
new file mode 100644
index 0000000..499dd0c
--- /dev/null
+++ b/extra/org.eclipse.emf.ecp.application.e4/icons/save_edit.gif
Binary files differ
diff --git a/extra/org.eclipse.emf.ecp.application.e4/org.eclipse.emf.ecp.e4.application.product b/extra/org.eclipse.emf.ecp.application.e4/org.eclipse.emf.ecp.e4.application.product
new file mode 100644
index 0000000..42bbb72
--- /dev/null
+++ b/extra/org.eclipse.emf.ecp.application.e4/org.eclipse.emf.ecp.e4.application.product
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?pde version="3.5"?>
+
+<product name="org.eclipse.emf.ecp.e4.application" uid="org.eclipse.emf.ecp.e4.application.demo" id="org.eclipse.emf.ecp.e4.application.product" application="org.eclipse.e4.ui.workbench.swt.E4Application" version="1.0.0.qualifier" useFeatures="false" includeLaunchers="true">
+
+   <configIni use="default">
+   </configIni>
+
+   <launcherArgs>
+      <programArgs>-clearPersistedState</programArgs>
+      <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</vmArgsMac>
+   </launcherArgs>
+
+   <windowImages/>
+
+   <plugins>
+      <plugin id="com.ibm.icu"/>
+      <plugin id="javax.annotation"/>
+      <plugin id="javax.inject"/>
+      <plugin id="javax.xml"/>
+      <plugin id="org.apache.batik.css"/>
+      <plugin id="org.apache.batik.util"/>
+      <plugin id="org.apache.batik.util.gui"/>
+      <plugin id="org.apache.commons.logging"/>
+      <plugin id="org.eclipse.core.commands"/>
+      <plugin id="org.eclipse.core.contenttype"/>
+      <plugin id="org.eclipse.core.databinding"/>
+      <plugin id="org.eclipse.core.databinding.beans"/>
+      <plugin id="org.eclipse.core.databinding.observable"/>
+      <plugin id="org.eclipse.core.databinding.property"/>
+      <plugin id="org.eclipse.core.expressions"/>
+      <plugin id="org.eclipse.core.filesystem"/>
+      <plugin id="org.eclipse.core.filesystem.aix.ppc" fragment="true"/>
+      <plugin id="org.eclipse.core.filesystem.hpux.ia64_32" fragment="true"/>
+      <plugin id="org.eclipse.core.filesystem.linux.ppc" fragment="true"/>
+      <plugin id="org.eclipse.core.filesystem.linux.x86" fragment="true"/>
+      <plugin id="org.eclipse.core.filesystem.linux.x86_64" fragment="true"/>
+      <plugin id="org.eclipse.core.filesystem.macosx" fragment="true"/>
+      <plugin id="org.eclipse.core.filesystem.solaris.sparc" fragment="true"/>
+      <plugin id="org.eclipse.core.filesystem.win32.x86" fragment="true"/>
+      <plugin id="org.eclipse.core.filesystem.win32.x86_64" fragment="true"/>
+      <plugin id="org.eclipse.core.jobs"/>
+      <plugin id="org.eclipse.core.resources"/>
+      <plugin id="org.eclipse.core.resources.win32.x86" fragment="true"/>
+      <plugin id="org.eclipse.core.runtime"/>
+      <plugin id="org.eclipse.core.runtime.compatibility.registry" fragment="true"/>
+      <plugin id="org.eclipse.e4.core.commands"/>
+      <plugin id="org.eclipse.e4.core.contexts"/>
+      <plugin id="org.eclipse.e4.core.di"/>
+      <plugin id="org.eclipse.e4.core.di.extensions"/>
+      <plugin id="org.eclipse.e4.core.services"/>
+      <plugin id="org.eclipse.e4.ui.bindings"/>
+      <plugin id="org.eclipse.e4.ui.css.core"/>
+      <plugin id="org.eclipse.e4.ui.css.swt"/>
+      <plugin id="org.eclipse.e4.ui.css.swt.theme"/>
+      <plugin id="org.eclipse.e4.ui.di"/>
+      <plugin id="org.eclipse.e4.ui.model.workbench"/>
+      <plugin id="org.eclipse.e4.ui.services"/>
+      <plugin id="org.eclipse.e4.ui.widgets"/>
+      <plugin id="org.eclipse.e4.ui.workbench"/>
+      <plugin id="org.eclipse.e4.ui.workbench.renderers.swt"/>
+      <plugin id="org.eclipse.e4.ui.workbench.renderers.swt.cocoa" fragment="true"/>
+      <plugin id="org.eclipse.e4.ui.workbench.swt"/>
+      <plugin id="org.eclipse.e4.ui.workbench3"/>
+      <plugin id="org.eclipse.emf.common"/>
+      <plugin id="org.eclipse.emf.databinding"/>
+      <plugin id="org.eclipse.emf.databinding.edit"/>
+      <plugin id="org.eclipse.emf.ecore"/>
+      <plugin id="org.eclipse.emf.ecore.change"/>
+      <plugin id="org.eclipse.emf.ecore.xmi"/>
+      <plugin id="org.eclipse.emf.ecp.e4.application"/>
+      <plugin id="org.eclipse.emf.ecp.edit"/>
+      <plugin id="org.eclipse.emf.ecp.editor"/>
+      <plugin id="org.eclipse.emf.edit"/>
+      <plugin id="org.eclipse.equinox.app"/>
+      <plugin id="org.eclipse.equinox.common"/>
+      <plugin id="org.eclipse.equinox.concurrent"/>
+      <plugin id="org.eclipse.equinox.ds"/>
+      <plugin id="org.eclipse.equinox.event"/>
+      <plugin id="org.eclipse.equinox.preferences"/>
+      <plugin id="org.eclipse.equinox.registry"/>
+      <plugin id="org.eclipse.equinox.servletbridge.extensionbundle" fragment="true"/>
+      <plugin id="org.eclipse.equinox.transforms.hook" fragment="true"/>
+      <plugin id="org.eclipse.equinox.util"/>
+      <plugin id="org.eclipse.equinox.weaving.hook" fragment="true"/>
+      <plugin id="org.eclipse.help"/>
+      <plugin id="org.eclipse.jface"/>
+      <plugin id="org.eclipse.jface.databinding"/>
+      <plugin id="org.eclipse.osgi"/>
+      <plugin id="org.eclipse.osgi.services"/>
+      <plugin id="org.eclipse.swt"/>
+      <plugin id="org.eclipse.swt.carbon.macosx" fragment="true"/>
+      <plugin id="org.eclipse.swt.cocoa.macosx" fragment="true"/>
+      <plugin id="org.eclipse.swt.cocoa.macosx.x86_64" fragment="true"/>
+      <plugin id="org.eclipse.swt.gtk.aix.ppc" fragment="true"/>
+      <plugin id="org.eclipse.swt.gtk.aix.ppc64" fragment="true"/>
+      <plugin id="org.eclipse.swt.gtk.hpux.ia64_32" fragment="true"/>
+      <plugin id="org.eclipse.swt.gtk.linux.ppc" fragment="true"/>
+      <plugin id="org.eclipse.swt.gtk.linux.ppc64" fragment="true"/>
+      <plugin id="org.eclipse.swt.gtk.linux.s390" fragment="true"/>
+      <plugin id="org.eclipse.swt.gtk.linux.s390x" fragment="true"/>
+      <plugin id="org.eclipse.swt.gtk.linux.x86" fragment="true"/>
+      <plugin id="org.eclipse.swt.gtk.linux.x86_64" fragment="true"/>
+      <plugin id="org.eclipse.swt.gtk.solaris.sparc" fragment="true"/>
+      <plugin id="org.eclipse.swt.gtk.solaris.x86" fragment="true"/>
+      <plugin id="org.eclipse.swt.motif.aix.ppc" fragment="true"/>
+      <plugin id="org.eclipse.swt.motif.hpux.ia64_32" fragment="true"/>
+      <plugin id="org.eclipse.swt.motif.linux.x86" fragment="true"/>
+      <plugin id="org.eclipse.swt.motif.solaris.sparc" fragment="true"/>
+      <plugin id="org.eclipse.swt.photon.qnx.x86" fragment="true"/>
+      <plugin id="org.eclipse.swt.win32.win32.x86" fragment="true"/>
+      <plugin id="org.eclipse.swt.win32.win32.x86_64" fragment="true"/>
+      <plugin id="org.eclipse.ui.workbench"/>
+      <plugin id="org.w3c.css.sac"/>
+      <plugin id="org.w3c.dom.smil"/>
+      <plugin id="org.w3c.dom.svg"/>
+   </plugins>
+
+
+</product>
diff --git a/extra/org.eclipse.emf.ecp.application.e4/plugin.xml b/extra/org.eclipse.emf.ecp.application.e4/plugin.xml
new file mode 100644
index 0000000..ee30a0b
--- /dev/null
+++ b/extra/org.eclipse.emf.ecp.application.e4/plugin.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<plugin>
+
+   <extension
+         id="product"
+         point="org.eclipse.core.runtime.products">
+      <product
+            name="org.eclipse.emf.ecp.e4.application"
+            application="org.eclipse.e4.ui.workbench.swt.E4Application">
+         <property
+               name="clearPersistedState"
+               value="true">
+         </property>
+         <property
+               name="applicationCSS"
+               value="platform:/plugin/org.eclipse.emf.ecp.e4.application/css/default.css">
+         </property>
+         <property
+               name="appName"
+               value="org.eclipse.emf.ecp.e4.application">
+         </property>
+      </product>
+   </extension>
+   <extension
+         point="org.eclipse.emf.ecp.ui.modelElementOpener">
+      <ModelElementOpener
+            class="org.eclipse.emf.ecp.e4.editor.E4ModelElementOpener"
+            name="org.eclipse.emf.ecp.e4.application.ModelElementOpener">
+         <staticTester
+               modelElement="org.eclipse.emf.ecore.EObject"
+               priority="2">
+         </staticTester>
+      </ModelElementOpener>
+   </extension>
+
+</plugin>
diff --git a/extra/org.eclipse.emf.ecp.application.e4/src/org/eclipse/emf/ecp/e4/application/Activator.java b/extra/org.eclipse.emf.ecp.application.e4/src/org/eclipse/emf/ecp/e4/application/Activator.java
new file mode 100644
index 0000000..990742a
--- /dev/null
+++ b/extra/org.eclipse.emf.ecp.application.e4/src/org/eclipse/emf/ecp/e4/application/Activator.java
@@ -0,0 +1,50 @@
+package org.eclipse.emf.ecp.e4.application;
+
+import java.util.Collection;
+
+import org.eclipse.e4.core.contexts.IContextFunction;
+import org.eclipse.e4.ui.internal.workbench.E4Workbench;
+import org.eclipse.e4.ui.services.EContextService;
+import org.eclipse.e4.ui.workbench.modeling.EPartService;
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.InvalidSyntaxException;
+import org.osgi.framework.ServiceReference;
+
+public class Activator implements BundleActivator {
+
+	private static BundleContext context;
+
+	static BundleContext getContext() {
+		return context;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
+	 */
+	public void start(BundleContext bundleContext) throws Exception {
+		Activator.context = bundleContext;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
+	 */
+	public void stop(BundleContext bundleContext) throws Exception {
+		Activator.context = null;
+	}
+	
+	public static EPartService getEPartService(){
+		try {
+			ServiceReference<?> service=context.getServiceReferences(IContextFunction.class.getName(),"(service.context.key="+EPartService.class.getName()+")")[0];
+			//TODO a "bit" ugly
+			return (EPartService) ((IContextFunction)context.getService(service)).compute(E4Workbench.getServiceContext());
+		} catch (InvalidSyntaxException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+		return null;
+	}
+
+}
diff --git a/extra/org.eclipse.emf.ecp.application.e4/src/org/eclipse/emf/ecp/e4/editor/E4ModelElementOpener.java b/extra/org.eclipse.emf.ecp.application.e4/src/org/eclipse/emf/ecp/e4/editor/E4ModelElementOpener.java
new file mode 100644
index 0000000..71957f4
--- /dev/null
+++ b/extra/org.eclipse.emf.ecp.application.e4/src/org/eclipse/emf/ecp/e4/editor/E4ModelElementOpener.java
@@ -0,0 +1,27 @@
+package org.eclipse.emf.ecp.e4.editor;
+
+import javax.inject.Inject;
+
+import org.eclipse.e4.core.contexts.ContextInjectionFactory;
+import org.eclipse.e4.core.di.annotations.Creatable;
+import org.eclipse.e4.ui.model.application.ui.basic.MPart;
+import org.eclipse.e4.ui.workbench.modeling.EPartService;
+import org.eclipse.e4.ui.workbench.modeling.EPartService.PartState;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecp.core.ECPProject;
+import org.eclipse.emf.ecp.e4.application.Activator;
+import org.eclipse.emf.ecp.ui.util.ECPModelElementOpener;
+
+
+public class E4ModelElementOpener implements ECPModelElementOpener {
+
+	@Override
+	public void openModelElement(Object modelElement, ECPProject ecpProject) {
+		
+//		Activator.getEContextService();
+		EPartService partService=Activator.getEPartService();
+		MPart part=partService.createPart("org.eclipse.emf.ecp.e4.application.partdescriptor.editor");
+		partService.showPart(part, PartState.ACTIVATE);
+	}
+
+}
diff --git a/extra/org.eclipse.emf.ecp.application.e4/src/org/eclipse/emf/ecp/e4/editor/ECPE4Editor.java b/extra/org.eclipse.emf.ecp.application.e4/src/org/eclipse/emf/ecp/e4/editor/ECPE4Editor.java
new file mode 100644
index 0000000..b8ae938
--- /dev/null
+++ b/extra/org.eclipse.emf.ecp.application.e4/src/org/eclipse/emf/ecp/e4/editor/ECPE4Editor.java
@@ -0,0 +1,37 @@
+package org.eclipse.emf.ecp.e4.editor;
+
+import javax.annotation.PostConstruct;
+import javax.inject.Inject;
+import javax.inject.Named;
+
+import org.eclipse.e4.core.di.annotations.Optional;
+import org.eclipse.e4.ui.services.IServiceConstants;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecp.core.ECPProject;
+import org.eclipse.emf.ecp.core.ECPProjectManager;
+import org.eclipse.emf.ecp.core.util.ECPUtil;
+import org.eclipse.emf.ecp.edit.ECPEditorContext;
+import org.eclipse.emf.ecp.editor.EditorFactory;
+import org.eclipse.emf.ecp.editor.IEditorCompositeProvider;
+import org.eclipse.emf.ecp.explorereditorbridge.internal.EditorContext;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+
+public class ECPE4Editor {
+
+	public ECPE4Editor(){
+		
+	}
+	
+	@PostConstruct
+	public void construct(Composite composite,@Named(IServiceConstants.ACTIVE_SELECTION) @Optional EObject modelElement){
+//		IEditorCompositeProvider compositeProvider=EditorFactory.INSTANCE.getEditorComposite(modelElementContext);
+//		Composite editorComposite=compositeProvider.createUI(composite);
+		if(modelElement==null)
+			return;
+		ECPEditorContext editorContext=new EditorContext(modelElement, ECPUtil.getECPProjectManager().getProject(modelElement), composite.getShell());
+		IEditorCompositeProvider editorPageContent = EditorFactory.INSTANCE.getEditorComposite(editorContext);
+		editorPageContent.createUI(composite);
+	}
+}
diff --git a/extra/org.eclipse.emf.ecp.application.e4/src/org/eclipse/emf/ecp/e4/handlers/CheckoutProjectHandler.java b/extra/org.eclipse.emf.ecp.application.e4/src/org/eclipse/emf/ecp/e4/handlers/CheckoutProjectHandler.java
new file mode 100644
index 0000000..073809d
--- /dev/null
+++ b/extra/org.eclipse.emf.ecp.application.e4/src/org/eclipse/emf/ecp/e4/handlers/CheckoutProjectHandler.java
@@ -0,0 +1,25 @@
+package org.eclipse.emf.ecp.e4.handlers;
+
+import java.util.Collections;
+
+import javax.inject.Named;
+
+import org.eclipse.e4.core.di.annotations.CanExecute;
+import org.eclipse.e4.core.di.annotations.Execute;
+import org.eclipse.e4.core.di.annotations.Optional;
+import org.eclipse.e4.ui.services.IServiceConstants;
+import org.eclipse.emf.ecp.core.util.ECPCheckoutSource;
+import org.eclipse.emf.ecp.internal.ui.util.ECPHandlerHelper;
+import org.eclipse.swt.widgets.Shell;
+
+public class CheckoutProjectHandler {
+
+	@Execute
+	public void execute(Shell shell,@Named(IServiceConstants.ACTIVE_SELECTION) @Optional ECPCheckoutSource checkoutSource){
+		ECPHandlerHelper.checkout(Collections.singletonList(checkoutSource), shell);
+	}
+	@CanExecute
+	public boolean canExecute(){
+		return true;
+	}
+}
diff --git a/extra/org.eclipse.emf.ecp.application.e4/src/org/eclipse/emf/ecp/e4/handlers/NewModelElementHandler.java b/extra/org.eclipse.emf.ecp.application.e4/src/org/eclipse/emf/ecp/e4/handlers/NewModelElementHandler.java
new file mode 100644
index 0000000..597d41a
--- /dev/null
+++ b/extra/org.eclipse.emf.ecp.application.e4/src/org/eclipse/emf/ecp/e4/handlers/NewModelElementHandler.java
@@ -0,0 +1,25 @@
+package org.eclipse.emf.ecp.e4.handlers;
+
+import javax.inject.Named;
+
+import org.eclipse.e4.core.di.annotations.CanExecute;
+import org.eclipse.e4.core.di.annotations.Execute;
+import org.eclipse.e4.core.di.annotations.Optional;
+import org.eclipse.e4.ui.services.IServiceConstants;
+import org.eclipse.emf.ecp.core.ECPProject;
+import org.eclipse.emf.ecp.internal.ui.util.ECPHandlerHelper;
+import org.eclipse.swt.widgets.Shell;
+
+public class NewModelElementHandler {
+
+	@Execute
+	public void execute(Shell shell,@Named(IServiceConstants.ACTIVE_SELECTION) @Optional ECPProject ecpProject){
+		if(ecpProject==null)
+			return;
+		ECPHandlerHelper.addModelElement(ecpProject, shell, false);
+	}
+	@CanExecute
+	public boolean canExecute(@Named(IServiceConstants.ACTIVE_SELECTION) @Optional ECPProject ecpProject){
+		return ecpProject!=null;
+	}
+}
diff --git a/extra/org.eclipse.emf.ecp.application.e4/src/org/eclipse/emf/ecp/e4/handlers/NewProjectHandler.java b/extra/org.eclipse.emf.ecp.application.e4/src/org/eclipse/emf/ecp/e4/handlers/NewProjectHandler.java
new file mode 100644
index 0000000..b7ea8c6
--- /dev/null
+++ b/extra/org.eclipse.emf.ecp.application.e4/src/org/eclipse/emf/ecp/e4/handlers/NewProjectHandler.java
@@ -0,0 +1,18 @@
+package org.eclipse.emf.ecp.e4.handlers;
+
+import org.eclipse.e4.core.di.annotations.CanExecute;
+import org.eclipse.e4.core.di.annotations.Execute;
+import org.eclipse.emf.ecp.internal.ui.util.ECPHandlerHelper;
+import org.eclipse.swt.widgets.Shell;
+
+public class NewProjectHandler {
+
+	@Execute
+	public void execute(Shell shell){
+		ECPHandlerHelper.createProject(shell);
+	}
+	@CanExecute
+	public boolean canExecute(){
+		return true;
+	}
+}
diff --git a/extra/org.eclipse.emf.ecp.application.e4/src/org/eclipse/emf/ecp/e4/view/ECPModelView.java b/extra/org.eclipse.emf.ecp.application.e4/src/org/eclipse/emf/ecp/e4/view/ECPModelView.java
new file mode 100644
index 0000000..61a1046
--- /dev/null
+++ b/extra/org.eclipse.emf.ecp.application.e4/src/org/eclipse/emf/ecp/e4/view/ECPModelView.java
@@ -0,0 +1,86 @@
+package org.eclipse.emf.ecp.e4.view;
+
+import javax.annotation.PostConstruct;
+import javax.annotation.PreDestroy;
+
+import org.eclipse.e4.ui.di.Focus;
+import org.eclipse.e4.ui.workbench.modeling.EPartService;
+import org.eclipse.e4.ui.workbench.modeling.ESelectionService;
+import org.eclipse.e4.ui.workbench.swt.modeling.EMenuService;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecp.core.ECPProject;
+import org.eclipse.emf.ecp.core.util.ECPContainer;
+import org.eclipse.emf.ecp.core.util.ECPUtil;
+import org.eclipse.emf.ecp.internal.ui.model.ModelContentProvider;
+import org.eclipse.emf.ecp.internal.ui.util.ECPHandlerHelper;
+import org.eclipse.emf.ecp.ui.common.TreeViewerFactory;
+import org.eclipse.jface.viewers.DoubleClickEvent;
+import org.eclipse.jface.viewers.IDoubleClickListener;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.swt.widgets.Composite;
+
+public class ECPModelView {
+
+	private TreeViewer modelExplorerTree;
+	private ModelContentProvider contentProvider;
+
+	public ECPModelView(){
+		
+	}
+	
+	@PostConstruct
+	public void create(Composite composite,EMenuService menuService,final ESelectionService selectionService,final EPartService partService){
+		modelExplorerTree = TreeViewerFactory.createModelExplorerViewer(composite, false, null);
+		menuService.registerContextMenu(modelExplorerTree.getTree(), "org.eclipse.emf.ecp.e4.application.popupmenu.navigator");
+		contentProvider=(ModelContentProvider) modelExplorerTree.getContentProvider();
+		modelExplorerTree.addDoubleClickListener(new IDoubleClickListener() {
+			
+			@Override
+			public void doubleClick(DoubleClickEvent event) {
+				if (event.getSelection() instanceof IStructuredSelection) {
+					IStructuredSelection structuredSelection = (IStructuredSelection) event.getSelection();
+					Object firstElement = structuredSelection.getFirstElement();
+					
+					if (firstElement instanceof ECPProject) {
+						ECPProject project = (ECPProject) firstElement;
+						if (!project.isOpen()) {
+							project.open();
+						}
+					}
+					else if (firstElement instanceof EObject) {
+						ECPContainer context = ECPUtil.getModelContext(contentProvider, structuredSelection.toArray());
+						ECPHandlerHelper.openModelElement(firstElement, (ECPProject) context);
+//						MPart part=partService.createPart("org.eclipse.emf.ecp.e4.application.partdescriptor.editor");
+//						part.setLabel(modelElement.eClass().getName());
+//						partService.showPart(part, PartState.ACTIVATE);
+					} 
+				}
+			}
+		});
+		modelExplorerTree.addSelectionChangedListener(new ISelectionChangedListener() {
+			
+			@Override
+			public void selectionChanged(SelectionChangedEvent event) {
+				ISelection selection=event.getSelection();
+				if(IStructuredSelection.class.isInstance(selection)){
+					IStructuredSelection structuredSelection=(IStructuredSelection) selection;
+					if(!structuredSelection.isEmpty()){
+						selectionService.setSelection(structuredSelection.getFirstElement());
+					}
+				}
+			}
+		});
+	}
+	@Focus
+	public void setFocus(){
+		modelExplorerTree.getTree().setFocus();
+	}
+	@PreDestroy
+	public void dispose(){
+		
+	}
+}
diff --git a/extra/org.eclipse.emf.ecp.application.e4/src/org/eclipse/emf/ecp/e4/view/ECPRepositoryView.java b/extra/org.eclipse.emf.ecp.application.e4/src/org/eclipse/emf/ecp/e4/view/ECPRepositoryView.java
new file mode 100644
index 0000000..c3f25a6
--- /dev/null
+++ b/extra/org.eclipse.emf.ecp.application.e4/src/org/eclipse/emf/ecp/e4/view/ECPRepositoryView.java
@@ -0,0 +1,59 @@
+package org.eclipse.emf.ecp.e4.view;
+
+import javax.annotation.PostConstruct;
+import javax.annotation.PreDestroy;
+
+import org.eclipse.e4.ui.di.Focus;
+import org.eclipse.e4.ui.workbench.modeling.ESelectionService;
+import org.eclipse.e4.ui.workbench.swt.modeling.EMenuService;
+import org.eclipse.emf.ecp.ui.common.TreeViewerFactory;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.swt.widgets.Composite;
+
+public class ECPRepositoryView {
+
+	private TreeViewer repositoryTree;
+
+	public ECPRepositoryView() {
+
+	}
+
+	@PostConstruct
+	public void create(Composite composite, EMenuService menuService,
+			final ESelectionService selectionService) {
+		repositoryTree = TreeViewerFactory.createRepositoryExplorerViewer(
+				composite, null);
+		menuService.registerContextMenu(repositoryTree.getTree(),
+				"org.eclipse.emf.ecp.e4.application.popupmenu.repository");
+		repositoryTree
+				.addSelectionChangedListener(new ISelectionChangedListener() {
+
+					@Override
+					public void selectionChanged(SelectionChangedEvent event) {
+						ISelection selection = event.getSelection();
+						if (IStructuredSelection.class.isInstance(selection)) {
+							IStructuredSelection structuredSelection = (IStructuredSelection) selection;
+							if (!structuredSelection.isEmpty()) {
+								selectionService
+										.setSelection(structuredSelection
+												.getFirstElement());
+							}
+						}
+					}
+				});
+	}
+
+	@Focus
+	public void setFocus() {
+		repositoryTree.getTree().setFocus();
+	}
+
+	@PreDestroy
+	public void dispose() {
+
+	}
+}
diff --git a/extra/org.eclipse.emf.ecp.emfstore.ui.e4/.classpath b/extra/org.eclipse.emf.ecp.emfstore.ui.e4/.classpath
new file mode 100644
index 0000000..098194c
--- /dev/null
+++ b/extra/org.eclipse.emf.ecp.emfstore.ui.e4/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/extra/org.eclipse.emf.ecp.emfstore.ui.e4/.project b/extra/org.eclipse.emf.ecp.emfstore.ui.e4/.project
new file mode 100644
index 0000000..4eaf619
--- /dev/null
+++ b/extra/org.eclipse.emf.ecp.emfstore.ui.e4/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.emf.ecp.emfstore.ui.e4</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
diff --git a/extra/org.eclipse.emf.ecp.emfstore.ui.e4/.settings/org.eclipse.jdt.core.prefs b/extra/org.eclipse.emf.ecp.emfstore.ui.e4/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..f42de36
--- /dev/null
+++ b/extra/org.eclipse.emf.ecp.emfstore.ui.e4/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
+org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.7
diff --git a/extra/org.eclipse.emf.ecp.emfstore.ui.e4/.settings/org.eclipse.pde.core.prefs b/extra/org.eclipse.emf.ecp.emfstore.ui.e4/.settings/org.eclipse.pde.core.prefs
new file mode 100644
index 0000000..f29e940
--- /dev/null
+++ b/extra/org.eclipse.emf.ecp.emfstore.ui.e4/.settings/org.eclipse.pde.core.prefs
@@ -0,0 +1,3 @@
+eclipse.preferences.version=1
+pluginProject.extensions=false
+resolve.requirebundle=false
diff --git a/extra/org.eclipse.emf.ecp.emfstore.ui.e4/META-INF/MANIFEST.MF b/extra/org.eclipse.emf.ecp.emfstore.ui.e4/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..28691f0
--- /dev/null
+++ b/extra/org.eclipse.emf.ecp.emfstore.ui.e4/META-INF/MANIFEST.MF
@@ -0,0 +1,18 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Emfstore e4 ui
+Bundle-SymbolicName: org.eclipse.emf.ecp.emfstore.ui.e4;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-Activator: org.eclipse.emf.ecp.e4.emfstore.Activator
+Require-Bundle: org.eclipse.e4.core.di,
+ javax.inject,
+ org.eclipse.e4.ui.workbench;bundle-version="0.10.3",
+ org.eclipse.emf.emfstore.client.ui;bundle-version="1.0.0",
+ org.eclipse.swt;bundle-version="3.100.1",
+ org.eclipse.e4.ui.services;bundle-version="0.10.2",
+ org.eclipse.emf.ecp.core;bundle-version="1.0.0",
+ org.eclipse.emf.ecp.emfstore.core;bundle-version="1.0.0",
+ org.eclipse.emf.emfstore.client;bundle-version="1.0.0"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.7
+Import-Package: org.osgi.framework;version="1.3.0"
+Bundle-ActivationPolicy: lazy
diff --git a/extra/org.eclipse.emf.ecp.emfstore.ui.e4/build.properties b/extra/org.eclipse.emf.ecp.emfstore.ui.e4/build.properties
new file mode 100644
index 0000000..7fdfe37
--- /dev/null
+++ b/extra/org.eclipse.emf.ecp.emfstore.ui.e4/build.properties
@@ -0,0 +1,7 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               plugin.xml,\
+               fragment.e4xmi,\
+               icons/
diff --git a/extra/org.eclipse.emf.ecp.emfstore.ui.e4/fragment.e4xmi b/extra/org.eclipse.emf.ecp.emfstore.ui.e4/fragment.e4xmi
new file mode 100644
index 0000000..478254d
--- /dev/null
+++ b/extra/org.eclipse.emf.ecp.emfstore.ui.e4/fragment.e4xmi
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="ASCII"?>
+<fragment:ModelFragments xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:commands="http://www.eclipse.org/ui/2010/UIModel/application/commands" xmlns:fragment="http://www.eclipse.org/ui/2010/UIModel/fragment" xmlns:menu="http://www.eclipse.org/ui/2010/UIModel/application/ui/menu" xmi:id="_nICRUJoyEeKJoJcmiy2C6w">
+  <fragments xsi:type="fragment:StringModelFragment" xmi:id="_n_mLcJoyEeKJoJcmiy2C6w" featurename="commands" parentElementId="org.eclipse.e4.ide.application">
+    <elements xsi:type="commands:Command" xmi:id="_pCdWoJoyEeKJoJcmiy2C6w" elementId="org.eclipse.emf.ecp.e4.emfstore.command.login" commandName="LogIn"/>
+    <elements xsi:type="commands:Command" xmi:id="_39_5UJpoEeKJoJcmiy2C6w" elementId="org.eclipse.emf.ecp.e4.emfstore.command.logout" commandName="LogOut"/>
+    <elements xsi:type="commands:Command" xmi:id="_IU0E0JprEeKJoJcmiy2C6w" elementId="org.eclipse.emf.ecp.e4.emfstore.command.startLocalServer" commandName="Start Local Server"/>
+  </fragments>
+  <fragments xsi:type="fragment:StringModelFragment" xmi:id="_8oN_0JozEeKJoJcmiy2C6w" featurename="handlers" parentElementId="org.eclipse.e4.ide.application">
+    <elements xsi:type="commands:Handler" xmi:id="_qRumIJoyEeKJoJcmiy2C6w" elementId="org.eclipse.emf.ecp.e4.emfstore.handler.login" contributionURI="bundleclass://org.eclipse.emf.ecp.emfstore.ui.e4/org.eclipse.emf.ecp.e4.emfstore.LogInHandler" command="_pCdWoJoyEeKJoJcmiy2C6w"/>
+    <elements xsi:type="commands:Handler" xmi:id="_517rUJpoEeKJoJcmiy2C6w" elementId="org.eclipse.emf.ecp.e4.emfstore.handler.logout" contributionURI="bundleclass://org.eclipse.emf.ecp.emfstore.ui.e4/org.eclipse.emf.ecp.e4.emfstore.LogOutHandler" command="_39_5UJpoEeKJoJcmiy2C6w"/>
+    <elements xsi:type="commands:Handler" xmi:id="_L67P4JprEeKJoJcmiy2C6w" elementId="org.eclipse.emf.ecp.e4.emfstore.handler.startLocalServer" contributionURI="bundleclass://org.eclipse.emf.ecp.emfstore.ui.e4/org.eclipse.emf.ecp.e4.emfstore.StartLocalServerHandler" command="_IU0E0JprEeKJoJcmiy2C6w"/>
+  </fragments>
+  <fragments xsi:type="fragment:StringModelFragment" xmi:id="__dQ6UJozEeKJoJcmiy2C6w" featurename="children" parentElementId="org.eclipse.emf.ecp.e4.application.popupmenu.repository">
+    <elements xsi:type="menu:HandledMenuItem" xmi:id="_szdjEJoyEeKJoJcmiy2C6w" elementId="org.eclipse.emf.ecp.e4.emfstore.handledmenuitem.login" label="LogIn" iconURI="platform:/plugin/org.eclipse.emf.ecp.emfstore.ui.e4/icons/login.png" command="_pCdWoJoyEeKJoJcmiy2C6w"/>
+    <elements xsi:type="menu:HandledMenuItem" xmi:id="_-I6jcJpoEeKJoJcmiy2C6w" elementId="org.eclipse.emf.ecp.e4.emfstore.handledmenuitem.logout" label="LogOut" iconURI="platform:/plugin/org.eclipse.emf.ecp.emfstore.ui.e4/icons/logout.png" command="_39_5UJpoEeKJoJcmiy2C6w"/>
+    <elements xsi:type="menu:HandledMenuItem" xmi:id="_Qvw34JprEeKJoJcmiy2C6w" elementId="org.eclipse.emf.ecp.e4.emfstore.handledmenuitem.startLocalServer" label="Start Local Server" iconURI="platform:/plugin/org.eclipse.emf.ecp.emfstore.ui.e4/icons/startLocalServer.png" mnemonics="M1+F2" command="_IU0E0JprEeKJoJcmiy2C6w"/>
+  </fragments>
+</fragment:ModelFragments>
diff --git a/extra/org.eclipse.emf.ecp.emfstore.ui.e4/icons/login.png b/extra/org.eclipse.emf.ecp.emfstore.ui.e4/icons/login.png
new file mode 100644
index 0000000..a471765
--- /dev/null
+++ b/extra/org.eclipse.emf.ecp.emfstore.ui.e4/icons/login.png
Binary files differ
diff --git a/extra/org.eclipse.emf.ecp.emfstore.ui.e4/icons/logout.png b/extra/org.eclipse.emf.ecp.emfstore.ui.e4/icons/logout.png
new file mode 100644
index 0000000..2ebc4f6
--- /dev/null
+++ b/extra/org.eclipse.emf.ecp.emfstore.ui.e4/icons/logout.png
Binary files differ
diff --git a/extra/org.eclipse.emf.ecp.emfstore.ui.e4/icons/startLocalServer.png b/extra/org.eclipse.emf.ecp.emfstore.ui.e4/icons/startLocalServer.png
new file mode 100644
index 0000000..540c8e2
--- /dev/null
+++ b/extra/org.eclipse.emf.ecp.emfstore.ui.e4/icons/startLocalServer.png
Binary files differ
diff --git a/extra/org.eclipse.emf.ecp.emfstore.ui.e4/plugin.xml b/extra/org.eclipse.emf.ecp.emfstore.ui.e4/plugin.xml
new file mode 100644
index 0000000..c422046
--- /dev/null
+++ b/extra/org.eclipse.emf.ecp.emfstore.ui.e4/plugin.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<plugin>
+   <extension
+         id="id1"
+         point="org.eclipse.e4.workbench.model">
+      <fragment
+            uri="fragment.e4xmi">
+      </fragment>
+   </extension>
+
+</plugin>
diff --git a/extra/org.eclipse.emf.ecp.emfstore.ui.e4/src/org/eclipse/emf/ecp/e4/emfstore/Activator.java b/extra/org.eclipse.emf.ecp.emfstore.ui.e4/src/org/eclipse/emf/ecp/e4/emfstore/Activator.java
new file mode 100644
index 0000000..57b4e72
--- /dev/null
+++ b/extra/org.eclipse.emf.ecp.emfstore.ui.e4/src/org/eclipse/emf/ecp/e4/emfstore/Activator.java
@@ -0,0 +1,30 @@
+package org.eclipse.emf.ecp.e4.emfstore;
+
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+
+public class Activator implements BundleActivator {
+
+	private static BundleContext context;
+
+	static BundleContext getContext() {
+		return context;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
+	 */
+	public void start(BundleContext bundleContext) throws Exception {
+		Activator.context = bundleContext;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
+	 */
+	public void stop(BundleContext bundleContext) throws Exception {
+		Activator.context = null;
+	}
+
+}
diff --git a/extra/org.eclipse.emf.ecp.emfstore.ui.e4/src/org/eclipse/emf/ecp/e4/emfstore/LogInHandler.java b/extra/org.eclipse.emf.ecp.emfstore.ui.e4/src/org/eclipse/emf/ecp/e4/emfstore/LogInHandler.java
new file mode 100644
index 0000000..7056259
--- /dev/null
+++ b/extra/org.eclipse.emf.ecp.emfstore.ui.e4/src/org/eclipse/emf/ecp/e4/emfstore/LogInHandler.java
@@ -0,0 +1,33 @@
+ 
+package org.eclipse.emf.ecp.e4.emfstore;
+
+import java.util.Collection;
+import java.util.Collections;
+
+import javax.inject.Named;
+
+import org.eclipse.e4.core.di.annotations.Execute;
+import org.eclipse.e4.core.di.annotations.Optional;
+import org.eclipse.e4.ui.services.IServiceConstants;
+import org.eclipse.emf.ecp.core.ECPProviderRegistry;
+import org.eclipse.emf.ecp.core.ECPRepository;
+import org.eclipse.emf.ecp.core.util.ECPUtil;
+import org.eclipse.emf.ecp.emfstore.core.internal.EMFStoreProvider;
+import org.eclipse.emf.ecp.spi.core.InternalRepository;
+import org.eclipse.emf.emfstore.client.ESServer;
+import org.eclipse.emf.emfstore.internal.client.ui.controller.UILoginSessionController;
+import org.eclipse.swt.widgets.Shell;
+
+@SuppressWarnings("restriction")
+public class LogInHandler {
+	@Execute
+	public void execute(Shell shell, @Named(IServiceConstants.ACTIVE_SELECTION)@Optional ECPRepository ecpRepository) {
+		
+		final ESServer serverInfo = ((EMFStoreProvider)ECPUtil.getResolvedElement(ECPUtil.getECPProviderRegistry().getProvider(EMFStoreProvider.NAME))).getServerInfo((InternalRepository) ecpRepository);
+		new UILoginSessionController(shell, serverInfo).execute();
+
+		// ((TreeView)HandlerUtil.getActivePart(event)).getRefreshAction().run();
+		((InternalRepository) ecpRepository).notifyObjectsChanged((Collection)Collections.singleton(ecpRepository ));
+	}
+		
+}
\ No newline at end of file
diff --git a/extra/org.eclipse.emf.ecp.emfstore.ui.e4/src/org/eclipse/emf/ecp/e4/emfstore/LogOutHandler.java b/extra/org.eclipse.emf.ecp.emfstore.ui.e4/src/org/eclipse/emf/ecp/e4/emfstore/LogOutHandler.java
new file mode 100644
index 0000000..6054e45
--- /dev/null
+++ b/extra/org.eclipse.emf.ecp.emfstore.ui.e4/src/org/eclipse/emf/ecp/e4/emfstore/LogOutHandler.java
@@ -0,0 +1,32 @@
+ 
+package org.eclipse.emf.ecp.e4.emfstore;
+
+import java.util.Collection;
+import java.util.Collections;
+
+import javax.inject.Named;
+
+import org.eclipse.e4.core.di.annotations.Execute;
+import org.eclipse.e4.core.di.annotations.Optional;
+import org.eclipse.e4.ui.services.IServiceConstants;
+import org.eclipse.emf.ecp.core.ECPProviderRegistry;
+import org.eclipse.emf.ecp.core.ECPRepository;
+import org.eclipse.emf.ecp.core.util.ECPUtil;
+import org.eclipse.emf.ecp.emfstore.core.internal.EMFStoreProvider;
+import org.eclipse.emf.ecp.spi.core.InternalRepository;
+import org.eclipse.emf.emfstore.client.ESServer;
+import org.eclipse.emf.emfstore.internal.client.ui.controller.UILogoutSessionController;
+import org.eclipse.swt.widgets.Shell;
+
+@SuppressWarnings("restriction")
+public class LogOutHandler {
+	@Execute
+	public void execute(Shell shell, @Named(IServiceConstants.ACTIVE_SELECTION)@Optional ECPRepository ecpRepository) {
+		
+		final ESServer serverInfo = ((EMFStoreProvider)ECPUtil.getResolvedElement(ECPUtil.getECPProviderRegistry().getProvider(EMFStoreProvider.NAME))).getServerInfo((InternalRepository) ecpRepository);
+		new UILogoutSessionController(shell, serverInfo.getLastUsersession()).execute();
+
+		((InternalRepository) ecpRepository).notifyObjectsChanged((Collection)Collections.singleton(ecpRepository ));
+	}
+		
+}
\ No newline at end of file
diff --git a/extra/org.eclipse.emf.ecp.emfstore.ui.e4/src/org/eclipse/emf/ecp/e4/emfstore/StartLocalServerHandler.java b/extra/org.eclipse.emf.ecp.emfstore.ui.e4/src/org/eclipse/emf/ecp/e4/emfstore/StartLocalServerHandler.java
new file mode 100644
index 0000000..e178c52
--- /dev/null
+++ b/extra/org.eclipse.emf.ecp.emfstore.ui.e4/src/org/eclipse/emf/ecp/e4/emfstore/StartLocalServerHandler.java
@@ -0,0 +1,25 @@
+ 
+package org.eclipse.emf.ecp.e4.emfstore;
+
+import org.eclipse.e4.core.di.annotations.CanExecute;
+import org.eclipse.e4.core.di.annotations.Execute;
+import org.eclipse.emf.emfstore.internal.server.EMFStoreController;
+import org.eclipse.emf.emfstore.internal.server.exceptions.FatalESException;
+import org.osgi.service.log.LogService;
+
+@SuppressWarnings("restriction")
+public class StartLocalServerHandler {
+	@Execute
+	public void execute(LogService logService) {
+		try {
+			EMFStoreController.runAsNewThread();
+		} catch (FatalESException e) {
+			logService.log(LogService.LOG_ERROR, e.getMessage(), e);
+		}
+	}
+	@CanExecute
+	public boolean isEnabled(){
+		return EMFStoreController.getInstance()==null;
+	}
+		
+}
\ No newline at end of file
