Addedd a getDisplayName method in the artifactHandler interface to allow each handler to format dispay names for elements dropped in the selection view
diff --git a/org.eclipse.capra.core/src/org/eclipse/capra/core/handlers/ArtifactHandler.java b/org.eclipse.capra.core/src/org/eclipse/capra/core/handlers/ArtifactHandler.java
index 092fb5f..f429025 100644
--- a/org.eclipse.capra.core/src/org/eclipse/capra/core/handlers/ArtifactHandler.java
+++ b/org.eclipse.capra.core/src/org/eclipse/capra/core/handlers/ArtifactHandler.java
@@ -10,6 +10,7 @@
  *******************************************************************************/
 package org.eclipse.capra.core.handlers;
 
+import org.eclipse.capra.core.helpers.EMFHelper;
 import org.eclipse.emf.ecore.EObject;
 
 /**
@@ -55,4 +56,20 @@
 	 */
 	Object resolveArtifact(EObject artifact);
 
+	/**
+	 * 
+	 * @param selection
+	 *            The selected object to be added to the selection view
+	 * @return The name that should be displayed in the selection view. This
+	 *         method has a default implementation but gives flexibility for
+	 *         each handler to decide how its objects should look like when
+	 *         dropped to the selection view.
+	 */
+	default String getDisplayName(Object selection) {
+		if (selection instanceof EObject) {
+			return EMFHelper.getIdentifier((EObject) selection);
+		} else
+			return selection.toString();
+	}
+
 }
diff --git a/org.eclipse.capra.ui/src/org/eclipse/capra/ui/helpers/EMFHelper.java b/org.eclipse.capra.core/src/org/eclipse/capra/core/helpers/EMFHelper.java
similarity index 98%
rename from org.eclipse.capra.ui/src/org/eclipse/capra/ui/helpers/EMFHelper.java
rename to org.eclipse.capra.core/src/org/eclipse/capra/core/helpers/EMFHelper.java
index e498b8e..4b3fcbe 100644
--- a/org.eclipse.capra.ui/src/org/eclipse/capra/ui/helpers/EMFHelper.java
+++ b/org.eclipse.capra.core/src/org/eclipse/capra/core/helpers/EMFHelper.java
@@ -8,7 +8,7 @@
  *   Contributors:
  *      Chalmers | University of Gothenburg and rt-labs - initial API and implementation and/or initial documentation
  *******************************************************************************/
-package org.eclipse.capra.ui.helpers;
+package org.eclipse.capra.core.helpers;
 
 import java.util.ArrayList;
 import java.util.List;
diff --git a/org.eclipse.capra.handler.cdt/src/org/eclipse/capra/handler/cdt/CDTHandler.java b/org.eclipse.capra.handler.cdt/src/org/eclipse/capra/handler/cdt/CDTHandler.java
index 8657e19..18af1d7 100644
--- a/org.eclipse.capra.handler.cdt/src/org/eclipse/capra/handler/cdt/CDTHandler.java
+++ b/org.eclipse.capra.handler.cdt/src/org/eclipse/capra/handler/cdt/CDTHandler.java
@@ -44,4 +44,10 @@
 		return CoreModel.create(uri);
 	}
 
+	@Override
+	public String getDisplayName(Object selection) {
+		ICElement cu = (ICElement) selection;
+		return cu.getElementName();
+	}
+
 }
diff --git a/org.eclipse.capra.handler.file/src/org/eclipse/capra/handler/file/IFileHandler.java b/org.eclipse.capra.handler.file/src/org/eclipse/capra/handler/file/IFileHandler.java
index 59593d2..bfd655b 100644
--- a/org.eclipse.capra.handler.file/src/org/eclipse/capra/handler/file/IFileHandler.java
+++ b/org.eclipse.capra.handler.file/src/org/eclipse/capra/handler/file/IFileHandler.java
@@ -37,7 +37,13 @@
 
 	@Override
 	public Object resolveArtifact(EObject artifact) {
-		// TODO Auto-generated method stub
+		//TO DO
 		return null;
 	}
+	
+	@Override
+	public String getDisplayName(Object selection) {
+		IFile selectionAsFile = (IFile) selection;
+		return selectionAsFile.getName();
+	}
 }
diff --git a/org.eclipse.capra.handler.hudson/src/org/eclipse/capra/handler/hudson/HudsonHandler.java b/org.eclipse.capra.handler.hudson/src/org/eclipse/capra/handler/hudson/HudsonHandler.java
index 18d064d..4e5b100 100644
--- a/org.eclipse.capra.handler.hudson/src/org/eclipse/capra/handler/hudson/HudsonHandler.java
+++ b/org.eclipse.capra.handler.hudson/src/org/eclipse/capra/handler/hudson/HudsonHandler.java
@@ -56,4 +56,16 @@
 		return null;
 	}
 
+	@Override
+	public String getDisplayName(Object selection) {
+		if (selection instanceof TestElement) {
+			TestElement test = (TestElement) selection;
+			return test.getLabel();
+		} else {
+			BuildElement build = (BuildElement) selection;
+			return build.getName();
+		}
+
+	}
+
 }
diff --git a/org.eclipse.capra.handler.jdt/src/org/eclipse/capra/handler/jdt/JavaElementHandler.java b/org.eclipse.capra.handler.jdt/src/org/eclipse/capra/handler/jdt/JavaElementHandler.java
index 45e0d08..df804f1 100644
--- a/org.eclipse.capra.handler.jdt/src/org/eclipse/capra/handler/jdt/JavaElementHandler.java
+++ b/org.eclipse.capra.handler.jdt/src/org/eclipse/capra/handler/jdt/JavaElementHandler.java
@@ -48,4 +48,10 @@
 		return JavaCore.create(uri);
 	}
 
+	@Override
+	public String getDisplayName(Object selection) {
+		IJavaElement cu = (IJavaElement) selection;
+		return cu.getElementName();
+	}
+
 }
diff --git a/org.eclipse.capra.handler.mylyn/src/org/eclipse/capra/handler/mylyn/MylynHandler.java b/org.eclipse.capra.handler.mylyn/src/org/eclipse/capra/handler/mylyn/MylynHandler.java
index ca851b2..03ed56e 100644
--- a/org.eclipse.capra.handler.mylyn/src/org/eclipse/capra/handler/mylyn/MylynHandler.java
+++ b/org.eclipse.capra.handler.mylyn/src/org/eclipse/capra/handler/mylyn/MylynHandler.java
@@ -41,4 +41,10 @@
 		return null;
 	}
 
+	@Override
+	public String getDisplayName(Object selection) {
+		ITask task = (ITask) selection;
+		return task.getTaskId() + " : " + task.getSummary();
+	}
+
 }
diff --git a/org.eclipse.capra.handler.reqIf/src/org/eclipse/capra/handler/reqif/ReqIfHandler.java b/org.eclipse.capra.handler.reqIf/src/org/eclipse/capra/handler/reqif/ReqIfHandler.java
index d8a5333..af625aa 100644
--- a/org.eclipse.capra.handler.reqIf/src/org/eclipse/capra/handler/reqif/ReqIfHandler.java
+++ b/org.eclipse.capra.handler.reqIf/src/org/eclipse/capra/handler/reqif/ReqIfHandler.java
@@ -13,6 +13,7 @@
 import org.eclipse.capra.core.handlers.ArtifactHandler;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.rmf.reqif10.SpecObject;
 import org.eclipse.rmf.reqif10.impl.SpecHierarchyImpl;
 
 public class ReqIfHandler implements ArtifactHandler {
@@ -46,4 +47,14 @@
 		return artifact;
 	}
 
+	@Override
+	public String getDisplayName(Object selection) {
+		IStructuredSelection structuredSelection = (IStructuredSelection) selection;
+		Object element = structuredSelection.getFirstElement();
+		SpecHierarchyImpl specification = (SpecHierarchyImpl) element;
+		SpecObject specObject = specification.getObject();
+
+		return specObject.getIdentifier();
+	}
+
 }
diff --git a/org.eclipse.capra.ui/src/org/eclipse/capra/ui/views/SelectionView.java b/org.eclipse.capra.ui/src/org/eclipse/capra/ui/views/SelectionView.java
index 7260af7..913a607 100644
--- a/org.eclipse.capra.ui/src/org/eclipse/capra/ui/views/SelectionView.java
+++ b/org.eclipse.capra.ui/src/org/eclipse/capra/ui/views/SelectionView.java
@@ -22,8 +22,6 @@
 import org.eclipse.capra.core.handlers.ArtifactHandler;
 import org.eclipse.capra.core.handlers.PriorityHandler;
 import org.eclipse.capra.core.helpers.ExtensionPointHelper;
-import org.eclipse.capra.ui.helpers.EMFHelper;
-import org.eclipse.emf.ecore.EObject;
 import org.eclipse.jface.action.IMenuListener;
 import org.eclipse.jface.action.IMenuManager;
 import org.eclipse.jface.action.MenuManager;
@@ -93,11 +91,13 @@
 
 		@Override
 		public String getText(Object element) {
-			if (element instanceof EObject) {
-				return EMFHelper.getIdentifier((EObject) element);
+			Collection<ArtifactHandler> artifactHandlers = ExtensionPointHelper.getArtifactHandlers();
+			List<ArtifactHandler> availableHandlers = artifactHandlers.stream()
+					.filter(handler -> handler.canHandleSelection(element)).collect(Collectors.toList());
+			if (availableHandlers.size() == 1) {
+				return availableHandlers.get(0).getDisplayName(element);
 			} else
-				return element.toString();
-
+				return null;
 		};
 
 		@Override