2012-01-28 4 views
0

単純な在庫管理アプリケーションでは、私は従業員に機器タイプを割り当てることを処理するアクティビティを持っています。私が思っているのはこれです:エディタフレームワークを使用したGWTポップアップ

現在、私は機器を従業員にドラッグできる場所までドラッグアンドドロップしています。私が持っていたいのは、機器がドラッグされるとすぐに、ポップアップが開き、ユーザに確認したい金額と彼が割り当てたい金額を尋ねることです。これは、基本的に2つのエンティティ(equipmentCheckinとequipmentCheckout)を中心にエディタとして機能します。あなたが実際にどのように行う、これを行うには - ポップアップが(これは私が行う上で計画するものである)のビューで初期化して、ドロップイベントに見える設定する必要があります
1:ここでは

は私がに実行している問題ですエディタを適切に初期化する(ドロップされた別のアクティビティがある場合は、エディタの部分が私を混乱させているとは思わない)

2.各ポップアップに独自のクラスとui.xmlファイルこれは私が元々行くつもりだったし、ちょうどドロップイベント(私はこれが正しい方法だと思う)のセットを真に見えるように呼び出す

私は私が尋ねているものを推測するereは、ほとんどの場合、これをどうやって行うのかの検証だけです。私はこのような事例はまともではありません。

Googleの音楽を使って、アルバムや曲情報を編集するときにやっていることをしたいと思っている人のために - 私はポップアップを使ってエディタを使っていることを想像しています。実際にこれを行う正しい方法を知っている私は解決策をハックする前にです

答えて

1

私はあなたがそれを助けることができる場合は、ポップアップ自己完結型にし、それのただ一つのインスタンスを維持していると思う。

エディターの細部については、意味が分からないものはありますか?一般的な考え方は、ドライバを一度作成し、ポップアップ(エディタを実装)で初期化してから、新しいモデルで表示する準備ができるたびにドライバで編集を呼び出すことができるということです。

私は通常、風味

public MyPopup() { 
    //uibinder or other layout 
    this.driver = GWT.create(Driver.class); 
    driver.initialize(this); 
} 
public void edit(MyModel model) { 
    driver.edit(model); 
    show(); 
} 

(クラスはポップアップを拡張すると仮定すると、エディタを実装し、ドライバが内部的に定義されている)のようなもので、私自身のアプローチ/偏見でこの答えを結局、私はMVPが好きビューとプレゼンターが両方のインターフェースであり、プレゼンターがプレビューがどのようにして描画を終了するのか分からない場所でのセットアップ。一般的には、エラーをチェックし、必要に応じて、サーバからのエラーを渡し、新しいモデルを編集し、結果を洗い流すことができるようにプレゼンターは、おそらくドライバを制御する必要があります*私

public interface MyModelEditorView extends Editor<MyModel> { 
    // this param is used in a mobile/table situation, where popups aren't as friendly 
    void show(AcceptsOneWidget parent); 

    // exposes the driver for the presenter * 
    SimpleBeanEditorDriver<MyModel, ?> getDriver(); 

    void setPresenter(Presenter presenter); 

    public interface Presenter { 
    // this is the only method that is called externally 
    void show(AcceptsOneWidget parent, MyModel model); 

    // called by click handlers in the view impl, probably by @UiHandler methods 
    void onSaveClicked(); 
    void onCancelClicked(); 
    } 
} 

のために、このよう程度になります。

+0

ありがとう、私は同様のことをやった - 私は3つのビューのための1つのアクティビティを使用しました:実際のメインassignView、checkoutPopup、およびcheckinPopupとチェックアウトとチェックインポップアップの両方のエディタとして1アクティビティを使用 - 私は知らないこれに問題がある場合は正常に動作しているようです –