Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
Clear All
new posts

    How to use UiBinder in smartGWT?

    UiBinder is GWT2.0 new features,How to use UiBinder in smartGWT?

    #2
    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.

    Comment


      #3
      Any official roadmap to bring this feature?

      Comment


        #4
        Originally posted by roth_heiko
        SmartWGT 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.
        The link you quote was posted by me.

        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


          #5
          well, I guess our company will help you now.

          We believe that gwt future is uibinder. So we will start wrap the others smartgwt components now.

          I will send you a email to see how we can work together.

          Comment


            #6
            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 luck
            Last edited by sonnerdev; 6 Jul 2010, 02:12.

            Comment


              #7
              Will that project be merged into smartGWT, so a future release will work out of the box with UIBinder?

              Comment


                #8
                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


                  #9
                  Smart GWT will officially support UIBinder once the GWT supports registration of custom parsers.

                  Sanjiv

                  Comment


                    #10
                    Isn't better to have components compatible with GWT UIBinder? Like they will implement interfaces from GWT like HasText, HasWidget, etc. instead of creating custom parsers?

                    Comment


                      #11
                      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


                        #12
                        I'm sorry, but I probably missed the point. What is the problem with "reusing" the "standard parsers" from GWT? Isn't it better solution than creating a custom parsers?

                        Why smartGWT components does not implements standard (has)handler interfaces from GWT?

                        Peter

                        Comment


                          #13
                          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>
                          Then out of envy, I decided that since GWT is allowed to define that UiBinder structure specialised for TabLayoutPanel, I too should be given the same level of privilege so that I could define following:

                          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>
                          But, which GWT "standard parser" should I use? No you cannot use an existing parser because my XML schema for DynamicForm is different from XML schema for TabLayoutPanel or DockLayoutPanel, DialogBox, etc. Each parser is individualised for CellPanel, Grid, DialogBox, etc, respectively. They are not general parsers.

                          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


                            #14
                            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


                              #15
                              What is the current status of SmartGWT/UIBinder functionality?
                              Is it available?
                              Is it documented?
                              Are there tutorials and guides?

                              Comment

                              Working...
                              X