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);