From d2636ce44602568668e6b0fc5cc0add8af7146d3 Mon Sep 17 00:00:00 2001
From: Florian Hoelzl <hoelzl@fortiss.org>
Date: Mon, 2 May 2016 12:00:34 +0000
Subject: [PATCH] PersistencyService is now aware of running tutorial. refs
 2567

---
 .../tooling/kernel/internal/PersistencyService.java | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/PersistencyService.java b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/PersistencyService.java
index 212f776b0..d9dbf9feb 100644
--- a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/PersistencyService.java
+++ b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/PersistencyService.java
@@ -19,6 +19,7 @@ package org.fortiss.tooling.kernel.internal;
 
 import static java.util.Collections.emptyList;
 import static java.util.Collections.unmodifiableList;
+import static org.conqat.lib.commons.collections.CollectionUtils.asUnmodifiable;
 import static org.fortiss.tooling.kernel.utils.ExtensionPointUtils.getBundle;
 import static org.fortiss.tooling.kernel.utils.ExtensionPointUtils.getConfigurationElements;
 import static org.fortiss.tooling.kernel.utils.ExtensionPointUtils.loadClass;
@@ -30,8 +31,8 @@ import java.util.HashMap;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
-import org.conqat.lib.commons.collections.CollectionUtils;
 import org.conqat.lib.commons.collections.UnmodifiableList;
 import org.eclipse.core.resources.WorkspaceJob;
 import org.eclipse.core.runtime.CoreException;
@@ -51,6 +52,7 @@ import org.fortiss.tooling.kernel.introspection.KernelIntrospectionSystemService
 import org.fortiss.tooling.kernel.introspection.items.PersistencyServiceIntrospectionDetailsItem;
 import org.fortiss.tooling.kernel.service.ILibraryService;
 import org.fortiss.tooling.kernel.service.IPersistencyService;
+import org.fortiss.tooling.kernel.service.ITutorialService;
 import org.fortiss.tooling.kernel.service.listener.IPersistencyServiceListener;
 import org.osgi.framework.Bundle;
 
@@ -111,7 +113,14 @@ public class PersistencyService implements IPersistencyService, IIntrospectiveKe
 	/** {@inheritDoc} */
 	@Override
 	public synchronized UnmodifiableList<ITopLevelElement> getTopLevelElements() {
-		return CollectionUtils.asUnmodifiable(elementCache);
+		if(ITutorialService.INSTANCE.isTutorialActive()) {
+			EObject activeRootElement =
+					ITutorialService.INSTANCE.getActiveTutorial().getRootElement();
+			return asUnmodifiable(elementCache.stream()
+					.filter(t -> t.getRootModelElement() == activeRootElement)
+					.collect(Collectors.toList()));
+		}
+		return asUnmodifiable(elementCache);
 	}
 
 	/** {@inheritDoc} */
-- 
GitLab