2012-07-03 4 views
4

방금 ​​new GWT archetype으로 빌드 된 프로젝트를 시작했습니다. 지금 this example에 따라 AsyncProvider와 코드 분할을 구현하기 위해 노력하고있어Gin과 AsyncProvider가있는 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; 
} 

,하지만 난 그것을 작동하지 수 같은

ActivityMapper 보인다.

ActivityAsyncProxy를 사용할 때 어떻게해야합니까? getAsctivity (Place place)에서 ActivityAsyncProxy를 돌려 주시겠습니까? 그런데 어떻게 FactoryAs에서 ActivityAsyncProxy를 만들 수 있습니까?

코드 스플릿으로 활동 맵퍼를 멋지게 재생하도록 제안 하시겠습니까?

고맙습니다.

답변

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에서도 사용 가능).

+0

토마스 코드 샘플을 보내 주셔서 감사합니다. 구현해야하는 항목을 명확히 해주시겠습니까 void doAsync (RunAsyncCallback callback); 및 활동 createInstance(); 다소 혼란 스럽지만 GIN을 사용하여 createInstance()를 구현하고 doAsync()에 대해 AsyncProvider를 구현할 수 있습니까? –

+0

방금 ​​Gist에 사용 예제를 추가했습니다. –