FYI, I've tested this morning with the last night's build and now it works fine with sdm.
On Wed, Apr 1, 2015 at 9:10 PM Julien Dramaix <[email protected]> wrote: > > > 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 google-web-toolkit-contributors+unsubscribe@ >>>>> googlegroups.com. >>>>> 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 google-web-toolkit-contributors+unsubscribe@ >>>> googlegroups.com. >>>> 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%3D5Vc8ie%3D0FLghOP4TpvK83rBh4ZFZ2D80A07Nd%3Du4Bf6w%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
