Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Custom tags in UiBinder files

Tags:

gwt

uibinder

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?

like image 634
Riley Lark Avatar asked Nov 03 '10 00:11

Riley Lark


2 Answers

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

like image 82
Riley Lark Avatar answered Oct 22 '22 02:10

Riley Lark


What you're looking for is a custom element parser for UiBinder. See this issue. Unfortunately it's not supported yet.

You might be interested in this post for some guidance on how to extend the current parser on your own.

like image 23
z00bs Avatar answered Oct 22 '22 01:10

z00bs