2017-02-21 47 views
0

может кто-нибудь объяснить мне, как работает eventbus, я видел все документы об этом, но я не понялКак eventBus работает в загрузке MVP и Spring?

Я дам вам то, что я хочу; Поэтому у меня есть AccountPresenter и AccountView, поэтому, на мой взгляд, у меня есть кнопка, чтобы открыть окно, в котором я создаю свою учетную запись, что я хочу сделать, это пропустить представление и создать окно в другом представлении Presenter и использовать его в AcccountPresenter с помощью eventBus весеннего ваадина или другого события EventBus. Я действительно не понимаю эту роль.

Спасибо

+0

выше !! кто-то может помочь? – Aladdin

ответ

0

Для обработки событий весны вы должны сначала создать событие, как:

public static class CloseOpenWindowsEvent extends ApplicationEvent { 
    private static final long serialVersionUID = -4672026509699779702L; 

    public CloseOpenWindowsEvent(Object source) { 
     super(source); 
     // TODO Auto-generated constructor stub 
    } 
} 

Тогда вам будет нужно что-то опубликовать событие:

@Autowired 
private ApplicationEventPublisher eventPublisher; 
... 
eventPublisher.publishEvent(new CloseOpenWindowsEvent(MyUI.getCurrent())); 

и кто-то который прислушивается к нему:

@EventListener 
public void closeOpenWindows(final CloseOpenWindowsEvent event) { 
    for (Window window : getWindows()) { 
     window.close(); 
    } 
} 

Но так же гладко, как это, в вашем случае это не путь, я думаю. Вместо этого вы должны использовать Vaadin's Navigator и отрегулировать ClickListener вашей кнопки, чтобы перейти к другому виду.

UI.getCurrent().getNavigator().navigateTo(otherView.getViewName()); 

Оформить заказ https://github.com/khauser/microservices4vaadin/tree/master/microservices/frontend, там у вас будет как на месте. Обработка событий весной и использование Navigator.