> If you have JsExport on a class in the first compilation, it works fine
right?
Nope I doesn't work. Even in the first compilation I receive a "Uncaught
ReferenceError: jdramaix is not defined"

On Wed, Apr 1, 2015 at 8:15 PM 'Goktug Gokdogan' via GWT Contributors <
[email protected]> wrote:

> [+stalcup, +cromwellian]
>
> If you have JsExport on a class in the first compilation, it works fine
> right? I guess, it doesn't work only if you add JsExport after the first
> compilation?
>
> Last week we were suspecting exporting might not be working properly w/
> SDM. We need to write some incremental compilation test to make sure this
> works properly before 2.8.
>
>
> On Wed, Apr 1, 2015 at 5:27 AM, Julien Dramaix <[email protected]>
> wrote:
>
>> Thanks Goktug !
>>
>> That works better with GWT 2.8 indeed.
>>
>> However, it seems there is a bug with @JsExport and super dev mode in the
>> last snapshot. When I use sdm, the prototype of my JsType is correctly
>> defined (fields and function are defined with the right name) but the
>> constructor is not exported and I cannot instantiated my Java object from
>> Javascript.
>>
>> AgeSlider.java:
>>
>> @JsNamespace("jdramaix")
>> @JsType
>> public class AgeSlider {
>>
>>   public int age;
>>
>>   @JsExport
>>   public AgeSlider() {
>>   }
>>
>>    // other public methods are exported
>> }
>>
>> With sdm, in javascript, I'm not able to do: var slider = new
>> jdramaix.AgeSlider();
>>
>> By looking a bit in the javascript code generated by sdm, the part
>> exporting the constructor under AgeSlider is not present:
>> _ = provide('jdramaix');
>> _.AgeSlider = AgeSlider;
>>
>> That works fine with a normal compilation.
>>
>> Julien
>>
>>
>> On Wed, Apr 1, 2015 at 2:07 AM 'Goktug Gokdogan' via GWT Contributors <
>> [email protected]> wrote:
>>
>>> On Tue, Mar 31, 2015 at 2:30 PM, Julien Dramaix <
>>> [email protected]> wrote:
>>>
>>>> Dear GWT lovers,
>>>>
>>>> I've finally started to play with JsInterop in GWT 2.7 and mainly I'm
>>>> trying to use JsInterop in order to write polymer components.
>>>>
>>>> So far, I have two questions:
>>>>
>>>> 1. I'm using super dev mode and so I'm obliged to use
>>>> the CrossSiteIframeLinker. As the javascript code generated by GWT is
>>>> loaded in an iframe, the exported types are not accessible from the main
>>>> window (only from the iframe). The workaround I found to expose java type
>>>> from the main window is to prefix my namespace by *$wnd*
>>>>
>>>> @JsNamespace("$wnd.jdramaix")
>>>> public class AgeSliderImpl
>>>>
>>>> Isn't it a better way to do that ?
>>>>
>>>>
>>> Yes, in 2.7 you need to use $wnd to expose your code to main window. In
>>> GWT 2.8 snapshot, this is the default behavior, you don't need $wnd.
>>>
>>>
>>>> 2. I want to expose some java field of my class to javascript field.
>>>> I'm trying to use @JsProperty for this purpose but it seems not to work:
>>>>
>>>> @JsNamespace("$wnd.jdramaix")
>>>> public class AgeSliderImpl implements AgeSlider {
>>>>   public int age;
>>>>
>>>>   @Override
>>>>   public int getAge() {
>>>>     return age;
>>>>   }}
>>>>
>>>> @JsType
>>>> public interface AgeSlider {
>>>>   @JsProperty
>>>>   int getAge();
>>>>
>>>> }
>>>>
>>>> If I try to access the field in the javascript console,it is undefined:
>>>> > var slider = new jdramaix.AgeSliderImpl()
>>>> > slider.age
>>>> < undefined
>>>>
>>>> But the method getAge exists:
>>>> > slider.getAge
>>>> < function getAge_0_g$(){
>>>> <   return this.age_3_g$;
>>>> < }
>>>> Same problem if I rename the method to age(). slider.age is defined by
>>>> point to a function.
>>>>
>>>> Does @JsProperty work (at least when we export Java to Javascript) in
>>>> GWT 2.7. ? If so how to use it ?
>>>>
>>>>
>>> @JsProperty methods defined in @JsType that is implemented by concrete
>>> classes does not work with GWT 2.7 (basically the scenario in your code
>>> snippet), it doesn't generate the code with a javascript property
>>> setter/getters.
>>>
>>> In GWT 2.8 snapshot, javascript property setter/getter are still not
>>> implemented (yet) but instead you can use @JsType with concrete class and a
>>> public field, and you can skip the JsType interface completely.
>>>
>>> i.e.
>>>
>>> @JsType
>>> public class AgeSlider {
>>>   public int age;}
>>>
>>> if you want to export the constructor, don't forget to add @JsExport as
>>> well.
>>>
>>> Thanks
>>>>
>>>> Julien
>>>>
>>>>  --
>>>> You received this message because you are subscribed to the Google
>>>> Groups "GWT Contributors" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>> an email to
>>>> [email protected].
>>>> To view this discussion on the web visit
>>>> https://groups.google.com/d/msgid/google-web-toolkit-contributors/CABb_3%3D6WZanScYy1ZqHBR23yssh9uvDLWe%3DquGaiixcpOusBog%40mail.gmail.com
>>>> <https://groups.google.com/d/msgid/google-web-toolkit-contributors/CABb_3%3D6WZanScYy1ZqHBR23yssh9uvDLWe%3DquGaiixcpOusBog%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>>> .
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>
>>>  --
>>> You received this message because you are subscribed to the Google
>>> Groups "GWT Contributors" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected]
>>> .
>>> To view this discussion on the web visit
>>> https://groups.google.com/d/msgid/google-web-toolkit-contributors/CAN%3DyUA2CSorYH4oHFzGsVrRD1cfnDM1n_jEOJ4upOYyeukm4eQ%40mail.gmail.com
>>> <https://groups.google.com/d/msgid/google-web-toolkit-contributors/CAN%3DyUA2CSorYH4oHFzGsVrRD1cfnDM1n_jEOJ4upOYyeukm4eQ%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>> .
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>  --
>> You received this message because you are subscribed to the Google Groups
>> "GWT Contributors" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>>
> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/google-web-toolkit-contributors/CABb_3%3D6B1p%2BuAwuPjNW78dQCXJ0xuTQC2DJte1%2BfE2z58fm-vQ%40mail.gmail.com
>> <https://groups.google.com/d/msgid/google-web-toolkit-contributors/CABb_3%3D6B1p%2BuAwuPjNW78dQCXJ0xuTQC2DJte1%2BfE2z58fm-vQ%40mail.gmail.com?utm_medium=email&utm_source=footer>
>> .
>
>
>> For more options, visit https://groups.google.com/d/optout.
>>
>  --
> You received this message because you are subscribed to the Google Groups
> "GWT Contributors" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/google-web-toolkit-contributors/CAN%3DyUA2ity35giPe3UMq-axcWU3fj6BbKk7JFX74R0uRs8LCVw%40mail.gmail.com
> <https://groups.google.com/d/msgid/google-web-toolkit-contributors/CAN%3DyUA2ity35giPe3UMq-axcWU3fj6BbKk7JFX74R0uRs8LCVw%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups "GWT 
Contributors" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-web-toolkit-contributors/CABb_3%3D4zCC%2BvFq4NWysrE0kH-wf3f7iZ6ZDaXL7jK2X2nyqGHQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to