GWT MVP. Как использовать шину событий? - PullRequest
0 голосов
/ 15 февраля 2012

В проекте я использую шаблон MVP.У меня 2 просмотра и 2 соответствующих докладчика.Из "Presenter2" я хочу получить выбранное значение в "View1".Каков наилучший способ сделать это?Я знаю, что лучше использовать шину событий.Но поэтому я должен создать 2 события и 2 обработчика событий (1-е событие будет возникать, когда Presenter2 потребуется выбрать значение из View1, и оно будет обработано в Presenter1. 2-е событие будет расти в Presenter1 (например: new selectedValueEvent(value)уведомить Presenter2 о выбранном значении, поэтому Presenter2 обработает selectedValueEvent(value) и получит value).

1 Ответ

1 голос
/ 15 февраля 2012

Если точка, когда докладчику необходимо получить выбранное значение, это когда пользователь совершает действие, вы не сможете обойтись без использования события. (Хотя, может быть, оба докладчика могли отреагировать на одно и то же событие, поэтому не нужно использовать два разных?)

Если известно, когда докладчику необходимо получить значение (определенный шаг в рабочем процессе), вы можете сделать это следующим образом:

Сохраните ссылку на представления в ClientFactory:

public class ClientFactoryImpl implements ClientFactory {
    private static final EventBus eventBus = new SimpleEventBus();
    /* The views */
    private static final SampleView sampleView = new SampleView(); 
    ....

    public ClientFactoryImpl(){
        eventBus.addHandler(ReleaseAddedEvent.type, sampleView);
        ....
    }


    // getter and setters
}

Таким образом, в Presenter вы можете получить ссылку на представление: SampleView view = MyEntryPoint.getClientFactory().getSampleView();, а затем вы можете просто вызвать метод из представления, который возвращает выбранное значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...