Может кто-нибудь объяснить мне образец табуляции (gwtp)? - PullRequest
3 голосов
/ 10 сентября 2011

Я использую GWTP. Я сделал учебник для вложенных презентаторов. Но для приложения SAMPLE TAB учебника нет (с вкладкой администратора, которая появляется, если вы переключаетесь в режим администратора). Может кто-нибудь объяснить мне основные понятия этого приложения? Tkx.

Ответы [ 2 ]

4 голосов
/ 22 марта 2012

Обновление : Обновление: теперь вы можете загрузить работающий пример проекта Maven отсюда: gwtp-sample-tab.zip

Я использовал функцию докладчика с вкладкамиуспешно в моем проекте (я обнаружил, что пример кода также не компилируется).Я думаю, во-первых, заставить его работать, а затем изучить его и постепенно ощутить преимущества:)

Вот шаги, которые я сделал:

1) Скопируйте следующие файлы

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

из пример кода для вашего проекта.Например, я скопировал в этот пакет: com.widenhome.web.client.ui.Также, пожалуйста, не забудьте настроить UiModule в классе ClientGinjector.

2) Создать нормального докладчика (MyPresenter) с помощью плагина GWTP eclipse

3) Изменить EventBus, импортировать его в презентатор

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

4) Убедитесь, что MyPresenterView.ui.xml имеет следующий код или аналогичный:

<g:HTMLPanel>
  <npui:SimpleTabPanel ui:field="tabPanel" />
  <g:SimplePanel ui:field="contentPanel" />
</g:HTMLPanel>

5) Вместо этого измените презентатор, чтобы расширить TabContainerPresenterof Presenter

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

6) Определите несколько переменных в MyPresenter, или вы можете просто скопировать / вставить следующий код:

/**
 * 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) Измените конструктор 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).Просто создайте нормального докладчика снова через плагин GWTP eclipse

9) В MyFirstTabPresenter измените MyProxy, чтобы он расширял TabContentProxyPlace вместо ProxyPlace

10) Создайте метод @TabInfo, см. Javadoc of@TabInfo аннотации, вы также можете использовать другие способы здесь.Например, я сделал это:

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

11) В методе reveInParent () класса MyFirstTabPresenter убедитесь, что он имеет следующий код или аналогичный:

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

Это все связанос вкладками конфигурации докладчика.Теперь вы можете добавить логику, чтобы загрузить некоторые данные для отображения в представлении MyFirstPresenter.

Я надеюсь, что это может помочь вам начать с докладчиком GWTP с вкладками, пожалуйста, дайте мне знать о любых ваших проблемах, я буду редактировать ответ постепенно идоведите его до совершенства, чтобы оно могло помочь большему количеству людей начать работу с ним.

Кстати, я также опубликовал это в моем блоге , чтобы помочь большему количеству людей в этом.

Спасибо
Цзякуань

1 голос
/ 22 декабря 2011

Он даже не компилируется.Единственный способ запустить несколько докладчиков через Nested Presenters - это слишком сложно.Я создал приложение для нескольких презентаторов с простым механизмом GWT History без какой-либо боли.Эта структура сделала GWT History (простой механизм) очень эзотерической вещью.

...