Going to forward to the fx experts.

On 2013-07-17, at 1:55 PM, TA Hubbard <tahubb...@fxmlguide.com> wrote:

> Dear Sirs;
> 
> A fundamental feature of JavaFX's FXML is scripting.  The process is simple; 
> add the <?language javascript?> 'processing instruction' to standard FXML 
> processing instructions (JavaFX import declarations or statements) then 
> script.
> 
> As you know, some of the scripting languages include JavaScript, JavaFX, and 
> DSL's such as Groovy, Clojure, etc.
> 
> Unfortunately, since build JDK8_91, if the above language processing 
> instruction is included within an FXML document, Nashorn produces FXMLLoader 
> _null pointer error_ messages during compilation with NetBeans (Windows 
> Vista).  Since JDK8_97, if nashorn.jar is manually included as a separate 
> library within the application, no null pointer error messages are produced 
> but we should not have to include a separate jar for FXML scripting.
> 
> On the other hand, with the nashorn.jar manually included, the following 
> sample button from Oracle's 'Introduction To FXML', works just fine:
> 
> <Button text="Click Me!" onAction="java.lang.System.out.println('You clicked 
> me!');"/>
> This prints "You clicked me!" to the console.
> 
> However, use of the <fx:script> tag to run a second sample from 'Introduction 
> To FXML' produces multiple error messages:
> <fx:script>
>    importClass(java.lang.System);
>    function handleButtonAction(event) {
>       System.out.println('You clicked me!');
>    }
> </fx:script>
> <Button text="Run JavaScript function by clicking" 
> onAction="handleButtonAction(event);"/>
> 
> The first error message produced is on JavaFX's own 'importClass' method, as 
> follows:
> ReferenceError: "importClass" is not defined in <eval> at line number 2 ... 
> (I have found no reference where importClass has been deprecated)
> 
> A second error message begins with the following:
> Caused by: javax.script.ScriptException: ReferenceError: "handleButtonAction" 
> is not defined in <eval> at line number 1 at 
> jdk.nashorn.api.scripting.NashornScriptEngine.throwAsScriptException(NashornScriptEngine.java:426)
>  ...
> 
> Finally, doing a simple JavaFX object method call within FXML produces error 
> messages on the following:
> <Button fx:id="vanish" text="This button should vanish" />
> <Button text="Press to remove the above button" 
> onAction="vanish.setVisible(false)"/>
> 
> One error message begins like this:
> Caused by: javax.script.ScriptException: ReferenceError: "vanish" is not 
> defined in <eval> at line number 1 at 
> jdk.nashorn.api.scripting.NashornScriptEngine.throwAsScriptException(NashornScriptEngine.java:426)
>  ...
> 
> I hope you can restore these capabilities soon with Nashorn since they are 
> central to advanced FXML scripting, and since they apparently worked well 
> with the other JavaFX JavaScript engine.  I was instructed to do a Jira on 
> this, but I will wait your response first.
> 
> Thank you.
> 
> TAH
> 
> 
> 

Reply via email to