私はここ数週間GWTPを試し、それを使って小さなプロジェクトを構築してきました。
ここに質問があります:
データのリストを表示するグリッドウィジェット(添付のスクリーンショット)があります。行のチェックボックスを選択してをクリックするとEdit Request
、詳細ページが表示されます。
サマリー画面プレゼンター自体の詳細ページに表示されるすべてのデータ(モデル)があるので、データベースから再度フェッチする必要はありません。
だから、私は次のことをしました:
- 選択して編集リクエストをクリックすると、選択したモデルが表示されます
- 詳細ページに場所をリクエストします
- を起動し
edit event
、選択したモデルをパラメーターとして渡します。
Edit Request
アイテムを選択してを押すと、詳細ページに選択したアイテムがまだ表示されないため、間違っていることを理解しています。データが入力されていない空白のページが表示されるだけです(イベントが発生するずっと前にその場所に到達しているためです)。
現在のコード:
RequestModel selectedItem = getView().getGrid().getSelectionModel().getSelectedItem();
PlaceRequest placeRequest=new PlaceRequest(NameTokens.initiationedit);
getEventBus().fireEvent(new RequestEditEvent(selectedItem, PHASE_INITIATION));
placeManager.revealPlace(placeRequest);
個人的に考えた解決策:イベントを発生させる代わりに、選択したアイテムのパラメーターを使用してplacerequestを作成し、id
とをオーバーライドしてuseManualReveal
データベースprepareFromRequest
から新しいデータをフェッチすることができます。
しかし、既存のデータに対するデータベース呼び出しを回避する方法はありますか。