2010-12-10 3 views
0

저는 GWT를 처음 접했고 rpcService와 eventBus를 사용하는 MVP 구현을 검토했습니다. 탭 패널을 구현하여 각 탭마다 자체 하위보기가 어떻게 구현 될 수 있는지 궁금합니다. 패널에서 파생 된 맞춤 위젯을 만들거나 발표자에게 다른 발표자를 사용하는 방법을 알아 내거나 모든 것을 처리하는 복합 표현 클래스를 만드는 것 사이에서 나는 매끈 해졌다.GWT DecoratedTabPanel에 대한 복합 뷰/발표자를 구현하는 방법은 무엇입니까?

누구나 하나의보기/발표자 쌍 내에서 구현을 유지하는 것과는 대조적으로 각 탭의 기능을 분리하는 방법에 대한 조언이 있습니까?

답변

0

메인 탭을 위조하지 않고 GWT의 기본 SDK에 제공된 것을 사용하여이 문제를 해결했습니다. 내가가 이런 짓을 : 불려 MainTabPresenter

  • 의 '이동'메서드 내에서 각 탭의 현재 플러스보기 구성된 MainTabPresenter
  • 에 발표자의 ArrayList에 추가

    1. 의 각 '(널)를 이동' 탭 발표자.
    2. 각각에 대해 null 상황을 처리했습니다.
    3. 마치 마법처럼 모든 작품

    DecoratedTabPanel

  • 에 탭을 추가 할 MainTabView의 방법을 구현했습니다. MainTabPresenter는 매우 얇기 때문에 View/Presenters를 완벽하게 구현하여 자신의 파일에 쓸 수 있습니다.

    1

    나는 동일한 상황에 있었지만, 으로 구현을 변경하기로 결정했습니다. TabPanel입니다. 보기와 발표자가 서로 상호 작용할 필요가없는 경우 (예 : 탭간에 드래그하여 다른 탭으로 이동) 뷰를 공유 SimplePanel로로드하여 기능을 분리하는 것이 더 쉬울 것이라고 생각합니다. 강조 표시된 탭을 변경하기 위해 PlaceChangeEvents를 수신하는 위젯을 사용하여 TabPanel의 탭 부분을 시뮬레이션하고 앱이 사용하는 PlaceController에 goTo 명령을 전송합니다 (다른 헤더의 클릭을 처리하기 위해).

    구현하는 데 몇 시간이 걸렸으며 결과 코드가 훨씬 더 깨끗합니다. 처음 시도 할 때 PlaceChangeEvents를 수신 한 다음 적절한 tabPanel.selectTab() 함수를 호출했지만 다른 탭의 발표자를 시작하고 중지하는 방법을 알아 내려고 시도한 것은 너무 혼란 스러웠습니다. 제안한 것처럼 구현해야합니다. 자신의 컴파운드 뷰 모델.

    관련 문제