8

In java code we can set id. Is it possible to set 'id' for GWT widgets in UiBinder itself?

If it is possilbe please give me a sample.

Actually I tried the following code,

<g:Button ui:field="login" debugId="loginButton">

Then I checked it in alert. Window.alert("Id: " + login.getElement().getId()); But the output is Id:.

Id is not set for the login button

Is there any better way to do this?

Can anyone help me?

Thanks in advance, Gnik

Gnik
  • 7,120
  • 20
  • 79
  • 129

2 Answers2

9

Check an availability of the following line in your module file (*.gwt.xml ):

<inherits name="com.google.gwt.user.Debug"/> 

And call the ensureDebugId(Element, id) method in your code:

login.ensureDebugId(login.getElement(), "loginButton");
kapandron
  • 3,546
  • 2
  • 25
  • 38
  • 1
    With the Debug module inherited, you can also use the debugId attribute in uiBinder.xml like By default, the element ID will then be gwt-debug-test. To remove the gwt-debug prefix, call DebugInfo.setDebugIdPrefix("") in your onModuleLoad(). – David Chandler Mar 04 '15 at 18:00
4

Adding ID is not possible. This problem is also filed as a bug report and closed as "as designed". For details, see:

http://code.google.com/p/google-web-toolkit/issues/detail?id=4176

But you can add a debugId if you add <inherits name="com.google.gwt.user.Debug"/> to your *.gwt.xml file.

See Mapping ui:field in GWT to generated code

Community
  • 1
  • 1
Croo
  • 1,301
  • 2
  • 13
  • 32