2009-12-03 8 views
0

RPC 호출을 많이 사용하는 GWT 응용 프로그램이 있습니다. 통화가 진행 중일 때마다 회 전자 아이콘을 표시하고 싶습니다. 아이콘을 표시하기는 쉽지만 한 곳에서 원활하게 처리하므로 각 통화의 아이콘을 명시 적으로 숨기거나 표시 할 필요가 없습니다.모든 GWT RPC 호출마다 아약스 회 전자를 원활하게 표시 할 수 있습니까?

나는 jQuery의 ajaxStart 및 ajaxStop 이벤트와 비슷한 것을 찾고 있다고 생각한다.

누구나 전에 이렇게 해본 적이 있습니까?

건배 주석

답변

2

왜 AsyncCallback의 구체적인 구현이 동작을 구현하고 이것의 모든 AsyncCallbacks 서브 클래스하지 않습니다. 또는 정규 AsyncCallback을 사용하는 곳에서 데코레이터 패턴을 사용하여 팝업을 표시하거나 숨기는 또 다른 패턴으로 데코 레이팅 할 수 있습니다.

또는 명령 패턴을 사용하는 경우 이러한 이벤트를 명령 패턴 구현에 추가하면 요청을 보내고받을 때마다 팝업을 표시하거나 숨기는 처리기를 등록 할 수 있습니다.

+0

나는 이것을 구현하는 가장 좋은 방법이라고 생각합니다. 그러나 나는 이것을 GWT가 제공하는 표준 버전으로보고 싶다. – sbidwai

+0

나는 둘 다 필요하다고 생각한다. 각 비동기 인터페이스에 대한 장식 클래스뿐만 아니라 회 전자의 중지를 처리하는 AsyncCallback 기본 클래스입니다. 문제는, 나는 많은 비동기 인터페이스를 가지고 있으며, 그것들을 모두 별도로 랩핑하려고하는 것은 엉망이 될 것입니다. 내가 어떻게 그것을 일반적으로 할 수 있는지에 대한 아이디어? 표준 Java에서 AOP는 이런 종류의 문제를 해결할 수 있지만 GWT가 있는지 여부는 확실하지 않습니다. – triggerNZ

1

장식이 충분하지 않다는 의견에 대한 응답으로.

abstract class AbstractAsyncCallback <T> implements AsyncCallaback <T> 
{ 
public AbstractAsyncCallback() 
{ 
    Foo.showIcon(); 
} 

@Override public void success (T t) 
{ 
    doSuccess(t); 
    Foo.hideIcon(); 
} 

@Override public void failure() 
{ 
    doFailure(); 
    Foo.hideIcon(); 
} 

public abstract void doSuccess (T t); 

public abstract void doFailure (T t); 
};