2011-02-02 6 views
6

기존 프로젝트에서 우리는 MVP (합리적인 가격)를 사용하고 있습니다. 그것은 이해되고 우리가 필요로하는 대부분을합니다. 새로운 프로젝트를 위해 GWT 2.1 (활동 및 장소)에 내장 된 MVP 프레임 워크를 사용하고 있습니다.GWT 2.1 MVP (활동/장소) 및 탭 표시

우리의 응용 프로그램은 각 탭이 단일보기 위젯에 바인딩 된 대부분 탭 표시입니다.

이 유형의 디스플레이에서는 성공하지 못한 활동 및 장소를 사용하려고했습니다. 문제의 일부는 예를 들어 Hello World 기사가 내 꼬리를 쫓아 내고, 내 뇌를 소화하기에는 너무 많은 새로운 개념을 남겼다는 것입니다.

Hello World 샘플 IMO는 충분한 소개가 아니며 많은 실제 사용 사례를 다루지 않습니다. 누군가가 MVP를 탭 디스플레이에 사용하는 샘플 애플리케이션의 방향으로 나를 가리킬 수 있기를 바랍니다. 토마스 브로 이어 (Thomas Broyer)는 그의 블로그에 훌륭한 글을 올렸지 만 이들은 여전히 ​​나에게 조금 혼란 스럽다.

이전에는 각 탭의 탭 변경 사항과 단일 발표자를 처리하기 위해 AppController를 사용했습니다. GWT 2.1의 새로운 아키텍처는 필자에게 당황 스럽다.

답변

1

나는 탭으로 된 디스플레이를 위해 gwt Activities/Places 프레임 워크를 사용하고 있습니다. 그러나 그것은 훌륭했습니다. 그러나 우리가 사용하고있는 TabLayoutPanel 위젯을 포기하고 내비게이션 막대 (탭처럼 보임)를 만들고 내용 창. 효과는 동일합니다 - 동일하게 보입니다. 그러나 구현은 훨씬 깔끔합니다.

내비게이션에 대한 또 다른 아이디어가있는 TabPanel과 함께 자체 탐색 아이디어가있는 활동/장소를 혼합하는 데 문제가 있다고 생각합니다. 처음에는 탭 버튼 동작을 재정의하여 PlaceController를 트리거 한 다음 주변 탭을 바꿔 놓았습니다.하지만 ... 지저분했습니다. 독립적 인 navbar/content pane으로, PlaceController는 원하는 모든 것을 할 수 있습니다. TabPanel로 대신 뷰를 수동으로 전환하면됩니다.

1

나는 또한이 문제에 직면했지만 탭 당 하나의 활동과 발표자 (또는 그 이상)를 사용하여 각 활동을 사용하여 탭 구성 요소를 표시하도록 관리했습니다.

라일락 라크 (Riley Lark)가 찾은 해결책에 대해서는 대신 Decorator 패턴을 사용하여 원래의 TabbedPanel을 유지합니다. 어떻게? 각 액티비티는 TabbedPanel에 대한 데코레이터가 포함 된 발표자 (GIN)를 주입합니다.

그래서, 예를 들어

  • Tab1Activity는 Tab1ContentPanel와 TabbedPanel (이 패널에 표시되는 모든 위젯을 포함 장식 차례로 Tab1Decorator 주입 얻는다 Tab1Presenter, 주사 도착 TAB1 탭)

  • Tab2Activity (이 패널은 모든 위젯이 TAB2 탭에 표시 할 포함)

  • Tab2ContentPanel와 동일한 TabbedPanel를 장식 차례로 Tab2Decorator 주입 얻는다 Tab2Presenter, 주사 도착

첫 번째 데코레이터를 만든 후에는 정말 효과가 있었고 TabbedPanel을 유지하고 프레임 워크에서 암시 적으로 사용되는 URL 기록 관리를 활용할 수있었습니다.

+0

GWT에는 TabbedPanel이 없습니다. 단점 모드에서만 작동하는 TabPanel과 ActivityManager에서 허용되지 않는 TabLayoutPanel이 있습니다. 이 방법을 시도했지만 작동하지 않습니다. 코드를 보여 주거나 더 자세하게 설명하십시오. – Saad