Search code examples
gwtuibinder

Custom tags in UiBinder files


When using a <g:LayoutPanel> in UiBinder.ui.xml files, you can specify <g:layer> tags. Some other Google-built widgets have special tags like that as well - <g:tab> even has a sub-tag, <g:header>.

How can I specify these for my own widgets?


Solution

  • The new answer to this question, after some GWT improvements, is at https://stackoverflow.com/a/11785903/439317 . Copied below to avoid moderator deletion (maybe?).

    You can use @UiChild to declare special functions in your widgets accessible in UiBinders.

    for example,

    class MyPanel extends AbsolutePanel {
    
        @UiChild
        public void addAt(Widget w, String parameter1, String parameter2) {
             ....
    

    Then, in your uiBinder, you can say

    <custom:MyPanel>
        <custom:at parameter1="HI" parameter2="Anything you like!">
            <g:AnySingleWidget />
        </custom:at>
    </custom:MyPanel>
    

    See @UiChild at http://google-web-toolkit.googlecode.com/svn/javadoc/latest/com/google/gwt/uibinder/client/UiChild.html