> 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.
