[531720] Optimize DesignServices.getDisplayedEClasses and related

Bug: 531720
Change-Id: I4dafb814d49b240ebdb34d9eb952d9f7a6dcb8b9
Signed-off-by: Pierre-Charles David <pierre-charles.david@obeo.fr>
diff --git a/org.eclipse.emf.ecoretools.design/src/org/eclipse/emf/ecoretools/design/service/DesignServices.java b/org.eclipse.emf.ecoretools.design/src/org/eclipse/emf/ecoretools/design/service/DesignServices.java
index c56674b..fbbab68 100644
--- a/org.eclipse.emf.ecoretools.design/src/org/eclipse/emf/ecoretools/design/service/DesignServices.java
+++ b/org.eclipse.emf.ecoretools.design/src/org/eclipse/emf/ecoretools/design/service/DesignServices.java
@@ -69,6 +69,7 @@
 import org.eclipse.sirius.diagram.EdgeTarget;
 import org.eclipse.sirius.diagram.business.api.query.DDiagramQuery;
 import org.eclipse.sirius.diagram.business.internal.helper.task.operations.CreateViewTask;
+import org.eclipse.sirius.diagram.business.internal.query.DDiagramInternalQuery;
 import org.eclipse.sirius.diagram.description.AbstractNodeMapping;
 import org.eclipse.sirius.diagram.description.DiagramElementMapping;
 import org.eclipse.sirius.diagram.description.tool.CreateView;
@@ -250,7 +251,7 @@
 
 	public Set<EClass> getDisplayedEClasses(DSemanticDiagram diagram) {
 		Set<EClass> result = Sets.newLinkedHashSet();
-		Iterator<DNodeList> it = Iterators.filter(new DDiagramQuery(diagram).getAllDiagramElements().iterator(),
+		Iterator<DNodeList> it = Iterators.filter(new DDiagramInternalQuery(diagram).getContainers().iterator(),
 				DNodeList.class);
 		while (it.hasNext()) {
 			DNodeList dec = it.next();
@@ -263,9 +264,9 @@
 
 	public Set<EClassifier> getDisplayedEClassifiers(DSemanticDiagram diagram) {
 		Set<EClassifier> result = Sets.newLinkedHashSet();
-		Iterator<DNodeList> it = Iterators.filter(new DDiagramQuery(diagram).getAllDiagramElements().iterator(),
-				DNodeList.class);
-		while (it.hasNext()) {
+        Iterator<DNodeList> it = Iterators.filter(new DDiagramInternalQuery(diagram).getContainers().iterator(),
+                DNodeList.class);
+        while (it.hasNext()) {
 			DNodeList dec = it.next();
 			if (dec.getTarget() instanceof EClassifier && dec.isVisible()) {
 				result.add((EClassifier) dec.getTarget());
@@ -276,8 +277,8 @@
 
 	private Set<EClass> getInternalEClasses(DSemanticDiagram diagram) {
 		Set<EClass> result = Sets.newLinkedHashSet();
-		Iterator<DNodeList> it = Iterators.filter(new DDiagramQuery(diagram).getAllDiagramElements().iterator(),
-				DNodeList.class);
+        Iterator<DNodeList> it = Iterators.filter(new DDiagramInternalQuery(diagram).getContainers().iterator(),
+                DNodeList.class);
 		while (it.hasNext()) {
 			DNodeList dec = it.next();
 			if (dec.getTarget() instanceof EClass) {