Re: [jruby-user] JRubyFX
Rodrigo Botafogo <[email protected]> Wed, 29 Apr 2015 15:51:32 -0300
| Newsgroups | gmane.comp.lang.jruby.user |
|---|---|
| Message-ID | <CAAKc=GD2b46AtcsWWKLE0+7RgAHcS3oYhBiANvuvn9XMrogqiQ@mail.gmail.com> |
--047d7bd6bca8f54c510514e178a7 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Tom, No, this doesn=C2=B4t work. Could I do a require in my Ruby code somehow? require 'javafx.beans.value.ChangeListener' does not work as it is expecting a jar file, right? Where is the jar for ChangeListener? Thanks, 2015-04-29 15:36 GMT-03:00 Thomas E Enebo <[email protected]>: > I am less of a help for JS but if you see how WebView is defined above yo= u > can perhaps do he same thing for ChangeListener is your JS code is barfin= g > because it does not know what that type is: > > var ChangeListener =3D Java.type("javafx.beans.value.ChangeListener"); > > -Tom > > On Wed, Apr 29, 2015 at 1:32 PM, Rodrigo Botafogo < > [email protected]> wrote: > >> Hi Tom, >> >> Not sure I follow... so, the following function is defined inside a >> javascript file and not in a JRuby script. I can=C2=B4t do this implici= t >> coercion. I think I should load the ChangeListener interface and make i= t >> available to javascript. I=C2=B4m still learning all this, so I might j= ust be >> confused. If this is any help, I=C2=B4m just trying to follow the blog: >> https://blogs.oracle.com/nashorn/entry/porting_from_the_browser_to, but >> instead of using jjs, I=C2=B4m driving nashorn through JRuby. >> >> >> function WebViewWrapper(onload) { >> var This =3D this; >> var WebView =3D Java.type("javafx.scene.web.WebView"); >> var webview =3D new WebView(); >> >> This.webview =3D webview; >> This.engine =3D webview.engine; >> This.window =3D undefined; >> This.document =3D undefined; >> >> // Make sure the JavaScript is enabled. >> This.engine.javaScriptEnabled =3D true; >> >> // Complete initialization when page is loaded. >> This.engine.loadWorker.stateProperty().addListener(new >> ChangeListener() { >> changed: function(value, oldState, newState) { >> if (newState =3D=3D Worker.State.SUCCEEDED) { >> This.document =3D >> wrap(This.engine.executeScript("document")); >> This.window =3D wrap(This.engine.executeScript("window")= ); >> >> // Call users onload function. >> if (onload) { >> onload(This); >> } >> } >> } >> }); >> >> >> Thanks.... >> >> 2015-04-29 15:20 GMT-03:00 Thomas E Enebo <[email protected]>: >> >> javafx.beans.value.ChangeListener is an interface so with implicit >>> closure coercion you should be able to: >>> >>> >>> ```ruby >>> This.engine.load_worker.state_property.add_listener do |observable, >>> old_value, new_value| >>> #... >>> end >>> ``` >>> >>> -Tom >>> >>> >>> On Wed, Apr 29, 2015 at 11:42 AM, Rodrigo Botafogo < >>> [email protected]> wrote: >>> >>>> Hello.... >>>> >>>> Sorry if this isn=C2=B4t the right place to post questions about JRuby= FX. >>>> >>>> I=C2=B4m trying to write a JRubyFX application. I=C2=B4m following a = post from >>>> Oracle to try to learn JavaFX and JRubyFx. In the post, in a js file = there >>>> is the following lines: >>>> >>>> // Complete initialization when page is loaded. >>>> This.engine.loadWorker.stateProperty().addListener(new ChangeListene= r() { >>>> >>>> >>>> ChangeListener() is not found when I run the application. I understan= d >>>> that I should load javafx/beans, but I don=C2=B4t know how to do this = with >>>> JRubyFX. Can anybody help me here or point to the right list to ask t= his >>>> question? >>>> >>>> Thanks >>>> -- >>>> Rodrigo Botafogo >>>> >>>> >>>> >>>> >>> >>> >>> -- >>> blog: http://blog.enebo.com twitter: tom_enebo >>> mail: [email protected] >>> >> >> >> >> -- >> Rodrigo Botafogo >> >> >> >> > > > -- > blog: http://blog.enebo.com twitter: tom_enebo > mail: [email protected] > --=20 Rodrigo Botafogo --047d7bd6bca8f54c510514e178a7 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr">Tom,<div><br></div><div>No, this doesn=C2=B4t work.=C2=A0 = Could I do a require in my Ruby code somehow?=C2=A0</div><div><br></div><di= v>require 'javafx.beans.value.ChangeListener' does not work as it i= s expecting a jar file, right?=C2=A0 Where is the jar for ChangeListener?</= div><div><br></div><div><br></div><div>Thanks,</div></div><div class=3D"gma= il_extra"><br><div class=3D"gmail_quote">2015-04-29 15:36 GMT-03:00 Thomas = E Enebo <span dir=3D"ltr"><<a href=3D"mailto:[email protected]" target= =3D"_blank">[email protected]</a>></span>:<br><blockquote class=3D"gma= il_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-lef= t:1ex"><div dir=3D"ltr"><div><div>I am less of a help for JS but if you see= how WebView is defined above you can perhaps do he same thing for ChangeLi= stener is your JS code is barfing because it does not know what that type i= s:<br><br></div>var ChangeListener =3D Java.type("javafx.beans.value.C= hangeListener");<br><br></div>-Tom<br></div><div class=3D"HOEnZb"><div= class=3D"h5"><div class=3D"gmail_extra"><br><div class=3D"gmail_quote">On = Wed, Apr 29, 2015 at 1:32 PM, Rodrigo Botafogo <span dir=3D"ltr"><<a hre= f=3D"mailto:[email protected]" target=3D"_blank">rodrigo@rodrigob= otafogo.com</a>></span> wrote:<br><blockquote class=3D"gmail_quote" styl= e=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div di= r=3D"ltr">Hi Tom,<div><br></div><div>Not sure I follow... so, the following= function is defined inside a javascript file and not in a JRuby script.=C2= =A0 I can=C2=B4t do this implicit coercion.=C2=A0 I think I should load the= ChangeListener interface and make it available to javascript.=C2=A0 I=C2= =B4m still learning all this, so I might just be confused.=C2=A0 If this is= any help, I=C2=B4m just trying to follow the blog:=C2=A0<a href=3D"https:/= /blogs.oracle.com/nashorn/entry/porting_from_the_browser_to" target=3D"_bla= nk">https://blogs.oracle.com/nashorn/entry/porting_from_the_browser_to</a>,= but instead of using jjs, I=C2=B4m driving nashorn through JRuby.</div><di= v><br></div><div><br></div><div><div>function WebViewWrapper(onload) {</div= ><div>=C2=A0 =C2=A0 var This =3D this;</div><div>=C2=A0 =C2=A0 var WebView = =3D Java.type("javafx.scene.web.WebView");</div><div>=C2=A0 =C2= =A0 var webview =3D new WebView();</div><div>=C2=A0 =C2=A0=C2=A0</div><div>= =C2=A0 =C2=A0 This.webview =3D webview;</div><div>=C2=A0 =C2=A0 This.engine= =3D webview.engine;</div><div>=C2=A0 =C2=A0 This.window =3D undefined;</di= v><div>=C2=A0 =C2=A0 This.document =3D undefined;</div><div>=C2=A0 =C2=A0= =C2=A0</div><div>=C2=A0 =C2=A0 // Make sure the JavaScript is enabled.</div= ><div>=C2=A0 =C2=A0 This.engine.javaScriptEnabled =3D true;</div><span><div= >=C2=A0 =C2=A0=C2=A0</div><div>=C2=A0 =C2=A0 // Complete initialization whe= n page is loaded.</div><div>=C2=A0 =C2=A0 This.engine.loadWorker.statePrope= rty().addListener(new ChangeListener() {</div></span><div>=C2=A0 =C2=A0 =C2= =A0 =C2=A0 changed: function(value, oldState, newState) {</div><div>=C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 if (newState =3D=3D Worker.State.SUCCEED= ED) {</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Thi= s.document =3D wrap(This.engine.executeScript("document"));</div>= <div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 This.window = =3D wrap(This.engine.executeScript("window"));</div><div>=C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=C2=A0</div><div>=C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 // Call users onload function= .</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 if (onl= oad) {</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 onload(This);</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 }</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = }</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 }</div><div>=C2=A0 =C2=A0 });</div>= </div><div><br></div><div><br></div><div>Thanks....</div></div><div class= =3D"gmail_extra"><br><div class=3D"gmail_quote">2015-04-29 15:20 GMT-03:00 = Thomas E Enebo <span dir=3D"ltr"><<a href=3D"mailto:[email protected]"= target=3D"_blank">[email protected]</a>></span>:<div><div><br><blockq= uote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc = solid;padding-left:1ex"><div dir=3D"ltr"><div><div><div>javafx.beans.value.= ChangeListener is an interface so with implicit closure coercion you should= be able to:<br></div><div><br><br></div>```ruby<br></div>This.engine.load_= worker.state_property.add_listener do |<code>observable, old_value, new_val= ue|<br>=C2=A0 #...<br></code></div><code>end<br></code><div><div>```<br><br= ></div><div>-Tom<br><br></div></div></div><div class=3D"gmail_extra"><div><= div><br><div class=3D"gmail_quote">On Wed, Apr 29, 2015 at 11:42 AM, Rodrig= o Botafogo <span dir=3D"ltr"><<a href=3D"mailto:rodrigo@rodrigobotafogo.= com" target=3D"_blank">[email protected]</a>></span> wrote:<br= ><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1= px #ccc solid;padding-left:1ex"><div dir=3D"ltr">Hello....=C2=A0<div><br></= div><div>Sorry if this isn=C2=B4t the right place to post questions about J= RubyFX. =C2=A0</div><div><br></div><div>I=C2=B4m trying to write a JRubyFX = application.=C2=A0 I=C2=B4m following a post from Oracle to try to learn Ja= vaFX and JRubyFx.=C2=A0 In the post, in a js file there is the following li= nes:</div><div><br></div><div><pre style=3D"margin-top:10px;margin-bottom:1= 0px;color:rgb(85,85,85);font-size:12px;line-height:18px"> // Complete initi= alization when page is loaded. This.engine.loadWorker.stateProperty().addListener(new ChangeListener()= =C2=A0{</pre><pre style=3D"margin-top:10px;margin-bottom:10px;color:rgb(85,= 85,85);font-size:12px;line-height:18px"><br></pre><div>ChangeListener() is = not found when I run the application.=C2=A0 I understand that I should load= javafx/beans, but I don=C2=B4t know how to do this with JRubyFX.=C2=A0 Can= anybody help me here or point to the right list to ask this question?</div= ><div><br></div><div>Thanks</div><span><font color=3D"#888888">-- <br><div>= <div dir=3D"ltr">Rodrigo Botafogo<div><br><br><div><br></div></div></div></= div> </font></span></div></div> </blockquote></div><br><br clear=3D"all"><br></div></div><span><font color= =3D"#888888">-- <br><div>blog: <a href=3D"http://blog.enebo.com" target=3D"= _blank">http://blog.enebo.com</a>=C2=A0 =C2=A0 =C2=A0=C2=A0 twitter: tom_en= ebo<br>mail: <a href=3D"mailto:[email protected]" target=3D"_blank">tom.e= [email protected]</a></div> </font></span></div> </blockquote></div></div></div><span><font color=3D"#888888"><br><br clear= =3D"all"><div><br></div>-- <br><div><div dir=3D"ltr">Rodrigo Botafogo<div><= br><br><div><br></div></div></div></div> </font></span></div> </blockquote></div><br><br clear=3D"all"><br>-- <br><div>blog: <a href=3D"h= ttp://blog.enebo.com" target=3D"_blank">http://blog.enebo.com</a>=C2=A0 =C2= =A0 =C2=A0=C2=A0 twitter: tom_enebo<br>mail: <a href=3D"mailto:tom.enebo@gm= ail.com" target=3D"_blank">[email protected]</a></div> </div> </div></div></blockquote></div><br><br clear=3D"all"><div><br></div>-- <br>= <div class=3D"gmail_signature"><div dir=3D"ltr">Rodrigo Botafogo<div><br><b= r><div><br></div></div></div></div> </div> --047d7bd6bca8f54c510514e178a7--