2

我有一个 GWT 应用程序,如果不可能,我想自动为每个元素添加 ID,手动执行此操作的最快方法是什么?

4

4 回答 4

3

我不太确定性能问题。以 10-20 个小部件的形式添加露水 id 会如何导致性能损失?

要在小部件上自动设置调试 ID,您需要在 module.gwt.xml 文件中包含以下内容。

<!-- Enable debug ID. -->
<inherits name="com.google.gwt.user.Debug"/>
<set-property name="gwt.enableDebugId" value="true"/>
于 2013-02-11T04:52:34.340 回答
1

如果你想让一个元素总是有一个 Id,你可以使用UI Object 类的ensureDebugId。它确保您的元素在将其附加到 dom 之前设置了一个 Id。

于 2013-02-11T04:48:51.537 回答
1

是的,它可能:

第一种方式:

Button b = new Button();
DOM.setElementAttribute(b.getElement(), "id", "my-button-id")

第二种方式:

FlowPanel panel = new FlowPanel();
panel.getElement().setId("my-flowpanel-id");

如果您想将所有附加到 DOM 的 id 分配给您,您可以这样做

Iterator<Widget> iterator = RootPanel.get().iterator();

while(iterator.hasNext()) {
    Widget w = iterator.next();
     w.getElement().setId("id");
}
于 2013-02-10T19:16:43.953 回答
1

您可以创建自己的 Widget 类来扩展 GWT Widget 并为每个类设置一个 id:

public class myWidget extends Widget {

    public myWidget(String id) {
        super();
        getElement().setId("id");
    }

    public void setId(String id) {
        // Use this method if you use Ui:Binder
        getElement().setId("id");
    }
}

显然,如果您不需要所有小部件(如 FlowPanel、Button 等)上的 id,则可以扩展其他类而不是 Widget。

于 2013-02-11T00:58:01.237 回答