2011-09-10 13 views
3

私はGWTPを使用しています。私はネストされたプレゼンターのチュートリアルを行った。しかし、SAMPLE TABアプリケーションのチュートリアルはありません(管理モードに切り替えると、管理タブが表示されます)。誰かがこのアプリケーションの主な概念を私に説明できますか? Tkx。私はTABサンプル(gwtp)を教えてもらえますか?

+0

は、あなたはそれが、少なくとも、作品作らことができますか?はい、あなたの助けが必要な場合:P – caarlos0

答えて

4

更新:更新:今、あなたはここから実行可能なサンプルMavenプロジェクトをダウンロードすることができます。

gwtp-sample-tab.zipが、私は私のプロジェクトで正常にタブ付きプレゼンター機能を使用するには、(私は同様のサンプルコードはコンパイルされませんでした見つかっ) 。私が最初の事はそれを動作させる、そしてそれを学び、徐々にメリットを感じる:)

ここ

は私がやった手順であることだと思い:

1)以下のファイルをコピー

BaseTab.java 
BaseTabPanel.java 
SimpleTab.java 
SimpleTabPanel.java 
SimpleTab.ui.xml 
SimpleTabPanel.ui.xml 
UiModule.java 

the sample codeからプロジェクトにたとえば、このパッケージにコピーしたのはcom.widenhome.web.client.uiです。また、UiModuleをClientGinjectorクラスで設定することも忘れないでください。

2)GWTPのEclipseプラグインを経由して、通常のプレゼンター(MyPresenter)を作成します

3)変更EventBusインポートこのプレゼンター

import com.google.web.bindery.event.shared.EventBus; 

4)MyPresenterView.ui.xmlには、次のを持っていることを確認してくださいコードまたは類似:

<g:HTMLPanel> 
    <npui:SimpleTabPanel ui:field="tabPanel" /> 
    <g:SimplePanel ui:field="contentPanel" /> 
</g:HTMLPanel> 
/** 
* This will be the event sent to our "unknown" child presenters, in order 
* for them to register their tabs. 
*/ 
@RequestTabs 
public static final Type<RequestTabsHandler> TYPE_RequestTabs = new Type<RequestTabsHandler>(); 

/** 
* Fired by child proxie's when their tab content is changed. 
*/ 
@ChangeTab 
public static final Type<ChangeTabHandler> TYPE_ChangeTab = new Type<ChangeTabHandler>(); 

/** 
* Use this in leaf presenters, inside their {@link #revealInParent} method. 
*/ 
@ContentSlot 
public static final Type<RevealContentHandler<?>> TYPE_SetTabContent = new Type<RevealContentHandler<?>>(); 

7:

5)MyPresenterのいくつかの変数を定義し、またはあなただけ/ペースト、次のコードをコピーすることができます)TabContainerPresenterの代わりに、プレゼンター

public class MyPresenter extends 
    TabContainerPresenter<MyPresenter.MyView, MyPresenter.MyProxy> 

6を拡張するためにプレゼンターを変更します)変数を使用するMyPresenterのコンストラクタを変更します。

@Inject 
public MyPresenter(final EventBus eventBus, final MyView view, final MyProxy proxy) { 
    super(eventBus, view, proxy, TYPE_SetTabContent, TYPE_RequestTabs, TYPE_ChangeTab); 
} 

8)今度は、タブプレゼンター(例:MyFirstTabPresenter)の作成を開始できます。ただ、MyFirstTabPresenterでGWTPのEclipseプラグイン

9)を経由して再び通常のプレゼンターを作成してMyProxyはそれが@TabInfoメソッドを作成します。代わりに

10 ProxyPlace

のTabContentProxyPlace) 'を拡張する' ようにする変更、@TabInfo注釈のJavadocを参照してください。ここでは他の方法も使用できます。

@Override 
protected void revealInParent() { 
    RevealContentEvent.fire(this, MyPresenter.TYPE_SetTabContent, this); 
} 

すべてのタブのプレゼンターの設定に関連します:

@TabInfo(container = MyPresenter.class) 
static TabData getTabLabel(ClientGinjector ginjector) { 
    return new TabDataBasic("My First Tab", 0); 
} 

11)revealInParent()MyFirstTabPresenterクラスのメソッドでは、それは似た次のコードまたはを持っていることを確認してください:たとえば、私はこれをしませんでした。 MyFirstPresenterのビューに表示するデータをロードするロジックを追加できます。

これは、GWTP Tabbedプレゼンターから始めるのに役立ちたいと思っています。あなたが持っている問題を教えてください。私は徐々に答えを編集し、より多くの人々がそれを使い始めるのを助けることができます。

私はまたこれを投稿してmy blogにこれを投稿しました。

おかげで、
Jiakuan

1

コンパイルされていません。ネストされたプレゼンターを介して複数のプレゼンターをトリガーする唯一の方法 - これは複雑なものです。私は単純なGWT履歴機構を持つ複数のプレゼンターアプリを痛みなく構築しました。このフレームワークは、GWTの歴史(目標メカニズム)を非常に難解なものにしています。

関連する問題