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.

Reply via email to