diff --git a/jenkins.build.config.xml b/jenkins.build.config.xml
index f9ad497..95571a7 100644
--- a/jenkins.build.config.xml
+++ b/jenkins.build.config.xml
@@ -20,6 +20,7 @@
                 <jenkins.build.dependency>org.eclipse.osbp.ecview.extension</jenkins.build.dependency>
                 <jenkins.build.dependency>org.eclipse.osbp.ecview.extension.api</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.utils</jenkins.build.dependency>
                 <jenkins.build.dependency>org.eclipse.osbp.xtext.addons</jenkins.build.dependency>
                 <jenkins.build.dependency>org.eclipse.osbp.xtext.i18n</jenkins.build.dependency>
diff --git a/org.eclipse.osbp.xtext.strategy.tests/xtend-gen/org/eclipse/osbp/xtext/strategy/tests/StrategyDSLParsingTest.java b/org.eclipse.osbp.xtext.strategy.tests/xtend-gen/org/eclipse/osbp/xtext/strategy/tests/StrategyDSLParsingTest.java
index e22c435..24d737f 100644
--- a/org.eclipse.osbp.xtext.strategy.tests/xtend-gen/org/eclipse/osbp/xtext/strategy/tests/StrategyDSLParsingTest.java
+++ b/org.eclipse.osbp.xtext.strategy.tests/xtend-gen/org/eclipse/osbp/xtext/strategy/tests/StrategyDSLParsingTest.java
@@ -1,17 +1,15 @@
 /**
- *                                                                            
- *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
- *                                                                            
- *  All rights reserved. This program and the accompanying materials           
- *  are made available under the terms of the Eclipse Public License 2.0        
- *  which accompanies this distribution, and is available at                  
- *  https://www.eclipse.org/legal/epl-2.0/                                 
- *                                 
- *  SPDX-License-Identifier: EPL-2.0                                 
- *                                                                            
- *  Contributors:                                                      
- * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
  * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License 2.0
+ *  which accompanies this distribution, and is available at
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *  Contributors:
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
  */
 package org.eclipse.osbp.xtext.strategy.tests;
 
diff --git a/org.eclipse.osbp.xtext.strategy.ui/xtend-gen/org/eclipse/osbp/xtext/strategy/ui/contentassist/StrategyDSLProposalProvider.java b/org.eclipse.osbp.xtext.strategy.ui/xtend-gen/org/eclipse/osbp/xtext/strategy/ui/contentassist/StrategyDSLProposalProvider.java
index 4bdff4a..1d40554 100644
--- a/org.eclipse.osbp.xtext.strategy.ui/xtend-gen/org/eclipse/osbp/xtext/strategy/ui/contentassist/StrategyDSLProposalProvider.java
+++ b/org.eclipse.osbp.xtext.strategy.ui/xtend-gen/org/eclipse/osbp/xtext/strategy/ui/contentassist/StrategyDSLProposalProvider.java
@@ -2,10 +2,10 @@
  * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
  * 
  *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0 
+ *  are made available under the terms of the Eclipse Public License 2.0
  *  which accompanies this distribution, and is available at
  *  https://www.eclipse.org/legal/epl-2.0/
- *
+ * 
  *  SPDX-License-Identifier: EPL-2.0
  * 
  *  Contributors:
diff --git a/org.eclipse.osbp.xtext.strategy.ui/xtend-gen/org/eclipse/osbp/xtext/strategy/ui/labeling/StrategyDSLDescriptionLabelProvider.java b/org.eclipse.osbp.xtext.strategy.ui/xtend-gen/org/eclipse/osbp/xtext/strategy/ui/labeling/StrategyDSLDescriptionLabelProvider.java
index 8cca8a4..faf71a2 100644
--- a/org.eclipse.osbp.xtext.strategy.ui/xtend-gen/org/eclipse/osbp/xtext/strategy/ui/labeling/StrategyDSLDescriptionLabelProvider.java
+++ b/org.eclipse.osbp.xtext.strategy.ui/xtend-gen/org/eclipse/osbp/xtext/strategy/ui/labeling/StrategyDSLDescriptionLabelProvider.java
@@ -2,10 +2,10 @@
  * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
  * 
  *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0 
+ *  are made available under the terms of the Eclipse Public License 2.0
  *  which accompanies this distribution, and is available at
  *  https://www.eclipse.org/legal/epl-2.0/
- *
+ * 
  *  SPDX-License-Identifier: EPL-2.0
  * 
  *  Contributors:
diff --git a/org.eclipse.osbp.xtext.strategy.ui/xtend-gen/org/eclipse/osbp/xtext/strategy/ui/labeling/StrategyDSLLabelProvider.java b/org.eclipse.osbp.xtext.strategy.ui/xtend-gen/org/eclipse/osbp/xtext/strategy/ui/labeling/StrategyDSLLabelProvider.java
index a6bccd4..b40b92e 100644
--- a/org.eclipse.osbp.xtext.strategy.ui/xtend-gen/org/eclipse/osbp/xtext/strategy/ui/labeling/StrategyDSLLabelProvider.java
+++ b/org.eclipse.osbp.xtext.strategy.ui/xtend-gen/org/eclipse/osbp/xtext/strategy/ui/labeling/StrategyDSLLabelProvider.java
@@ -2,10 +2,10 @@
  * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
  * 
  *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0 
+ *  are made available under the terms of the Eclipse Public License 2.0
  *  which accompanies this distribution, and is available at
  *  https://www.eclipse.org/legal/epl-2.0/
- *
+ * 
  *  SPDX-License-Identifier: EPL-2.0
  * 
  *  Contributors:
diff --git a/org.eclipse.osbp.xtext.strategy.ui/xtend-gen/org/eclipse/osbp/xtext/strategy/ui/outline/StrategyDSLOutlineTreeProvider.java b/org.eclipse.osbp.xtext.strategy.ui/xtend-gen/org/eclipse/osbp/xtext/strategy/ui/outline/StrategyDSLOutlineTreeProvider.java
index dd7cd7a..07b9881 100644
--- a/org.eclipse.osbp.xtext.strategy.ui/xtend-gen/org/eclipse/osbp/xtext/strategy/ui/outline/StrategyDSLOutlineTreeProvider.java
+++ b/org.eclipse.osbp.xtext.strategy.ui/xtend-gen/org/eclipse/osbp/xtext/strategy/ui/outline/StrategyDSLOutlineTreeProvider.java
@@ -2,10 +2,10 @@
  * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
  * 
  *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0 
+ *  are made available under the terms of the Eclipse Public License 2.0
  *  which accompanies this distribution, and is available at
  *  https://www.eclipse.org/legal/epl-2.0/
- *
+ * 
  *  SPDX-License-Identifier: EPL-2.0
  * 
  *  Contributors:
diff --git a/org.eclipse.osbp.xtext.strategy.ui/xtend-gen/org/eclipse/osbp/xtext/strategy/ui/quickfix/StrategyDSLQuickfixProvider.java b/org.eclipse.osbp.xtext.strategy.ui/xtend-gen/org/eclipse/osbp/xtext/strategy/ui/quickfix/StrategyDSLQuickfixProvider.java
index 7d56a60..033dcbe 100644
--- a/org.eclipse.osbp.xtext.strategy.ui/xtend-gen/org/eclipse/osbp/xtext/strategy/ui/quickfix/StrategyDSLQuickfixProvider.java
+++ b/org.eclipse.osbp.xtext.strategy.ui/xtend-gen/org/eclipse/osbp/xtext/strategy/ui/quickfix/StrategyDSLQuickfixProvider.java
@@ -2,10 +2,10 @@
  * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
  * 
  *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0 
+ *  are made available under the terms of the Eclipse Public License 2.0
  *  which accompanies this distribution, and is available at
  *  https://www.eclipse.org/legal/epl-2.0/
- *
+ * 
  *  SPDX-License-Identifier: EPL-2.0
  * 
  *  Contributors:
diff --git a/org.eclipse.osbp.xtext.strategy/META-INF/MANIFEST.MF b/org.eclipse.osbp.xtext.strategy/META-INF/MANIFEST.MF
index 2a6c105..d9afc17 100644
--- a/org.eclipse.osbp.xtext.strategy/META-INF/MANIFEST.MF
+++ b/org.eclipse.osbp.xtext.strategy/META-INF/MANIFEST.MF
@@ -49,10 +49,12 @@
  org.eclipse.osbp.xtext.builder.xbase.setups;bundle-version="[0.9.0,0.10.0)",
  org.eclipse.osbp.xtext.oxtype;bundle-version="[0.9.0,0.10.0)",
  org.eclipse.xtend.lib
-Import-Package: javax.validation,
+Import-Package: com.vaadin.ui;version="7.7.13",
+ javax.validation,
  javax.validation.constraints,
  org.apache.log4j,
  org.eclipse.osbp.dsl.mwe;version="0.9.0";resolution:=optional,
+ org.eclipse.osbp.ui.api.customfields;version="0.9.0",
  org.eclipse.osbp.utils.annotation;version="0.9.0",
  org.osgi.service.component.annotations
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/FocusingEnhancer.java b/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/FocusingEnhancer.java
index 96e0bd8..2540f95 100644
--- a/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/FocusingEnhancer.java
+++ b/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/FocusingEnhancer.java
@@ -4,13 +4,14 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
  *   
  *  Contributors:  
- *  		Jose C. Dominguez - Initial implementation 
+ * 		Loetz GmbH&Co.KG - Initial implementation
+ *  		Jose C. Dominguez - ongoing development 
  *  
  */
 package org.eclipse.osbp.xtext.strategy;
diff --git a/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/FocusingEnum.java b/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/FocusingEnum.java
index f5465a2..8c09b0c 100644
--- a/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/FocusingEnum.java
+++ b/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/FocusingEnum.java
@@ -4,13 +4,14 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
  *   
  *  Contributors:  
- *  		Jose C. Dominguez - Initial implementation 
+ * 		Loetz GmbH&Co.KG - Initial implementation
+ *  		Jose C. Dominguez - ongoing development 
  *  
  */
 package org.eclipse.osbp.xtext.strategy;
diff --git a/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/FocusingStrategy.java b/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/FocusingStrategy.java
index f76b91f..04d10d2 100644
--- a/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/FocusingStrategy.java
+++ b/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/FocusingStrategy.java
@@ -4,13 +4,14 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
  *   
  *  Contributors:  
- *  		Jose C. Dominguez - Initial implementation 
+ * 		Loetz GmbH&Co.KG - Initial implementation
+ *  		Jose C. Dominguez - ongoing development 
  *  
  */
 package org.eclipse.osbp.xtext.strategy;
diff --git a/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/LayoutingEnum.java b/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/LayoutingEnum.java
index cdd4e8c..04079f2 100644
--- a/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/LayoutingEnum.java
+++ b/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/LayoutingEnum.java
@@ -4,13 +4,14 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
  *   
  *  Contributors:  
- *  		Jose C. Dominguez - Initial implementation 
+ * 		Loetz GmbH&Co.KG - Initial implementation
+ *  		Jose C. Dominguez - ongoing development 
  *  
  */
 package org.eclipse.osbp.xtext.strategy;
diff --git a/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/LayoutingStrategy.java b/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/LayoutingStrategy.java
index da913f4..e6fd8fc 100644
--- a/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/LayoutingStrategy.java
+++ b/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/LayoutingStrategy.java
@@ -4,13 +4,14 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
  *   
  *  Contributors:  
- *  		Jose C. Dominguez - Initial implementation 
+ * 		Loetz GmbH&Co.KG - Initial implementation
+ *  		Jose C. Dominguez - ongoing development 
  *  
  */
 package org.eclipse.osbp.xtext.strategy;
diff --git a/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/Strategy.java b/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/Strategy.java
index 9601c02..a911c5a 100644
--- a/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/Strategy.java
+++ b/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/Strategy.java
@@ -4,13 +4,14 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
  *   
  *  Contributors:  
- *  		Jose C. Dominguez - Initial implementation 
+ * 		Loetz GmbH&Co.KG - Initial implementation
+ *  		Jose C. Dominguez - ongoing development 
  *  
  */
 package org.eclipse.osbp.xtext.strategy;
diff --git a/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/StrategyBase.java b/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/StrategyBase.java
index 0fdc127..50cc533 100644
--- a/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/StrategyBase.java
+++ b/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/StrategyBase.java
@@ -4,13 +4,14 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
  *   
  *  Contributors:  
- *  		Jose C. Dominguez - Initial implementation 
+ * 		Loetz GmbH&Co.KG - Initial implementation
+ *  		Jose C. Dominguez - ongoing development 
  *  
  */
 package org.eclipse.osbp.xtext.strategy;
diff --git a/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/StrategyDSLFactory.java b/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/StrategyDSLFactory.java
index bb7b52d..bf16b6b 100644
--- a/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/StrategyDSLFactory.java
+++ b/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/StrategyDSLFactory.java
@@ -4,13 +4,14 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
  *   
  *  Contributors:  
- *  		Jose C. Dominguez - Initial implementation 
+ * 		Loetz GmbH&Co.KG - Initial implementation
+ *  		Jose C. Dominguez - ongoing development 
  *  
  */
 package org.eclipse.osbp.xtext.strategy;
diff --git a/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/StrategyDSLPackage.java b/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/StrategyDSLPackage.java
index 1c5d562..a92a7ad 100644
--- a/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/StrategyDSLPackage.java
+++ b/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/StrategyDSLPackage.java
@@ -4,13 +4,14 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
  *   
  *  Contributors:  
- *  		Jose C. Dominguez - Initial implementation 
+ * 		Loetz GmbH&Co.KG - Initial implementation
+ *  		Jose C. Dominguez - ongoing development 
  *  
  */
 package org.eclipse.osbp.xtext.strategy;
@@ -39,9 +40,7 @@
  * <!-- end-user-doc -->
  * @see org.eclipse.osbp.xtext.strategy.StrategyDSLFactory
  * @model kind="package"
-n https://www.eclipse.org/legal/epl-2.0/ \r\n\r\n Based on ideas from Xtext, Xtend, Xcore\r\n  \r\n Contributors:  \r\n \t\tJose C. Dominguez - Initial implementation \r\n ' basePackage='org.eclipse.osbp.xtext'"
-n \r\n\r\n Based on ideas from Xtext, Xtend, Xcore\r\n  \r\n Contributors:  \r\n \t\tJose C. Dominguez - Initial implementation \r\n ' basePackage='org.eclipse.osbp.xtext'"
-n SPDX-License-Identifier: EPL-2.0 \r\n\r\n Based on ideas from Xtext, Xtend, Xcore\r\n  \r\n Contributors:  \r\n \t\tJose C. Dominguez - Initial implementation \r\n ' basePackage='org.eclipse.osbp.xtext'"
+ *        annotation="http://www.eclipse.org/emf/2002/GenModel fileExtensions='strategy' modelName='StrategyDSL' prefix='StrategyDSL' updateClasspath='false' loadInitialization='false' literalsInterface='true' copyrightText='Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)\r\n All rights reserved. This program and the accompanying materials \r\n are made available under the terms of the Eclipse Public License 2.0  \r\n which accompanies this distribution, and is available at \r\n https://www.eclipse.org/legal/epl-2.0/ \r\n \r\n SPDX-License-Identifier: EPL-2.0 \r\n\r\n Based on ideas from Xtext, Xtend, Xcore\r\n  \r\n Contributors:  \r\n\t\tLoetz GmbH&Co.KG - Initial implementation\r\n \t\tJose C. Dominguez - ongoing development \r\n ' basePackage='org.eclipse.osbp.xtext'"
  *        annotation="http://www.eclipse.org/emf/2002/Ecore rootPackage='strategydsl'"
  * @generated
  */
diff --git a/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/StrategyDefault.java b/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/StrategyDefault.java
index fe08855..e668d50 100644
--- a/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/StrategyDefault.java
+++ b/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/StrategyDefault.java
@@ -4,13 +4,14 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
  *   
  *  Contributors:  
- *  		Jose C. Dominguez - Initial implementation 
+ * 		Loetz GmbH&Co.KG - Initial implementation
+ *  		Jose C. Dominguez - ongoing development 
  *  
  */
 package org.eclipse.osbp.xtext.strategy;
diff --git a/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/StrategyLazyResolver.java b/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/StrategyLazyResolver.java
index db076ef..de59172 100644
--- a/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/StrategyLazyResolver.java
+++ b/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/StrategyLazyResolver.java
@@ -4,13 +4,14 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
  *   
  *  Contributors:  
- *  		Jose C. Dominguez - Initial implementation 
+ * 		Loetz GmbH&Co.KG - Initial implementation
+ *  		Jose C. Dominguez - ongoing development 
  *  
  */
 package org.eclipse.osbp.xtext.strategy;
diff --git a/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/StrategyModel.java b/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/StrategyModel.java
index 27482f8..66ea6f0 100644
--- a/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/StrategyModel.java
+++ b/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/StrategyModel.java
@@ -4,13 +4,14 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
  *   
  *  Contributors:  
- *  		Jose C. Dominguez - Initial implementation 
+ * 		Loetz GmbH&Co.KG - Initial implementation
+ *  		Jose C. Dominguez - ongoing development 
  *  
  */
 package org.eclipse.osbp.xtext.strategy;
diff --git a/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/StrategyPackage.java b/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/StrategyPackage.java
index db02654..d0266dd 100644
--- a/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/StrategyPackage.java
+++ b/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/StrategyPackage.java
@@ -4,13 +4,14 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
  *   
  *  Contributors:  
- *  		Jose C. Dominguez - Initial implementation 
+ * 		Loetz GmbH&Co.KG - Initial implementation
+ *  		Jose C. Dominguez - ongoing development 
  *  
  */
 package org.eclipse.osbp.xtext.strategy;
diff --git a/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/StrategyTarget.java b/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/StrategyTarget.java
index c8e0f9d..1c63271 100644
--- a/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/StrategyTarget.java
+++ b/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/StrategyTarget.java
@@ -4,13 +4,14 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
  *   
  *  Contributors:  
- *  		Jose C. Dominguez - Initial implementation 
+ * 		Loetz GmbH&Co.KG - Initial implementation
+ *  		Jose C. Dominguez - ongoing development 
  *  
  */
 package org.eclipse.osbp.xtext.strategy;
diff --git a/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/impl/FocusingEnhancerImpl.java b/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/impl/FocusingEnhancerImpl.java
index ee5eee0..c7ac5c9 100644
--- a/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/impl/FocusingEnhancerImpl.java
+++ b/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/impl/FocusingEnhancerImpl.java
@@ -4,13 +4,14 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
  *   
  *  Contributors:  
- *  		Jose C. Dominguez - Initial implementation 
+ * 		Loetz GmbH&Co.KG - Initial implementation
+ *  		Jose C. Dominguez - ongoing development 
  *  
  */
 package org.eclipse.osbp.xtext.strategy.impl;
diff --git a/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/impl/FocusingStrategyImpl.java b/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/impl/FocusingStrategyImpl.java
index 77a9277..c6c761e 100644
--- a/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/impl/FocusingStrategyImpl.java
+++ b/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/impl/FocusingStrategyImpl.java
@@ -4,13 +4,14 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
  *   
  *  Contributors:  
- *  		Jose C. Dominguez - Initial implementation 
+ * 		Loetz GmbH&Co.KG - Initial implementation
+ *  		Jose C. Dominguez - ongoing development 
  *  
  */
 package org.eclipse.osbp.xtext.strategy.impl;
diff --git a/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/impl/LayoutingStrategyImpl.java b/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/impl/LayoutingStrategyImpl.java
index e5e5cfc..1533ab9 100644
--- a/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/impl/LayoutingStrategyImpl.java
+++ b/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/impl/LayoutingStrategyImpl.java
@@ -4,13 +4,14 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
  *   
  *  Contributors:  
- *  		Jose C. Dominguez - Initial implementation 
+ * 		Loetz GmbH&Co.KG - Initial implementation
+ *  		Jose C. Dominguez - ongoing development 
  *  
  */
 package org.eclipse.osbp.xtext.strategy.impl;
diff --git a/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/impl/StrategyBaseImpl.java b/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/impl/StrategyBaseImpl.java
index fe8a1d3..2df315d 100644
--- a/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/impl/StrategyBaseImpl.java
+++ b/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/impl/StrategyBaseImpl.java
@@ -4,13 +4,14 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
  *   
  *  Contributors:  
- *  		Jose C. Dominguez - Initial implementation 
+ * 		Loetz GmbH&Co.KG - Initial implementation
+ *  		Jose C. Dominguez - ongoing development 
  *  
  */
 package org.eclipse.osbp.xtext.strategy.impl;
diff --git a/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/impl/StrategyDSLFactoryImpl.java b/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/impl/StrategyDSLFactoryImpl.java
index e6863d3..c32ae06 100644
--- a/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/impl/StrategyDSLFactoryImpl.java
+++ b/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/impl/StrategyDSLFactoryImpl.java
@@ -4,13 +4,14 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
  *   
  *  Contributors:  
- *  		Jose C. Dominguez - Initial implementation 
+ * 		Loetz GmbH&Co.KG - Initial implementation
+ *  		Jose C. Dominguez - ongoing development 
  *  
  */
 package org.eclipse.osbp.xtext.strategy.impl;
diff --git a/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/impl/StrategyDSLPackageImpl.java b/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/impl/StrategyDSLPackageImpl.java
index 12ca5a5..f252c1c 100644
--- a/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/impl/StrategyDSLPackageImpl.java
+++ b/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/impl/StrategyDSLPackageImpl.java
@@ -4,13 +4,14 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
  *   
  *  Contributors:  
- *  		Jose C. Dominguez - Initial implementation 
+ * 		Loetz GmbH&Co.KG - Initial implementation
+ *  		Jose C. Dominguez - ongoing development 
  *  
  */
 package org.eclipse.osbp.xtext.strategy.impl;
diff --git a/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/impl/StrategyDefaultImpl.java b/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/impl/StrategyDefaultImpl.java
index 661cafb..f55ff1b 100644
--- a/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/impl/StrategyDefaultImpl.java
+++ b/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/impl/StrategyDefaultImpl.java
@@ -4,13 +4,14 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
  *   
  *  Contributors:  
- *  		Jose C. Dominguez - Initial implementation 
+ * 		Loetz GmbH&Co.KG - Initial implementation
+ *  		Jose C. Dominguez - ongoing development 
  *  
  */
 package org.eclipse.osbp.xtext.strategy.impl;
diff --git a/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/impl/StrategyImpl.java b/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/impl/StrategyImpl.java
index 8c6a0a0..601a831 100644
--- a/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/impl/StrategyImpl.java
+++ b/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/impl/StrategyImpl.java
@@ -4,13 +4,14 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
  *   
  *  Contributors:  
- *  		Jose C. Dominguez - Initial implementation 
+ * 		Loetz GmbH&Co.KG - Initial implementation
+ *  		Jose C. Dominguez - ongoing development 
  *  
  */
 package org.eclipse.osbp.xtext.strategy.impl;
diff --git a/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/impl/StrategyLazyResolverImpl.java b/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/impl/StrategyLazyResolverImpl.java
index ad5cec6..49fb465 100644
--- a/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/impl/StrategyLazyResolverImpl.java
+++ b/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/impl/StrategyLazyResolverImpl.java
@@ -4,13 +4,14 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
  *   
  *  Contributors:  
- *  		Jose C. Dominguez - Initial implementation 
+ * 		Loetz GmbH&Co.KG - Initial implementation
+ *  		Jose C. Dominguez - ongoing development 
  *  
  */
 package org.eclipse.osbp.xtext.strategy.impl;
diff --git a/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/impl/StrategyModelImpl.java b/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/impl/StrategyModelImpl.java
index d91f5f6..c0f618d 100644
--- a/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/impl/StrategyModelImpl.java
+++ b/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/impl/StrategyModelImpl.java
@@ -4,13 +4,14 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
  *   
  *  Contributors:  
- *  		Jose C. Dominguez - Initial implementation 
+ * 		Loetz GmbH&Co.KG - Initial implementation
+ *  		Jose C. Dominguez - ongoing development 
  *  
  */
 package org.eclipse.osbp.xtext.strategy.impl;
diff --git a/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/impl/StrategyPackageImpl.java b/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/impl/StrategyPackageImpl.java
index 525536a..c06a145 100644
--- a/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/impl/StrategyPackageImpl.java
+++ b/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/impl/StrategyPackageImpl.java
@@ -4,13 +4,14 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
  *   
  *  Contributors:  
- *  		Jose C. Dominguez - Initial implementation 
+ * 		Loetz GmbH&Co.KG - Initial implementation
+ *  		Jose C. Dominguez - ongoing development 
  *  
  */
 package org.eclipse.osbp.xtext.strategy.impl;
diff --git a/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/impl/StrategyTargetImpl.java b/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/impl/StrategyTargetImpl.java
index 05f7c9e..334ac77 100644
--- a/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/impl/StrategyTargetImpl.java
+++ b/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/impl/StrategyTargetImpl.java
@@ -4,13 +4,14 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
  *   
  *  Contributors:  
- *  		Jose C. Dominguez - Initial implementation 
+ * 		Loetz GmbH&Co.KG - Initial implementation
+ *  		Jose C. Dominguez - ongoing development 
  *  
  */
 package org.eclipse.osbp.xtext.strategy.impl;
diff --git a/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/util/StrategyDSLAdapterFactory.java b/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/util/StrategyDSLAdapterFactory.java
index 7971f5e..49af553 100644
--- a/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/util/StrategyDSLAdapterFactory.java
+++ b/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/util/StrategyDSLAdapterFactory.java
@@ -4,13 +4,14 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
  *   
  *  Contributors:  
- *  		Jose C. Dominguez - Initial implementation 
+ * 		Loetz GmbH&Co.KG - Initial implementation
+ *  		Jose C. Dominguez - ongoing development 
  *  
  */
 package org.eclipse.osbp.xtext.strategy.util;
diff --git a/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/util/StrategyDSLSwitch.java b/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/util/StrategyDSLSwitch.java
index 50a8513..90e10d5 100644
--- a/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/util/StrategyDSLSwitch.java
+++ b/org.eclipse.osbp.xtext.strategy/emf-gen/org/eclipse/osbp/xtext/strategy/util/StrategyDSLSwitch.java
@@ -4,13 +4,14 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
  *   
  *  Contributors:  
- *  		Jose C. Dominguez - Initial implementation 
+ * 		Loetz GmbH&Co.KG - Initial implementation
+ *  		Jose C. Dominguez - ongoing development 
  *  
  */
 package org.eclipse.osbp.xtext.strategy.util;
diff --git a/org.eclipse.osbp.xtext.strategy/src/org/eclipse/osbp/xtext/strategy/generator/StrategyDSLGenerator.xtend b/org.eclipse.osbp.xtext.strategy/src/org/eclipse/osbp/xtext/strategy/generator/StrategyDSLGenerator.xtend
index 2657b3f..283ba54 100644
--- a/org.eclipse.osbp.xtext.strategy/src/org/eclipse/osbp/xtext/strategy/generator/StrategyDSLGenerator.xtend
+++ b/org.eclipse.osbp.xtext.strategy/src/org/eclipse/osbp/xtext/strategy/generator/StrategyDSLGenerator.xtend
@@ -19,6 +19,7 @@
  
 package org.eclipse.osbp.xtext.strategy.generator
 
+import com.vaadin.ui.Component
 import java.util.ArrayList
 import javax.inject.Inject
 import org.eclipse.emf.ecore.EObject
@@ -45,6 +46,7 @@
 import org.eclipse.osbp.ecview.^extension.model.YSuspectInfo
 import org.eclipse.osbp.runtime.common.keystroke.KeyCode
 import org.eclipse.osbp.runtime.common.keystroke.ModifierKey
+import org.eclipse.osbp.ui.api.customfields.ICustomComponentFocusable
 import org.eclipse.osbp.xtext.addons.AdvancedJvmModelGenerator
 import org.eclipse.osbp.xtext.basic.generator.BasicDslGeneratorUtils
 import org.eclipse.xtext.common.types.JvmGenericType
@@ -90,6 +92,8 @@
 						, YSuspectInfo
 						, YStrategyLayout
 						, YLayoutingInfo
+						, ICustomComponentFocusable 
+						, Component
 					)
 				}
 			}
diff --git a/org.eclipse.osbp.xtext.strategy/src/org/eclipse/osbp/xtext/strategy/jvmmodel/StrategyDSLFocusingStrategyCreator.xtend b/org.eclipse.osbp.xtext.strategy/src/org/eclipse/osbp/xtext/strategy/jvmmodel/StrategyDSLFocusingStrategyCreator.xtend
index 4da7a6b..8a61f9c 100644
--- a/org.eclipse.osbp.xtext.strategy/src/org/eclipse/osbp/xtext/strategy/jvmmodel/StrategyDSLFocusingStrategyCreator.xtend
+++ b/org.eclipse.osbp.xtext.strategy/src/org/eclipse/osbp/xtext/strategy/jvmmodel/StrategyDSLFocusingStrategyCreator.xtend
@@ -43,6 +43,8 @@
 import org.eclipse.xtext.xbase.jvmmodel.JvmTypesBuilder
 import org.osgi.service.component.annotations.Component
 import org.eclipse.osbp.ecview.core.common.model.core.YElement
+import org.eclipse.osbp.ecview.core.common.model.core.YView
+import org.eclipse.xtext.xbase.typesystem.references.LightweightTypeReference
 
 class StrategyDSLFocusingStrategyCreator {
 	@Inject extension JvmTypesBuilder
@@ -121,9 +123,13 @@
 					IViewContext context = ModelUtil.getViewContext(yView);
 					IWidgetAssocationsService<Object, ? extends YElement> service = context.getService(IWidgetAssocationsService.ID);
 					YEmbeddable yCurrentFocus = (YEmbeddable) service.getModelElement(target);
-					// YEmbeddable yNextFocus = findElementToFocus(yCurrentFocus, yLayout);
-					YEmbeddable yNextFocus = findElementToFocus(yCurrentFocus, service);
-					yView.setCurrentFocus((YFocusable) yNextFocus);
+					
+					if (yCurrentFocus == null) {
+						findNextFocusableForCustomComponents(yView, target, service);
+					} else {
+						YEmbeddable yNextFocus = findElementToFocus(yCurrentFocus, service);
+						yView.setCurrentFocus((YFocusable) yNextFocus);
+					}
 ''')]
 				])
 		
@@ -161,6 +167,43 @@
 					body = [append(focusingStrategy.findColumnIdx)]
 				])
 		
+				// create new findNextFocusableForCustomComponents
+			type.members += focusingStrategy.toMethod("findNextFocusableForCustomComponents", _typeReferenceBuilder.typeRef(Void::TYPE),
+				[
+					visibility = JvmVisibility.PRIVATE
+					parameters += focusingStrategy.toParameter("yView", _typeReferenceBuilder.typeRef(YView))
+					parameters += focusingStrategy.toParameter("currentComponent", _typeReferenceBuilder.typeRef(Object))
+					parameters += focusingStrategy.toParameter("service", _typeReferenceBuilder.typeRef(IWidgetAssocationsService,_typeReferenceBuilder.typeRef(Object),_typeReferenceBuilder.wildcardExtends(_typeReferenceBuilder.typeRef(YElement))))
+					body = [append(focusingStrategy.findNextFocusableForCustomComponents)]
+				])
+				
+	}
+	
+	def findNextFocusableForCustomComponents(FocusingStrategy strategy){
+		'''
+		Component currentCustomComponent = ((Component) currentComponent).getParent();
+		while (currentCustomComponent != null && !(currentCustomComponent instanceof ICustomComponentFocusable) && currentCustomComponent instanceof Component) {
+			currentCustomComponent = currentCustomComponent.getParent();
+		}
+		if(currentCustomComponent != null){
+			
+		
+		«IF strategy.focus.literal.equals(FocusingEnum.FORWARD.literal)»
+			if (((ICustomComponentFocusable)currentCustomComponent).isLastFocusable(currentComponent)) {
+		«ELSEIF strategy.focus.literal.equals(FocusingEnum.BACKWARD.literal)»
+			if (((ICustomComponentFocusable)currentCustomComponent).isFirstFocusable(currentComponent)) {
+		«ENDIF»		
+				YEmbeddable yCurrentFocus = (YEmbeddable) service.getModelElement(currentCustomComponent);
+			
+				YEmbeddable yNextFocus = findElementToFocus(yCurrentFocus, service);
+				yView.setCurrentFocus((YFocusable) yNextFocus);
+			}
+			else {
+				YEmbeddable yCurrentFocus = (YEmbeddable) service.getModelElement(currentCustomComponent);
+				yView.setCurrentFocus((YFocusable) yCurrentFocus);
+			}
+		}
+		'''
 	}
 	
 	def findColumnIdxFocusable(FocusingStrategy focusingStrategy)'''
diff --git a/org.eclipse.osbp.xtext.strategy/xtend-gen/org/eclipse/osbp/xtext/strategy/constants/StrategyConstants.java b/org.eclipse.osbp.xtext.strategy/xtend-gen/org/eclipse/osbp/xtext/strategy/constants/StrategyConstants.java
index d67168f..7b3baf3 100644
--- a/org.eclipse.osbp.xtext.strategy/xtend-gen/org/eclipse/osbp/xtext/strategy/constants/StrategyConstants.java
+++ b/org.eclipse.osbp.xtext.strategy/xtend-gen/org/eclipse/osbp/xtext/strategy/constants/StrategyConstants.java
@@ -2,10 +2,10 @@
  * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
  * 
  *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0 
+ *  are made available under the terms of the Eclipse Public License 2.0
  *  which accompanies this distribution, and is available at
  *  https://www.eclipse.org/legal/epl-2.0/
- *
+ * 
  *  SPDX-License-Identifier: EPL-2.0
  * 
  *  Contributors:
diff --git a/org.eclipse.osbp.xtext.strategy/xtend-gen/org/eclipse/osbp/xtext/strategy/formatting/StrategyDSLFormatter.java b/org.eclipse.osbp.xtext.strategy/xtend-gen/org/eclipse/osbp/xtext/strategy/formatting/StrategyDSLFormatter.java
index a5cd503..b50a00b 100644
--- a/org.eclipse.osbp.xtext.strategy/xtend-gen/org/eclipse/osbp/xtext/strategy/formatting/StrategyDSLFormatter.java
+++ b/org.eclipse.osbp.xtext.strategy/xtend-gen/org/eclipse/osbp/xtext/strategy/formatting/StrategyDSLFormatter.java
@@ -2,10 +2,10 @@
  * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
  * 
  *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0 
+ *  are made available under the terms of the Eclipse Public License 2.0
  *  which accompanies this distribution, and is available at
  *  https://www.eclipse.org/legal/epl-2.0/
- *
+ * 
  *  SPDX-License-Identifier: EPL-2.0
  * 
  *  Contributors:
diff --git a/org.eclipse.osbp.xtext.strategy/xtend-gen/org/eclipse/osbp/xtext/strategy/generator/StrategyDSLGenerator.java b/org.eclipse.osbp.xtext.strategy/xtend-gen/org/eclipse/osbp/xtext/strategy/generator/StrategyDSLGenerator.java
index 311c53a..7b51e11 100644
--- a/org.eclipse.osbp.xtext.strategy/xtend-gen/org/eclipse/osbp/xtext/strategy/generator/StrategyDSLGenerator.java
+++ b/org.eclipse.osbp.xtext.strategy/xtend-gen/org/eclipse/osbp/xtext/strategy/generator/StrategyDSLGenerator.java
@@ -2,10 +2,10 @@
  * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
  * 
  *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0 
+ *  are made available under the terms of the Eclipse Public License 2.0
  *  which accompanies this distribution, and is available at
  *  https://www.eclipse.org/legal/epl-2.0/
- *
+ * 
  *  SPDX-License-Identifier: EPL-2.0
  * 
  *  Contributors:
@@ -17,6 +17,7 @@
 package org.eclipse.osbp.xtext.strategy.generator;
 
 import com.google.common.base.Objects;
+import com.vaadin.ui.Component;
 import java.util.ArrayList;
 import javax.inject.Inject;
 import org.eclipse.emf.common.util.EList;
@@ -44,6 +45,7 @@
 import org.eclipse.osbp.ecview.extension.model.YSuspectInfo;
 import org.eclipse.osbp.runtime.common.keystroke.KeyCode;
 import org.eclipse.osbp.runtime.common.keystroke.ModifierKey;
+import org.eclipse.osbp.ui.api.customfields.ICustomComponentFocusable;
 import org.eclipse.osbp.xtext.addons.AdvancedJvmModelGenerator;
 import org.eclipse.osbp.xtext.basic.generator.BasicDslGeneratorUtils;
 import org.eclipse.xtext.common.types.JvmGenericType;
@@ -76,7 +78,7 @@
           boolean _notEquals = (!Objects.equal(_type, null));
           if (_notEquals) {
             this.setBuilder(((JvmGenericType)context).eResource());
-            this._basicDslGeneratorUtils.addImportFor(this, importManager, this._typeReferenceBuilder, ArrayList.class, YView.class, IViewContext.class, IWidgetAssocationsService.class, YElement.class, YFocusable.class, YLayout.class, YHorizontalLayout.class, YVerticalLayout.class, YGridLayout.class, YFormLayout.class, YCssLayout.class, YEmbeddable.class, YField.class, ModelUtil.class, KeyCode.class, ModifierKey.class, ExtensionModelFactory.class, YECviewFactory.class, YDelegatingFocusingStrategy.class, YSuspect.class, YSuspectInfo.class, YStrategyLayout.class, YLayoutingInfo.class);
+            this._basicDslGeneratorUtils.addImportFor(this, importManager, this._typeReferenceBuilder, ArrayList.class, YView.class, IViewContext.class, IWidgetAssocationsService.class, YElement.class, YFocusable.class, YLayout.class, YHorizontalLayout.class, YVerticalLayout.class, YGridLayout.class, YFormLayout.class, YCssLayout.class, YEmbeddable.class, YField.class, ModelUtil.class, KeyCode.class, ModifierKey.class, ExtensionModelFactory.class, YECviewFactory.class, YDelegatingFocusingStrategy.class, YSuspect.class, YSuspectInfo.class, YStrategyLayout.class, YLayoutingInfo.class, ICustomComponentFocusable.class, Component.class);
           }
         }
       }
diff --git a/org.eclipse.osbp.xtext.strategy/xtend-gen/org/eclipse/osbp/xtext/strategy/jvmmodel/StrategyDSLFocusingEnhancerCreator.java b/org.eclipse.osbp.xtext.strategy/xtend-gen/org/eclipse/osbp/xtext/strategy/jvmmodel/StrategyDSLFocusingEnhancerCreator.java
index 6585c9f..584f1b1 100644
--- a/org.eclipse.osbp.xtext.strategy/xtend-gen/org/eclipse/osbp/xtext/strategy/jvmmodel/StrategyDSLFocusingEnhancerCreator.java
+++ b/org.eclipse.osbp.xtext.strategy/xtend-gen/org/eclipse/osbp/xtext/strategy/jvmmodel/StrategyDSLFocusingEnhancerCreator.java
@@ -2,10 +2,10 @@
  * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
  * 
  *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0 
+ *  are made available under the terms of the Eclipse Public License 2.0
  *  which accompanies this distribution, and is available at
  *  https://www.eclipse.org/legal/epl-2.0/
- *
+ * 
  *  SPDX-License-Identifier: EPL-2.0
  * 
  *  Contributors:
diff --git a/org.eclipse.osbp.xtext.strategy/xtend-gen/org/eclipse/osbp/xtext/strategy/jvmmodel/StrategyDSLFocusingStrategyCreator.java b/org.eclipse.osbp.xtext.strategy/xtend-gen/org/eclipse/osbp/xtext/strategy/jvmmodel/StrategyDSLFocusingStrategyCreator.java
index 4d0a00e..6825c71 100644
--- a/org.eclipse.osbp.xtext.strategy/xtend-gen/org/eclipse/osbp/xtext/strategy/jvmmodel/StrategyDSLFocusingStrategyCreator.java
+++ b/org.eclipse.osbp.xtext.strategy/xtend-gen/org/eclipse/osbp/xtext/strategy/jvmmodel/StrategyDSLFocusingStrategyCreator.java
@@ -2,10 +2,10 @@
  * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
  * 
  *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0 
+ *  are made available under the terms of the Eclipse Public License 2.0
  *  which accompanies this distribution, and is available at
  *  https://www.eclipse.org/legal/epl-2.0/
- *
+ * 
  *  SPDX-License-Identifier: EPL-2.0
  * 
  *  Contributors:
@@ -22,6 +22,7 @@
 import org.eclipse.osbp.ecview.core.common.model.core.YElement;
 import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddable;
 import org.eclipse.osbp.ecview.core.common.model.core.YFocusable;
+import org.eclipse.osbp.ecview.core.common.model.core.YView;
 import org.eclipse.osbp.ecview.core.common.services.IWidgetAssocationsService;
 import org.eclipse.osbp.ecview.extension.api.IFocusingStrategy;
 import org.eclipse.osbp.ecview.extension.api.IFocusingStrategyProvider;
@@ -159,12 +160,22 @@
         _builder.newLine();
         _builder.append("YEmbeddable yCurrentFocus = (YEmbeddable) service.getModelElement(target);");
         _builder.newLine();
-        _builder.append("// YEmbeddable yNextFocus = findElementToFocus(yCurrentFocus, yLayout);");
         _builder.newLine();
+        _builder.append("if (yCurrentFocus == null) {");
+        _builder.newLine();
+        _builder.append("\t");
+        _builder.append("findNextFocusableForCustomComponents(yView, target, service);");
+        _builder.newLine();
+        _builder.append("} else {");
+        _builder.newLine();
+        _builder.append("\t");
         _builder.append("YEmbeddable yNextFocus = findElementToFocus(yCurrentFocus, service);");
         _builder.newLine();
+        _builder.append("\t");
         _builder.append("yView.setCurrentFocus((YFocusable) yNextFocus);");
         _builder.newLine();
+        _builder.append("}");
+        _builder.newLine();
         it_1.append(_builder);
       };
       this._jvmTypesBuilder.setBody(it, _function_1);
@@ -229,6 +240,85 @@
     };
     JvmOperation _method_4 = this._jvmTypesBuilder.toMethod(focusingStrategy, "findNextColumnIdx", this._typeReferenceBuilder.typeRef(int.class), _function_4);
     this._jvmTypesBuilder.<JvmOperation>operator_add(_members_4, _method_4);
+    EList<JvmMember> _members_5 = type.getMembers();
+    final Procedure1<JvmOperation> _function_5 = (JvmOperation it) -> {
+      it.setVisibility(JvmVisibility.PRIVATE);
+      EList<JvmFormalParameter> _parameters = it.getParameters();
+      JvmFormalParameter _parameter = this._jvmTypesBuilder.toParameter(focusingStrategy, "yView", this._typeReferenceBuilder.typeRef(YView.class));
+      this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter);
+      EList<JvmFormalParameter> _parameters_1 = it.getParameters();
+      JvmFormalParameter _parameter_1 = this._jvmTypesBuilder.toParameter(focusingStrategy, "currentComponent", this._typeReferenceBuilder.typeRef(Object.class));
+      this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters_1, _parameter_1);
+      EList<JvmFormalParameter> _parameters_2 = it.getParameters();
+      JvmFormalParameter _parameter_2 = this._jvmTypesBuilder.toParameter(focusingStrategy, "service", this._typeReferenceBuilder.typeRef(IWidgetAssocationsService.class, this._typeReferenceBuilder.typeRef(Object.class), this._typeReferenceBuilder.wildcardExtends(this._typeReferenceBuilder.typeRef(YElement.class))));
+      this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters_2, _parameter_2);
+      final Procedure1<ITreeAppendable> _function_6 = (ITreeAppendable it_1) -> {
+        it_1.append(this.findNextFocusableForCustomComponents(focusingStrategy));
+      };
+      this._jvmTypesBuilder.setBody(it, _function_6);
+    };
+    JvmOperation _method_5 = this._jvmTypesBuilder.toMethod(focusingStrategy, "findNextFocusableForCustomComponents", this._typeReferenceBuilder.typeRef(Void.TYPE), _function_5);
+    this._jvmTypesBuilder.<JvmOperation>operator_add(_members_5, _method_5);
+  }
+  
+  public CharSequence findNextFocusableForCustomComponents(final FocusingStrategy strategy) {
+    StringConcatenation _builder = new StringConcatenation();
+    _builder.append("Component currentCustomComponent = ((Component) currentComponent).getParent();");
+    _builder.newLine();
+    _builder.append("while (currentCustomComponent != null && !(currentCustomComponent instanceof ICustomComponentFocusable) && currentCustomComponent instanceof Component) {");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("currentCustomComponent = currentCustomComponent.getParent();");
+    _builder.newLine();
+    _builder.append("}");
+    _builder.newLine();
+    _builder.append("if(currentCustomComponent != null){");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.newLine();
+    _builder.newLine();
+    {
+      boolean _equals = strategy.getFocus().getLiteral().equals(FocusingEnum.FORWARD.getLiteral());
+      if (_equals) {
+        _builder.append("if (((ICustomComponentFocusable)currentCustomComponent).isLastFocusable(currentComponent)) {");
+        _builder.newLine();
+      } else {
+        boolean _equals_1 = strategy.getFocus().getLiteral().equals(FocusingEnum.BACKWARD.getLiteral());
+        if (_equals_1) {
+          _builder.append("if (((ICustomComponentFocusable)currentCustomComponent).isFirstFocusable(currentComponent)) {");
+          _builder.newLine();
+        }
+      }
+    }
+    _builder.append("\t\t");
+    _builder.append("YEmbeddable yCurrentFocus = (YEmbeddable) service.getModelElement(currentCustomComponent);");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.newLine();
+    _builder.append("\t\t");
+    _builder.append("YEmbeddable yNextFocus = findElementToFocus(yCurrentFocus, service);");
+    _builder.newLine();
+    _builder.append("\t\t");
+    _builder.append("yView.setCurrentFocus((YFocusable) yNextFocus);");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("}");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("else {");
+    _builder.newLine();
+    _builder.append("\t\t");
+    _builder.append("YEmbeddable yCurrentFocus = (YEmbeddable) service.getModelElement(currentCustomComponent);");
+    _builder.newLine();
+    _builder.append("\t\t");
+    _builder.append("yView.setCurrentFocus((YFocusable) yCurrentFocus);");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("}");
+    _builder.newLine();
+    _builder.append("}");
+    _builder.newLine();
+    return _builder;
   }
   
   public CharSequence findColumnIdxFocusable(final FocusingStrategy focusingStrategy) {
diff --git a/org.eclipse.osbp.xtext.strategy/xtend-gen/org/eclipse/osbp/xtext/strategy/jvmmodel/StrategyDSLJvmModelInferrer.java b/org.eclipse.osbp.xtext.strategy/xtend-gen/org/eclipse/osbp/xtext/strategy/jvmmodel/StrategyDSLJvmModelInferrer.java
index 42480e6..d614902 100644
--- a/org.eclipse.osbp.xtext.strategy/xtend-gen/org/eclipse/osbp/xtext/strategy/jvmmodel/StrategyDSLJvmModelInferrer.java
+++ b/org.eclipse.osbp.xtext.strategy/xtend-gen/org/eclipse/osbp/xtext/strategy/jvmmodel/StrategyDSLJvmModelInferrer.java
@@ -2,10 +2,10 @@
  * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
  * 
  *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0 
+ *  are made available under the terms of the Eclipse Public License 2.0
  *  which accompanies this distribution, and is available at
  *  https://www.eclipse.org/legal/epl-2.0/
- *
+ * 
  *  SPDX-License-Identifier: EPL-2.0
  * 
  *  Contributors:
diff --git a/org.eclipse.osbp.xtext.strategy/xtend-gen/org/eclipse/osbp/xtext/strategy/jvmmodel/StrategyDSLLayoutingStrategyCreator.java b/org.eclipse.osbp.xtext.strategy/xtend-gen/org/eclipse/osbp/xtext/strategy/jvmmodel/StrategyDSLLayoutingStrategyCreator.java
index fe5b67b..7fe6c52 100644
--- a/org.eclipse.osbp.xtext.strategy/xtend-gen/org/eclipse/osbp/xtext/strategy/jvmmodel/StrategyDSLLayoutingStrategyCreator.java
+++ b/org.eclipse.osbp.xtext.strategy/xtend-gen/org/eclipse/osbp/xtext/strategy/jvmmodel/StrategyDSLLayoutingStrategyCreator.java
@@ -2,10 +2,10 @@
  * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
  * 
  *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0 
+ *  are made available under the terms of the Eclipse Public License 2.0
  *  which accompanies this distribution, and is available at
  *  https://www.eclipse.org/legal/epl-2.0/
- *
+ * 
  *  SPDX-License-Identifier: EPL-2.0
  * 
  *  Contributors:
diff --git a/org.eclipse.osbp.xtext.strategy/xtend-gen/org/eclipse/osbp/xtext/strategy/scoping/StrategyDSLScopeProvider.java b/org.eclipse.osbp.xtext.strategy/xtend-gen/org/eclipse/osbp/xtext/strategy/scoping/StrategyDSLScopeProvider.java
index 32538b8..4290408 100644
--- a/org.eclipse.osbp.xtext.strategy/xtend-gen/org/eclipse/osbp/xtext/strategy/scoping/StrategyDSLScopeProvider.java
+++ b/org.eclipse.osbp.xtext.strategy/xtend-gen/org/eclipse/osbp/xtext/strategy/scoping/StrategyDSLScopeProvider.java
@@ -2,10 +2,10 @@
  * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
  * 
  *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0 
+ *  are made available under the terms of the Eclipse Public License 2.0
  *  which accompanies this distribution, and is available at
  *  https://www.eclipse.org/legal/epl-2.0/
- *
+ * 
  *  SPDX-License-Identifier: EPL-2.0
  * 
  *  Contributors:
diff --git a/org.eclipse.osbp.xtext.strategy/xtend-gen/org/eclipse/osbp/xtext/strategy/validation/StrategyDSLValidator.java b/org.eclipse.osbp.xtext.strategy/xtend-gen/org/eclipse/osbp/xtext/strategy/validation/StrategyDSLValidator.java
index ed75da6..4b9a97e 100644
--- a/org.eclipse.osbp.xtext.strategy/xtend-gen/org/eclipse/osbp/xtext/strategy/validation/StrategyDSLValidator.java
+++ b/org.eclipse.osbp.xtext.strategy/xtend-gen/org/eclipse/osbp/xtext/strategy/validation/StrategyDSLValidator.java
@@ -2,10 +2,10 @@
  * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
  * 
  *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0 
+ *  are made available under the terms of the Eclipse Public License 2.0
  *  which accompanies this distribution, and is available at
  *  https://www.eclipse.org/legal/epl-2.0/
- *
+ * 
  *  SPDX-License-Identifier: EPL-2.0
  * 
  *  Contributors:
