2011-05-02 47 views
0

如何發佈scala.collection.mutable.ObservableBuffer發佈擺動事件,以便在緩衝區更改時更新我的​​組件?ObservableBuffer發佈擺動事件

令人困惑的是scala有Publisher兩個實現。一個是scala.collection.mutable.Publisher,第二個是scala.swing.Publisher。不幸的是,ObservableBuffer只擴展了第一種類型Publisher

回答

2

您可以編寫一個ObservableBuffer的子類,它將事件從Scala方式轉換爲Swing方式。我這樣做是爲了把一個ObservableBuffer到Eclipse中IObservableList,你可以看看這裏:https://gist.github.com/951288

注意,它是一種快速的複製粘貼,而不是一切都可能編譯,但你的想法。

+0

好的。我想我希望能有一種光鮮的方式,但也許這是不可能的。 – dsg 2011-05-02 09:33:09

+0

我的代碼可能比Swing發佈者需要的更復雜;其中大部分是正確處理'IObservableList'的'ListDiffEvent'。不要忘了'override def ++ =',因爲這個bug:https://lampsvn.epfl.ch/trac/scala/ticket/4461 – 2011-05-02 09:40:40

+0

Philippe - 我打算只複製' ObservableBuffer'並修改所有對'publish'的調用。 – dsg 2011-05-02 09:43:26