Fixed a bug where the properties of a connection would not show

This commit addresses a bug that occurred when a user first selected a
trace link in the matrix view to show its properties, then switched to a
different matrix and selected another link. The expected behavior is
that the properties of this new link are shown, but in practice, either
no properties or the properties of the previously selected link was
shown. The bug has been fixed by updating the SelectionProvider with the
SelectionLayer and DataProvider whenever a new traceability matrix is
shown.
diff --git a/bundles/org.eclipse.capra.ui.matrix/src/org/eclipse/capra/ui/matrix/selection/TraceabilityMatrixSelectionProvider.java b/bundles/org.eclipse.capra.ui.matrix/src/org/eclipse/capra/ui/matrix/selection/TraceabilityMatrixSelectionProvider.java
index da18b09..6a95d64 100644
--- a/bundles/org.eclipse.capra.ui.matrix/src/org/eclipse/capra/ui/matrix/selection/TraceabilityMatrixSelectionProvider.java
+++ b/bundles/org.eclipse.capra.ui.matrix/src/org/eclipse/capra/ui/matrix/selection/TraceabilityMatrixSelectionProvider.java
@@ -54,10 +54,7 @@
 
 	public TraceabilityMatrixSelectionProvider(SelectionLayer selectionLayer,
 			TraceabilityMatrixDataProvider dataProvider) {
-		this.selectionLayer = selectionLayer;
-		this.dataProvider = dataProvider;
-
-		this.selectionLayer.addLayerListener(this);
+		this.updateProvider(selectionLayer, dataProvider);
 	}
 
 	@Override
@@ -118,4 +115,17 @@
 		// Deliberately do nothing
 	}
 
+	/**
+	 * Sets the selection layer and the data provider used by this
+	 * {@code SelectionProvider} to retrieve selected data from the underlying
+	 * NatTable.
+	 * 
+	 * @param selectionLayer the new selection layer
+	 */
+	public void updateProvider(SelectionLayer selectionLayer, TraceabilityMatrixDataProvider dataProvider) {
+		this.selectionLayer = selectionLayer;
+		this.dataProvider = dataProvider;
+		this.selectionLayer.addLayerListener(this);
+	}
+
 }
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 4c5b7f1..5d2e162 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
@@ -137,6 +137,7 @@
 	private TraceHelper traceHelper;
 
 	private TraceabilityMatrixDataProvider bodyDataProvider;
+	private TraceabilityMatrixSelectionProvider selectionProvider;
 	private BodyLayerStack bodyLayer;
 
 	private List<Object> selectedModels = new ArrayList<>();
@@ -344,8 +345,13 @@
 			traceMatrixTable.configure();
 
 			// Attach the selection provider
-			getSite().setSelectionProvider(
-					new TraceabilityMatrixSelectionProvider(bodyLayer.getSelectionLayer(), bodyDataProvider));
+			if (this.selectionProvider == null) {
+				this.selectionProvider = new TraceabilityMatrixSelectionProvider(bodyLayer.getSelectionLayer(),
+						this.bodyDataProvider);
+			} else {
+				selectionProvider.updateProvider(bodyLayer.getSelectionLayer(), this.bodyDataProvider);
+			}
+			getSite().setSelectionProvider(this.selectionProvider);
 
 			// Adding the tool tips
 			attachToolTip();