1

すべての「ページ」(場所)に同じテンプレートを再利用するGWTアプリを作成しようとしています。アプリには4つの主要な「ページ」があります。

  • ダッシュボードページ(http://www.mywebapp.com/#dashboard
  • 電卓ページ(http://www.mywebapp.com/#calc
  • Configuratorページ(http://www.mywebapp.com/#config
  • ログインページ(http://www.mywebapp.com/#login

各「ページ」には、同じテンプレートのルックアンドフィールがあります。(1)ロゴとナビゲーションメニューを含むヘッダーセクション、(2)「ページ」固有のコンテンツを含むコンテンツセクション(つまり、#dashboard場所、#login場所など)、および(3)いくつかのリンクを含むフッターセクション。ご覧のとおり、ページごとに変わるのはコンテンツセクションだけです。通常のテンプレート化されたWebサイトと同じように。

重要なのは、各「ページ」(場所)は実際にはかなり複雑なUIであり、多くのウィジェットで構成される多くの異なるパネルがあります。ユーザーがアプリを操作すると、これらのパネルが存在しなくなり、表示が常に変化します。たとえば、#calcページ上で、ユーザーは電卓を表示する「モード」を基本または詳細のいずれかで選択できます。ユーザーが[詳細]を選択すると、(基本パネルに加えて)いくつかの追加パネルが表示されます。

このようなアクションを履歴に保持して、ユーザーが基本モードまたは詳細モードのいずれかでアプリをブックマークできるようにすると、次のようになります。

  • http://www.mywebapp.com/#calc/basic; また
  • http://www.mywebapp.com/#calc/advanced

ここに問題があります:

ここではすでにいくつかの「レベル」の活動/場所が行われています。「アプリ」レベルでは、ダウンロード時にユーザーに表示する必要のあるテンプレートがありMyWebAppModule implements EntryPointます。これTemplatePlaceは、呼び出す前にHistoryHandlerに登録されるデフォルト/初期の場所です。

public class MyWebAppModule implements EntryPoint {
    @Override
    public void onModuleLoad() {
        // ...

        // The first place we go to when this module downloads.
        TemplatePlace templatePlace = getSomehow();

        historyHandler.register(placeController, eventBus, templatePlace);
        historyHandler.handleCurrentHistory();
    }
}

次に、すべての異なる「ページ」があります。 DashboardPlace、、CalculatorPlaceなど、すべて独自のビュー/表示があります。たとえば、ユーザーが[電卓]リンクをクリックしてに移動するCalculatorPlaceと、電卓を基本モードまたは詳細モードで使用することを識別した場合とは異なるビューが表示されます。

最後に、およびなど、各ページ/場所内にさまざまな表示領域、パネルなどがBasicCalculatorPlaceありAdvancedCalculatorPlaceます。これは、ナビゲーションのさまざまな「レベル」が意味するものです。

  1. アプリケーションレベル(すべてのページ/場所に適用するテンプレート)
  2. ページレベルまたは場所レベル
  3. ディスプレイレベルまたはパネルレベル

質問:

ユーザーが次のすべてを実行するときに、ブックマーク可能なURL(場所)を実現したいと思います。

  • ホームページに移動します(http://www.mywebapp.com
  • いずれかの「ページ」(http://www.mywebapp.com/#calcなど)に移動します
  • http://www.mywebapp.com\#calc\#advancedページ固有のパネルまたは表示構成(など)を引き起こすページ/場所を使用します

いくつのアクティビティと場所を作成しますか?ActivityManagerは何人ですか?ブックマーク可能なUIの「レベル」ごとに、アクティビティ/場所をどの程度細かくする必要があるかを尋ねていると思います。前もって感謝します!

4

1 に答える 1

0

「ページ」ごとに必要なActivityManagerとActivityは1つだけだと思います。「ヘッダー」と「フッター」をウィジェットにして、各ページで再利用できます。

トークンを使用して、同じページのさまざまな状態をブックマークできます。たとえば、トークンを「基本」に設定できます。これにより、CalculatorActivityに基本的な計算機パネルを表示するように指示されます。URLは次のようになります。

www.myApp.com/?#Calculator:basic

ユーザーがウィジェットをクリックして詳細オプションを選択すると、

PlaceController.goTo(new CalculatorPlace("advanced"));

CalculatorActivityはCalculatorView(すでに表示されています)を取得し、トークンが「詳細」に設定されていることを確認し、このビューに詳細パネルを表示するように指示します。

トークンは必要に応じて詳細に作成し、アクティビティで解析できることに注意してください。たとえば、あなたは次のようなものを持つことができます

www.myApp.com/?#Calculator:option=basic&position=top&theme=pink
于 2012-11-10T19:08:53.320 に答える