catch up with development

Signed-off-by: Ralf Mollik <ramollik@compex-commerce.com>
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..f2bd24b
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,38 @@
+**/bin/
+**/target/
+**._trace
+**.log.properties
+**git.properties
+**/target/
+**/.metadata/
+
+**/emf-gen/**/.gitignore
+**/src-gen/**/.gitignore
+**/git.properties
+**/*.java._trace
+**/*.log
+**/*.log.properties
+
+**/bin/
+**/build/
+*.class
+*.ctrl
+**/Debug/
+.DS_Store
+*.ear
+*.war
+
+**/*.actionbin
+**/*.blipbin
+**/*.chartbin
+**/*.cubebin
+**/*.datatypebin
+**/*.dtobin
+**/*.entitybin
+**/*.servicebin
+**/*.tablebin
+**/*.uibin
+**/*.uisemanticbin
+**/*.xtendbin
+**/*.xtextbin
+
diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..99f26c0
--- /dev/null
+++ b/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/.settings/org.eclipse.m2e.core.prefs b/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 0000000..f897a7f
--- /dev/null
+++ b/.settings/org.eclipse.m2e.core.prefs
@@ -0,0 +1,4 @@
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=true
+version=1
diff --git a/jenkins.build.config.xml b/jenkins.build.config.xml
index 76b5227..7448d9c 100644
--- a/jenkins.build.config.xml
+++ b/jenkins.build.config.xml
@@ -16,7 +16,6 @@
         <jenkins.build.dependencies>
                 <jenkins.build.dependency>org.eclipse.osbp.authentication</jenkins.build.dependency>
                 <jenkins.build.dependency>org.eclipse.osbp.ecview.core</jenkins.build.dependency>
-                <jenkins.build.dependency>org.eclipse.osbp.i18n.common</jenkins.build.dependency>
                 <jenkins.build.dependency>org.eclipse.osbp.runtime</jenkins.build.dependency>
                 <jenkins.build.dependency>org.eclipse.osbp.ui.api</jenkins.build.dependency>
                 <jenkins.build.dependency>org.eclipse.osbp.vaaclipse</jenkins.build.dependency>
diff --git a/org.eclipse.osbp.vaaclipse.common.ecview.feature/.gitignore b/org.eclipse.osbp.vaaclipse.common.ecview.feature/.gitignore
new file mode 100644
index 0000000..b83d222
--- /dev/null
+++ b/org.eclipse.osbp.vaaclipse.common.ecview.feature/.gitignore
@@ -0,0 +1 @@
+/target/
diff --git a/org.eclipse.osbp.vaaclipse.common.ecview.feature/.settings/org.eclipse.core.resources.prefs b/org.eclipse.osbp.vaaclipse.common.ecview.feature/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..99f26c0
--- /dev/null
+++ b/org.eclipse.osbp.vaaclipse.common.ecview.feature/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/org.eclipse.osbp.vaaclipse.common.ecview.feature/.settings/org.eclipse.m2e.core.prefs b/org.eclipse.osbp.vaaclipse.common.ecview.feature/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 0000000..f897a7f
--- /dev/null
+++ b/org.eclipse.osbp.vaaclipse.common.ecview.feature/.settings/org.eclipse.m2e.core.prefs
@@ -0,0 +1,4 @@
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=true
+version=1
diff --git a/org.eclipse.osbp.vaaclipse.common.ecview.feature/.settings/org.eclipse.xtend.core.Xtend.prefs b/org.eclipse.osbp.vaaclipse.common.ecview.feature/.settings/org.eclipse.xtend.core.Xtend.prefs
new file mode 100644
index 0000000..0933f8c
--- /dev/null
+++ b/org.eclipse.osbp.vaaclipse.common.ecview.feature/.settings/org.eclipse.xtend.core.Xtend.prefs
@@ -0,0 +1,10 @@
+//outlet.DEFAULT_OUTPUT.sourceFolder.src/test/java.directory=src/test/generated-sources/xtend
+eclipse.preferences.version=1
+is_project_specific=true
+outlet.DEFAULT_OUTPUT.hideLocalSyntheticVariables=true
+outlet.DEFAULT_OUTPUT.installDslAsPrimarySource=false
+outlet.DEFAULT_OUTPUT.sourceFolder.emf-gen.directory=xtend-gen
+outlet.DEFAULT_OUTPUT.sourceFolder.src-gen.directory=xtend-gen
+outlet.DEFAULT_OUTPUT.sourceFolder.src.directory=xtend-gen
+outlet.DEFAULT_OUTPUT.sourceFolder.xtend-gen.directory=xtend-gen
+outlet.DEFAULT_OUTPUT.userOutputPerSourceFolder=true
diff --git a/org.eclipse.osbp.vaaclipse.common.ecview.feature/feature.xml b/org.eclipse.osbp.vaaclipse.common.ecview.feature/feature.xml
index 3027745..4e3ccee 100644
--- a/org.eclipse.osbp.vaaclipse.common.ecview.feature/feature.xml
+++ b/org.eclipse.osbp.vaaclipse.common.ecview.feature/feature.xml
@@ -14,7 +14,8 @@
         id="org.eclipse.osbp.vaaclipse.common.ecview.feature"
         label="%featureName"
         version="0.9.0.qualifier"
-        provider-name="%providerName">
+        provider-name="%providerName"
+		plugin="org.eclipse.osbp.vaaclipse.common.ecview">
         
     <description>
         %description
diff --git a/org.eclipse.osbp.vaaclipse.common.ecview/.classpath b/org.eclipse.osbp.vaaclipse.common.ecview/.classpath
new file mode 100644
index 0000000..cf36b56
--- /dev/null
+++ b/org.eclipse.osbp.vaaclipse.common.ecview/.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.8"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src/"/>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>
diff --git a/org.eclipse.osbp.vaaclipse.common.ecview/.gitignore b/org.eclipse.osbp.vaaclipse.common.ecview/.gitignore
new file mode 100644
index 0000000..92145bc
--- /dev/null
+++ b/org.eclipse.osbp.vaaclipse.common.ecview/.gitignore
@@ -0,0 +1,2 @@
+/bin/
+/target/
\ No newline at end of file
diff --git a/org.eclipse.osbp.vaaclipse.common.ecview/.settings/com.vaadin.integration.eclipse.prefs b/org.eclipse.osbp.vaaclipse.common.ecview/.settings/com.vaadin.integration.eclipse.prefs
new file mode 100644
index 0000000..e1173bc
--- /dev/null
+++ b/org.eclipse.osbp.vaaclipse.common.ecview/.settings/com.vaadin.integration.eclipse.prefs
@@ -0,0 +1,2 @@
+com.vaadin.integration.eclipse.previousCompileAction=widgetset
+eclipse.preferences.version=1
diff --git a/org.eclipse.osbp.vaaclipse.common.ecview/.settings/org.eclipse.bpmn2.modeler.core.prefs b/org.eclipse.osbp.vaaclipse.common.ecview/.settings/org.eclipse.bpmn2.modeler.core.prefs
new file mode 100644
index 0000000..4bffcea
--- /dev/null
+++ b/org.eclipse.osbp.vaaclipse.common.ecview/.settings/org.eclipse.bpmn2.modeler.core.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+target.runtime=org.jboss.runtime.jbpm5
diff --git a/org.eclipse.osbp.vaaclipse.common.ecview/.settings/org.eclipse.core.resources.prefs b/org.eclipse.osbp.vaaclipse.common.ecview/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..99f26c0
--- /dev/null
+++ b/org.eclipse.osbp.vaaclipse.common.ecview/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/org.eclipse.osbp.vaaclipse.common.ecview/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.osbp.vaaclipse.common.ecview/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..a698e59
--- /dev/null
+++ b/org.eclipse.osbp.vaaclipse.common.ecview/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,12 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/org.eclipse.osbp.vaaclipse.common.ecview/.settings/org.eclipse.m2e.core.prefs b/org.eclipse.osbp.vaaclipse.common.ecview/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 0000000..f897a7f
--- /dev/null
+++ b/org.eclipse.osbp.vaaclipse.common.ecview/.settings/org.eclipse.m2e.core.prefs
@@ -0,0 +1,4 @@
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=true
+version=1
diff --git a/org.eclipse.osbp.vaaclipse.common.ecview/.settings/org.eclipse.pde.core.prefs b/org.eclipse.osbp.vaaclipse.common.ecview/.settings/org.eclipse.pde.core.prefs
new file mode 100644
index 0000000..f29e940
--- /dev/null
+++ b/org.eclipse.osbp.vaaclipse.common.ecview/.settings/org.eclipse.pde.core.prefs
@@ -0,0 +1,3 @@
+eclipse.preferences.version=1
+pluginProject.extensions=false
+resolve.requirebundle=false
diff --git a/org.eclipse.osbp.vaaclipse.common.ecview/.settings/org.eclipse.xtend.core.Xtend.prefs b/org.eclipse.osbp.vaaclipse.common.ecview/.settings/org.eclipse.xtend.core.Xtend.prefs
new file mode 100644
index 0000000..0933f8c
--- /dev/null
+++ b/org.eclipse.osbp.vaaclipse.common.ecview/.settings/org.eclipse.xtend.core.Xtend.prefs
@@ -0,0 +1,10 @@
+//outlet.DEFAULT_OUTPUT.sourceFolder.src/test/java.directory=src/test/generated-sources/xtend
+eclipse.preferences.version=1
+is_project_specific=true
+outlet.DEFAULT_OUTPUT.hideLocalSyntheticVariables=true
+outlet.DEFAULT_OUTPUT.installDslAsPrimarySource=false
+outlet.DEFAULT_OUTPUT.sourceFolder.emf-gen.directory=xtend-gen
+outlet.DEFAULT_OUTPUT.sourceFolder.src-gen.directory=xtend-gen
+outlet.DEFAULT_OUTPUT.sourceFolder.src.directory=xtend-gen
+outlet.DEFAULT_OUTPUT.sourceFolder.xtend-gen.directory=xtend-gen
+outlet.DEFAULT_OUTPUT.userOutputPerSourceFolder=true
diff --git a/org.eclipse.osbp.vaaclipse.common.ecview/META-INF/MANIFEST.MF b/org.eclipse.osbp.vaaclipse.common.ecview/META-INF/MANIFEST.MF
index d12850e..81abff6 100644
--- a/org.eclipse.osbp.vaaclipse.common.ecview/META-INF/MANIFEST.MF
+++ b/org.eclipse.osbp.vaaclipse.common.ecview/META-INF/MANIFEST.MF
@@ -4,8 +4,7 @@
 Bundle-SymbolicName: org.eclipse.osbp.vaaclipse.common.ecview;singleton:=true
 Bundle-Vendor: Eclipse OSBP
 Bundle-Version: 0.9.0.qualifier
-Require-Bundle: javax.annotation;bundle-version="[1.1.0,1.2.0)",
- javax.inject;bundle-version="1.0.0",
+Require-Bundle: javax.inject;bundle-version="1.0.0",
  org.eclipse.osbp.runtime.common;bundle-version="[0.9.0,0.10.0)",
  org.eclipse.osbp.ecview.core.common;bundle-version="[0.9.0,0.10.0)",
  org.eclipse.e4.core.services;bundle-version="1.2.1",
@@ -20,8 +19,8 @@
  org.eclipse.emf.ecore.xmi
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Export-Package: org.eclipse.osbp.vaaclipse.common.ecview;version="0.9.0";x-internal:=true
-Import-Package: org.eclipse.core.runtime;version="3.4.0",
- org.eclipse.osbp.i18n.common;version="0.9.0",
+Import-Package: javax.annotation,
+ org.eclipse.core.runtime;version="3.4.0",
  org.eclipse.osbp.ui.api.metadata;version="0.9.0",
  org.eclipse.osbp.ui.api.user;version="0.9.0",
  org.eclipse.osbp.user;version="0.9.0",
diff --git a/org.eclipse.osbp.vaaclipse.common.ecview/src/org/eclipse/osbp/vaaclipse/common/ecview/ECViewContainer.java b/org.eclipse.osbp.vaaclipse.common.ecview/src/org/eclipse/osbp/vaaclipse/common/ecview/ECViewContainer.java
index 5b5228f..37a0bb5 100644
--- a/org.eclipse.osbp.vaaclipse.common.ecview/src/org/eclipse/osbp/vaaclipse/common/ecview/ECViewContainer.java
+++ b/org.eclipse.osbp.vaaclipse.common.ecview/src/org/eclipse/osbp/vaaclipse/common/ecview/ECViewContainer.java
@@ -8,7 +8,7 @@
  * Contributors: 
  * 		Florian Pirchner - Initial implementation
  */
- package org.eclipse.osbp.vaaclipse.common.ecview;
+package org.eclipse.osbp.vaaclipse.common.ecview;
 
 import java.util.ArrayList;
 import java.util.Collections;
@@ -19,6 +19,10 @@
 import javax.inject.Inject;
 
 import org.eclipse.e4.core.services.events.IEventBroker;
+import org.eclipse.e4.ui.model.application.MApplication;
+import org.eclipse.e4.ui.model.application.ui.advanced.MPerspective;
+import org.eclipse.e4.ui.model.application.ui.basic.MWindow;
+import org.eclipse.e4.ui.workbench.modeling.EModelService;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.osbp.ecview.core.common.context.IViewContext;
 import org.eclipse.osbp.ecview.core.common.editpart.IViewEditpart;
@@ -29,18 +33,24 @@
 import org.eclipse.osbp.vaaclipse.publicapi.events.IWidgetModelAssociations;
 import org.osgi.service.event.Event;
 import org.osgi.service.event.EventHandler;
- 
-public class ECViewContainer implements IECViewContainer, EventHandler,
-		IWidgetModelAssociations {
+
+public class ECViewContainer implements IECViewContainer, EventHandler, IWidgetModelAssociations {
+
+	private static final String ECVIEWS = "ecviews";
 
 	@Inject
 	private IEventBroker eventBroker;
 
 	@Inject
+	private EModelService modelService;
+
+	@Inject
+	private MApplication mApp;
+
+	@Inject
 	private IWidgetModelAssociations masterAssociations;
 
-	private List<IViewEditpart> views = Collections
-			.synchronizedList(new ArrayList<IViewEditpart>());
+	private List<IViewEditpart> views = Collections.synchronizedList(new ArrayList<IViewEditpart>());
 
 	@Override
 	public List<IViewEditpart> getECViews() {
@@ -49,16 +59,35 @@
 
 	@Override
 	public void handleEvent(Event event) {
-		ILifecycleEvent lifecycle = (ILifecycleEvent) event
-				.getProperty(IEventBroker.DATA);
+		ILifecycleEvent lifecycle = (ILifecycleEvent) event.getProperty(IEventBroker.DATA);
 		if (lifecycle.getType().equals(ILifecycleEvent.CONTEXT_CREATED)) {
 			IViewEditpart editpart = (IViewEditpart) lifecycle.getEditpart();
 			if (!views.contains(editpart)) {
 				views.add(editpart);
+
+				MPerspective mPersp = modelService.getActivePerspective(mApp.getChildren().get(0));
+				if (mPersp != null) {
+					@SuppressWarnings("unchecked")
+					List<IViewContext> contexts = (List<IViewContext>) mPersp.getTransientData().get(ECVIEWS);
+					if (contexts == null) {
+						contexts = new ArrayList<>();
+						mPersp.getTransientData().put(ECVIEWS, contexts);
+					}
+					contexts.add(editpart.getContext());
+				}
+
 			}
 		} else if (lifecycle.getType().equals(ILifecycleEvent.CONTEXT_DISPOSED)) {
 			IViewEditpart editpart = (IViewEditpart) lifecycle.getEditpart();
 			views.remove(editpart);
+			MPerspective mPersp = modelService.getActivePerspective(mApp.getChildren().get(0));
+			if (mPersp != null) {
+				@SuppressWarnings("unchecked")
+				List<IViewContext> contexts = (List<IViewContext>) mPersp.getTransientData().get(ECVIEWS);
+				if (contexts != null) {
+					contexts.remove(editpart.getContext());
+				}
+			}
 		}
 	}
 
@@ -80,8 +109,8 @@
 	public EObject getElement(Object component) {
 		synchronized (views) {
 			for (IViewEditpart ep : views) {
-				IWidgetAssocationsService<Object, YElement> service = ep
-						.getContext().getService(IWidgetAssocationsService.ID);
+				IWidgetAssocationsService<Object, YElement> service = ep.getContext()
+						.getService(IWidgetAssocationsService.ID);
 				EObject result = service.getModelElement(component);
 				if (result != null) {
 					return result;
@@ -99,8 +128,8 @@
 		}
 		synchronized (views) {
 			for (IViewEditpart ep : views) {
-				IWidgetAssocationsService<Object, YElement> service = ep
-						.getContext().getService(IWidgetAssocationsService.ID);
+				IWidgetAssocationsService<Object, YElement> service = ep.getContext()
+						.getService(IWidgetAssocationsService.ID);
 				Object result = service.getWidget((YElement) element);
 				if (result != null) {
 					return result;
@@ -123,4 +152,17 @@
 				"Not allowed for a thirdparty assocation! Use the main assocation instance to register thirdparties.");
 	}
 
+	@Override
+	public List<IViewContext> getECViews(MPerspective perspective) {
+		MPerspective mPersp = modelService.getActivePerspective(mApp.getChildren().get(0));
+		if (mPersp != null) {
+			@SuppressWarnings("unchecked")
+			List<IViewContext> contexts = (List<IViewContext>) mPersp.getTransientData().get(ECVIEWS);
+			if (contexts != null) {
+				return Collections.unmodifiableList(contexts);
+			}
+		}
+		return Collections.emptyList();
+	}
+
 }
diff --git a/org.eclipse.osbp.vaaclipse.common.ecview/src/org/eclipse/osbp/vaaclipse/common/ecview/ECViewSessionHelper.java b/org.eclipse.osbp.vaaclipse.common.ecview/src/org/eclipse/osbp/vaaclipse/common/ecview/ECViewSessionHelper.java
index 5547659..bc6e1e5 100644
--- a/org.eclipse.osbp.vaaclipse.common.ecview/src/org/eclipse/osbp/vaaclipse/common/ecview/ECViewSessionHelper.java
+++ b/org.eclipse.osbp.vaaclipse.common.ecview/src/org/eclipse/osbp/vaaclipse/common/ecview/ECViewSessionHelper.java
@@ -18,7 +18,6 @@
 
 import org.eclipse.e4.core.contexts.IEclipseContext;
 import org.eclipse.osbp.ecview.core.common.context.IViewContext;
-import org.eclipse.osbp.i18n.common.OSI18nService;
 import org.eclipse.osbp.runtime.common.i18n.II18nService;
 import org.eclipse.osbp.ui.api.metadata.IDSLMetadataService;
 import org.eclipse.osbp.ui.api.user.IUser;
@@ -49,7 +48,6 @@
 		// register services to be used
 		Map<String, Object> services = new HashMap<String, Object>();
 		services.put(org.eclipse.osbp.runtime.common.event.IEventBroker.class.getName(), new E4EventBrokerAdapter(eventBroker));
-		services.put(II18nService.class.getName(), new OSI18nService(dslMetadataService, i18nService));
 		services.put(IUser.class.getName(), user);
 		services.put(IViewContext.PARAM_THIRDPARTY_SERVICE_PROVIDER, new ECViewToE4ServiceBridge(context));
 		properties.put(IViewContext.PARAM_SERVICES, services);
diff --git a/pom.xml b/pom.xml
index 9ccc034..ac6d5ce 100644
--- a/pom.xml
+++ b/pom.xml
@@ -63,22 +63,17 @@
                     <artifactId>target-platform-configuration</artifactId>
                     <version>${tycho-version}</version>
                     <configuration>
-                        <filters>
-                            <filter>
-                                <type>eclipse-plugin</type>
-                                <id>org.apache.aries.transaction.manager</id>
-                                <restrictTo>
-                                    <!--  use a range that does not exist, we can not mix removeall and versionRange -->
-                                    <versionRange>[0.5.0,0.5.1)</versionRange>
-                                </restrictTo>
-                            </filter>
-                        </filters>
                         <resolver>p2</resolver>
                         <pomDependencies>consider</pomDependencies>
                         <environments>
                             <environment>
                                 <os>win32</os>
                                 <ws>win32</ws>
+                                <arch>x86</arch>
+                            </environment>
+                            <environment>
+                                <os>win32</os>
+                                <ws>win32</ws>
                                 <arch>x86_64</arch>
                             </environment>
                             <environment>