2012-02-15 13 views
0

プロジェクトではMVPパターンを使用しています。私は2人のビューと2人の対応するプレゼンターを持っています。 "Presenter2"から "View1"に選択した値を取得します。それを行う最善の方法は何ですか?私はイベントバスを使う方が良いことを知っています。しかし、私は2イベントと2イベントハンドラを作成する必要があります(プレゼンター2がView1から選択された値を必要とする場合には第1イベントが発生し、Presenter1.で処理されます)2番目のイベントはPresenter1になります(例えば:new selectedValueEvent(value))。 Presenter2)はselectedValueEvent(value)を処理し、valueを取得します。GWT MVP。イベントバスの使い方

答えて

1

をユーザーがイベントを使用して周りに取得することはありませんアクションを行うと発表者は選択された値を取得する必要がポイントである場合。(Altoughを、多分両方のプレゼンターが反応する可能性があり同じイベントに2つの異なるイベントを使用する必要はありません)

発表者が値を取得する必要があることがわかっている場合あなただけの、その後ができSampleView view = MyEntryPoint.getClientFactory().getSampleView();と:

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 
} 

だから、プレゼンターにビューへの参照を取得することができ、フロー)は、このようにそれへの可能性選択された値を返すビューからメソッドを呼び出します。

+0

はい、私のアプリケーションでは、clientFactoryを使用します。そして今、それはあなたが書いた(別の(このプレゼンターに対応していない)を取得し、このビューのgetSelected()メソッドを呼び出す)..しかし、私はPresenterで参照を作成すると対応するビューは良いアイデアではないと思います。 – MyTitle

+0

プレゼンターのメソッドでローカル参照を作成するだけであれば、ローカル参照はこのメソッドが実行されている限り存在しますので、問題はありません。 – steffinchen

+0

はい、私はローカル変数を作成しました)ok、thankyou)) – MyTitle

関連する問題