I am using GWTP platform & eClipse to build webapp. In Eclipse, when creating a Presenter, it will create 3 files (ex: SearchPresenter.java, SearchView.java, & SearchView.ui.xml):
public class SearchView extends ViewImpl implements SearchPresenter.MyView
public class SearchPresenter extends
Presenter<SearchPresenter.MyView, SearchPresenter.MyProxy>{
....
private EventBus eventBus;
@Inject
public SearchPresenter(final EventBus eventBus, final MyView view) {
super(eventBus, view);
this.eventBus=eventBus;
}
}
To use eventBus, we just simply use eclipse to create EventBus file, ex MyEvent.java, then we call eventBus in SearchPresenter by using this code:
MyEvent mEvent=new MyEvent();
SearchPresenter.this.eventBus.fireEvent(mEvent);
now suppose I got a non-presenter class public class SearchDialogBox extends DialogBox
, then my question is how can i use MyEvent in SearchDialogBox? How to getEventBus() in SearchDialogBox?
I' dont use GWTP, but I guess the following is ok.
@Inject private EventBus eventBus
should work (if you don't use it in SearchDialogBox constructor right away).
Otherwise try to find out which class in GWTP extends com.google.gwt.inject.client.Ginjector. Assuming it is called "MyInjector" just write :
private EventBus eventBus = MyInjector.INSTANCE.getEventBus();