1

MVPパターンを使用してGWTアプリケーションを作成しています。DockLayoutPanelを使用するインデックスページがあります。dockLayoutPanelの各セクション(例:NorthViewとNorthPresenter)のビューとプレゼンターがあります。中央のパネルに4つのボタンがあります(NorthBtn、EastBtn、WestBtn、SouthBtn)。dockLayoutPanelのそれぞれのセクションでUIを変更する必要があるボタンのいずれかをonClickします。

エントリポイントクラス:

@Override
public void onModuleLoad() {
    RPCServiceAsync rpcService = GWT.create(RPCService.class);
    HandlerManager eventBus = new HandlerManager(null);
    AppController appViewer = new AppController(rpcService, eventBus);

    appViewer.go(RootLayoutPanel.get());
}

AppControllerクラスには、履歴管理およびイベント処理ロジックのロジックがあります。(Googleの記事から-プレゼンターに固有ではなく、代わりにアプリケーション層に存在するロジックを処理するために、AppControllerコンポーネントを紹介します。)

たとえば、中央のパネルにあるEastBtnのonClickで、新しい履歴トークン「east」を追加すると、onValueChange()メソッドが呼び出されます。それぞれのプレゼンターとビューが作成されます。たとえば、EastViewとEastPresenterは次のようになります。

  1. 新しく作成したパネルで既存のEastPanelを更新するにはどうすればよいですか(古いパネルへのハンドルがないため)?
  2. ユーザーがボタンをクリックした後にページをブックマークし、ブックマークされたリンクでページに再度アクセスした場合、フローはonValueChangeメソッドに到達し、EastViewとEastPanelを作成します。しかし、ページの残りの部分をどのように再作成し、EastPanelを更新することができますか?
4

1 に答える 1

4

場所コントローラーで場所と goTO を使用します。

この例を見てください: http://95.110.143.4/layoutmvp/layoutmvp.html

コードは次の とおりです。 http://95.110.143.4/layoutmvp/layoutmvp.tar.gz

于 2011-03-31T19:11:24.403 に答える