2012-01-28 46 views
0

在簡單的庫存管理應用程序中,我有一個活動來處理爲員工分配設備類型(如果用戶檢查某些東西)。我想知道的是:帶編輯器框架的GWT彈出菜單

目前我拖放到設備可以拖到一個員工的地方。我想要的是,只要拖動設備,就會彈出一個彈出窗口,詢問用戶是否確認以及他希望分配的金額。這基本上會作爲編輯器圍繞兩個實體(設備檢查和設備檢查)進行。

這裏是我遇到的問題:
1.應在彈出的視圖進行初始化,然後在下拉事件設置可見的(這是我的計劃做) - 在做這個你怎麼竟正確初始化編輯器(應該有一個單獨的活動叫滴 - 我不認爲會有,但編輯器部分讓我感到困惑)

2.應該每個彈出窗口都有它自己的類和ui.xml文件 - 這是我原本要去的方式,然後在放置事件中調用set可見爲真(我認爲這是正確的路)

我想我在問什麼h主要是驗證如何做到這一點,我找不到這個東西的一個體面的例子。

對於任何使用谷歌音樂的人,在我想要做他們正在做的事情時,當你去編輯專輯或歌曲信息 - 我想他們正在使用編輯器彈出窗口幕後 - 我只是想知道什麼是正確的方法來實際做到這一點是我之前破解一個解決方案

回答

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設置視圖和演示者都是界面的位置,以及演示者impl不知道視圖最終如何繪製的位置。通常看起來像有關這對我來說

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個活動作爲結帳和簽入彈出窗口的編輯器 - 我不知道如果這有問題,但它似乎工作正常 – 2012-01-30 00:50:46