0

見よ、私の最初の GWT アプリのEntryPoint実装:

public class MyModule implements EntryPoint {
    private SimplePanel mainPanel = new SimplePanel();

    @Override
    public void onModuleLoad() {
        // Extract all root-level dependencies from the injector.
        // Using Gin here.
        EventBus eventBus = injector.getEventBus();
        PlaceController placeController = injector.getPlaceController();
        SignInEventListener signInEventListener = injector.getSignInEventListener();
        PlaceHistoryMapper placeHistoryMapper = injector.getPlaceHistoryMapper();

        // Start the activity manager.
        activityManager = new ActivityManager(signInEventListener, eventBus);
        activityManager.setDisplay(mainPanel);

        // Start the place history mapper.
        placeHistoryHandler = new PlaceHistoryHandler(placeHistoryMapper);
        placeHistoryHandler.register(placeController, eventBus, startingPlace);

        // Add the main panel to the RootPanel.
        RootPanel.get().add(mainPanel);

        // Navigate to the place represented by the current URL, otherwise the startingPlace.
        placeHistoryHandler.handleCurrentHistory();
    }
}

いくつかの質問:

  1. placeHistoryHandlerのメソッドへの私の呼び出しregister(...)は非推奨として表示されます。なぜ非推奨なのですか? (GWT 2.5.1 の時点で) どうあるべきですか?
  2. RootPanel モジュールごとEntryPointに 1 つありますか、またはRootPanel GWT アプリごとに 1 つだけですか (モジュールの数に関係なく)?
  3. mainPanel自体が に追加された (上記)RootPanelと、各メソッドAcceptsOneWidgetに渡されるの間の接続/関係は何ですか?AbstractActivity#start
4

2 に答える 2

2
  1. ここを見てください: GWT deprecated: PlaceHistoryHandler.register?
  2. RootPanel が要素である可能性が最も高い<body>です。したがって、正確には1つです。
  3. ほとんどの場合、 に 1 つ追加AcceptsOneWidgetRootPanelます。ビューActivityを作成し、AcceptsOneWidget渡されたに設定する必要がありますstart()

gwtproject.orgのアクティビティと場所のセクションをご覧ください。

于 2013-12-06T15:24:11.837 に答える
0

1)Christian Kuetbachの回答を参照してください

2) GWT アプリには MyModule.html ファイルが必要です。このファイルは、web.xml ファイルでウェルカム ファイルとして定義されています。このファイル内には、アプリケーションの JavaScript バージョン MyModule.nocache.js (gwt コンパイル後) が含まれていることがわかります。クリスチャンが言ったRootPanelはあなたのhtmlページです。レイアウト パネルを使用するかどうかに応じて、RootLayoutPanel または RootPanel を使用できることに注意してください。

3) アクティビティと場所を使用する場合、アクティビティ マネージャーにはウィジェット コンテナーが与えられます。フレームワークは、このウィジェット コンテナー内に、場所を変更するときに新しいアクティビティのビューを配置します。それはの意味です

activityManager.setDisplay(mainPanel);

あなたは、ある場所から別の場所に移動するとき、その場所に対応するアクティビティ ビューを mainPanel 内に配置する必要があると言っています。

于 2013-12-26T23:15:46.087 に答える