2011-07-06 14 views
2

私は自分のプロジェクトの履歴を場所で管理しています。私は何すべてのPresenterクラスで "onPlaceRequest"をオーバーライドする必要があるのはなぜですか?

はこれです:

  • それを登録
  • 、(例えば、AppControllerのための)トップレベルにPlaceRequestHandlerを実装 - > eventBus.addHandler(PlaceRequestEvent.getType()、この);
  • メソッド "onPlaceRequest"を実装します。ここではプロジェクトのナビゲーションを行います。

私はGWTプレゼンターを使用しています。私のプロジェクトのすべてのプレゼンターはonPlaceRequestメソッドをオーバーライドしています。

すべてのリクエストがトップレベルの "onPlaceRequest"メソッドから処理されるときに、なぜこの必要がありますか?

私は例を与える:

public class AppController implements Presenter, PlaceRequestHandler 
........... 
public void bind() 
{ 
    eventBus.addHandler(PlaceRequestEvent.getType(), this); 
... 
} 
public void onPlaceRequest(PlaceRequestEvent event) 
{ 
// here is the project navigation tree 
} 

をしてのアイデアは何1人のプレゼンター

public class SomePresenter extends Presenter<SomePresenter.Display> 
{ 
... here some methods are overriden and 

@Override 
protected void onPlaceRequest(PlaceRequest request) 
{ 
// what should I do here? 
} 
} 

てみましょう、そしてどのように私はそれを使用することになっていますか?

+0

ワールドクラスの回答を入力している間に、http://stackoverflow.com/questions/7229931/jsf-problem-when-dispalying-userbean-propertiesを削除してしまったのは残念です。少なくとも、それはあなたが世界で最悪のJava EEチュートリアルを読んでいたことにまでこだわります。あなたのインターネットブラックリストにroseindia.netを入れてください! – BalusC

+0

こんにちはBalusC、申し訳ありません。私はそれを知りませんでした。私はその質問が誰にも面白くないと思っていました。あなたはroseindia.netについて正しいです... – adgfs

+0

誰にも興味がありませんか?あなたは数分で答えを期待しましたか?さあ – BalusC

答えて

2

すべてのプレゼンターをPlaceRequestHandlerに延長してイベントを管理する代わりに、PlaceHistoryHandlerPlaceControllerをイベントバスに添付することができます。一緒に、彼らはブラウザの履歴とあなたの場所を管理します。 PlaceControllerに別の場所のgoTo()を依頼すると、現在のアクティビティが停止し、アクティビティ(プレゼンタ)の場所のマッピングを使用して次に開始する場所を選択します。

このテクニックを使用するには、プレゼンターをAbstractActivityまで延長する必要があります。 GWTのドキュメントGWT Development with Activities and Placesで、Googleのチュートリアルを参照してください。

関連する問題