2012-01-28 44 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