> > So am I right to think that I should never use widget inside UiBinder > xml except if I have the attribute ui:field (in other words, except if > I need it in the Java code)? >
Its best to minimize usage of widgets when you can; there is always a cost associated with them. Specifically, VerticalPanel and HorizontalPanel almost always should be replaced with <divs> (or tables if you don't like semantic markup). BUT I'm still wondering if once compiled to JS those instanciations are > translated to plain html. It's not clear in what you're saying if it's in > production or in development mode. > The code pasted was the intermediate, unoptimized java code that uibinder generates prior to java -> js compilation. It will undergo optimizations once the compiler acts on it, and the code will for sure be a lot more performant. However, in general, innerHTML is much better performance wise than creating objects and adding them to DOM. So, even after the compiler finishes all optimizations, performance wise it will still lag behind inline html. --Sri On 15 April 2010 19:30, Christian Goudreau <[email protected]>wrote: > I don't know if you're right about thinking that there's still situation > where an HTMLPanel or layout panel, without uifield is the best way to go, > but I do know that we should use as often as possible html code instead of > widget for the very reason you exposed. > > BUT I'm still wondering if once compiled to JS those instanciations are > translated to plain html. It's not clear in what you're saying if it's in > production or in development mode. > > Christian > > > On Thu, Apr 15, 2010 at 9:44 AM, plcoirier <[email protected]> wrote: > >> With UiBinder, I thought that GWT compiler would prevent instantiation >> of widget with no ui:field attribute by directly inserting the html >> code of the widget. >> >> In other words, I thought that: >> >> <g:VerticalPanel> >> <g:HorizontalPanel><g:Label>Line >> 1</g:Label></g:HorizontalPanel> >> <g:HorizontalPanel><g:Label>Line >> 2</g:Label></g:HorizontalPanel> >> </g:VerticalPanel> >> >> would give the same result as: >> >> <g:HTMLPanel> >> <table> >> <tr> >> <td>Line1</td> >> <td>Line2</td> >> </tr> >> </table> >> </g:HTMLPanel> >> >> But in the first case, it generates this Java code: >> com.google.gwt.user.client.ui.Label f_Label3 = >> (com.google.gwt.user.client.ui.Label) >> GWT.create(com.google.gwt.user.client.ui.Label.class); >> com.google.gwt.user.client.ui.HorizontalPanel f_HorizontalPanel2 = >> (com.google.gwt.user.client.ui.HorizontalPanel) >> GWT.create(com.google.gwt.user.client.ui.HorizontalPanel.class); >> com.google.gwt.user.client.ui.Label f_Label5 = >> (com.google.gwt.user.client.ui.Label) >> GWT.create(com.google.gwt.user.client.ui.Label.class); >> com.google.gwt.user.client.ui.HorizontalPanel f_HorizontalPanel4 = >> (com.google.gwt.user.client.ui.HorizontalPanel) >> GWT.create(com.google.gwt.user.client.ui.HorizontalPanel.class); >> com.google.gwt.user.client.ui.VerticalPanel f_VerticalPanel1 = >> (com.google.gwt.user.client.ui.VerticalPanel) >> GWT.create(com.google.gwt.user.client.ui.VerticalPanel.class); >> >> f_Label3.setText("Line 1"); >> f_HorizontalPanel2.add(f_Label3); >> f_VerticalPanel1.add(f_HorizontalPanel2); >> f_Label5.setText("Line 2"); >> f_HorizontalPanel4.add(f_Label5); >> f_VerticalPanel1.add(f_HorizontalPanel4); >> >> and the second case, it generates: >> com.google.gwt.user.client.ui.HTMLPanel f_HTMLPanel1 = new >> com.google.gwt.user.client.ui.HTMLPanel("<table> <tr> <td>Line1</td> >> <td>Line2</td> </tr> </table>"); >> >> So am I right to think that I should never use widget inside UiBinder >> xml except if I have the attribute ui:field (in other words, except if >> I need it in the Java code)? >> >> Thanks, >> Pierre >> >> -- >> 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]<google-web-toolkit%[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]<google-web-toolkit%[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.
