問題タブ [gwt-mvp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
2459 参照

gwt - GWT、MVP、GIN、コード分割?

GWT アプリのユーザーのブラウザが最初にダウンロードするコードの量を最小限に抑える方法は? まあ、GWT.runAsync() 呼び出しで潜在的に大きな操作をラップするだけです。ただし、アプリケーションは GWT のベスト プラクティス (依存性注入、MVP パターン) を使用しているため、GWT のドキュメントで説明されているほど簡単ではありません。GIN と組み合わせてコード分割を使用する方法について教えてください。

0 投票する
2 に答える
595 参照

gwt - GWT MVP の紹介に関する質問

ここで尋ねられる gwt-mvp の質問をたくさん読みましたが、このデザイン パターンはまったく初めてなので、いくつか質問したいと思います。

[1] Activity-Place パターンは mvp とは異なるパターンですか?

[2] MVP パターンでは、プレゼンターにロジックが含まれています。これで、ウィジェット/コントロールのロジックがアクティビティで定義されましたか?

[3] CustomPlace クラスは (Eclipse プラグインがそれらを構築するため) 固定されていますか、それともデータ/メソッドとどのようなものを配置できますか?

[4] CustomView 内で Presenter インターフェイスを使用するのは何ですか? どのようなデータ/メソッドを追加するのが理にかなっていますか?

[5] データベースに保存される多くのデータ構造を使用するアプリケーションを構築したいと考えています。ここで他の投稿をいくつか読んだので、MVP のモデル部分を各アクティビティ内でライブにします。したがって、開始時に各アクティビティのデータ構造を毎回作成し、その値を (必要に応じて db から) ロードし、ユーザーが別のビューに移動した後にデータベースを更新すると思います。このアプローチについてどう思いますか?

0 投票する
2 に答える
755 参照

gwt - GWTMVPでHasClickHandlers以外のものを使用する

同様のStackOverflowの質問が直面する問題と同様の問題に直面しています。Javaで複数のインターフェイスを指定する方法ですが、 http://code.google.com/webtoolkit/articles/mvpに示されているGWTMVPサンプルフレームワークに特に適用されます。 -architecture.html

この例では、/Contacts/src/com/google/gwt/sample/contacts/client/presenter/ContactsPresenter.javaファイルのインターフェースDisplayに次のメソッドが含まれています。

これらのボタンの代わりに、ここでgetSuggestBox()メソッドを作成したいと思います。Presenterファイルのbind()メソッドで、呼び出したい

これらのハンドラーを作成します。

これを行うための最初の解決策は、次のようなHasSearchHandlersインターフェイスを作成することでした。

その後、メソッドを使用してみてください

しかし、これは今のところ失敗しています。ポリモーフィズムを使って言うことはできません

私のバージョンのContactsViewファイルでgetSuggestBox()を実装し、SuggestBoxをHasSearchHandlersにキャストすることもできません-ClassCastExceptionが発生します。JREは、HasSearchHandlersが空のインターフェースであることを認識しているため、このキャストが機能するために、SuggestBoxがHasSearchHandlersを明示的に実装する必要がある理由がわかりません。クラスSuggestBoxは、HasSearchHandlersインターフェースに存在するすべてのものを実装します。これで十分ではありませんか?

この投稿の最初のリンクで代替として提示された汎用インターフェースは、「HasSearchHandlers」と呼ばずに同じことを行うため、同様の問題を引き起こしました。この問題に照らして、取るべき最良の設計ステップは何ですか?GWT MVPフレームワークで「getSuggestBox()のような」メカニズムを実装および作成するにはどうすればよいですか?

0 投票する
2 に答える
84 参照

gwt - roo 1.1.5 のサンプル gwtNoEntities がロードに失敗する

Roo サンプル gwtNoEntities をビルドしています。次のエラー ログが表示されます。誰でもこの問題を解決できますか。私にお知らせください。

[ERROR] ScaffoldMobileApp.java:[3,0] packag e com.springsource.foo.client.managed.activity does not exist [ERROR] ScaffoldMobileApp.java:[5,45] packa ge com.springsource.foo.client.managed.ui does not exist

0 投票する
1 に答える
120 参照

java - GWTプレイスクラスの強化の実行可能性

プレイスクラスを強化する可能性を調査する実験を考えています。グーグルがそのような強化の礼儀を私たちに与えると仮定すると、プレイスクラスへの次の強化は役に立ちますか?

Placeクラスがメソッドを持つように拡張されているとしましょう

次に、これを行うことができます:

ActivityMapperがとてもシンプルになるように...

しかし、現在の状況を比較検討する私の思考実験は、これらをしなければならないことに私を導きます

またはさらに悪いことに、例/チュートリアルに従って...

あなたがGWT開発チームだった場合、この変更を行うための技術的な動機(または意欲の低下)はありますか?さらに良いことに、あなたがGWT開発チームである場合。なぜこの変更を行わないのですか?

0 投票する
3 に答える
1393 参照

gwt - GWT アクティビティの場所トークンのトークンで名前と値のペアをエンコードする方法の提案

History/Activities/Places API を使用する GWT では、次のような URL になります。

http://192.168.0.104:8888/brokerage.html?gwt.codesvr=192.168.0.104:9997#StartPlace : params

params という単語は、パラメータを StartPlace オブジェクトに渡すことができる場所「トークン」です。私のアプリケーションのほとんどでは、更新を押してデータをリロードするには、単一の文字列で十分です。ただし、いくつかのアクティビティ/場所/ページでは、その場所のトークンをいくつかの名前/値のペアに分割する必要があります。

これを処理する方法について誰か提案がありますか? 現在、&name=value を使用して URL 形式でそれらを分離することにより、名前と値のペアから文字列を作成するクラスを作成しています。誰かがこれまたは何かを処理できるクラスを知っていれば、それは素晴らしいことです。

0 投票する
2 に答える
794 参照

gwt - GWT アクティビティ - SimplePanel と DeckPanel (カード パネル) の使用によるパフォーマンスへの影響

私が見たほとんどのアクティビティと場所の例では、SimplePanel を ActivityManager の表示として使用しています。

SimplePanel の代わりに DeckPanel/DeckLayoutPanel を使用する利点があるかどうか疑問に思っていました。AcceptsOnWidget を実装する Deck パネルのラッパーを作成するのは簡単です。

このトピックがどこでも議論されているのを見たことがありません。MVP+Activities が GWT で一般的に使用される前は、特定のビュー内のパネル間の切り替えを制御するために、一般的にタブ パネル (内部でデッキ タイプ パネルを使用) とデッキ パネルを使用していました。

2 つの違いは、SimplePanel.setWidget(..) は前の子を DOM から削除し、新しいウィジェットを追加しますが、デッキ タイプのパネルは CSS を使用して現在のパネルの可視性を制御します (つまり、「display: none」で非表示にします)。非アクティブなパネル)。

  1. デッキ パネルを使用する場合、一般的に、DOM 内により多くの要素があることを意味します。これらのノードが表示されていなくても(「表示:なし」)、これによりより多くのメモリが使用され、アプリケーションが「遅くなる」と思います。これは本当ですか?

  2. これが本当なら、なぜ Google は内部で SimplePanel を使用するのではなく、TabPanel/TabLayoutPanel にデッキ パネル スタイルの impl を使用したのですか?

  3. あるアプローチは他のアプローチよりも有利ですか?

0 投票する
1 に答える
471 参照

design-patterns - MVPGWTでビューレイヤーを作成するためのベストプラクティス

MVPに関するgoogle-gwtの記事を赤く して、ビューレイヤーをどのように作成しているかについて質問したいと思います。1つのビューに、ツリー、テーブル、テキストの3つの異なる「要素」があるとします。そして今、ベストプラクティスは、これらの3つの要素を分離して作成することだと思います(つまり、ツリーの「要素」が必要ない場合は、私の見解では、たとえばsetTree(...)で行にコメントを付けます。コード、どこか)。また、UIBinderを使用して各「要素」を作成したいと思います

したがって、私の質問は次のとおりです。ツリーやテーブル(コントローラー、プレゼンター、または表示される可能性があります)などの分離された要素の作成を誰が担当する必要がありますか

そのような要素をビューに設定する責任は誰にありますか?