Added display name and unique ID to the trace metamodel, updated
tracemetamodel interface to make it possible to use getDispalyName
diff --git a/org.eclipse.capra.core/src/org/eclipse/capra/core/adapters/TraceMetaModelAdapter.java b/org.eclipse.capra.core/src/org/eclipse/capra/core/adapters/TraceMetaModelAdapter.java
index 27d7dde..018a3a4 100644
--- a/org.eclipse.capra.core/src/org/eclipse/capra/core/adapters/TraceMetaModelAdapter.java
+++ b/org.eclipse.capra.core/src/org/eclipse/capra/core/adapters/TraceMetaModelAdapter.java
@@ -53,7 +53,8 @@
 	 *            Objects to create the trace for
 	 * @return root of trace model that now contains the newly created trace
 	 */
-	EObject createTrace(EClass traceType, EObject traceModel, List<EObject> selection);
+	EObject createTrace(EClass traceType, EObject traceModel, List<EObject> selectionAsEcore,
+			List<Object> originalObject);
 
 	/**
 	 * Used to delete a trace
diff --git a/org.eclipse.capra.generic.tracemodels/model/generictrace.xcore b/org.eclipse.capra.generic.tracemodels/model/generictrace.xcore
index edc4cb2..4fa6de3 100644
--- a/org.eclipse.capra.generic.tracemodels/model/generictrace.xcore
+++ b/org.eclipse.capra.generic.tracemodels/model/generictrace.xcore
@@ -1,10 +1,16 @@
 package org.eclipse.capra.GenericTraceMetaModel
 import org.eclipse.emf.ecore.EObject
+import org.eclipse.emf.ecore.util.EcoreUtil
+
 
 class GenericTraceModel{
 	contains RelatedTo[0..*] traces
 } 
 
 class RelatedTo {
+	derived String ID get {
+			EcoreUtil.generateUUID();
+	}
+	String name
 	refers EObject [0..*] item 
 }   
\ No newline at end of file
diff --git a/org.eclipse.capra.generic.tracemodels/src/org/eclipse/capra/generic/tracemodels/GenericMetaModelAdapter.java b/org.eclipse.capra.generic.tracemodels/src/org/eclipse/capra/generic/tracemodels/GenericMetaModelAdapter.java
index a4e152a..75d6b4a 100644
--- a/org.eclipse.capra.generic.tracemodels/src/org/eclipse/capra/generic/tracemodels/GenericMetaModelAdapter.java
+++ b/org.eclipse.capra.generic.tracemodels/src/org/eclipse/capra/generic/tracemodels/GenericMetaModelAdapter.java
@@ -13,6 +13,7 @@
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
+import java.util.stream.Collectors;
 
 import org.eclipse.capra.GenericTraceMetaModel.GenericTraceMetaModelFactory;
 import org.eclipse.capra.GenericTraceMetaModel.GenericTraceMetaModelPackage;
@@ -20,6 +21,8 @@
 import org.eclipse.capra.GenericTraceMetaModel.RelatedTo;
 import org.eclipse.capra.core.adapters.Connection;
 import org.eclipse.capra.core.adapters.TraceMetaModelAdapter;
+import org.eclipse.capra.core.handlers.ArtifactHandler;
+import org.eclipse.capra.core.helpers.ExtensionPointHelper;
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.EObject;
 
@@ -48,13 +51,24 @@
 	}
 
 	@Override
-	public EObject createTrace(EClass traceType, EObject traceModel, List<EObject> selection) {
+	public EObject createTrace(EClass traceType, EObject traceModel, List<EObject> selection,
+			List<Object> originalSelection) {
 
 		GenericTraceModel TM = (GenericTraceModel) traceModel;
 		EObject trace = GenericTraceMetaModelFactory.eINSTANCE.create(traceType);
 		RelatedTo RelatedToTrace = (RelatedTo) trace;
 		RelatedToTrace.getItem().addAll(selection);
 
+		String name = "";
+		Collection<ArtifactHandler> artifactHandlers = ExtensionPointHelper.getArtifactHandlers();
+		List<ArtifactHandler> availableHandlers = artifactHandlers.stream()
+				.filter(handler -> handler.canHandleSelection(originalSelection)).collect(Collectors.toList());
+		if (availableHandlers.size() > 1) {
+			name = name + " " + availableHandlers.get(0).getDisplayName(originalSelection);
+		} else
+			name = name + " " + originalSelection.toString();
+
+		RelatedToTrace.setName(name);
 		TM.getTraces().add(RelatedToTrace);
 		return TM;
 	}
diff --git a/org.eclipse.capra.ui/src/org/eclipse/capra/ui/handlers/TraceCreationHandler.java b/org.eclipse.capra.ui/src/org/eclipse/capra/ui/handlers/TraceCreationHandler.java
index 10d27a1..a68e088 100644
--- a/org.eclipse.capra.ui/src/org/eclipse/capra/ui/handlers/TraceCreationHandler.java
+++ b/org.eclipse.capra.ui/src/org/eclipse/capra/ui/handlers/TraceCreationHandler.java
@@ -66,7 +66,7 @@
 		Optional<EClass> chosenType = chooseTraceType.apply(traceTypes, selectionAsEObjects);
 
 		if (chosenType.isPresent()) {
-			EObject root = traceAdapter.createTrace(chosenType.get(), traceModel, selectionAsEObjects);
+			EObject root = traceAdapter.createTrace(chosenType.get(), traceModel, selectionAsEObjects, selection);
 			persistenceAdapter.saveTracesAndArtifacts(root, artifactModel);
 		}
 	}