Skip to content

Instantly share code, notes, and snippets.

@kenbot
Created January 30, 2013 13:42
Show Gist options
  • Save kenbot/4673393 to your computer and use it in GitHub Desktop.
Save kenbot/4673393 to your computer and use it in GitHub Desktop.
Simple DIY Scala DSL for javax.swing.SwingWorker
object Async {
def async[A](thunk: => A)(whenDone: A => Unit) {
val swingWorker = new javax.swing.SwingWorker[A, Any] {
override def doInBackground(): A = thunk
override def done(): Unit = whenDone(get)
}
swingWorker.execute()
}
}
// Usage example
Async.async(recreateModel filter matches) { filteredModel =>
tree.model = filteredModel
tree expandRow 0
tree.revalidate()
tree.repaint()
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment