From: Francis Russell Date: Wed, 8 Feb 2012 18:07:42 +0000 (+0000) Subject: Re-work tree rendering code. X-Git-Url: https://git.unchartedbackwaters.co.uk/w/?a=commitdiff_plain;h=019db08df48266a518cbbb9a0bc465a40e2f36dd;p=francis%2Fofc.git Re-work tree rendering code. --- diff --git a/src/ofc/generators/onetep/LoopTree.scala b/src/ofc/generators/onetep/LoopTree.scala index e34458b..ae4f7fb 100644 --- a/src/ofc/generators/onetep/LoopTree.scala +++ b/src/ofc/generators/onetep/LoopTree.scala @@ -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