2011-05-18 77 views
7

我需要一個GUI控件來更新持久數據結構(PDS)的更新。如何將持久數據結構「綁定」到Scala中的GUI?

我需要在用戶採取某些措施時更新PDS。

因此,例如,一個SWT樹和一個簡單的樹數據結構。

有很多手動,醜陋的方法來做到這一點,但在我看來,這是一個非常普遍的情況,那裏可能會有一個非常乾淨的方法。

我一直在閱讀關於玻璃鋼,鏡片,演員等......似乎可以有一個非常簡單,乾淨,有效的方法來處理這種類型的情況。

回答

0

我能想到的是有一個可變參考PDS的組件。每次更改var的值時,此組件都可以使用新版本的PDS引發事件。您的GUI控件可能正在監聽該事件,並通過用新信息重新繪製自己來對其作出反應。其他選項是,偵聽事件的組件作爲GUI控件的父組件,通過創建它的新實例進行反應,因此控件可以在構造器中接收PDS並僅抽取一次。

-1

如何描述它,似乎用戶調用需要在GUI中執行某些操作,然後GUI和數據庫必須更新。只要數據庫更新是一個副作用,你完全可以依賴所有的SWT事件。

+1

持久數據結構不引用數據庫。 – mentics 2011-05-31 18:20:34

0

持久數據結構從不更新。您可能會有一個參考到更改爲新版本時的持久數據結構。如果你想跟蹤PDS中的增量變化,那將會很尷尬。問題是,在您存儲PDS新版本的時候,您仍然擁有舊版本。也許你可以運行diff來產生增量更改。

0

是的,有一個很好的和乾淨的方法:ValueModels。在Scala中實現應該很容易(我沒有發現任何快速搜索)。 AFAIK有一個嵌入在​​中的Java實現。

相關問題