如何在GWT中的Tabpanel中为Tabs添加ID?

时间:2011-11-03 10:35:26

标签: gwt dom

我正在尝试在tabpanel中设置标签的ID。我写的代码是:

Panel dateTab  = new VerticalPanel();
queryTabPanel.addTab("Date", dateTab);

其中queryTabPanel是另一个TabPanel。

我的问题:是为标签设置ID。这样我就可以点击tabpanel中的“日期”标签。 我尝试过:通过操纵DOM,如:

DOM.setElementAttribute(productTab.getElement(), "id", "Swagatika"); 

但这似乎不起作用。 :(

有没有人知道是否可能,如果是这样的话,添加ID有多难。

提前致谢。

2 个答案:

答案 0 :(得分:2)

要使用WebDriver进行测试,您应该使用<inherits name="com.google.gwt.user.Debug"/>的特殊模块(请参阅the GWT DevGuide中的“重命名模块”),并在您的小部件上调用ensureDebugId

在您的情况下,在致电queryTabPanel.ensureDebugId("queryTabPanel")后,第一个标签的ID为gwt-debug-queryTabPanel-bar-tab1(有关详情,请参阅TabPanel.html#onEnsureDebugId)。

答案 1 :(得分:0)

除了Debug标志之外,您需要使用TabLayoutPanel.getTabWidget(...)并在其上使用ensureDebugId,如下所示:

    SimpleLayoutPanel newTabPanel = new SimpleLayoutPanel();
    tabLayoutPanel.add(newTabPanel, "Date Tab");
    tabLayoutPanel.getTabWidget(newTabPanel).ensureDebugId("MyDateTab");

请注意,在将Widget添加到tabLayoutPanel之前设置调试ID不会产生任何影响。另外,请务必使用getTabWidget(..)而不是getWidget(...)