0

こんにちは、GWT MVP パターンは初めてです。私はasp.netのバックグラウンドから来ており、現在GWTに取り組んでおり、すべてのビューに共通するメニュー項目を持つマスターページを作成するよう求められています. 最初に、 https: //developers.google.com/web-toolkit/articles/mvp-architecture-2 を使用してサンプル mvp プロジェクトを作成しました。その中で、あるビューから別のビューへのナビゲーションがあります。1 つのビューを一定に保ち、クリックするメニュー項目に応じて他のビューを変更し続けるにはどうすればよいでしょうか。助けてください

4

3 に答える 3

0

あなたが言及した記事は、MVPサポートがGWTに追加される前のものです。概念を説明するのは得意ですが、実際の実装はあまり役に立ちません。続行するには、アクティビティに関する GWT ドキュメントを参照してください: https://developers.google.com/web-toolkit/doc/latest/DevGuideMvpActivitiesAndPlaces。そこでは、問題の解決策も見つかります。簡単に言うと、 を見てくださいActivityManager。これにより、すべてのアクティビティが管理されます。アクティビティ マネージャーで、すべてのアクティビティに対して静的になる 1 つのウィジェットを設定します。このウィジェットにはメソッドが必要ですsetWidget(実際には を実装する必要がありますAcceptsOneWidget)。各アクティビティの実装で、このウィジェットをstart方法。また、start メソッドでそのアクティビティの特定のビューを指定して setWidget を呼び出すことにより、アクティビティ固有のビューを設定します。これはすべて非常に簡単に説明されていますが、言及されたドキュメントを読めば概念を理解できるはずです。

于 2012-07-23T12:02:38.640 に答える
0

画面を 2 つ以上の領域に分割し、各ゾーンに専用の ActivityMapper と ActivityManager を割り当てます。たとえば、1 つのゾーンを MenuActivityManager で「メニュー」、もう 1 つのゾーンを BodyActivityManager で「ボディ」にすることができます。

ここに良い説明があります: http://blog.ltgt.net/gwt-21-activities-nesting-yagni/

この方法の使用には、長所と短所の両方があることに注意してください。ブラウザーは、標準の html をレンダリングするのに数ミリ秒かかります。ウィジェットの mainMenu を作成し、それを (UiBinder を使用して) すべてのビューに含める方が、2 つのアクティビティ マネージャーを扱うよりも簡単かもしれません。

于 2012-07-23T11:07:57.080 に答える
0

で作業している場合UiBinderui.xmlファイルは次のようになります。

 <!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
 <ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
  xmlns:g="urn:import:com.google.gwt.user.client.ui">

<ui:style>
</ui:style>

<g:DockLayoutPanel unit="EM">
    <g:north size="4">
        //Add Logo, menus or what you want to be displayed for all the pages 
    </g:north>
    <g:center>
        //Add code for your desired UI. In java code you change the UI by this "flowpanel"
        For eg: <g:FlowPanel ui:field="flowpanel" />
    </g:center>
</g:DockLayoutPanel>

<g:center>次に、このようなJavaコードを使用して、ビューに表示されるウィジェットをクリアして追加するたびにflowpanel.clear(); flowpanel.add(anyWidget you need).

したがって<g:north>、静的ビューに<g:center>なり、動的ビューになります。これで、希望どおりのページが表示されます。あなただけのあなたのビューを毎回変更することができますので<g:center>

<g:east>このように、必要に応じて、<g:west>およびを追加できますg:south>

UiBinder を使用していない場合は、次のように Java コードですべてを実行します。

    final DockLayoutPanel dockLayoutPanel = new DockLayoutPanel(Style.Unit.EM);
    dockLayoutPanel.addNorth(any widget you need, "4"); //NorthPanel
    dockLayoutPanel.add(any widget you need);   //CenterPanel

パネルのサイズはどこですか"4"。変更できます。

このようなdockLayoutPanel.addWest(any widget you need, "4"); //WestPanel dockLayoutPanel.addEast(any widget you need, "4");//EastPanel
dockLayoutPanel.addSouth(any widget you need, "4"); //SouthPanel

あなたが今考えたことを願っています。

于 2012-10-18T07:14:01.103 に答える