I'm only just starting to dive into GWT internals but I believe to do this you will need to create a Parser for your widget to be recognized internally by UiBinder.
http://code.google.com/p/google-web-toolkit/source/browse/trunk/user/src/com/google/gwt/uibinder/elementparsers/TabLayoutPanelParser.java The method error your getting is from the fact that GWT is magically trying to map the attribute which it has failed to deal with in any meaningful way to a method in your class which of course doesn't exist. You'll notice within that parser that barHeight and barUnit are being consumed by the parser. And of course the rest of the parser is about dealing with the child tags that it supports as special. On Mon, Jun 21, 2010 at 11:05 PM, kornhill <[email protected]> wrote: > Given the absence of a vertical TabLayoutPanel in GWT, I was trying to > patch the TabLayoutPanel code in my local space by copying the > TabLayoutPanel source code and modifying it. However, when I use > UiBinder to construct my UI, I run into a problem that makes me wonder > how UiBinder works behind the scene. > > First I have my locally modified TabLayoutPanel class, which I name it > "MyTabLayoutPanel". > Then I use it in a UiBinder template like this: > ... > <g:MyTabLayoutPanel barUnit='PX' barHeight='35' ....> > <g:tab> > <g:header size='7'>ABC</g:header> > <g:Label>This is a test</g:Label> > </g:tab> > ... > </g:MyTabLayoutPanel> > > When running the program, I ran into the following issues: > - "Class MyTabLayoutPanel has no appropriate setBarUnit method... " > - "tab" not found, obviously UiBinder doesn't recognize the "<g:tab>" > thing > > If I switch "MyTabLayoutPanel" back to the standard "TabLayoutPanel", > everything works. In fact, to trouble-shoot my problem, I merely copy > the original GWT TabLayoutPanel to my app code space and rename it > "MyTabLayoutPanel" without any other modification. > > When I look at TabLayoutPanel code, I notice the constructor takes a > "barUnit" and a "barHeight" as arguments. I wonder why widgets in > GWT's own SDK do not need to follow the rule of providing an empty > constructor or using things like "@UiConstructor". Also, if I want to > natively write my own widget to support things like "<g:tab>", > "<g:cell>" etc in UiBinder, how should I do it? > > Any advices would be highly appreciated. > > -- > You received this message because you are subscribed to the Google Groups > "Google Web Toolkit" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/google-web-toolkit?hl=en. > > -- You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
