Ok i see why , look at the source code of anchor : 
public static Anchor wrap(Element element) {
    // Assert that the element is attached.
    assert Document.get().getBody().isOrHasChild(element);

This element is not a child of the main Document .... So this wrap can't 
work

On Sunday, October 28, 2012 11:37:15 AM UTC-5, Hugues wrote:
>
> In fact it does not work :-/
>
> I don't understand. In my debug i see the correct element but the wrap 
> fail. I suppose the wrap fail because the element is not attached to the 
> main DOM. 
> Is it possible in gwt to wrap an element from an iframe as widget attached 
> to the main module ?
>
> Element currentElement = this.getElement();
> IFrameElement iframe = IFrameElement.as(currentElement);
>  Document iframeDocument = iframe.getContentDocument();
>  Element el= (Element) iframeDocument.getElementById("testiframe");
>      final Anchor testButton = Anchor.wrap(el);
>      testButton.addClickHandler(new ClickHandler() {
> public void onClick(ClickEvent event) {
> Window.alert("CLIIIICKKK ");
> }
> });
>
>
>
> On Sunday, October 28, 2012 2:40:22 AM UTC-5, Fabio wrote:
>>
>>  Well, if it works good for you...
>>
>> But if you created a ScriptElement with the function test equal to i.e. 
>> "function clickMe { window.alert("Click")}"
>> and then on the ButtonElement you set the value i.e. 
>> setValue("clickMe()") it worked as well....
>>
>> anyway
>>
>> you're welcome!!!!
>>
>> Il 28/10/2012 01:29, Hugues ha scritto:
>>  
>> Just to let you know i tried something like that : 
>> The wrap work perfectly with an element of the current dom but with an 
>> element i get from the iframe it does not work
>>
>>  Code sample :
>>
>>  IFrameElement iframe = IFrameElement.as(this.getElement());
>> Document iframeDocument = iframe.getContentDocument();
>> Element el = (Element) iframeDocument.getElementById("myhrefElement");
>> Anchor testButton = Anchor.wrap(el);
>> testButton.addClickHandler(new ClickHandler() {
>>  public void onClick(ClickEvent event) {
>>  Window.alert("CLIIIICKKK ");
>>  }
>> });
>>  
>>  By the way , thanks for your help
>>
>> On Saturday, October 27, 2012 4:58:16 PM UTC-5, Fabio wrote: 
>>>
>>>  EXACTLY
>>>
>>> get the Document, creaate a ButtonElement from the Document.
>>> But you must also create a ScriptElement and set the text of the 
>>> function and then call click from the ButtonElement
>>>
>>>
>>>
>>>
>>> Il 27/10/2012 23:48, Hugues Lara ha scritto:
>>>  
>>> So i should get my Document of my iframe. After i get my div element and 
>>> to this div element i add a child and this child is a ButtonElement ... 
>>> I can try that
>>>
>>> On Saturday, October 27, 2012 4:46:25 PM UTC-5, Fabio wrote: 
>>>>
>>>>  Hi Lara
>>>>
>>>> you can not replace the element with your button becasue your Button is 
>>>> a Widget
>>>> while the button that you want to put in there must be a ButtonElement
>>>>
>>>> why ?
>>>> because the Widget are used by GWT to translate that code into 
>>>> javascript.
>>>> Once translated in javascript work is done.
>>>> In your case you download a web page with the Frame, then google ALSO 
>>>> provides mechanism to manipulate html page and Javascript
>>>> so your html page now must be handled by a reverse engineering and 
>>>> threat that button as a ButtonElement
>>>>
>>>> is that clear ?
>>>>
>>>> Il 27/10/2012 23:38, Hugues Lara ha scritto:
>>>>  
>>>> To be honest i don't get it at all ... 
>>>> An other idea was to get the Document of the Iframe. That i got it , i 
>>>> even find the element i want by parsing the html. 
>>>> But i dunno how replace this Element by a GWT button attached to my 
>>>> main module ( I think it's necessary to show my popup ).
>>>>
>>>> Thanks,
>>>>
>>>> On Saturday, October 27, 2012 4:28:03 PM UTC-5, Fabio wrote: 
>>>>>
>>>>>  No you can't do that, but you have to take this other way:
>>>>>
>>>>> extending our target, you want to add a Widget, because your button is 
>>>>> a Widget, into a Document as javascript language provides.
>>>>> Infact you get a Document made by Elements. 
>>>>>
>>>>> So I think you have to use the method appendChild where the child is a 
>>>>> ButtonElement
>>>>>
>>>>> see
>>>>>
>>>>>  
>>>>> http://google-web-toolkit.googlecode.com/svn/javadoc/1.5/index.html?com/google/gwt/dom/client/ButtonElement.html
>>>>>
>>>>> so you have to simulate javascript.
>>>>>
>>>>> The Button you mean is a Widget and use to CREATE a javascript, in 
>>>>> that case everything has been already translated into javascript
>>>>>
>>>>>
>>>>> is that clear ?
>>>>>
>>>>> Il 27/10/2012 22:56, Hugues Lara ha scritto:
>>>>>  
>>>>> Hi, 
>>>>>
>>>>>  My goal is to set gwt button inside my iFrame. If I do a 
>>>>> RootPanel.get("my id").add(myButton) , it don't work because the id is 
>>>>> inside the iFrame.
>>>>> I find out how get the Document of the iframe and get the Div Element 
>>>>> but i still don't know how set a button on this div.
>>>>>
>>>>>  Thanks,
>>>>>
>>>>> On Saturday, October 27, 2012 3:38:59 PM UTC-5, Fabio wrote: 
>>>>>>
>>>>>>  Hi 
>>>>>>
>>>>>> did you add a ClickHandler ? it doesnt seems to implements a 
>>>>>> clickHandler
>>>>>>
>>>>>> bye
>>>>>>
>>>>>>
>>>>>> Il 27/10/2012 22:07, Hugues Lara ha scritto:
>>>>>>  
>>>>>> Hi, 
>>>>>>
>>>>>>  I am actually migrate a web application to GWT. In order to reuse 
>>>>>> the existing page i put them in frame. However i have to develop a new 
>>>>>> popup for one of them and i would like to let this popup attached to the 
>>>>>> main module.
>>>>>> Before i was parsing the html to get the element and with RootPanel 
>>>>>> attach a button. I can't do that anymore because it's in an Iframe.
>>>>>> So i try to fire an event on click inside the iFrame to get the 
>>>>>> current element and if it's the right button show the popup ...
>>>>>>
>>>>>>  The ONLOAD event work pretty well but the ONCLICK don't work at all 
>>>>>>
>>>>>>  my code sample : 
>>>>>>
>>>>>>  package com.exp.client;
>>>>>>
>>>>>>  import com.google.gwt.user.client.DOM;
>>>>>> import com.google.gwt.user.client.Event;
>>>>>> import com.google.gwt.user.client.ui.Frame;
>>>>>> import com.google.gwt.user.client.Window;
>>>>>>
>>>>>>  public class CustomFrame extends Frame {
>>>>>>   public CustomFrame(){
>>>>>>  sinkEvents(Event.ONCLICK);
>>>>>>  sinkEvents(Event.ONLOAD);
>>>>>>  setUrl("http://www.google.com"; <http://www.google.com>);
>>>>>>  setSize("900px","900px");
>>>>>>  }
>>>>>>   public void onBrowserEvent(Event event){
>>>>>>  super.onBrowserEvent(event);
>>>>>>         switch (DOM.eventGetType(event))
>>>>>>         {
>>>>>>         case Event.ONCLICK:
>>>>>>             Window.alert("ONCLICK : "+ 
>>>>>> event.getEventTarget().toString() );
>>>>>>             DOM.eventPreventDefault(event);
>>>>>>             break;
>>>>>>         case Event.ONLOAD:
>>>>>>         Window.alert("ONLOAD");
>>>>>>             DOM.eventPreventDefault(event);
>>>>>>             break;
>>>>>>         }
>>>>>>     }
>>>>>> }
>>>>>>  
>>>>>>  Thanks for your help
>>>>>> -- 
>>>>>> You received this message because you are subscribed to the Google 
>>>>>> Groups "Google Web Toolkit" group.
>>>>>> To view this discussion on the web visit 
>>>>>> https://groups.google.com/d/msg/google-web-toolkit/-/-_OuFX0mHJUJ.
>>>>>> 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.
>>>>>>
>>>>>>
>>>>>>   -- 
>>>>> You received this message because you are subscribed to the Google 
>>>>> Groups "Google Web Toolkit" group.
>>>>> To view this discussion on the web visit 
>>>>> https://groups.google.com/d/msg/google-web-toolkit/-/9ooi7wPMfIAJ.
>>>>> 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.
>>>>>
>>>>>
>>>>>   -- 
>>>> You received this message because you are subscribed to the Google 
>>>> Groups "Google Web Toolkit" group.
>>>> To view this discussion on the web visit 
>>>> https://groups.google.com/d/msg/google-web-toolkit/-/ThnSB9ylmsQJ.
>>>> 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.
>>>>
>>>>
>>>>   -- 
>>> You received this message because you are subscribed to the Google 
>>> Groups "Google Web Toolkit" group.
>>> To view this discussion on the web visit 
>>> https://groups.google.com/d/msg/google-web-toolkit/-/ZRNm0TfdPHMJ.
>>> 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.
>>>
>>>
>>>   -- 
>> You received this message because you are subscribed to the Google Groups 
>> "Google Web Toolkit" group.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msg/google-web-toolkit/-/9_ZN-cin6a8J.
>> 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.
>>
>>
>>  

-- 
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-web-toolkit/-/_9faTFjzfhwJ.
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