]> git.unchartedbackwaters.co.uk Git - francis/ofc.git/commitdiff
Re-work tree rendering code.
authorFrancis Russell <francis@unchartedbackwaters.co.uk>
Wed, 8 Feb 2012 18:07:42 +0000 (18:07 +0000)
committerFrancis Russell <francis@unchartedbackwaters.co.uk>
Wed, 8 Feb 2012 18:07:42 +0000 (18:07 +0000)
src/ofc/generators/onetep/LoopTree.scala

index e34458b9119fc5b9dc2b39f481c62a9a770cf876..ae4f7fb3ad474c273d0148ffb8b40393022aa6dc 100644 (file)
@@ -347,6 +347,7 @@ class LoopTree private[onetep](localIndex: Option[Index]) extends Fragment {
   override def toString : String = toStrings.mkString("\n")
 
   private def toStrings : List[String] = {
+    val stringTree = ArrayBuffer[List[String]]()
     val result = ArrayBuffer[String]()
     result += "Index: " + (localIndex match {
       case Some(x) => x.toString
@@ -354,17 +355,21 @@ class LoopTree private[onetep](localIndex: Option[Index]) extends Fragment {
     })
 
     for(bufferDescriptor <- bufferDescriptors)
-      result += "|--"+bufferDescriptor.toString
+      stringTree += List(bufferDescriptor.toString)
     
-    for (entryID <- 0 until subItems.size) {
-      val subList = (subItems(entryID) match {
+    for (subItem <- subItems) {
+      val subList = (subItem match {
         case (tree: LoopTree) => tree.toStrings
         case x => List(x.toString)
       })
 
-      val subListHeadPrefix = if (entryID < subItems.size-1) "|--" else "`--"
-      val subListTailPrefix = if (entryID < subItems.size-1) "|  " else "   "
-      result ++= (subListHeadPrefix+subList.head) :: (subList.tail.map(subListTailPrefix+_))
+      stringTree += subList
+    }
+
+    for((subTree, subTreeIndex) <- stringTree.zipWithIndex) {
+      val subTreeHeadPrefix = if (subTreeIndex < stringTree.size-1) "|--" else "`--"
+      val subTreeTailPrefix = if (subTreeIndex < stringTree.size-1) "|  " else "   "
+      result ++= (subTreeHeadPrefix+subTree.head) :: (subTree.tail.map(subTreeTailPrefix+_))
     }
 
     result.toList