Beide sind möglich.
Für Veranstaltungen - GWTP haben eine vereinfachte Version der Ereignisse GWT:
public interface MyEventHandler extends EventHandler {
void onMyEvent(MyEvent event);
}
public class MyEvent extends GwtEvent<MyEventHandler> {
public static Type<MyEventHandler> TYPE = new Type<MyEventHandler>();
private Object myData;
public Type<MyEventHandler> getAssociatedType() {
return TYPE;
}
protected void dispatch(MyEventHandler handler) {
handler.onMyEvent(this);
}
public MyEvent(Object myData) {
this.myData = myData;
}
/*The cool thing*/
public static void fire(HasHandlers source, Object myData){
source.fireEvent(new MyEvent(myData));
}
}
Also in Ihrem Kind Präsentator Sie einfach tun:
MyEvent.fire(this, thatObjectYoudLikeToPass);
und sie zu registrieren, in der Eltern, Sie würden entweder verwenden:
addRegisteredHandler(MyEvent.TYPE, handler);
oder
addVisibleHandler(MyEvent.TYPE, handler);
Wenn Sie möchten, dass es nur verarbeitet wird, wenn das übergeordnete Element sichtbar ist. Ich schlage vor, Sie yo diese Handler in onBind Methode der Moderator hinzufügen (vergessen Sie nicht zuerst super.onBind() aufrufen, wenn zwingende)
Für die Injektion: Einfach sicher machen:
- Ihre Eltern Moderator ist ein Singleton
Kreisabhängigkeitsfehler in GIN Um zu vermeiden, verdrahte es nicht wie
@Inject ParentPresenter Moderator;
statt es wie folgt tun:
@Inject
Provider<ParentPresenter> presenterProvider;
und greift es mit presenterProvider.get()
in Ihrem Kind
Wie sicher zu stellen, dass Eltern Moderator Singleton ist? Ich verbinde es so: 'bindPresenter (AppPresenter.class, AppPresenter.MyView.class, AppView.class, AppPresenter.MyProxy.class);' Ich kann als Singleton nur Widget binden. Ich habe auch in der Konfiguration: 'bind (AppView.Binder.class) .in (Singleton.class);' - aber das ist nur eine Ansicht. Kannst du helfen? – masterdany88
Moderatoren sind standardmäßig Singleton. –