私は gwt-platform を使用しており、GWT のエディター フレームワークを実装しようとしました。しかし、プレゼンター内からは機能しません。Web には、EditorDriver をプレゼンターに何らかの方法で挿入する必要があるという回答がいくつかありますが、これを行う方法がわかりません...
現時点では、これを試してみましたが成功しませんでした:
public class MyPresenter extends Presenter<MyPresenter.MyView, MyPresenter.MyProxy> implements MyUiHandlers {
public interface MyView extends View, HasUiHandlers<MyUiHandlers>, Editor<MyModel> {}
@ProxyStandard
@NameToken(NameTokens.myPage)
@NoGatekeeper
public interface MyProxy extends ProxyPlace<MyPresenter> {}
interface Driver extends SimpleBeanEditorDriver<MyModel, MyView> {}
private Driver editorDriver;
DispatchAsync dispatcher;
@Inject
public MyPresenter(EventBus eventBus, MyView view, MyProxy proxy, DispatchAsync dispatcher) {
super(eventBus, view, proxy);
getView().setUiHandlers(this);
this.dispatcher = dispatcher;
MyModel m = new MyModel();
m.setId(1L);
m.setUsername("username");
m.setPassword("password");
editorDriver = GWT.create(Driver.class);
editorDriver.initialize(this.getView());
editorDriver.edit(m);
}
...
}
ViewImplementation を明示的に指定すると機能しますが、それは MVP が機能する方法ではありません。
interface Driver extends SimpleBeanEditorDriver<MyModel, MyViewImpl> {}
...
editorDriver.initialize((MyViewImpl) this.getView());
誰かがそれを正しく行う方法の例を教えてくれたらうれしいです。
ありがとう