In your code, for solution #1, you need to extends DialogBox, you forgot that.
For my solution, I only encapsulate DialogBox within an HTMLPanel an then I added two public function for showing and hiding my dialogbox. (Solution #2) Btw, I found solution #2 less intrusive and more simple. On Wed, Feb 10, 2010 at 10:58 AM, Stefano Ciccarelli <[email protected]>wrote: > Sorry, I was talking about Thomas Broyer solution #1. > Your code (pastebin) is what I was already doing. > > BTW this is the .java: > > public final class AboutDialogDisplay { > @Inject > private AboutDialogDisplay() { > uiBinder.createAndBindUi(this); > } > > @UiFactory > DialogBox thatsJustMe() { > return this; > } > } > > And this is the .ui.xml: > <g:DialogBox animationEnabled="true" glassEnabled="true" modal="true"> > ...... > </g:DialogBox> > > Thanks > Stefano > > > > On Wed, Feb 10, 2010 at 4:46 PM, Christian Goudreau < > [email protected]> wrote: > >> 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]<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.
