Optimised header creation of columns and rows in traceability matrix

This commit changes the data providers for the headers columns and rows
in the traceability matrix to no longer instantiate a new
ArtifactHelper. Instead, the ArtifactHelper from the main view is
reused.
diff --git a/bundles/org.eclipse.capra.ui.matrix/src/org/eclipse/capra/ui/matrix/TraceabilityMatrixColumnHeaderDataProvider.java b/bundles/org.eclipse.capra.ui.matrix/src/org/eclipse/capra/ui/matrix/TraceabilityMatrixColumnHeaderDataProvider.java
index ecf8e12..8d6e2a7 100644
--- a/bundles/org.eclipse.capra.ui.matrix/src/org/eclipse/capra/ui/matrix/TraceabilityMatrixColumnHeaderDataProvider.java
+++ b/bundles/org.eclipse.capra.ui.matrix/src/org/eclipse/capra/ui/matrix/TraceabilityMatrixColumnHeaderDataProvider.java
@@ -17,12 +17,8 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import org.eclipse.capra.core.adapters.TracePersistenceAdapter;
 import org.eclipse.capra.core.helpers.ArtifactHelper;
-import org.eclipse.capra.core.helpers.ExtensionPointHelper;
 import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
 import org.eclipse.nebula.widgets.nattable.data.IDataProvider;
 
 /**
@@ -37,14 +33,8 @@
 
 	private List<String> labels = new ArrayList<>();
 
-	public TraceabilityMatrixColumnHeaderDataProvider(List<EObject> data) {
-
-		TracePersistenceAdapter persistenceAdapter = ExtensionPointHelper.getTracePersistenceAdapter().get();
-		ResourceSet resourceSet = new ResourceSetImpl();
-		EObject artifactModel = persistenceAdapter.getArtifactWrappers(resourceSet);
-
+	public TraceabilityMatrixColumnHeaderDataProvider(List<EObject> data, ArtifactHelper artifactHelper) {
 		for (EObject next : data) {
-			ArtifactHelper artifactHelper = new ArtifactHelper(artifactModel);
 			this.labels.add(artifactHelper.getArtifactLabel(next));
 		}
 	}
diff --git a/bundles/org.eclipse.capra.ui.matrix/src/org/eclipse/capra/ui/matrix/TraceabilityMatrixRowHeaderDataProvider.java b/bundles/org.eclipse.capra.ui.matrix/src/org/eclipse/capra/ui/matrix/TraceabilityMatrixRowHeaderDataProvider.java
index e22bb0f..f3d7da9 100644
--- a/bundles/org.eclipse.capra.ui.matrix/src/org/eclipse/capra/ui/matrix/TraceabilityMatrixRowHeaderDataProvider.java
+++ b/bundles/org.eclipse.capra.ui.matrix/src/org/eclipse/capra/ui/matrix/TraceabilityMatrixRowHeaderDataProvider.java
@@ -17,12 +17,8 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import org.eclipse.capra.core.adapters.TracePersistenceAdapter;
 import org.eclipse.capra.core.helpers.ArtifactHelper;
-import org.eclipse.capra.core.helpers.ExtensionPointHelper;
 import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
 import org.eclipse.nebula.widgets.nattable.data.IDataProvider;
 
 /**
@@ -44,14 +40,8 @@
 	 * 
 	 * @param data a list with the information about the row headers
 	 */
-	public TraceabilityMatrixRowHeaderDataProvider(List<EObject> data) {
-
-		TracePersistenceAdapter persistenceAdapter = ExtensionPointHelper.getTracePersistenceAdapter().get();
-		ResourceSet resourceSet = new ResourceSetImpl();
-		EObject artifactModel = persistenceAdapter.getArtifactWrappers(resourceSet);
-
+	public TraceabilityMatrixRowHeaderDataProvider(List<EObject> data, ArtifactHelper artifactHelper) {
 		for (EObject next : data) {
-			ArtifactHelper artifactHelper = new ArtifactHelper(artifactModel);
 			this.labels.add(artifactHelper.getArtifactLabel(next));
 		}
 	}
diff --git a/bundles/org.eclipse.capra.ui.matrix/src/org/eclipse/capra/ui/matrix/views/TraceabilityMatrixView.java b/bundles/org.eclipse.capra.ui.matrix/src/org/eclipse/capra/ui/matrix/views/TraceabilityMatrixView.java
index d07e7c8..ab8d4c2 100644
--- a/bundles/org.eclipse.capra.ui.matrix/src/org/eclipse/capra/ui/matrix/views/TraceabilityMatrixView.java
+++ b/bundles/org.eclipse.capra.ui.matrix/src/org/eclipse/capra/ui/matrix/views/TraceabilityMatrixView.java
@@ -311,9 +311,9 @@
 			// rows, the labels are created.
 			this.bodyDataProvider = new TraceabilityMatrixDataProvider(traces, this.traceModel, this.traceAdapter);
 			IDataProvider colHeaderDataProvider = new TraceabilityMatrixColumnHeaderDataProvider(
-					this.bodyDataProvider.getColumns());
+					this.bodyDataProvider.getColumns(), artifactHelper);
 			IDataProvider rowHeaderDataProvider = new TraceabilityMatrixRowHeaderDataProvider(
-					this.bodyDataProvider.getRows());
+					this.bodyDataProvider.getRows(), artifactHelper);
 
 			// Putting the data providers to their respective stacks
 			this.bodyLayer = new BodyLayerStack(this.bodyDataProvider);