privateobject Simplifier_Trace_Window { sealedtrait Trace_Tree {
// FIXME replace with immutable tree builder var children: SortedMap[Long, Either[Simplifier_Trace.Item.Data, Elem_Tree]] = SortedMap.empty val serial: Long val parent: Option[Trace_Tree] val markup: String def interesting: Boolean
def tree_children: List[Elem_Tree] = children.values.toList.collect { case Right(tree) => tree
}
}
finalclass Root_Tree(val serial: Long) extends Trace_Tree { val parent = None val interesting = true val markup = ""
}
finalclass Elem_Tree(data: Simplifier_Trace.Item.Data, val parent: Option[Trace_Tree]) extends Trace_Tree { val serial = data.serial val markup = data.markup
privateval pretty_text_area = new Pretty_Text_Area(view)
size = new Dimension(500, 500)
contents = new BorderPanel {
layout(Component.wrap(pretty_text_area)) = BorderPanel.Position.Center
}
privateval tree = trace.entries.headOption match { case Some(first) => val tree = new Simplifier_Trace_Window.Root_Tree(first.parent)
Simplifier_Trace_Window.walk_trace(trace.entries, Map(first.parent -> tree))
tree case None => new Simplifier_Trace_Window.Root_Tree(0)
}
handle_update()
open()
handle_resize()
def handle_update(): Unit = { val output = tree.tree_children.flatMap(_.format)
pretty_text_area.update(snapshot, Command.Results.empty, output)
}
def handle_resize(): Unit = pretty_text_area.zoom()
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.