catch up with branch daily

Signed-off-by: Ralf Mollik <ramollik@compex-commerce.com>
diff --git a/org.eclipse.osbp.infogrid.ecview/.settings/org.eclipse.xtend.core.Xtend.prefs b/org.eclipse.osbp.infogrid.ecview/.settings/org.eclipse.xtend.core.Xtend.prefs
index 0933f8c..19e3115 100644
--- a/org.eclipse.osbp.infogrid.ecview/.settings/org.eclipse.xtend.core.Xtend.prefs
+++ b/org.eclipse.osbp.infogrid.ecview/.settings/org.eclipse.xtend.core.Xtend.prefs
@@ -1,4 +1,5 @@
 //outlet.DEFAULT_OUTPUT.sourceFolder.src/test/java.directory=src/test/generated-sources/xtend
+BuilderConfiguration.is_project_specific=true
 eclipse.preferences.version=1
 is_project_specific=true
 outlet.DEFAULT_OUTPUT.hideLocalSyntheticVariables=true
diff --git a/org.eclipse.osbp.infogrid.model.editor/.settings/org.eclipse.xtend.core.Xtend.prefs b/org.eclipse.osbp.infogrid.model.editor/.settings/org.eclipse.xtend.core.Xtend.prefs
index 0933f8c..19e3115 100644
--- a/org.eclipse.osbp.infogrid.model.editor/.settings/org.eclipse.xtend.core.Xtend.prefs
+++ b/org.eclipse.osbp.infogrid.model.editor/.settings/org.eclipse.xtend.core.Xtend.prefs
@@ -1,4 +1,5 @@
 //outlet.DEFAULT_OUTPUT.sourceFolder.src/test/java.directory=src/test/generated-sources/xtend
+BuilderConfiguration.is_project_specific=true
 eclipse.preferences.version=1
 is_project_specific=true
 outlet.DEFAULT_OUTPUT.hideLocalSyntheticVariables=true
diff --git a/org.eclipse.osbp.infogrid.model/.classpath b/org.eclipse.osbp.infogrid.model/.classpath
index e5c313c..8b37caa 100644
--- a/org.eclipse.osbp.infogrid.model/.classpath
+++ b/org.eclipse.osbp.infogrid.model/.classpath
@@ -2,8 +2,7 @@
 <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="src" path="xtend-gen"/>
-	<classpathentry kind="src" path="model"/>
+	<classpathentry kind="src" path="src/"/>
+	<classpathentry kind="src" path="xtend-gen/"/>
 	<classpathentry kind="output" path="target/classes"/>
 </classpath>
diff --git a/org.eclipse.osbp.infogrid.model/.settings/org.eclipse.xtend.core.Xtend.prefs b/org.eclipse.osbp.infogrid.model/.settings/org.eclipse.xtend.core.Xtend.prefs
index 0933f8c..19e3115 100644
--- a/org.eclipse.osbp.infogrid.model/.settings/org.eclipse.xtend.core.Xtend.prefs
+++ b/org.eclipse.osbp.infogrid.model/.settings/org.eclipse.xtend.core.Xtend.prefs
@@ -1,4 +1,5 @@
 //outlet.DEFAULT_OUTPUT.sourceFolder.src/test/java.directory=src/test/generated-sources/xtend
+BuilderConfiguration.is_project_specific=true
 eclipse.preferences.version=1
 is_project_specific=true
 outlet.DEFAULT_OUTPUT.hideLocalSyntheticVariables=true
diff --git a/org.eclipse.osbp.infogrid.services.tests/.settings/org.eclipse.xtend.core.Xtend.prefs b/org.eclipse.osbp.infogrid.services.tests/.settings/org.eclipse.xtend.core.Xtend.prefs
index 0933f8c..19e3115 100644
--- a/org.eclipse.osbp.infogrid.services.tests/.settings/org.eclipse.xtend.core.Xtend.prefs
+++ b/org.eclipse.osbp.infogrid.services.tests/.settings/org.eclipse.xtend.core.Xtend.prefs
@@ -1,4 +1,5 @@
 //outlet.DEFAULT_OUTPUT.sourceFolder.src/test/java.directory=src/test/generated-sources/xtend
+BuilderConfiguration.is_project_specific=true
 eclipse.preferences.version=1
 is_project_specific=true
 outlet.DEFAULT_OUTPUT.hideLocalSyntheticVariables=true
diff --git a/org.eclipse.osbp.infogrid.vaaclipse/src/org/eclipse/osbp/infogrid/vaaclipse/SingleInfoGridComponent.java b/org.eclipse.osbp.infogrid.vaaclipse/src/org/eclipse/osbp/infogrid/vaaclipse/SingleInfoGridComponent.java
index 1cc6834..8e15c86 100644
--- a/org.eclipse.osbp.infogrid.vaaclipse/src/org/eclipse/osbp/infogrid/vaaclipse/SingleInfoGridComponent.java
+++ b/org.eclipse.osbp.infogrid.vaaclipse/src/org/eclipse/osbp/infogrid/vaaclipse/SingleInfoGridComponent.java
@@ -31,6 +31,8 @@
 import org.eclipse.e4.core.contexts.IEclipseContext;
 import org.eclipse.e4.core.di.annotations.Optional;
 import org.eclipse.e4.core.services.events.IEventBroker;
+import org.eclipse.e4.ui.model.application.ui.advanced.MPerspective;
+import org.eclipse.e4.ui.model.application.ui.basic.MPart;
 import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.common.notify.impl.AdapterImpl;
 import org.eclipse.osbp.dsl.dto.lib.impl.DtoServiceAccess;
@@ -48,6 +50,7 @@
 import org.eclipse.osbp.runtime.common.event.EventDispatcherEvent;
 import org.eclipse.osbp.runtime.common.event.EventDispatcherEvent.EventDispatcherDataTag;
 import org.eclipse.osbp.runtime.common.event.IEventDispatcher;
+import org.eclipse.osbp.runtime.common.event.SelectionStore;
 import org.eclipse.osbp.runtime.common.filter.IDTOService;
 import org.eclipse.osbp.runtime.common.types.ITypeProviderService;
 import org.eclipse.osbp.vaaclipse.common.ecview.api.IECViewSessionHelper;
@@ -98,24 +101,9 @@
 	private Class<?> rootType;
 	private IDTOService<Object> dtoService;
 
-	// public Component createGrid(String gridSourceId,
-	// IGridSourceFacade gridSourceService,
-	// IECViewSessionHelper ecviewPropsProvider,
-	// ITypeProviderService bundleSpaceTypeProvider, IUser user) {
-	// this.gridSourceService = gridSourceService;
-	// this.ecviewPropsProvider = ecviewPropsProvider;
-	// this.bundleSpaceTypeProvider = bundleSpaceTypeProvider;
-	//
-	// descriptor = createGridSourceDescriptor(gridSourceId);
-	// descriptor.setLocale(user.getLocale());
-	// descriptor.setInput(inputdata);
-	// if (descriptor != null) {
-	// return createComponent(gridSourceId);
-	// } else {
-	// log.error("gridsource not available:" + gridSourceId);
-	// }
-	// return null;
-	// }
+	private MPart mPart;
+
+	private MPerspective mPerspective;
 
 	@PostConstruct
 	protected void setup() {
@@ -142,6 +130,9 @@
 			component = (Component) descriptor.getComponent();
 			component.setSizeFull();
 			CxGrid grid = descriptor.getGrid();
+			
+			mPart = context.get(MPart.class);
+			mPerspective = context.get(MPerspective.class);
 
 			// if there is inputdata, just put it into the grids collection
 			if (inputdata != null) {
@@ -159,16 +150,21 @@
 							// msg.getNewValue() provides a dto object
 							if(msg.getNewValue() != null) {
 								// The first selection event is from the parent dto ...
+								Object idFieldValue = null;
 								if (idx == 0) {
-									selectionEvnt.addItem(EventDispatcherDataTag.ID, DtoUtils.getIdValue(msg.getNewValue()));
+									idFieldValue = DtoUtils.getIdValue(msg.getNewValue());
+									selectionEvnt.addItem(EventDispatcherDataTag.ID, idFieldValue);
+									selectionEvnt.setPerspective(mPerspective);
+									SelectionStore.putSelectionToPerspectiveContext(mPart, "net.osbee.sample.foodmart.entities.Country.id", idFieldValue);							
 								} else {
 									// ... the rest is from the referenced dtos
 									List<Field> refs = DtoUtils.getOwnerDomainReferences(msg.getNewValue().getClass());
 									for (Field field : refs) {
 										if (!field.getDeclaringClass().getName().equals(field.getType().getName())){
 											Object fieldValue = DtoUtils.getValue(msg.getNewValue(), field.getName());
-											Object idFieldValue = fieldValue != null ? DtoUtils.getIdValue(fieldValue) : null;
+											idFieldValue = fieldValue != null ? DtoUtils.getIdValue(fieldValue) : null;
 											String topic = selectionEvnt.getTopic();
+											selectionEvnt.setPerspective(mPerspective);
 											String entityName = EntityUtils.getQualifiedEntityNameForQualifiedDtoName(field.getType().getName());
 											if (topic!=null && topic.startsWith(entityName)){
 												selectionEvnt.addItem(EventDispatcherDataTag.ID, idFieldValue);