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