scala/ScalaBook/chapter-06/tables.scala
import scala.xml._
import scala.swing._
import scala.swing.event._
object table extends SimpleGUIApplication {
var library = XML.loadFile("library.xml")
var books : List[Array[Any]] = Nil
for ( val book <- library \ "book" ) {
var entry = new Array[Any](8)
var i = 0
for ( val author <- book \ "authors" \ "author" ) {
entry(i) = author.text
i += 1
}
for ( j <- i to 2 ) {
entry(i) = "No Author"
i += 1
}
entry(i) = (book \ "title").text ; i += 1
entry(i) = (book \ "subtitle").text ; i += 1
entry(i) = (book \ "publisher").text ; i += 1
entry(i) = (book \ "address").text ; i += 1
entry(i) = (book \ "year").text.trim.toInt
books = books ++ List( entry.toArray )
}
def top = new MainFrame {
title = "XML Display"
val columnNames = Array("First Author",
"Second Author",
"Third Author",
"Title",
"Subtitle",
"Publisher",
"Address",
"Year")
val table = new Table( (books.toArray), columnNames) {
preferredViewportSize = new java.awt.Dimension(900,200)
}
contents = new ScrollPane { contents = table }
// listenTo(table.selection)
// reactions += {
// case TableRowsAdded(table,_) =>
// }
}
}
// var model = table.peer.getModel()
//model.addRow(new Object[]{"v1", "v2"});