プロジェクトではMVPパターンを使用しています。私は2人のビューと2人の対応するプレゼンターを持っています。 "Presenter2
"から "View1
"に選択した値を取得します。それを行う最善の方法は何ですか?私はイベントバスを使う方が良いことを知っています。しかし、私は2イベントと2イベントハンドラを作成する必要があります(プレゼンター2がView1
から選択された値を必要とする場合には第1イベントが発生し、Presenter1.
で処理されます)2番目のイベントはPresenter1
になります(例えば:new selectedValueEvent(value)
)。 Presenter2)はselectedValueEvent(value)
を処理し、value
を取得します。GWT MVP。イベントバスの使い方
0
A
答えて
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
}
だから、プレゼンターにビューへの参照を取得することができ、フロー)は、このようにそれへの可能性選択された値を返すビューからメソッドを呼び出します。
関連する問題
はい、私のアプリケーションでは、clientFactoryを使用します。そして今、それはあなたが書いた(別の(このプレゼンターに対応していない)を取得し、このビューのgetSelected()メソッドを呼び出す)..しかし、私はPresenterで参照を作成すると対応するビューは良いアイデアではないと思います。 – MyTitle
プレゼンターのメソッドでローカル参照を作成するだけであれば、ローカル参照はこのメソッドが実行されている限り存在しますので、問題はありません。 – steffinchen
はい、私はローカル変数を作成しました)ok、thankyou)) – MyTitle