Oh no his solution #2 isn't like mine at all, lol, but anyway, do you really need @Inject ? There's nothing to inject in your example.
On Wed, Feb 10, 2010 at 11:11 AM, Christian Goudreau < [email protected]> wrote: > 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.
