有人能解释一下TAB SAMPLE (gwtp)吗?



我使用GWTP。我做了嵌套演示器教程。但是没有SAMPLE TAB应用程序的教程(如果切换到管理模式,就会出现admin选项卡)。有人能给我解释一下这个应用程序的主要概念吗?Tkx .

Update: Update:现在您可以从这里下载可用的示例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。另外,请记住在ClientGinjector类中配置UiModule。

2)通过GWTP eclipse插件创建一个普通的演示器(MyPresenter)

3)更改EventBus在presenter中导入this

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)将presenter扩展为TabContainerPresenter而不是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让它'extends' TabContentProxyPlace而不是ProxyPlace

10)创建@TabInfo方法,请参见@TabInfo注释的javadoc,您也可以在这里使用其他方式。例如,我这样做:

@TabInfo(container = MyPresenter.class)
static TabData getTabLabel(ClientGinjector ginjector) {
    return new TabDataBasic("My First Tab", 0);
}
在MyFirstTabPresenter类的revealInParent()方法中,请确保它具有以下代码或类似代码:
@Override
protected void revealInParent() {
    RevealContentEvent.fire(this, MyPresenter.TYPE_SetTabContent, this);
}

这些都与选项卡演示器配置有关。现在你可以添加一些逻辑来加载一些数据,以显示在MyFirstPresenter的视图中。

我希望这能帮助你开始使用GWTP标签演示器,请让我知道你有任何问题,我会逐渐编辑答案并完善它,以便它可以帮助更多的人开始使用它。

顺便说一句,我也把这篇文章贴在我的博客上,以帮助更多的人。

谢谢,
Jiakuan

它甚至无法编译。触发多个演示器的唯一方法是通过嵌套演示器——这太复杂了。我用简单的GWT History机制毫不费力地构建了一个多演示者应用程序。这个框架使得GWT History(简单的机制)成为一个非常深奥的东西。

相关内容

  • 没有找到相关文章

最新更新