Added option to filter out the analysis features on the plantUML view
diff --git a/org.eclipse.capra.ui.plantuml/src/org/eclipse/capra/ui/plantuml/AnalyseTraceModel.java b/org.eclipse.capra.ui.plantuml/src/org/eclipse/capra/ui/plantuml/AnalyseTraceModel.java
new file mode 100644
index 0000000..aeb6dfc
--- /dev/null
+++ b/org.eclipse.capra.ui.plantuml/src/org/eclipse/capra/ui/plantuml/AnalyseTraceModel.java
@@ -0,0 +1,75 @@
+package org.eclipse.capra.ui.plantuml;
+
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.capra.GenericTraceMetaModel.GenericTraceModel;
+import org.eclipse.capra.GenericTraceMetaModel.RelatedTo;
+import org.eclipse.capra.core.adapters.Connection;
+import org.eclipse.capra.core.adapters.TraceMetaModelAdapter;
+import org.eclipse.capra.core.adapters.TracePersistenceAdapter;
+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;
+
+public class AnalyseTraceModel {
+
+	private static TraceMetaModelAdapter traceAdapter = ExtensionPointHelper.getTraceMetamodelAdapter().get();
+	private static TracePersistenceAdapter persistenceAdapter = ExtensionPointHelper.getTracePersistenceAdapter().get();
+	private static ResourceSet resource = new ResourceSetImpl();
+	private static EObject traceModel = persistenceAdapter.getTraceModel(resource);
+	private static GenericTraceModel tModel = (GenericTraceModel) traceModel;
+
+	public static double getThresholdPerTraceaLinkSet() {
+
+		Set<EObject> allItems = new HashSet<>();
+		for (RelatedTo trace : tModel.getTraces()) {
+			allItems.addAll(trace.getItem());
+		}
+
+		List<Integer> numberofConnections = new ArrayList<>();
+
+		for (EObject item : allItems) {
+			numberofConnections.add(traceAdapter.getConnectedElements(item, traceModel).size());
+		}
+
+		double sum = 0;
+		double avg = 0;
+		for (double i : numberofConnections) {
+			sum = sum + i;
+		}
+		avg = sum / numberofConnections.size();
+
+		double intermediateSum = 0;
+		for (double i : numberofConnections) {
+			double n = i - avg;
+			intermediateSum = intermediateSum + Math.pow(n, 2);
+		}
+		intermediateSum = intermediateSum / numberofConnections.size();
+		double stdv = Math.sqrt(intermediateSum);
+		return stdv + avg;
+
+	}
+
+	public static int getNumberOfNodesInNetwork(EObject selection) {
+
+		List<Connection> connections = traceAdapter.getTransitivelyConnectedElements(selection,
+				persistenceAdapter.getTraceModel(selection.eResource().getResourceSet()));
+
+		Set<EObject> elements = new HashSet<>();
+		for (Connection c : connections) {
+			elements.add(c.getOrigin());
+			elements.addAll(c.getTargets());
+		}
+
+		return elements.size();
+
+	}
+
+	// Number of connections in a sub network. Total reachable connections from
+	// one node
+
+}
diff --git a/org.eclipse.capra.ui.plantuml/src/org/eclipse/capra/ui/plantuml/ShowAnalysisFeatures.java b/org.eclipse.capra.ui.plantuml/src/org/eclipse/capra/ui/plantuml/ShowAnalysisFeatures.java
new file mode 100644
index 0000000..60c2721
--- /dev/null
+++ b/org.eclipse.capra.ui.plantuml/src/org/eclipse/capra/ui/plantuml/ShowAnalysisFeatures.java
@@ -0,0 +1,47 @@
+package org.eclipse.capra.ui.plantuml;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.preferences.InstanceScope;
+import org.osgi.service.prefs.BackingStoreException;
+import org.osgi.service.prefs.Preferences;
+
+public class ShowAnalysisFeatures extends AbstractHandler {
+
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		if (isShowAnalysis())
+			setAnalysis(false);
+		else
+			setAnalysis(true);
+
+		return null;
+	}
+
+	public static boolean isShowAnalysis() {
+		Preferences showAnalysis = getPreference();
+
+		return showAnalysis.get("option", "dontShow").equals("Show");
+	}
+
+	private static Preferences getPreference() {
+		Preferences preferences = InstanceScope.INSTANCE.getNode("org.eclipse.capra.ui.plantuml.showAnalysisFeatures");
+		Preferences transitivity = preferences.node("Show");
+		return transitivity;
+	}
+
+	public static void setAnalysis(boolean value) {
+		Preferences transitivity = getPreference();
+
+		transitivity.put("option", value ? "Show" : "dontShow");
+
+		try {
+			// forces the application to save the preferences
+			transitivity.flush();
+		} catch (BackingStoreException e) {
+			e.printStackTrace();
+		}
+	}
+
+}