UiBinder is GWT2.0 new features,How to use UiBinder in smartGWT?
Announcement
Collapse
No announcement yet.
X
-
UIBinder compatibility
SmartWGT doesn't work with UIBinder right now.
There are patches making smartgwt UIBinder friendly
http://groups.google.com/group/google-web-toolkit/browse_thread/thread/43d9bf190838846d?pli=1
We are interested in making smartgwt uibinder compatible.
We would like to participate code with the project.
-
Originally posted by roth_heikoSmartWGT doesn't work with UIBinder right now.
There are patches making smartgwt UIBinder friendly
http://groups.google.com/group/googl...0838846d?pli=1
We are interested in making smartgwt uibinder compatible.
We would like to participate code with the project.
I am extremely enthusiastic to have others share this burden with me, as I am currently doing it for myself on an as-needed basis.
There are quite a few technical bends that is being klugified by what I am doing, so anyone wishing to join the effort would need an explanation from me, but the issues are simple to understand. But at the end of it, it is very satisfying to see your pages being constructed with smartgwt canvases thro uibinder.
I am also lone-ranger style trying to post encouragement to GWT architects to make a teeny change so that we don't have to depend on kluges.
Please let me know and if so, I will extract the smartgwt dev-tree and create a new google-code project.
You could contact me with my gmail account as blessedgeek.
Comment
-
FYI: We started the project called uibinding-smartgwt.
If someone wanna take a look:
http://code.google.com/p/uibinding-smartgwt/
I already refactory my entire app to use uibinding-smartgwt without no problems.
good luckLast edited by sonnerdev; 6 Jul 2010, 02:12.
Comment
-
in my observation, Smart GWT is SmartClient focused and therefore, there is a motivation factor whether Smart GWT would deviate from the strategies that are focused on SmartClient.
Isomorphic already have their own json and xml directions for Smart Client/GWT which, my less than viable knowledge of Enterprise version seems to say, is more or less tied to their Enterprise product.
uibinding-smartgwt is a google-code collaboration independent of isomorphic. Currently, we are at our infancy - so that while our uibinderable wrappers for SmartGWT visual classes are pretty stable, our data elements are still in a flux. We find using uibinder very compatible with the strategies we apply in developing our applications. Anyone with similar tendencies for uibinder who wish to see more features should submit an issue to the uibinding-smartgwt google-code project.
Of course, anyone wishing to contribute, be it code, documentation or examples are welcome to join the project as active members - but first read the project description and the few meagre wikis, and perhaps the code, to get a feel of where the project is heading. Anyone ... , including Isomorphic personnel.
However, imo, the more crucial miracle is, more than hoping for collaboration from Isomorphic, is cooperation from the GWT development team to resolve some very glaring deficiencies in UiBinder, which I outlined here http://groups.google.com/group/googl...8965a884000666.Last edited by BlessedGeek; 18 Jul 2010, 21:05.
Comment
-
If you read the GWT source code at Google code, specifically
http://code.google.com/p/google-web-toolkit/source/browse/#svn/trunk/user/src/com/google/gwt/uibinder/elementparsers
you would discover that GWT itself has 26 custom parsers, and two of which are HasText and HasWidgets which are not the only "standard parsers".
Comment
-
Let's see the TabLayoutPanel's parser which allows the following UiBinder structure for TabLayoutPanel.
Code:<g:TabLayoutPanel barUnit='PX' barHeight='3'> <g:tab> <g:header size='7'><b>HTML</b> header</g:header> <g:Label>able</g:Label> </g:tab> <g:tab> <g:customHeader size='7'> <g:Label>Custom header</g:Label> </g:customHeader> <g:Label>baker</g:Label> </g:tab> </g:TabLayoutPanel>
Code:<s:DynamicForm ui:field="form1"> <s:fields> <s:TextItem>Hello</s:TextItem> <s:DateItem>2010-10-20:20:10:10.20</s:DateItem> </S:fields> </s:DynamicForm> <s:DynamicForm ui:field="form2"> <s:DataSource> <s:DataSourceTextField/> <s:DataSourcePasswordField/> </s:DataSource> </s:DynamicForm>
The parser for my schema must accept only child nodes "fields" or "DataSource" and should croak if supplied with other tags. There isn't any parser within GWT's repertoire of "standard parsers" that would recognise my schema. There isn't any "standard parser" that could do the job. If you had experience with XML parsing or compiler construction, you would realise that you cannot use a C tokeniser to recognise Java tokens, or an Ant parser for parsing Maven.
And no, I prefer not to be restricted to using HasWidgets or HasText. If Google team is allowed the privilege of creating the pizzazz of custom nodes, so too do I contemptuously lust after that privilege of being able to define uibinder schemata (plural for schema is schemata not "schemas") that is comprehensive.
So I have to define a custom XML schema and write a custom parser for it. Presuming that I did possess the knowledge to write a parser, and did indeed write the parser, how shall I get GWT compiler to use that parser that I just wrote so that it would recognise my schema for DynamicForm. GWT does not currently provide a way to insert my parser ... And the ability to register custom parsers is that big holyday event we are all awaiting for:
http://groups.google.com/group/googl...79f729030527c5.
http://code.google.com/p/google-web-...detail?id=4461.
The other gwt big holyday event we are also awaiting is that uibinderable gwt classes would be made extension-friendly. There are quite a number of uibinderable gwt classes (especially those that use individualised parsers) that are not amenable to being extended.
I am again succumbing to temptation to remind fellow uibinderors that the current uibinder implementation is deficient and insufficient.Last edited by BlessedGeek; 26 Jul 2010, 21:14.
Comment
-
BlessedGeek, thanks a lot for your answer. Now, i've got the point.
What i'm trying to achieve is some kind of compatibility with GWT and abstraction OVER the GWT.
<g:FormPanel ui:field="form1">
<g:TextBox>Hello</g:TextBox>
<g:DateBox>2010-10-20:20:10:10.20</s:DateBox>
</g:FormPanel>
<g:FormPanel ui:field="form2">
<g:TextBox/>
<g:PasswordTextBox/>
</g:FormPanel>
In the result, the Smart components will be used. This can be done IMHO with few replace-by rules (but never tryied it :) ).
btw. Is it a good practise to define datasource in the .gwt.xml file? Isn't it used mostly for define layout and UI components?
Thanks,
Peter
Comment
Comment