ActivityMapper with Gin and AsyncProvider



我刚刚开始了一个使用新的GWT原型构建的项目。

ActivityMapper 看起来像:

public interface Factory {
    HomeActivity homeActivity();
    GreetingActivity greetingActivity(String user);
}
private final Factory factory;
@Inject
MainActivityMapper(Factory factory) {
    this.factory = factory;
}
@Override
public Activity getActivity(Place place) {
    if (place instanceof HomePlace) {
        return factory.homeActivity();
    }
    if (place instanceof GreetingPlace) {
        GreetingPlace greetingPlace = (GreetingPlace) place;
        return factory.greetingActivity(greetingPlace.getUser());
    }
    logger.severe("Unhandled place type: " + place.getClass().getName());
    return null;
}

我现在正在尝试基于此示例使用 AsyncProvider 实现代码拆分,但我无法让它工作。

使用 ActivityAsyncProxy 时,我该怎么办? 从

getActivity(Place place)返回 ActivityAsyncProxy? 但是,我怎样才能从工厂创建 ActivityAsyncProxy?

您建议如何使活动映射器很好地使用代码拆分?

AFAICT,您不能将AsyncProvider与辅助注射一起使用(这将是对 GIN 的一个很好的补充)。这意味着您无法从生成的runAsync调用中受益,您必须自己完成。

看看 http://code.google.com/p/google-web-toolkit/issues/detail?id=5129 讨论这个问题,有几个建议。

还可以看看我自己对它的 https://groups.google.com/d/msg/google-web-toolkit-contributors/bUFYWEFskBI/ja2aJ0tBgdwJ(也可在 https://gist.github.com/3038878 获得)。

最新更新