[英]GWT MVP. How to use event bus?
在項目中,我使用MVP模式。 我有2個視圖和2個相應的演示者。 我想從“ Presenter2
”中獲取“ View1
”中的選定值。 最好的方法是什么? 我知道最好使用事件總線。 但是,所以我必須創建2個事件和2個事件處理程序(當Presenter2需要從View1
選擇值時,第一個事件將上升,並將在Presenter1.
處理Presenter1.
第二個事件將在Presenter1
上升(例如: new selectedValueEvent(value)
來通知Presenter2)關於選定值。因此Presenter2將處理selectedValueEvent(value)
並獲取value
)。
如果演示者需要獲取所選值的時間點是在用戶執行操作時,您將無法使用事件。 (盡管如此,也許兩個演示者都可以對同一事件做出反應,所以不需要使用兩個不同的演示者嗎?)
如果知道演示者何時需要獲取值(工作流中已定義的步驟),則可以這樣:
保留對ClientFactory
視圖的ClientFactory
:
public class ClientFactoryImpl implements ClientFactory {
private static final EventBus eventBus = new SimpleEventBus();
/* The views */
private static final SampleView sampleView = new SampleView();
....
public ClientFactoryImpl(){
eventBus.addHandler(ReleaseAddedEvent.type, sampleView);
....
}
// getter and setters
}
因此,在Presenter中,您可以獲取對該視圖的引用: SampleView view = MyEntryPoint.getClientFactory().getSampleView();
然后您可以從視圖中調用一個返回所選值的方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.