簡體   English   中英

GWT MVP。 如何使用事件總線?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM