catch up with branch daily

Signed-off-by: Ralf Mollik <ramollik@compex-commerce.com>
diff --git a/jenkins.build.config.xml b/jenkins.build.config.xml
index 0ab4282..4daf8a2 100644
--- a/jenkins.build.config.xml
+++ b/jenkins.build.config.xml
@@ -19,7 +19,6 @@
                 <jenkins.build.dependency>org.eclipse.osbp.eventbroker</jenkins.build.dependency>
                 <jenkins.build.dependency>org.eclipse.osbp.osgi.hybrid.api</jenkins.build.dependency>
                 <jenkins.build.dependency>org.eclipse.osbp.runtime</jenkins.build.dependency>
-                <jenkins.build.dependency>org.eclipse.osbp.runtime.web</jenkins.build.dependency>
                 <jenkins.build.dependency>org.eclipse.osbp.ui.api</jenkins.build.dependency>
                 <jenkins.build.dependency>org.eclipse.osbp.utils.ui</jenkins.build.dependency>
                 <jenkins.build.dependency>org.eclipse.osbp.xtext.addons</jenkins.build.dependency>
@@ -31,5 +30,6 @@
                 <jenkins.build.dependency>org.eclipse.osbp.xtext.functionlibrary</jenkins.build.dependency>
                 <jenkins.build.dependency>org.eclipse.osbp.xtext.i18n</jenkins.build.dependency>
                 <jenkins.build.dependency>org.eclipse.osbp.xtext.oxtype</jenkins.build.dependency>
+                <jenkins.build.dependency>org.eclipse.osbp.xtext.table.common</jenkins.build.dependency>
         </jenkins.build.dependencies>
 </jenkins>
diff --git a/org.eclipse.osbp.xtext.chart.ui/src/org/eclipse/osbp/xtext/chart/ui/contentassist/ChartDSLProposalProvider.xtend b/org.eclipse.osbp.xtext.chart.ui/src/org/eclipse/osbp/xtext/chart/ui/contentassist/ChartDSLProposalProvider.xtend
index 9d08aaf..dab2f86 100644
--- a/org.eclipse.osbp.xtext.chart.ui/src/org/eclipse/osbp/xtext/chart/ui/contentassist/ChartDSLProposalProvider.xtend
+++ b/org.eclipse.osbp.xtext.chart.ui/src/org/eclipse/osbp/xtext/chart/ui/contentassist/ChartDSLProposalProvider.xtend
@@ -151,6 +151,11 @@
 		provider.complete_STRING(model, ruleCall, context, acceptor)
 	}
 
+	override public void complete_TRANSLATABLEID(EObject model, RuleCall ruleCall, ContentAssistContext context,
+		ICompletionProposalAcceptor acceptor) {
+		provider.complete_ID(model, ruleCall, context, acceptor)
+	}
+
 	override public void completeChartGauge_LabelValue(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.chart.ui/xtend-gen/org/eclipse/osbp/xtext/chart/ui/contentassist/ChartDSLProposalProvider.java b/org.eclipse.osbp.xtext.chart.ui/xtend-gen/org/eclipse/osbp/xtext/chart/ui/contentassist/ChartDSLProposalProvider.java
index 280436d..8545702 100644
--- a/org.eclipse.osbp.xtext.chart.ui/xtend-gen/org/eclipse/osbp/xtext/chart/ui/contentassist/ChartDSLProposalProvider.java
+++ b/org.eclipse.osbp.xtext.chart.ui/xtend-gen/org/eclipse/osbp/xtext/chart/ui/contentassist/ChartDSLProposalProvider.java
@@ -137,6 +137,11 @@
   }
   
   @Override
+  public void complete_TRANSLATABLEID(final EObject model, final RuleCall ruleCall, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
+    this.provider.complete_ID(model, ruleCall, context, acceptor);
+  }
+  
+  @Override
   public void completeChartGauge_LabelValue(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.chart/META-INF/MANIFEST.MF b/org.eclipse.osbp.xtext.chart/META-INF/MANIFEST.MF
index 900b46c..f4c5ad1 100644
--- a/org.eclipse.osbp.xtext.chart/META-INF/MANIFEST.MF
+++ b/org.eclipse.osbp.xtext.chart/META-INF/MANIFEST.MF
@@ -44,11 +44,9 @@
  org.eclipse.core.databinding.beans;bundle-version="[1.3.100,1.4.0)",
  org.eclipse.osbp.dsl.entity.xtext;bundle-version="[0.9.0,0.10.0)";visibility:=reexport,
  org.eclipse.osbp.runtime.common;bundle-version="[0.9.0,0.10.0)",
- org.eclipse.osbp.runtime.web.vaadin.databinding;bundle-version="[0.9.0,0.10.0)",
  org.eclipse.osbp.dsl.common.xtext;bundle-version="[0.9.0,0.10.0)";visibility:=reexport,
  org.eclipse.osbp.xtext.functionlibrarydsl;bundle-version="[0.9.0,0.10.0)";visibility:=reexport,
  org.eclipse.osbp.osgi.hybrid.api;bundle-version="[0.9.0,0.10.0)",
- org.eclipse.osbp.utils.ui;bundle-version="[0.9.0,0.10.0)",
  org.eclipse.osbp.xtext.i18n;bundle-version="[0.9.0,0.10.0)",
  org.eclipse.osbp.xtext.datamartdsl;bundle-version="[0.9.0,0.10.0)";visibility:=reexport,
  org.eclipse.osbp.xtext.blip;bundle-version="[0.9.0,0.10.0)";visibility:=reexport,
@@ -66,7 +64,9 @@
  org.eclipse.osbp.xtext.oxtype;bundle-version="[0.9.0,0.10.0)",
  org.eclipse.xtend.lib,
  mondrian.osgi;bundle-version="3.5.0",
- org.jsoup;bundle-version="1.8.3"
+ org.jsoup;bundle-version="1.8.3",
+ org.eclipse.osbp.xtext.table.common;bundle-version="0.9.0",
+ org.eclipse.osbp.utils.ui;bundle-version="0.9.0"
 Import-Package: com.vaadin.ui,
  javax.validation,
  javax.validation.constraints,
diff --git a/org.eclipse.osbp.xtext.chart/src/org/eclipse/osbp/xtext/chart/jvmmodel/ChartDSLJvmModelInferrer.xtend b/org.eclipse.osbp.xtext.chart/src/org/eclipse/osbp/xtext/chart/jvmmodel/ChartDSLJvmModelInferrer.xtend
index 4a9de6a..7371570 100644
--- a/org.eclipse.osbp.xtext.chart/src/org/eclipse/osbp/xtext/chart/jvmmodel/ChartDSLJvmModelInferrer.xtend
+++ b/org.eclipse.osbp.xtext.chart/src/org/eclipse/osbp/xtext/chart/jvmmodel/ChartDSLJvmModelInferrer.xtend
@@ -46,7 +46,6 @@
 import org.eclipse.osbp.ui.api.metadata.IDSLMetadataService
 import org.eclipse.osbp.ui.api.themes.EnumCssClass
 import org.eclipse.osbp.ui.api.user.IUser
-import org.eclipse.osbp.utils.vaadin.PropertyLookup
 import org.eclipse.osbp.xtext.chart.Chart
 import org.eclipse.osbp.xtext.chart.ChartAxis
 import org.eclipse.osbp.xtext.chart.ChartBar
@@ -85,6 +84,7 @@
 import org.eclipse.xtext.xbase.jvmmodel.JvmTypesBuilder
 import org.osgi.service.event.EventHandler
 import org.slf4j.Logger
+import org.eclipse.osbp.xtext.table.common.PropertyLookup
 
 /**
  * <p>
@@ -1104,9 +1104,8 @@
 		body = '''
 		«body»
 		if(changedFilter != null) {
-			EventDispatcherEvent evnt = new EventDispatcherEvent(EventDispatcherCommand.SELECT, changedFilter.getName(), "«chart.name»");
-			PerspectiveImpl perspective = (PerspectiveImpl) getContext().get(MPerspective.class);
-			if(perspective != null){evnt.setPerspective(perspective);}
+			MPerspective perspective = getContext().get(MPerspective.class);
+			EventDispatcherEvent evnt = new EventDispatcherEvent(perspective, EventDispatcherCommand.SELECT, changedFilter.getName(), "«chart.name»");
 			evnt.addData(changedFilter.getSelectedData());
 			eventDispatcher.sendEvent(evnt);
 		}
@@ -1127,7 +1126,7 @@
 		«body»
 		switch(event.getCommand()) {
 			case SELECT:
-				PerspectiveImpl perspective = (PerspectiveImpl) getContext().get(MPerspective.class);
+				MPerspective perspective = getContext().get(MPerspective.class);
 				if(event.getPerspective() == null || (perspective != null && event.getPerspective().equals(perspective))){
 					if(!event.getSender().equals("«chart.fullyQualifiedName»")) {
 						if(filterGenerator.selectItem(event, «chart.selectById.booleanValue»)) {
@@ -1156,9 +1155,10 @@
 					}
 					«ENDFOR»
 				}
+				/* must be activated if sure that the filter is to be refreshed
 				if (filterGenerator != null) {
 					filterGenerator.updateFilter();
-				}
+				}*/
 				break;
 		}
 		'''
diff --git a/org.eclipse.osbp.xtext.chart/src/org/eclipse/osbp/xtext/chart/jvmmodel/ChartModelGenerator.xtend b/org.eclipse.osbp.xtext.chart/src/org/eclipse/osbp/xtext/chart/jvmmodel/ChartModelGenerator.xtend
index 58de8ab..1faeee4 100644
--- a/org.eclipse.osbp.xtext.chart/src/org/eclipse/osbp/xtext/chart/jvmmodel/ChartModelGenerator.xtend
+++ b/org.eclipse.osbp.xtext.chart/src/org/eclipse/osbp/xtext/chart/jvmmodel/ChartModelGenerator.xtend
@@ -80,14 +80,12 @@
 import org.dussan.vaadin.dcharts.renderers.tick.AxisTickRenderer
 import org.dussan.vaadin.dcharts.renderers.tick.CanvasAxisTickRenderer
 import org.eclipse.e4.core.di.extensions.EventUtils
-import org.eclipse.e4.core.services.events.IEventBroker
 import org.eclipse.e4.ui.model.application.ui.MUIElement
+import org.eclipse.e4.ui.model.application.ui.advanced.MPerspective
 import org.eclipse.e4.ui.model.application.ui.basic.MPartStack
 import org.eclipse.e4.ui.model.application.ui.impl.UIElementImpl
 import org.eclipse.e4.ui.model.application.ui.impl.UiPackageImpl
-import org.eclipse.emf.common.notify.Adapter
 import org.eclipse.emf.common.notify.Notification
-import org.eclipse.emf.common.notify.impl.AdapterImpl
 import org.eclipse.emf.ecore.EObject
 import org.eclipse.emf.ecore.resource.Resource
 import org.eclipse.osbp.eventbroker.EventBrokerMsg
@@ -114,8 +112,6 @@
 import org.eclipse.xtext.xbase.compiler.ImportManager
 import org.osgi.service.event.Event
 import org.osgi.service.event.EventHandler
-import org.eclipse.e4.ui.model.application.ui.advanced.impl.PerspectiveImpl
-import org.eclipse.e4.ui.model.application.ui.advanced.MPerspective
 
 class ChartModelGenerator extends I18NModelGenerator {
 	@Inject extension IQualifiedNameProvider
@@ -210,7 +206,6 @@
 			, DatamartFilter
 			, MemberType
 			, Panel
-			, PerspectiveImpl
 			, MPerspective
 		)
 		super.createAppendable(context, importManager, config)
diff --git a/org.eclipse.osbp.xtext.chart/src/org/eclipse/osbp/xtext/chart/scoping/ChartDSLScopeProvider.xtend b/org.eclipse.osbp.xtext.chart/src/org/eclipse/osbp/xtext/chart/scoping/ChartDSLScopeProvider.xtend
index 00c3d72..dbdfa83 100644
--- a/org.eclipse.osbp.xtext.chart/src/org/eclipse/osbp/xtext/chart/scoping/ChartDSLScopeProvider.xtend
+++ b/org.eclipse.osbp.xtext.chart/src/org/eclipse/osbp/xtext/chart/scoping/ChartDSLScopeProvider.xtend
@@ -20,27 +20,36 @@
 package org.eclipse.osbp.xtext.chart.scoping
 
 import java.util.ArrayList
+import java.util.LinkedHashSet
+import java.util.List
 import org.eclipse.emf.ecore.EObject
 import org.eclipse.emf.ecore.EReference
 import org.eclipse.osbp.xtext.chart.ChartDSLPackage
 import org.eclipse.osbp.xtext.chart.ChartDatamart
 import org.eclipse.osbp.xtext.datamartdsl.AxisEnum
+import org.eclipse.osbp.xtext.datamartdsl.DatamartAxis
 import org.eclipse.osbp.xtext.datamartdsl.DatamartCube
 import org.eclipse.osbp.xtext.datamartdsl.DatamartCubeAxis
+import org.eclipse.osbp.xtext.datamartdsl.DatamartDefinition
 import org.eclipse.osbp.xtext.datamartdsl.DatamartEntity
 import org.eclipse.osbp.xtext.datamartdsl.DatamartMember
 import org.eclipse.osbp.xtext.datamartdsl.DatamartOwner
 import org.eclipse.osbp.xtext.datamartdsl.DatamartTask
+import org.eclipse.xtext.EcoreUtil2
 import org.eclipse.xtext.resource.EObjectDescription
 import org.eclipse.xtext.resource.IEObjectDescription
 import org.eclipse.xtext.scoping.IScope
 import org.eclipse.xtext.scoping.impl.MapBasedScope
+import org.eclipse.xtext.scoping.impl.FilteringScope
+import org.eclipse.osbp.xtext.oxtype.resource.EcoreUtil3
 
 class ChartDSLScopeProvider extends AbstractChartDSLScopeProvider {
 	@Override
 	override IScope getScope(EObject context, EReference reference) {
 		if (reference == ChartDSLPackage.Literals.CHART_AXIS__AXIS) {
 			return getScope_Chart_Axis_axis(context)
+		} else if (reference == ChartDSLPackage.Literals.CHART_DATAMART__DATAMART_REF) {
+			return getScope_Chart_DatamartRef(context as ChartDatamart, reference)
 		}
 		return super.getScope(context, reference)
 	}
@@ -71,29 +80,65 @@
 		}
 		return MapBasedScope.createScope(IScope.NULLSCOPE, result)
 	}
+	
+	def IScope getScope_Chart_DatamartRef(ChartDatamart chartDatamart, EReference reference) {
+		var superScope = super.getScope(chartDatamart, reference)
+		return new FilteringScope(superScope, [
+					if (it.EObjectOrProxy instanceof DatamartDefinition) {
+						var datamart = it.EObjectOrProxy as DatamartDefinition
+						datamart = EcoreUtil3.resolve(datamart, chartDatamart.eResource.resourceSet) as DatamartDefinition
+						return datamart.filterScopeCondition
+					}
+					return false
+				])
+		
+	}
 
 	def void getEntityAxes(DatamartEntity entity, ArrayList<IEObjectDescription> result) {
+		for (datamartAxis : entity.createEntityAxesList) {
+			result.add(EObjectDescription.create(datamartAxis.name.literal, datamartAxis))
+		}
+	}
+	
+	private def filterScopeCondition (DatamartDefinition datamart) {
+		if (datamart !== null && datamart.source !== null) {
+			if (datamart.source instanceof DatamartCube) {
+				for (axis : (datamart.source as DatamartCube).axisslicer) {
+					if (axis instanceof DatamartCubeAxis) {
+						return true
+					}
+				}
+			} else if (datamart.source instanceof DatamartEntity) {
+				if ((datamart.source as DatamartEntity).createEntityAxesList.size > 0){
+					return true
+				}
+			} else if (datamart.source instanceof DatamartTask) {
+				return true
+			}
+		}
+		return false
+	}
+	
+	private def List<DatamartAxis> createEntityAxesList(DatamartEntity entity) {
+		var datamartAxisList = newArrayList()
 		for (navigation : entity.navigations) {
 			if (navigation instanceof DatamartMember) {
-				(navigation as DatamartMember).datamartEntity.getEntityAxes(result)
+				datamartAxisList.addAll((navigation as DatamartMember).datamartEntity.createEntityAxesList)
 				for (attribute : (navigation as DatamartMember).datamartEntity.attributes) {
-					result.add(EObjectDescription.create(attribute.axis.name.literal, attribute.axis))
+					datamartAxisList.add(attribute.axis)
 				}
 			}
 			if (navigation instanceof DatamartOwner) {
-				(navigation as DatamartOwner).datamartEntity.getEntityAxes(result)
+				datamartAxisList.addAll((navigation as DatamartOwner).datamartEntity.createEntityAxesList)
 				for (attribute : (navigation as DatamartOwner).datamartEntity.attributes) {
-					result.add(EObjectDescription.create(attribute.axis.name.literal, attribute.axis))
+					datamartAxisList.add(attribute.axis)
 				}
 			}
 		}
 		for (attribute : entity.attributes) {
-			if (attribute.axis !== null) {
-				result.add(EObjectDescription.create(attribute.axis.name.literal, attribute.axis))
-			} else {
-				result.add(EObjectDescription.create(attribute.axis.name.literal, attribute.axis))
-			}
+			datamartAxisList.add(attribute.axis)
 		}
+		datamartAxisList
 	}
 
 }
diff --git a/org.eclipse.osbp.xtext.chart/src/org/eclipse/osbp/xtext/chart/validation/ChartDSLValidator.xtend b/org.eclipse.osbp.xtext.chart/src/org/eclipse/osbp/xtext/chart/validation/ChartDSLValidator.xtend
index 83464dc..f8fbf4d 100644
--- a/org.eclipse.osbp.xtext.chart/src/org/eclipse/osbp/xtext/chart/validation/ChartDSLValidator.xtend
+++ b/org.eclipse.osbp.xtext.chart/src/org/eclipse/osbp/xtext/chart/validation/ChartDSLValidator.xtend
@@ -24,6 +24,7 @@
 import org.eclipse.osbp.xtext.chart.ChartDSLPackage
 import org.eclipse.emf.common.util.EList
 import org.eclipse.xtext.validation.Check
+import org.eclipse.osbp.xtext.chart.ChartAxis
 
 //import org.eclipse.xtext.validation.Check
 
@@ -46,14 +47,23 @@
 //	}
 
 	@Check
+	def void checkAxis(ChartAxis chartAxis){ 
+		var axis = chartAxis.axis
+		var axisName = axis.name
+		if (axis.eContainer===null && axisName.literal==="default"){
+			error("Datamart has no attribute definitions anymore. This axis is not available.", ChartDSLPackage.Literals.CHART_AXIS__AXIS)
+		}
+	}
+	
+	@Check
 	def void checkDuplicateChartNames(Chart chart){ 
 		var eObj = chart.eContainer()
 		while (!(eObj instanceof ChartPackage)) {
 			eObj = eObj.eContainer
 		}
-		if (eObj!=null){
+		if (eObj!==null){
 			var chartPackage = eObj as ChartPackage;
-			if (findDuplicateChartNames(chartPackage.charts, chart.getName()) != null){
+			if (findDuplicateChartNames(chartPackage.charts, chart.getName()) !== null){
 				error("Duplicate chart name '".concat(chart.getName()).concat("'!"), ChartDSLPackage.Literals.CHART_BASE__NAME)
 			}
 		}
diff --git a/org.eclipse.osbp.xtext.chart/xtend-gen/org/eclipse/osbp/xtext/chart/jvmmodel/ChartDSLJvmModelInferrer.java b/org.eclipse.osbp.xtext.chart/xtend-gen/org/eclipse/osbp/xtext/chart/jvmmodel/ChartDSLJvmModelInferrer.java
index 17509cf..def380e 100644
--- a/org.eclipse.osbp.xtext.chart/xtend-gen/org/eclipse/osbp/xtext/chart/jvmmodel/ChartDSLJvmModelInferrer.java
+++ b/org.eclipse.osbp.xtext.chart/xtend-gen/org/eclipse/osbp/xtext/chart/jvmmodel/ChartDSLJvmModelInferrer.java
@@ -48,7 +48,6 @@
 import org.eclipse.osbp.ui.api.metadata.IDSLMetadataService;
 import org.eclipse.osbp.ui.api.themes.EnumCssClass;
 import org.eclipse.osbp.ui.api.user.IUser;
-import org.eclipse.osbp.utils.vaadin.PropertyLookup;
 import org.eclipse.osbp.xtext.chart.Chart;
 import org.eclipse.osbp.xtext.chart.ChartAxis;
 import org.eclipse.osbp.xtext.chart.ChartBar;
@@ -86,6 +85,7 @@
 import org.eclipse.osbp.xtext.datamartdsl.DatamartSource;
 import org.eclipse.osbp.xtext.datamartdsl.ValueScaleEnum;
 import org.eclipse.osbp.xtext.datamartdsl.jvmmodel.DatamartDSLJvmModelInferrer;
+import org.eclipse.osbp.xtext.table.common.PropertyLookup;
 import org.eclipse.xtend2.lib.StringConcatenation;
 import org.eclipse.xtext.common.types.JvmAnnotationReference;
 import org.eclipse.xtext.common.types.JvmConstructor;
@@ -2398,18 +2398,15 @@
     _builder.append("if(changedFilter != null) {");
     _builder.newLine();
     _builder.append("\t");
-    _builder.append("EventDispatcherEvent evnt = new EventDispatcherEvent(EventDispatcherCommand.SELECT, changedFilter.getName(), \"");
+    _builder.append("MPerspective perspective = getContext().get(MPerspective.class);");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("EventDispatcherEvent evnt = new EventDispatcherEvent(perspective, EventDispatcherCommand.SELECT, changedFilter.getName(), \"");
     String _name = chart.getName();
     _builder.append(_name, "\t");
     _builder.append("\");");
     _builder.newLineIfNotEmpty();
     _builder.append("\t");
-    _builder.append("PerspectiveImpl perspective = (PerspectiveImpl) getContext().get(MPerspective.class);");
-    _builder.newLine();
-    _builder.append("\t");
-    _builder.append("if(perspective != null){evnt.setPerspective(perspective);}");
-    _builder.newLine();
-    _builder.append("\t");
     _builder.append("evnt.addData(changedFilter.getSelectedData());");
     _builder.newLine();
     _builder.append("\t");
@@ -2441,7 +2438,7 @@
     _builder.append("case SELECT:");
     _builder.newLine();
     _builder.append("\t\t");
-    _builder.append("PerspectiveImpl perspective = (PerspectiveImpl) getContext().get(MPerspective.class);");
+    _builder.append("MPerspective perspective = getContext().get(MPerspective.class);");
     _builder.newLine();
     _builder.append("\t\t");
     _builder.append("if(event.getPerspective() == null || (perspective != null && event.getPerspective().equals(perspective))){");
@@ -2548,13 +2545,16 @@
     _builder.append("}");
     _builder.newLine();
     _builder.append("\t\t");
+    _builder.append("/* must be activated if sure that the filter is to be refreshed");
+    _builder.newLine();
+    _builder.append("\t\t");
     _builder.append("if (filterGenerator != null) {");
     _builder.newLine();
     _builder.append("\t\t\t");
     _builder.append("filterGenerator.updateFilter();");
     _builder.newLine();
     _builder.append("\t\t");
-    _builder.append("}");
+    _builder.append("}*/");
     _builder.newLine();
     _builder.append("\t\t");
     _builder.append("break;");
diff --git a/org.eclipse.osbp.xtext.chart/xtend-gen/org/eclipse/osbp/xtext/chart/jvmmodel/ChartModelGenerator.java b/org.eclipse.osbp.xtext.chart/xtend-gen/org/eclipse/osbp/xtext/chart/jvmmodel/ChartModelGenerator.java
index 5ab0935..f5015e9 100644
--- a/org.eclipse.osbp.xtext.chart/xtend-gen/org/eclipse/osbp/xtext/chart/jvmmodel/ChartModelGenerator.java
+++ b/org.eclipse.osbp.xtext.chart/xtend-gen/org/eclipse/osbp/xtext/chart/jvmmodel/ChartModelGenerator.java
@@ -79,7 +79,6 @@
 import org.eclipse.e4.core.di.extensions.EventUtils;
 import org.eclipse.e4.ui.model.application.ui.MUIElement;
 import org.eclipse.e4.ui.model.application.ui.advanced.MPerspective;
-import org.eclipse.e4.ui.model.application.ui.advanced.impl.PerspectiveImpl;
 import org.eclipse.e4.ui.model.application.ui.basic.MPartStack;
 import org.eclipse.e4.ui.model.application.ui.impl.UIElementImpl;
 import org.eclipse.e4.ui.model.application.ui.impl.UiPackageImpl;
@@ -141,7 +140,7 @@
       importManager.addImportFor(this._typeReferenceBuilder.typeRef(HashMap.class, this._typeReferenceBuilder.typeRef(String.class), this._typeReferenceBuilder.typeRef(String.class)).getType());
       importManager.addImportFor(this._typeReferenceBuilder.typeRef(Map.class, this._typeReferenceBuilder.typeRef(String.class), this._typeReferenceBuilder.typeRef(String.class)).getType());
       importManager.addImportFor(this._typeReferenceBuilder.typeRef(Collection.class, this._typeReferenceBuilder.typeRef(String.class)).getType());
-      this._basicDslGeneratorUtils.addImportFor(this, importManager, this._typeReferenceBuilder, Property.ValueChangeListener.class, DCharts.class, Label.class, List.class, ArrayList.class, Page.class, Page.Styles.class, DerivedAxis.class, DerivedCell.class, DerivedPosition.class, DerivedMember.class, HorizontalLayout.class, TabSheet.class, Series.class, XYseries.class, Ticks.class, DataSeries.class, SeriesDefaults.class, SeriesRenderers.class, CanvasAxisTickRenderer.class, DonutRenderer.class, PieRenderer.class, BubbleRenderer.class, BarRenderer.class, BarDirections.class, MeterGaugeRenderer.class, PyramidRenderer.class, PyramidSides.class, Trendline.class, Cursor.class, Legend.class, LegendPlacements.class, EnhancedLegendRenderer.class, SeriesToggles.class, Highlighter.class, Title.class, TooltipLocations.class, TooltipAxes.class, Axes.class, XYaxes.class, XYaxis.class, Xaxes.class, Yaxes.class, AxisTickRenderer.class, AxisRenderers.class, LinearAxisRenderer.class, AxesDefaults.class, DownloadButtonLocation.class, Options.class, DerivedHierarchy.class, DerivedLevel.class, CellSetToD3JsonConverter.class, Date.class, JavaScriptFunction.class, JsonArray.class, JsonObject.class, JsonException.class, EventHandler.class, Event.class, EventUtils.class, EventBrokerMsg.class, Executors.class, Notification.class, EObject.class, UIElementImpl.class, UiPackageImpl.class, MUIElement.class, MPartStack.class, UI.class, ResourceBundle.class, Locale.class, DatamartFilterGenerator.class, ViewLayoutManager.class, IDatamartFilterGenerator.FilterChangeListener.class, EventDispatcherEvent.class, EventDispatcherEvent.EventDispatcherDataTag.class, EventDispatcherEvent.EventDispatcherCommand.class, DatamartFilter.class, Member.MemberType.class, Panel.class, PerspectiveImpl.class, MPerspective.class);
+      this._basicDslGeneratorUtils.addImportFor(this, importManager, this._typeReferenceBuilder, Property.ValueChangeListener.class, DCharts.class, Label.class, List.class, ArrayList.class, Page.class, Page.Styles.class, DerivedAxis.class, DerivedCell.class, DerivedPosition.class, DerivedMember.class, HorizontalLayout.class, TabSheet.class, Series.class, XYseries.class, Ticks.class, DataSeries.class, SeriesDefaults.class, SeriesRenderers.class, CanvasAxisTickRenderer.class, DonutRenderer.class, PieRenderer.class, BubbleRenderer.class, BarRenderer.class, BarDirections.class, MeterGaugeRenderer.class, PyramidRenderer.class, PyramidSides.class, Trendline.class, Cursor.class, Legend.class, LegendPlacements.class, EnhancedLegendRenderer.class, SeriesToggles.class, Highlighter.class, Title.class, TooltipLocations.class, TooltipAxes.class, Axes.class, XYaxes.class, XYaxis.class, Xaxes.class, Yaxes.class, AxisTickRenderer.class, AxisRenderers.class, LinearAxisRenderer.class, AxesDefaults.class, DownloadButtonLocation.class, Options.class, DerivedHierarchy.class, DerivedLevel.class, CellSetToD3JsonConverter.class, Date.class, JavaScriptFunction.class, JsonArray.class, JsonObject.class, JsonException.class, EventHandler.class, Event.class, EventUtils.class, EventBrokerMsg.class, Executors.class, Notification.class, EObject.class, UIElementImpl.class, UiPackageImpl.class, MUIElement.class, MPartStack.class, UI.class, ResourceBundle.class, Locale.class, DatamartFilterGenerator.class, ViewLayoutManager.class, IDatamartFilterGenerator.FilterChangeListener.class, EventDispatcherEvent.class, EventDispatcherEvent.EventDispatcherDataTag.class, EventDispatcherEvent.EventDispatcherCommand.class, DatamartFilter.class, Member.MemberType.class, Panel.class, MPerspective.class);
       _xblockexpression = super.createAppendable(context, importManager, config);
     }
     return _xblockexpression;
diff --git a/org.eclipse.osbp.xtext.chart/xtend-gen/org/eclipse/osbp/xtext/chart/validation/ChartDSLValidator.java b/org.eclipse.osbp.xtext.chart/xtend-gen/org/eclipse/osbp/xtext/chart/validation/ChartDSLValidator.java
index 6aba230..f18f023 100644
--- a/org.eclipse.osbp.xtext.chart/xtend-gen/org/eclipse/osbp/xtext/chart/validation/ChartDSLValidator.java
+++ b/org.eclipse.osbp.xtext.chart/xtend-gen/org/eclipse/osbp/xtext/chart/validation/ChartDSLValidator.java
@@ -16,14 +16,16 @@
  */
 package org.eclipse.osbp.xtext.chart.validation;
 
-import com.google.common.base.Objects;
 import java.util.HashSet;
 import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.osbp.xtext.chart.Chart;
+import org.eclipse.osbp.xtext.chart.ChartAxis;
 import org.eclipse.osbp.xtext.chart.ChartDSLPackage;
 import org.eclipse.osbp.xtext.chart.ChartPackage;
 import org.eclipse.osbp.xtext.chart.validation.AbstractChartDSLValidator;
+import org.eclipse.osbp.xtext.datamartdsl.AxisEnum;
+import org.eclipse.osbp.xtext.datamartdsl.DatamartAxis;
 import org.eclipse.xtext.validation.Check;
 import org.eclipse.xtext.xbase.lib.CollectionLiterals;
 
@@ -35,17 +37,25 @@
 @SuppressWarnings("all")
 public class ChartDSLValidator extends AbstractChartDSLValidator {
   @Check
+  public void checkAxis(final ChartAxis chartAxis) {
+    DatamartAxis axis = chartAxis.getAxis();
+    AxisEnum axisName = axis.getName();
+    if (((axis.eContainer() == null) && (axisName.getLiteral() == "default"))) {
+      this.error("Datamart has no attribute definitions anymore. This axis is not available.", ChartDSLPackage.Literals.CHART_AXIS__AXIS);
+    }
+  }
+  
+  @Check
   public void checkDuplicateChartNames(final Chart chart) {
     EObject eObj = chart.eContainer();
     while ((!(eObj instanceof ChartPackage))) {
       eObj = eObj.eContainer();
     }
-    boolean _notEquals = (!Objects.equal(eObj, null));
-    if (_notEquals) {
+    if ((eObj != null)) {
       ChartPackage chartPackage = ((ChartPackage) eObj);
       Chart _findDuplicateChartNames = this.findDuplicateChartNames(chartPackage.getCharts(), chart.getName());
-      boolean _notEquals_1 = (!Objects.equal(_findDuplicateChartNames, null));
-      if (_notEquals_1) {
+      boolean _tripleNotEquals = (_findDuplicateChartNames != null);
+      if (_tripleNotEquals) {
         this.error("Duplicate chart name \'".concat(chart.getName()).concat("\'!"), ChartDSLPackage.Literals.CHART_BASE__NAME);
       }
     }