Nasıl kızaran Tel testinde EventBus kullanmak
Henüz GWT aşina değilim ve EventBus nasıl kullanılacağını veya proje üzerinden bir Olay göndermek için daha iyi çözümler varsa orada kendimi merak ediyorum.
Widget 1 Düğmesi var. Widget 2 düğmesine bastığımda sarsan bir Etiket var. Bu aletler bir DockLayout
RootLayoutPanel rootLayoutPanel = RootLayoutPanel.get();
DockLayoutPanel dock = new DockLayoutPanel(Unit.EM);
dock.addWest(new Widget1(), 10);
dock.add(new Widget2());
rootLayoutPanel.add(dock);
Widget 1 Bir handleClickAlert ilan ediyorum
@UiHandler("button")
void handleClickAlert(ClickEvent e) {
//fireEvent(e);
}
Umarım birisi bana yardımcı olabilir. Teşekkürler!
CEVAP
Mantıksal parçalar (MVP ile örneğin) farklı parçaları içine proje bölmek bazen iletişim kurmak gerekir. Tipik iletişim durum değişiklikleri, örneğin gönderiyor:
- kullanıcı loged-out / giriş.
- kullanıcı menüsü güncellendi doğrudan sayfaya URL ile gidilen.
Olay otobüs kullanarak bu gibi durumlarda oldukça mantıklı.
Bunu kullanmak sonra, diğer tüm sınıflar tarafından kullanılan her uygulama için bir EventBus başlatılamadı. Bu statik bir kullanım alanı elde etmek için, fabrika veya bağımlılık enjeksiyon (GWT durumunda CİN).
Bu, büyük bir olay kendi türleri:
public class AppUtils{
public static EventBus EVENT_BUS = GWT.create(SimpleEventBus.class);
}
Normalde de kendi türleri ve olay işleyicileri oluşturmak istiyorum:
public class AuthenticationEvent extends GwtEvent<AuthenticationEventHandler> {
public static Type<AuthenticationEventHandler> TYPE = new Type<AuthenticationEventHandler>();
@Override
public Type<AuthenticationEventHandler> getAssociatedType() {
return TYPE;
}
@Override
protected void dispatch(AuthenticationEventHandler handler) {
handler.onAuthenticationChanged(this);
}
}
ve iÅŸleyici:
public interface AuthenticationEventHandler extends EventHandler {
void onAuthenticationChanged(AuthenticationEvent authenticationEvent);
}
O zaman bu gibi kullan:
AppUtils.EVENT_BUS.addHandler(AuthenticationEvent.TYPE, new AuthenticationEventHandler() {
@Override
public void onAuthenticationChanged(AuthenticationEvent authenticationEvent) {
// authentication changed - do something
}
});
ve olay yangın çıktı
AppUtils.EVENT_BUS.fireEvent(new AuthenticationEvent());

Nasıl bir WordPress kullanmak ile aynı...
Nasıl HTML Çeviklik paketi kullanmak i...
bir öğe veri-öznitelik değeri için bir...
Nasıl bir bağımlılık en son sürümünü k...
Nasıl Çift ya da tek ayraç, parantez, ...