2011-09-10 6 views
3

GWTP를 사용하고 있습니다. 중첩 된 발표자 자습서를 만들었습니다. 그러나 SAMPLE TAB 응용 프로그램에 대한 자습서는 없습니다 (관리자 모드로 전환하면 나타나는 관리 탭이있는 응용 프로그램). 누군가이 응용 프로그램의 주요 개념을 설명 할 수 있습니까? Tkx.TAB 샘플 (gwtp)을 나에게 설명 할 수 있습니까?

+0


당신은 적어도 작동하게 할 수 있습니까? 그렇다면 귀하의 도움이 필요합니다. P – caarlos0

답변

4

업데이트 : 업데이트 : 이제 당신이 여기에서 가능한 샘플 Maven 프로젝트를 다운로드 할 수 있습니다

gwtp-sample-tab.zip 내가 내 프로젝트에 성공적으로 탭 발표자 기능을 사용는 (나뿐만 아니라 샘플 코드는 컴파일되지 않았다 발견) . 나는 제일 먼저 그것이 작동되도록 한 다음를 배우고 점차 혜택을 느낄 :)

다음

내가 한 단계이다라고 생각 :

1) 다음 파일 복사

BaseTab.java 
BaseTabPanel.java 
SimpleTab.java 
SimpleTabPanel.java 
SimpleTab.ui.xml 
SimpleTabPanel.ui.xml 
UiModule.java 

the sample code에서 프로젝트합니다. 예를 들어 com.widenhome.web.client.ui 패키지에 복사했습니다. 또한 ClientGinjector 클래스에서 UiModule을 구성해야합니다.

2

)는 발표자

import com.google.web.bindery.event.shared.EventBus; 

4) MyPresenterView.ui.xml이이 있는지 확인에 GWTP 이클립스 플러그인을 통해 다음이

3) 변경 EventBus 가져 오기를 일반 발표자 (MyPresenter) 만들기 코드 또는 유사한

<g:HTMLPanel> 
    <npui:SimpleTabPanel ui:field="tabPanel" /> 
    <g:SimplePanel ui:field="contentPanel" /> 
</g:HTMLPanel> 
/** 
* This will be the event sent to our "unknown" child presenters, in order 
* for them to register their tabs. 
*/ 
@RequestTabs 
public static final Type<RequestTabsHandler> TYPE_RequestTabs = new Type<RequestTabsHandler>(); 

/** 
* Fired by child proxie's when their tab content is changed. 
*/ 
@ChangeTab 
public static final Type<ChangeTabHandler> TYPE_ChangeTab = new Type<ChangeTabHandler>(); 

/** 
* Use this in leaf presenters, inside their {@link #revealInParent} method. 
*/ 
@ContentSlot 
public static final Type<RevealContentHandler<?>> TYPE_SetTabContent = new Type<RevealContentHandler<?>>(); 

7 :

5)/붙여 넣기 다음 코드를) 대신

public class MyPresenter extends 
    TabContainerPresenter<MyPresenter.MyView, MyPresenter.MyProxy> 

6 발표자

의 TabContainerPresenter을 확장 발표자를 변경 MyPresenter 여러 변수를 정의하거나 복사 만 할 수 있습니다) 변수를 사용하도록 MyPresenter의 생성자를 변경합니다.

@Inject 
public MyPresenter(final EventBus eventBus, final MyView view, final MyProxy proxy) { 
    super(eventBus, view, proxy, TYPE_SetTabContent, TYPE_RequestTabs, TYPE_ChangeTab); 
} 

8) 이제 탭 프리젠터를 만들 수 있습니다 (예 : MyFirstTabPresenter). 다만, MyFirstTabPresenter에서 GWTP 이클립스 플러그인

9)를 통해 다시 정상 발표자를 만들 MyProxy 그것이 @TabInfo 방법을 작성하는 대신

10 ProxyPlace

의 TabContentProxyPlace)을 '확장'수 있도록 변경, @TabInfo 주석의의 javadoc를 참조하십시오 여기 다른 방법을 사용할 수도 있습니다.

@Override 
protected void revealInParent() { 
    RevealContentEvent.fire(this, MyPresenter.TYPE_SetTabContent, this); 
} 

모든 탭 발표자 구성에 관한입니다 :

@TabInfo(container = MyPresenter.class) 
static TabData getTabLabel(ClientGinjector ginjector) { 
    return new TabDataBasic("My First Tab", 0); 
} 

11) revealInParent() MyFirstTabPresenter 클래스의 방법, 그것은 다음과 유사한 코드 또는이 있는지 확인하십시오 : 예를 들어, 내가 이런 짓을 . 이제 일부 논리를 추가하여 MyFirstPresenter의보기에 표시 할 데이터를로드 할 수 있습니다.

GWTP 탭 발표자로 시작하는 데 도움이되기를 바랍니다. 문제가 있으면 알려주세요. 점차적으로 답변을 편집하고 더 많은 사람들이 시작하도록 도와주세요.

나는 또한 이것을 my blog에 게시하여 더 많은 사람들에게 도움을줍니다.

덕분에, Jiakuan

1

컴파일되지 않습니다. 중첩 된 발표자를 통해 여러 발표자를 시작하는 유일한 방법은 tooooo 복잡합니다. 나는 고통없이 간단한 GWT History 메커니즘으로 여러 발표자 앱을 만들었다. 이 프레임 워크는 GWT 역사 (목표 메커니즘)를 매우 난해한 것으로 만들었습니다.

관련 문제