ActivityMapper与Gin和AsyncProvider

时间:2012-07-03 07:21:02

标签: gwt gin

我刚刚开始使用new GWT archetype构建的项目。

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;
}

我现在正在尝试使用基于this example的AsyncProvider实现代码拆分,但我无法使其正常工作。

使用ActivityAsyncProxy时,我该怎么办?从getActivity(Place place)返回ActivityAsyncProxy?但是,如何从工厂创建ActivityAsyncProxy?

您如何建议让活动映射器与代码拆分相匹配?

非常感谢先进!

1 个答案:

答案 0 :(得分:3)

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处找到)。