Gwt 编辑器字段未更新

Gwt 编辑器字段未更新,gwt,gwt-editors,Gwt,Gwt Editors,我想在我的项目中使用GWT的编辑器框架 在我的视图(实现编辑器)中,我有我的UiBinder字段: @UiField TextBox text; 在我的演示者中,我通过驱动程序实例注入: @Inject public AppointmentPopupPresenter(EventBus eventBus, MyView view, final AppointmentDriver appointmentDriver) 调用演示者时,我尝试使用以下命令初始化驱动程序: this.appointm

我想在我的项目中使用GWT的编辑器框架

在我的视图(实现编辑器)中,我有我的UiBinder字段:

@UiField
TextBox text;
在我的演示者中,我通过驱动程序实例注入:

@Inject
public AppointmentPopupPresenter(EventBus eventBus, MyView view, final AppointmentDriver appointmentDriver)
调用演示者时,我尝试使用以下命令初始化驱动程序:

this.appointmentDriver.initialize(getView());
this.appointmentDriver.edit(new Appointment());
GIN模块:

 bind(SimpleBeanEditorDriver.class).to(AppointmentDriver.class);
任命驱动程序接口:

public interface AppointmentDriver extends SimpleBeanEditorDriver<Appointment, AppointmentPopupPresenter.MyView>{
但是所有属性都为null,并且不会抛出错误消息。如果我查看textbox小部件中的调试器,“editor”的实例也是空的。我不认识实习生,但也许这是给你的一个暗示

约会POJO(当然是void setText(String text)/String getText()):

目前我完全陷入困境,所以任何帮助都是非常受欢迎的


谢谢

我不确定,但我假设问题是,您只是在调用
simpleBeaneEdit或driver.initialize(E编辑器)
。据我所知,您需要调用
RequestFactoryEditorDriver.initialize(EventBus,RequestFactory,E)

也许我的小程序(现在更新为GWT2.3,但仍然没有完成)可以帮助您

下面是我进行初始化调用的代码段:

    final MyRequestFactory requestFactory = GWT
            .create(MyRequestFactory.class);
    requestFactory.initialize(eventBus);

    final MyEditor myEditor = new MyEditor();
    driver.initialize(eventBus, requestFactory, myEditor);

应该可以重构项目以使用GIN。

我看到您执行了一个
getView()
,它返回的视图是否与传递给构造函数的视图相同,是否与ui中显示的视图相同?可能是驱动程序初始化时使用的视图与实际显示的视图不同,因此您将从错误的视图中获取数据。我也不明白你为什么要进行绑定,这似乎没有必要?

谢谢你的帮助,很遗憾,我没有使用RequestFactory,因为我正在构建基于json/rest的服务,所以我只需要编辑器的东西。不管怎样,我会看看你的项目!是的,我查看了调试器,它是正确的视图。如果我现在将驱动程序更改为explict视图而不是视图接口:公共接口AppointDriver扩展SimpleBeaneEdit驱动程序{}和driver.initialize((AppointPopupView)getView());它起作用了。我真的不知道为什么,我觉得有点不适合我的演讲者。为什么绑定没有必要,我想我以后需要它来注射它?我想我知道它是什么。驱动程序应该使用
AppointPopupView
参数进行扩展,而不是
MyView
。因为基于这些参数,GWT生成驱动程序代码,所以您的
AppointPopupView
应该实现
Editor
,因为由于GWT的工作方式,它需要每个类上包含编辑器代码的接口,否则它无法在te AppointPopupView中看到文本框。关于绑定。我对GIN不太熟悉,但在您使用它时,我认为这意味着当
simplebeaneditordrive
用作参数时,将注入
AppointmentDriver
。但是在代码中,您直接使用
任命驱动程序
,而不是
SimpleBeaneEdit或驱动程序
,因此GIN inject不需要
任命驱动程序
,因此不需要绑定。Hilbrand,感谢您的回答。这就是问题所在。关于杜松子酒,你的观点也是正确的,因为用杜松子酒捆绑它是毫无意义的。。。
 String text;
    final MyRequestFactory requestFactory = GWT
            .create(MyRequestFactory.class);
    requestFactory.initialize(eventBus);

    final MyEditor myEditor = new MyEditor();
    driver.initialize(eventBus, requestFactory, myEditor);