WIP HEMERA-2124
diff --git a/org.eclipse.bpmn2.modeler.ui/plugin.xml b/org.eclipse.bpmn2.modeler.ui/plugin.xml
index 175d48a..f321400 100644
--- a/org.eclipse.bpmn2.modeler.ui/plugin.xml
+++ b/org.eclipse.bpmn2.modeler.ui/plugin.xml
@@ -432,6 +432,7 @@
 			<!-- connections -->
 			<enable object="SequenceFlow"/>
 			<enable object="Association"/>
+			<enable object="DataAssociation"/>
 
 			<!-- events -->
 			<enable object="StartEvent"/>
diff --git a/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/features/data/AbstractDataFeatureContainer.java b/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/features/data/AbstractDataFeatureContainer.java
index ec9347e..21c6fef 100644
--- a/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/features/data/AbstractDataFeatureContainer.java
+++ b/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/features/data/AbstractDataFeatureContainer.java
@@ -25,6 +25,7 @@
 import org.eclipse.graphiti.features.IMoveShapeFeature;
 import org.eclipse.graphiti.features.IResizeShapeFeature;
 import org.eclipse.graphiti.features.IUpdateFeature;
+import org.eclipse.graphiti.features.context.IMoveShapeContext;
 import org.eclipse.graphiti.features.context.IResizeShapeContext;
 import org.eclipse.graphiti.features.impl.DefaultMoveShapeFeature;
 import org.eclipse.graphiti.features.impl.DefaultResizeShapeFeature;
@@ -54,7 +55,12 @@
 
 	@Override
 	public IMoveShapeFeature getMoveFeature(IFeatureProvider fp) {
-		return new DefaultMoveBPMNShapeFeature(fp);
+		return new DefaultMoveBPMNShapeFeature(fp) {
+		  @Override
+		  public boolean canMoveShape(IMoveShapeContext context) {
+		    return true;
+		  }
+		};
 	}
 
 	@Override
diff --git a/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/features/flow/DataInputAssociationFeatureContainer.java b/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/features/flow/DataInputAssociationFeatureContainer.java
index cd7953d..38a2d28 100644
--- a/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/features/flow/DataInputAssociationFeatureContainer.java
+++ b/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/features/flow/DataInputAssociationFeatureContainer.java
@@ -12,15 +12,22 @@
  ******************************************************************************/
 package org.eclipse.bpmn2.modeler.ui.features.flow;
 
+import java.io.IOException;
+
+import org.eclipse.bpmn2.Association;
 import org.eclipse.bpmn2.BaseElement;
+import org.eclipse.bpmn2.Bpmn2Package;
 import org.eclipse.bpmn2.DataInputAssociation;
-import org.eclipse.bpmn2.modeler.core.features.BaseElementConnectionFeatureContainer;
+import org.eclipse.bpmn2.ItemAwareElement;
+import org.eclipse.bpmn2.modeler.core.ModelHandler;
 import org.eclipse.bpmn2.modeler.core.features.flow.AbstractAddFlowFeature;
 import org.eclipse.bpmn2.modeler.core.utils.BusinessObjectUtil;
 import org.eclipse.bpmn2.modeler.core.utils.StyleUtil;
+import org.eclipse.emf.ecore.EClass;
 import org.eclipse.graphiti.features.IAddFeature;
 import org.eclipse.graphiti.features.ICreateConnectionFeature;
 import org.eclipse.graphiti.features.IFeatureProvider;
+import org.eclipse.graphiti.features.context.ICreateConnectionContext;
 import org.eclipse.graphiti.mm.algorithms.Polyline;
 import org.eclipse.graphiti.mm.algorithms.styles.LineStyle;
 import org.eclipse.graphiti.mm.pictograms.Connection;
@@ -29,13 +36,13 @@
 import org.eclipse.graphiti.services.IGaService;
 import org.eclipse.graphiti.services.IPeService;
 
-public class DataInputAssociationFeatureContainer extends BaseElementConnectionFeatureContainer {
+public class DataInputAssociationFeatureContainer extends AssociationFeatureContainer {
 
 	@Override
 	public boolean canApplyTo(Object o) {
 		return super.canApplyTo(o) && o instanceof DataInputAssociation;
 	}
-
+	
 	@Override
 	public IAddFeature getAddFeature(IFeatureProvider fp) {
 		return new AbstractAddFlowFeature<DataInputAssociation>(fp) {
@@ -66,9 +73,47 @@
 			}
 		};
 	}
+	
+	 @Override
+	  public ICreateConnectionFeature getCreateConnectionFeature(IFeatureProvider fp) {
+	    return new CreateAssociationFeature(fp) {
+	      @Override
+	      public Association createBusinessObject(ICreateConnectionContext context) {
+	        Association bo = null;
+	        try {
+	          ModelHandler mh = ModelHandler.getInstance(getDiagram());
+	          BaseElement source = getSourceBo(context);
+	          BaseElement target = getTargetBo(context);
+	          bo = mh.createAssociation(source, target);
+	          putBusinessObject(context, bo);
 
-	@Override
-	public ICreateConnectionFeature getCreateConnectionFeature(IFeatureProvider fp) {
-		return null;
-	}
+	        } catch (IOException e) {
+	          // TODO Auto-generated catch block
+	          e.printStackTrace();
+	        }
+	        return bo;
+	      }
+	      
+	      @Override
+	      public boolean canCreate(ICreateConnectionContext context) {
+	        BaseElement sourceBo = getSourceBo(context);
+	        BaseElement targetBo = getTargetBo(context);
+	        
+	        return sourceBo instanceof ItemAwareElement || targetBo instanceof ItemAwareElement;
+	      }
+	      
+	      
+	      
+	      @Override
+	      public String getCreateName() {
+	          return "Data Association";
+	      }
+	      
+	      @Override
+	      public EClass getBusinessObjectClass() {
+	        return Bpmn2Package.eINSTANCE.getDataAssociation();
+	      }
+	    };
+	  }
+
 }
\ No newline at end of file