superb! that's helpful info. thanks a whole lot. your response leads me to custom element parsers, which prompts me to try figuring out how to register one of my own. and i find one discussion here - http://groups.google.com/group/google-web-toolkit-contributors/browse_thread/thread/4d79f729030527c5 ; and i find relevant code here: http://code.google.com/p/google-web-toolkit/source/browse/trunk/user/src/com/google/gwt/uibinder/rebind/UiBinderWriter.java
the above is a bit discouraging because it shows that there is no easy, documented (and probably finalized) way of making a "native widget" leveraging existing UiBinder facilities, even with GWT 2.1. On Jun 22, 2:37 pm, Chris Boertien <[email protected]> wrote: > 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/... > > 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 > > athttp://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.
