adjusted legal info, refactor image handling
diff --git a/jenkins.build.config.xml b/jenkins.build.config.xml
index 6e8c8d4..610fe33 100644
--- a/jenkins.build.config.xml
+++ b/jenkins.build.config.xml
@@ -20,6 +20,7 @@
                 <jenkins.build.dependency>org.eclipse.osbp.ecview.addons</jenkins.build.dependency>
                 <jenkins.build.dependency>org.eclipse.osbp.ecview.core</jenkins.build.dependency>
                 <jenkins.build.dependency>org.eclipse.osbp.eventbroker</jenkins.build.dependency>
+                <jenkins.build.dependency>org.eclipse.osbp.fork.mihalis.opal.imageSelector.osgi</jenkins.build.dependency>
                 <jenkins.build.dependency>org.eclipse.osbp.osgi.hybrid.api</jenkins.build.dependency>
                 <jenkins.build.dependency>org.eclipse.osbp.preferences</jenkins.build.dependency>
                 <jenkins.build.dependency>org.eclipse.osbp.runtime</jenkins.build.dependency>
diff --git a/org.eclipse.osbp.xtext.reportdsl.feature/feature.xml b/org.eclipse.osbp.xtext.reportdsl.feature/feature.xml
index 45641c3..4d03451 100644
--- a/org.eclipse.osbp.xtext.reportdsl.feature/feature.xml
+++ b/org.eclipse.osbp.xtext.reportdsl.feature/feature.xml
@@ -15,7 +15,7 @@
       label="%featureName"
       version="0.9.0.qualifier"
       provider-name="%providerName"
-	  plugin="org.eclipse.osbp.xtext.reportdsl">
+	  plugin="org.eclipse.osbp.license">
 
    <description>
       %description
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/META-INF/MANIFEST.MF b/org.eclipse.osbp.xtext.reportdsl.ui/META-INF/MANIFEST.MF
index 4bada64..f1bbfc5 100644
--- a/org.eclipse.osbp.xtext.reportdsl.ui/META-INF/MANIFEST.MF
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/META-INF/MANIFEST.MF
@@ -37,7 +37,8 @@
  org.eclipse.osbp.xtext.table.ui;bundle-version="[0.9.0,0.10.0)",
  org.eclipse.osbp.xtext.oxtype;bundle-version="[0.9.0,0.10.0)",
  org.eclipse.osbp.xtext.oxtype.ui;bundle-version="[0.9.0,0.10.0)",
- org.eclipse.xtend.lib;resolution:=optional
+ org.eclipse.xtend.lib;resolution:=optional,
+ org.eclipse.osbp.fork.mihalis.opal.imageSelector.osgi;bundle-version="0.9.0"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Export-Package: org.eclipse.osbp.xtext.reportdsl.ui;version="0.9.0",
  org.eclipse.osbp.xtext.reportdsl.ui.contentassist;version="0.9.0",
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/src/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/ReportDSLProposalProvider.xtend b/org.eclipse.osbp.xtext.reportdsl.ui/src/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/ReportDSLProposalProvider.xtend
index b79b200..e5bd901 100644
--- a/org.eclipse.osbp.xtext.reportdsl.ui/src/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/ReportDSLProposalProvider.xtend
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/src/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/ReportDSLProposalProvider.xtend
@@ -68,6 +68,32 @@
 import org.eclipse.xtext.ui.editor.contentassist.ICompletionProposalAcceptor
 import org.eclipse.xtext.ui.editor.contentassist.ReplacementTextApplier
 import org.eclipse.osbp.xtext.reportdsl.Grid
+import org.eclipse.osbp.fork.mihalis.opal.widgets.ImageSelectorDialog
+
+class IconNameTextApplier extends ReplacementTextApplier {
+	var ContentAssistContext context
+	var String[] extensions
+
+	def setContext(ContentAssistContext context) {
+		this.context = context
+	}
+
+	def setExtensions(String[] fileExtensions) {
+		extensions = fileExtensions
+	}
+
+	// this will inject a file dialog when selecting the file picker proposal 
+	override getActualReplacementString(ConfigurableCompletionProposal proposal) {
+		var display = context.getViewer().getTextWidget().getDisplay();
+		var shell = new Shell(display);
+		shell.setLayout(new FillLayout());
+		var imageSelectorDialog = new ImageSelectorDialog(shell, 16);
+		imageSelectorDialog.setFilterExtensions(extensions)
+		var imageFileName = imageSelectorDialog.open(true);
+		return "\"".concat(imageFileName).concat("\"");
+	}
+
+}
 
 class ColorTextApplier extends ReplacementTextApplier {
 	var ContentAssistContext context
@@ -129,7 +155,26 @@
 	
 	ICompletionProposal proposal
 
+	def iconPickerProposal(EObject model, Assignment assignment, ContentAssistContext context,
+		ICompletionProposalAcceptor acceptor, String fileExtensions) {
+		var fileName = createCompletionProposal("Select icon...", context) as ConfigurableCompletionProposal
+		if (fileName != null) {
+			var applier = new IconNameTextApplier()
+			applier.setExtensions(fileExtensions.split(","))
+			applier.setContext(context)
+			fileName.setTextApplier = applier
+		}
+		acceptor.accept(fileName)
+	}
 
+	override completeTableTrend_Icon(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		iconPickerProposal(model, assignment, context, acceptor, ".png")
+	}
+
+	override completeTableIcon_Icon(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		iconPickerProposal(model, assignment, context, acceptor, ".png")
+	}
+		
 	// overriding the completeKeyword method to filter the available proposals
 	override void completeKeyword(Keyword keyword, ContentAssistContext contentAssistContext,
 			ICompletionProposalAcceptor acceptor) {
@@ -674,10 +719,4 @@
 		ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		provider.complete_STRING(model, (assignment.getTerminal() as RuleCall), context, acceptor)
 	}
-
-	override public void completeTableIcon_Icon(EObject model, Assignment assignment, ContentAssistContext context,
-		ICompletionProposalAcceptor acceptor) {
-		provider.complete_STRING(model, (assignment.getTerminal() as RuleCall), context, acceptor)
-	}
-
 }
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/xtend-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/IconNameTextApplier.java b/org.eclipse.osbp.xtext.reportdsl.ui/xtend-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/IconNameTextApplier.java
new file mode 100644
index 0000000..32ebb28
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/xtend-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/IconNameTextApplier.java
@@ -0,0 +1,52 @@
+/**
+ * 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
+ * 
+ * 
+ *  This copyright notice shows up in the generated Java code
+ */
+package org.eclipse.osbp.xtext.reportdsl.ui.contentassist;
+
+import org.eclipse.osbp.fork.mihalis.opal.widgets.ImageSelectorDialog;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.xtext.ui.editor.contentassist.ConfigurableCompletionProposal;
+import org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext;
+import org.eclipse.xtext.ui.editor.contentassist.ReplacementTextApplier;
+
+@SuppressWarnings("all")
+public class IconNameTextApplier extends ReplacementTextApplier {
+  private ContentAssistContext context;
+  
+  private String[] extensions;
+  
+  public ContentAssistContext setContext(final ContentAssistContext context) {
+    return this.context = context;
+  }
+  
+  public String[] setExtensions(final String[] fileExtensions) {
+    return this.extensions = fileExtensions;
+  }
+  
+  @Override
+  public String getActualReplacementString(final ConfigurableCompletionProposal proposal) {
+    Display display = this.context.getViewer().getTextWidget().getDisplay();
+    Shell shell = new Shell(display);
+    FillLayout _fillLayout = new FillLayout();
+    shell.setLayout(_fillLayout);
+    ImageSelectorDialog imageSelectorDialog = new ImageSelectorDialog(shell, 16);
+    imageSelectorDialog.setFilterExtensions(this.extensions);
+    String imageFileName = imageSelectorDialog.open(true);
+    return "\"".concat(imageFileName).concat("\"");
+  }
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/xtend-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/ReportDSLProposalProvider.java b/org.eclipse.osbp.xtext.reportdsl.ui/xtend-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/ReportDSLProposalProvider.java
index e9a39e8..54cb488 100644
--- a/org.eclipse.osbp.xtext.reportdsl.ui/xtend-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/ReportDSLProposalProvider.java
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/xtend-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/ReportDSLProposalProvider.java
@@ -16,6 +16,7 @@
  */
 package org.eclipse.osbp.xtext.reportdsl.ui.contentassist;
 
+import com.google.common.base.Objects;
 import com.google.inject.Inject;
 import java.util.Collection;
 import org.eclipse.emf.common.util.EList;
@@ -59,6 +60,7 @@
 import org.eclipse.osbp.xtext.reportdsl.ui.contentassist.AbstractReportDSLProposalProvider;
 import org.eclipse.osbp.xtext.reportdsl.ui.contentassist.ColorTextApplier;
 import org.eclipse.osbp.xtext.reportdsl.ui.contentassist.FileNameTextApplier;
+import org.eclipse.osbp.xtext.reportdsl.ui.contentassist.IconNameTextApplier;
 import org.eclipse.xtext.AbstractElement;
 import org.eclipse.xtext.Assignment;
 import org.eclipse.xtext.EnumLiteralDeclaration;
@@ -84,6 +86,29 @@
   
   private ICompletionProposal proposal;
   
+  public void iconPickerProposal(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor, final String fileExtensions) {
+    ICompletionProposal _createCompletionProposal = this.createCompletionProposal("Select icon...", context);
+    ConfigurableCompletionProposal fileName = ((ConfigurableCompletionProposal) _createCompletionProposal);
+    boolean _notEquals = (!Objects.equal(fileName, null));
+    if (_notEquals) {
+      IconNameTextApplier applier = new IconNameTextApplier();
+      applier.setExtensions(fileExtensions.split(","));
+      applier.setContext(context);
+      fileName.setTextApplier(applier);
+    }
+    acceptor.accept(fileName);
+  }
+  
+  @Override
+  public void completeTableTrend_Icon(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
+    this.iconPickerProposal(model, assignment, context, acceptor, ".png");
+  }
+  
+  @Override
+  public void completeTableIcon_Icon(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
+    this.iconPickerProposal(model, assignment, context, acceptor, ".png");
+  }
+  
   @Override
   public void completeKeyword(final Keyword keyword, final ContentAssistContext contentAssistContext, final ICompletionProposalAcceptor acceptor) {
     boolean _allowedKeyword = this.allowedKeyword(keyword, contentAssistContext, acceptor);
@@ -602,10 +627,4 @@
     AbstractElement _terminal = assignment.getTerminal();
     this.provider.complete_STRING(model, ((RuleCall) _terminal), context, acceptor);
   }
-  
-  @Override
-  public void completeTableIcon_Icon(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
-    AbstractElement _terminal = assignment.getTerminal();
-    this.provider.complete_STRING(model, ((RuleCall) _terminal), context, acceptor);
-  }
 }
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/ReportDSLPackage.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/ReportDSLPackage.java
index b5423d5..688e31f 100644
--- a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/ReportDSLPackage.java
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/ReportDSLPackage.java
@@ -54,7 +54,7 @@
  * <!-- end-model-doc -->
  * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLFactory
  * @model kind="package"
- *        annotation="http://www.eclipse.org/emf/2002/GenModel fileExtensions='report' modelName='ReportDSL' prefix='ReportDSL' 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\tChristophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation \r\n ' basePackage='org.eclipse.osbp.xtext'"
+ *        annotation="http://www.eclipse.org/emf/2002/GenModel fileExtensions='report' modelName='ReportDSL' prefix='ReportDSL' updateClasspath='false' loadInitialization='false' literalsInterface='true' copyrightText='Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)\n All rights reserved. This program and the accompanying materials \n are made available under the terms of the Eclipse Public License 2.0  \n which accompanies this distribution, and is available at \n https://www.eclipse.org/legal/epl-2.0/ \n \n SPDX-License-Identifier: EPL-2.0 \n\n Based on ideas from Xtext, Xtend, Xcore\n  \n Contributors:  \n \t\tChristophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation \n ' basePackage='org.eclipse.osbp.xtext'"
  *        annotation="http://www.eclipse.org/emf/2002/Ecore rootPackage='reportdsl'"
  * @generated
  */
diff --git a/org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSLLexer.java b/org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSLLexer.java
index 9e24e2d..c6e029f 100644
--- a/org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSLLexer.java
+++ b/org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSLLexer.java
@@ -1,3 +1,17 @@
+/**
+ *                                                                            
+ *  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 v1.0       
+ *  which accompanies this distribution, and is available at                  
+ *  http://www.eclipse.org/legal/epl-v10.html                                 
+ *                                                                            
+ *  Contributors:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+
 package org.eclipse.osbp.xtext.reportdsl.parser.antlr.internal;
 
 // Hack: Use our own Lexer superclass by means of import. 
@@ -9964,4 +9978,4 @@
     }
  
 
-}
\ No newline at end of file
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/BaseReport.java b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/BaseReport.java
index 0c7add9..db81354 100644
--- a/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/BaseReport.java
+++ b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/BaseReport.java
@@ -58,7 +58,6 @@
 import org.eclipse.osbp.runtime.common.event.IEventDispatcher;
 import org.eclipse.osbp.ui.api.customfields.IBlobService;
 import org.eclipse.osbp.ui.api.datamart.DatamartFilter;
-import org.eclipse.osbp.ui.api.datamart.DatamartPrimary;
 import org.eclipse.osbp.ui.api.datamart.IDataMart;
 import org.eclipse.osbp.ui.api.datamart.IDatamartFilterGenerator;
 import org.eclipse.osbp.ui.api.layout.IViewLayoutManager;
@@ -688,15 +687,11 @@
 	private void detectDeletion(final EventDispatcherEvent event, LEntity entity, String entityName) {
 		if (entityName.equals(event.getTopic())) {
 			for (IDataMart datamartInstance : datamartInstanceMap.values()){
-				List<DatamartPrimary<?>> primaryKeys = datamartInstance.getPrimaryList();
-				for (DatamartPrimary key : primaryKeys) {
-					if (entity.getPrimaryKeyAttribute() != null && entity.getPrimaryKeyAttribute().isId()
-							&& key.contains(event.getData().get(EventDispatcherDataTag.ID))) {
-						renderData();
-						for (IDatamartFilterGenerator filterGenerator : filterGeneratorMap.values()) {
-							if (filterGenerator != null) {
-								filterGenerator.updateFilter();
-							}
+				if(datamartInstance.contains(event.getData().get(EventDispatcherDataTag.ID))) {
+					renderData();
+					for (IDatamartFilterGenerator filterGenerator : filterGeneratorMap.values()) {
+						if (filterGenerator != null) {
+							filterGenerator.updateFilter();
 						}
 					}
 				}
diff --git a/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/scoping/ReportDSLScopeProvider.xtend b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/scoping/ReportDSLScopeProvider.xtend
index 5ea7013..ba74620 100644
--- a/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/scoping/ReportDSLScopeProvider.xtend
+++ b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/scoping/ReportDSLScopeProvider.xtend
@@ -19,10 +19,10 @@
 package org.eclipse.osbp.xtext.reportdsl.scoping
 
 import java.util.ArrayList
-import java.util.List
 import javax.inject.Inject
 import org.eclipse.emf.ecore.EObject
 import org.eclipse.emf.ecore.EReference
+import org.eclipse.osbp.dsl.common.xtext.extensions.ModelExtensions
 import org.eclipse.osbp.dsl.dto.xtext.jvmmodel.TypeHelper
 import org.eclipse.osbp.dsl.semantic.common.types.LDataType
 import org.eclipse.osbp.utils.entityhelper.DataType
@@ -31,7 +31,7 @@
 import org.eclipse.osbp.xtext.datamartdsl.DatamartMember
 import org.eclipse.osbp.xtext.datamartdsl.DatamartOwner
 import org.eclipse.osbp.xtext.datamartdsl.util.DatamartAttributeUtil
-import org.eclipse.osbp.xtext.reportdsl.Report
+import org.eclipse.osbp.xtext.reportdsl.DatamartContainer
 import org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage
 import org.eclipse.osbp.xtext.reportdsl.TableUnaryAggregation
 import org.eclipse.xtext.common.types.JvmDeclaredType
@@ -41,8 +41,6 @@
 import org.eclipse.xtext.resource.IEObjectDescription
 import org.eclipse.xtext.scoping.IScope
 import org.eclipse.xtext.scoping.impl.MapBasedScope
-import org.eclipse.osbp.xtext.reportdsl.DatamartContainer
-import java.util.Collection
 
 /**
  * This class contains custom scoping description.
@@ -55,12 +53,11 @@
 
 	@Inject extension DataType
 	@Inject extension TypeHelper
+	@Inject extension ModelExtensions
 
 	override IScope getScope(EObject context, EReference reference) {
 		if (reference == ReportDSLPackage.Literals.DATAMART_TABLE_GROUP__GROUPING_REF) {
 			return context.getScope_DatamartProperty
-//		} else if (reference == ReportDSLPackage.Literals.DATAMART_TABLE__HEADER) {
-//			return context.getScope_DatamartProperty
 		} else if (reference == ReportDSLPackage.Literals.TABLE_ATTRIBUTE__VALUE_REF) {
 			return context.getScope_DatamartProperty
 		} else if (reference == ReportDSLPackage.Literals.VISIBILITY__VISIBILITY_ATTRIBUTE) {
@@ -83,10 +80,8 @@
 				var attribute = eObj as DatamartAttribute
 				var type = attribute.attributeRef.type
 				if (type instanceof LDataType) {
-					if (type.jvmTypeReference !== null) {
-						if (type.jvmTypeReference.type.containsSuperType(Number)) {
-							result.add(eObjDescription)
-						}
+					if(isNumericOrWrapperType(type)) {
+						result.add(eObjDescription)
 					}
 				}
 			}
@@ -160,7 +155,7 @@
 		}
 	}
 
-	def boolean containsSuperType(JvmType type, Class clazz) {
+	def boolean containsSuperType(JvmType type, Class<?> clazz) {
 		if (!(type instanceof JvmDeclaredType)) {
 			return false
 		}
diff --git a/org.eclipse.osbp.xtext.reportdsl/xtend-gen/org/eclipse/osbp/xtext/reportdsl/scoping/ReportDSLScopeProvider.java b/org.eclipse.osbp.xtext.reportdsl/xtend-gen/org/eclipse/osbp/xtext/reportdsl/scoping/ReportDSLScopeProvider.java
index c30dd7b..6d8beba 100644
--- a/org.eclipse.osbp.xtext.reportdsl/xtend-gen/org/eclipse/osbp/xtext/reportdsl/scoping/ReportDSLScopeProvider.java
+++ b/org.eclipse.osbp.xtext.reportdsl/xtend-gen/org/eclipse/osbp/xtext/reportdsl/scoping/ReportDSLScopeProvider.java
@@ -22,6 +22,7 @@
 import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EReference;
+import org.eclipse.osbp.dsl.common.xtext.extensions.ModelExtensions;
 import org.eclipse.osbp.dsl.dto.xtext.jvmmodel.TypeHelper;
 import org.eclipse.osbp.dsl.semantic.common.types.LDataType;
 import org.eclipse.osbp.dsl.semantic.common.types.LScalarType;
@@ -41,7 +42,6 @@
 import org.eclipse.osbp.xtext.reportdsl.scoping.AbstractReportDSLScopeProvider;
 import org.eclipse.xtext.common.types.JvmDeclaredType;
 import org.eclipse.xtext.common.types.JvmType;
-import org.eclipse.xtext.common.types.JvmTypeReference;
 import org.eclipse.xtext.common.types.util.RawSuperTypes;
 import org.eclipse.xtext.resource.EObjectDescription;
 import org.eclipse.xtext.resource.IEObjectDescription;
@@ -67,6 +67,10 @@
   @Extension
   private TypeHelper _typeHelper;
   
+  @Inject
+  @Extension
+  private ModelExtensions _modelExtensions;
+  
   @Override
   public IScope getScope(final EObject context, final EReference reference) {
     IScope _xblockexpression = null;
@@ -108,13 +112,9 @@
           DatamartAttribute attribute = ((DatamartAttribute) eObj);
           LScalarType type = attribute.getAttributeRef().getType();
           if ((type instanceof LDataType)) {
-            JvmTypeReference _jvmTypeReference = ((LDataType)type).getJvmTypeReference();
-            boolean _tripleNotEquals = (_jvmTypeReference != null);
-            if (_tripleNotEquals) {
-              boolean _containsSuperType = this.containsSuperType(((LDataType)type).getJvmTypeReference().getType(), Number.class);
-              if (_containsSuperType) {
-                result.add(eObjDescription);
-              }
+            boolean _isNumericOrWrapperType = this._modelExtensions.isNumericOrWrapperType(((LDataType)type));
+            if (_isNumericOrWrapperType) {
+              result.add(eObjDescription);
             }
           }
         }
@@ -206,7 +206,7 @@
     }
   }
   
-  public boolean containsSuperType(final JvmType type, final Class clazz) {
+  public boolean containsSuperType(final JvmType type, final Class<?> clazz) {
     if ((!(type instanceof JvmDeclaredType))) {
       return false;
     }