Ich habe ein Problem, das ich nicht verstehe. Ich denke, ich habe getan, was ich tun sollte, aber es funktioniert nicht.GWTP ViewWithUiHandlers: uiHandlers sind nicht festgelegt. Haben Sie getUiHandlers() vom Konstruktor Ihrer Sicht aufgerufen? in PresenterWidget
Ich kann nicht Moderator Methoden aus Sicht mit ui Handler ausgeführt. Fehler sagt, dass ich nicht ui-Handler hat gesetzt, aber ich tat:
@Inject
FileUploaderPresenter(EventBus eventBus, MyView view, PlaceManager placeManager) {
super(eventBus, view);
getView().setUiHandlers(this);
this.placeManager = placeManager;
}
und
public FileUploaderView() {
super();
this.getUiHandlers();
this.initWidget(uploader);
}
Aber ich erhalte eine Fehlermeldung:
com.gwtplatform.mvp.client.ViewWithUiHandlers
SEVERE: uiHandlers are not set. Did you call getUiHandlers() from your view's constructor?
Natürlich werde ich alle meine Klassen veröffentlichen verbunden:
public class FileUploaderModule extends AbstractPresenterModule {
@Override
protected void configure() {
bindSingletonPresenterWidget(FileUploaderPresenter.class, FileUploaderPresenter.MyView.class, FileUploaderView.class);
}
}
public class FileUploaderPresenter extends PresenterWidget<FileUploaderPresenter.MyView> implements FileUploaderUiHandlers {
interface MyView extends View, HasUiHandlers<FileUploaderUiHandlers> {
}
PlaceManager placeManager;
@Inject
FileUploaderPresenter(EventBus eventBus, MyView view, PlaceManager placeManager) {
super(eventBus, view);
getView().setUiHandlers(this);
this.placeManager = placeManager;
}
@Override
protected void onBind() {
super.onBind();
}
@Override
public void onOk() {
Routing.Redirect.toLoginPage(placeManager);
}
@Override
public void onUnauthorized() {
Routing.Redirect.toLoginPage(placeManager);
}
}
interface FileUploaderUiHandlers extends UiHandlers {
void onUnauthorized();
void onOk();
}
public class FileUploaderView extends ViewWithUiHandlers<FileUploaderUiHandlers> implements FileUploaderPresenter.MyView {
MaterialFileUploader uploader = new MaterialFileUploader();
public FileUploaderView() {
super();
this.getUiHandlers();
this.initWidget(uploader);
MaterialUploadLabel label = new MaterialUploadLabel();
label.setTitle("Put Your's files here and here");
label.setDescription("Some description here");
uploader.add(label);
uploader.setMaxFileSize(10000000);
uploader.setUrl(ServiceRouting.FULL_SERVICE + ServiceRouting.FileService.upload);
addHandlers();
}
private void addHandlers() {
uploader.addUnauthorizedHandler(new UnauthorizedHandler<UploadFile>() {
@Override
public void onUnauthorized(UnauthorizedEvent<UploadFile> event) {
GWT.log("UnauthorizedEvent (" + event.getTarget().getName() + " | " + event.getResponse().getCode() + " | " + event.getResponse().getMessage() + "|" + event.getResponse().getBody()
+ ")");
MaterialToast.fireToast("Redirect to login page");
getUiHandlers().onUnauthorized();
}
});
}
I instantialize dieses Widget mit: FileUploaderView()
Ist dieser Fehler passiert, weil ich UiBinder nicht verwenden? Dies ist meine erste PresenterWidget. Vielleicht sollte es anders als Standard Presenter gemacht werden. Jede Hilfe wird geschätzt.
onReset ist definitiv der falsche Ort. Wie der schlimmste Ort möglich. onBind wird einmal aufgerufen - denken Sie daran, diesen zu verwenden –