2010-01-22 17 views
2

我的工作與GWT與MVP模式,實際執行的搜索結果頁面。 搜索結果由圖片+一些信息表示。我創建了一個主持人和一個搜索結果的視圖(我現在稱之爲這個小方形「縮略圖」),以便我可以多次將其添加到搜索結果頁面,並在以後的其他頁面中使用它if必要。GWT與MVP:添加相同的演示者一個容器幾次

在我SearchResultsPresenter,其中配置一臺thumbnailPresenter的,我只是循環了搜索結果,給予正確的信息給thumbnailPresenter,並添加視圖「asWidget」到容器:

display.getResultsContainer().add(goodPresenter.getDisplay().asWidget());

的問題是,我只看到一個搜索結果是:它看起來像添加相同的主持人幾次到容器不應該是這樣做。我一直在瀏覽互聯網,而現在,卻找不到任何相關的解決我的問題:(

有沒有人有一個解決方案或指向我?我可以爲你提供額外資料方向必要的。

最好的問候,

尼爾斯

回答

3

你必須確保你的演講會爲每個調用一個新的Widget。否則,你一遍又一遍添加相同的部件。

+1

是的,這看起來並不像一個GWT本身的問題,你可能嘗試添加同一個'Widget'(顯示)一遍又一遍地顯示到'Panel'(當然這會導致它只顯示一次) - 出於調試的目的,你可以例如'斷言''Panel'沒有在你選擇的容器中使用'getWidgetIndex'或者類似的'Widget'。 – 2010-01-22 13:25:54

0

呀確,一個解決方案是創建新的視圖和新的演示者。這看起來很奇怪,但我認爲這是禁止的最佳做法。這是一個錯誤的想法!

所以只是通過創建一個新的,每次和添加它,它完美的作品。

1

您是否在使用Google Gin與gwt-presenter框架結合?

的GWT-演示者的AbstractPresenterModule具有結合指定的演示類作爲單方法bindPresenter。

比方說,你遍歷你的結果的數據記錄,並添加一個新的主持人,你從供應商獲得。如果此演示者被綁定爲單身人士,則返回的小部件總是相同的,因此您只能在頁面中看到一個結果。

概括起來,而不是做這樣的:

bindPresenter(FooPresenter.class, FooPresenter.Display.class, FooDisplay.class); 

做到這一點:

bind(FooPresenter.class); 
bindDisplay(FooPresenter.Display.class, FooDisplay.class);