2012-02-26 3 views
0

집에서 제작 한 MVC에서 내 GWT 웹 애플리케이션을 GWT Platform으로 변경하려고합니다.GWT 플랫폼으로 모델 저장 및 업데이트를 처리합니다.

필자는 내 애플리케이션 뷰를 표현 자로 이식 할 수 있었으며, 기본적으로 PlaceRequest를 통해 뷰에 액세스 할 수있었습니다. 그리고 URL (#)을 변경하십시오.

그러나이 GWT 플랫폼을 사용하여 모델을 처리하는 방법을 잘 모르겠다. 일반적인 MVP에서 RPC를 통해 서버에서 데이터를 가져 오는 발표자에 go() 메서드가 있다는 것을 알고있다.

  • 생성자
  • 이 revealInParent
  • 는 onBind
  • onReset

나는를 놓아야합니다 : 여기 GWT 플랫폼 발표자에

자동으로 이클립스 플러그인에 의해 생성 된 방법이 있습니다 내 모델을 가져오고 업데이트 할 RPC 코드 발표자의 말 내가 가진 :

ProfilePresenter.java :

public class ProfilePresenter 
     extends 
     Presenter<ProfilePresenter.MyView, ProfilePresenter.MyProxy> { 

    public interface MyView extends View { 
     HasText getFullname(); 
     HasText getLocation(); 
     HasText getAboutme(); 
     HasText getLastlogin(); 
    } 

    private User user; // Model which represents the User information etc. 

그리고 발표자와 관련된보기는 내가 업데이트 이후 다음 서버에서 사용자 모델을 가져오고 모델을 업데이트 할 필요가 표시 될 때 공개하는 인터페이스를 통한 뷰.

또한보기에 일부 단추가 있는데 이는 발표자가 HasClickHandler을 통해 액세스 할 수 있습니다. 이벤트 처리기는 어디에 배치해야합니까?

답변

0

시드니는 대부분의 질문에 덮여있다.

일반적으로 onReset 방법은 백엔드 전화를 걸기에 좋습니다.
때때로 백엔드 호출이 오래 걸리고 데이터가로드 된 후에 만보기를 표시하려면 manual reveal을 사용할 수 있습니다.
프로필 페이지의 경우 필자는 이것이 필요하다고 생각하지 않습니다.

나는 또한 역방향 MVP 패턴에 동의합니다. 역방향 MVP 패턴을 사용하는 발표자를 HasXXXHandlers 인터페이스를 사용하는 것보다 테스트하는 것이 더 쉽습니다.

+0

실제로 당신이 맞습니다. GWTP를 지금 사용하려는 주된 이유는 내 응용 프로그램 RPC가 실제로 가져 오는 데 시간이 걸린다는 것입니다. 내 말은, 그 데이터는 여러 RPC 호출에서 나오기 때문에 UI는 어느 시점에서 빈 필드를 보여줍니다. 이것이 내 자란 MVC의 주된 문제입니다. – xybrek

2

RPC 호출은 onReset 메서드에 넣습니다. See the presenter lifecycle

개인적으로 나는 reversed MVP pattern을 사용하여 이벤트를 처리합니다. 보기 인터페이스에서 getSubmitButton에 대한

getView().getSubmitButton().addClickHandler(new ClickHandler() { 
     @Override 
     public void onClick(ClickEvent event) { 
     } 
    }); 

다음 서명 :하지만 당신은 또한 핸들러 이런 식으로 호출 할 수 있습니다

HasClickHandlers getSubmitButton()