Skip to content

Instantly share code, notes, and snippets.

@dcbriccetti
Created September 1, 2009 22:34
Show Gist options
  • Save dcbriccetti/179436 to your computer and use it in GitHub Desktop.
Save dcbriccetti/179436 to your computer and use it in GitHub Desktop.
import javax.swing.SwingWorker
class A {
def loadAll(f:(Int) => List[String]): List[String] = List("a")
def getFriendsIds(page: Int): List[String] = List("a")
def getFollowersIds(page: Int): List[String] = List("a")
}
class B {
def setFollowers(followers: List[String]) {}
def setFriends(friends: List[String]) {}
}
object Temp {
def main(args: Array[String]): Unit = {
val a = new A
val b = new B
new SwingWorker[List[String], Object] {
def doInBackground = a.loadAll(a.getFollowersIds)
override def done = b.setFollowers(get)
}.execute
new SwingWorker[List[String], Object] {
def doInBackground = a.loadAll(a.getFriendsIds)
override def done = b.setFriends(get)
}.execute
}
}
// How to eliminate duplication (four lines starting "new SwingWorker")?
// OK, here’s what I got working. Thanks everyone for the help.
/** Background user fetcher */
class BgUserFetcher(getter: Int => List[TwitterUserId], setter: List[String] => Unit)
extends SwingWorker[List[TwitterUserId], Object] {
def doInBackground = twitterSession.loadAll(getter)
override def done = setter(get.map(_.id.toString))
execute
}
new BgUserFetcher(twitterSession.getFriendsIds , streams.setFriendIds)
new BgUserFetcher(twitterSession.getFollowersIds, streams.setFollowerIds)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment