First, give us your code for you .java and for your .ui.xml. I'll see what I can do for you, I also had some problems first time I tried this. Note that I'm using Gwt-Presenter in my example.
Christian On Wed, Feb 10, 2010 at 10:24 AM, Stefano Ciccarelli <[email protected]>wrote: > Solution #1 doesn't work for me. I get this error: > > Second attempt to set initializer for field "f_DialogBox1", from "new > com.google.gwt.user.client.ui.DialogBox(false, true)" to > "owner.thatsJustMe()" > > Hints or suggestions? > > > On Tue, Feb 9, 2010 at 5:44 PM, Thomas Broyer <[email protected]> wrote: > >> >> On Feb 9, 12:00 pm, Ovidiu Gheorghies <[email protected]> wrote: >> > Hello, >> > >> > The DialogBox API (http://google-web-toolkit.googlecode.com/svn/ >> > javadoc/2.0/com/google/gwt/user/client/ui/DialogBox.html) notes that a >> > DialogBox can be defined as a UIBinder template as follows: >> > >> > <g:DialogBox autoHide="true" modal="true"> >> > <g:caption><b>Caption text</b></g:caption> >> > <g:HTMLPanel> >> > Body text >> > <g:Button ui:field='cancelButton'>Cancel</g:Button> >> > <g:Button ui:field='okButton'>Okay</g:Button> >> > </g:HTMLPanel> >> > </g:DialogBox> >> > >> > What is the proper way of using this definition from Java code? >> > Supposing that the above definition is contained in >> > NotificationWindow.ui.xml, the following naive approach to >> > NotificationWindow.java does not work: >> > >> > public class NotificationWindow extends Composite { >> > private static NotificationWindowUiBinder uiBinder = >> > GWT.create(NotificationWindowUiBinder.class); >> > interface NotificationWindowUiBinder extends UiBinder<Widget, >> > NotificationWindow> {} >> > >> > @UiField DialogBox dialogBox; >> > >> > public NotificationWindow() { >> > initWidget(uiBinder.createAndBindUi(this)); >> > } >> > >> > public void show() { >> > dialogBox.show(); >> > } >> > >> > } >> > >> > If the EntryPoint-derived class calls: >> > >> > (new NotificationWindow()).show(); >> > >> > then the following exception is logged: >> > >> > java.lang.IllegalStateException: This widget's parent does not >> > implement HasWidgets >> > >> > How is the <g:DialogBox> definition from the DialogBox API used >> > correctly from Java code? >> >> There are two possibilities: inheriting DialogBox or having a >> DialogBox field (but then not inheriting a Widget). >> >> Solution #1: inheriting a DialogBox >> >> class NotificationWindow extends DialogBox { >> ... >> >> public NotificationWindow() { >> // we don't care about the returned value, it'll be 'this' >> uiBinder.createAndBindUi(this); >> } >> >> @UiFactory >> DialogBox thatsJustMe() { >> // UiBinder will call this to get a DialogBox instance >> // and this is the DialogBox instance we want to use >> return this; >> } >> >> ... >> } >> >> >> Solution #2: not inheriting DialogBox >> >> // Note: do NOT inherit Composite, Widget or UIObject! >> class NotificationWindow { >> ... >> >> private DialogBox dialogBox; >> >> public NotificationWindow() { >> dialogBox = uiBinder.createAndBind(this); >> } >> >> public void show() { >> dialogBox.show(); >> } >> >> ... >> } >> >> -- >> 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.
