Какой GWT EventBus я должен использовать? - PullRequest
20 голосов
/ 21 января 2012

В gwt-user.jar есть 2 интерфейса EventBus и имплементации SimpleEventBus.

com.google.gwt.event.shared.EventBus и com.google.web.bindery.event.shared.EventBus Я буду называть их «gwt.event» и «web.bindery»..

Глядя на JavaDocs и исходный код, я вижу, что gwt.event просто оборачивает web.bindery.Однако реализация gwt.event также скрывает ряд устаревших методов

Так какую реализацию я должен использовать?(Я на GWT 2.4)

Ответы [ 4 ]

19 голосов
/ 21 января 2012

Как правило, вы должны использовать тот, который указан в com.google.web.bindery.Раньше единственная версия была в com.google.gwt.event, но когда RequestFactory и AutoBeans были перемещены из самого GWT в com.google.web.bindery, чтобы они могли работать в клиентах не-GWT.

Если вы используете com.google.web.binderyверсия в ваших докладчиках и т. д., это будет легче использовать за пределами приложений GWT, если вам нужно.Вы также не будете получать предупреждения об устаревании при передаче этого экземпляра PlaceController и другим классам, которые используют EventBus.

4 голосов
/ 06 июня 2013

Я знаю, что на этот вопрос уже есть ответ, но, возможно, стоит добавить следующее. Как я уже сказал в своем комментарии выше, Activity все еще нужен класс com.google.gwt.event.shared.EventBus. Чтобы избежать устаревших предупреждений, я сделал следующее (я использую GIN):

public class GinClientModule extends AbstractGinModule {

    @Override
    protected void configure() {
        bind(EventBus.class).to(SimpleEventBus.class).in(Singleton.class);
        ...
    }

    @Provides
    @Singleton
    public com.google.gwt.event.shared.EventBus adjustEventBus(
            EventBus busBindery) {
        return (com.google.gwt.event.shared.EventBus) busBindery;
    }

...

При этом вы всегда будете использовать объект из «новой» версии шины событий в пакете bindery.

2 голосов
/ 21 января 2012

Если вы используете Деятельности, вам, вероятно, придется использовать устаревшую, по крайней мере, пока они не очистят весь API: http://code.google.com/p/google-web-toolkit/issues/detail?id=6653.

0 голосов
/ 18 июня 2012

Чтобы сделать выбор еще сложнее. Я использую гуаву в своем приложении GWT, и ребята из Google добавили туда еще один EventBus (еще меньше функций).

Может быть, этим парням нужно собраться вместе и определить ОДНУ реализацию, чтобы управлять ими всеми?

Очевидно, что я хотел бы избежать всех зависимостей от GWT для кода, который не используется строго в коде GWT, поэтому Guava выглядел мне интересным.

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