Added utiltiy for converting ViewTree to String

Signed-off-by: Sina Madani <sinadoom@googlemail.com>
diff --git a/plugins/org.eclipse.epsilon.picto/src/org/eclipse/epsilon/picto/ViewTree.java b/plugins/org.eclipse.epsilon.picto/src/org/eclipse/epsilon/picto/ViewTree.java
index 4e37165..4e6e53d 100644
--- a/plugins/org.eclipse.epsilon.picto/src/org/eclipse/epsilon/picto/ViewTree.java
+++ b/plugins/org.eclipse.epsilon.picto/src/org/eclipse/epsilon/picto/ViewTree.java
@@ -14,6 +14,7 @@
 import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Set;
+import java.util.stream.Collectors;
 import org.eclipse.epsilon.picto.dom.Patch;
 import org.eclipse.swt.graphics.Point;
 
@@ -211,14 +212,28 @@
 	
 	public List<ViewContent> getContents(PictoView pictoView) {
 		List<ViewContent> viewContents = new ArrayList<>();
-		ViewContent viewContent = getContent();
-		while (viewContent != null) {
-			viewContents.add(viewContent);
-			viewContent = viewContent.getNext(pictoView);
-		}
+		for (
+			ViewContent viewContent = getContent();
+			viewContent != null && viewContents.add(viewContent);
+			viewContent = viewContent.getNext(pictoView)
+		);
 		return viewContents;
 	}
 	
+	/**
+	 * Concatenates the result of {@link #getContents(PictoView)}
+	 * where each {@link ViewContent#getText()}) is separated by a new line.
+	 * 
+	 * @param pictoView
+	 * @return
+	 * @since 2.2
+	 */
+	public String getContentsText(PictoView pictoView) {
+		return getContents(pictoView).stream()
+			.map(ViewContent::getText)
+			.collect(Collectors.joining(System.lineSeparator()));
+	}
+	
 	public void setPromise(ContentPromise promise) {
 		if (promise != this.promise) {
 			this.promise = promise;