From nbpratt at gmail.com Thu Jan 1 02:45:11 2015 From: nbpratt at gmail.com (Nick Pratt) Date: Wed, 31 Dec 2014 21:45:11 -0500 Subject: Building Openjfx on Centos 6.6 In-Reply-To: <54A46862.7030709@Oracle.com> References: <41420E9B-67A0-4B90-A0D7-A8116A3A970E@oracle.com> <54A46862.7030709@Oracle.com> Message-ID: Thanks for the help. So now I can invoke Java without the link errors, but my JavaFX app isnt appearing on the attached TFT screen ( Note: I can get 'x' to appear on the the Pi TFT screen by setting the FRAMEBUFFER variable prior to invoking startx so I know my TFT screen is setup and the right Kernel mods are enabled and applied) Notwithstanding the error messages below, am I invoking Java correctly here : (based on the comments in https://javafx-jira.kenai.com/browse/RT-36960 ) pi at raspberrypi ~ $ java -Djavafx.platform=monocle -Dmonocle.screen.fb="/dev/fb1" -Ddispman.display=0 -Ddispman.layer=1 -jar JavaFXApp.jar Udev: Failed to write to /sys/class/input/mice/uevent Check that you have permission to access input devices Udev: Failed to write to /sys/class/input/event0/uevent Check that you have permission to access input devices Udev: Failed to write to /sys/class/input/input0/uevent Check that you have permission to access input devices Udev: Failed to write to /sys/class/input/mouse0/uevent Check that you have permission to access input devices If I run the above command as sudo root, then I dont see the errors printed, but still nothing on the TFT screen. Regards Nick On Wed, Dec 31, 2014 at 4:19 PM, David Hill wrote: > > Nick found a good one, took me a while to find the obvious :-p > > The UnsatisfiedLinkError was caused by old ARM JFX jars that were not > overriden when he copied the new bits into the JDK. > > On ARM we have a split set of jars for FX that we ship, but when we build, > we only build the single jfxrt.jar like the desktop. The split is post > build packaging. So Nick was mixing old and new jars, which is what the > Wiki told him to do. Doh. > > I updated the wiki for OpenJFX building and cross building with some > clarifications, notes and such, so hopefully the next solider will not find > so many mines. > > Dave > > On 12/29/14, 9:46 PM, Nick Pratt wrote: > >> So I made some progress here: >> >> I had installed Ubuntu 14.x 64-bit version. Once I installed the >> ia32-libs >> (replacement versions for Ubuntu 14 since ia32-libs) isnt available >> anymore, I got the ARM HF to build. I installed on my Pi, but Im getting >> link errors when I try and run a JFX program: >> >> java -Djavafx.platform=monocle -Dmonocle.screen.fb=/dev/fb1 -jar >> JavaFXApp.jar >> >> Exception in thread "main" java.lang.reflect.InvocationTargetException >> >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >> >> at >> sun.reflect.NativeMethodAccessorImpl.invoke( >> NativeMethodAccessorImpl.java:62) >> >> at >> sun.reflect.DelegatingMethodAccessorImpl.invoke( >> DelegatingMethodAccessorImpl.java:43) >> >> at java.lang.reflect.Method.invoke(Method.java:483) >> >> at sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:767) >> >> Caused by: java.lang.RuntimeException: java.lang.UnsatisfiedLinkError: >> com.sun.glass.ui.monocle.linux.Udev._open()J >> >> at com.sun.javafx.tk.quantum.QuantumToolkit.startup( >> QuantumToolkit.java:296) >> >> at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:216) >> >> at >> com.sun.javafx.application.LauncherImpl.startToolkit( >> LauncherImpl.java:653) >> >> at >> com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs( >> LauncherImpl.java:314) >> >> at >> com.sun.javafx.application.LauncherImpl.launchApplication( >> LauncherImpl.java:305) >> >> ... 5 more >> >> Caused by: java.lang.UnsatisfiedLinkError: >> com.sun.glass.ui.monocle.linux.Udev._open()J >> >> at com.sun.glass.ui.monocle.linux.Udev._open(Native Method) >> >> at com.sun.glass.ui.monocle.linux.Udev.(Udev.java:68) >> >> at com.sun.glass.ui.monocle.linux.Udev.getInstance(Udev.java:54) >> >> at >> com.sun.glass.ui.monocle.linux.LinuxInputDeviceRegistry.( >> LinuxInputDeviceRegistry.java:77) >> >> at >> com.sun.glass.ui.monocle.linux.LinuxPlatform.createInputDeviceRegistry( >> LinuxPlatform.java:19) >> >> at >> com.sun.glass.ui.monocle.NativePlatform.getInputDeviceRegistry( >> NativePlatform.java:58) >> >> at >> com.sun.glass.ui.monocle.MonocleApplication.( >> MonocleApplication.java:78) >> >> at >> com.sun.glass.ui.monocle.MonoclePlatformFactory.createApplication( >> MonoclePlatformFactory.java:45) >> >> at com.sun.glass.ui.Application.run(Application.java:145) >> >> at com.sun.javafx.tk.quantum.QuantumToolkit.startup( >> QuantumToolkit.java:281) >> >> ... 9 more >> >> >> >> So then I figured I try and get an Ubuntu 12.x 32-bit VM up and running >> and >> use that for a OpenJFX build since this is mentioned in the OpenJFX wiki. >> However, a clean install cant run sudo apt-get update due to missing >> package definitions - have Ubuntu (or whoever maintains this set of repos) >> removed the older 12.x packages (or started to)? I cant get gcc installed >> or updated because of this - and this is a fresh install direct from the >> Ubuntu 12.0.4 .iso >> >> On a related note, its not clear to me what Im supposed to do after >> compiling OpenJFX - what needs to be installed and where does it need to >> go >> - JAVA_HOME/jre/lib ? (just replace everything in there?) >> >> >> >> On Sun, Dec 28, 2014 at 9:11 PM, Morris Meyer >> wrote: >> >> What JDK are you using? That looks like an older version of the String >>> class. Gradle 1.8 is recommended. >>> >>> --mm >>> >>> >>> On Dec 28, 2014, at 7:35 PM, Nick Pratt wrote: >>>> >>>> Does anyone have any tips on getting Openjfx (latest source as of >>>> 2014-12-28 19:00 EST) to build on a Centos 6.6 box? >>>> >>>> Im following the wiki for Linux builds and grabbed Gradle 1.8 (does the >>>> latest 2.2 work?) but Im failing to build with the following error: >>>> >>>> [work at nyprod1 rt]# /opt/gradle/bin/gradle >>>> >>>> :buildSrc:generateGrammarSource UP-TO-DATE >>>> >>>> :buildSrc:compileJava UP-TO-DATE >>>> >>>> :buildSrc:compileGroovy UP-TO-DATE >>>> >>>> :buildSrc:processResources UP-TO-DATE >>>> >>>> :buildSrc:classes UP-TO-DATE >>>> >>>> :buildSrc:jar UP-TO-DATE >>>> >>>> :buildSrc:assemble UP-TO-DATE >>>> >>>> :buildSrc:compileTestJava UP-TO-DATE >>>> >>>> :buildSrc:compileTestGroovy UP-TO-DATE >>>> >>>> :buildSrc:processTestResources UP-TO-DATE >>>> >>>> :buildSrc:testClasses UP-TO-DATE >>>> >>>> :buildSrc:test UP-TO-DATE >>>> >>>> :buildSrc:check UP-TO-DATE >>>> >>>> :buildSrc:build UP-TO-DATE >>>> >>>> >>>> FAILURE: Build failed with an exception. >>>> >>>> >>>> * Where: >>>> >>>> Script '/work/WorkingCopies/rt/buildSrc/linux.gradle' line: 78 >>>> >>>> >>>> * What went wrong: >>>> >>>> A problem occurred evaluating script. >>>> >>>> Cannot invoke method split() on null object >>>>> >>>> >>>> * Try: >>>> >>>> Run with --stacktrace option to get the stack trace. Run with --info or >>>> --debug option to get more log output. >>>> >>>> >>>> BUILD FAILED >>>> >>>> >>>> Total time: 8.96 secs >>>> >>>> >>>> If anyone has any tips or suggestions to get this compiling on Centos >>>> 6.x >>>> they would be most appreciated. >>>> >>> > > -- > David Hill > Java Embedded Development > > "A man's feet should be planted in his country, but his eyes should survey > the world." > -- George Santayana (1863 - 1952) > > From j.kapitza at schwarze-allianz.de Thu Jan 1 16:55:42 2015 From: j.kapitza at schwarze-allianz.de (Jens Kapitza) Date: Thu, 01 Jan 2015 17:55:42 +0100 Subject: Building Openjfx on Centos 6.6 In-Reply-To: References: <54A28F1D.3020404@schwarze-allianz.de> Message-ID: <54A57C0E.6040800@schwarze-allianz.de> Am 30.12.2014 um 13:37 schrieb Nick Pratt: > Thanks - Do I have to use OpenJDK or will the latest Oracle JDK (8u25 > at time of writing) work? > I've read that Oracle (for ARM 8u6 - as far as i can remember) not work without removing jfxrt.jar file. i would use OpenJDK there are ubuntu or debian packages. (i do not know if there is a ARM version) (for Rasbian PI) Both works. -- Jens Kapitza > Nick > > On Tue, Dec 30, 2014 at 6:40 AM, Jens Kapitza > > > wrote: > > Hi Nick, > > i've read you found a solution, i had the same Problem (linux.grandle) > > in build folder there were some empty build files. as far as i can > remember linux_tools.... > the script tries to find cflags and linker options but there is an > empty file (i've just deleted this file, clean rebuild works) > > > the error with grandle 1.8 was behind this line 78 ^^ > > > > for the link errors; have you copied the libs (.so) files into > your openjdk build (after the build there is a sdk folder with > libs and jar) > > the so file have to be in the openjdk lib folder or (i think > should work somewhere below /usr/lib > > > -- > Jens Kapitza > > Am 29.12.2014 um 01:35 schrieb Nick Pratt: > > Does anyone have any tips on getting Openjfx (latest source as of > 2014-12-28 19:00 EST) to build on a Centos 6.6 box? > > Im following the wiki for Linux builds and grabbed Gradle 1.8 > (does the > latest 2.2 work?) but Im failing to build with the following > error: > > [work at nyprod1 rt]# /opt/gradle/bin/gradle > > :buildSrc:generateGrammarSource UP-TO-DATE > > :buildSrc:compileJava UP-TO-DATE > > :buildSrc:compileGroovy UP-TO-DATE > > :buildSrc:processResources UP-TO-DATE > > :buildSrc:classes UP-TO-DATE > > :buildSrc:jar UP-TO-DATE > > :buildSrc:assemble UP-TO-DATE > > :buildSrc:compileTestJava UP-TO-DATE > > :buildSrc:compileTestGroovy UP-TO-DATE > > :buildSrc:processTestResources UP-TO-DATE > > :buildSrc:testClasses UP-TO-DATE > > :buildSrc:test UP-TO-DATE > > :buildSrc:check UP-TO-DATE > > :buildSrc:build UP-TO-DATE > > > FAILURE: Build failed with an exception. > > > * Where: > > Script '/work/WorkingCopies/rt/buildSrc/linux.gradle' line: 78 > > > * What went wrong: > > A problem occurred evaluating script. > > Cannot invoke method split() on null object > > > * Try: > > Run with --stacktrace option to get the stack trace. Run with > --info or > --debug option to get more log output. > > > BUILD FAILED > > > Total time: 8.96 secs > > > If anyone has any tips or suggestions to get this compiling on > Centos 6.x > they would be most appreciated. > > > From j.kapitza at schwarze-allianz.de Thu Jan 1 17:18:06 2015 From: j.kapitza at schwarze-allianz.de (Jens Kapitza) Date: Thu, 01 Jan 2015 18:18:06 +0100 Subject: Building Openjfx on Centos 6.6 In-Reply-To: References: <54A28F1D.3020404@schwarze-allianz.de> Message-ID: <54A5814E.4030201@schwarze-allianz.de> Am 30.12.2014 um 14:16 schrieb Nick Pratt: > Ok, I setup a fresh Ubuntu 12.0.4 server install on a VM (32 bit this > time), installed Gradle 1.8, Oracle JDK 1.8u25 (x86 version, removed > the existing jfxrt.jar), grabbed all the latest OpenJFX source and > Pi/Arm tool chain and rebuilt. I copied the resulting contents of > ./rt/build/armv6hf-sdk/rt over the top of JDK_HOME/jre/ on my Pi, but > I'm still hitting a link error when running a JavaFX app: > I've testet this some days ago; you have to remove some more jars. || |rm| |-f $JAVA_HOME||/jre/lib/ext/jfx||*jar $JAVA_HOME||/jre/lib/arm/libjavafx_font_t2k||.so| https://wiki.openjdk.java.net/display/OpenJFX/Cross+Building+for+ARM+Hard+Float > > pi at raspberrypi ~ $ java -jar JavaFXApp.jar > > Exception in thread "main" java.lang.reflect.InvocationTargetException > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > > at java.lang.reflect.Method.invoke(Method.java:483) > > at sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:767) > > Caused by: java.lang.RuntimeException: java.lang.UnsatisfiedLinkError: > com.sun.glass.ui.monocle.linux.Udev._open()J > > at > com.sun.javafx.tk.quantum.QuantumToolkit.startup(QuantumToolkit.java:296) > > at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:216) > > at > com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:653) > > at > com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:314) > > at > com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:305) > > ... 5 more > > Caused by: java.lang.UnsatisfiedLinkError: > com.sun.glass.ui.monocle.linux.Udev._open()J > > at com.sun.glass.ui.monocle.linux.Udev._open(Native Method) > > at com.sun.glass.ui.monocle.linux.Udev.(Udev.java:68) > > at com.sun.glass.ui.monocle.linux.Udev.getInstance(Udev.java:54) > > at > com.sun.glass.ui.monocle.linux.LinuxInputDeviceRegistry.(LinuxInputDeviceRegistry.java:77) > > at > com.sun.glass.ui.monocle.linux.LinuxPlatform.createInputDeviceRegistry(LinuxPlatform.java:19) > > at > com.sun.glass.ui.monocle.NativePlatform.getInputDeviceRegistry(NativePlatform.java:58) > > at > com.sun.glass.ui.monocle.MonocleApplication.(MonocleApplication.java:78) > > at > com.sun.glass.ui.monocle.MonoclePlatformFactory.createApplication(MonoclePlatformFactory.java:45) > > at com.sun.glass.ui.Application.run(Application.java:145) > > at > com.sun.javafx.tk.quantum.QuantumToolkit.startup(QuantumToolkit.java:281) > > ... 9 more > > pi at raspberrypi~ $which java > > /opt/java/bin/java > > > I look at a couple of libs within the ./jre/lib/arm folder (one I > replaced, one original): > > pi at raspberrypi/opt/java/jre/lib/arm $file libjava.so > > libjava.so: ELF 32-bit LSB shared object, ARM, version 1 (SYSV), > dynamically linked, > BuildID[sha1]=0x85ac21c4b5e873e5ed15d80b0e64fb4c38122e8f, not stripped > > pi at raspberrypi /opt/java/jre/lib/arm $ file libjavafx_iio.so > > libjavafx_iio.so: ELF 32-bit LSB shared object, ARM, version 1 (SYSV), > dynamically linked, > BuildID[sha1]=0xd4b0794ac7451d58e5bf2ab6d8c856b2aa0005e5, not stripped > > > So the latter looks correct (the former was supplied by Oracle) > > My C knowledge is extremely rusty (like 15 years old), and that was > mostly on MS Windows - how do I check which shared lib contains the > com.sun.glass.ui.monocle.linux.Udev._open()J method? > > Perhaps this is a gcc/link problem - did I use a different version of > the compiler than I was supposed to and my version has mangled things > differently, or did I install all the .so files in the wrong place (I > put them all in /opt/java/jre/lib/arm): > > pi at raspberrypi /opt/java/jre/lib/arm $ ls -la | grep "Dec 30" > > drwxr-xr-x 12 pi pi 4096 Dec 30 07:46 .. > > -rwxrwxr-x 1 pi pi 61200 Dec 30 07:54 libdecora_sse.so > > -rwxr-xr-x 1 pi pi 134489 Dec 30 07:54 libfxplugins.so > > -rwxrwxr-x 1 pi pi 31428 Dec 30 07:54 libglass_monocle.so > > -rwxrwxr-x 1 pi pi 15946 Dec 30 07:54 libglass_monocle_x11.so > > -rwxrwxr-x 1 pi pi 193850 Dec 30 07:54 libglass.so > > -rwxr-xr-x 1 pi pi 1530711 Dec 30 07:54 libgstreamer-lite.so > > -rwxrwxr-x 1 pi pi 23301 Dec 30 07:54 libjavafx_font_freetype.so > > -rwxrwxr-x 1 pi pi 20564 Dec 30 07:54 libjavafx_font_pango.so > > -rwxrwxr-x 1 pi pi 14950 Dec 30 07:54 libjavafx_font.so > > -rwxrwxr-x 1 pi pi 218614 Dec 30 07:54 libjavafx_iio.so > > -rwxr-xr-x 1 pi pi 224345 Dec 30 07:54 libjfxmedia.so > > -rwxr-xr-x 1 pi pi 30879536 Dec 30 07:54 libjfxwebkit.so > > -rwxrwxr-x 1 pi pi 42591 Dec 30 07:54 libprism_common.so > > -rwxrwxr-x 1 pi pi 59640 Dec 30 07:54 libprism_es2_eglfb.so > > -rwxrwxr-x 1 pi pi 54149 Dec 30 07:54 libprism_es2_monocle.so > > -rwxrwxr-x 1 pi pi 56508 Dec 30 07:54 libprism_sw.so > > > *Compile machine (Ubuntu 12 ISO):* > > @ubuntu:~/work/rt/build/armv6hf-sdk/rt$ uname -a > > Linux ubuntu 3.13.0-43-generic #72~precise1-Ubuntu SMP Tue Dec 9 > 12:14:42 UTC 2014 i686 i686 i386 GNU/Linux > > @ubuntu:~/work/rt/build/armv6hf-sdk/rt$ gcc --version > > gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3 > > @ubuntu:~/work/rt/build/armv6hf-sdk/rt$ lsb_release -a > > No LSB modules are available. > > Distributor ID:Ubuntu > > Description:Ubuntu 12.04.5 LTS > > Release:12.04 > > Codename:precise > > > On Tue, Dec 30, 2014 at 6:40 AM, Jens Kapitza > > > wrote: > > Hi Nick, > > i've read you found a solution, i had the same Problem (linux.grandle) > > in build folder there were some empty build files. as far as i can > remember linux_tools.... > the script tries to find cflags and linker options but there is an > empty file (i've just deleted this file, clean rebuild works) > > > the error with grandle 1.8 was behind this line 78 ^^ > > > > for the link errors; have you copied the libs (.so) files into > your openjdk build (after the build there is a sdk folder with > libs and jar) > > the so file have to be in the openjdk lib folder or (i think > should work somewhere below /usr/lib > > > -- > Jens Kapitza > > Am 29.12.2014 um 01:35 schrieb Nick Pratt: > > Does anyone have any tips on getting Openjfx (latest source as of > 2014-12-28 19:00 EST) to build on a Centos 6.6 box? > > Im following the wiki for Linux builds and grabbed Gradle 1.8 > (does the > latest 2.2 work?) but Im failing to build with the following > error: > > [work at nyprod1 rt]# /opt/gradle/bin/gradle > > :buildSrc:generateGrammarSource UP-TO-DATE > > :buildSrc:compileJava UP-TO-DATE > > :buildSrc:compileGroovy UP-TO-DATE > > :buildSrc:processResources UP-TO-DATE > > :buildSrc:classes UP-TO-DATE > > :buildSrc:jar UP-TO-DATE > > :buildSrc:assemble UP-TO-DATE > > :buildSrc:compileTestJava UP-TO-DATE > > :buildSrc:compileTestGroovy UP-TO-DATE > > :buildSrc:processTestResources UP-TO-DATE > > :buildSrc:testClasses UP-TO-DATE > > :buildSrc:test UP-TO-DATE > > :buildSrc:check UP-TO-DATE > > :buildSrc:build UP-TO-DATE > > > FAILURE: Build failed with an exception. > > > * Where: > > Script '/work/WorkingCopies/rt/buildSrc/linux.gradle' line: 78 > > > * What went wrong: > > A problem occurred evaluating script. > > Cannot invoke method split() on null object > > > * Try: > > Run with --stacktrace option to get the stack trace. Run with > --info or > --debug option to get more log output. > > > BUILD FAILED > > > Total time: 8.96 secs > > > If anyone has any tips or suggestions to get this compiling on > Centos 6.x > they would be most appreciated. > > > From mo.chicharro at oracle.com Fri Jan 2 13:30:19 2015 From: mo.chicharro at oracle.com (Moises Chicharro) Date: Fri, 2 Jan 2015 13:30:19 +0000 Subject: TitledPane background color In-Reply-To: References: Message-ID: titled-pane .content { -fx-background-color: green; } Cheers, Mo > On 25 Dec 2014, at 23:13, Peter Penzov wrote: > > Hi All, > I have a question how to change TitledPane background color. I tested > this code: > > public class MainApp extends Application { > > @Override > public void start(Stage stage) throws Exception { > > TitledPane pane = new TitledPane("Title", null); > pane.setStyle("-fx-focus-color: transparent; -fx-background-color: > green;"); > pane.setCollapsible(false); > pane.setPrefSize(300, 500); > > > Scene scene = new Scene(pane); > > stage.setTitle("JavaFX and Maven"); > stage.setScene(scene); > stage.show(); > } > > public static void main(String[] args) { > launch(args); > } > } > > I tried to set the background color to green but when I run the code the > background color is gray. What is the proper way to change the background > color of the TitledPane body? > > BR, > Peter From David.Hill at Oracle.com Fri Jan 2 15:05:17 2015 From: David.Hill at Oracle.com (David Hill) Date: Fri, 02 Jan 2015 10:05:17 -0500 Subject: Building Openjfx on Centos 6.6 In-Reply-To: <54A5814E.4030201@schwarze-allianz.de> References: <54A28F1D.3020404@schwarze-allianz.de> <54A5814E.4030201@schwarze-allianz.de> Message-ID: <54A6B3AD.4070605@Oracle.com> On 1/1/15, 12:18 PM, Jens Kapitza wrote: > > Am 30.12.2014 um 14:16 schrieb Nick Pratt: >> Ok, I setup a fresh Ubuntu 12.0.4 server install on a VM (32 bit this time), installed Gradle 1.8, Oracle JDK 1.8u25 (x86 version, removed the existing jfxrt.jar), grabbed all the latest OpenJFX source and Pi/Arm tool chain and rebuilt. I copied the resulting contents of ./rt/build/armv6hf-sdk/rt over the top of JDK_HOME/jre/ on my Pi, but I'm still hitting a link error when running a JavaFX app: >> > I've testet this some days ago; > > you have to remove some more jars. > > || > |rm| |-f $JAVA_HOME||/jre/lib/ext/jfx||*jar $JAVA_HOME||/jre/lib/arm/libjavafx_font_t2k||.so| This was added to to wiki this week as I worked to figure out what was happening. https://wiki.openjdk.java.net/display/OpenJFX/Cross+Building+for+ARM+Hard+Float Also added, on the Pi we need you to use 'sudo java ...' because of the permissions of udev and the devices that we need to read. Dave > > https://wiki.openjdk.java.net/display/OpenJFX/Cross+Building+for+ARM+Hard+Float >> >> pi at raspberrypi ~ $ java -jar JavaFXApp.jar >> >> Exception in thread "main" java.lang.reflect.InvocationTargetException >> >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >> >> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) >> >> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >> >> at java.lang.reflect.Method.invoke(Method.java:483) >> >> at sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:767) >> >> Caused by: java.lang.RuntimeException: java.lang.UnsatisfiedLinkError: com.sun.glass.ui.monocle.linux.Udev._open()J >> >> at com.sun.javafx.tk.quantum.QuantumToolkit.startup(QuantumToolkit.java:296) >> >> at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:216) >> >> at com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:653) >> >> at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:314) >> >> at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:305) >> >> ... 5 more >> >> Caused by: java.lang.UnsatisfiedLinkError: com.sun.glass.ui.monocle.linux.Udev._open()J >> >> at com.sun.glass.ui.monocle.linux.Udev._open(Native Method) >> >> at com.sun.glass.ui.monocle.linux.Udev.(Udev.java:68) >> >> at com.sun.glass.ui.monocle.linux.Udev.getInstance(Udev.java:54) >> >> at com.sun.glass.ui.monocle.linux.LinuxInputDeviceRegistry.(LinuxInputDeviceRegistry.java:77) >> >> at com.sun.glass.ui.monocle.linux.LinuxPlatform.createInputDeviceRegistry(LinuxPlatform.java:19) >> >> at com.sun.glass.ui.monocle.NativePlatform.getInputDeviceRegistry(NativePlatform.java:58) >> >> at com.sun.glass.ui.monocle.MonocleApplication.(MonocleApplication.java:78) >> >> at com.sun.glass.ui.monocle.MonoclePlatformFactory.createApplication(MonoclePlatformFactory.java:45) >> >> at com.sun.glass.ui.Application.run(Application.java:145) >> >> at com.sun.javafx.tk.quantum.QuantumToolkit.startup(QuantumToolkit.java:281) >> >> ... 9 more >> >> pi at raspberrypi~ $which java >> >> /opt/java/bin/java >> >> >> I look at a couple of libs within the ./jre/lib/arm folder (one I replaced, one original): >> >> pi at raspberrypi/opt/java/jre/lib/arm $file libjava.so >> >> libjava.so: ELF 32-bit LSB shared object, ARM, version 1 (SYSV), dynamically linked, BuildID[sha1]=0x85ac21c4b5e873e5ed15d80b0e64fb4c38122e8f, not stripped >> >> pi at raspberrypi /opt/java/jre/lib/arm $ file libjavafx_iio.so >> >> libjavafx_iio.so: ELF 32-bit LSB shared object, ARM, version 1 (SYSV), dynamically linked, BuildID[sha1]=0xd4b0794ac7451d58e5bf2ab6d8c856b2aa0005e5, not stripped >> >> >> So the latter looks correct (the former was supplied by Oracle) >> >> My C knowledge is extremely rusty (like 15 years old), and that was mostly on MS Windows - how do I check which shared lib contains the com.sun.glass.ui.monocle.linux.Udev._open()J method? >> >> Perhaps this is a gcc/link problem - did I use a different version of the compiler than I was supposed to and my version has mangled things differently, or did I install all the .so files in the wrong place (I put them all in /opt/java/jre/lib/arm): >> >> pi at raspberrypi /opt/java/jre/lib/arm $ ls -la | grep "Dec 30" >> >> drwxr-xr-x 12 pi pi 4096 Dec 30 07:46 .. >> >> -rwxrwxr-x 1 pi pi 61200 Dec 30 07:54 libdecora_sse.so >> >> -rwxr-xr-x 1 pi pi 134489 Dec 30 07:54 libfxplugins.so >> >> -rwxrwxr-x 1 pi pi 31428 Dec 30 07:54 libglass_monocle.so >> >> -rwxrwxr-x 1 pi pi 15946 Dec 30 07:54 libglass_monocle_x11.so >> >> -rwxrwxr-x 1 pi pi 193850 Dec 30 07:54 libglass.so >> >> -rwxr-xr-x 1 pi pi 1530711 Dec 30 07:54 libgstreamer-lite.so >> >> -rwxrwxr-x 1 pi pi 23301 Dec 30 07:54 libjavafx_font_freetype.so >> >> -rwxrwxr-x 1 pi pi 20564 Dec 30 07:54 libjavafx_font_pango.so >> >> -rwxrwxr-x 1 pi pi 14950 Dec 30 07:54 libjavafx_font.so >> >> -rwxrwxr-x 1 pi pi 218614 Dec 30 07:54 libjavafx_iio.so >> >> -rwxr-xr-x 1 pi pi 224345 Dec 30 07:54 libjfxmedia.so >> >> -rwxr-xr-x 1 pi pi 30879536 Dec 30 07:54 libjfxwebkit.so >> >> -rwxrwxr-x 1 pi pi 42591 Dec 30 07:54 libprism_common.so >> >> -rwxrwxr-x 1 pi pi 59640 Dec 30 07:54 libprism_es2_eglfb.so >> >> -rwxrwxr-x 1 pi pi 54149 Dec 30 07:54 libprism_es2_monocle.so >> >> -rwxrwxr-x 1 pi pi 56508 Dec 30 07:54 libprism_sw.so >> >> >> *Compile machine (Ubuntu 12 ISO):* >> >> @ubuntu:~/work/rt/build/armv6hf-sdk/rt$ uname -a >> >> Linux ubuntu 3.13.0-43-generic #72~precise1-Ubuntu SMP Tue Dec 9 12:14:42 UTC 2014 i686 i686 i386 GNU/Linux >> >> @ubuntu:~/work/rt/build/armv6hf-sdk/rt$ gcc --version >> >> gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3 >> >> @ubuntu:~/work/rt/build/armv6hf-sdk/rt$ lsb_release -a >> >> No LSB modules are available. >> >> Distributor ID:Ubuntu >> >> Description:Ubuntu 12.04.5 LTS >> >> Release:12.04 >> >> Codename:precise >> >> >> On Tue, Dec 30, 2014 at 6:40 AM, Jens Kapitza > wrote: >> >> Hi Nick, >> >> i've read you found a solution, i had the same Problem (linux.grandle) >> >> in build folder there were some empty build files. as far as i can >> remember linux_tools.... >> the script tries to find cflags and linker options but there is an >> empty file (i've just deleted this file, clean rebuild works) >> >> >> the error with grandle 1.8 was behind this line 78 ^^ >> >> >> >> for the link errors; have you copied the libs (.so) files into >> your openjdk build (after the build there is a sdk folder with >> libs and jar) >> >> the so file have to be in the openjdk lib folder or (i think >> should work somewhere below /usr/lib >> >> >> -- >> Jens Kapitza >> >> Am 29.12.2014 um 01:35 schrieb Nick Pratt: >> >> Does anyone have any tips on getting Openjfx (latest source as of >> 2014-12-28 19:00 EST) to build on a Centos 6.6 box? >> >> Im following the wiki for Linux builds and grabbed Gradle 1.8 >> (does the >> latest 2.2 work?) but Im failing to build with the following >> error: >> >> [work at nyprod1 rt]# /opt/gradle/bin/gradle >> >> :buildSrc:generateGrammarSource UP-TO-DATE >> >> :buildSrc:compileJava UP-TO-DATE >> >> :buildSrc:compileGroovy UP-TO-DATE >> >> :buildSrc:processResources UP-TO-DATE >> >> :buildSrc:classes UP-TO-DATE >> >> :buildSrc:jar UP-TO-DATE >> >> :buildSrc:assemble UP-TO-DATE >> >> :buildSrc:compileTestJava UP-TO-DATE >> >> :buildSrc:compileTestGroovy UP-TO-DATE >> >> :buildSrc:processTestResources UP-TO-DATE >> >> :buildSrc:testClasses UP-TO-DATE >> >> :buildSrc:test UP-TO-DATE >> >> :buildSrc:check UP-TO-DATE >> >> :buildSrc:build UP-TO-DATE >> >> >> FAILURE: Build failed with an exception. >> >> >> * Where: >> >> Script '/work/WorkingCopies/rt/buildSrc/linux.gradle' line: 78 >> >> >> * What went wrong: >> >> A problem occurred evaluating script. >> >> Cannot invoke method split() on null object >> >> >> * Try: >> >> Run with --stacktrace option to get the stack trace. Run with >> --info or >> --debug option to get more log output. >> >> >> BUILD FAILED >> >> >> Total time: 8.96 secs >> >> >> If anyone has any tips or suggestions to get this compiling on >> Centos 6.x >> they would be most appreciated. >> >> >> > -- David Hill Java Embedded Development "A man's feet should be planted in his country, but his eyes should survey the world." -- George Santayana (1863 - 1952) From David.Hill at Oracle.com Fri Jan 2 15:10:53 2015 From: David.Hill at Oracle.com (David Hill) Date: Fri, 02 Jan 2015 10:10:53 -0500 Subject: Building Openjfx on Centos 6.6 In-Reply-To: References: <41420E9B-67A0-4B90-A0D7-A8116A3A970E@oracle.com> <54A46862.7030709@Oracle.com> Message-ID: <54A6B4FD.3010203@Oracle.com> On 12/31/14, 9:45 PM, Nick Pratt wrote: > Thanks for the help. So now I can invoke Java without the link errors, but my JavaFX app isnt appearing on the attached TFT screen ( Note: I can get 'x' to appear on the the Pi TFT screen by setting the FRAMEBUFFER variable prior to invoking startx so I know my TFT screen is setup and the right Kernel mods are enabled and applied) > > Notwithstanding the error messages below, am I invoking Java correctly here : (based on the comments in https://javafx-jira.kenai.com/browse/RT-36960 ) I don't have access to your configuration (I only have a Pi with HDMI), so this is going to be hard for me to help with. You do need the sudo because of the permissions issues with the input devices. When Daniel added the code to mentioned in RT-36960, he did not have that configuration either, so we will need help understanding what is happening. You might try adding -Dprism.verbose=true -Djavafx.verbose=true and we might get lucky. > > pi at raspberrypi ~ $ java -Djavafx.platform=monocle -Dmonocle.screen.fb="/dev/fb1" -Ddispman.display=0 -Ddispman.layer=1 -jar JavaFXApp.jar > > Udev: Failed to write to /sys/class/input/mice/uevent > > Check that you have permission to access input devices > > Udev: Failed to write to /sys/class/input/event0/uevent > > Check that you have permission to access input devices > > Udev: Failed to write to /sys/class/input/input0/uevent > > Check that you have permission to access input devices > > Udev: Failed to write to /sys/class/input/mouse0/uevent > > Check that you have permission to access input devices > > > If I run the above command as sudo root, then I dont see the errors printed, but still nothing on the TFT screen. > > Regards > > > Nick > > > > On Wed, Dec 31, 2014 at 4:19 PM, David Hill > wrote: > > > Nick found a good one, took me a while to find the obvious :-p > > The UnsatisfiedLinkError was caused by old ARM JFX jars that were not overriden when he copied the new bits into the JDK. > > On ARM we have a split set of jars for FX that we ship, but when we build, we only build the single jfxrt.jar like the desktop. The split is post build packaging. So Nick was mixing old and new jars, which is what the Wiki told him to do. Doh. > > I updated the wiki for OpenJFX building and cross building with some clarifications, notes and such, so hopefully the next solider will not find so many mines. > > Dave > > On 12/29/14, 9:46 PM, Nick Pratt wrote: > > So I made some progress here: > > I had installed Ubuntu 14.x 64-bit version. Once I installed the ia32-libs > (replacement versions for Ubuntu 14 since ia32-libs) isnt available > anymore, I got the ARM HF to build. I installed on my Pi, but Im getting > link errors when I try and run a JFX program: > > java -Djavafx.platform=monocle -Dmonocle.screen.fb=/dev/fb1 -jar > JavaFXApp.jar > > Exception in thread "main" java.lang.reflect.InvocationTargetException > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > > at java.lang.reflect.Method.invoke(Method.java:483) > > at sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:767) > > Caused by: java.lang.RuntimeException: java.lang.UnsatisfiedLinkError: > com.sun.glass.ui.monocle.linux.Udev._open()J > > at com.sun.javafx.tk.quantum.QuantumToolkit.startup(QuantumToolkit.java:296) > > at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:216) > > at > com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:653) > > at > com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:314) > > at > com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:305) > > ... 5 more > > Caused by: java.lang.UnsatisfiedLinkError: > com.sun.glass.ui.monocle.linux.Udev._open()J > > at com.sun.glass.ui.monocle.linux.Udev._open(Native Method) > > at com.sun.glass.ui.monocle.linux.Udev.(Udev.java:68) > > at com.sun.glass.ui.monocle.linux.Udev.getInstance(Udev.java:54) > > at > com.sun.glass.ui.monocle.linux.LinuxInputDeviceRegistry.(LinuxInputDeviceRegistry.java:77) > > at > com.sun.glass.ui.monocle.linux.LinuxPlatform.createInputDeviceRegistry(LinuxPlatform.java:19) > > at > com.sun.glass.ui.monocle.NativePlatform.getInputDeviceRegistry(NativePlatform.java:58) > > at > com.sun.glass.ui.monocle.MonocleApplication.(MonocleApplication.java:78) > > at > com.sun.glass.ui.monocle.MonoclePlatformFactory.createApplication(MonoclePlatformFactory.java:45) > > at com.sun.glass.ui.Application.run(Application.java:145) > > at com.sun.javafx.tk.quantum.QuantumToolkit.startup(QuantumToolkit.java:281) > > ... 9 more > > > > So then I figured I try and get an Ubuntu 12.x 32-bit VM up and running and > use that for a OpenJFX build since this is mentioned in the OpenJFX wiki. > However, a clean install cant run sudo apt-get update due to missing > package definitions - have Ubuntu (or whoever maintains this set of repos) > removed the older 12.x packages (or started to)? I cant get gcc installed > or updated because of this - and this is a fresh install direct from the > Ubuntu 12.0.4 .iso > > On a related note, its not clear to me what Im supposed to do after > compiling OpenJFX - what needs to be installed and where does it need to go > - JAVA_HOME/jre/lib ? (just replace everything in there?) > > > > On Sun, Dec 28, 2014 at 9:11 PM, Morris Meyer> > wrote: > > What JDK are you using? That looks like an older version of the String > class. Gradle 1.8 is recommended. > > --mm > > > On Dec 28, 2014, at 7:35 PM, Nick Pratt> wrote: > > Does anyone have any tips on getting Openjfx (latest source as of > 2014-12-28 19:00 EST) to build on a Centos 6.6 box? > > Im following the wiki for Linux builds and grabbed Gradle 1.8 (does the > latest 2.2 work?) but Im failing to build with the following error: > > [work at nyprod1 rt]# /opt/gradle/bin/gradle > > :buildSrc:generateGrammarSource UP-TO-DATE > > :buildSrc:compileJava UP-TO-DATE > > :buildSrc:compileGroovy UP-TO-DATE > > :buildSrc:processResources UP-TO-DATE > > :buildSrc:classes UP-TO-DATE > > :buildSrc:jar UP-TO-DATE > > :buildSrc:assemble UP-TO-DATE > > :buildSrc:compileTestJava UP-TO-DATE > > :buildSrc:compileTestGroovy UP-TO-DATE > > :buildSrc:processTestResources UP-TO-DATE > > :buildSrc:testClasses UP-TO-DATE > > :buildSrc:test UP-TO-DATE > > :buildSrc:check UP-TO-DATE > > :buildSrc:build UP-TO-DATE > > > FAILURE: Build failed with an exception. > > > * Where: > > Script '/work/WorkingCopies/rt/buildSrc/linux.gradle' line: 78 > > > * What went wrong: > > A problem occurred evaluating script. > > Cannot invoke method split() on null object > > > * Try: > > Run with --stacktrace option to get the stack trace. Run with --info or > --debug option to get more log output. > > > BUILD FAILED > > > Total time: 8.96 secs > > > If anyone has any tips or suggestions to get this compiling on Centos 6.x > they would be most appreciated. > > > > -- > David Hill > Java Embedded Development > > "A man's feet should be planted in his country, but his eyes should survey the world." > -- George Santayana (1863 - 1952) > > -- David Hill Java Embedded Development "A man's feet should be planted in his country, but his eyes should survey the world." -- George Santayana (1863 - 1952) From chien.yang at oracle.com Fri Jan 2 21:18:29 2015 From: chien.yang at oracle.com (Chien Yang) Date: Fri, 02 Jan 2015 13:18:29 -0800 Subject: NPE in VirtualFlow In-Reply-To: <8D841C30-F2AC-4262-A26D-F49A5C348812@datenwort.at> References: <8D841C30-F2AC-4262-A26D-F49A5C348812@datenwort.at> Message-ID: <54A70B25.6030905@oracle.com> The closest I can find that is somewhat related to TableView and NPE, but not exactly the same issue is the following JIRA: https://javafx-jira.kenai.com/browse/RT-39624 Please file a JIRA once you have a reproducible test case ready. Here is a link on how to file a bug report with us: https://wiki.openjdk.java.net/display/OpenJFX/Submitting+a+Bug+Report Thanks, - Chien On 12/26/2014 1:30 AM, Mario Ivankovits wrote: > Hi! > > Every now and then I get the exception down there (starting with JavaFX 8u40-b18 if I remember correctly) > > It seems it has something to to with the fact that the items list of one of my TableViews gets cleared and so no cells are visible any more. > I was not yet able to always reproduce that. I will try to do that, but probably someone has a clue anyway? > > BR, > Mario > > java.lang.NullPointerException > at com.sun.javafx.scene.control.skin.VirtualFlow.getCellIndex(VirtualFlow.java:1726) > at com.sun.javafx.scene.control.skin.VirtualFlow.addLeadingCells(VirtualFlow.java:1274) > at com.sun.javafx.scene.control.skin.VirtualFlow.layoutChildren(VirtualFlow.java:1194) > at com.sun.javafx.scene.control.skin.VirtualFlow.setCellCount(VirtualFlow.java:231) > at com.sun.javafx.scene.control.skin.TableViewSkinBase.updateRowCount(TableViewSkinBase.java:554) > at com.sun.javafx.scene.control.skin.VirtualContainerBase.checkState(VirtualContainerBase.java:113) > at com.sun.javafx.scene.control.skin.VirtualContainerBase.layoutChildren(VirtualContainerBase.java:108) > at com.sun.javafx.scene.control.skin.TableViewSkinBase.layoutChildren(TableViewSkinBase.java:683) > at javafx.scene.control.Control.layoutChildren(Control.java:576) > at javafx.scene.Parent.layout(Parent.java:1076) > at javafx.scene.Parent.layout(Parent.java:1082) > at javafx.scene.Parent.layout(Parent.java:1082) > at javafx.scene.Parent.layout(Parent.java:1082) > at javafx.scene.Parent.layout(Parent.java:1082) > at javafx.scene.Parent.layout(Parent.java:1082) > at javafx.scene.Parent.layout(Parent.java:1082) > at javafx.scene.Parent.layout(Parent.java:1082) > at javafx.scene.Parent.layout(Parent.java:1082) > at javafx.scene.Parent.layout(Parent.java:1082) > at javafx.scene.Scene.doLayoutPass(Scene.java:552) > at javafx.scene.Scene$ScenePulseListener.pulse(Scene.java:2397) > at com.sun.javafx.tk.Toolkit.lambda$runPulse$30(Toolkit.java:314) > at com.sun.javafx.tk.Toolkit$$Lambda$243/122134773.run(Unknown Source) > at java.security.AccessController.doPrivileged(Native Method) > at com.sun.javafx.tk.Toolkit.runPulse(Toolkit.java:313) > at com.sun.javafx.tk.Toolkit.firePulse(Toolkit.java:340) > at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:525) > at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:505) > at com.sun.javafx.tk.quantum.QuantumToolkit.lambda$runToolkit$400(QuantumToolkit.java:334) > at com.sun.javafx.tk.quantum.QuantumToolkit$$Lambda$41/2090707712.run(Unknown Source) > at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95) > From chien.yang at oracle.com Fri Jan 2 23:44:43 2015 From: chien.yang at oracle.com (Chien Yang) Date: Fri, 02 Jan 2015 15:44:43 -0800 Subject: 3D shape not clipped by ScrollPane properly? In-Reply-To: References: Message-ID: <54A72D6B.6080302@oracle.com> We haven't specified the semantic of Clip on 3D primitive and it is currently a NOP. - Chien On 12/29/2014 3:28 PM, Mike Hearn wrote: > I have a ScrollPane into which I put a Pane with a min width/height, and > then I place a Button and a Sphere. For both of them I use setLayoutX/Y to > move them around. > > Now when I scroll the ScrollPane I can see it move the button around > correctly, and the sphere, but the sphere is able to draw over the > scrollbars. It's not being clipped like the Button is. > > I have not configured any special cameras or the like. > > Do 3D objects clip differently to 2D objects? If so, why? From mario at datenwort.at Sat Jan 3 07:38:23 2015 From: mario at datenwort.at (Mario Ivankovits) Date: Sat, 3 Jan 2015 07:38:23 +0000 Subject: NPE in VirtualFlow In-Reply-To: <54A70B25.6030905@oracle.com> References: <8D841C30-F2AC-4262-A26D-F49A5C348812@datenwort.at> <54A70B25.6030905@oracle.com> Message-ID: <84C3D86B-2524-49C7-954B-BBD5CCBDECC9@datenwort.at> Thanks! I?ve created the issue for this https://javafx-jira.kenai.com/browse/RT-39752 and will try to create a test case in the next few days. Best regards, Mario Am 02.01.2015 um 22:18 schrieb Chien Yang >: The closest I can find that is somewhat related to TableView and NPE, but not exactly the same issue is the following JIRA: https://javafx-jira.kenai.com/browse/RT-39624 Please file a JIRA once you have a reproducible test case ready. Here is a link on how to file a bug report with us: https://wiki.openjdk.java.net/display/OpenJFX/Submitting+a+Bug+Report Thanks, - Chien On 12/26/2014 1:30 AM, Mario Ivankovits wrote: Hi! Every now and then I get the exception down there (starting with JavaFX 8u40-b18 if I remember correctly) It seems it has something to to with the fact that the items list of one of my TableViews gets cleared and so no cells are visible any more. I was not yet able to always reproduce that. I will try to do that, but probably someone has a clue anyway? BR, Mario java.lang.NullPointerException at com.sun.javafx.scene.control.skin.VirtualFlow.getCellIndex(VirtualFlow.java:1726) at com.sun.javafx.scene.control.skin.VirtualFlow.addLeadingCells(VirtualFlow.java:1274) at com.sun.javafx.scene.control.skin.VirtualFlow.layoutChildren(VirtualFlow.java:1194) at com.sun.javafx.scene.control.skin.VirtualFlow.setCellCount(VirtualFlow.java:231) at com.sun.javafx.scene.control.skin.TableViewSkinBase.updateRowCount(TableViewSkinBase.java:554) at com.sun.javafx.scene.control.skin.VirtualContainerBase.checkState(VirtualContainerBase.java:113) at com.sun.javafx.scene.control.skin.VirtualContainerBase.layoutChildren(VirtualContainerBase.java:108) at com.sun.javafx.scene.control.skin.TableViewSkinBase.layoutChildren(TableViewSkinBase.java:683) at javafx.scene.control.Control.layoutChildren(Control.java:576) at javafx.scene.Parent.layout(Parent.java:1076) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Scene.doLayoutPass(Scene.java:552) at javafx.scene.Scene$ScenePulseListener.pulse(Scene.java:2397) at com.sun.javafx.tk.Toolkit.lambda$runPulse$30(Toolkit.java:314) at com.sun.javafx.tk.Toolkit$$Lambda$243/122134773.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at com.sun.javafx.tk.Toolkit.runPulse(Toolkit.java:313) at com.sun.javafx.tk.Toolkit.firePulse(Toolkit.java:340) at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:525) at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:505) at com.sun.javafx.tk.quantum.QuantumToolkit.lambda$runToolkit$400(QuantumToolkit.java:334) at com.sun.javafx.tk.quantum.QuantumToolkit$$Lambda$41/2090707712.run(Unknown Source) at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95) From nbpratt at gmail.com Sat Jan 3 19:36:21 2015 From: nbpratt at gmail.com (Nick Pratt) Date: Sat, 3 Jan 2015 14:36:21 -0500 Subject: Building Openjfx on Centos 6.6 In-Reply-To: <54A6B4FD.3010203@Oracle.com> References: <41420E9B-67A0-4B90-A0D7-A8116A3A970E@oracle.com> <54A46862.7030709@Oracle.com> <54A6B4FD.3010203@Oracle.com> Message-ID: This is the output from my Pi with the modified JDK: pi at raspberrypi ~ $ sudo /opt/java/jre/bin/java -Djavafx.platform=monocle -Dmonocle.screen.fb="/dev/fb1" -Ddispman.display=0 -Ddispman.layer=1 -Dprism.verbose=true -Djavafx.verbose=true -jar JavaFXApp.jar Prism pipeline init order: es2 sw Using native-based Pisces rasterizer Using dirty region optimizations Using system sized mask for primitives Not forcing power of 2 sizes for textures Using hardware CLAMP_TO_ZERO mode Opting in for HiDPI pixel scaling Prism pipeline name = com.sun.prism.es2.ES2Pipeline Loading ES2 native library ... prism_es2_monocle Loaded /opt/jdk1.8.0_06/jre/lib/ext/../arm/libprism_es2_monocle.so from relative path succeeded. GLFactory using com.sun.prism.es2.MonocleGLFactory Loaded /opt/jdk1.8.0_06/jre/lib/ext/../arm/libglass_monocle.so from relative path (X) Got class = class com.sun.prism.es2.ES2Pipeline Initialized prism pipeline: com.sun.prism.es2.ES2Pipeline JavaFX: using com.sun.javafx.tk.quantum.QuantumToolkit Maximum supported texture size: 2048 Non power of two texture support = true Maximum number of vertex attributes = 8 Maximum number of uniform vertex components = 544 Maximum number of uniform fragment components = 544 Maximum number of varying components = 32 Maximum number of texture units usable in a vertex shader = 8 Maximum number of texture units usable in a fragment shader = 8 Graphics Vendor: Broadcom Renderer: VideoCore IV HW Version: OpenGL ES 2.0 vsync: true vpipe: true Calling main(String[]) method Loaded /opt/jdk1.8.0_06/jre/lib/ext/../arm/libjavafx_font.so from relative path Loaded /opt/jdk1.8.0_06/jre/lib/ext/../arm/libjavafx_font_freetype.so from relative path ES2ResourceFactory: Prism - createStockShader: Solid_TextureRGB.frag On Fri, Jan 2, 2015 at 10:10 AM, David Hill wrote: > On 12/31/14, 9:45 PM, Nick Pratt wrote: > > Thanks for the help. So now I can invoke Java without the link errors, > but my JavaFX app isnt appearing on the attached TFT screen ( Note: I can > get 'x' to appear on the the Pi TFT screen by setting the FRAMEBUFFER > variable prior to invoking startx so I know my TFT screen is setup and the > right Kernel mods are enabled and applied) > > Notwithstanding the error messages below, am I invoking Java correctly > here : (based on the comments in > https://javafx-jira.kenai.com/browse/RT-36960 ) > > > I don't have access to your configuration (I only have a Pi with HDMI), so > this is going to be hard for me to help with. You do need the sudo because > of the permissions issues with the input devices. > > When Daniel added the code to mentioned in RT-36960, he did not have that > configuration either, so we will need help understanding what is happening. > > You might try adding -Dprism.verbose=true -Djavafx.verbose=true > and we might get lucky. > > > pi at raspberrypi ~ $ java -Djavafx.platform=monocle > -Dmonocle.screen.fb="/dev/fb1" -Ddispman.display=0 -Ddispman.layer=1 -jar > JavaFXApp.jar > > Udev: Failed to write to /sys/class/input/mice/uevent > > Check that you have permission to access input devices > > Udev: Failed to write to /sys/class/input/event0/uevent > > Check that you have permission to access input devices > > Udev: Failed to write to /sys/class/input/input0/uevent > > Check that you have permission to access input devices > > Udev: Failed to write to /sys/class/input/mouse0/uevent > > Check that you have permission to access input devices > > > If I run the above command as sudo root, then I dont see the errors > printed, but still nothing on the TFT screen. > > Regards > > > Nick > > > > On Wed, Dec 31, 2014 at 4:19 PM, David Hill wrote: > >> >> Nick found a good one, took me a while to find the obvious :-p >> >> The UnsatisfiedLinkError was caused by old ARM JFX jars that were not >> overriden when he copied the new bits into the JDK. >> >> On ARM we have a split set of jars for FX that we ship, but when we >> build, we only build the single jfxrt.jar like the desktop. The split is >> post build packaging. So Nick was mixing old and new jars, which is what >> the Wiki told him to do. Doh. >> >> I updated the wiki for OpenJFX building and cross building with some >> clarifications, notes and such, so hopefully the next solider will not find >> so many mines. >> >> Dave >> >> On 12/29/14, 9:46 PM, Nick Pratt wrote: >> >>> So I made some progress here: >>> >>> I had installed Ubuntu 14.x 64-bit version. Once I installed the >>> ia32-libs >>> (replacement versions for Ubuntu 14 since ia32-libs) isnt available >>> anymore, I got the ARM HF to build. I installed on my Pi, but Im getting >>> link errors when I try and run a JFX program: >>> >>> java -Djavafx.platform=monocle -Dmonocle.screen.fb=/dev/fb1 -jar >>> JavaFXApp.jar >>> >>> Exception in thread "main" java.lang.reflect.InvocationTargetException >>> >>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>> >>> at >>> >>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) >>> >>> at >>> >>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >>> >>> at java.lang.reflect.Method.invoke(Method.java:483) >>> >>> at sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:767) >>> >>> Caused by: java.lang.RuntimeException: java.lang.UnsatisfiedLinkError: >>> com.sun.glass.ui.monocle.linux.Udev._open()J >>> >>> at >>> com.sun.javafx.tk.quantum.QuantumToolkit.startup(QuantumToolkit.java:296) >>> >>> at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:216) >>> >>> at >>> >>> com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:653) >>> >>> at >>> >>> com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:314) >>> >>> at >>> >>> com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:305) >>> >>> ... 5 more >>> >>> Caused by: java.lang.UnsatisfiedLinkError: >>> com.sun.glass.ui.monocle.linux.Udev._open()J >>> >>> at com.sun.glass.ui.monocle.linux.Udev._open(Native Method) >>> >>> at com.sun.glass.ui.monocle.linux.Udev.(Udev.java:68) >>> >>> at com.sun.glass.ui.monocle.linux.Udev.getInstance(Udev.java:54) >>> >>> at >>> >>> com.sun.glass.ui.monocle.linux.LinuxInputDeviceRegistry.(LinuxInputDeviceRegistry.java:77) >>> >>> at >>> >>> com.sun.glass.ui.monocle.linux.LinuxPlatform.createInputDeviceRegistry(LinuxPlatform.java:19) >>> >>> at >>> >>> com.sun.glass.ui.monocle.NativePlatform.getInputDeviceRegistry(NativePlatform.java:58) >>> >>> at >>> >>> com.sun.glass.ui.monocle.MonocleApplication.(MonocleApplication.java:78) >>> >>> at >>> >>> com.sun.glass.ui.monocle.MonoclePlatformFactory.createApplication(MonoclePlatformFactory.java:45) >>> >>> at com.sun.glass.ui.Application.run(Application.java:145) >>> >>> at >>> com.sun.javafx.tk.quantum.QuantumToolkit.startup(QuantumToolkit.java:281) >>> >>> ... 9 more >>> >>> >>> >>> So then I figured I try and get an Ubuntu 12.x 32-bit VM up and running >>> and >>> use that for a OpenJFX build since this is mentioned in the OpenJFX wiki. >>> However, a clean install cant run sudo apt-get update due to missing >>> package definitions - have Ubuntu (or whoever maintains this set of >>> repos) >>> removed the older 12.x packages (or started to)? I cant get gcc installed >>> or updated because of this - and this is a fresh install direct from the >>> Ubuntu 12.0.4 .iso >>> >>> On a related note, its not clear to me what Im supposed to do after >>> compiling OpenJFX - what needs to be installed and where does it need to >>> go >>> - JAVA_HOME/jre/lib ? (just replace everything in there?) >>> >>> >>> >>> On Sun, Dec 28, 2014 at 9:11 PM, Morris Meyer >>> wrote: >>> >>> What JDK are you using? That looks like an older version of the String >>>> class. Gradle 1.8 is recommended. >>>> >>>> --mm >>>> >>>> >>>> On Dec 28, 2014, at 7:35 PM, Nick Pratt wrote: >>>>> >>>>> Does anyone have any tips on getting Openjfx (latest source as of >>>>> 2014-12-28 19:00 EST) to build on a Centos 6.6 box? >>>>> >>>>> Im following the wiki for Linux builds and grabbed Gradle 1.8 (does the >>>>> latest 2.2 work?) but Im failing to build with the following error: >>>>> >>>>> [work at nyprod1 rt]# /opt/gradle/bin/gradle >>>>> >>>>> :buildSrc:generateGrammarSource UP-TO-DATE >>>>> >>>>> :buildSrc:compileJava UP-TO-DATE >>>>> >>>>> :buildSrc:compileGroovy UP-TO-DATE >>>>> >>>>> :buildSrc:processResources UP-TO-DATE >>>>> >>>>> :buildSrc:classes UP-TO-DATE >>>>> >>>>> :buildSrc:jar UP-TO-DATE >>>>> >>>>> :buildSrc:assemble UP-TO-DATE >>>>> >>>>> :buildSrc:compileTestJava UP-TO-DATE >>>>> >>>>> :buildSrc:compileTestGroovy UP-TO-DATE >>>>> >>>>> :buildSrc:processTestResources UP-TO-DATE >>>>> >>>>> :buildSrc:testClasses UP-TO-DATE >>>>> >>>>> :buildSrc:test UP-TO-DATE >>>>> >>>>> :buildSrc:check UP-TO-DATE >>>>> >>>>> :buildSrc:build UP-TO-DATE >>>>> >>>>> >>>>> FAILURE: Build failed with an exception. >>>>> >>>>> >>>>> * Where: >>>>> >>>>> Script '/work/WorkingCopies/rt/buildSrc/linux.gradle' line: 78 >>>>> >>>>> >>>>> * What went wrong: >>>>> >>>>> A problem occurred evaluating script. >>>>> >>>>> Cannot invoke method split() on null object >>>>>> >>>>> >>>>> * Try: >>>>> >>>>> Run with --stacktrace option to get the stack trace. Run with --info or >>>>> --debug option to get more log output. >>>>> >>>>> >>>>> BUILD FAILED >>>>> >>>>> >>>>> Total time: 8.96 secs >>>>> >>>>> >>>>> If anyone has any tips or suggestions to get this compiling on Centos >>>>> 6.x >>>>> they would be most appreciated. >>>>> >>>> >> >> -- >> David Hill >> Java Embedded Development >> >> "A man's feet should be planted in his country, but his eyes should >> survey the world." >> -- George Santayana (1863 - 1952) >> >> > > > -- > David Hill > Java Embedded Development > > "A man's feet should be planted in his country, but his eyes should survey the world." > -- George Santayana (1863 - 1952) > > From mikegps1 at gmail.com Mon Jan 5 09:45:19 2015 From: mikegps1 at gmail.com (Mike) Date: Mon, 5 Jan 2015 01:45:19 -0800 Subject: Objectwheel Training Videos -- Javafx Message-ID: https://www.youtube.com/playlist?list=PL5PYUCglXIujAiXUmuFIUUIVwffkRopgs Pure Javafx Thought it would be interesting to the group. 3 years in the making (yes we are slow) We also have APK, MSI, DEB, DMG -- (soon IPA) Jenkins Automatic Builds of the Designer and Reader https://angel.co/objectwheel We are seeking more Angel funding for this project. (send me your friends please) Mike Tallent CEO Objectwheel From kevin.rushforth at oracle.com Mon Jan 5 16:46:58 2015 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Mon, 05 Jan 2015 08:46:58 -0800 Subject: Today's In(Sanity) Testing -- 8u-dev repo is unlocked In-Reply-To: <54944E68.3030803@oracle.com> References: <54944E68.3030803@oracle.com> Message-ID: <54AAC002.10004@oracle.com> Given the recent holidays, there have been very few changes to the 8u-dev repo over the past week. As such, we will do a very limited sanity testing today, but there is no reason to leave the repo locked. 8u-dev remains open for 8u60 changesets with no additional restrictions. You can find your testing assignment at: https://wiki.openjdk.java.net/display/OpenJFX/Sanity+Testing but no worries if you can't get to it today -- you can pick it up next week when there will be more changes to test. -- Kevin From mike at plan99.net Mon Jan 5 17:07:23 2015 From: mike at plan99.net (Mike Hearn) Date: Mon, 5 Jan 2015 18:07:23 +0100 Subject: How to handle file open requests on MacOS Message-ID: 8u40 has javapackager improvements to help you do file associations in your installers. I'm looking forward to this, though for now I have to do it manually with 8u20. But one problem I've found is that just setting up the file associations is not enough. You must handle the "openFile" messages sent by the OS as well. On Linux/Windows the interface is simple: the OS starts another copy of your app with the command line parameter. On MacOS you get a message posted to your message queue because apps are single instance by default. To handle this in JFX we must use internal APIs, like in the code snippet below. Hopefully 8u40 will contain a proper cross platform file open request API that exposes this in a better way, otherwise the new javapackager support will be rather hard to use. private void handleFileOpenRequests() { // This is only for MacOS, where the OS single instances us by default and sends us a message at startup to ask // us to open a file. It requires internal APIs. if (!System.getProperty("os.name").toLowerCase().contains("mac")) return; com.sun.glass.ui.Application app = com.sun.glass.ui.Application.GetApplication(); com.sun.glass.ui.Application.EventHandler old = app.getEventHandler(); app.setEventHandler(new com.sun.glass.ui.Application.EventHandler() { @Override public void handleQuitAction(com.sun.glass.ui.Application app, long time) { old.handleQuitAction(app, time); } @Override public boolean handleThemeChanged(String themeName) { return old.handleThemeChanged(themeName); } @Override public void handleOpenFilesAction(com.sun.glass.ui.Application app, long time, String[] files) { for (String strPath : files) { if (strPath.equals("com.intellij.rt.execution.application.AppMain")) continue; // Only happens in dev environment. log.info("OS is requesting that we open " + strPath); Platform.runLater(() -> { Main.instance.mainWindow.handleOpenedFile(new File(strPath)); }); } } }); } From danno.ferrin at oracle.com Mon Jan 5 17:23:27 2015 From: danno.ferrin at oracle.com (Danno Ferrin) Date: Mon, 5 Jan 2015 10:23:27 -0700 Subject: How to handle file open requests on MacOS In-Reply-To: References: Message-ID: <1FBB2EF1-94A3-42EF-B526-71503CA102B9@oracle.com> On Jan 5, 2015, at 10:07 AM, Mike Hearn wrote: > 8u40 has javapackager improvements to help you do file associations in your > installers. I'm looking forward to this, though for now I have to do it > manually with 8u20. > > But one problem I've found is that just setting up the file associations is > not enough. You must handle the "openFile" messages sent by the OS as well. > On Linux/Windows the interface is simple: the OS starts another copy of > your app with the command line parameter. On MacOS you get a message posted > to your message queue because apps are single instance by default. To > handle this in JFX we must use internal APIs, like in the code snippet > below. > > Hopefully 8u40 will contain a proper cross platform file open request API > that exposes this in a better way, otherwise the new javapackager support > will be rather hard to use. 8u40 will not contain such an API, what is in 8u40 is what is visible in the EA releases. Only major bugs will be fixed at this point. For a demo proof of concept application I settled on a "two main" solution. One main is for the Mac and one is for Win/Linux. The win/linux main was the principal main class: (warning: the demo was swing based, avert your eyes) public class MainApplication { /* */ void loadFile(File f) { /* */ } /* */ public static void main(String [] args) { SwingUtilities.invokeLater(() -> { // My Eyes! The Goggles, they do nothing! MainApplication app = new MainApplication(); app.createGUI(); if (args.length > 0) { File f = new File(args[0]); if (f.isFile()) { app.loadFile(f); } } }); } } The gist is that the main delegates to a load file method in the normal main, and the app has a stable state outside of the loaded file. For Mac I wrote a MainApplicationMac that did mac-isms (not masochisms) in a different main method. It extended strictly for method accessibility. public class MainApplicationMac extends MainApplication { public static void main(String[] args) { SwingUtilities.invokeLater(() -> { MainApplication app = new MainApplication(); app.createGUI(); if (args.length > 0) { File f = new File(args[0]); if (f.isFile()) { app.loadFile(f); } } Application.getApplication().setOpenFileHandler((AppEvent.OpenFilesEvent ofe) -> { List files = ofe.getFiles(); if (files != null && files.size() > 0) { app.loadFile(files.get(0)); } }); }); } } Really the only new code is the second block. Also since I segregated out the mac stuff I did build gymnastics to ensure this is only built and packaged on a mac, so the introspection isn't done. But I did have to add "-XDignore.symbol.file=true" to the javac arguments since the mac specific classes are not added to the symbol file for some odd reason. Another thing you will notice that is different from mac and win/linux is that the same application receives all file open requests, whereas in win/linux you will see a new application opened for each request. From mike at plan99.net Mon Jan 5 17:43:59 2015 From: mike at plan99.net (Mike Hearn) Date: Mon, 5 Jan 2015 18:43:59 +0100 Subject: How to handle file open requests on MacOS In-Reply-To: <1FBB2EF1-94A3-42EF-B526-71503CA102B9@oracle.com> References: <1FBB2EF1-94A3-42EF-B526-71503CA102B9@oracle.com> Message-ID: What is Application.getApplication() here? The JavaFX Application class does not have a setOpenFileHandler method. Is that a Mac-specific API? It's too bad that 8u40 won't have this. Being able to easily open double clicked files is pretty basic. Perhaps post 8u40 the JFX team could go through Scene Builder and identify everywhere it relies on internal APIs or custom magic and suck it into the core API, as then you'd have confidence that an app of real complexity can be done entirely with documented stuff. From danno.ferrin at oracle.com Mon Jan 5 17:50:18 2015 From: danno.ferrin at oracle.com (Danno Ferrin) Date: Mon, 5 Jan 2015 10:50:18 -0700 Subject: How to handle file open requests on MacOS In-Reply-To: References: <1FBB2EF1-94A3-42EF-B526-71503CA102B9@oracle.com> Message-ID: <7CAAFEBF-826B-4808-B370-D21305C743A9@oracle.com> Oh, yes. Mac has it's own Applicaiton class. Here's the imports for the second file... import com.apple.eawt.AppEvent; import com.apple.eawt.Application; import java.io.File; import java.util.List; import javax.swing.SwingUtilities; The com.apple.eawt stuff is shipped with Oracle JRE and JDK, but like I said in my previous mail you need to pass a flag to the compiler to turn off it's index and read the jar. The JavaDoc has gone MIA though -- https://bugs.openjdk.java.net/browse/JDK-8027638 but you can peruse the source code to see the details, it's all OpenJDK - http://hg.openjdk.java.net/jdk8u/jdk8u40/jdk/file/564bca490631/src/macosx/classes/com/apple/eawt On Jan 5, 2015, at 10:43 AM, Mike Hearn wrote: > What is Application.getApplication() here? The JavaFX Application class does not have a setOpenFileHandler method. Is that a Mac-specific API? > > It's too bad that 8u40 won't have this. Being able to easily open double clicked files is pretty basic. Perhaps post 8u40 the JFX team could go through Scene Builder and identify everywhere it relies on internal APIs or custom magic and suck it into the core API, as then you'd have confidence that an app of real complexity can be done entirely with documented stuff. From mike at plan99.net Mon Jan 5 18:04:33 2015 From: mike at plan99.net (Mike Hearn) Date: Mon, 5 Jan 2015 19:04:33 +0100 Subject: How to handle file open requests on MacOS In-Reply-To: <7CAAFEBF-826B-4808-B370-D21305C743A9@oracle.com> References: <1FBB2EF1-94A3-42EF-B526-71503CA102B9@oracle.com> <7CAAFEBF-826B-4808-B370-D21305C743A9@oracle.com> Message-ID: Scene Builder doesn't do it this way - AFAICT you're only allowed to have one such event handler registered with the OS and JavaFX already registers one ... it just doesn't expose the resulting Java events via public API. On Mon, Jan 5, 2015 at 6:50 PM, Danno Ferrin wrote: > Oh, yes. Mac has it's own Applicaiton class. Here's the imports for the > second file... > > import com.apple.eawt.AppEvent; > import com.apple.eawt.Application; > import java.io.File; > import java.util.List; > import javax.swing.SwingUtilities; > > The com.apple.eawt stuff is shipped with Oracle JRE and JDK, but like I > said in my previous mail you need to pass a flag to the compiler to turn > off it's index and read the jar. > > The JavaDoc has gone MIA though -- > https://bugs.openjdk.java.net/browse/JDK-8027638 but you can peruse the > source code to see the details, it's all OpenJDK - > http://hg.openjdk.java.net/jdk8u/jdk8u40/jdk/file/564bca490631/src/macosx/classes/com/apple/eawt > > On Jan 5, 2015, at 10:43 AM, Mike Hearn wrote: > > > What is Application.getApplication() here? The JavaFX Application class > does not have a setOpenFileHandler method. Is that a Mac-specific API? > > > > It's too bad that 8u40 won't have this. Being able to easily open double > clicked files is pretty basic. Perhaps post 8u40 the JFX team could go > through Scene Builder and identify everywhere it relies on internal APIs or > custom magic and suck it into the core API, as then you'd have confidence > that an app of real complexity can be done entirely with documented stuff. > > From danno.ferrin at oracle.com Mon Jan 5 19:59:40 2015 From: danno.ferrin at oracle.com (Danno Ferrin) Date: Mon, 5 Jan 2015 12:59:40 -0700 Subject: How to handle file open requests on MacOS In-Reply-To: References: <1FBB2EF1-94A3-42EF-B526-71503CA102B9@oracle.com> <7CAAFEBF-826B-4808-B370-D21305C743A9@oracle.com> Message-ID: This code works inside of a JavaFX application too, just tried it locally. You may be thinking of an older iteration of the apple application listener classes or perhaps the native level of the code. On Jan 5, 2015, at 11:04 AM, Mike Hearn wrote: > Scene Builder doesn't do it this way - AFAICT you're only allowed to have one such event handler registered with the OS and JavaFX already registers one ... it just doesn't expose the resulting Java events via public API. > > On Mon, Jan 5, 2015 at 6:50 PM, Danno Ferrin wrote: > Oh, yes. Mac has it's own Applicaiton class. Here's the imports for the second file... > > import com.apple.eawt.AppEvent; > import com.apple.eawt.Application; > import java.io.File; > import java.util.List; > import javax.swing.SwingUtilities; > > The com.apple.eawt stuff is shipped with Oracle JRE and JDK, but like I said in my previous mail you need to pass a flag to the compiler to turn off it's index and read the jar. > > The JavaDoc has gone MIA though -- https://bugs.openjdk.java.net/browse/JDK-8027638 but you can peruse the source code to see the details, it's all OpenJDK - http://hg.openjdk.java.net/jdk8u/jdk8u40/jdk/file/564bca490631/src/macosx/classes/com/apple/eawt > > On Jan 5, 2015, at 10:43 AM, Mike Hearn wrote: > > > What is Application.getApplication() here? The JavaFX Application class does not have a setOpenFileHandler method. Is that a Mac-specific API? > > > > It's too bad that 8u40 won't have this. Being able to easily open double clicked files is pretty basic. Perhaps post 8u40 the JFX team could go through Scene Builder and identify everywhere it relies on internal APIs or custom magic and suck it into the core API, as then you'd have confidence that an app of real complexity can be done entirely with documented stuff. > > From mike at plan99.net Mon Jan 5 20:09:47 2015 From: mike at plan99.net (Mike Hearn) Date: Mon, 5 Jan 2015 21:09:47 +0100 Subject: How to handle file open requests on MacOS In-Reply-To: References: <1FBB2EF1-94A3-42EF-B526-71503CA102B9@oracle.com> <7CAAFEBF-826B-4808-B370-D21305C743A9@oracle.com> Message-ID: OK, then I might switch (or maybe not, as my current solution works ...) BTW I noticed that the javapacker ISS changes put the file association entries into HKEY_CLASSES_ROOT. Doing this results in an error half way through setup if you don't run the installer with admin privs. The current installer setup runs just fine with lowest privs, so it'd be perhaps nicer to put the registry entries under HKEY_CURRENT_USER\SOFTWARE\Classes instead: http://support.microsoft.com/kb/257592 On Mon, Jan 5, 2015 at 8:59 PM, Danno Ferrin wrote: > This code works inside of a JavaFX application too, just tried it locally. > > > You may be thinking of an older iteration of the apple application > listener classes or perhaps the native level of the code. > > On Jan 5, 2015, at 11:04 AM, Mike Hearn wrote: > > Scene Builder doesn't do it this way - AFAICT you're only allowed to have > one such event handler registered with the OS and JavaFX already registers > one ... it just doesn't expose the resulting Java events via public API. > > On Mon, Jan 5, 2015 at 6:50 PM, Danno Ferrin > wrote: > >> Oh, yes. Mac has it's own Applicaiton class. Here's the imports for the >> second file... >> >> import com.apple.eawt.AppEvent; >> import com.apple.eawt.Application; >> import java.io.File; >> import java.util.List; >> import javax.swing.SwingUtilities; >> >> The com.apple.eawt stuff is shipped with Oracle JRE and JDK, but like I >> said in my previous mail you need to pass a flag to the compiler to turn >> off it's index and read the jar. >> >> The JavaDoc has gone MIA though -- >> https://bugs.openjdk.java.net/browse/JDK-8027638 but you can peruse the >> source code to see the details, it's all OpenJDK - >> http://hg.openjdk.java.net/jdk8u/jdk8u40/jdk/file/564bca490631/src/macosx/classes/com/apple/eawt >> >> On Jan 5, 2015, at 10:43 AM, Mike Hearn wrote: >> >> > What is Application.getApplication() here? The JavaFX Application class >> does not have a setOpenFileHandler method. Is that a Mac-specific API? >> > >> > It's too bad that 8u40 won't have this. Being able to easily open >> double clicked files is pretty basic. Perhaps post 8u40 the JFX team could >> go through Scene Builder and identify everywhere it relies on internal APIs >> or custom magic and suck it into the core API, as then you'd have >> confidence that an app of real complexity can be done entirely with >> documented stuff. >> >> > > From danno.ferrin at oracle.com Mon Jan 5 20:25:03 2015 From: danno.ferrin at oracle.com (Danno Ferrin) Date: Mon, 5 Jan 2015 13:25:03 -0700 Subject: How to handle file open requests on MacOS In-Reply-To: References: <1FBB2EF1-94A3-42EF-B526-71503CA102B9@oracle.com> <7CAAFEBF-826B-4808-B370-D21305C743A9@oracle.com> Message-ID: <1564E26B-9896-4A95-80A1-A6A954DE0B59@oracle.com> set the exe to install "System Wide" .. -Bwin.exe.systemWide=true via the CLI. This will cause the application to be installed with admin privleges. Can you open a bug for this (just cut and paste the e-mail) so it will work for local installs? On Jan 5, 2015, at 1:09 PM, Mike Hearn wrote: > OK, then I might switch (or maybe not, as my current solution works ...) > > BTW I noticed that the javapacker ISS changes put the file association entries into HKEY_CLASSES_ROOT. Doing this results in an error half way through setup if you don't run the installer with admin privs. The current installer setup runs just fine with lowest privs, so it'd be perhaps nicer to put the registry entries under HKEY_CURRENT_USER\SOFTWARE\Classes instead: > > http://support.microsoft.com/kb/257592 > > On Mon, Jan 5, 2015 at 8:59 PM, Danno Ferrin wrote: > This code works inside of a JavaFX application too, just tried it locally. > > You may be thinking of an older iteration of the apple application listener classes or perhaps the native level of the code. > > On Jan 5, 2015, at 11:04 AM, Mike Hearn wrote: > >> Scene Builder doesn't do it this way - AFAICT you're only allowed to have one such event handler registered with the OS and JavaFX already registers one ... it just doesn't expose the resulting Java events via public API. >> >> On Mon, Jan 5, 2015 at 6:50 PM, Danno Ferrin wrote: >> Oh, yes. Mac has it's own Applicaiton class. Here's the imports for the second file... >> >> import com.apple.eawt.AppEvent; >> import com.apple.eawt.Application; >> import java.io.File; >> import java.util.List; >> import javax.swing.SwingUtilities; >> >> The com.apple.eawt stuff is shipped with Oracle JRE and JDK, but like I said in my previous mail you need to pass a flag to the compiler to turn off it's index and read the jar. >> >> The JavaDoc has gone MIA though -- https://bugs.openjdk.java.net/browse/JDK-8027638 but you can peruse the source code to see the details, it's all OpenJDK - http://hg.openjdk.java.net/jdk8u/jdk8u40/jdk/file/564bca490631/src/macosx/classes/com/apple/eawt >> >> On Jan 5, 2015, at 10:43 AM, Mike Hearn wrote: >> >> > What is Application.getApplication() here? The JavaFX Application class does not have a setOpenFileHandler method. Is that a Mac-specific API? >> > >> > It's too bad that 8u40 won't have this. Being able to easily open double clicked files is pretty basic. Perhaps post 8u40 the JFX team could go through Scene Builder and identify everywhere it relies on internal APIs or custom magic and suck it into the core API, as then you'd have confidence that an app of real complexity can be done entirely with documented stuff. >> >> > > From mike at plan99.net Mon Jan 5 21:30:33 2015 From: mike at plan99.net (Mike Hearn) Date: Mon, 5 Jan 2015 22:30:33 +0100 Subject: How to handle file open requests on MacOS In-Reply-To: <1564E26B-9896-4A95-80A1-A6A954DE0B59@oracle.com> References: <1FBB2EF1-94A3-42EF-B526-71503CA102B9@oracle.com> <7CAAFEBF-826B-4808-B370-D21305C743A9@oracle.com> <1564E26B-9896-4A95-80A1-A6A954DE0B59@oracle.com> Message-ID: Done: https://javafx-jira.kenai.com/browse/RT-39763 My app works fine without admin privs so I just changed the registry keys in the ISS to be the local user reg keys. On Mon, Jan 5, 2015 at 9:25 PM, Danno Ferrin wrote: > set the exe to install "System Wide" .. -Bwin.exe.systemWide=true via the > CLI. This will cause the application to be installed with admin privleges. > > Can you open a bug for this (just cut and paste the e-mail) so it will > work for local installs? > > On Jan 5, 2015, at 1:09 PM, Mike Hearn wrote: > > OK, then I might switch (or maybe not, as my current solution works ...) > > BTW I noticed that the javapacker ISS changes put the file association > entries into HKEY_CLASSES_ROOT. Doing this results in an error half way > through setup if you don't run the installer with admin privs. The current > installer setup runs just fine with lowest privs, so it'd be perhaps nicer > to put the registry entries under HKEY_CURRENT_USER\SOFTWARE\Classes > instead: > > http://support.microsoft.com/kb/257592 > > On Mon, Jan 5, 2015 at 8:59 PM, Danno Ferrin > wrote: > >> This code works inside of a JavaFX application too, just tried it >> locally. >> >> You may be thinking of an older iteration of the apple application >> listener classes or perhaps the native level of the code. >> >> On Jan 5, 2015, at 11:04 AM, Mike Hearn wrote: >> >> Scene Builder doesn't do it this way - AFAICT you're only allowed to have >> one such event handler registered with the OS and JavaFX already registers >> one ... it just doesn't expose the resulting Java events via public API. >> >> On Mon, Jan 5, 2015 at 6:50 PM, Danno Ferrin >> wrote: >> >>> Oh, yes. Mac has it's own Applicaiton class. Here's the imports for >>> the second file... >>> >>> import com.apple.eawt.AppEvent; >>> import com.apple.eawt.Application; >>> import java.io.File; >>> import java.util.List; >>> import javax.swing.SwingUtilities; >>> >>> The com.apple.eawt stuff is shipped with Oracle JRE and JDK, but like I >>> said in my previous mail you need to pass a flag to the compiler to turn >>> off it's index and read the jar. >>> >>> The JavaDoc has gone MIA though -- >>> https://bugs.openjdk.java.net/browse/JDK-8027638 but you can peruse the >>> source code to see the details, it's all OpenJDK - >>> http://hg.openjdk.java.net/jdk8u/jdk8u40/jdk/file/564bca490631/src/macosx/classes/com/apple/eawt >>> >>> On Jan 5, 2015, at 10:43 AM, Mike Hearn wrote: >>> >>> > What is Application.getApplication() here? The JavaFX Application >>> class does not have a setOpenFileHandler method. Is that a Mac-specific API? >>> > >>> > It's too bad that 8u40 won't have this. Being able to easily open >>> double clicked files is pretty basic. Perhaps post 8u40 the JFX team could >>> go through Scene Builder and identify everywhere it relies on internal APIs >>> or custom magic and suck it into the core API, as then you'd have >>> confidence that an app of real complexity can be done entirely with >>> documented stuff. >>> >>> >> >> > > From fbrunnerlist at gmx.ch Mon Jan 5 21:35:48 2015 From: fbrunnerlist at gmx.ch (Florian Brunner) Date: Mon, 05 Jan 2015 22:35:48 +0100 Subject: SplitPane layout question In-Reply-To: <1DFC95C0-D2FB-4754-90B3-20229B1C0061@gmail.com> References: <1722489.rAVav3zaCZ@andor> <1DFC95C0-D2FB-4754-90B3-20229B1C0061@gmail.com> Message-ID: <3218502.bMcyzQGxyp@andor> Hi Scott, Thanks for your answer. Unfortunatly, I still couldn't fix this issue. I tried several things including setting the prefWidth/ prefHeight of the items to the expected value, but I couldn't stop the SplitPane to effectively "hide" the first and the third (last) item during a re-layout. The two dividers changed during the layoutChildren call as follows: Divider position changed: old value: 0.10857763300760044, new value: 0.004343105320304018 Divider position changed: old value: 0.8914223669923995, new value: 0.995656894679696 I had a look at the com.sun.javafx.scene.control.skin.SplitPaneSkin (source code provided with the JDK), but unfortunatly it's not easy there to see how the areas are calculated in this situation. You mentioned the min/ max sizes. Just for testing purposes I also set the minHeight/ minWidth but this only had the effect that I couldn't readjust the divider with the mouse anymore. During the re-layout the issue still persisted. What else could I try? -Florian Am Montag, 22. Dezember 2014, 07.19:37 schrieb Scott Palmer: > The min/max sizes of the children are probably being respected. > > Scott > > > On Dec 22, 2014, at 7:13 AM, Florian Brunner wrote: > > > > Hi, > > > > Sometimes when I'm setting the divider positions of a SplitPane > > programmatically my value get overridden again by some JavaFX internal > > layout code. > > > > For debugging purposes I've added a listener to the position property of > > the divider and have thrown a RuntimeException to see the stack trace. It > > looks like this: > > > > -------------------------------------------------------------------------- > > ---------------- at > > com.sun.javafx.binding.ExpressionHelper$Generic.fireValueChangedEvent(Expr > > essionHelper.java:361)> > > at > > > > com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHe > > lper.java:81)> > > at > > > > javafx.beans.property.DoublePropertyBase.fireValueChangedEvent(DoublePrope > > rtyBase.java:106)> > > at > > > > javafx.beans.property.DoublePropertyBase.markInvalid(DoublePropertyBase.ja > > va:113)> > > at > > > > javafx.beans.property.DoublePropertyBase.set(DoublePropertyBase.java:146) > > > > at > > javafx.scene.control.SplitPane$Divider.setPosition(SplitPane.java:486) > > at > > > > com.sun.javafx.scene.control.skin.SplitPaneSkin.setAbsoluteDividerPos(Spli > > tPaneSkin.java:310)> > > at > > > > com.sun.javafx.scene.control.skin.SplitPaneSkin.setupContentAndDividerForL > > ayout(SplitPaneSkin.java:502)> > > at > > > > com.sun.javafx.scene.control.skin.SplitPaneSkin.layoutChildren(SplitPaneSk > > in.java:817)> > > at javafx.scene.control.Control.layoutChildren(Control.java:589) > > at javafx.scene.Parent.layout(Parent.java:1074) > > at javafx.scene.Parent.layout(Parent.java:1080) > > at javafx.scene.Parent.layout(Parent.java:1080) > > at javafx.scene.Parent.layout(Parent.java:1080) > > at javafx.scene.Parent.layout(Parent.java:1080) > > at javafx.scene.Parent.layout(Parent.java:1080) > > at javafx.scene.Parent.layout(Parent.java:1080) > > at javafx.scene.Parent.layout(Parent.java:1080) > > at javafx.scene.Parent.layout(Parent.java:1080) > > at javafx.scene.Scene.doLayoutPass(Scene.java:532) > > at javafx.scene.Scene$ScenePulseListener.pulse(Scene.java:2363) > > at com.sun.javafx.tk.Toolkit.lambda$runPulse$28(Toolkit.java:314) > > at com.sun.javafx.tk.Toolkit$$Lambda$230/25595560.run(Unknown Source) > > at java.security.AccessController.doPrivileged(Native Method) > > at com.sun.javafx.tk.Toolkit.runPulse(Toolkit.java:313) > > at com.sun.javafx.tk.Toolkit.firePulse(Toolkit.java:340) > > at > > com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:451 > > ) > > at > > com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:431 > > ) > > at > > > > com.sun.javafx.tk.quantum.QuantumToolkit.lambda$runToolkit$363(QuantumTool > > kit.java:298)> > > at > > > > com.sun.javafx.tk.quantum.QuantumToolkit$$Lambda$59/174792896.run(Unknown > > Source) > > > > at > > > > com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.ja > > va:95)> > > at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method) > > at > > > > com.sun.glass.ui.gtk.GtkApplication.lambda$null$45(GtkApplication.java:126 > > ) > > > > at > > com.sun.glass.ui.gtk.GtkApplication$$Lambda$55/1472148546.run(Unknown > > > > Source) > > > > at java.lang.Thread.run(Thread.java:745) > > > > -------------------------------------------------------------------------- > > ---------------- > > > > It doesn't seem to get triggered by some code of mine (at least not > > directly according to the stack trace). > > > > Why is this re-layout happing here? > > Why does it override the values I've set for the divider positions? > > How can stop this? > > > > Thanks for some insights. > > > > -Florian From david.dehaven at oracle.com Mon Jan 5 21:48:44 2015 From: david.dehaven at oracle.com (David DeHaven) Date: Mon, 5 Jan 2015 13:48:44 -0800 Subject: [8u40] RFR: RT-39764: [macosx] Media crashes when changing EQ band center frequency Message-ID: Kevin, Kirill, please review my fix for RT-39764. JIRA: https://javafx-jira.kenai.com/browse/RT-39764 Webrev: http://cr.openjdk.java.net/~ddehaven/RT-39764/rt.0/index.html -DrD- From david.dehaven at oracle.com Mon Jan 5 21:52:42 2015 From: david.dehaven at oracle.com (David DeHaven) Date: Mon, 5 Jan 2015 13:52:42 -0800 Subject: How to handle file open requests on MacOS In-Reply-To: References: <1FBB2EF1-94A3-42EF-B526-71503CA102B9@oracle.com> <7CAAFEBF-826B-4808-B370-D21305C743A9@oracle.com> <1564E26B-9896-4A95-80A1-A6A954DE0B59@oracle.com> Message-ID: I went ahead and reassigned that to you Danno. -DrD- > Done: https://javafx-jira.kenai.com/browse/RT-39763 > > My app works fine without admin privs so I just changed the registry keys > in the ISS to be the local user reg keys. > > On Mon, Jan 5, 2015 at 9:25 PM, Danno Ferrin > wrote: > >> set the exe to install "System Wide" .. -Bwin.exe.systemWide=true via the >> CLI. This will cause the application to be installed with admin privleges. >> >> Can you open a bug for this (just cut and paste the e-mail) so it will >> work for local installs? >> >> On Jan 5, 2015, at 1:09 PM, Mike Hearn wrote: >> >> OK, then I might switch (or maybe not, as my current solution works ...) >> >> BTW I noticed that the javapacker ISS changes put the file association >> entries into HKEY_CLASSES_ROOT. Doing this results in an error half way >> through setup if you don't run the installer with admin privs. The current >> installer setup runs just fine with lowest privs, so it'd be perhaps nicer >> to put the registry entries under HKEY_CURRENT_USER\SOFTWARE\Classes >> instead: >> >> http://support.microsoft.com/kb/257592 >> >> On Mon, Jan 5, 2015 at 8:59 PM, Danno Ferrin >> wrote: >> >>> This code works inside of a JavaFX application too, just tried it >>> locally. >>> >>> You may be thinking of an older iteration of the apple application >>> listener classes or perhaps the native level of the code. >>> >>> On Jan 5, 2015, at 11:04 AM, Mike Hearn wrote: >>> >>> Scene Builder doesn't do it this way - AFAICT you're only allowed to have >>> one such event handler registered with the OS and JavaFX already registers >>> one ... it just doesn't expose the resulting Java events via public API. >>> >>> On Mon, Jan 5, 2015 at 6:50 PM, Danno Ferrin >>> wrote: >>> >>>> Oh, yes. Mac has it's own Applicaiton class. Here's the imports for >>>> the second file... >>>> >>>> import com.apple.eawt.AppEvent; >>>> import com.apple.eawt.Application; >>>> import java.io.File; >>>> import java.util.List; >>>> import javax.swing.SwingUtilities; >>>> >>>> The com.apple.eawt stuff is shipped with Oracle JRE and JDK, but like I >>>> said in my previous mail you need to pass a flag to the compiler to turn >>>> off it's index and read the jar. >>>> >>>> The JavaDoc has gone MIA though -- >>>> https://bugs.openjdk.java.net/browse/JDK-8027638 but you can peruse the >>>> source code to see the details, it's all OpenJDK - >>>> http://hg.openjdk.java.net/jdk8u/jdk8u40/jdk/file/564bca490631/src/macosx/classes/com/apple/eawt >>>> >>>> On Jan 5, 2015, at 10:43 AM, Mike Hearn wrote: >>>> >>>>> What is Application.getApplication() here? The JavaFX Application >>>> class does not have a setOpenFileHandler method. Is that a Mac-specific API? >>>>> >>>>> It's too bad that 8u40 won't have this. Being able to easily open >>>> double clicked files is pretty basic. Perhaps post 8u40 the JFX team could >>>> go through Scene Builder and identify everywhere it relies on internal APIs >>>> or custom magic and suck it into the core API, as then you'd have >>>> confidence that an app of real complexity can be done entirely with >>>> documented stuff. >>>> >>>> >>> >>> >> >> From david.dehaven at oracle.com Mon Jan 5 23:07:48 2015 From: david.dehaven at oracle.com (David DeHaven) Date: Mon, 5 Jan 2015 15:07:48 -0800 Subject: [8u40] RFR: RT-39764: [macosx] Media crashes when changing EQ band center frequency In-Reply-To: References: Message-ID: <8F5BEC0C-AF9C-4E62-B40D-549BCA8A6066@oracle.com> I think Kirill's still out, Alexander can you review this? -DrD- > > Kevin, Kirill, please review my fix for RT-39764. > > JIRA: > https://javafx-jira.kenai.com/browse/RT-39764 > > Webrev: > http://cr.openjdk.java.net/~ddehaven/RT-39764/rt.0/index.html > > -DrD- > From morris.meyer at oracle.com Tue Jan 6 19:59:37 2015 From: morris.meyer at oracle.com (Morris Meyer) Date: Tue, 06 Jan 2015 14:59:37 -0500 Subject: [8u60] RFR: RT-38860: Mac system menu bar handles some accelerators incorrectly Message-ID: <54AC3EA9.4000604@oracle.com> Kevin and David, Could I get a review for this fix for Mac menu acceleration? The fix is to look for lowercase accelerators before handing them off for special casing. Thanks much, --morris WEBREV - http://cr.openjdk.java.net/~morris/RT-38860.01a JIRA - https://javafx-jira.kenai.com/browse/RT-38860 From daniel.smith at oracle.com Tue Jan 6 20:26:15 2015 From: daniel.smith at oracle.com (Dan Smith) Date: Tue, 6 Jan 2015 13:26:15 -0700 Subject: Make TableView height match content Message-ID: <3E0B7AE0-A8AD-44F8-AEEA-545985CB6D26@oracle.com> This may be an intentional limitation, but thought I'd try asking about it. Caveat: I'm a newbie, could be missing something completely obvious. I am placing a TableView (plus some other stuff) inside of a VBox, ultimately wrapped by a ScrollPane. I'd like to use the ScrollPane for all scrolling, and have the table resize fit its content. So if there are 3 rows, it's 3 rows high; if there are 100 rows, it's 100 rows high. What's the best way to tell the table to do this? The default seems to give me a fixed height of about 15 rows, regardless of how much data is included. I can set a different fixed height, but I don't know how to correctly compute the height I want, and anyway that's just a workaround for having the table figure out its height on its own. Putting this another way: TableViews automatically wrap their content in a (implicit?) scroll pane. I'd like to turn that off. Is there any way to do so? ?Dan From lehmann at media-interactive.de Wed Jan 7 10:49:21 2015 From: lehmann at media-interactive.de (Werner Lehmann) Date: Wed, 7 Jan 2015 11:49:21 +0100 Subject: Make TableView height match content In-Reply-To: <3E0B7AE0-A8AD-44F8-AEEA-545985CB6D26@oracle.com> References: <3E0B7AE0-A8AD-44F8-AEEA-545985CB6D26@oracle.com> Message-ID: <54AD0F31.5050809@media-interactive.de> Hi Dan, typically it is not a good idea to do this. TableView has a reason to manage scrolling on its own: if the tableview has 100000 items you don't want to have all these nodes in the scenegraph when it is sufficent to show the visible ones. Your approach may have some value if the number of items is quite low. In that case I'd suggest to skip tableview and put your items in that same vbox. Of course you'd have to handle columns yourself then. Werner On 06.01.2015 21:26, Dan Smith wrote: > Putting this another way: TableViews automatically wrap their content > in a (implicit?) scroll pane. I'd like to turn that off. Is there > any way to do so? From eric.le.ponner at oracle.com Wed Jan 7 10:55:49 2015 From: eric.le.ponner at oracle.com (Eric Le Ponner) Date: Wed, 7 Jan 2015 11:55:49 +0100 Subject: Make TableView height match content In-Reply-To: <54AD0F31.5050809@media-interactive.de> References: <3E0B7AE0-A8AD-44F8-AEEA-545985CB6D26@oracle.com> <54AD0F31.5050809@media-interactive.de> Message-ID: <772B8BFE-F68F-42E4-B589-F497B3FADF18@oracle.com> On 07 Jan 2015, at 11:49, Werner Lehmann wrote: > Hi Dan, > > typically it is not a good idea to do this. TableView has a reason to manage scrolling on its own: if the tableview has 100000 items you don't want to have all these nodes in the scenegraph when it is sufficent to show the visible ones. > > Your approach may have some value if the number of items is quite low. In that case I'd suggest to skip tableview and put your items in that same vbox. Of course you'd have to handle columns yourself then. GridPane would make column handling will be a bit easier. Eric > > Werner > > On 06.01.2015 21:26, Dan Smith wrote: >> Putting this another way: TableViews automatically wrap their content >> in a (implicit?) scroll pane. I'd like to turn that off. Is there >> any way to do so? From nbpratt at gmail.com Wed Jan 7 13:33:01 2015 From: nbpratt at gmail.com (Nick Pratt) Date: Wed, 7 Jan 2015 08:33:01 -0500 Subject: Building Openjfx on Centos 6.6 In-Reply-To: References: <41420E9B-67A0-4B90-A0D7-A8116A3A970E@oracle.com> <54A46862.7030709@Oracle.com> <54A6B4FD.3010203@Oracle.com> Message-ID: Does any of this output give any indication as to what's going on? Ive tried various combinations of the params for dispman.display and dispman.layer but still don't see any sign of activity on the TFT screen. On Sat, Jan 3, 2015 at 2:36 PM, Nick Pratt wrote: > This is the output from my Pi with the modified JDK: > > pi at raspberrypi ~ $ sudo /opt/java/jre/bin/java -Djavafx.platform=monocle > -Dmonocle.screen.fb="/dev/fb1" -Ddispman.display=0 -Ddispman.layer=1 > -Dprism.verbose=true -Djavafx.verbose=true -jar JavaFXApp.jar > > Prism pipeline init order: es2 sw > > Using native-based Pisces rasterizer > > Using dirty region optimizations > > Using system sized mask for primitives > > Not forcing power of 2 sizes for textures > > Using hardware CLAMP_TO_ZERO mode > > Opting in for HiDPI pixel scaling > > Prism pipeline name = com.sun.prism.es2.ES2Pipeline > > Loading ES2 native library ... prism_es2_monocle > > Loaded /opt/jdk1.8.0_06/jre/lib/ext/../arm/libprism_es2_monocle.so from > relative path > > succeeded. > > GLFactory using com.sun.prism.es2.MonocleGLFactory > > Loaded /opt/jdk1.8.0_06/jre/lib/ext/../arm/libglass_monocle.so from > relative path > > (X) Got class = class com.sun.prism.es2.ES2Pipeline > > Initialized prism pipeline: com.sun.prism.es2.ES2Pipeline > > JavaFX: using com.sun.javafx.tk.quantum.QuantumToolkit > > Maximum supported texture size: 2048 > > Non power of two texture support = true > > Maximum number of vertex attributes = 8 > > Maximum number of uniform vertex components = 544 > > Maximum number of uniform fragment components = 544 > > Maximum number of varying components = 32 > > Maximum number of texture units usable in a vertex shader = 8 > > Maximum number of texture units usable in a fragment shader = 8 > > Graphics Vendor: Broadcom > > Renderer: VideoCore IV HW > > Version: OpenGL ES 2.0 > > vsync: true vpipe: true > > Calling main(String[]) method > > Loaded /opt/jdk1.8.0_06/jre/lib/ext/../arm/libjavafx_font.so from relative > path > > Loaded /opt/jdk1.8.0_06/jre/lib/ext/../arm/libjavafx_font_freetype.so from > relative path > > ES2ResourceFactory: Prism - createStockShader: Solid_TextureRGB.frag > > > > > On Fri, Jan 2, 2015 at 10:10 AM, David Hill wrote: > >> On 12/31/14, 9:45 PM, Nick Pratt wrote: >> >> Thanks for the help. So now I can invoke Java without the link errors, >> but my JavaFX app isnt appearing on the attached TFT screen ( Note: I can >> get 'x' to appear on the the Pi TFT screen by setting the FRAMEBUFFER >> variable prior to invoking startx so I know my TFT screen is setup and the >> right Kernel mods are enabled and applied) >> >> Notwithstanding the error messages below, am I invoking Java correctly >> here : (based on the comments in >> https://javafx-jira.kenai.com/browse/RT-36960 ) >> >> >> I don't have access to your configuration (I only have a Pi with HDMI), >> so this is going to be hard for me to help with. You do need the sudo >> because of the permissions issues with the input devices. >> >> When Daniel added the code to mentioned in RT-36960, he did not have that >> configuration either, so we will need help understanding what is happening. >> >> You might try adding -Dprism.verbose=true -Djavafx.verbose=true >> and we might get lucky. >> >> >> pi at raspberrypi ~ $ java -Djavafx.platform=monocle >> -Dmonocle.screen.fb="/dev/fb1" -Ddispman.display=0 -Ddispman.layer=1 -jar >> JavaFXApp.jar >> >> Udev: Failed to write to /sys/class/input/mice/uevent >> >> Check that you have permission to access input devices >> >> Udev: Failed to write to /sys/class/input/event0/uevent >> >> Check that you have permission to access input devices >> >> Udev: Failed to write to /sys/class/input/input0/uevent >> >> Check that you have permission to access input devices >> >> Udev: Failed to write to /sys/class/input/mouse0/uevent >> >> Check that you have permission to access input devices >> >> >> If I run the above command as sudo root, then I dont see the errors >> printed, but still nothing on the TFT screen. >> >> Regards >> >> >> Nick >> >> >> >> On Wed, Dec 31, 2014 at 4:19 PM, David Hill >> wrote: >> >>> >>> Nick found a good one, took me a while to find the obvious :-p >>> >>> The UnsatisfiedLinkError was caused by old ARM JFX jars that were not >>> overriden when he copied the new bits into the JDK. >>> >>> On ARM we have a split set of jars for FX that we ship, but when we >>> build, we only build the single jfxrt.jar like the desktop. The split is >>> post build packaging. So Nick was mixing old and new jars, which is what >>> the Wiki told him to do. Doh. >>> >>> I updated the wiki for OpenJFX building and cross building with some >>> clarifications, notes and such, so hopefully the next solider will not find >>> so many mines. >>> >>> Dave >>> >>> On 12/29/14, 9:46 PM, Nick Pratt wrote: >>> >>>> So I made some progress here: >>>> >>>> I had installed Ubuntu 14.x 64-bit version. Once I installed the >>>> ia32-libs >>>> (replacement versions for Ubuntu 14 since ia32-libs) isnt available >>>> anymore, I got the ARM HF to build. I installed on my Pi, but Im >>>> getting >>>> link errors when I try and run a JFX program: >>>> >>>> java -Djavafx.platform=monocle -Dmonocle.screen.fb=/dev/fb1 -jar >>>> JavaFXApp.jar >>>> >>>> Exception in thread "main" java.lang.reflect.InvocationTargetException >>>> >>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>>> >>>> at >>>> >>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) >>>> >>>> at >>>> >>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >>>> >>>> at java.lang.reflect.Method.invoke(Method.java:483) >>>> >>>> at sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:767) >>>> >>>> Caused by: java.lang.RuntimeException: java.lang.UnsatisfiedLinkError: >>>> com.sun.glass.ui.monocle.linux.Udev._open()J >>>> >>>> at >>>> com.sun.javafx.tk.quantum.QuantumToolkit.startup(QuantumToolkit.java:296) >>>> >>>> at >>>> com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:216) >>>> >>>> at >>>> >>>> com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:653) >>>> >>>> at >>>> >>>> com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:314) >>>> >>>> at >>>> >>>> com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:305) >>>> >>>> ... 5 more >>>> >>>> Caused by: java.lang.UnsatisfiedLinkError: >>>> com.sun.glass.ui.monocle.linux.Udev._open()J >>>> >>>> at com.sun.glass.ui.monocle.linux.Udev._open(Native Method) >>>> >>>> at com.sun.glass.ui.monocle.linux.Udev.(Udev.java:68) >>>> >>>> at com.sun.glass.ui.monocle.linux.Udev.getInstance(Udev.java:54) >>>> >>>> at >>>> >>>> com.sun.glass.ui.monocle.linux.LinuxInputDeviceRegistry.(LinuxInputDeviceRegistry.java:77) >>>> >>>> at >>>> >>>> com.sun.glass.ui.monocle.linux.LinuxPlatform.createInputDeviceRegistry(LinuxPlatform.java:19) >>>> >>>> at >>>> >>>> com.sun.glass.ui.monocle.NativePlatform.getInputDeviceRegistry(NativePlatform.java:58) >>>> >>>> at >>>> >>>> com.sun.glass.ui.monocle.MonocleApplication.(MonocleApplication.java:78) >>>> >>>> at >>>> >>>> com.sun.glass.ui.monocle.MonoclePlatformFactory.createApplication(MonoclePlatformFactory.java:45) >>>> >>>> at com.sun.glass.ui.Application.run(Application.java:145) >>>> >>>> at >>>> com.sun.javafx.tk.quantum.QuantumToolkit.startup(QuantumToolkit.java:281) >>>> >>>> ... 9 more >>>> >>>> >>>> >>>> So then I figured I try and get an Ubuntu 12.x 32-bit VM up and running >>>> and >>>> use that for a OpenJFX build since this is mentioned in the OpenJFX >>>> wiki. >>>> However, a clean install cant run sudo apt-get update due to missing >>>> package definitions - have Ubuntu (or whoever maintains this set of >>>> repos) >>>> removed the older 12.x packages (or started to)? I cant get gcc >>>> installed >>>> or updated because of this - and this is a fresh install direct from the >>>> Ubuntu 12.0.4 .iso >>>> >>>> On a related note, its not clear to me what Im supposed to do after >>>> compiling OpenJFX - what needs to be installed and where does it need >>>> to go >>>> - JAVA_HOME/jre/lib ? (just replace everything in there?) >>>> >>>> >>>> >>>> On Sun, Dec 28, 2014 at 9:11 PM, Morris Meyer >>>> wrote: >>>> >>>> What JDK are you using? That looks like an older version of the String >>>>> class. Gradle 1.8 is recommended. >>>>> >>>>> --mm >>>>> >>>>> >>>>> On Dec 28, 2014, at 7:35 PM, Nick Pratt wrote: >>>>>> >>>>>> Does anyone have any tips on getting Openjfx (latest source as of >>>>>> 2014-12-28 19:00 EST) to build on a Centos 6.6 box? >>>>>> >>>>>> Im following the wiki for Linux builds and grabbed Gradle 1.8 (does >>>>>> the >>>>>> latest 2.2 work?) but Im failing to build with the following error: >>>>>> >>>>>> [work at nyprod1 rt]# /opt/gradle/bin/gradle >>>>>> >>>>>> :buildSrc:generateGrammarSource UP-TO-DATE >>>>>> >>>>>> :buildSrc:compileJava UP-TO-DATE >>>>>> >>>>>> :buildSrc:compileGroovy UP-TO-DATE >>>>>> >>>>>> :buildSrc:processResources UP-TO-DATE >>>>>> >>>>>> :buildSrc:classes UP-TO-DATE >>>>>> >>>>>> :buildSrc:jar UP-TO-DATE >>>>>> >>>>>> :buildSrc:assemble UP-TO-DATE >>>>>> >>>>>> :buildSrc:compileTestJava UP-TO-DATE >>>>>> >>>>>> :buildSrc:compileTestGroovy UP-TO-DATE >>>>>> >>>>>> :buildSrc:processTestResources UP-TO-DATE >>>>>> >>>>>> :buildSrc:testClasses UP-TO-DATE >>>>>> >>>>>> :buildSrc:test UP-TO-DATE >>>>>> >>>>>> :buildSrc:check UP-TO-DATE >>>>>> >>>>>> :buildSrc:build UP-TO-DATE >>>>>> >>>>>> >>>>>> FAILURE: Build failed with an exception. >>>>>> >>>>>> >>>>>> * Where: >>>>>> >>>>>> Script '/work/WorkingCopies/rt/buildSrc/linux.gradle' line: 78 >>>>>> >>>>>> >>>>>> * What went wrong: >>>>>> >>>>>> A problem occurred evaluating script. >>>>>> >>>>>> Cannot invoke method split() on null object >>>>>>> >>>>>> >>>>>> * Try: >>>>>> >>>>>> Run with --stacktrace option to get the stack trace. Run with --info >>>>>> or >>>>>> --debug option to get more log output. >>>>>> >>>>>> >>>>>> BUILD FAILED >>>>>> >>>>>> >>>>>> Total time: 8.96 secs >>>>>> >>>>>> >>>>>> If anyone has any tips or suggestions to get this compiling on Centos >>>>>> 6.x >>>>>> they would be most appreciated. >>>>>> >>>>> >>> >>> -- >>> David Hill >>> Java Embedded Development >>> >>> "A man's feet should be planted in his country, but his eyes should >>> survey the world." >>> -- George Santayana (1863 - 1952) >>> >>> >> >> >> -- >> David Hill >> Java Embedded Development >> >> "A man's feet should be planted in his country, but his eyes should survey the world." >> -- George Santayana (1863 - 1952) >> >> > From tomas.mikula at gmail.com Wed Jan 7 13:48:12 2015 From: tomas.mikula at gmail.com (Tomas Mikula) Date: Wed, 7 Jan 2015 14:48:12 +0100 Subject: Make TableView height match content In-Reply-To: <54AD0F31.5050809@media-interactive.de> References: <3E0B7AE0-A8AD-44F8-AEEA-545985CB6D26@oracle.com> <54AD0F31.5050809@media-interactive.de> Message-ID: On Wed, Jan 7, 2015 at 11:49 AM, Werner Lehmann wrote: > Hi Dan, > > typically it is not a good idea to do this. TableView has a reason to manage > scrolling on its own: if the tableview has 100000 items you don't want to > have all these nodes in the scenegraph when it is sufficent to show the > visible ones. On that note, it would be interesting to explore the idea of managing TableView's (ListView's, TreeView's) scroll by its parent (e.g. a parent ScrollPane) while still keeping the content virtualized. It's not unreasonable to ask for, and not impossible either. It's just not how things are right now. Tomas From robinndi at aol.com Thu Jan 8 03:10:42 2015 From: robinndi at aol.com (Robin & Di Hayman) Date: Wed, 07 Jan 2015 22:10:42 -0500 Subject: WINDOWS_NATIVE_COMPILE_ENVIRONMENT is wrong with 32-bit cygwin Message-ID: <54ADF532.7060008@aol.com> I am trying to build JavaFX with native media enabled. For background, read *The initial problem* below. I run gradle in a mintty window. So I am stuck in build.gradle ( line 2392 for me) in def buildGlib{ .... I have progressed somewhat since the initial problem and understand the problem but not the root cause. I have put a few (Java) debugging lines using the code below and summarised the result here. Findings: This is just a path problem. I have 32-bit cygwin installed and the DOS path is correct . / Initial DOS path========== C:\cygwin\usr\local\bin; C:\cygwin\bin; C:\ProgramData\Oracle\Java\javapath; C:\Tcl\bin;/ etc *WINDOWS_NATIVE_COMPILE_ENVIRONMENT is wrong:* / WINDOWS_NATIVE_COMPILE_ENVIRONMENT=======[ ...., PATH:; . ...;C:/Program Files/TortoiseHg/;C:/MinGW/msys/1.0/bin;C:/MinGW/bin; e:/robins_root/Gradle/gradle-1.8-all/gradle-1.8/bin;C:/cygwin64/bin; ,INCLUDE .../ As a result make $(shell cygpath ... can't work! To help me understand the problem, my code below creates a /newEnv /which /make /uses to buildGlib without error ( although buildWinGStreamer still fails since I only fixed the local environment for buildGlib not the global WINDOWS_NATIVE_COMPILE_ENVIRONMENT. I have tried to find which code is turning /C:\cygwin\bin /into /C:/cygwin64/bin/ but so far I have not seen where this is done. I have looked in build.gradle & buildSrc\win.gradle and did not see anything there. I also tried installing cygwin-64. But then I got errors where mintty was looking for bash in c:\cygwin when it was in c:cygwin64! Then I tried loading Red Hat cygwin-32 using installer 2.844. It copied all the files into c:\rhcygwin , the installer then created a desktop shortcut pointing to c:\rhcygwin\mintty. As soon as I clicked it I got an error saying Can't find c:\cygwin\bash.exe! So I renamed the folder to cygwin! A can of 32-bit & 64-bit worms. Who is taking c:\cygwin and turning into c:\cygwin64? There is no such folder. Thanks robinH P.S. It would be helpful if the page Building OpenJFX was more specific about the versions of /Cygwin /& /make /which should be used as it is quite specific for most of the other tools. /Cygwin/make/ has been making changes in how they deal with DOS paths so perhaps they broke something. Perhaps something on tools 64 vs 32 too. -------------------------------------------- code --------------------------------------------------- in def buildGlib{ , thus def buildGlib = task("build${t.capital}Glib", dependsOn: [buildResources]) { enabled = IS_COMPILE_MEDIA //RBH System.out.println( "\n\nInitial DOS path=======" + System.getenv().get("PATH") ) System.out.println( "\n\nWINDOWS_NATIVE_COMPILE_ENVIRONMENT=====" + WINDOWS_NATIVE_COMPILE_ENVIRONMENT ) Map newEnv = new HashMap(WINDOWS_NATIVE_COMPILE_ENVIRONMENT) thePath = newEnv["PATH"] thePath = thePath.replace("cygwin64","cygwin") newEnv["PATH"] = thePath System.out.println( "\n\nnewEnv=================" + newEnv ) doLast { exec { //environment(WINDOWS_NATIVE_COMPILE_ENVIRONMENT) environment(newEnv) commandLine ("make", "${makeJobsFlag}", "-C", "${nativeSrcDir}/gstreamer/projects/${projectDir}/glib-lite") args("OUTPUT_DIR=${nativeOutputDir}", "BUILD_TYPE=${buildType}", "BASE_NAME=glib-lite", IS_64 ? "ARCH=x64" : "ARCH=x32", "RESOURCE=${nativeOutputDir}/${buildType}/${WIN.media.glibRcFile}") } } } ---------------------------------------------- ------------------------------------------------- The initial problem ------------------------------------------------------------------------- I find JFX media HLS is not working well for me. It dies after about 30s whereas VLC can pick up the 'dead' m3u8 and continue playing fine, so I decided to build from source to try to see what is going on. I have followed Michael Berry's efforts extending media codecs too. Also, I found this (November 26, 2014 at 15:04 ) comment interesting in response to the question "Is there any support on gstreamer 0.10 for Adaptive Streaming ? Smooth Streaming, Dash etc. ?" . 'Slomo' replied /"There is some initial support for HLS but don?t use 0.10 for anything really. It?s no longer maintained since more than 2 years and a lot has happened since then"/. The rest of his blog ('*HTTP Adaptive Streaming with GStreamer*') seemed to indicate he had some knowledge in this area. So I decided to build from source to see more of what is going on. I chose to build 8u-dev/rt from Hg, although that may not have been the best choice. The initial build went fine (without native). It was */easy/*. Congratulations! Then I made a gradle.properties and set COMPILE_MEDIA = true and got errors. These are in of build.gradle ( line 2392 for me) in def buildGlib{ .... This exec's the makefile in E:\robins_root\software\JavaFX\modules\media\src\main\native\gstreamer\projects\win\glib-lite. The errors look like: /bin/sh: cygpath: command not found / Makefile:71: recipe for target '/libglib-2.28.8.lib' failed/ /( I have messed up the line numbers ignore 71)/ And make returns 2 and error 127. Now from the cywin window, I can do /Robin at MY-PC /cygdrive/e/robins_root/software/JavaFX// //$ cygpath --help// //cygpath --help// //Usage: cygpath (-d|-m|-u|-w|-t TYPE) [-f FILE] [OPTION]... NAME.../ etc and also /$ echo $SHELL// //echo $SHELL// //C:\cygwin\bin\bash.exe/ and echo path starts off /usr/local/bin: /usr/bin: /cygdrive/c/ProgramData/Oracle/Java/javapath: /cygdrive/c/Tcl/bin: /cygdrive/c/Windows/system32: /cygdrive/c/Windows: ... If I manually run the makefile from its folder, fixing up any needed variables, it seemed to run OK. ( Although my VS2010 was initially damaged. I had to set up the INCLUDE environment variable since I was getting windows.h not found. I think this is caused somehow by having VS2010, VS2011 & VS2012 originally, then removing all three and doing a clean install of VS2010. I googled reports of others having this problem of corrupted include path.) My installation is unusual (?) in that all my JFX builder folders are on e: whereas Cywgin is on c: . I need to use both paths /cygdrive/e/ and /cygdrive/c/. The detailed build instructions are detailed about versions for most programs, but not for cygwin & make. I wonder which version you use in your builds? Does Gradle change the SHELL variable? Does Gradle/cygwin/make assume all programs are on say a C: drive? mintty has no problem finding cygpath. Is Gradle looking for cygpath on e: instead of c:? Now I have been playing with PATH & SHELL but nothing I do seems to help. Any suggestions? --------------------------------------------------------------------------- I am using: Gradle 1.8 Build time: 2013-09-24 07:32:33 UTC Revision: 7970ec3503b4f5767ee1c1c69f8b4186c4763e3d Groovy:1.8.6 Ant: Apache Ant(TM) version 1.9.2 compiled on July 8 2013 Ivy: 2.2.0 JVM: 1.8.0_05 (Oracle Corporation 25.5-b02) OS: Windows 8.1 6.3 x86 $uname -a CYGWIN_NT-6.3-WOW64 ROBIN-PC 1.7.33-2(0.280/5/3) 2014-11-13 15:45 i686 Cygwin make -v GNU Make 4.0 Built for i686-pc-cygwin cygwin install, version 2.859 I used CygWin setup-x86.exe so I presume this is 32-bit Cygwin JAVA_HOME points to (X86) jdk1.8.0.05 JRE_HOME (X86) jre8 My machine also has 64-bit jdk1.8.0_25 & jdk1.8.0_05in Program Files From robinndi at aol.com Thu Jan 8 20:07:11 2015 From: robinndi at aol.com (Robin & Di Hayman) Date: Thu, 08 Jan 2015 15:07:11 -0500 Subject: Fwd: WINDOWS_NATIVE_COMPILE_ENVIRONMENT is wrong with 32-bit cygwin -SOLVED In-Reply-To: <54ADF532.7060008@aol.com> References: <54ADF532.7060008@aol.com> Message-ID: <54AEE36F.6000905@aol.com> Simply put, there was a bad PATH to cygpath.exe I think this is what was happening ... During the first pass of a build after clean, the system PATH at that time is saved in home/build/windows_tools.properties as WINDOWS_VS_PATH. On subsequent builds, setupTools() sees that windows_tools.properties exists, so uses it. Then WINDOWS_VS_PATH is updated in win.gradle setupTools() to merge the current path. However, what is in windows_tools.properties, in my case a bad c:\cygwin64\bin 'wins' over c:\cygwin\bin which is in the correct current path. I didn't puzzle how this can happen exactly. I would have expected to see both c:\cygwin64\bin and c:\cygwin\bin in the new WINDOWS_VS_PATH. Subsequently, WINDOWS_VS_PATH replaces its old value in WINDOWS_NATIVE_COMPILE_ENVIRONMENT. And hence my problem, make-shell-cygpath could not find cygpath.exe. My quick fix was to delete [home]/build/windows_tools.properties and then things started to work much better. The origin of the problem was that I had at one time installed cygwin64, but I later replaced it with cygwin32 and the old location got stuck in windows_tools.properties. If I had been smarter, I would have just done gradle clean after changing the tools! Robin From adam at adamish.com Fri Jan 9 07:34:28 2015 From: adam at adamish.com (Adam Granger) Date: Fri, 9 Jan 2015 06:34:28 -0100 Subject: SceneBuilder Message-ID: I raised this December 4th, I understand everyone is busy, but this hasn't even been triaged. Did I fill out the wrong fields the JIRA? Cannot set layout constraints for included FXML (fx:include) - http://javafx-jira.kenai.com/browse/DTL-6915 When including another FXML node (via File -> Import -> FXML) there is no way to set its layout attributes using the Scene Builder tool, the layout panel is empty. For example, if I wished to set the following child.fxml to fill its parent VBox vertically this cannot be done using the UI. FXML seems to support this "under the hood", if I manually edit the file, scene builder preview (and my actual app using FXMLLoader) work correctly. According to my colleague this was possible in an older version of Scene Builder Regards, Adam. From eric.le.ponner at oracle.com Fri Jan 9 09:11:46 2015 From: eric.le.ponner at oracle.com (Eric Le Ponner) Date: Fri, 9 Jan 2015 10:11:46 +0100 Subject: SceneBuilder In-Reply-To: References: Message-ID: Hi Adam, You correctly filled the JIRA. We're simply late. Indeed Scene Builder 1.x used to allow to setup (some) properties on fx:include object. And Scene Builder 2 does not provide this. We should probably reconsider this choice. Note that you may wrap your fx:include in a StackPane instance and tune the layout constraints on the StackPane using SB. This works pretty well. And it avoids the parent FXML file to make some assumptions on the child FXML file. Regards, Eric On 09 Jan 2015, at 08:34, Adam Granger wrote: > I raised this December 4th, I understand everyone is busy, but this hasn't > even been triaged. Did I fill out the wrong fields the JIRA? > > Cannot set layout constraints for included FXML (fx:include) > - http://javafx-jira.kenai.com/browse/DTL-6915 > > When including another FXML node (via File -> Import -> FXML) there is no > way to set its layout attributes using the Scene Builder tool, the layout > panel is empty. > > For example, if I wished to set the following child.fxml to fill its > parent VBox vertically this cannot be done using the UI. > > > > > minWidth="-Infinity" prefHeight="500.0" prefWidth="500.0" > xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1"> > > > > > > FXML seems to support this "under the hood", if I manually edit the file, > scene builder preview (and my actual app using FXMLLoader) work correctly. > > minWidth="-Infinity" prefHeight="500.0" prefWidth="500.0" > xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1"> > > > > > > According to my colleague this was possible in an older version of Scene > Builder > > Regards, > > Adam. > > From tom.schindl at bestsolution.at Fri Jan 9 16:27:10 2015 From: tom.schindl at bestsolution.at (Tom Schindl) Date: Fri, 09 Jan 2015 17:27:10 +0100 Subject: Font rendering (on OS-X) Message-ID: <54B0015E.6080206@bestsolution.at> Hi, I know font rendering has been discussed a lot already on this forum but I don't want to talk about sharpness of text but very strange effects of glyph positioning. The program below switches between 1 and 2 text-nodes which results in strange effects at least on my OS-X box. With a font size 15 you see the 2nd text shifting a bit to the right now you could explain this with rounding but it gets even more interesting if you make the font size 25 suddenly the F is changing its position! I recorded a video showing the behavior on my system at http://efxclipse.bestsolution.at/ScreenFlow.mp4 My questions are: a) does that happen on other OSes as well b) does anyone have an idea where I could start searching c) do you think this can be fixed? > package application; > > > import javafx.application.Application; > import javafx.scene.Node; > import javafx.scene.Scene; > import javafx.scene.control.Button; > import javafx.scene.control.TextField; > import javafx.scene.layout.VBox; > import javafx.scene.text.Font; > import javafx.scene.text.Text; > import javafx.scene.text.TextFlow; > import javafx.stage.Stage; > > public class TestMe extends Application { > > private TextField fontSize; > private TextField text; > > @Override > public void start(Stage primaryStage) throws Exception { > VBox b = new VBox(); > > text = new TextField("ABCDEF"); > b.getChildren().add(text); > > fontSize = new TextField("15"); > b.getChildren().add(fontSize); > > TextFlow f = new TextFlow(createText(text.getText())); > > b.getChildren().add(f); > Button bu = new Button("Split text"); > bu.setOnAction((e) -> { > if( f.getChildren().size() == 1 ) { > int l = text.getText().length() / 2; > > f.getChildren().setAll(createText(text.getText().substring(0, l)),createText(text.getText().substring(l))); > bu.setText("One Text"); > } else { > f.getChildren().setAll(createText(text.getText())); > bu.setText("Split text"); > } > }); > b.getChildren().add(bu); > > Scene s = new Scene(b); > s.getStylesheets().add(TestMe.class.getResource("application.css").toExternalForm()); > primaryStage.setScene(s); > primaryStage.show(); > } > > private Node createText(String text) { > Text t = new Text(text); > // t.setSmooth(false); > t.setFont(Font.font(Integer.parseInt(fontSize.getText()))); > return t; > } > > public static void main(String[] args) { > Application.launch(args); > } > } Tom -- Thomas Schindl, CTO BestSolution.at EDV Systemhaus GmbH Eduard-Bodem-Gasse 5-7, A-6020 Innsbruck http://www.bestsolution.at/ Reg. Nr. FN 222302s am Firmenbuchgericht Innsbruck From philip.race at oracle.com Fri Jan 9 17:37:00 2015 From: philip.race at oracle.com (Phil Race) Date: Fri, 09 Jan 2015 09:37:00 -0800 Subject: Font rendering (on OS-X) In-Reply-To: <54B0015E.6080206@bestsolution.at> References: <54B0015E.6080206@bestsolution.at> Message-ID: <54B011BC.7090809@oracle.com> Glyphs advances are accumulated in floating point and the rendering of the glyph sub-pixel positioned. The nodes however are I expect, positioned at an integer position and in any case I am pretty sure that the fractional advance at the end of "ABC" is not passed on to the start of drawing "DEF". So I think you are just seeing a subtle consequence of rounding because the starting position of the first glyph in the 2nd text node/string is not the same as you will get if you draw it as one string. Where exactly it happens (at which glyph) will depend on the way the numbers work out. Whether it happens elsewhere will depend on the advances the platform returns, but its possible. Its possible that with some amount of work that TextFlow could pass on this information so that its less apparent but I don't know off-hand what would be involved or how complete a fix it would be. Nor whether its actually worth the effort for this case. -phil. On 1/9/15 8:27 AM, Tom Schindl wrote: > Hi, > > I know font rendering has been discussed a lot already on this forum but > I don't want to talk about sharpness of text but very strange effects of > glyph positioning. > > The program below switches between 1 and 2 text-nodes which results in > strange effects at least on my OS-X box. > > With a font size 15 you see the 2nd text shifting a bit to the right now > you could explain this with rounding but it gets even more interesting > if you make the font size 25 suddenly the F is changing its position! > > I recorded a video showing the behavior on my system at > http://efxclipse.bestsolution.at/ScreenFlow.mp4 > > My questions are: > a) does that happen on other OSes as well > b) does anyone have an idea where I could start searching > c) do you think this can be fixed? > > >> package application; >> >> >> import javafx.application.Application; >> import javafx.scene.Node; >> import javafx.scene.Scene; >> import javafx.scene.control.Button; >> import javafx.scene.control.TextField; >> import javafx.scene.layout.VBox; >> import javafx.scene.text.Font; >> import javafx.scene.text.Text; >> import javafx.scene.text.TextFlow; >> import javafx.stage.Stage; >> >> public class TestMe extends Application { >> >> private TextField fontSize; >> private TextField text; >> >> @Override >> public void start(Stage primaryStage) throws Exception { >> VBox b = new VBox(); >> >> text = new TextField("ABCDEF"); >> b.getChildren().add(text); >> >> fontSize = new TextField("15"); >> b.getChildren().add(fontSize); >> >> TextFlow f = new TextFlow(createText(text.getText())); >> >> b.getChildren().add(f); >> Button bu = new Button("Split text"); >> bu.setOnAction((e) -> { >> if( f.getChildren().size() == 1 ) { >> int l = text.getText().length() / 2; >> >> f.getChildren().setAll(createText(text.getText().substring(0, l)),createText(text.getText().substring(l))); >> bu.setText("One Text"); >> } else { >> f.getChildren().setAll(createText(text.getText())); >> bu.setText("Split text"); >> } >> }); >> b.getChildren().add(bu); >> >> Scene s = new Scene(b); >> s.getStylesheets().add(TestMe.class.getResource("application.css").toExternalForm()); >> primaryStage.setScene(s); >> primaryStage.show(); >> } >> >> private Node createText(String text) { >> Text t = new Text(text); >> // t.setSmooth(false); >> t.setFont(Font.font(Integer.parseInt(fontSize.getText()))); >> return t; >> } >> >> public static void main(String[] args) { >> Application.launch(args); >> } >> } > > Tom > From philip.race at oracle.com Fri Jan 9 17:38:36 2015 From: philip.race at oracle.com (Phil Race) Date: Fri, 09 Jan 2015 09:38:36 -0800 Subject: Font rendering (on OS-X) In-Reply-To: <54B011BC.7090809@oracle.com> References: <54B0015E.6080206@bestsolution.at> <54B011BC.7090809@oracle.com> Message-ID: <54B0121C.5030504@oracle.com> PS .. your video came up all black for me .. -phil. On 1/9/15 9:37 AM, Phil Race wrote: > Glyphs advances are accumulated in floating point and the rendering of > the glyph sub-pixel positioned. > The nodes however are I expect, positioned at an integer position and in > any case I am pretty sure that the fractional advance at the end of > "ABC" is not passed > on to the start of drawing "DEF". > So I think you are just seeing a subtle consequence of rounding > because the > starting position of the first glyph in the 2nd text node/string is > not the same as you will get if > you draw it as one string. Where exactly it happens (at which glyph) > will depend on > the way the numbers work out. Whether it happens elsewhere will depend > on the advances the platform returns, but its possible. > > Its possible that with some amount of work that TextFlow could pass on > this > information so that its less apparent but I don't know off-hand what > would > be involved or how complete a fix it would be. Nor whether its > actually worth > the effort for this case. > > -phil. > > On 1/9/15 8:27 AM, Tom Schindl wrote: >> Hi, >> >> I know font rendering has been discussed a lot already on this forum but >> I don't want to talk about sharpness of text but very strange effects of >> glyph positioning. >> >> The program below switches between 1 and 2 text-nodes which results in >> strange effects at least on my OS-X box. >> >> With a font size 15 you see the 2nd text shifting a bit to the right now >> you could explain this with rounding but it gets even more interesting >> if you make the font size 25 suddenly the F is changing its position! >> >> I recorded a video showing the behavior on my system at >> http://efxclipse.bestsolution.at/ScreenFlow.mp4 >> >> My questions are: >> a) does that happen on other OSes as well >> b) does anyone have an idea where I could start searching >> c) do you think this can be fixed? >> >> >>> package application; >>> >>> >>> import javafx.application.Application; >>> import javafx.scene.Node; >>> import javafx.scene.Scene; >>> import javafx.scene.control.Button; >>> import javafx.scene.control.TextField; >>> import javafx.scene.layout.VBox; >>> import javafx.scene.text.Font; >>> import javafx.scene.text.Text; >>> import javafx.scene.text.TextFlow; >>> import javafx.stage.Stage; >>> >>> public class TestMe extends Application { >>> >>> private TextField fontSize; >>> private TextField text; >>> >>> @Override >>> public void start(Stage primaryStage) throws Exception { >>> VBox b = new VBox(); >>> >>> text = new TextField("ABCDEF"); >>> b.getChildren().add(text); >>> >>> fontSize = new TextField("15"); >>> b.getChildren().add(fontSize); >>> >>> TextFlow f = new TextFlow(createText(text.getText())); >>> >>> b.getChildren().add(f); >>> Button bu = new Button("Split text"); >>> bu.setOnAction((e) -> { >>> if( f.getChildren().size() == 1 ) { >>> int l = text.getText().length() / 2; >>> >>> f.getChildren().setAll(createText(text.getText().substring(0, >>> l)),createText(text.getText().substring(l))); >>> bu.setText("One Text"); >>> } else { >>> f.getChildren().setAll(createText(text.getText())); >>> bu.setText("Split text"); >>> } >>> }); >>> b.getChildren().add(bu); >>> >>> Scene s = new Scene(b); >>> s.getStylesheets().add(TestMe.class.getResource("application.css").toExternalForm()); >>> primaryStage.setScene(s); >>> primaryStage.show(); >>> } >>> >>> private Node createText(String text) { >>> Text t = new Text(text); >>> // t.setSmooth(false); >>> t.setFont(Font.font(Integer.parseInt(fontSize.getText()))); >>> return t; >>> } >>> >>> public static void main(String[] args) { >>> Application.launch(args); >>> } >>> } >> >> Tom >> > From kevin.rushforth at oracle.com Fri Jan 9 17:47:08 2015 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Fri, 09 Jan 2015 09:47:08 -0800 Subject: Font rendering (on OS-X) In-Reply-To: <54B0121C.5030504@oracle.com> References: <54B0015E.6080206@bestsolution.at> <54B011BC.7090809@oracle.com> <54B0121C.5030504@oracle.com> Message-ID: <54B0141C.9060509@oracle.com> I tried the video on Firefox, which said "Video can't be played because the file is corrupt." So I tried it on Chrome and it plays fine for me (as an aside, I find Chrome to be the most robust browser these days even though I haven't quite made the switch from Firefox as my default browser). -- Kevin Phil Race wrote: > PS .. your video came up all black for me .. > > -phil. > > On 1/9/15 9:37 AM, Phil Race wrote: >> Glyphs advances are accumulated in floating point and the rendering >> of the glyph sub-pixel positioned. >> The nodes however are I expect, positioned at an integer position and in >> any case I am pretty sure that the fractional advance at the end of >> "ABC" is not passed >> on to the start of drawing "DEF". >> So I think you are just seeing a subtle consequence of rounding >> because the >> starting position of the first glyph in the 2nd text node/string is >> not the same as you will get if >> you draw it as one string. Where exactly it happens (at which glyph) >> will depend on >> the way the numbers work out. Whether it happens elsewhere will depend >> on the advances the platform returns, but its possible. >> >> Its possible that with some amount of work that TextFlow could pass >> on this >> information so that its less apparent but I don't know off-hand what >> would >> be involved or how complete a fix it would be. Nor whether its >> actually worth >> the effort for this case. >> >> -phil. >> >> On 1/9/15 8:27 AM, Tom Schindl wrote: >>> Hi, >>> >>> I know font rendering has been discussed a lot already on this forum >>> but >>> I don't want to talk about sharpness of text but very strange >>> effects of >>> glyph positioning. >>> >>> The program below switches between 1 and 2 text-nodes which results in >>> strange effects at least on my OS-X box. >>> >>> With a font size 15 you see the 2nd text shifting a bit to the right >>> now >>> you could explain this with rounding but it gets even more interesting >>> if you make the font size 25 suddenly the F is changing its position! >>> >>> I recorded a video showing the behavior on my system at >>> http://efxclipse.bestsolution.at/ScreenFlow.mp4 >>> >>> My questions are: >>> a) does that happen on other OSes as well >>> b) does anyone have an idea where I could start searching >>> c) do you think this can be fixed? >>> >>> >>>> package application; >>>> >>>> >>>> import javafx.application.Application; >>>> import javafx.scene.Node; >>>> import javafx.scene.Scene; >>>> import javafx.scene.control.Button; >>>> import javafx.scene.control.TextField; >>>> import javafx.scene.layout.VBox; >>>> import javafx.scene.text.Font; >>>> import javafx.scene.text.Text; >>>> import javafx.scene.text.TextFlow; >>>> import javafx.stage.Stage; >>>> >>>> public class TestMe extends Application { >>>> >>>> private TextField fontSize; >>>> private TextField text; >>>> >>>> @Override >>>> public void start(Stage primaryStage) throws Exception { >>>> VBox b = new VBox(); >>>> >>>> text = new TextField("ABCDEF"); >>>> b.getChildren().add(text); >>>> >>>> fontSize = new TextField("15"); >>>> b.getChildren().add(fontSize); >>>> >>>> TextFlow f = new TextFlow(createText(text.getText())); >>>> >>>> b.getChildren().add(f); >>>> Button bu = new Button("Split text"); >>>> bu.setOnAction((e) -> { >>>> if( f.getChildren().size() == 1 ) { >>>> int l = text.getText().length() / 2; >>>> >>>> f.getChildren().setAll(createText(text.getText().substring(0, >>>> l)),createText(text.getText().substring(l))); >>>> bu.setText("One Text"); >>>> } else { >>>> f.getChildren().setAll(createText(text.getText())); >>>> bu.setText("Split text"); >>>> } >>>> }); >>>> b.getChildren().add(bu); >>>> >>>> Scene s = new Scene(b); >>>> s.getStylesheets().add(TestMe.class.getResource("application.css").toExternalForm()); >>>> >>>> primaryStage.setScene(s); >>>> primaryStage.show(); >>>> } >>>> >>>> private Node createText(String text) { >>>> Text t = new Text(text); >>>> // t.setSmooth(false); >>>> t.setFont(Font.font(Integer.parseInt(fontSize.getText()))); >>>> return t; >>>> } >>>> >>>> public static void main(String[] args) { >>>> Application.launch(args); >>>> } >>>> } >>> >>> Tom >>> >> > From philip.race at oracle.com Fri Jan 9 17:49:39 2015 From: philip.race at oracle.com (Phil Race) Date: Fri, 09 Jan 2015 09:49:39 -0800 Subject: Font rendering (on OS-X) In-Reply-To: <54B0141C.9060509@oracle.com> References: <54B0015E.6080206@bestsolution.at> <54B011BC.7090809@oracle.com> <54B0121C.5030504@oracle.com> <54B0141C.9060509@oracle.com> Message-ID: <54B014B3.1050906@oracle.com> I tried on firefox and Safari and then downloaded to my Mac and tried directly from disk using quicktime but it still failed .. -phil. On 1/9/15 9:47 AM, Kevin Rushforth wrote: > I tried the video on Firefox, which said "Video can't be played > because the file is corrupt." > > So I tried it on Chrome and it plays fine for me (as an aside, I find > Chrome to be the most robust browser these days even though I haven't > quite made the switch from Firefox as my default browser). > > -- Kevin > > > Phil Race wrote: >> PS .. your video came up all black for me .. >> >> -phil. >> >> On 1/9/15 9:37 AM, Phil Race wrote: >>> Glyphs advances are accumulated in floating point and the rendering >>> of the glyph sub-pixel positioned. >>> The nodes however are I expect, positioned at an integer position >>> and in >>> any case I am pretty sure that the fractional advance at the end of >>> "ABC" is not passed >>> on to the start of drawing "DEF". >>> So I think you are just seeing a subtle consequence of rounding >>> because the >>> starting position of the first glyph in the 2nd text node/string is >>> not the same as you will get if >>> you draw it as one string. Where exactly it happens (at which glyph) >>> will depend on >>> the way the numbers work out. Whether it happens elsewhere will depend >>> on the advances the platform returns, but its possible. >>> >>> Its possible that with some amount of work that TextFlow could pass >>> on this >>> information so that its less apparent but I don't know off-hand what >>> would >>> be involved or how complete a fix it would be. Nor whether its >>> actually worth >>> the effort for this case. >>> >>> -phil. >>> >>> On 1/9/15 8:27 AM, Tom Schindl wrote: >>>> Hi, >>>> >>>> I know font rendering has been discussed a lot already on this >>>> forum but >>>> I don't want to talk about sharpness of text but very strange >>>> effects of >>>> glyph positioning. >>>> >>>> The program below switches between 1 and 2 text-nodes which results in >>>> strange effects at least on my OS-X box. >>>> >>>> With a font size 15 you see the 2nd text shifting a bit to the >>>> right now >>>> you could explain this with rounding but it gets even more interesting >>>> if you make the font size 25 suddenly the F is changing its position! >>>> >>>> I recorded a video showing the behavior on my system at >>>> http://efxclipse.bestsolution.at/ScreenFlow.mp4 >>>> >>>> My questions are: >>>> a) does that happen on other OSes as well >>>> b) does anyone have an idea where I could start searching >>>> c) do you think this can be fixed? >>>> >>>> >>>>> package application; >>>>> >>>>> >>>>> import javafx.application.Application; >>>>> import javafx.scene.Node; >>>>> import javafx.scene.Scene; >>>>> import javafx.scene.control.Button; >>>>> import javafx.scene.control.TextField; >>>>> import javafx.scene.layout.VBox; >>>>> import javafx.scene.text.Font; >>>>> import javafx.scene.text.Text; >>>>> import javafx.scene.text.TextFlow; >>>>> import javafx.stage.Stage; >>>>> >>>>> public class TestMe extends Application { >>>>> >>>>> private TextField fontSize; >>>>> private TextField text; >>>>> >>>>> @Override >>>>> public void start(Stage primaryStage) throws Exception { >>>>> VBox b = new VBox(); >>>>> >>>>> text = new TextField("ABCDEF"); >>>>> b.getChildren().add(text); >>>>> >>>>> fontSize = new TextField("15"); >>>>> b.getChildren().add(fontSize); >>>>> >>>>> TextFlow f = new TextFlow(createText(text.getText())); >>>>> >>>>> b.getChildren().add(f); >>>>> Button bu = new Button("Split text"); >>>>> bu.setOnAction((e) -> { >>>>> if( f.getChildren().size() == 1 ) { >>>>> int l = text.getText().length() / 2; >>>>> >>>>> f.getChildren().setAll(createText(text.getText().substring(0, >>>>> l)),createText(text.getText().substring(l))); >>>>> bu.setText("One Text"); >>>>> } else { >>>>> f.getChildren().setAll(createText(text.getText())); >>>>> bu.setText("Split text"); >>>>> } >>>>> }); >>>>> b.getChildren().add(bu); >>>>> >>>>> Scene s = new Scene(b); >>>>> s.getStylesheets().add(TestMe.class.getResource("application.css").toExternalForm()); >>>>> >>>>> primaryStage.setScene(s); >>>>> primaryStage.show(); >>>>> } >>>>> >>>>> private Node createText(String text) { >>>>> Text t = new Text(text); >>>>> // t.setSmooth(false); >>>>> t.setFont(Font.font(Integer.parseInt(fontSize.getText()))); >>>>> return t; >>>>> } >>>>> >>>>> public static void main(String[] args) { >>>>> Application.launch(args); >>>>> } >>>>> } >>>> >>>> Tom >>>> >>> >> From tom.schindl at bestsolution.at Fri Jan 9 18:19:06 2015 From: tom.schindl at bestsolution.at (Tom Schindl) Date: Fri, 09 Jan 2015 19:19:06 +0100 Subject: Font rendering (on OS-X) In-Reply-To: <54B014B3.1050906@oracle.com> References: <54B0015E.6080206@bestsolution.at> <54B011BC.7090809@oracle.com> <54B0121C.5030504@oracle.com> <54B0141C.9060509@oracle.com> <54B014B3.1050906@oracle.com> Message-ID: <54B01B9A.80500@bestsolution.at> Hi, I uploaded it to youtube let's hope you can see it there. http://youtu.be/jcrWRup6sxI First of all I can "accept" that the "DEF" are slightly shifted when I split the string but what I really don't fully grasp is why DE don't shift with a font-size of 25 but only F does so. Anyways the application is reproducing a real world problem of my StyledText control where I make up each line of a TextFlow element. So suppose we have the following text public String is made up of (in pseudo syntax) Now my problem is that when I have to implement selection of text parts e.g. "Stri" I need to split up the text element and end up with which leads to a visual shifting for the user which makes the editor experience not as good as it could be. If TextFlow is unable to cope with this problem I need to see how to solve this thing in a much more complex way by position a appropiately sized Region behind the text. Tom On 09.01.15 18:49, Phil Race wrote: > I tried on firefox and Safari and then downloaded to my Mac and tried > directly from disk > using quicktime but it still failed .. > > -phil. > > On 1/9/15 9:47 AM, Kevin Rushforth wrote: >> I tried the video on Firefox, which said "Video can't be played >> because the file is corrupt." >> >> So I tried it on Chrome and it plays fine for me (as an aside, I find >> Chrome to be the most robust browser these days even though I haven't >> quite made the switch from Firefox as my default browser). >> >> -- Kevin >> >> >> Phil Race wrote: >>> PS .. your video came up all black for me .. >>> >>> -phil. >>> >>> On 1/9/15 9:37 AM, Phil Race wrote: >>>> Glyphs advances are accumulated in floating point and the rendering >>>> of the glyph sub-pixel positioned. >>>> The nodes however are I expect, positioned at an integer position >>>> and in >>>> any case I am pretty sure that the fractional advance at the end of >>>> "ABC" is not passed >>>> on to the start of drawing "DEF". >>>> So I think you are just seeing a subtle consequence of rounding >>>> because the >>>> starting position of the first glyph in the 2nd text node/string is >>>> not the same as you will get if >>>> you draw it as one string. Where exactly it happens (at which glyph) >>>> will depend on >>>> the way the numbers work out. Whether it happens elsewhere will depend >>>> on the advances the platform returns, but its possible. >>>> >>>> Its possible that with some amount of work that TextFlow could pass >>>> on this >>>> information so that its less apparent but I don't know off-hand what >>>> would >>>> be involved or how complete a fix it would be. Nor whether its >>>> actually worth >>>> the effort for this case. >>>> >>>> -phil. >>>> >>>> On 1/9/15 8:27 AM, Tom Schindl wrote: >>>>> Hi, >>>>> >>>>> I know font rendering has been discussed a lot already on this >>>>> forum but >>>>> I don't want to talk about sharpness of text but very strange >>>>> effects of >>>>> glyph positioning. >>>>> >>>>> The program below switches between 1 and 2 text-nodes which results in >>>>> strange effects at least on my OS-X box. >>>>> >>>>> With a font size 15 you see the 2nd text shifting a bit to the >>>>> right now >>>>> you could explain this with rounding but it gets even more interesting >>>>> if you make the font size 25 suddenly the F is changing its position! >>>>> >>>>> I recorded a video showing the behavior on my system at >>>>> http://efxclipse.bestsolution.at/ScreenFlow.mp4 >>>>> >>>>> My questions are: >>>>> a) does that happen on other OSes as well >>>>> b) does anyone have an idea where I could start searching >>>>> c) do you think this can be fixed? >>>>> >>>>> >>>>>> package application; >>>>>> >>>>>> >>>>>> import javafx.application.Application; >>>>>> import javafx.scene.Node; >>>>>> import javafx.scene.Scene; >>>>>> import javafx.scene.control.Button; >>>>>> import javafx.scene.control.TextField; >>>>>> import javafx.scene.layout.VBox; >>>>>> import javafx.scene.text.Font; >>>>>> import javafx.scene.text.Text; >>>>>> import javafx.scene.text.TextFlow; >>>>>> import javafx.stage.Stage; >>>>>> >>>>>> public class TestMe extends Application { >>>>>> >>>>>> private TextField fontSize; >>>>>> private TextField text; >>>>>> >>>>>> @Override >>>>>> public void start(Stage primaryStage) throws Exception { >>>>>> VBox b = new VBox(); >>>>>> >>>>>> text = new TextField("ABCDEF"); >>>>>> b.getChildren().add(text); >>>>>> >>>>>> fontSize = new TextField("15"); >>>>>> b.getChildren().add(fontSize); >>>>>> >>>>>> TextFlow f = new TextFlow(createText(text.getText())); >>>>>> >>>>>> b.getChildren().add(f); >>>>>> Button bu = new Button("Split text"); >>>>>> bu.setOnAction((e) -> { >>>>>> if( f.getChildren().size() == 1 ) { >>>>>> int l = text.getText().length() / 2; >>>>>> >>>>>> f.getChildren().setAll(createText(text.getText().substring(0, >>>>>> l)),createText(text.getText().substring(l))); >>>>>> bu.setText("One Text"); >>>>>> } else { >>>>>> f.getChildren().setAll(createText(text.getText())); >>>>>> bu.setText("Split text"); >>>>>> } >>>>>> }); >>>>>> b.getChildren().add(bu); >>>>>> >>>>>> Scene s = new Scene(b); >>>>>> s.getStylesheets().add(TestMe.class.getResource("application.css").toExternalForm()); >>>>>> >>>>>> primaryStage.setScene(s); >>>>>> primaryStage.show(); >>>>>> } >>>>>> >>>>>> private Node createText(String text) { >>>>>> Text t = new Text(text); >>>>>> // t.setSmooth(false); >>>>>> t.setFont(Font.font(Integer.parseInt(fontSize.getText()))); >>>>>> return t; >>>>>> } >>>>>> >>>>>> public static void main(String[] args) { >>>>>> Application.launch(args); >>>>>> } >>>>>> } >>>>> >>>>> Tom >>>>> >>>> >>> > -- Thomas Schindl, CTO BestSolution.at EDV Systemhaus GmbH Eduard-Bodem-Gasse 5-7, A-6020 Innsbruck http://www.bestsolution.at/ Reg. Nr. FN 222302s am Firmenbuchgericht Innsbruck From johan at lodgon.com Fri Jan 9 18:49:24 2015 From: johan at lodgon.com (Johan Vos) Date: Fri, 9 Jan 2015 19:49:24 +0100 Subject: SmallTouchFilter default 20 pixels? Message-ID: The Monocle Touch handling will by default add a SmallMoveTouchFilter (see TouchInput:75), and this SmallMoveTouchFilter will by default block touch events if the touch event is within a radius of 20 pixels from the previous one. Both the addition of SmallMoveTouchFilter as well as the radius of the SmallMoveTouchFilter can easily be configured using system properties, but it sounds strange to me that the default will ignore touch events that are less than 20 pixels apart? On Android, we have to set the default to 1 pixel in order to get responsive applications. - Johan From richard.bair at oracle.com Fri Jan 9 19:08:12 2015 From: richard.bair at oracle.com (Richard Bair) Date: Fri, 9 Jan 2015 11:08:12 -0800 Subject: SmallTouchFilter default 20 pixels? In-Reply-To: References: Message-ID: <8DE2C611-3F8E-40F0-A59E-77A4BBD3D7EF@oracle.com> This may be due to the fact that on Android the OS does a much better job of detecting and filtering touch events such that the application only gets good events, whereas on other embedded systems it is a real mess and we had to do some of our own filtering. > On Jan 9, 2015, at 10:49 AM, Johan Vos wrote: > > The Monocle Touch handling will by default add a SmallMoveTouchFilter (see > TouchInput:75), and this SmallMoveTouchFilter will by default block touch > events if the touch event is within a radius of 20 pixels from the previous > one. > > Both the addition of SmallMoveTouchFilter as well as the radius of the > SmallMoveTouchFilter can easily be configured using system properties, but > it sounds strange to me that the default will ignore touch events that are > less than 20 pixels apart? On Android, we have to set the default to 1 > pixel in order to get responsive applications. > > - Johan From kevin.rushforth at oracle.com Fri Jan 9 19:34:19 2015 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Fri, 09 Jan 2015 11:34:19 -0800 Subject: 8u40 rampdown schedule In-Reply-To: References: <54665B46.8000205@oracle.com> Message-ID: <54B02D3B.3020408@oracle.com> Hi Johan, Now that the holidays are over let me know when you have patches ready for integrating to 8u-dev (for 8u60). Any patches we get in over the next few weeks will be auto-synced into FX 9 as well (until we stop the auto-sync). -- Kevin Johan Vos wrote: > Hi Kevin, > > There is still some synchronisation work for the Android port. I have > to create patches for all the changes I made, but I think it would be > a bad idea to do that in a rush, and to try to push them to 8u40. > Instead, I think we can release 8u40 for Android (it's a non-Oracle > release anyhow), and try to integrate all patches upstream for 8u60. > > That means 8u40 for Android will be built from the bitbucket > repository, but I think that is politically the right thing. For 8u60, > we probably still build from the bitbucket repository, but hopefully > with 0 code changes between that repository and OpenJFX. > > - Johan > > 2014-11-14 20:43 GMT+01:00 Kevin Rushforth >: > > This is an update on the OpenJFX 8u40 [1] rampdown schedule. These > dates derive from equivalent JDK 8u40 dates. As a reminder, the > deadline for getting changes into 8u-dev and having them show up > in that week's build is 1am Pacific on Monday [2]. > > Here are the key dates: > > 8u40 ZBB (Zero Bug Bounce) : Monday, Dec 1 > 8u40 M4 milestone build : Monday, Dec 8 > 8u40 RDP2 (rampdown phase 2) : Monday, Dec 15 > 8u-dev open up for post-8u40 changes: Tuesday, Dec 16. > 8u40 repo fork: Wednesday, Dec 17 (based off the build from Monday) > > All product bugs currently targeted to 8u40 are expected to be > addressed, either by fixing or deferring them, on or before our > ZBB date of Dec 1. > > Between Dec 1 and Dec 15 we will be in "rampdown mode" for 8u40, > during which time all bugs except doc / test bugs will need > additional approval to go in. The focus will be on critical > regressions. > > After Dec 15, only release-team approved bugs will be pulled into > 8u40. Generally this is only show-stoppers or other release > critical bugs. > > Related to this, I will be opening up a 9-dev repo for FX 9 work > sometime in the next week or so. > > -- Kevin > > [1] https://wiki.openjdk.java.net/display/OpenJFX/8u40 > [2] https://wiki.openjdk.java.net/display/OpenJFX/Sanity+Testing > > From morris.meyer at oracle.com Fri Jan 9 22:31:51 2015 From: morris.meyer at oracle.com (Morris Meyer) Date: Fri, 09 Jan 2015 17:31:51 -0500 Subject: [8u60] RFR: RT37399: Mac: Command-period generates spurious KeyEvents on Mac OS Message-ID: <54B056D7.2080205@oracle.com> Kevin and David, Could you look over my fix for this issue? I thought about putting the special casing in the GlassViewDelegate and changing the return value of sendJavaKeyEvent to return a boolean. I think this way might be a bit cleaner. This issue is caused by the MacOS processing of Command-DOT, which when triggers causes two performKeyEquivalent: NSEvent *event invocations which were giving us spurious KeyEvents. The fix special cases the Command-DOT and returns YES which nicely eats the second performKeyEquivalent. Thanks, --mm JIRA - https://javafx-jira.kenai.com/browse/RT-37399 WEBREV - http://cr.openjdk.java.net/~morris/RT-37399.01 From chien.yang at oracle.com Fri Jan 9 23:04:15 2015 From: chien.yang at oracle.com (Chien Yang) Date: Fri, 09 Jan 2015 15:04:15 -0800 Subject: Code Review Request For RT-39783: Move Mac specific implementation (support CALayer) out of platform independent code path Message-ID: <54B05E6F.4050607@oracle.com> Hi Kevin, Please review this simple change. JIRA: https://javafx-jira.kenai.com/browse/RT-39783 Webrev: http://cr.openjdk.java.net/~ckyang/RT-39783/webrev.00/ Thanks, - Chien From kevin.rushforth at oracle.com Sat Jan 10 01:23:46 2015 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Fri, 09 Jan 2015 17:23:46 -0800 Subject: In(Sanity) Testing Mondays In-Reply-To: <54944E68.3030803@oracle.com> References: <54944E68.3030803@oracle.com> Message-ID: <54B07F22.90601@oracle.com> Reminder, Monday is our weekly sanity testing. You can find your testing assignment at: https://wiki.openjdk.java.net/display/OpenJFX/Sanity+Testing Also please remember that the repo will be locked from 1am PST until 1pm PST. Happy testing! Thanks, -- Kevin From nbpratt at gmail.com Sun Jan 11 17:40:55 2015 From: nbpratt at gmail.com (Nick Pratt) Date: Sun, 11 Jan 2015 12:40:55 -0500 Subject: Accessing TFT attached displays on Raspberry Pi Message-ID: I've spent some more time playing with fx config params for my Raspberry Pi (arm HF 8u60). I'm still unable to get any FX output on the attached TFT display (Adafruit device plugged in to the GPIO pins such as: https://www.adafruit.com/products/2315 (no touch) or https://www.adafruit.com/products/1601 (with touch) ). Is there any other logging that I can enable to assist with diagnosing the issue other than what David suggested (attached below) I'll happily send a committer with knowledge of the internals a loaner TFT screen (these screens are only ~$30) if it facilitates getting this running - being able to leverage the entire Java/FX SDK on a Pi+attached TFT would be great. Nick On Sat, Jan 3, 2015 at 2:36 PM, Nick Pratt wrote: > This is the output from my Pi with the modified JDK: > > pi at raspberrypi ~ $ sudo /opt/java/jre/bin/java -Djavafx.platform=monocle > -Dmonocle.screen.fb="/dev/fb1" -Ddispman.display=0 -Ddispman.layer=1 > -Dprism.verbose=true -Djavafx.verbose=true -jar JavaFXApp.jar > > Prism pipeline init order: es2 sw > > Using native-based Pisces rasterizer > > Using dirty region optimizations > > Using system sized mask for primitives > > Not forcing power of 2 sizes for textures > > Using hardware CLAMP_TO_ZERO mode > > Opting in for HiDPI pixel scaling > > Prism pipeline name = com.sun.prism.es2.ES2Pipeline > > Loading ES2 native library ... prism_es2_monocle > > Loaded /opt/jdk1.8.0_06/jre/lib/ext/../arm/libprism_es2_monocle.so from > relative path > > succeeded. > > GLFactory using com.sun.prism.es2.MonocleGLFactory > > Loaded /opt/jdk1.8.0_06/jre/lib/ext/../arm/libglass_monocle.so from > relative path > > (X) Got class = class com.sun.prism.es2.ES2Pipeline > > Initialized prism pipeline: com.sun.prism.es2.ES2Pipeline > > JavaFX: using com.sun.javafx.tk.quantum.QuantumToolkit > > Maximum supported texture size: 2048 > > Non power of two texture support = true > > Maximum number of vertex attributes = 8 > > Maximum number of uniform vertex components = 544 > > Maximum number of uniform fragment components = 544 > > Maximum number of varying components = 32 > > Maximum number of texture units usable in a vertex shader = 8 > > Maximum number of texture units usable in a fragment shader = 8 > > Graphics Vendor: Broadcom > > Renderer: VideoCore IV HW > > Version: OpenGL ES 2.0 > > vsync: true vpipe: true > > Calling main(String[]) method > > Loaded /opt/jdk1.8.0_06/jre/lib/ext/../arm/libjavafx_font.so from relative > path > > Loaded /opt/jdk1.8.0_06/jre/lib/ext/../arm/libjavafx_font_freetype.so from > relative path > > ES2ResourceFactory: Prism - createStockShader: Solid_TextureRGB.frag > From kevin.rushforth at oracle.com Mon Jan 12 20:42:33 2015 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Mon, 12 Jan 2015 12:42:33 -0800 Subject: 8u-dev unlocked following this week's sanity testing Message-ID: <54B431B9.4070300@oracle.com> From kevin.rushforth at oracle.com Mon Jan 12 21:06:45 2015 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Mon, 12 Jan 2015 13:06:45 -0800 Subject: [8u60] review request: RT-39784: Remove unused, obsolete designTime module Message-ID: <54B43765.4030408@oracle.com> Jonathan, Please review: https://javafx-jira.kenai.com/browse/RT-39784 http://cr.openjdk.java.net/~kcr/RT-39784/webrev.00/ This is a simple cleanup to remove the obsolete (and unused) designTime module. It is just dead code at this point. -- Kevin From tom.schindl at bestsolution.at Tue Jan 13 00:36:58 2015 From: tom.schindl at bestsolution.at (Tom Schindl) Date: Tue, 13 Jan 2015 01:36:58 +0100 Subject: Font rendering (on OS-X) In-Reply-To: <54B01B9A.80500@bestsolution.at> References: <54B0015E.6080206@bestsolution.at> <54B011BC.7090809@oracle.com> <54B0121C.5030504@oracle.com> <54B0141C.9060509@oracle.com> <54B014B3.1050906@oracle.com> <54B01B9A.80500@bestsolution.at> Message-ID: <54B468AA.9080504@bestsolution.at> Hi, I worked around my problem for now by positioning the text myself instead of use TextFlow. The work around works only for monospaced fonts and if all fonts are the same (family & size) in a line but for source-code editors one most of the time uses a monospaced font. Tom On 09.01.15 19:19, Tom Schindl wrote: > Hi, > > I uploaded it to youtube let's hope you can see it there. > > http://youtu.be/jcrWRup6sxI > > First of all I can "accept" that the "DEF" are slightly shifted when I > split the string but what I really don't fully grasp is why DE don't > shift with a font-size of 25 but only F does so. > > Anyways the application is reproducing a real world problem of my > StyledText control where I make up each line of a TextFlow element. > > So suppose we have the following text > > public String > > is made up of (in pseudo syntax) > > > > > > > Now my problem is that when I have to implement selection of text parts > e.g. "Stri" I need to split up the text element and end up with > > > > > > > > > > which leads to a visual shifting for the user which makes the editor > experience not as good as it could be. If TextFlow is unable to cope > with this problem I need to see how to solve this thing in a much more > complex way by position a appropiately sized Region behind the text. > > > Tom > > On 09.01.15 18:49, Phil Race wrote: >> I tried on firefox and Safari and then downloaded to my Mac and tried >> directly from disk >> using quicktime but it still failed .. >> >> -phil. >> >> On 1/9/15 9:47 AM, Kevin Rushforth wrote: >>> I tried the video on Firefox, which said "Video can't be played >>> because the file is corrupt." >>> >>> So I tried it on Chrome and it plays fine for me (as an aside, I find >>> Chrome to be the most robust browser these days even though I haven't >>> quite made the switch from Firefox as my default browser). >>> >>> -- Kevin >>> >>> >>> Phil Race wrote: >>>> PS .. your video came up all black for me .. >>>> >>>> -phil. >>>> >>>> On 1/9/15 9:37 AM, Phil Race wrote: >>>>> Glyphs advances are accumulated in floating point and the rendering >>>>> of the glyph sub-pixel positioned. >>>>> The nodes however are I expect, positioned at an integer position >>>>> and in >>>>> any case I am pretty sure that the fractional advance at the end of >>>>> "ABC" is not passed >>>>> on to the start of drawing "DEF". >>>>> So I think you are just seeing a subtle consequence of rounding >>>>> because the >>>>> starting position of the first glyph in the 2nd text node/string is >>>>> not the same as you will get if >>>>> you draw it as one string. Where exactly it happens (at which glyph) >>>>> will depend on >>>>> the way the numbers work out. Whether it happens elsewhere will depend >>>>> on the advances the platform returns, but its possible. >>>>> >>>>> Its possible that with some amount of work that TextFlow could pass >>>>> on this >>>>> information so that its less apparent but I don't know off-hand what >>>>> would >>>>> be involved or how complete a fix it would be. Nor whether its >>>>> actually worth >>>>> the effort for this case. >>>>> >>>>> -phil. >>>>> >>>>> On 1/9/15 8:27 AM, Tom Schindl wrote: >>>>>> Hi, >>>>>> >>>>>> I know font rendering has been discussed a lot already on this >>>>>> forum but >>>>>> I don't want to talk about sharpness of text but very strange >>>>>> effects of >>>>>> glyph positioning. >>>>>> >>>>>> The program below switches between 1 and 2 text-nodes which results in >>>>>> strange effects at least on my OS-X box. >>>>>> >>>>>> With a font size 15 you see the 2nd text shifting a bit to the >>>>>> right now >>>>>> you could explain this with rounding but it gets even more interesting >>>>>> if you make the font size 25 suddenly the F is changing its position! >>>>>> >>>>>> I recorded a video showing the behavior on my system at >>>>>> http://efxclipse.bestsolution.at/ScreenFlow.mp4 >>>>>> >>>>>> My questions are: >>>>>> a) does that happen on other OSes as well >>>>>> b) does anyone have an idea where I could start searching >>>>>> c) do you think this can be fixed? >>>>>> >>>>>> >>>>>>> package application; >>>>>>> >>>>>>> >>>>>>> import javafx.application.Application; >>>>>>> import javafx.scene.Node; >>>>>>> import javafx.scene.Scene; >>>>>>> import javafx.scene.control.Button; >>>>>>> import javafx.scene.control.TextField; >>>>>>> import javafx.scene.layout.VBox; >>>>>>> import javafx.scene.text.Font; >>>>>>> import javafx.scene.text.Text; >>>>>>> import javafx.scene.text.TextFlow; >>>>>>> import javafx.stage.Stage; >>>>>>> >>>>>>> public class TestMe extends Application { >>>>>>> >>>>>>> private TextField fontSize; >>>>>>> private TextField text; >>>>>>> >>>>>>> @Override >>>>>>> public void start(Stage primaryStage) throws Exception { >>>>>>> VBox b = new VBox(); >>>>>>> >>>>>>> text = new TextField("ABCDEF"); >>>>>>> b.getChildren().add(text); >>>>>>> >>>>>>> fontSize = new TextField("15"); >>>>>>> b.getChildren().add(fontSize); >>>>>>> >>>>>>> TextFlow f = new TextFlow(createText(text.getText())); >>>>>>> >>>>>>> b.getChildren().add(f); >>>>>>> Button bu = new Button("Split text"); >>>>>>> bu.setOnAction((e) -> { >>>>>>> if( f.getChildren().size() == 1 ) { >>>>>>> int l = text.getText().length() / 2; >>>>>>> >>>>>>> f.getChildren().setAll(createText(text.getText().substring(0, >>>>>>> l)),createText(text.getText().substring(l))); >>>>>>> bu.setText("One Text"); >>>>>>> } else { >>>>>>> f.getChildren().setAll(createText(text.getText())); >>>>>>> bu.setText("Split text"); >>>>>>> } >>>>>>> }); >>>>>>> b.getChildren().add(bu); >>>>>>> >>>>>>> Scene s = new Scene(b); >>>>>>> s.getStylesheets().add(TestMe.class.getResource("application.css").toExternalForm()); >>>>>>> >>>>>>> primaryStage.setScene(s); >>>>>>> primaryStage.show(); >>>>>>> } >>>>>>> >>>>>>> private Node createText(String text) { >>>>>>> Text t = new Text(text); >>>>>>> // t.setSmooth(false); >>>>>>> t.setFont(Font.font(Integer.parseInt(fontSize.getText()))); >>>>>>> return t; >>>>>>> } >>>>>>> >>>>>>> public static void main(String[] args) { >>>>>>> Application.launch(args); >>>>>>> } >>>>>>> } >>>>>> >>>>>> Tom >>>>>> >>>>> >>>> >> > > -- Thomas Schindl, CTO BestSolution.at EDV Systemhaus GmbH Eduard-Bodem-Gasse 5-7, A-6020 Innsbruck http://www.bestsolution.at/ Reg. Nr. FN 222302s am Firmenbuchgericht Innsbruck From vadim.pakhnushev at oracle.com Tue Jan 13 14:10:12 2015 From: vadim.pakhnushev at oracle.com (Vadim Pakhnushev) Date: Tue, 13 Jan 2015 17:10:12 +0300 Subject: [8u60] Review request for RT-23233: GIF frames have incorrect background Message-ID: <54B52744.1050406@oracle.com> Jim, Please review the fix: https://javafx-jira.kenai.com/browse/RT-23233 http://cr.openjdk.java.net/~vadim/RT-23233/webrev.00/ Thanks, Vadim From herve.girod at gmail.com Tue Jan 13 14:55:29 2015 From: herve.girod at gmail.com (=?utf-8?Q?Herv=C3=A9_Girod?=) Date: Tue, 13 Jan 2015 15:55:29 +0100 Subject: HUD elements on 3D elements Message-ID: Hello and happy new year! We use JavaFX 3D and we would like to present 2D labels or panels at the screen position of some 3D Nodes. Is it possible to observe the screen position of 3D Nodes to be able to update the position of these labels in the HUD? Herv? Sent from my iPhone From morris.meyer at oracle.com Wed Jan 14 18:54:06 2015 From: morris.meyer at oracle.com (Morris Meyer) Date: Wed, 14 Jan 2015 13:54:06 -0500 Subject: [8u60] RFR: RT-38694: [Accelerator, Mac] CMD + Z accelerator is not working with French keyboard Message-ID: <54B6BB4E.2080901@oracle.com> Kevin, David and David, Please review the following issue with key translation of foreign keyboards. I have added translation by default, and this code has been tested on US and French keyboards successfully. I also tested with MetaDot to verify that the proper KeyEvents are getting sent up to FX land from Glass. I did not opt to cache translated values as the translation seems to be pretty straight forward. Thanks much. --morris JIRA - https://javafx-jira.kenai.com/browse/RT-38694 WEBREV - http://cr.openjdk.java.net/~morris/RT-38694.01 From fbrunnerlist at gmx.ch Wed Jan 14 22:59:44 2015 From: fbrunnerlist at gmx.ch (Florian Brunner) Date: Wed, 14 Jan 2015 23:59:44 +0100 Subject: SplitPane layout question In-Reply-To: <3218502.bMcyzQGxyp@andor> References: <1722489.rAVav3zaCZ@andor> <1DFC95C0-D2FB-4754-90B3-20229B1C0061@gmail.com> <3218502.bMcyzQGxyp@andor> Message-ID: <203042720.y45zoZFbrD@andor> I've cross-posted the question here: http://stackoverflow.com/questions/27953751/splitpane-layout-issue I'm still looking for solutions. -Florian Am Montag, 5. Januar 2015, 22.35:48 schrieb Florian Brunner: > Hi Scott, > > Thanks for your answer. > > Unfortunatly, I still couldn't fix this issue. > > I tried several things including setting the prefWidth/ prefHeight of the > items to the expected value, but I couldn't stop the SplitPane to > effectively "hide" the first and the third (last) item during a re-layout. > > The two dividers changed during the layoutChildren call as follows: > > Divider position changed: old value: 0.10857763300760044, new value: > 0.004343105320304018 > > Divider position changed: old value: 0.8914223669923995, new value: > 0.995656894679696 > > I had a look at the com.sun.javafx.scene.control.skin.SplitPaneSkin (source > code provided with the JDK), but unfortunatly it's not easy there to see how > the areas are calculated in this situation. > > You mentioned the min/ max sizes. Just for testing purposes I also set the > minHeight/ minWidth but this only had the effect that I couldn't readjust > the divider with the mouse anymore. During the re-layout the issue still > persisted. > > What else could I try? > > -Florian > > Am Montag, 22. Dezember 2014, 07.19:37 schrieb Scott Palmer: > > The min/max sizes of the children are probably being respected. > > > > Scott > > > > > On Dec 22, 2014, at 7:13 AM, Florian Brunner > > > wrote: > > > > > > Hi, > > > > > > Sometimes when I'm setting the divider positions of a SplitPane > > > programmatically my value get overridden again by some JavaFX internal > > > layout code. > > > > > > For debugging purposes I've added a listener to the position property of > > > the divider and have thrown a RuntimeException to see the stack trace. > > > It > > > looks like this: > > > > > > ------------------------------------------------------------------------ > > > -- > > > ---------------- at > > > com.sun.javafx.binding.ExpressionHelper$Generic.fireValueChangedEvent(Ex > > > pr > > > essionHelper.java:361)> > > > > > > at > > > > > > com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(Expression > > > He > > > lper.java:81)> > > > > > > at > > > > > > javafx.beans.property.DoublePropertyBase.fireValueChangedEvent(DoublePro > > > pe > > > rtyBase.java:106)> > > > > > > at > > > > > > javafx.beans.property.DoublePropertyBase.markInvalid(DoublePropertyBase. > > > ja > > > va:113)> > > > > > > at > > > > > > javafx.beans.property.DoublePropertyBase.set(DoublePropertyBase.java:146 > > > ) > > > > > > at > > > javafx.scene.control.SplitPane$Divider.setPosition(SplitPane.java:486 > > > ) > > > at > > > > > > com.sun.javafx.scene.control.skin.SplitPaneSkin.setAbsoluteDividerPos(Sp > > > li > > > tPaneSkin.java:310)> > > > > > > at > > > > > > com.sun.javafx.scene.control.skin.SplitPaneSkin.setupContentAndDividerFo > > > rL > > > ayout(SplitPaneSkin.java:502)> > > > > > > at > > > > > > com.sun.javafx.scene.control.skin.SplitPaneSkin.layoutChildren(SplitPane > > > Sk > > > in.java:817)> > > > > > > at javafx.scene.control.Control.layoutChildren(Control.java:589) > > > at javafx.scene.Parent.layout(Parent.java:1074) > > > at javafx.scene.Parent.layout(Parent.java:1080) > > > at javafx.scene.Parent.layout(Parent.java:1080) > > > at javafx.scene.Parent.layout(Parent.java:1080) > > > at javafx.scene.Parent.layout(Parent.java:1080) > > > at javafx.scene.Parent.layout(Parent.java:1080) > > > at javafx.scene.Parent.layout(Parent.java:1080) > > > at javafx.scene.Parent.layout(Parent.java:1080) > > > at javafx.scene.Parent.layout(Parent.java:1080) > > > at javafx.scene.Scene.doLayoutPass(Scene.java:532) > > > at javafx.scene.Scene$ScenePulseListener.pulse(Scene.java:2363) > > > at com.sun.javafx.tk.Toolkit.lambda$runPulse$28(Toolkit.java:314) > > > at com.sun.javafx.tk.Toolkit$$Lambda$230/25595560.run(Unknown Source) > > > at java.security.AccessController.doPrivileged(Native Method) > > > at com.sun.javafx.tk.Toolkit.runPulse(Toolkit.java:313) > > > at com.sun.javafx.tk.Toolkit.firePulse(Toolkit.java:340) > > > at > > > com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:45 > > > 1 > > > ) > > > at > > > com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:43 > > > 1 > > > ) > > > at > > > > > > com.sun.javafx.tk.quantum.QuantumToolkit.lambda$runToolkit$363(QuantumTo > > > ol > > > kit.java:298)> > > > > > > at > > > > > > com.sun.javafx.tk.quantum.QuantumToolkit$$Lambda$59/174792896.run(Unknow > > > n > > > Source) > > > > > > at > > > > > > com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher. > > > ja > > > va:95)> > > > > > > at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method) > > > at > > > > > > com.sun.glass.ui.gtk.GtkApplication.lambda$null$45(GtkApplication.java:1 > > > 26 > > > ) > > > > > > at > > > com.sun.glass.ui.gtk.GtkApplication$$Lambda$55/1472148546.run(Unknown > > > > > > Source) > > > > > > at java.lang.Thread.run(Thread.java:745) > > > > > > ------------------------------------------------------------------------ > > > -- > > > ---------------- > > > > > > It doesn't seem to get triggered by some code of mine (at least not > > > directly according to the stack trace). > > > > > > Why is this re-layout happing here? > > > Why does it override the values I've set for the divider positions? > > > How can stop this? > > > > > > Thanks for some insights. > > > > > > -Florian From chien.yang at oracle.com Thu Jan 15 07:09:14 2015 From: chien.yang at oracle.com (Chien Yang) Date: Wed, 14 Jan 2015 23:09:14 -0800 Subject: HUD elements on 3D elements In-Reply-To: References: Message-ID: <54B7679A.9080002@oracle.com> We don't have a convenient support to do what you want. You will likely have to construct the reverse mapping and the use of listener. - Chien On 1/13/15, 6:55 AM, Herv? Girod wrote: > Hello and happy new year! > > We use JavaFX 3D and we would like to present 2D labels or panels at the screen position of some 3D Nodes. Is it possible to observe the screen position of 3D Nodes to be able to update the position of these labels in the HUD? > > Herv? > > Sent from my iPhone From adanecito at yahoo.com Thu Jan 15 16:21:07 2015 From: adanecito at yahoo.com (Tony Anecito) Date: Thu, 15 Jan 2015 16:21:07 +0000 (UTC) Subject: When is next release? Message-ID: <1175093291.994438.1421338867415.JavaMail.yahoo@jws100206.mail.ne1.yahoo.com> Hi,I want to use 1.8.0_40 but not sure when it will be released. Last build (20) there were no changes mention so sounds like it is ready for release? Regards,-Tony From kevin.rushforth at oracle.com Thu Jan 15 16:25:39 2015 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Thu, 15 Jan 2015 08:25:39 -0800 Subject: When is next release? In-Reply-To: <1175093291.994438.1421338867415.JavaMail.yahoo@jws100206.mail.ne1.yahoo.com> References: <1175093291.994438.1421338867415.JavaMail.yahoo@jws100206.mail.ne1.yahoo.com> Message-ID: <54B7EA03.8040006@oracle.com> Scheduled GA is March 2015: http://openjdk.java.net/projects/jdk8u/releases/8u40.html It should be early March, but I don't know if the exact date has been announced. -- Kevin Tony Anecito wrote: > Hi,I want to use 1.8.0_40 but not sure when it will be released. Last build (20) there were no changes mention so sounds like it is ready for release? > > Regards,-Tony > From adanecito at yahoo.com Thu Jan 15 16:33:30 2015 From: adanecito at yahoo.com (Tony Anecito) Date: Thu, 15 Jan 2015 16:33:30 +0000 (UTC) Subject: When is next release? In-Reply-To: <54B7EA03.8040006@oracle.com> References: <54B7EA03.8040006@oracle.com> Message-ID: <324428844.981271.1421339610087.JavaMail.yahoo@jws10091.mail.ne1.yahoo.com> Thanks. Looks like 2 more months. Not sure from the links what the new enhancements will be from 25 to 40. I saw some comments before things went quiet after JavaOne. I could use the performance enhancements for OSX. -Tony On Thursday, January 15, 2015 9:25 AM, Kevin Rushforth wrote: Scheduled GA is March 2015: http://openjdk.java.net/projects/jdk8u/releases/8u40.html It should be early March, but I don't know if the exact date has been announced. -- Kevin Tony Anecito wrote: > Hi,I want to use 1.8.0_40 but not sure when it will be released. Last build (20) there were no changes mention so sounds like it is ready for release? > > Regards,-Tony >? From kevin.rushforth at oracle.com Thu Jan 15 16:36:49 2015 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Thu, 15 Jan 2015 08:36:49 -0800 Subject: When is next release? In-Reply-To: <324428844.981271.1421339610087.JavaMail.yahoo@jws10091.mail.ne1.yahoo.com> References: <54B7EA03.8040006@oracle.com> <324428844.981271.1421339610087.JavaMail.yahoo@jws10091.mail.ne1.yahoo.com> Message-ID: <54B7ECA1.1010707@oracle.com> You can use the following two JIRA queries to find the list of issues fixed in 8u40: For FX: https://javafx-jira.kenai.com/issues/?jql=project%20%3D%20RT%20AND%20fixVersion%20%3D%208u40%20AND%20resolution%20%3D%20Fixed For JDK: https://bugs.openjdk.java.net/issues/?jql=project%20%3D%20JDK%20AND%20fixVersion%20%3D%208u40%20AND%20resolution%20%3D%20Fixed -- Kevin Tony Anecito wrote: > Thanks. Looks like 2 more months. Not sure from the links what the new > enhancements will be from 25 to 40. I saw some comments before things > went quiet after JavaOne. I could use the performance enhancements for > OSX. > > -Tony > > > On Thursday, January 15, 2015 9:25 AM, Kevin Rushforth > wrote: > > > Scheduled GA is March 2015: > http://openjdk.java.net/projects/jdk8u/releases/8u40.html > > It should be early March, but I don't know if the exact date has been > announced. > > -- Kevin > > > Tony Anecito wrote: > > Hi,I want to use 1.8.0_40 but not sure when it will be released. > Last build (20) there were no changes mention so sounds like it is > ready for release? > > > > Regards,-Tony > > > > From adanecito at yahoo.com Thu Jan 15 16:47:18 2015 From: adanecito at yahoo.com (Tony Anecito) Date: Thu, 15 Jan 2015 16:47:18 +0000 (UTC) Subject: When is next release? In-Reply-To: <54B7ECA1.1010707@oracle.com> References: <54B7ECA1.1010707@oracle.com> Message-ID: <592372699.1009029.1421340438852.JavaMail.yahoo@jws100117.mail.ne1.yahoo.com> FX query fails but the jdk query works fine. - The value 'RT' does not exist for the field 'project'. - Field 'fixVersion' does not exist or this field cannot be viewed by anonymous users. - Field 'resolution' does not exist or this field cannot be viewed by anonymous users -Tony On Thursday, January 15, 2015 9:36 AM, Kevin Rushforth wrote: You can use the following two JIRA queries to find the list of issuesfixed in 8u40: For FX: https://javafx-jira.kenai.com/issues/?jql=project%20%3D%20RT%20AND%20fixVersion%20%3D%208u40%20AND%20resolution%20%3D%20Fixed For JDK: https://bugs.openjdk.java.net/issues/?jql=project%20%3D%20JDK%20AND%20fixVersion%20%3D%208u40%20AND%20resolution%20%3D%20Fixed -- Kevin Tony Anecito wrote: Thanks. Looks like 2 moremonths. Not sure from the links what the new enhancements will be from25 to 40. I saw some comments before things went quiet after JavaOne. Icould use the performance enhancements for OSX. -Tony On Thursday, January15, 2015 9:25 AM, Kevin Rushforth wrote: Scheduled GA is March 2015: http://openjdk.java.net/projects/jdk8u/releases/8u40.html It should be early March, but I don't know if the exact date has been announced. -- Kevin Tony Anecito wrote: > Hi,I want to use 1.8.0_40 but not sure when it will be released.Last build (20) there were no changes mention so sounds like it isready for release? > > Regards,-Tony >? From kevin.rushforth at oracle.com Thu Jan 15 17:04:15 2015 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Thu, 15 Jan 2015 09:04:15 -0800 Subject: When is next release? In-Reply-To: <592372699.1009029.1421340438852.JavaMail.yahoo@jws100117.mail.ne1.yahoo.com> References: <54B7ECA1.1010707@oracle.com> <592372699.1009029.1421340438852.JavaMail.yahoo@jws100117.mail.ne1.yahoo.com> Message-ID: <54B7F30F.5050509@oracle.com> You need to login to FX JIRA in order to run the query (FX JIRA does not have anonymous read access). -- Kevin Tony Anecito wrote: > FX query fails but the jdk query works fine. > > * The value 'RT' does not exist for the field 'project'. > * Field 'fixVersion' does not exist or this field cannot be viewed > by anonymous users. > * Field 'resolution' does not exist or this field cannot be viewed > by anonymous users > > > -Tony > > > On Thursday, January 15, 2015 9:36 AM, Kevin Rushforth > wrote: > > > You can use the following two JIRA queries to find the list of issues > fixed in 8u40: > > For FX: > https://javafx-jira.kenai.com/issues/?jql=project%20%3D%20RT%20AND%20fixVersion%20%3D%208u40%20AND%20resolution%20%3D%20Fixed > > For JDK: > https://bugs.openjdk.java.net/issues/?jql=project%20%3D%20JDK%20AND%20fixVersion%20%3D%208u40%20AND%20resolution%20%3D%20Fixed > > -- Kevin > > > Tony Anecito wrote: >> Thanks. Looks like 2 more months. Not sure from the links what the >> new enhancements will be from 25 to 40. I saw some comments before >> things went quiet after JavaOne. I could use the performance >> enhancements for OSX. >> >> -Tony >> >> >> On Thursday, January 15, 2015 9:25 AM, Kevin Rushforth >> wrote: >> >> >> Scheduled GA is March 2015: >> http://openjdk.java.net/projects/jdk8u/releases/8u40.html >> >> It should be early March, but I don't know if the exact date has been >> announced. >> >> -- Kevin >> >> >> Tony Anecito wrote: >> > Hi,I want to use 1.8.0_40 but not sure when it will be released. >> Last build (20) there were no changes mention so sounds like it is >> ready for release? >> > >> > Regards,-Tony >> > >> >> > > From vadim.pakhnushev at oracle.com Thu Jan 15 18:19:47 2015 From: vadim.pakhnushev at oracle.com (Vadim Pakhnushev) Date: Thu, 15 Jan 2015 21:19:47 +0300 Subject: [8u60] Review request for RT-22933: GIF: loop counter is not implemented. Message-ID: <54B804C3.9090507@oracle.com> Jim, Please review the fix: https://javafx-jira.kenai.com/browse/RT-22933 http://cr.openjdk.java.net/~vadim/RT-25221/webrev.00/ (yes, the link to webrev is different from the JIRA number) Thanks, Vadim From herve.girod at gmail.com Thu Jan 15 22:59:10 2015 From: herve.girod at gmail.com (Herve Girod) Date: Thu, 15 Jan 2015 23:59:10 +0100 Subject: When is next release? In-Reply-To: <54B7ECA1.1010707@oracle.com> References: <54B7EA03.8040006@oracle.com> <324428844.981271.1421339610087.JavaMail.yahoo@jws10091.mail.ne1.yahoo.com> <54B7ECA1.1010707@oracle.com> Message-ID: Hello, The FX filter does not work. However I don't know how to fix it ;) Herv? 2015-01-15 17:36 GMT+01:00 Kevin Rushforth : > You can use the following two JIRA queries to find the list of issues > fixed in 8u40: > > For FX: > https://javafx-jira.kenai.com/issues/?jql=project%20%3D% > 20RT%20AND%20fixVersion%20%3D%208u40%20AND%20resolution%20%3D%20Fixed > > For JDK: > https://bugs.openjdk.java.net/issues/?jql=project%20%3D% > 20JDK%20AND%20fixVersion%20%3D%208u40%20AND%20resolution%20%3D%20Fixed > > -- Kevin > > > Tony Anecito wrote: > >> Thanks. Looks like 2 more months. Not sure from the links what the new >> enhancements will be from 25 to 40. I saw some comments before things went >> quiet after JavaOne. I could use the performance enhancements for OSX. >> >> -Tony >> >> >> >> On Thursday, January 15, 2015 9:25 AM, Kevin Rushforth < >> kevin.rushforth at oracle.com> wrote: >> >> >> Scheduled GA is March 2015: >> http://openjdk.java.net/projects/jdk8u/releases/8u40.html >> >> It should be early March, but I don't know if the exact date has been >> announced. >> >> -- Kevin >> >> >> Tony Anecito wrote: >> > Hi,I want to use 1.8.0_40 but not sure when it will be released. Last >> build (20) there were no changes mention so sounds like it is ready for >> release? >> > >> > Regards,-Tony >> > >> >> From herve.girod at gmail.com Thu Jan 15 22:59:37 2015 From: herve.girod at gmail.com (Herve Girod) Date: Thu, 15 Jan 2015 23:59:37 +0100 Subject: When is next release? In-Reply-To: References: <54B7EA03.8040006@oracle.com> <324428844.981271.1421339610087.JavaMail.yahoo@jws10091.mail.ne1.yahoo.com> <54B7ECA1.1010707@oracle.com> Message-ID: Sorry, I should have read all the Thread. 2015-01-15 23:59 GMT+01:00 Herve Girod : > Hello, > > The FX filter does not work. However I don't know how to fix it ;) > > Herv? > > 2015-01-15 17:36 GMT+01:00 Kevin Rushforth : > >> You can use the following two JIRA queries to find the list of issues >> fixed in 8u40: >> >> For FX: >> https://javafx-jira.kenai.com/issues/?jql=project%20%3D% >> 20RT%20AND%20fixVersion%20%3D%208u40%20AND%20resolution%20%3D%20Fixed >> >> For JDK: >> https://bugs.openjdk.java.net/issues/?jql=project%20%3D% >> 20JDK%20AND%20fixVersion%20%3D%208u40%20AND%20resolution%20%3D%20Fixed >> >> -- Kevin >> >> >> Tony Anecito wrote: >> >>> Thanks. Looks like 2 more months. Not sure from the links what the new >>> enhancements will be from 25 to 40. I saw some comments before things went >>> quiet after JavaOne. I could use the performance enhancements for OSX. >>> >>> -Tony >>> >>> >>> >>> On Thursday, January 15, 2015 9:25 AM, Kevin Rushforth < >>> kevin.rushforth at oracle.com> wrote: >>> >>> >>> Scheduled GA is March 2015: >>> http://openjdk.java.net/projects/jdk8u/releases/8u40.html >>> >>> It should be early March, but I don't know if the exact date has been >>> announced. >>> >>> -- Kevin >>> >>> >>> Tony Anecito wrote: >>> > Hi,I want to use 1.8.0_40 but not sure when it will be released. Last >>> build (20) there were no changes mention so sounds like it is ready for >>> release? >>> > >>> > Regards,-Tony >>> > >>> >>> > From peter.penzov at gmail.com Fri Jan 16 12:06:31 2015 From: peter.penzov at gmail.com (Peter Penzov) Date: Fri, 16 Jan 2015 14:06:31 +0200 Subject: Update TreeView item graphic Message-ID: Hi All, I can't update dynamically TreeView item graphic when I try to set new image: ImageView imgViesw = new ImageView(new Image(DataTabs.class.getResource("/images/Misc-Database-3-icon.png").toExternalForm())); treeItem.setGraphic(null); treeItem.setGraphic(imgViesw); First I generate TreeView with Items using custom Graphics for for tree nodes. This works well. Then I use JavaFX service to iterate the tree nodes and change the icons based on some condition(active/not-active). But the images are not updated. I use Java 8u40b21. Is this a known bug? BR, Peter From vadim.pakhnushev at oracle.com Fri Jan 16 14:30:27 2015 From: vadim.pakhnushev at oracle.com (Vadim Pakhnushev) Date: Fri, 16 Jan 2015 17:30:27 +0300 Subject: In(Sanity) Testing Mondays Message-ID: <54B92083.3080008@oracle.com> Reminder, Monday is our weekly sanity testing. You can find your testing assignment at: https://wiki.openjdk.java.net/display/OpenJFX/Sanity+Testing Also please remember that the repo will be locked from 1am PST until 1pm PST. Happy testing! Thanks, Vadim From kevin.rushforth at oracle.com Fri Jan 16 15:56:47 2015 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Fri, 16 Jan 2015 07:56:47 -0800 Subject: In(Sanity) Testing Mondays In-Reply-To: <54B92083.3080008@oracle.com> References: <54B92083.3080008@oracle.com> Message-ID: <54B934BF.8090000@oracle.com> Also note that as Monday is a US holiday, some of the testing will be a little lighter this week. -- Kevin Vadim Pakhnushev wrote: > Reminder, Monday is our weekly sanity testing. > > You can find your testing assignment at: > > https://wiki.openjdk.java.net/display/OpenJFX/Sanity+Testing > > Also please remember that the repo will be locked from 1am PST until > 1pm PST. > > Happy testing! > > Thanks, > Vadim From chien.yang at oracle.com Fri Jan 16 22:33:55 2015 From: chien.yang at oracle.com (Chien Yang) Date: Fri, 16 Jan 2015 14:33:55 -0800 Subject: Code Review Request For RT-39008: [Mac] Glass shouldn't use Prism's context for creating or destroying native rendering resources Message-ID: <54B991D3.6000809@oracle.com> Hi Dave, Kevin and Morris, Please review the proposed fix. JIRA: https://javafx-jira.kenai.com/browse/RT-39008 Webrev: http://cr.openjdk.java.net/~ckyang/RT-39008/webrev.00/ Thanks, - Chien From prasant at indsp.com Mon Jan 19 08:44:14 2015 From: prasant at indsp.com (Prasant Jalan) Date: Mon, 19 Jan 2015 14:14:14 +0530 Subject: iMX6Q graphics performance Message-ID: <54BCC3DE.7010703@indsp.com> Hi, I'm running my JavaFX based application (only uses 2D graphics) on Freescale iMX6Q processor (1.2 GHz x Quad Core). The performance is not up the mark. (I'm using javaFX build 8u40-b15). My system has framebuffer build of the Vivante graphic libraries (ver 5.0.11.19959). The same application when run on an intel i3 processor (4 core, 1.6 GHz each - Windows 32 bit) performs much better. Is the difference in performances because of DirectX on Windows and OpenGL on the embedded ARM? How can I find out the real reason of low performance on my ARM system (or this is how I should expect it to perform) ? Any comments from developers or users who are using Freescale MX6 based system for their application / tests will be helpful to me. Regards, Prasant From prasant at indsp.com Mon Jan 19 09:21:27 2015 From: prasant at indsp.com (Prasant Jalan) Date: Mon, 19 Jan 2015 14:51:27 +0530 Subject: JavaFX on Embedded ARM: How to find out if hardware acceleration is available or not Message-ID: <54BCCC97.6080702@indsp.com> Hi, How can I confirm whether my test javaFX application (running on embedded ARM platform, iMX6 Quad Core) is using hardware graphics acceleration or not? When prism.verbose is set to true, I see the following output: Graphics Vendor: Vivante Corporation Renderer: Vivante GC2000 Version: OpenGL ES 3.0 V5.0.11.p1.19959 vsync: true vpipe: true Is this enough indication that the hardware acceleration in the system is working fine? Any inputs will be of help. Regards, Prasant From kevin.rushforth at oracle.com Mon Jan 19 15:52:20 2015 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Mon, 19 Jan 2015 07:52:20 -0800 Subject: 8u-dev unlocked [was: In(Sanity) Testing Mondays] In-Reply-To: <54B07F22.90601@oracle.com> References: <54944E68.3030803@oracle.com> <54B07F22.90601@oracle.com> Message-ID: <54BD2834.2050607@oracle.com> Since today is a US holiday, those of us in the US won't be testing today. Those outside the US should test as per their assignment. Also, since I won't be integrating to 8u master or 9 until tomorrow, the 8u-dev repo is unlocked early. -- Kevin Kevin Rushforth wrote: > Reminder, Monday is our weekly sanity testing. > > You can find your testing assignment at: > > https://wiki.openjdk.java.net/display/OpenJFX/Sanity+Testing > > Also please remember that the repo will be locked from 1am PST until > 1pm PST. > > Happy testing! > > Thanks, > > -- Kevin > From vadim.pakhnushev at oracle.com Tue Jan 20 13:09:18 2015 From: vadim.pakhnushev at oracle.com (Vadim Pakhnushev) Date: Tue, 20 Jan 2015 16:09:18 +0300 Subject: [8u60] Review request for RT-39758: LineChart renders noisy lines when the number of data points is large Message-ID: <54BE537E.7070305@oracle.com> Jonathan, Please review the fix: https://javafx-jira.kenai.com/browse/RT-39758 http://cr.openjdk.java.net/~vadim/RT-39758/webrev.00/ Thanks, Vadim From peter.penzov at gmail.com Tue Jan 20 15:46:26 2015 From: peter.penzov at gmail.com (Peter Penzov) Date: Tue, 20 Jan 2015 17:46:26 +0200 Subject: Limit width size of Bar chart Message-ID: I created simple example of Bar Chart but I notices that size of the bar fits the chart. How I can limit the size? For example I would like to limit the width size. Is there a way to set JavaFX Bar Chart column width size? For example there is a way to setBarGap size but I can't find a way to set the maximum width of a Bar Chart column. BR, Peter From mike at plan99.net Tue Jan 20 16:17:08 2015 From: mike at plan99.net (Mike Hearn) Date: Tue, 20 Jan 2015 17:17:08 +0100 Subject: Lighthouse In-Reply-To: <54133FCD.90304@oracle.com> References: <54133FCD.90304@oracle.com> Message-ID: We launched the public beta of Lighthouse today: https://www.vinumeris.com/lighthouse Feedback has been good so far and we've received lots of compliments about how slick the UI is, and how un-Javay it feels ;) Actually it's just Modena with a few CSS tweaks, and a few animated effects. I hope it can stand as a nice public example of how to use JavaFX to make modern and fresh UIs. As before it's open source, so anyone who wants to learn how to make an app that looks like this or steal some of the code - you're welcome to it! From David.Hill at Oracle.com Tue Jan 20 17:54:25 2015 From: David.Hill at Oracle.com (David Hill) Date: Tue, 20 Jan 2015 12:54:25 -0500 Subject: iMX6Q graphics performance In-Reply-To: <54BCC3DE.7010703@indsp.com> References: <54BCC3DE.7010703@indsp.com> Message-ID: <54BE9651.7000307@Oracle.com> On 1/19/15, 3:44 AM, Prasant Jalan wrote: > Hi, > > I'm running my JavaFX based application (only uses 2D graphics) on Freescale iMX6Q processor (1.2 GHz x Quad Core). The performance is not up the mark. (I'm using javaFX build 8u40-b15). My system has framebuffer build of the Vivante graphic libraries (ver 5.0.11.19959). > > First lets make sure you are getting the accelerated stack: add -Dprism.verbose=true to the command line. The resulting output should indicate if you are getting accelerated ES support or are quietly falling back to software rendering. What version of JavaFX are you using ? There certainly have been some improvements after the 8u6 release (which is is last current JDK package for ARM with JFX). There are instructions on how to build and install the current OpenJFX for ARM here . > The same application when run on an intel i3 processor (4 core, 1.6 GHz each - Windows 32 bit) performs much better. > > > Is the difference in performances because of DirectX on Windows and OpenGL on the embedded ARM? How can I find out the real reason of low performance on my ARM system (or this is how I should expect it to perform) ? ARM systems will tend to run slower than comparable Itel if you are just looking at clock speed - but there are so many other variables in the mix that it is hard to say what it is the limiting factor. For example - I have seen some apps that run fine on a sluggish Raspberry Pi because the GPU is fast enough for the application, and the CPU is not the limiting factor. I have other apps that run reasonable on my i.MX6, that I can't get a decent frame rate on the Pi. That same application gets double the FPS on my desktop machines though not much faster on a intel netbook. The amount of memory, the bus speed, the CPU speed, and the number of GPU cores are just a few of the items to consider. Sometimes the bottleneck is something that does not appear obvious at first. For example - we cache a lot of textures to speed things up in JFX. A recent example was using a huge font size - one that exceeded the default cache limitations (there is a way to override the default settting). Because it was not cached - it was being regenerated periodically which really showed in the frame rate. Complex scene graphs can also cause some computational overhead that is noticeable on ARM. > > > Any comments from developers or users who are using Freescale MX6 based system for their application / tests will be helpful to me. > > > Regards, Prasant > > -- David Hill Java Embedded Development "A man's feet should be planted in his country, but his eyes should survey the world." -- George Santayana (1863 - 1952) From David.Hill at Oracle.com Tue Jan 20 17:56:44 2015 From: David.Hill at Oracle.com (David Hill) Date: Tue, 20 Jan 2015 12:56:44 -0500 Subject: JavaFX on Embedded ARM: How to find out if hardware acceleration is available or not In-Reply-To: <54BCCC97.6080702@indsp.com> References: <54BCCC97.6080702@indsp.com> Message-ID: <54BE96DC.4070200@Oracle.com> On 1/19/15, 4:21 AM, Prasant Jalan wrote: > Hi, > > How can I confirm whether my test javaFX application (running on embedded ARM platform, iMX6 Quad Core) is using hardware graphics acceleration or not? Prasant, Yes - this debug indicates that you should be following the accelerated (OpenGL ES path). (I missing this email when composing my previous response - so you can ignore that part of the request for information). Dave > > > When prism.verbose is set to true, I see the following output: > > Graphics Vendor: Vivante Corporation > Renderer: Vivante GC2000 > Version: OpenGL ES 3.0 V5.0.11.p1.19959 > vsync: true vpipe: true > > > Is this enough indication that the hardware acceleration in the system is working fine? > > > Any inputs will be of help. > > > Regards, Prasant > -- David Hill Java Embedded Development "A man's feet should be planted in his country, but his eyes should survey the world." -- George Santayana (1863 - 1952) From kevin.rushforth at oracle.com Tue Jan 20 21:14:22 2015 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Tue, 20 Jan 2015 13:14:22 -0800 Subject: Changes for January 2015 CPU release (8u31) synced into FX 8u40 Message-ID: <54BEC52E.9000002@oracle.com> I have synced the OpenJFX changes from the just-released January 2015 CPU release (8u31) into 8u40. I will sync them into 8u and 9 shortly. Here is a webrev of the FX 8u31 changes for those who are interested in the changes, but don't want to wade through the 29 separate changesets I just pushed (most of which are tag or merge changesets). http://cr.openjdk.java.net/~kcr/openjfx-8u31-8u40-sync/webrev/ -- Kevin From prasant at indsp.com Wed Jan 21 05:31:48 2015 From: prasant at indsp.com (Prasant Jalan) Date: Wed, 21 Jan 2015 11:01:48 +0530 Subject: iMX6Q graphics performance In-Reply-To: <54BE9651.7000307@Oracle.com> References: <54BCC3DE.7010703@indsp.com> <54BE9651.7000307@Oracle.com> Message-ID: <54BF39C4.2090807@indsp.com> Hi David, Thanks a lot for your inputs! My response is below. On Tuesday 20 January 2015 11:24 PM, David Hill wrote: > On 1/19/15, 3:44 AM, Prasant Jalan wrote: >> Hi, >> >> I'm running my JavaFX based application (only uses 2D graphics) on >> Freescale iMX6Q processor (1.2 GHz x Quad Core). The performance is >> not up the mark. (I'm using javaFX build 8u40-b15). My system has >> framebuffer build of the Vivante graphic libraries (ver 5.0.11.19959). >> >> > >> The same application when run on an intel i3 processor (4 core, 1.6 >> GHz each - Windows 32 bit) performs much better. >> >> >> Is the difference in performances because of DirectX on Windows and >> OpenGL on the embedded ARM? How can I find out the real reason of low >> performance on my ARM system (or this is how I should expect it to >> perform) ? > ARM systems will tend to run slower than comparable Itel if you are > just looking at clock speed - but there are so many other variables in > the mix that it is hard to say what it is the limiting factor. For > example - I have seen some apps that run fine on a sluggish Raspberry > Pi because the GPU is fast enough for the application, and the CPU is > not the limiting factor. I have other apps that run reasonable on my > i.MX6, that I can't get a decent frame rate on the Pi. That same > application gets double the FPS on my desktop machines though not much > faster on a intel netbook. > > The amount of memory, the bus speed, the CPU speed, and the number of > GPU cores are just a few of the items to consider. > > Sometimes the bottleneck is something that does not appear obvious at > first. For example - we cache a lot of textures to speed things up in > JFX. A recent example was using a huge font size - one that exceeded > the default cache limitations (there is a way to override the default > settting). Because it was not cached - it was being regenerated > periodically which really showed in the frame rate. > > Complex scene graphs can also cause some computational overhead that > is noticeable on ARM. You have hit the right point. We want a way to find out if our system is not performing of our application has a problem. If I could get the test apps that you have used for iMX6 testing and if I know the following: - What fps did you get when you ran on iMX6? - which javaFX build were you using? - which version of Vivante graphics were you using? - your iMX6 hardware specs: core clock speed, number of cores, amount of memory ?? The above information will help us test our system. We have also put a system together and the above answers will give us a reference measurement. We could use your test app and get the fps measurement and know if our system is behaving fine. Then we could reduce our scope to javaFX application optimization and forget about the system. I hope we can get the above information. Let me know! Regards, Prasant From ltorokrl at gmail.com Wed Jan 21 05:52:58 2015 From: ltorokrl at gmail.com (=?UTF-8?B?TGFkaXNsYXYgVMO2csO2aw==?=) Date: Wed, 21 Jan 2015 06:52:58 +0100 Subject: JDK 8u33 for ARM and JavaFX Message-ID: Hi, from Release Notes for JDK 8u33 for ARM (see: http://www.oracle.com/technetwork/java/javase/jdk-8u33-arm-relnotes-2406696.html ): 1 New and Changed Features In addition, JDK 8u33 for ARM contains the following change: * Starting with JDK 8u33, JavaFX Embedded is removed from the ARM bundle and is not supported. This means that JavaFX is not running on Raspberry PI and when I want to use JavaFX on Raspberry Pi, I must be built OpenJFX and result .jar/jars copy to JDK 8u33 for ARM directories structure on Raspberrry PI? From kevin.rushforth at oracle.com Wed Jan 21 15:26:57 2015 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Wed, 21 Jan 2015 07:26:57 -0800 Subject: Proposal: removing the deprecated builders Message-ID: <54BFC541.3010508@oracle.com> As communicated previously [1] the JavaFX *Builder classes were deprecated in FX 8 with the intention of removing them in FX 9. A 2.2-compatible set of *Builders classes was delivered with FX 8, containing no new classes or methods from any API added after FX 2.2. This set of classes is excluded from the API documentation to underscore the fact that it is no longer a formal part of the JavaFX API. Now that work for the modular JDK is underway, we are preparing to modularize JavaFX. Part of this work will require us to either remove the builders or move the classes into the graphics and control modules -- we cannot deliver a separate builders module with the existing builders classes. The marginal value of continuing to carry these legacy builders classes, which cannot evolve compatibly to match any current or future API changes, isn't justified by the cost. As such, we plan to remove them from FX for JDK 9 [2]. Note that the base javafx.util.Builder class and javafx.util.BuilderFactory interface, as well as the fxml javafx.fxml.JavaFXBuilderFactory class, will remain part of the API. It is only the deprecated (and undocumented) *Builder classes that correspond to the various scene graph objects that will be removed -- everything currently in the modules/builders directory tree. We will explore ways to make them available to applications that still want to use them, but it will not be possible to do it in a binary compatible manner -- they will need to move to a new package to avoid the split package problem, possibly in a com.oracle namespace. Most likely we will just provide a sample with source code. -- Kevin [1] http://mail.openjdk.java.net/pipermail/openjfx-dev/2013-March/006725.html [2] https://javafx-jira.kenai.com/browse/RT-39785 From navdeepsingh.sidhu95 at gmail.com Wed Jan 21 15:31:24 2015 From: navdeepsingh.sidhu95 at gmail.com (Navdeep Singh Sidhu) Date: Wed, 21 Jan 2015 21:01:24 +0530 Subject: How to redirect input/output/error from Process Builder To TextArea Message-ID: I am experimenting with JavaFX and tried to build a Console/Command Prompt . But i don't know how to redirect Input/Output/Error From ProcessBuilder to TextArea. public class JavaFXConsole extends Application { @Override public void start(Stage primaryStage) { TextArea ta = new TextArea(); ta.onKeyTypedProperty().addListener(new ChangeListener>() { @Override public void changed(ObservableValue> observable, EventHandler oldValue, EventHandler newValue) { } }); HBox root = new HBox(); root.getChildren().add(ta); ProcessBuilder pb = new ProcessBuilder("bash"); pb.inheritIO(); try { pb.start(); } catch (IOException ex) { Logger.getLogger(JavaFXConsole.class.getName()).log(Level.SEVERE, null, ex); } Scene scene = new Scene(root, 300, 250); primaryStage.setTitle("Hello World!"); primaryStage.setScene(scene); primaryStage.show(); } /** * @param args the command line arguments */ public static void main(String[] args) { launch(args); } } Thanks in advance !! -- Regards Navdeep Singh Sidhu From jonathan.giles at oracle.com Thu Jan 22 01:03:38 2015 From: jonathan.giles at oracle.com (Jonathan Giles) Date: Thu, 22 Jan 2015 14:03:38 +1300 Subject: [8u60] API Review for RT-22599: Ability to force a ListView or TableView refresh Message-ID: <54C04C6A.8050404@oracle.com> Kevin, All, I have posted a patch file to RT-22599 [1] that adds a refresh() method to ListView, TreeView, TableView, and TreeTableView. This is a very highly voted tweak request (the fourth most popular in fact, with 77 votes, and another 35 in the duplicate RT-22463). A review of the change would be much appreciated. [1] https://javafx-jira.kenai.com/browse/RT-22599 Thanks, -- Jonathan From ltorokrl at gmail.com Thu Jan 22 12:46:54 2015 From: ltorokrl at gmail.com (=?UTF-8?B?TGFkaXNsYXYgVMO2csO2aw==?=) Date: Thu, 22 Jan 2015 13:46:54 +0100 Subject: End of support JavaFX in JDK for ARM (Raspberry Pi) Message-ID: In Release Notes for JDK for ARM 8u33 is: "Starting with JDK 8u33, JavaFX Embedded is removed from the ARM bundle and is not supported." Why? How do I now create a GUI in Java for Raspberry Pi (GPU accelerated GUI) ? Thanks. From navdeepsingh.sidhu95 at gmail.com Thu Jan 22 18:03:30 2015 From: navdeepsingh.sidhu95 at gmail.com (Navdeep Singh Sidhu) Date: Thu, 22 Jan 2015 23:33:30 +0530 Subject: How to redirect input/output/error from Process Builder To TextArea Message-ID: I updated the code slightly. But now getting Stream is closed exception. Without Closing "out" command doesn't executes. Here is the code. public class JavaFXConsole extends Application { ProcessBuilder pb; Process process; TextArea ta; String input = ""; static OutputStream out; //static BufferedReader stdInput, stdError; //static Thread outputThread; @Override public void start(Stage primaryStage) { ta = new TextArea("$"); ta.setOnKeyTyped(new EventHandler() { @Override public void handle(KeyEvent event) { { input = input.concat(event.getCharacter()); System.out.println(input); } } }); final KeyCombination keyComb1 = new KeyCodeCombination(KeyCode.C, KeyCombination.CONTROL_DOWN); ta.setOnKeyPressed(new EventHandler() { @Override public void handle(KeyEvent event) { if (event.getCode() == KeyCode.ENTER) { try { out = process.getOutputStream(); getOutPut(); out.write(input.getBytes()); input = ""; //out.flush(); out.close(); System.out.println("Command Sent"); } catch (IOException ex) { Logger.getLogger(JavaFXConsole.class.getName()).log(Level.SEVERE, null, ex); } } else if (keyComb1.match(event)) { System.out.println("Control+C pressed"); } } }); HBox root = new HBox(); root.getChildren().add(ta); pb = new ProcessBuilder("bash"); //pb.inheritIO(); try { process = pb.start(); } catch (IOException ex) { Logger.getLogger(JavaFXConsole.class.getName()).log(Level.SEVERE, null, ex); } // outputThread.start(); Scene scene = new Scene(root, 300, 250); primaryStage.setTitle("Hello World!"); primaryStage.setScene(scene); primaryStage.show(); } public void getOutPut() { Thread outputThread = new Thread(new Runnable() { @Override public void run() { try { BufferedReader stdInput, stdError; stdInput = new BufferedReader(new InputStreamReader(process.getInputStream())); stdError = new BufferedReader(new InputStreamReader(process.getErrorStream())); // read the output from the command System.out.println("Here is the standard output of the command:\n"); String s = null; String output = ""; while ((s = stdInput.readLine()) != null) { System.out.println(s); String str = s; Platform.runLater(new Runnable() { @Override public void run() { ta.appendText(str + "\n"); } }); } output = ""; // read any errors from the attempted command System.out.println("Here is the standard error of the command (if any):\n"); while ((s = stdError.readLine()) != null) { System.out.println(s); String str = s; Platform.runLater(new Runnable() { @Override public void run() { ta.appendText(str + "\n"); } }); } Platform.runLater(new Runnable() { @Override public void run() { ta.appendText("$"); } }); stdError.close(); stdInput.close(); } catch (IOException ex) { Logger.getLogger(JavaFXConsole.class.getName()).log(Level.SEVERE, null, ex); } } }); outputThread.start(); } /** * @param args the command line arguments */ public static void main(String[] args) { launch(args); } } Anybody know to solve the problem? Regards Navdeep Singh Sidhu From fbrunnerlist at gmx.ch Thu Jan 22 23:17:23 2015 From: fbrunnerlist at gmx.ch (Florian Brunner) Date: Fri, 23 Jan 2015 00:17:23 +0100 Subject: JDK 8u33 for ARM and JavaFX In-Reply-To: References: Message-ID: <47420725.GsDJfhZWxb@andor> Indeed, this is really bad news then. :-( JavaFX gets further from "write once run anywhere" instead of closer. :-( -Florian Am Mittwoch, 21. Januar 2015, 06.52:58 schrieb Ladislav T?r?k: > Hi, > from Release Notes for JDK 8u33 for ARM (see: > http://www.oracle.com/technetwork/java/javase/jdk-8u33-arm-relnotes-2406696. > html ): > > 1 New and Changed Features > > In addition, JDK 8u33 for ARM contains the following change: > > * Starting with JDK 8u33, JavaFX Embedded is removed from the ARM bundle > and is not supported. > > This means that JavaFX is not running on Raspberry PI and when I want to > use JavaFX on Raspberry Pi, I must be built OpenJFX and result .jar/jars > copy to JDK 8u33 for ARM directories structure on Raspberrry PI? From mikegps1 at gmail.com Fri Jan 23 00:37:02 2015 From: mikegps1 at gmail.com (Mike) Date: Thu, 22 Jan 2015 16:37:02 -0800 Subject: JDK 8u33 for ARM and JavaFX In-Reply-To: <47420725.GsDJfhZWxb@andor> References: <47420725.GsDJfhZWxb@andor> Message-ID: Sorry -- can you clarify? What embedded platforms are supported by Jdk9? Where do I get a list? What is the most common Embedded device in low cost Mass production? On Thu, Jan 22, 2015 at 3:17 PM, Florian Brunner wrote: > Indeed, this is really bad news then. :-( > > JavaFX gets further from "write once run anywhere" instead of closer. :-( > > -Florian > > Am Mittwoch, 21. Januar 2015, 06.52:58 schrieb Ladislav T?r?k: > > Hi, > > from Release Notes for JDK 8u33 for ARM (see: > > > http://www.oracle.com/technetwork/java/javase/jdk-8u33-arm-relnotes-2406696 > . > > html ): > > > > 1 New and Changed Features > > > > In addition, JDK 8u33 for ARM contains the following change: > > > > * Starting with JDK 8u33, JavaFX Embedded is removed from the ARM bundle > > and is not supported. > > > > This means that JavaFX is not running on Raspberry PI and when I want to > > use JavaFX on Raspberry Pi, I must be built OpenJFX and result .jar/jars > > copy to JDK 8u33 for ARM directories structure on Raspberrry PI? > > From prasant at indsp.com Fri Jan 23 10:14:16 2015 From: prasant at indsp.com (Prasant Jalan) Date: Fri, 23 Jan 2015 15:44:16 +0530 Subject: iMX6Q graphics performance In-Reply-To: <54BE9651.7000307@Oracle.com> References: <54BCC3DE.7010703@indsp.com> <54BE9651.7000307@Oracle.com> Message-ID: <54C21EF8.2080200@indsp.com> Hi Dave, > > The amount of memory, the bus speed, the CPU speed, and the number of > GPU cores are just a few of the items to consider. > > Sometimes the bottleneck is something that does not appear obvious at > first. For example - we cache a lot of textures to speed things up in > JFX. A recent example was using a huge font size - one that exceeded > the default cache limitations (there is a way to override the default > settting). Because it was not cached - it was being regenerated > periodically which really showed in the frame rate. > How can I override the default cache setting? I would want to tweak and try out. Regards, Prasant From vadim.pakhnushev at oracle.com Fri Jan 23 16:38:18 2015 From: vadim.pakhnushev at oracle.com (Vadim Pakhnushev) Date: Fri, 23 Jan 2015 19:38:18 +0300 Subject: In(Sanity) Testing Mondays Message-ID: <54C278FA.10909@oracle.com> Reminder, Monday is our weekly sanity testing. You can find your testing assignment at: https://wiki.openjdk.java.net/display/OpenJFX/Sanity+Testing Also please remember that the repo will be locked from 1am PST until 1pm PST. Happy testing! Thanks, Vadim From David.Hill at Oracle.com Fri Jan 23 17:23:14 2015 From: David.Hill at Oracle.com (David Hill) Date: Fri, 23 Jan 2015 12:23:14 -0500 Subject: Removing Glass/Lens sources Message-ID: <54C28382.3060606@Oracle.com> For embedded uses (ARM) we have transitioned from Lens to Monocle. We have kept around Lens for the transition, and because Android and iOS implementations were still using Lens. At this point, I believe that Android and iOS have completed that transition as well. We would like to remove the Lens sources now. This will help us because it removes code we need to update when we tweak the internal APIs, and to remove deadwood. We are planning on performing the removal in a few weeks. If you have any comments, thoughts, or other considerations, please add it in the Jira shown below. Remove lens implementation in Glass ----------------------------------- https://javafx-jira.kenai.com/browse/RT-39848 Thanks! -- David Hill Java Embedded Development "A man's feet should be planted in his country, but his eyes should survey the world." -- George Santayana (1863 - 1952) From johan at lodgon.com Fri Jan 23 17:40:32 2015 From: johan at lodgon.com (Johan Vos) Date: Fri, 23 Jan 2015 18:40:32 +0100 Subject: Removing Glass/Lens sources In-Reply-To: <54C28382.3060606@Oracle.com> References: <54C28382.3060606@Oracle.com> Message-ID: Hi David, At this moment the iOS port is still using Lens, but we plan to move this to monocle as well. The mobile ports are currently based on 8u40, and the iOS move to Monocle will happen before we move to 8u60. I think you will remove them in the 9 and 8udev trees, not in the 8u40 branch? Good to hear Monocle is still being maintained! - Johan 2015-01-23 18:23 GMT+01:00 David Hill : > > For embedded uses (ARM) we have transitioned from Lens to Monocle. > > We have kept around Lens for the transition, and because Android and iOS > implementations were still using Lens. At this point, I believe that > Android and iOS have completed that transition as well. > > We would like to remove the Lens sources now. This will help us because it > removes code we need to update when we tweak the internal APIs, and to > remove deadwood. > > We are planning on performing the removal in a few weeks. > > If you have any comments, thoughts, or other considerations, please add it > in the Jira shown below. > > Remove lens implementation in Glass > ----------------------------------- > > https://javafx-jira.kenai.com/browse/RT-39848 > > Thanks! > > > > -- > David Hill > Java Embedded Development > > "A man's feet should be planted in his country, but his eyes should survey > the world." > -- George Santayana (1863 - 1952) > > From kevin.rushforth at oracle.com Fri Jan 23 17:56:24 2015 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Fri, 23 Jan 2015 09:56:24 -0800 Subject: Removing Glass/Lens sources In-Reply-To: References: <54C28382.3060606@Oracle.com> Message-ID: <54C28B48.5020706@oracle.com> Hi Johan, 8u40 is done, so it certainly won't be changed there. It will either be done in 8u-dev for 8u60 (but not until no one is using it any more) or in 9. Thanks. -- Kevin Johan Vos wrote: > Hi David, > > At this moment the iOS port is still using Lens, but we plan to move this > to monocle as well. The mobile ports are currently based on 8u40, and the > iOS move to Monocle will happen before we move to 8u60. I think you will > remove them in the 9 and 8udev trees, not in the 8u40 branch? > > Good to hear Monocle is still being maintained! > > - Johan > > 2015-01-23 18:23 GMT+01:00 David Hill : > > >> For embedded uses (ARM) we have transitioned from Lens to Monocle. >> >> We have kept around Lens for the transition, and because Android and iOS >> implementations were still using Lens. At this point, I believe that >> Android and iOS have completed that transition as well. >> >> We would like to remove the Lens sources now. This will help us because it >> removes code we need to update when we tweak the internal APIs, and to >> remove deadwood. >> >> We are planning on performing the removal in a few weeks. >> >> If you have any comments, thoughts, or other considerations, please add it >> in the Jira shown below. >> >> Remove lens implementation in Glass >> ----------------------------------- >> >> https://javafx-jira.kenai.com/browse/RT-39848 >> >> Thanks! >> >> >> >> -- >> David Hill >> Java Embedded Development >> >> "A man's feet should be planted in his country, but his eyes should survey >> the world." >> -- George Santayana (1863 - 1952) >> >> >> From David.Hill at Oracle.com Fri Jan 23 20:10:50 2015 From: David.Hill at Oracle.com (David Hill) Date: Fri, 23 Jan 2015 15:10:50 -0500 Subject: Removing Glass/Lens sources In-Reply-To: References: <54C28382.3060606@Oracle.com> Message-ID: <54C2AACA.1040104@Oracle.com> On 1/23/15, 12:40 PM, Johan Vos wrote: > Hi David, > > At this moment the iOS port is still using Lens, but we plan to move this to monocle as well. The mobile ports are currently based on 8u40, and the iOS move to Monocle will happen before we move to 8u60. I think you will remove them in the 9 and 8udev trees, not in the 8u40 branch? > > Good to hear Monocle is still being maintained! Hi Johan, We can hold off until you give us the "all clear". At the moment that will probably be in 9. Dave > > - Johan > > 2015-01-23 18:23 GMT+01:00 David Hill >: > > > For embedded uses (ARM) we have transitioned from Lens to Monocle. > > We have kept around Lens for the transition, and because Android and iOS implementations were still using Lens. At this point, I believe that Android and iOS have completed that transition as well. > > We would like to remove the Lens sources now. This will help us because it removes code we need to update when we tweak the internal APIs, and to remove deadwood. > > We are planning on performing the removal in a few weeks. > > If you have any comments, thoughts, or other considerations, please add it in the Jira shown below. > > Remove lens implementation in Glass > ----------------------------------- > > https://javafx-jira.kenai.com/browse/RT-39848 > > Thanks! > > > > -- > David Hill > Java Embedded Development > > "A man's feet should be planted in his country, but his eyes should survey the world." > -- George Santayana (1863 - 1952) > > -- David Hill Java Embedded Development "A man's feet should be planted in his country, but his eyes should survey the world." -- George Santayana (1863 - 1952) From krueger at lesspain.de Sat Jan 24 13:15:19 2015 From: krueger at lesspain.de (=?UTF-8?Q?Robert_Kr=C3=BCger?=) Date: Sat, 24 Jan 2015 14:15:19 +0100 Subject: Scroll events fired in TableView although there is nothing to scroll Message-ID: Hi, I am a bit surprised by the behaviour of the onScroll event handling of TableView. I just printed the events I received there to standard out and although the table does not display any scrollbars because it is large enough to fit all content into it, I receive events as if it were scrolling (even with the physics/inertia I would expect from a scrollbar, i.e. it takes a while after the scroll gesture for the events to stop firing). As an API user I would never have expected this. This makes me wonder how useful the event handler is in the first place as I cannot use it to see if there is actually any scrolling going on in the table. How do I do that? This is somewhat related to a post on OTN ( https://community.oracle.com/message/12810930#12810930) if anyone wants to know what the broader context of this is. Best regards, Robert From tom.schindl at bestsolution.at Sat Jan 24 15:08:45 2015 From: tom.schindl at bestsolution.at (Tom Schindl) Date: Sat, 24 Jan 2015 16:08:45 +0100 Subject: Scroll events fired in TableView although there is nothing to scroll In-Reply-To: References: Message-ID: <25594E95-B5CC-4E4C-B007-6EE6EDD3189D@bestsolution.at> I don't really see why you need to know about this all view classes are virtual so a TableCell, ListCell is only requested when shown - and then reused - IIRC this virtuallity is row based only but the otn request also only talks about rows. Tom Von meinem iPhone gesendet > Am 24.01.2015 um 14:15 schrieb Robert Kr?ger : > > Hi, > > I am a bit surprised by the behaviour of the onScroll event handling of > TableView. I just printed the events I received there to standard out and > although the table does not display any scrollbars because it is large > enough to fit all content into it, I receive events as if it were scrolling > (even with the physics/inertia I would expect from a scrollbar, i.e. it > takes a while after the scroll gesture for the events to stop firing). > > As an API user I would never have expected this. This makes me wonder how > useful the event handler is in the first place as I cannot use it to see if > there is actually any scrolling going on in the table. How do I do that? > > This is somewhat related to a post on OTN ( > https://community.oracle.com/message/12810930#12810930) if anyone wants to > know what the broader context of this is. > > Best regards, > > Robert From tom.schindl at bestsolution.at Sat Jan 24 15:17:23 2015 From: tom.schindl at bestsolution.at (Tom Schindl) Date: Sat, 24 Jan 2015 16:17:23 +0100 Subject: Scroll events fired in TableView although there is nothing to scroll In-Reply-To: References: Message-ID: <54C3B783.2040509@bestsolution.at> [sorry sent the other mail too early] Hi, I don't really see why you need to know about this all view classes are virtual so a TableCell, ListCell is only requested when shown - and then reused. IIRC this virtuallity is row based only but the otn request also only talks about rows. One more note on the onScroll which has nothing todo with the scrollbars - it simply tells you that: a) someone used the scrollwheel on the mouse b) used the scroll gesture eg on the touch pad So I think you did not really get what onScroll is doing. Tom On 24.01.15 14:15, Robert Kr?ger wrote: > Hi, > > I am a bit surprised by the behaviour of the onScroll event handling of > TableView. I just printed the events I received there to standard out and > although the table does not display any scrollbars because it is large > enough to fit all content into it, I receive events as if it were scrolling > (even with the physics/inertia I would expect from a scrollbar, i.e. it > takes a while after the scroll gesture for the events to stop firing). > > As an API user I would never have expected this. This makes me wonder how > useful the event handler is in the first place as I cannot use it to see if > there is actually any scrolling going on in the table. How do I do that? > > This is somewhat related to a post on OTN ( > https://community.oracle.com/message/12810930#12810930) if anyone wants to > know what the broader context of this is. > > Best regards, > > Robert > -- Thomas Schindl, CTO BestSolution.at EDV Systemhaus GmbH Eduard-Bodem-Gasse 5-7, A-6020 Innsbruck http://www.bestsolution.at/ Reg. Nr. FN 222302s am Firmenbuchgericht Innsbruck From krueger at lesspain.de Sat Jan 24 16:50:33 2015 From: krueger at lesspain.de (=?UTF-8?Q?Robert_Kr=C3=BCger?=) Date: Sat, 24 Jan 2015 17:50:33 +0100 Subject: Scroll events fired in TableView although there is nothing to scroll In-Reply-To: <54C3B783.2040509@bestsolution.at> References: <54C3B783.2040509@bestsolution.at> Message-ID: Hi, yes, I just now realized that setOnScroll is Node API and not TableView so I obviously sent my Mail too early. Sorry about the noise. Another observation, though: The onscroll-eventhandler is not called when the tableview actually does scroll. It does fire again, when I reach one end of the data and keep using scroll gestures. Interesting but irrelevant for my case. Thanks for your response, Robert On Sat, Jan 24, 2015 at 4:17 PM, Tom Schindl wrote: > [sorry sent the other mail too early] > > Hi, > > I don't really see why you need to know about this all view classes are > virtual so a TableCell, ListCell is only requested when shown - and then > reused. > > IIRC this virtuallity is row based only but the otn request also only > talks about rows. > > One more note on the onScroll which has nothing todo with the scrollbars > - it simply tells you that: > a) someone used the scrollwheel on the mouse > b) used the scroll gesture eg on the touch pad > > So I think you did not really get what onScroll is doing. > > Tom > > On 24.01.15 14:15, Robert Kr?ger wrote: > > Hi, > > > > I am a bit surprised by the behaviour of the onScroll event handling of > > TableView. I just printed the events I received there to standard out and > > although the table does not display any scrollbars because it is large > > enough to fit all content into it, I receive events as if it were > scrolling > > (even with the physics/inertia I would expect from a scrollbar, i.e. it > > takes a while after the scroll gesture for the events to stop firing). > > > > As an API user I would never have expected this. This makes me wonder how > > useful the event handler is in the first place as I cannot use it to see > if > > there is actually any scrolling going on in the table. How do I do that? > > > > This is somewhat related to a post on OTN ( > > https://community.oracle.com/message/12810930#12810930) if anyone wants > to > > know what the broader context of this is. > > > > Best regards, > > > > Robert > > > > > -- > Thomas Schindl, CTO > BestSolution.at EDV Systemhaus GmbH > Eduard-Bodem-Gasse 5-7, A-6020 Innsbruck > http://www.bestsolution.at/ > Reg. Nr. FN 222302s am Firmenbuchgericht Innsbruck > -- Robert Kr?ger Managing Partner Lesspain GmbH & Co. KG www.lesspain-software.com From swpalmer at gmail.com Sat Jan 24 20:33:10 2015 From: swpalmer at gmail.com (Scott Palmer) Date: Sat, 24 Jan 2015 15:33:10 -0500 Subject: Scroll events fired in TableView although there is nothing to scroll In-Reply-To: References: <54C3B783.2040509@bestsolution.at> Message-ID: <4DE2AAE3-F7C3-475B-A05A-737769F21A92@gmail.com> You are probably only seeing the event when the TableView's internal ScrollPane doesn't consume it. Scott > On Jan 24, 2015, at 11:50 AM, Robert Kr?ger wrote: > > Hi, > > yes, I just now realized that setOnScroll is Node API and not TableView so > I obviously sent my Mail too early. > > Sorry about the noise. > > Another observation, though: The onscroll-eventhandler is not called when > the tableview actually does scroll. It does fire again, when I reach one > end of the data and keep using scroll gestures. Interesting but irrelevant > for my case. > > Thanks for your response, > > Robert > > > > On Sat, Jan 24, 2015 at 4:17 PM, Tom Schindl > wrote: > >> [sorry sent the other mail too early] >> >> Hi, >> >> I don't really see why you need to know about this all view classes are >> virtual so a TableCell, ListCell is only requested when shown - and then >> reused. >> >> IIRC this virtuallity is row based only but the otn request also only >> talks about rows. >> >> One more note on the onScroll which has nothing todo with the scrollbars >> - it simply tells you that: >> a) someone used the scrollwheel on the mouse >> b) used the scroll gesture eg on the touch pad >> >> So I think you did not really get what onScroll is doing. >> >> Tom >> >>> On 24.01.15 14:15, Robert Kr?ger wrote: >>> Hi, >>> >>> I am a bit surprised by the behaviour of the onScroll event handling of >>> TableView. I just printed the events I received there to standard out and >>> although the table does not display any scrollbars because it is large >>> enough to fit all content into it, I receive events as if it were >> scrolling >>> (even with the physics/inertia I would expect from a scrollbar, i.e. it >>> takes a while after the scroll gesture for the events to stop firing). >>> >>> As an API user I would never have expected this. This makes me wonder how >>> useful the event handler is in the first place as I cannot use it to see >> if >>> there is actually any scrolling going on in the table. How do I do that? >>> >>> This is somewhat related to a post on OTN ( >>> https://community.oracle.com/message/12810930#12810930) if anyone wants >> to >>> know what the broader context of this is. >>> >>> Best regards, >>> >>> Robert >> >> >> -- >> Thomas Schindl, CTO >> BestSolution.at EDV Systemhaus GmbH >> Eduard-Bodem-Gasse 5-7, A-6020 Innsbruck >> http://www.bestsolution.at/ >> Reg. Nr. FN 222302s am Firmenbuchgericht Innsbruck > > > > -- > Robert Kr?ger > Managing Partner > Lesspain GmbH & Co. KG > > www.lesspain-software.com From krueger at lesspain.de Sun Jan 25 12:05:04 2015 From: krueger at lesspain.de (=?UTF-8?Q?Robert_Kr=C3=BCger?=) Date: Sun, 25 Jan 2015 13:05:04 +0100 Subject: Scroll events fired in TableView although there is nothing to scroll In-Reply-To: <4DE2AAE3-F7C3-475B-A05A-737769F21A92@gmail.com> References: <54C3B783.2040509@bestsolution.at> <4DE2AAE3-F7C3-475B-A05A-737769F21A92@gmail.com> Message-ID: yes, that's what appear's to be happening. On Sat, Jan 24, 2015 at 9:33 PM, Scott Palmer wrote: > You are probably only seeing the event when the TableView's internal > ScrollPane doesn't consume it. > > Scott > > > On Jan 24, 2015, at 11:50 AM, Robert Kr?ger wrote: > > > > Hi, > > > > yes, I just now realized that setOnScroll is Node API and not TableView > so > > I obviously sent my Mail too early. > > > > Sorry about the noise. > > > > Another observation, though: The onscroll-eventhandler is not called when > > the tableview actually does scroll. It does fire again, when I reach one > > end of the data and keep using scroll gestures. Interesting but > irrelevant > > for my case. > > > > Thanks for your response, > > > > Robert > > > > > > > > On Sat, Jan 24, 2015 at 4:17 PM, Tom Schindl < > tom.schindl at bestsolution.at> > > wrote: > > > >> [sorry sent the other mail too early] > >> > >> Hi, > >> > >> I don't really see why you need to know about this all view classes are > >> virtual so a TableCell, ListCell is only requested when shown - and then > >> reused. > >> > >> IIRC this virtuallity is row based only but the otn request also only > >> talks about rows. > >> > >> One more note on the onScroll which has nothing todo with the scrollbars > >> - it simply tells you that: > >> a) someone used the scrollwheel on the mouse > >> b) used the scroll gesture eg on the touch pad > >> > >> So I think you did not really get what onScroll is doing. > >> > >> Tom > >> > >>> On 24.01.15 14:15, Robert Kr?ger wrote: > >>> Hi, > >>> > >>> I am a bit surprised by the behaviour of the onScroll event handling of > >>> TableView. I just printed the events I received there to standard out > and > >>> although the table does not display any scrollbars because it is large > >>> enough to fit all content into it, I receive events as if it were > >> scrolling > >>> (even with the physics/inertia I would expect from a scrollbar, i.e. it > >>> takes a while after the scroll gesture for the events to stop firing). > >>> > >>> As an API user I would never have expected this. This makes me wonder > how > >>> useful the event handler is in the first place as I cannot use it to > see > >> if > >>> there is actually any scrolling going on in the table. How do I do > that? > >>> > >>> This is somewhat related to a post on OTN ( > >>> https://community.oracle.com/message/12810930#12810930) if anyone > wants > >> to > >>> know what the broader context of this is. > >>> > >>> Best regards, > >>> > >>> Robert > >> > >> > >> -- > >> Thomas Schindl, CTO > >> BestSolution.at EDV Systemhaus GmbH > >> Eduard-Bodem-Gasse 5-7, A-6020 Innsbruck > >> http://www.bestsolution.at/ > >> Reg. Nr. FN 222302s am Firmenbuchgericht Innsbruck > > > > > > > > -- > > Robert Kr?ger > > Managing Partner > > Lesspain GmbH & Co. KG > > > > www.lesspain-software.com > -- Robert Kr?ger Managing Partner Lesspain GmbH & Co. KG www.lesspain-software.com From sven.reimers at gmail.com Sun Jan 25 12:49:17 2015 From: sven.reimers at gmail.com (Sven Reimers) Date: Sun, 25 Jan 2015 13:49:17 +0100 Subject: License for DukePad and some of the demo apps Message-ID: Hi, any special reason the demo code for the duke pad and the according apps is GPL with CPE and not BSD like SceneBuilder app (and some off the other demo apps). In general licensing seems to be not consistent. Any special reason? Thanks Sven -- Sven Reimers * Senior Expert Software Architect * NetBeans Dream Team Member: http://dreamteam.netbeans.org * Community Leader NetBeans: http://community.java.net/netbeans Desktop Java: http://community.java.net/javadesktop * JUG Leader JUG Bodensee: http://www.jug-bodensee.de * Duke's Choice Award Winner 2009 * Blog: https://www.java.net//blog/sven * XING: https://www.xing.com/profile/Sven_Reimers8 * LinkedIn: http://www.linkedin.com/in/svenreimers Join the NetBeans Groups: * XING: http://www.xing.com/group-20148.82db20 * NUGM: http://haug-server.dyndns.org/display/NUGM/Home * LinkedIn: http://www.linkedin.com/groups?gid=1860468 http://www.linkedin.com/groups?gid=107402 http://www.linkedin.com/groups?gid=1684717 * Oracle: https://mix.oracle.com/groups/18497 From jasper.potts at oracle.com Sun Jan 25 19:34:45 2015 From: jasper.potts at oracle.com (Jasper Potts) Date: Sun, 25 Jan 2015 11:34:45 -0800 Subject: License for DukePad and some of the demo apps In-Reply-To: References: Message-ID: <7EE5B41D-D998-4938-820F-94F5B5A41054@oracle.com> Hi, All samples should have been BSD, expect it was a automated script. Maybe Kevin can help sort it out. Jasper > On Jan 25, 2015, at 4:49 AM, Sven Reimers wrote: > > Hi, > > any special reason the demo code for the duke pad and the according apps is > GPL with CPE and not BSD like SceneBuilder app (and some off the other demo > apps). > > In general licensing seems to be not consistent. > > Any special reason? > > Thanks > > Sven > -- > Sven Reimers > > * Senior Expert Software Architect > * NetBeans Dream Team Member: http://dreamteam.netbeans.org > * Community Leader NetBeans: http://community.java.net/netbeans > Desktop Java: > http://community.java.net/javadesktop > * JUG Leader JUG Bodensee: http://www.jug-bodensee.de > * Duke's Choice Award Winner 2009 > * Blog: https://www.java.net//blog/sven > > * XING: https://www.xing.com/profile/Sven_Reimers8 > * LinkedIn: http://www.linkedin.com/in/svenreimers > > Join the NetBeans Groups: > * XING: http://www.xing.com/group-20148.82db20 > * NUGM: http://haug-server.dyndns.org/display/NUGM/Home > * LinkedIn: http://www.linkedin.com/groups?gid=1860468 > http://www.linkedin.com/groups?gid=107402 > http://www.linkedin.com/groups?gid=1684717 > * Oracle: https://mix.oracle.com/groups/18497 From ltorokrl at gmail.com Mon Jan 26 15:38:28 2015 From: ltorokrl at gmail.com (=?UTF-8?B?TGFkaXNsYXYgVMO2csO2aw==?=) Date: Mon, 26 Jan 2015 16:38:28 +0100 Subject: JDK 8u33 for ARM and JavaFX In-Reply-To: References: Message-ID: None answer? Why? D?a 21.1.2015 6:52 pou??vate? "Ladislav T?r?k" nap?sal: > Hi, > from Release Notes for JDK 8u33 for ARM (see: > http://www.oracle.com/technetwork/java/javase/jdk-8u33-arm-relnotes-2406696.html > ): > > 1 New and Changed Features > > In addition, JDK 8u33 for ARM contains the following change: > > * Starting with JDK 8u33, JavaFX Embedded is removed from the ARM bundle > and is not supported. > > This means that JavaFX is not running on Raspberry PI and when I want to > use JavaFX on Raspberry Pi, I must be built OpenJFX and result .jar/jars > copy to JDK 8u33 for ARM directories structure on Raspberrry PI? > From omathe at free.fr Mon Jan 26 18:21:31 2015 From: omathe at free.fr (omathe at free.fr) Date: Mon, 26 Jan 2015 19:21:31 +0100 (CET) Subject: JDK 8u33 for ARM and JavaFX In-Reply-To: Message-ID: <684361173.606943913.1422296491110.JavaMail.root@zimbra63-e11.priv.proxad.net> yes, why ??? ----- Mail original ----- De: "Ladislav T?r?k" ?: openjfx-dev at openjdk.java.net Envoy?: Lundi 26 Janvier 2015 16:38:28 Objet: Re: JDK 8u33 for ARM and JavaFX None answer? Why? D?a 21.1.2015 6:52 pou??vate? "Ladislav T?r?k" nap?sal: > Hi, > from Release Notes for JDK 8u33 for ARM (see: > http://www.oracle.com/technetwork/java/javase/jdk-8u33-arm-relnotes-2406696.html > ): > > 1 New and Changed Features > > In addition, JDK 8u33 for ARM contains the following change: > > * Starting with JDK 8u33, JavaFX Embedded is removed from the ARM bundle > and is not supported. > > This means that JavaFX is not running on Raspberry PI and when I want to > use JavaFX on Raspberry Pi, I must be built OpenJFX and result .jar/jars > copy to JDK 8u33 for ARM directories structure on Raspberrry PI? > From mikegps1 at gmail.com Mon Jan 26 18:37:54 2015 From: mikegps1 at gmail.com (Mike) Date: Mon, 26 Jan 2015 10:37:54 -0800 Subject: JDK 8u33 for ARM and JavaFX In-Reply-To: <684361173.606943913.1422296491110.JavaMail.root@zimbra63-e11.priv.proxad.net> References: <684361173.606943913.1422296491110.JavaMail.root@zimbra63-e11.priv.proxad.net> Message-ID: Why is Oracle ignoring questions about embedded? .. We put our Careers and Lifes behind products like #Javafx -- I think we deserve an answer! On Mon, Jan 26, 2015 at 10:21 AM, wrote: > yes, why ??? > > ----- Mail original ----- > De: "Ladislav T?r?k" > ?: openjfx-dev at openjdk.java.net > Envoy?: Lundi 26 Janvier 2015 16:38:28 > Objet: Re: JDK 8u33 for ARM and JavaFX > > None answer? Why? > D?a 21.1.2015 6:52 pou??vate? "Ladislav T?r?k" > nap?sal: > > > Hi, > > from Release Notes for JDK 8u33 for ARM (see: > > > http://www.oracle.com/technetwork/java/javase/jdk-8u33-arm-relnotes-2406696.html > > ): > > > > 1 New and Changed Features > > > > In addition, JDK 8u33 for ARM contains the following change: > > > > * Starting with JDK 8u33, JavaFX Embedded is removed from the ARM bundle > > and is not supported. > > > > This means that JavaFX is not running on Raspberry PI and when I want to > > use JavaFX on Raspberry Pi, I must be built OpenJFX and result .jar/jars > > copy to JDK 8u33 for ARM directories structure on Raspberrry PI? > > > From kevin.rushforth at oracle.com Mon Jan 26 21:06:28 2015 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Mon, 26 Jan 2015 13:06:28 -0800 Subject: 8u-dev unlocked following this week's sanity testing Message-ID: <54C6AC54.1000101@oracle.com> From webczat_200 at poczta.onet.pl Mon Jan 26 23:37:58 2015 From: webczat_200 at poczta.onet.pl (=?UTF-8?B?TWljaGHFgiBaZWdhbg==?=) Date: Tue, 27 Jan 2015 00:37:58 +0100 Subject: accessibility testing Message-ID: <54C6CFD6.9080805@poczta.onet.pl> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hello. I have windows 8.1, screenreader nvda, java version jdk-1.8.0_20, how if at all possible can I test accessibility of javafx in it's current state? -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIcBAEBAgAGBQJUxs/RAAoJEHb1CzgxXKwYHJIQAKqPlgiGZik2JdGDxZIQMXKD +7Z6gS2Vn/a95vozWnRTP9rnIfJYLxFwNl1yXZrCU1ux8gGVJzMhlbTBTbem4yTL bxtKEBvI00vdCPoLBKYLTmzFNthe04DWo3nSVv96MiucH56Y77MlnSTl7ddWvyvq FoiSNpJEZnGpPw6rNuFtThRgT0Ym0rw9oiTU6XYX0RbiW0y2XObBOSoXpJs6arbP R44rJN2G5z5otPPQhCP/NQrrDPB7bx/XVT7i/BPrcVcbQkZ+RV1aHVq5EfMpBbLV QSZ/OHH2GIqLWPeb3Y1iQzVxCoT2Bu0qniKLrZUpxF3zv6FdRQhs+El2yiwRQPuU okWlBYyXNOvtwQcZ/hT35UUjbXXV7hn6Uw6jNvVmyzsl2NM4xMe6jcWCyxJOvW6+ GDOn5+BoMUCz0koPM9WZ+MwsJEPD3TAr3Pamkfm9RSePmaIpIg4BjxAodfr9JNVC PAvdRTmqFuTGIJJMFIkgQ7v5RW9hLQifWBkPiWj6au7jaAZGXIoFouMgANzWTzQU aTFoCElKzF9WTA7Ax/M256SL/s+ZbAwDehDFfmX/4s/SGoXLNuHwz00Zn3KbqJpo r3mGR0xOIxYtuyI1p37j1wHLedIPtLMq4sxcwxDTOShgvgZ5rPtuXiQQ4IiRjy9F 1kI0CFQ2QTEU5XyFMFx4 =7hPv -----END PGP SIGNATURE----- From kevin.rushforth at oracle.com Mon Jan 26 23:41:52 2015 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Mon, 26 Jan 2015 15:41:52 -0800 Subject: accessibility testing In-Reply-To: <54C6CFD6.9080805@poczta.onet.pl> References: <54C6CFD6.9080805@poczta.onet.pl> Message-ID: <54C6D0C0.7050300@oracle.com> Accessibility support for JavaFX was added in 8u40. You can download early access builds from here: https://jdk8.java.net/download.html This is very close to the final release of 8u40, so it is very stable. -- Kevin Micha? Zegan wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > Hello. > I have windows 8.1, screenreader nvda, java version jdk-1.8.0_20, how > if at all possible can I test accessibility of javafx in it's current > state? > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v2 > > iQIcBAEBAgAGBQJUxs/RAAoJEHb1CzgxXKwYHJIQAKqPlgiGZik2JdGDxZIQMXKD > +7Z6gS2Vn/a95vozWnRTP9rnIfJYLxFwNl1yXZrCU1ux8gGVJzMhlbTBTbem4yTL > bxtKEBvI00vdCPoLBKYLTmzFNthe04DWo3nSVv96MiucH56Y77MlnSTl7ddWvyvq > FoiSNpJEZnGpPw6rNuFtThRgT0Ym0rw9oiTU6XYX0RbiW0y2XObBOSoXpJs6arbP > R44rJN2G5z5otPPQhCP/NQrrDPB7bx/XVT7i/BPrcVcbQkZ+RV1aHVq5EfMpBbLV > QSZ/OHH2GIqLWPeb3Y1iQzVxCoT2Bu0qniKLrZUpxF3zv6FdRQhs+El2yiwRQPuU > okWlBYyXNOvtwQcZ/hT35UUjbXXV7hn6Uw6jNvVmyzsl2NM4xMe6jcWCyxJOvW6+ > GDOn5+BoMUCz0koPM9WZ+MwsJEPD3TAr3Pamkfm9RSePmaIpIg4BjxAodfr9JNVC > PAvdRTmqFuTGIJJMFIkgQ7v5RW9hLQifWBkPiWj6au7jaAZGXIoFouMgANzWTzQU > aTFoCElKzF9WTA7Ax/M256SL/s+ZbAwDehDFfmX/4s/SGoXLNuHwz00Zn3KbqJpo > r3mGR0xOIxYtuyI1p37j1wHLedIPtLMq4sxcwxDTOShgvgZ5rPtuXiQQ4IiRjy9F > 1kI0CFQ2QTEU5XyFMFx4 > =7hPv > -----END PGP SIGNATURE----- > From kevin.rushforth at oracle.com Mon Jan 26 23:57:22 2015 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Mon, 26 Jan 2015 15:57:22 -0800 Subject: [8u60] review request: RT-39887: Update the protocol for references of docs.oracle.com to HTTPS Message-ID: <54C6D462.6040907@oracle.com> Chien, Please review: https://javafx-jira.kenai.com/browse/RT-39887 It is a simple, but important change to the URL of our javadoc links from http to https. Thanks. -- Kevin From james.graham at oracle.com Tue Jan 27 01:06:23 2015 From: james.graham at oracle.com (Jim Graham) Date: Mon, 26 Jan 2015 17:06:23 -0800 Subject: 8u60 review request: Fix (eliminate) non-final static pixel scale variable Message-ID: <54C6E48F.3040702@oracle.com> Fix: http://cr.openjdk.java.net/~flar/RT-28164/webrev.00/ Webrev: https://javafx-jira.kenai.com/browse/RT-28164 ...jim From elina.kleyman at oracle.com Tue Jan 27 13:40:40 2015 From: elina.kleyman at oracle.com (Elina Kleyman) Date: Tue, 27 Jan 2015 05:40:40 -0800 (PST) Subject: [8u60] review request: RT-39831: Stop using deprecated builders in samples, toys, and other apps Message-ID: <74fffdf1-9122-4e39-b826-d2b3cfd0792a@default> Hi Kevin, Please review new fix for https://javafx-jira.kenai.com/browse/RT-39831: webrev: http://cr.openjdk.java.net/~ekleyman/RT-39831/ (includes fix for next classes: apps/samples/3DViewer/src/main/java/com/javafx/experiments/jfx3dviewer/OldTestViewer.java apps/samples/Ensemble8/src/app/java/ensemble/HomePage.java apps/samples/Ensemble8/src/app/java/ensemble/control/BendingPages.java apps/samples/Ensemble8/src/app/java/ensemble/samplepage/PieChartDataVisualizer.java apps/samples/Modena/src/main/java/modena/Modena.java apps/samples/Modena/src/main/java/modena/SamplePage.java apps/samples/Modena/src/main/java/modena/SamplePageHelpers.java) webrev: https://stbeehive.oracle.com/teamcollab/library/st/webrev_RT-39831/Documents (includes fix for next classes: toys/ColorCube/src/colorcube/ColorCube.java toys/ColorCube/src/colorcube/JFXPanelColorCube.java toys/HelloWorld/src/region/ButtonStyles.java and performance tests exclusion) Thanks, Elina From diego.cirujano-cuesta at zeiss.com Tue Jan 27 14:41:02 2015 From: diego.cirujano-cuesta at zeiss.com (Cirujano Cuesta, Diego) Date: Tue, 27 Jan 2015 14:41:02 +0000 Subject: javafx.embed.singleThread flag questions Message-ID: Hi all, I have a few questions about the javafx.embed.singleThread flag: Is it still experimental? Is it recommended the usage of this flag in an application with several JFXPanels and swing with communication between them? anybody using it? any experience/opinion about it? Thanks! Diego From chien.yang at oracle.com Tue Jan 27 17:24:41 2015 From: chien.yang at oracle.com (Chien Yang) Date: Tue, 27 Jan 2015 09:24:41 -0800 Subject: Code Review Request For RT-39873: [Mac] Enable parallel execution of FX thread and Renderer thread for JFXPanel, FXCanvas Message-ID: <54C7C9D9.7000707@oracle.com> Hi Kevin, Please review the simple proposed fix: JIRA: https://javafx-jira.kenai.com/browse/RT-39873 Webrev: http://cr.openjdk.java.net/~ckyang/RT-39873/webrev.00/ - Chien From kevin.rushforth at oracle.com Tue Jan 27 17:32:17 2015 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Tue, 27 Jan 2015 09:32:17 -0800 Subject: javafx.embed.singleThread flag questions In-Reply-To: References: Message-ID: <54C7CBA1.9080802@oracle.com> Hi, It is experimental in FX 8, but we might consider making it available via an API call in the future. I haven't heard of any problems in using it, though, so you can feel free to use it as long as you have tested it well. -- Kevin Cirujano Cuesta, Diego wrote: > Hi all, > > > I have a few questions about the javafx.embed.singleThread flag: > > > > Is it still experimental? Is it recommended the usage of this flag in an application with several JFXPanels and swing with communication between them? > > > > anybody using it? any experience/opinion about it? > > > > Thanks! > > Diego > > From David.Hill at Oracle.com Tue Jan 27 18:01:49 2015 From: David.Hill at Oracle.com (David Hill) Date: Tue, 27 Jan 2015 13:01:49 -0500 Subject: iMX6Q graphics performance In-Reply-To: <54BF39C4.2090807@indsp.com> References: <54BCC3DE.7010703@indsp.com> <54BE9651.7000307@Oracle.com> <54BF39C4.2090807@indsp.com> Message-ID: <54C7D28D.2020607@Oracle.com> On 1/21/15, 12:31 AM, Prasant Jalan wrote: > > The above information will help us test our system. We have also put a system together and the above answers will give us a reference measurement. We could use your test app and get the fps measurement and know if our system is behaving fine. Then we could reduce our scope to javaFX application optimization and forget about the system. > I had been intending to put one of my tests apps in the OpenJFX repo, and I took the nudge to do so. This app was partly a learning experience for me, and partly for use at a JavaOne talk last year. The general idea is one of an industrial style controller. It is now checked in to OpenJFX repo as: apps/toys/Industrial/ This example program shows an FPS average while running. On my Mac I get close to 59 FPS after the JIT warms up. On my Boundary Devices i.mx6 (quad), it settles down around ~36 FPS (it takes about 20 seconds for that to happen). Unfortunately the other graphics benchmarks I have handy are not shareable. -- David Hill Java Embedded Development "A man's feet should be planted in his country, but his eyes should survey the world." -- George Santayana (1863 - 1952) From krueger at lesspain.de Tue Jan 27 18:16:46 2015 From: krueger at lesspain.de (=?UTF-8?Q?Robert_Kr=C3=BCger?=) Date: Tue, 27 Jan 2015 19:16:46 +0100 Subject: TableView API, no lazy retrieval of visible cell content possible? Message-ID: Hi, either I don't see the forest for the trees or something is missing in the TableView API as I cannot seem to implement something that seems a common requirement and was rather easy (not pretty though) in Swing. Imagine an application like OSX finder in its list view, i.e. something that displays a possibly very long list of files and displays thumbnails for them generated on the fly. For many files (e.g. video files) extracting these thumbnails is an expensive operation and has to be performed in the background. My application does a very similar thing and uses a TableView. What I want is to begin extracting video thumbnails as soon as their corresponding table row has become visible. I have done that in Swing in the past without any problem (for more info, you can read https://community.oracle.com/message/12810930). With JavaFX I have tried the following: 1) Trigger loading the thumbnail in the table cell when it is updated and the corresponding thumbnail isn't already there Result: Triggering works more or less as desired but how do I stop the loading process if the cell becomes invisible? If the user quickly scrolls through a large number of rows and puts tons of thumbnail loading jobs on the queue I have not found a way to dequeue them, so this is unusable. I added output to the calls to the update method of the TableCell to see which instances are used and how their data is reset but the pattern I see is not suitable for deciding which cell is currently visible. 2) Register a change listener to the TableCell?s visible property to make that control the image loading. Result: I don?t seem to get any change events when I do that, so it does not work at all for my purpose. I see no public API in table view to explicitly compute the items visible in the current viewport either. What am I missing. It can't be an oversight in the API design, as the thing, I am trying to achieve appears rather basic. Thanks in advance for any hints, Robert From tomas.mikula at gmail.com Tue Jan 27 18:25:47 2015 From: tomas.mikula at gmail.com (Tomas Mikula) Date: Tue, 27 Jan 2015 13:25:47 -0500 Subject: TableView API, no lazy retrieval of visible cell content possible? In-Reply-To: References: Message-ID: Hi Robert, instead of listening to visibleProperty(), listen to sceneProperty() and cancel loading when scene becomes null. Tomas On Tue, Jan 27, 2015 at 1:16 PM, Robert Kr?ger wrote: > Hi, > > either I don't see the forest for the trees or something is missing in the > TableView API as I cannot seem to implement something that seems a common > requirement and was rather easy (not pretty though) in Swing. > > Imagine an application like OSX finder in its list view, i.e. something > that displays a possibly very long list of files and displays thumbnails > for them generated on the fly. For many files (e.g. video files) extracting > these thumbnails is an expensive operation and has to be performed in the > background. My application does a very similar thing and uses a TableView. > What I want is to begin extracting video thumbnails as soon as their > corresponding table row has become visible. I have done that in Swing in > the past without any problem (for more info, you can read > https://community.oracle.com/message/12810930). > > With JavaFX I have tried the following: > > 1) Trigger loading the thumbnail in the table cell when it is updated and > the corresponding thumbnail isn't already there > > Result: Triggering works more or less as desired but how do I stop the > loading process if the cell becomes invisible? If the user quickly scrolls > through a large number of rows and puts tons of thumbnail loading jobs on > the queue I have not found a way to dequeue them, so this is unusable. I > added output to the calls to the update method of the TableCell to see > which instances are used and how their data is reset but the pattern I see > is not suitable for deciding which cell is currently visible. > > 2) Register a change listener to the TableCell?s visible property to make > that control the image loading. > > Result: I don?t seem to get any change events when I do that, so it does > not work at all for my purpose. > > I see no public API in table view to explicitly compute the items visible > in the current viewport either. What am I missing. It can't be an oversight > in the API design, as the thing, I am trying to achieve appears rather > basic. > > Thanks in advance for any hints, > > Robert From pedro.duquevieira at gmail.com Tue Jan 27 19:36:49 2015 From: pedro.duquevieira at gmail.com (Pedro Duque Vieira) Date: Tue, 27 Jan 2015 19:36:49 +0000 Subject: Is it possible to have a SwingNode inside a JFXPanel Message-ID: Hi, I'm migrating a Swing app and I have a scenario where I need to have a SwingNode inside a JFXPanel and also a JFXPanel inside a SwingNode. Are this configurations possible? Thanks -- Pedro Duque Vieira From kevin.rushforth at oracle.com Tue Jan 27 19:50:51 2015 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Tue, 27 Jan 2015 11:50:51 -0800 Subject: Is it possible to have a SwingNode inside a JFXPanel In-Reply-To: References: Message-ID: <54C7EC1B.9020803@oracle.com> We don't have a shipping example that does this, but we have run SwingNode in an FX Scene inside a JFXPanel. I don't know if a JFXPanel inside that SwingNode will work, but I can't think of any reason off-hand why it wouldn't. -- Kevin Pedro Duque Vieira wrote: > Hi, > > I'm migrating a Swing app and I have a scenario where I need to have a > SwingNode inside a JFXPanel and also a JFXPanel inside a SwingNode. > > Are this configurations possible? > > Thanks > > From mike at plan99.net Tue Jan 27 20:29:41 2015 From: mike at plan99.net (Mike Hearn) Date: Tue, 27 Jan 2015 21:29:41 +0100 Subject: Why do the Linux packages go into /opt? Message-ID: javapackager makes debs that install things into /opt, which means they aren't on the path. Is there a reason for this choice rather than making FHS-compliant packages that install into /usr? thanks! From krueger at lesspain.de Tue Jan 27 20:49:32 2015 From: krueger at lesspain.de (=?UTF-8?Q?Robert_Kr=C3=BCger?=) Date: Tue, 27 Jan 2015 21:49:32 +0100 Subject: TableView API, no lazy retrieval of visible cell content possible? In-Reply-To: References: Message-ID: Hi Tomas, When I do that, the property is never set to null. If I use it for triggering the loading (when it is set to a non-null value) it is set for a lot more rows than those actually visible. In my test with a model containing 200 items of which the first 4 were visible, it was set to non-null for the first 23 items. Am Dienstag, 27. Januar 2015 schrieb Tomas Mikula : > Hi Robert, > > instead of listening to visibleProperty(), listen to sceneProperty() > and cancel loading when scene becomes null. > > Tomas > > On Tue, Jan 27, 2015 at 1:16 PM, Robert Kr?ger > wrote: > > Hi, > > > > either I don't see the forest for the trees or something is missing in > the > > TableView API as I cannot seem to implement something that seems a common > > requirement and was rather easy (not pretty though) in Swing. > > > > Imagine an application like OSX finder in its list view, i.e. something > > that displays a possibly very long list of files and displays thumbnails > > for them generated on the fly. For many files (e.g. video files) > extracting > > these thumbnails is an expensive operation and has to be performed in the > > background. My application does a very similar thing and uses a > TableView. > > What I want is to begin extracting video thumbnails as soon as their > > corresponding table row has become visible. I have done that in Swing in > > the past without any problem (for more info, you can read > > https://community.oracle.com/message/12810930). > > > > With JavaFX I have tried the following: > > > > 1) Trigger loading the thumbnail in the table cell when it is updated and > > the corresponding thumbnail isn't already there > > > > Result: Triggering works more or less as desired but how do I stop the > > loading process if the cell becomes invisible? If the user quickly > scrolls > > through a large number of rows and puts tons of thumbnail loading jobs on > > the queue I have not found a way to dequeue them, so this is unusable. I > > added output to the calls to the update method of the TableCell to see > > which instances are used and how their data is reset but the pattern I > see > > is not suitable for deciding which cell is currently visible. > > > > 2) Register a change listener to the TableCell?s visible property to make > > that control the image loading. > > > > Result: I don?t seem to get any change events when I do that, so it does > > not work at all for my purpose. > > > > I see no public API in table view to explicitly compute the items visible > > in the current viewport either. What am I missing. It can't be an > oversight > > in the API design, as the thing, I am trying to achieve appears rather > > basic. > > > > Thanks in advance for any hints, > > > > Robert > -- Robert Kr?ger Managing Partner Lesspain GmbH & Co. KG www.lesspain-software.com From danno.ferrin at oracle.com Tue Jan 27 21:01:50 2015 From: danno.ferrin at oracle.com (Danno Ferrin) Date: Tue, 27 Jan 2015 14:01:50 -0700 Subject: Why do the Linux packages go into /opt? In-Reply-To: References: Message-ID: <14C4A171-EEE9-43B8-A74A-E755E287EC3D@oracle.com> I'm not sure why it goes into /opt (that decision predates my tenure), but since the JRE is included it may be considered a "large software package" unsuitable for the /usr directory, and since it is an "add-on application software packages" opt seems to be a sensible place. It may also be a solaris thing that leaked into the thought process. These packages also were designed to be launched from within a desktop shell, so being on the path was less of an issue. For 8u40 and earlier it is in fact hard coded in the generation of the supporting files for RPM and DEBs. Based on my reading that could be made configurable, at least at time of packaging. If you submitted a JIRA we could get that in for 8u60, but the new feature/new bug window for 8u40 is mostly closed. However the structure underneath the package is a larger item to mess around with, so it would merely be a pointer to a different directory to install it in as opposed to placing bits widely across the system. Perhaps a step in the package that adds a link to /usr/bin in the control file or install scripts may be a better solution. On Jan 27, 2015, at 1:29 PM, Mike Hearn wrote: > javapackager makes debs that install things into /opt, which means they > aren't on the path. Is there a reason for this choice rather than making > FHS-compliant packages that install into /usr? > > thanks! From tomas.mikula at gmail.com Tue Jan 27 21:32:53 2015 From: tomas.mikula at gmail.com (Tomas Mikula) Date: Tue, 27 Jan 2015 16:32:53 -0500 Subject: TableView API, no lazy retrieval of visible cell content possible? In-Reply-To: References: Message-ID: If the cells don't ever get removed from the scene, then I guess your best bet is to start and cancel loading when the item changes, i.e. listening to itemProperty(). This is similar to your original updateItem() approach, but also don't forget to cancel loading of the old item: cancel loading of the old item, if not null, and start loading the new item, if not null. I don't think you can yourself do much about the inefficiency that more cells than needed are created and hold non-null items. Let's see if others have something to suggest. Tomas On Tue, Jan 27, 2015 at 3:49 PM, Robert Kr?ger wrote: > Hi Tomas, > > When I do that, the property is never set to null. If I use it for > triggering the loading (when it is set to a non-null value) it is set for a > lot more rows than those actually visible. In my test with a model > containing 200 items of which the first 4 were visible, it was set to > non-null for the first 23 items. > > Am Dienstag, 27. Januar 2015 schrieb Tomas Mikula : > >> Hi Robert, >> >> instead of listening to visibleProperty(), listen to sceneProperty() >> and cancel loading when scene becomes null. >> >> Tomas >> >> On Tue, Jan 27, 2015 at 1:16 PM, Robert Kr?ger >> wrote: >> > Hi, >> > >> > either I don't see the forest for the trees or something is missing in >> > the >> > TableView API as I cannot seem to implement something that seems a >> > common >> > requirement and was rather easy (not pretty though) in Swing. >> > >> > Imagine an application like OSX finder in its list view, i.e. something >> > that displays a possibly very long list of files and displays thumbnails >> > for them generated on the fly. For many files (e.g. video files) >> > extracting >> > these thumbnails is an expensive operation and has to be performed in >> > the >> > background. My application does a very similar thing and uses a >> > TableView. >> > What I want is to begin extracting video thumbnails as soon as their >> > corresponding table row has become visible. I have done that in Swing in >> > the past without any problem (for more info, you can read >> > https://community.oracle.com/message/12810930). >> > >> > With JavaFX I have tried the following: >> > >> > 1) Trigger loading the thumbnail in the table cell when it is updated >> > and >> > the corresponding thumbnail isn't already there >> > >> > Result: Triggering works more or less as desired but how do I stop the >> > loading process if the cell becomes invisible? If the user quickly >> > scrolls >> > through a large number of rows and puts tons of thumbnail loading jobs >> > on >> > the queue I have not found a way to dequeue them, so this is unusable. I >> > added output to the calls to the update method of the TableCell to see >> > which instances are used and how their data is reset but the pattern I >> > see >> > is not suitable for deciding which cell is currently visible. >> > >> > 2) Register a change listener to the TableCell?s visible property to >> > make >> > that control the image loading. >> > >> > Result: I don?t seem to get any change events when I do that, so it does >> > not work at all for my purpose. >> > >> > I see no public API in table view to explicitly compute the items >> > visible >> > in the current viewport either. What am I missing. It can't be an >> > oversight >> > in the API design, as the thing, I am trying to achieve appears rather >> > basic. >> > >> > Thanks in advance for any hints, >> > >> > Robert > > > > -- > Robert Kr?ger > Managing Partner > Lesspain GmbH & Co. KG > > www.lesspain-software.com > From swpalmer at gmail.com Tue Jan 27 22:03:02 2015 From: swpalmer at gmail.com (Scott Palmer) Date: Tue, 27 Jan 2015 17:03:02 -0500 Subject: Path Rendering in 8u40 Message-ID: I'm seeing a regression where Paths are not rendered with anti-aliasing on 8u40. On 8u20 they are fine. There are also glitches in SVG Paths from CSS. The SVG paths are smooth, but the end points are different and they have 'kinks'. There is also a difference in the position of my "arrowhead" on the end of the Path which is done using SVG in the CSS for a Region. I've attached images of the exact same code running with 8u40 and 8u20. (not sure if they will make it to the mailing list) I searched JIRA but didn't see any issues that seemed relevant, though I wonder if work done for RT-39439 may be related. Has anyone else seen something like this? Scott From kevin.rushforth at oracle.com Tue Jan 27 22:18:38 2015 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Tue, 27 Jan 2015 14:18:38 -0800 Subject: Path Rendering in 8u40 In-Reply-To: References: Message-ID: <54C80EBE.3030004@oracle.com> Do you explicitly set smooth=false on your path? If so, that would be due to: https://javafx-jira.kenai.com/browse/RT-39468 We used to ignore the smooth flag (it's a rasterization hint) but now honor it and disable AA if set to false. -- Kevin Scott Palmer wrote: > I'm seeing a regression where Paths are not rendered with anti-aliasing on > 8u40. On 8u20 they are fine. There are also glitches in SVG Paths from > CSS. The SVG paths are smooth, but the end points are different and they > have 'kinks'. There is also a difference in the position of my "arrowhead" > on the end of the Path which is done using SVG in the CSS for a Region. > > I've attached images of the exact same code running with 8u40 and 8u20. > (not sure if they will make it to the mailing list) > > I searched JIRA but didn't see any issues that seemed relevant, though I > wonder if work done for RT-39439 may be related. > Has anyone else seen something like this? > > Scott > From lhochet at gmail.com Tue Jan 27 22:22:56 2015 From: lhochet at gmail.com (Ludovic HOCHET) Date: Tue, 27 Jan 2015 23:22:56 +0100 Subject: javafx.embed.singleThread flag questions Message-ID: Hello, When using the flag I get an NPE in java.awt.EventQueue as I described in the AWT list [1] (where I think the solution should be). It only shows if you set an uncaught exception handler though. Ludovic [1] http://mail.openjdk.java.net/pipermail/awt-dev/2014-December/008744.html Kevin Rushforth a ?crit :> Hi, > > It is experimental in FX 8, but we might consider making it available > via an API call in the future. I haven't heard of any problems in using > it, though, so you can feel free to use it as long as you have tested it > well. > > -- Kevin > > > Cirujano Cuesta, Diego wrote: >> Hi all, >> >> >> I have a few questions about the javafx.embed.singleThread flag: >> >> >> >> Is it still experimental? Is it recommended the usage of this flag in >> an application with several JFXPanels and swing with communication >> between them? >> >> >> >> anybody using it? any experience/opinion about it? >> >> >> >> Thanks! >> >> Diego >> > -- Ludovic ----------------------------------------- "Les formes qui differencient les etres importent peu si leur pensees s'unissent pour batir un univers..." Yoko Tsuno (in 'Les titans' by Roger Leloup) [The shapes that differenciate beings are not important if their thoughts unite to build a universe] From pedro.duquevieira at gmail.com Tue Jan 27 22:24:15 2015 From: pedro.duquevieira at gmail.com (Pedro Duque Vieira) Date: Tue, 27 Jan 2015 22:24:15 +0000 Subject: Setting a default stylesheet for a custom control Message-ID: Hi, I'm developing a custom control, in the process I've used CSS to define its style. Now I want to make this control available for use by any developer, so I want this control to have a default stylesheet which is the one I've used to create the control much like javafx controls have a default stylesheet (modena or caspian). How can I do this? I still want to make it possible for any user of my control to override the css styles that the "default" stylesheet defines. Thanks -- Pedro Duque Vieira From jonathan.giles at oracle.com Tue Jan 27 22:30:01 2015 From: jonathan.giles at oracle.com (Jonathan Giles) Date: Wed, 28 Jan 2015 11:30:01 +1300 Subject: Setting a default stylesheet for a custom control In-Reply-To: References: Message-ID: <54C81169.9040201@oracle.com> If I'm correctly understanding your question, you want to override the getUserAgentStylesheet() method inside your Control class. In here you'll simply return the CSS file that is being used to style your custom control. I'm also aware there are some issues (with CSS error messages being printed to the console) in certain releases (8u20). If you run into these, ping me and I'll give you some pointers. -- Jonathan On 28/01/2015 11:24 a.m., Pedro Duque Vieira wrote: > Hi, > > I'm developing a custom control, in the process I've used CSS to define its > style. > Now I want to make this control available for use by any developer, so I > want this control to have a default stylesheet which is the one I've used > to create the control much like javafx controls have a default stylesheet > (modena or caspian). > > How can I do this? > > I still want to make it possible for any user of my control to override the > css styles that the "default" stylesheet defines. > > Thanks > From tbee at tbee.org Tue Jan 27 23:59:24 2015 From: tbee at tbee.org (Tom Eugelink) Date: Wed, 28 Jan 2015 00:59:24 +0100 Subject: Setting a default stylesheet for a custom control In-Reply-To: <54C81169.9040201@oracle.com> References: <54C81169.9040201@oracle.com> Message-ID: <54C8265C.1040409@tbee.org> Indeed. There are more than enough examples to look at and copy from :-) https://github.com/JFXtras/jfxtras/blob/8.0/jfxtras-controls/src/main/java/jfxtras/scene/control/ListSpinner.java On 27-1-2015 23:30, Jonathan Giles wrote: > If I'm correctly understanding your question, you want to override the getUserAgentStylesheet() method inside your Control class. In here you'll simply return the CSS file that is being used to style your custom control. > > I'm also aware there are some issues (with CSS error messages being printed to the console) in certain releases (8u20). If you run into these, ping me and I'll give you some pointers. > > -- Jonathan > > On 28/01/2015 11:24 a.m., Pedro Duque Vieira wrote: >> Hi, >> >> I'm developing a custom control, in the process I've used CSS to define its >> style. >> Now I want to make this control available for use by any developer, so I >> want this control to have a default stylesheet which is the one I've used >> to create the control much like javafx controls have a default stylesheet >> (modena or caspian). >> >> How can I do this? >> >> I still want to make it possible for any user of my control to override the >> css styles that the "default" stylesheet defines. >> >> Thanks >> > From tbee at tbee.org Wed Jan 28 00:08:47 2015 From: tbee at tbee.org (Tom Eugelink) Date: Wed, 28 Jan 2015 01:08:47 +0100 Subject: custom controls: printing Message-ID: <54C8288F.1070101@tbee.org> Do I need to do something special to support printing of custom controls? The use case is that on screen a spreadsheet can be shown in a scrollpane, but when printing the whole spreadsheet should be printed. Tom From swpalmer at gmail.com Wed Jan 28 01:28:37 2015 From: swpalmer at gmail.com (Scott Palmer) Date: Tue, 27 Jan 2015 20:28:37 -0500 Subject: Path Rendering in 8u40 In-Reply-To: <54C80EBE.3030004@oracle.com> References: <54C80EBE.3030004@oracle.com> Message-ID: AH! Thankfully that was it.. I had never intended for the paths to no be smooth, but I suspect I was experimenting trying to get better performance at some point and the call to setSmooth(false) was left in. However, the issue with the SVG paths from CSS remains. You can see it more clearly in the attached image files, where I've zoomed in. Cheers, Scott On Tue, Jan 27, 2015 at 5:18 PM, Kevin Rushforth wrote: > Do you explicitly set smooth=false on your path? If so, that would be due > to: > > https://javafx-jira.kenai.com/browse/RT-39468 > > We used to ignore the smooth flag (it's a rasterization hint) but now > honor it and disable AA if set to false. > > -- Kevin > > > > Scott Palmer wrote: > >> I'm seeing a regression where Paths are not rendered with anti-aliasing on >> 8u40. On 8u20 they are fine. There are also glitches in SVG Paths from >> CSS. The SVG paths are smooth, but the end points are different and they >> have 'kinks'. There is also a difference in the position of my >> "arrowhead" >> on the end of the Path which is done using SVG in the CSS for a Region. >> >> I've attached images of the exact same code running with 8u40 and 8u20. >> (not sure if they will make it to the mailing list) >> >> I searched JIRA but didn't see any issues that seemed relevant, though I >> wonder if work done for RT-39439 may be related. >> Has anyone else seen something like this? >> >> Scott >> >> > From philip.race at oracle.com Wed Jan 28 01:43:41 2015 From: philip.race at oracle.com (Phil Race) Date: Tue, 27 Jan 2015 17:43:41 -0800 Subject: custom controls: printing In-Reply-To: <54C8288F.1070101@tbee.org> References: <54C8288F.1070101@tbee.org> Message-ID: <54C83ECD.3040603@oracle.com> On 1/27/15 4:08 PM, Tom Eugelink wrote: > Do I need to do something special to support printing of custom > controls? The use case is that on screen a spreadsheet can be shown in > a scrollpane, but when printing the whole spreadsheet should be printed. Being a 'custom' control doesn't really make a difference here. The same would apply if you wanted to print one of the built-in controls that is in a scroll pane or otherwise not likely to fit on a page. Spreadsheets, like TableView, TextArea and the like will need to have their data laid out for the printer by the application. In practice this means starting with the data contained in the spreadsheet and iterating over it printing as much as fits on each page in what ever way you want. I am sure that something that can handle this this would make a nice add-on to to the core API but it was not something that was considered appropriate to be part of FX core. We expected reporting packages to pop up from 3rd parties The exception to this is HtmlEditor / WebEngine where you cannot reasonably expect the application or such a package to know how to properly print the data (HTML and other web content) Hence that has a method to print its content to a PrinterJob http://docs.oracle.com/javase/8/javafx/api/javafx/scene/web/WebEngine.html#print-javafx.print.PrinterJob- So one possibility for you is to throw your data into HTML table syntax, load it into a web node and print that. -phil. From james.graham at oracle.com Wed Jan 28 01:48:00 2015 From: james.graham at oracle.com (Jim Graham) Date: Tue, 27 Jan 2015 17:48:00 -0800 Subject: Path Rendering in 8u40 In-Reply-To: References: <54C80EBE.3030004@oracle.com> Message-ID: <54C83FD0.4080207@oracle.com> Where are the attached files? When you say you zoomed them in, is that with a screen pixel scaler, or by applying a scaling transform to the SVG path? I'm guessing that you are correct about RT-39439, but the fix there should have made the paths more accurate? Could the kinks have been in the path, but not rendered correctly until we upgraded our BND constants as part of RT-39439? Can you make a standalone sample with just the path segments in question? ...jim On 1/27/15 5:28 PM, Scott Palmer wrote: > AH! Thankfully that was it.. I had never intended for the paths to no be > smooth, but I suspect I was experimenting trying to get better performance > at some point and the call to setSmooth(false) was left in. > > However, the issue with the SVG paths from CSS remains. You can see it > more clearly in the attached image files, where I've zoomed in. > > > Cheers, > > Scott > > On Tue, Jan 27, 2015 at 5:18 PM, Kevin Rushforth > wrote: > >> Do you explicitly set smooth=false on your path? If so, that would be due >> to: >> >> https://javafx-jira.kenai.com/browse/RT-39468 >> >> We used to ignore the smooth flag (it's a rasterization hint) but now >> honor it and disable AA if set to false. >> >> -- Kevin >> >> >> >> Scott Palmer wrote: >> >>> I'm seeing a regression where Paths are not rendered with anti-aliasing on >>> 8u40. On 8u20 they are fine. There are also glitches in SVG Paths from >>> CSS. The SVG paths are smooth, but the end points are different and they >>> have 'kinks'. There is also a difference in the position of my >>> "arrowhead" >>> on the end of the Path which is done using SVG in the CSS for a Region. >>> >>> I've attached images of the exact same code running with 8u40 and 8u20. >>> (not sure if they will make it to the mailing list) >>> >>> I searched JIRA but didn't see any issues that seemed relevant, though I >>> wonder if work done for RT-39439 may be related. >>> Has anyone else seen something like this? >>> >>> Scott >>> >>> >> From kevin.rushforth at oracle.com Wed Jan 28 01:53:45 2015 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Tue, 27 Jan 2015 17:53:45 -0800 Subject: Path Rendering in 8u40 In-Reply-To: References: <54C80EBE.3030004@oracle.com> Message-ID: <54C84129.5000509@oracle.com> Sounds like the SVG path bug is something different then. That might be related to the JIRA you noted below, but maybe Jim can comment. In the mean time, can you file a new JIRA with a test case? -- Kevin Scott Palmer wrote: > AH! Thankfully that was it.. I had never intended for the paths to no > be smooth, but I suspect I was experimenting trying to get better > performance at some point and the call to setSmooth(false) was left in. > > However, the issue with the SVG paths from CSS remains. You can see > it more clearly in the attached image files, where I've zoomed in. > > > Cheers, > > Scott > > On Tue, Jan 27, 2015 at 5:18 PM, Kevin Rushforth > > wrote: > > Do you explicitly set smooth=false on your path? If so, that would > be due to: > > https://javafx-jira.kenai.com/browse/RT-39468 > > We used to ignore the smooth flag (it's a rasterization hint) but > now honor it and disable AA if set to false. > > -- Kevin > > > > Scott Palmer wrote: > > I'm seeing a regression where Paths are not rendered with > anti-aliasing on > 8u40. On 8u20 they are fine. There are also glitches in SVG > Paths from > CSS. The SVG paths are smooth, but the end points are > different and they > have 'kinks'. There is also a difference in the position of > my "arrowhead" > on the end of the Path which is done using SVG in the CSS for > a Region. > > I've attached images of the exact same code running with 8u40 > and 8u20. > (not sure if they will make it to the mailing list) > > I searched JIRA but didn't see any issues that seemed > relevant, though I > wonder if work done for RT-39439 may be related. > Has anyone else seen something like this? > > Scott > > > > > ------------------------------------------------------------------------ > > > ------------------------------------------------------------------------ > From tbee at tbee.org Wed Jan 28 06:22:26 2015 From: tbee at tbee.org (Tom Eugelink) Date: Wed, 28 Jan 2015 07:22:26 +0100 Subject: custom controls: printing In-Reply-To: <54C83ECD.3040603@oracle.com> References: <54C8288F.1070101@tbee.org> <54C83ECD.3040603@oracle.com> Message-ID: <54C88022.5050304@tbee.org> Ok, so looking at some examples like http://java.dzone.com/articles/introduction-example-javafx-8 where PrintJob is let lose on a node, JavaFX's PrintJob will either use the screen rendering or -if present- call: public void print(PrinterJob job) Correct? Tom On 28-1-2015 02:43, Phil Race wrote: > On 1/27/15 4:08 PM, Tom Eugelink wrote: >> Do I need to do something special to support printing of custom controls? The use case is that on screen a spreadsheet can be shown in a scrollpane, but when printing the whole spreadsheet should be printed. > Being a 'custom' control doesn't really make a difference here. > The same would apply if you wanted to print one of the built-in controls > that is in a scroll pane or otherwise not likely to fit on a page. > Spreadsheets, like TableView, TextArea and the like will need > to have their data laid out for the printer by the application. > In practice this means starting with the data contained in > the spreadsheet and iterating over it printing as much as fits > on each page in what ever way you want. > I am sure that something that can handle this this would > make a nice add-on to to the core API but it was not something > that was considered appropriate to be part of FX core. > We expected reporting packages to pop up from 3rd parties > The exception to this is HtmlEditor / WebEngine where you > cannot reasonably expect the application or such a package > to know how to properly print the data (HTML and other web content) > Hence that has a method to print its content to a PrinterJob > http://docs.oracle.com/javase/8/javafx/api/javafx/scene/web/WebEngine.html#print-javafx.print.PrinterJob- > So one possibility for you is to throw your data into HTML table syntax, load > it into a web node and print that. > > -phil. From tobi at ultramixer.com Wed Jan 28 06:51:46 2015 From: tobi at ultramixer.com (Tobias Bley) Date: Wed, 28 Jan 2015 07:51:46 +0100 Subject: How to use scaleX/Y to change layout bounds? Message-ID: <0B256653-B319-48DC-A341-B9B2EEE59D2C@ultramixer.com> Hi, when I call button.setScaleX(.5) and button.setScaleY(.5) the button changes it?s size only visually - the layout bounds does not change? How can I change this behaviour? Best regards, Tobi From prasant at indsp.com Wed Jan 28 07:09:04 2015 From: prasant at indsp.com (Prasant Jalan) Date: Wed, 28 Jan 2015 12:39:04 +0530 Subject: iMX6Q graphics performance In-Reply-To: <54C7D28D.2020607@Oracle.com> References: <54BCC3DE.7010703@indsp.com> <54BE9651.7000307@Oracle.com> <54BF39C4.2090807@indsp.com> <54C7D28D.2020607@Oracle.com> Message-ID: <54C88B10.4080106@indsp.com> Hi Dave, On Tuesday 27 January 2015 11:31 PM, David Hill wrote: > On 1/21/15, 12:31 AM, Prasant Jalan wrote: >> >> The above information will help us test our system. We have also put >> a system together and the above answers will give us a reference >> measurement. We could use your test app and get the fps measurement >> and know if our system is behaving fine. Then we could reduce our >> scope to javaFX application optimization and forget about the system. >> > I had been intending to put one of my tests apps in the OpenJFX repo, > and I took the nudge to do so. This app was partly a learning > experience for me, and partly for use at a JavaOne talk last year. The > general idea is one of an industrial style controller. > > It is now checked in to OpenJFX repo as: > apps/toys/Industrial/ > > This example program shows an FPS average while running. > On my Mac I get close to 59 FPS after the JIT warms up. > On my Boundary Devices i.mx6 (quad), it settles down around ~36 FPS > (it takes about 20 seconds for that to happen). > Thanks a lot for this information. This will help me verify my own iMX6 ARM system setup. Few more questions about your Boundary Devices iMX6 Quad: - Amount of RAM/memory in your iMX6 system? - iMX6 Single Core Clock speed (0.8 GHz, 1 GHz or 1.2 GHz) - Which javaFX version did you use to get the above measurements (if you recollect)? Regards, Prasant From diego.cirujano-cuesta at zeiss.com Wed Jan 28 08:15:22 2015 From: diego.cirujano-cuesta at zeiss.com (Cirujano Cuesta, Diego) Date: Wed, 28 Jan 2015 08:15:22 +0000 Subject: javafx.embed.singleThread flag questions In-Reply-To: <54C7CBA1.9080802@oracle.com> References: <54C7CBA1.9080802@oracle.com> Message-ID: Hi Kevin, I think that you mean since 8u40, isn?t? Because there is a ticket about it fixed by 8u40: https://javafx-jira.kenai.com/browse/RT-38921 @Pedro Duque Vieira, as you are talking about using swing and javaFX, do you have any experience with the javafx.embed.singleThread flag? Cheers, Diego -----Original Message----- From: Kevin Rushforth [mailto:kevin.rushforth at oracle.com] Sent: Dienstag, 27. Januar 2015 18:32 To: Cirujano Cuesta, Diego Cc: openjfx-dev at openjdk.java.net Subject: Re: javafx.embed.singleThread flag questions Hi, It is experimental in FX 8, but we might consider making it available via an API call in the future. I haven't heard of any problems in using it, though, so you can feel free to use it as long as you have tested it well. -- Kevin Cirujano Cuesta, Diego wrote: > Hi all, > > > I have a few questions about the javafx.embed.singleThread flag: > > > > Is it still experimental? Is it recommended the usage of this flag in an application with several JFXPanels and swing with communication between them? > > > > anybody using it? any experience/opinion about it? > > > > Thanks! > > Diego > > From krueger at lesspain.de Wed Jan 28 08:30:03 2015 From: krueger at lesspain.de (=?UTF-8?Q?Robert_Kr=C3=BCger?=) Date: Wed, 28 Jan 2015 09:30:03 +0100 Subject: TableView API, no lazy retrieval of visible cell content possible? In-Reply-To: References: Message-ID: Doesn't help. The patterns of this property being changed are just as unusable for my purposes as with the other approaches (e.g. I can clearly see that item is set to a different value for a cell that is still visible, so this would falsely cancel the loading of that cell's image). And since none of these things are documented in the api, i.e. how the relationship between visibility and those properties really are, this is not a god approach in the first place because my application might behave completely differently after a Java update, completely screwing up usability. I am running out of ideas. It just cannot be the case that it is not possible to write a decent file browser using JFX. On Tue, Jan 27, 2015 at 10:32 PM, Tomas Mikula wrote: > If the cells don't ever get removed from the scene, then I guess your > best bet is to start and cancel loading when the item changes, i.e. > listening to itemProperty(). This is similar to your original > updateItem() approach, but also don't forget to cancel loading of the > old item: cancel loading of the old item, if not null, and start > loading the new item, if not null. I don't think you can yourself do > much about the inefficiency that more cells than needed are created > and hold non-null items. > > Let's see if others have something to suggest. > > Tomas > > On Tue, Jan 27, 2015 at 3:49 PM, Robert Kr?ger > wrote: > > Hi Tomas, > > > > When I do that, the property is never set to null. If I use it for > > triggering the loading (when it is set to a non-null value) it is set > for a > > lot more rows than those actually visible. In my test with a model > > containing 200 items of which the first 4 were visible, it was set to > > non-null for the first 23 items. > > > > Am Dienstag, 27. Januar 2015 schrieb Tomas Mikula : > > > >> Hi Robert, > >> > >> instead of listening to visibleProperty(), listen to sceneProperty() > >> and cancel loading when scene becomes null. > >> > >> Tomas > >> > >> On Tue, Jan 27, 2015 at 1:16 PM, Robert Kr?ger > >> wrote: > >> > Hi, > >> > > >> > either I don't see the forest for the trees or something is missing in > >> > the > >> > TableView API as I cannot seem to implement something that seems a > >> > common > >> > requirement and was rather easy (not pretty though) in Swing. > >> > > >> > Imagine an application like OSX finder in its list view, i.e. > something > >> > that displays a possibly very long list of files and displays > thumbnails > >> > for them generated on the fly. For many files (e.g. video files) > >> > extracting > >> > these thumbnails is an expensive operation and has to be performed in > >> > the > >> > background. My application does a very similar thing and uses a > >> > TableView. > >> > What I want is to begin extracting video thumbnails as soon as their > >> > corresponding table row has become visible. I have done that in Swing > in > >> > the past without any problem (for more info, you can read > >> > https://community.oracle.com/message/12810930). > >> > > >> > With JavaFX I have tried the following: > >> > > >> > 1) Trigger loading the thumbnail in the table cell when it is updated > >> > and > >> > the corresponding thumbnail isn't already there > >> > > >> > Result: Triggering works more or less as desired but how do I stop the > >> > loading process if the cell becomes invisible? If the user quickly > >> > scrolls > >> > through a large number of rows and puts tons of thumbnail loading jobs > >> > on > >> > the queue I have not found a way to dequeue them, so this is > unusable. I > >> > added output to the calls to the update method of the TableCell to see > >> > which instances are used and how their data is reset but the pattern I > >> > see > >> > is not suitable for deciding which cell is currently visible. > >> > > >> > 2) Register a change listener to the TableCell?s visible property to > >> > make > >> > that control the image loading. > >> > > >> > Result: I don?t seem to get any change events when I do that, so it > does > >> > not work at all for my purpose. > >> > > >> > I see no public API in table view to explicitly compute the items > >> > visible > >> > in the current viewport either. What am I missing. It can't be an > >> > oversight > >> > in the API design, as the thing, I am trying to achieve appears rather > >> > basic. > >> > > >> > Thanks in advance for any hints, > >> > > >> > Robert > > > > > > > > -- > > Robert Kr?ger > > Managing Partner > > Lesspain GmbH & Co. KG > > > > www.lesspain-software.com > > > -- Robert Kr?ger Managing Partner Lesspain GmbH & Co. KG www.lesspain-software.com From johan at lodgon.com Wed Jan 28 11:04:23 2015 From: johan at lodgon.com (Johan Vos) Date: Wed, 28 Jan 2015 12:04:23 +0100 Subject: AcceleratedScreen Message-ID: Hi, Unless I'm missing something, at this moment an AcceleratedScreen is not able to be reconfigured. Once initialized, the eglSurface is not changed. This leads to the following issue on Android: when the device is rotated, a new surface is created. The AcceleratedScreen still tries to call eglSwapBuffers with a reference to the old surface. I can hack this into e.g. AndroidAcceleratedScreen, but I am wondering if this might be some general functionality that should be provided by the AcceleratedScreen? Or would you rather create a new AcceleratedScreen when the underlying surface changed? If so, which class should do this? When using prism with eglfb, the EGLFBGLDrawable does this. - Johan From lehmann at media-interactive.de Wed Jan 28 12:59:57 2015 From: lehmann at media-interactive.de (Werner Lehmann) Date: Wed, 28 Jan 2015 13:59:57 +0100 Subject: TableView API, no lazy retrieval of visible cell content possible? In-Reply-To: References: Message-ID: <54C8DD4D.3090807@media-interactive.de> Robert, I think Tomas is right, load your thumbnails on demand when updateItem is called for an item with missing thumbnail. You say that the cell of a visible item gets reused for another item. If that is the case I guess that the item is "moved" to another cell. Wouldn't it be possible to have an image property on your items and the lazy loading is done on the item, triggered when the item is passed to updateItem of any cell? That should trigger the demand-loading and it would be robust against the tableview exchanging cells for individual items. As to the question when to start or stop lazy loading for items, I would add the load-demands to a stack. Each time the image for a new item is requested it is put to the top of the stack and you have one or more threads processing items on the stack (LIFO). An an image is requested which is already on the stack move it to the top of the stack. If an item is removed from a cell remove it from the stack. That should do it. Werner On 28.01.2015 09:30, Robert Kr?ger wrote: > Doesn't help. The patterns of this property being changed are just as > unusable for my purposes as with the other approaches (e.g. I can clearly > see that item is set to a different value for a cell that is still visible, ... From lehmann at media-interactive.de Wed Jan 28 13:12:04 2015 From: lehmann at media-interactive.de (Werner Lehmann) Date: Wed, 28 Jan 2015 14:12:04 +0100 Subject: Is it possible to have a SwingNode inside a JFXPanel In-Reply-To: References: Message-ID: <54C8E024.3070903@media-interactive.de> We have had both scenarios and encountered issues in these areas: - dragdrop inside the component/node and between swing/fx - repaint issues, sometimes the jfxpanel would appear all black - resize issues, changes to the content of either swingnode or jfxpanel would not be passed to the containing element - can't tab from components in a jfxpanel to nodes of the containing scene - for a combobox in a jfxpanel in a swingnode: can't select elements from the dropdown, even clicking the dropdown scrollbar would close the dropdown - reduced framerate / increased cpu load inside jfxpanel, especially for animations Some of these are resolved, others are not (issues were reported). I'd recommend to test the above early if relevant for your application. Werner On 27.01.2015 20:36, Pedro Duque Vieira wrote: > Hi, > > I'm migrating a Swing app and I have a scenario where I need to have a > SwingNode inside a JFXPanel and also a JFXPanel inside a SwingNode. > > Are this configurations possible? From lehmann at media-interactive.de Wed Jan 28 13:13:21 2015 From: lehmann at media-interactive.de (Werner Lehmann) Date: Wed, 28 Jan 2015 14:13:21 +0100 Subject: How to use scaleX/Y to change layout bounds? In-Reply-To: <0B256653-B319-48DC-A341-B9B2EEE59D2C@ultramixer.com> References: <0B256653-B319-48DC-A341-B9B2EEE59D2C@ultramixer.com> Message-ID: <54C8E071.4050609@media-interactive.de> Hi Tobi, wrap the button into a group. Werner On 28.01.2015 07:51, Tobias Bley wrote: > Hi, > > when I call button.setScaleX(.5) and button.setScaleY(.5) the button > changes it?s size only visually - the layout bounds does not change? > How can I change this behaviour? > > Best regards, Tobi From krueger at lesspain.de Wed Jan 28 14:13:20 2015 From: krueger at lesspain.de (=?UTF-8?Q?Robert_Kr=C3=BCger?=) Date: Wed, 28 Jan 2015 15:13:20 +0100 Subject: TableView API, no lazy retrieval of visible cell content possible? In-Reply-To: <54C8DD4D.3090807@media-interactive.de> References: <54C8DD4D.3090807@media-interactive.de> Message-ID: Hi, On Wed, Jan 28, 2015 at 1:59 PM, Werner Lehmann < lehmann at media-interactive.de> wrote: > Robert, > > I think Tomas is right, load your thumbnails on demand when updateItem is > called for an item with missing thumbnail. You say that the cell of a > visible item gets reused for another item. If that is the case I guess that > the item is "moved" to another cell. Wouldn't it be possible to have an > image property on your items and the lazy loading is done on the item, > triggered when the item is passed to updateItem of any cell? That That is exactly what I have implemented but the problem is as described above - Too many non-visible images are loaded (I could probably live with that for a while) - I have yet to find a criterion to decide an image is no longer needed and thus its loading job needs to be removed from the job stack (see below) > should trigger the demand-loading and it would be robust against the > tableview exchanging cells for individual items. > As to the question when to start or stop lazy loading for items, I would > add the load-demands to a stack. Each time the image for a new item is > requested it is put to the top of the stack and you have one or more > threads processing items on the stack (LIFO). An an image is requested > which is already on the stack move it to the top of the stack. If an item > is removed from a cell remove it from the stack. That should do it. > > That's what I am doing already. Regards, Robert Werner > > On 28.01.2015 09:30, Robert Kr?ger wrote: > >> Doesn't help. The patterns of this property being changed are just as >> unusable for my purposes as with the other approaches (e.g. I can clearly >> see that item is set to a different value for a cell that is still >> visible, >> > ... > > -- Robert Kr?ger Managing Partner Lesspain GmbH & Co. KG www.lesspain-software.com From krueger at lesspain.de Wed Jan 28 14:57:47 2015 From: krueger at lesspain.de (=?UTF-8?Q?Robert_Kr=C3=BCger?=) Date: Wed, 28 Jan 2015 15:57:47 +0100 Subject: Fwd: TableView API, no lazy retrieval of visible cell content possible? In-Reply-To: References: <54C8DD4D.3090807@media-interactive.de> Message-ID: forgot again to reply to all. If anyone ever considers changing the default settings of the list server, +1 from me. ---------- Forwarded message ---------- From: Robert Kr?ger Date: Wed, Jan 28, 2015 at 3:47 PM Subject: Re: TableView API, no lazy retrieval of visible cell content possible? To: Werner Lehmann On Wed, Jan 28, 2015 at 3:13 PM, Robert Kr?ger wrote: > > Hi, > > On Wed, Jan 28, 2015 at 1:59 PM, Werner Lehmann < > lehmann at media-interactive.de> wrote: > >> Robert, >> >> I think Tomas is right, load your thumbnails on demand when updateItem is >> called for an item with missing thumbnail. You say that the cell of a >> visible item gets reused for another item. If that is the case I guess that >> the item is "moved" to another cell. Wouldn't it be possible to have an >> image property on your items and the lazy loading is done on the item, >> triggered when the item is passed to updateItem of any cell? That > > > That is exactly what I have implemented but the problem is as described > above > - Too many non-visible images are loaded (I could probably live with that > for a while) > - I have yet to find a criterion to decide an image is no longer needed > and thus its loading job needs to be removed from the job stack (see below) > > >> should trigger the demand-loading and it would be robust against the >> tableview exchanging cells for individual items. >> > As to the question when to start or stop lazy loading for items, I would >> add the load-demands to a stack. Each time the image for a new item is >> requested it is put to the top of the stack and you have one or more >> threads processing items on the stack (LIFO). An an image is requested >> which is already on the stack move it to the top of the stack. If an item >> is removed from a cell remove it from the stack. That should do it. >> >> > That's what I am doing already. > To clarify: I am using the stack approach you describe and I remove it from the stack when updateItem for a table cell is called that already has a different item set. Then I remove the already set item from the stack but that never seems to happen in my example. > > > -- Robert Kr?ger Managing Partner Lesspain GmbH & Co. KG www.lesspain-software.com From krueger at lesspain.de Wed Jan 28 15:06:36 2015 From: krueger at lesspain.de (=?UTF-8?Q?Robert_Kr=C3=BCger?=) Date: Wed, 28 Jan 2015 16:06:36 +0100 Subject: TableView API, no lazy retrieval of visible cell content possible? In-Reply-To: References: <54C8DD4D.3090807@media-interactive.de> Message-ID: OK, hang on. I may have found a mistake and what I described may not actually have been happening. On Wed, Jan 28, 2015 at 3:13 PM, Robert Kr?ger wrote: > > Hi, > > On Wed, Jan 28, 2015 at 1:59 PM, Werner Lehmann < > lehmann at media-interactive.de> wrote: > >> Robert, >> >> I think Tomas is right, load your thumbnails on demand when updateItem is >> called for an item with missing thumbnail. You say that the cell of a >> visible item gets reused for another item. If that is the case I guess that >> the item is "moved" to another cell. Wouldn't it be possible to have an >> image property on your items and the lazy loading is done on the item, >> triggered when the item is passed to updateItem of any cell? That > > > That is exactly what I have implemented but the problem is as described > above > - Too many non-visible images are loaded (I could probably live with that > for a while) > - I have yet to find a criterion to decide an image is no longer needed > and thus its loading job needs to be removed from the job stack (see below) > > >> should trigger the demand-loading and it would be robust against the >> tableview exchanging cells for individual items. >> > As to the question when to start or stop lazy loading for items, I would >> add the load-demands to a stack. Each time the image for a new item is >> requested it is put to the top of the stack and you have one or more >> threads processing items on the stack (LIFO). An an image is requested >> which is already on the stack move it to the top of the stack. If an item >> is removed from a cell remove it from the stack. That should do it. >> >> > That's what I am doing already. > > Regards, > > Robert > > Werner >> >> On 28.01.2015 09:30, Robert Kr?ger wrote: >> >>> Doesn't help. The patterns of this property being changed are just as >>> unusable for my purposes as with the other approaches (e.g. I can clearly >>> see that item is set to a different value for a cell that is still >>> visible, >>> >> ... >> >> > > > -- > Robert Kr?ger > Managing Partner > Lesspain GmbH & Co. KG > > www.lesspain-software.com > -- Robert Kr?ger Managing Partner Lesspain GmbH & Co. KG www.lesspain-software.com From krueger at lesspain.de Wed Jan 28 16:17:12 2015 From: krueger at lesspain.de (=?UTF-8?Q?Robert_Kr=C3=BCger?=) Date: Wed, 28 Jan 2015 17:17:12 +0100 Subject: TableView API, no lazy retrieval of visible cell content possible? In-Reply-To: <54C908FA.6040108@media-interactive.de> References: <54C8DD4D.3090807@media-interactive.de> <54C908FA.6040108@media-interactive.de> Message-ID: Yes, and I think there was a mistake in my code. I have it almost working and have to analyse now, why it does not work for all cells, which may again be my mistake. I will investigate and post an update and if I don't find it, I will build a simple test program to illustrate this. On Wed, Jan 28, 2015 at 5:06 PM, Werner Lehmann < lehmann at media-interactive.de> wrote: > That's strange because then TableView would have to create cells always > new instead of reusing them - if they would be reused you would see the > updateItem calls you are saying do never occur... As far as I know the > number of cells is about as many as you need for one visible page in the > tableview plus 2-4 more to facilitate scrolling. > > > On 28.01.2015 15:47, Robert Kr?ger wrote: > >> To clarify: I am using the stack approach you describe and I remove it >> from the stack when updateItem for a table cell is called that already >> has a different item set. Then I remove the already set item from the >> stack but that never seems to happen in my example. >> > > -- Robert Kr?ger Managing Partner Lesspain GmbH & Co. KG www.lesspain-software.com From David.Hill at Oracle.com Wed Jan 28 16:47:54 2015 From: David.Hill at Oracle.com (David Hill) Date: Wed, 28 Jan 2015 11:47:54 -0500 Subject: iMX6Q graphics performance In-Reply-To: <54C88B10.4080106@indsp.com> References: <54BCC3DE.7010703@indsp.com> <54BE9651.7000307@Oracle.com> <54BF39C4.2090807@indsp.com> <54C7D28D.2020607@Oracle.com> <54C88B10.4080106@indsp.com> Message-ID: <54C912BA.8010007@Oracle.com> On 1/28/15, 2:09 AM, Prasant Jalan wrote: > Few more questions about your Boundary Devices iMX6 Quad: > - Amount of RAM/memory in your iMX6 system? > - iMX6 Single Core Clock speed (0.8 GHz, 1 GHz or 1.2 GHz) > - Which javaFX version did you use to get the above measurements (if you recollect)? I am using: http://boundarydevices.com/product/sabre-lite-imx6-sbc/ Specs are on the page. It is a Quad, so 4 cores @ 1GHz, 1GB memory. OS is a Ubuntu base distro, provided by BoundaryDevices, though I have a similar setup using Yocto that I have not been able to see any FX differences. ubuntu at oracle:~$ cat /proc/cpuinfo processor : 0 model name : ARMv7 Processor rev 10 (v7l) BogoMIPS : 790.52 My monitor is connected with HDMI, 720P. Note that 1080p will likely be slower - more data to move even with a GPU. Using JDK 8u6 + OpenJFX build (which is my development setup). There are some improvements that are present in OpenJFX that are not in 8u6, and that certainly might affect performance. The process to build OpenJFX is here. For a simple JFX command, it is unlikely that we will require more than 2 CPU cores. One thread for the application, and another for the repainter. A more complex application with worker thread might light up more cores. Using the top command (then hitting "1" to enable the Core usage display), I see my Industrial app using one to two cores like this: %Cpu0 : 22.4 us, 2.0 sy, 0.0 ni, 75.5 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu1 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu2 : 0.3 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu3 : 66.8 us, 4.3 sy, 0.0 ni, 28.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st Occasionally just one core like this, probably when we are computing a change in the Scene. %Cpu0 : 8.0 us, 1.3 sy, 0.0 ni, 90.6 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu1 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu2 : 83.8 us, 2.6 sy, 0.0 ni, 13.5 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu3 : 0.7 us, 0.0 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st and of course occasionally 3 cores - I expect that is when top is running :-) Dave -- David Hill Java Embedded Development "A man's feet should be planted in his country, but his eyes should survey the world." -- George Santayana (1863 - 1952) From krueger at lesspain.de Wed Jan 28 16:55:42 2015 From: krueger at lesspain.de (=?UTF-8?Q?Robert_Kr=C3=BCger?=) Date: Wed, 28 Jan 2015 17:55:42 +0100 Subject: TableView API, no lazy retrieval of visible cell content possible? In-Reply-To: References: <54C8DD4D.3090807@media-interactive.de> <54C908FA.6040108@media-interactive.de> Message-ID: OK, I investigated some more. What is weird is that the same table cell instance (I checked the Object hashcode) is set to different model values while it is still visible, i.e. I get sequences like this in the log, just when I display the table: Updating cell 673139775 from null with Image reference for Row 0 Adding Row 0 to image load queue Updating cell 673139775 from Image reference for Row 0 with Image reference for Row 1 Adding Row 1 to image load queue Dequeueing image for Row 0 Updating cell 673139775 from Image reference for Row 1 with Image reference for Row 2 Adding Row 2 to image load queue Dequeueing image for Row 1 Updating cell 673139775 from Image reference for Row 2 with Image reference for Row 3 Adding Row 3 to image load queue Dequeueing image for Row 2 Updating cell 673139775 from Image reference for Row 3 with Image reference for Row 4 Adding Row 4 to image load queue Dequeueing image for Row 3 Updating cell 673139775 from Image reference for Row 4 with Image reference for Row 5 Adding Row 5 to image load queue Dequeueing image for Row 4 Updating cell 673139775 from Image reference for Row 5 with Image reference for Row 6 Adding Row 6 to image load queue Dequeueing image for Row 5 This means that I cannot rely on the same table cell to be used for displaying the content while its row is visible (+ a bit of buffered rows around the visible area) and that means the whole approach will not work. It would really be great if someone from Oracle could comment here. None of this behaviour is documented in the API so it seems that using this is really relying on implementation details and I have found any other options to achieve that. The behaviour of the application as it is now is that randomly some images are never loaded, because they are quickly removed from the load queue because the cell's content is overwritten while it is still being displayed. On Wed, Jan 28, 2015 at 5:17 PM, Robert Kr?ger wrote: > Yes, and I think there was a mistake in my code. I have it almost working > and have to analyse now, why it does not work for all cells, which may > again be my mistake. I will investigate and post an update and if I don't > find it, I will build a simple test program to illustrate this. > > On Wed, Jan 28, 2015 at 5:06 PM, Werner Lehmann < > lehmann at media-interactive.de> wrote: > >> That's strange because then TableView would have to create cells always >> new instead of reusing them - if they would be reused you would see the >> updateItem calls you are saying do never occur... As far as I know the >> number of cells is about as many as you need for one visible page in the >> tableview plus 2-4 more to facilitate scrolling. >> >> >> On 28.01.2015 15:47, Robert Kr?ger wrote: >> >>> To clarify: I am using the stack approach you describe and I remove it >>> from the stack when updateItem for a table cell is called that already >>> has a different item set. Then I remove the already set item from the >>> stack but that never seems to happen in my example. >>> >> >> > > > -- > Robert Kr?ger > Managing Partner > Lesspain GmbH & Co. KG > > www.lesspain-software.com > -- Robert Kr?ger Managing Partner Lesspain GmbH & Co. KG www.lesspain-software.com From krueger at lesspain.de Wed Jan 28 16:57:03 2015 From: krueger at lesspain.de (=?UTF-8?Q?Robert_Kr=C3=BCger?=) Date: Wed, 28 Jan 2015 17:57:03 +0100 Subject: TableView API, no lazy retrieval of visible cell content possible? In-Reply-To: References: <54C8DD4D.3090807@media-interactive.de> <54C908FA.6040108@media-interactive.de> Message-ID: On Wed, Jan 28, 2015 at 5:55 PM, Robert Kr?ger wrote: > OK, I investigated some more. > > What is weird is that the same table cell instance (I checked the Object > hashcode) is set to different model values while it is still visible, i.e. > I get sequences like this in the log, just when I display the table: > > Updating cell 673139775 from null with Image reference for Row 0 > Adding Row 0 to image load queue > Updating cell 673139775 from Image reference for Row 0 with Image > reference for Row 1 > Adding Row 1 to image load queue > Dequeueing image for Row 0 > Updating cell 673139775 from Image reference for Row 1 with Image > reference for Row 2 > Adding Row 2 to image load queue > Dequeueing image for Row 1 > Updating cell 673139775 from Image reference for Row 2 with Image > reference for Row 3 > Adding Row 3 to image load queue > Dequeueing image for Row 2 > Updating cell 673139775 from Image reference for Row 3 with Image > reference for Row 4 > Adding Row 4 to image load queue > Dequeueing image for Row 3 > Updating cell 673139775 from Image reference for Row 4 with Image > reference for Row 5 > Adding Row 5 to image load queue > Dequeueing image for Row 4 > Updating cell 673139775 from Image reference for Row 5 with Image > reference for Row 6 > Adding Row 6 to image load queue > Dequeueing image for Row 5 > > This means that I cannot rely on the same table cell to be used for > displaying the content while its row is visible (+ a bit of buffered rows > around the visible area) and that means the whole approach will not work. > > It would really be great if someone from Oracle could comment here. None > of this behaviour is documented in the API so it seems that using this is > really relying on implementation details and I have found any other options > to achieve that. The behaviour of the application as it is > this should be "I have _not_ found ..." > now is that randomly some images are never loaded, because they are > quickly removed from the load queue because the cell's content is > overwritten while it is still being displayed. > > > From pedro.duquevieira at gmail.com Wed Jan 28 17:10:21 2015 From: pedro.duquevieira at gmail.com (Pedro Duque Vieira) Date: Wed, 28 Jan 2015 17:10:21 +0000 Subject: javafx.embed.singleThread flag questions In-Reply-To: References: <54C7CBA1.9080802@oracle.com> Message-ID: Hi Diego, No sorry, I have no experience with that flag. I just use Platform.runLater and such.. Thanks, best regards, On Wed, Jan 28, 2015 at 8:15 AM, Cirujano Cuesta, Diego < diego.cirujano-cuesta at zeiss.com> wrote: > Hi Kevin, > > I think that you mean since 8u40, isn?t? > > Because there is a ticket about it fixed by 8u40: > https://javafx-jira.kenai.com/browse/RT-38921 > > @Pedro Duque Vieira, as you are talking about using swing and javaFX, do > you have any experience with the javafx.embed.singleThread flag? > > Cheers, > Diego > > -----Original Message----- > From: Kevin Rushforth [mailto:kevin.rushforth at oracle.com] > Sent: Dienstag, 27. Januar 2015 18:32 > To: Cirujano Cuesta, Diego > Cc: openjfx-dev at openjdk.java.net > Subject: Re: javafx.embed.singleThread flag questions > > Hi, > > It is experimental in FX 8, but we might consider making it available via > an API call in the future. I haven't heard of any problems in using it, > though, so you can feel free to use it as long as you have tested it well. > > -- Kevin > > > Cirujano Cuesta, Diego wrote: > > Hi all, > > > > > > I have a few questions about the javafx.embed.singleThread flag: > > > > > > > > Is it still experimental? Is it recommended the usage of this flag in an > application with several JFXPanels and swing with communication between > them? > > > > > > > > anybody using it? any experience/opinion about it? > > > > > > > > Thanks! > > > > Diego > > > > > -- Pedro Duque Vieira From kevin.rushforth at oracle.com Wed Jan 28 17:29:07 2015 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Wed, 28 Jan 2015 09:29:07 -0800 Subject: javafx.embed.singleThread flag questions In-Reply-To: References: <54C7CBA1.9080802@oracle.com> Message-ID: <54C91C63.2080501@oracle.com> Yes, I mean since 8u40. -- Kevin Cirujano Cuesta, Diego wrote: > Hi Kevin, > > I think that you mean since 8u40, isn?t? > > Because there is a ticket about it fixed by 8u40: https://javafx-jira.kenai.com/browse/RT-38921 > > @Pedro Duque Vieira, as you are talking about using swing and javaFX, do you have any experience with the javafx.embed.singleThread flag? > > Cheers, > Diego > > -----Original Message----- > From: Kevin Rushforth [mailto:kevin.rushforth at oracle.com] > Sent: Dienstag, 27. Januar 2015 18:32 > To: Cirujano Cuesta, Diego > Cc: openjfx-dev at openjdk.java.net > Subject: Re: javafx.embed.singleThread flag questions > > Hi, > > It is experimental in FX 8, but we might consider making it available via an API call in the future. I haven't heard of any problems in using it, though, so you can feel free to use it as long as you have tested it well. > > -- Kevin > > > Cirujano Cuesta, Diego wrote: > >> Hi all, >> >> >> I have a few questions about the javafx.embed.singleThread flag: >> >> >> >> Is it still experimental? Is it recommended the usage of this flag in an application with several JFXPanels and swing with communication between them? >> >> >> >> anybody using it? any experience/opinion about it? >> >> >> >> Thanks! >> >> Diego >> >> >> From David.Hill at Oracle.com Wed Jan 28 19:34:04 2015 From: David.Hill at Oracle.com (David Hill) Date: Wed, 28 Jan 2015 14:34:04 -0500 Subject: AcceleratedScreen In-Reply-To: References: Message-ID: <54C939AC.6030900@Oracle.com> On 1/28/15, 6:04 AM, Johan Vos wrote: > Hi, > > Unless I'm missing something, at this moment an AcceleratedScreen is not > able to be reconfigured. Once initialized, the eglSurface is not changed. > This leads to the following issue on Android: when the device is rotated, a > new surface is created. The AcceleratedScreen still tries to call > eglSwapBuffers with a reference to the old surface. > > I can hack this into e.g. AndroidAcceleratedScreen, but I am wondering if > this might be some general functionality that should be provided by the > AcceleratedScreen? Or would you rather create a new AcceleratedScreen when > the underlying surface changed? If so, which class should do this? When > using prism with eglfb, the EGLFBGLDrawable does this. I don't think that we have encountered the issue with a changing eglSurface yet, so I expect we will need to change some of the plumbing to let that work right. I think that it would make sense to make the change for a general case - even if we have not encountered the need for general Linux yet. Would you file a Jira? I would be happy to work through the issue with you. Dave -- David Hill Java Embedded Development "A man's feet should be planted in his country, but his eyes should survey the world." -- George Santayana (1863 - 1952) From jasper.potts at oracle.com Wed Jan 28 19:56:33 2015 From: jasper.potts at oracle.com (Jasper Potts) Date: Wed, 28 Jan 2015 11:56:33 -0800 Subject: iMX6Q graphics performance In-Reply-To: <54C912BA.8010007@Oracle.com> References: <54BCC3DE.7010703@indsp.com> <54BE9651.7000307@Oracle.com> <54BF39C4.2090807@indsp.com> <54C7D28D.2020607@Oracle.com> <54C88B10.4080106@indsp.com> <54C912BA.8010007@Oracle.com> Message-ID: We were getting good performance with 1080p for JavaOne keynote Car demo last year. Though not as good as Odroid U3 Jasper Sent from my iPhone > On Jan 28, 2015, at 8:47 AM, David Hill wrote: > >> On 1/28/15, 2:09 AM, Prasant Jalan wrote: >> Few more questions about your Boundary Devices iMX6 Quad: >> - Amount of RAM/memory in your iMX6 system? >> - iMX6 Single Core Clock speed (0.8 GHz, 1 GHz or 1.2 GHz) >> - Which javaFX version did you use to get the above measurements (if you recollect)? > > I am using: http://boundarydevices.com/product/sabre-lite-imx6-sbc/ > > Specs are on the page. It is a Quad, so 4 cores @ 1GHz, 1GB memory. > > OS is a Ubuntu base distro, provided by BoundaryDevices, though I have a similar setup using Yocto that I have not been able to see any FX differences. > > ubuntu at oracle:~$ cat /proc/cpuinfo > processor : 0 > model name : ARMv7 Processor rev 10 (v7l) > BogoMIPS : 790.52 > > My monitor is connected with HDMI, 720P. Note that 1080p will likely be slower - more data to move even with a GPU. > > Using JDK 8u6 + OpenJFX build (which is my development setup). There are some improvements that are present in OpenJFX that are not in 8u6, and that certainly might affect performance. The process to build OpenJFX is here. > > For a simple JFX command, it is unlikely that we will require more than 2 CPU cores. One thread for the application, and another for the repainter. A more complex application with worker thread might light up more cores. > > Using the top command (then hitting "1" to enable the Core usage display), I see my Industrial app using one to two cores like this: > > %Cpu0 : 22.4 us, 2.0 sy, 0.0 ni, 75.5 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st > %Cpu1 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st > %Cpu2 : 0.3 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st > %Cpu3 : 66.8 us, 4.3 sy, 0.0 ni, 28.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st > > Occasionally just one core like this, probably when we are computing a change in the Scene. > > %Cpu0 : 8.0 us, 1.3 sy, 0.0 ni, 90.6 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st > %Cpu1 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st > %Cpu2 : 83.8 us, 2.6 sy, 0.0 ni, 13.5 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st > %Cpu3 : 0.7 us, 0.0 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st > > and of course occasionally 3 cores - I expect that is when top is running :-) > > Dave > > > -- > David Hill > Java Embedded Development > > "A man's feet should be planted in his country, but his eyes should survey the world." > -- George Santayana (1863 - 1952) > From mikegps1 at gmail.com Wed Jan 28 20:44:12 2015 From: mikegps1 at gmail.com (Mike) Date: Wed, 28 Jan 2015 12:44:12 -0800 Subject: iMX6Q graphics performance In-Reply-To: References: <54BCC3DE.7010703@indsp.com> <54BE9651.7000307@Oracle.com> <54BF39C4.2090807@indsp.com> <54C7D28D.2020607@Oracle.com> <54C88B10.4080106@indsp.com> <54C912BA.8010007@Oracle.com> Message-ID: What is your Favorite Embedded board if you got something right now? Odroid U3? or something else. I guess the Odroid U3 is availabe in Early Feb again at 179.00 US. http://www.hardkernel.com/main/products/prdt_info.php?g_code=G140448267127 On Wed, Jan 28, 2015 at 11:56 AM, Jasper Potts wrote: > We were getting good performance with 1080p for JavaOne keynote Car demo > last year. Though not as good as Odroid U3 > > Jasper > > Sent from my iPhone > > > On Jan 28, 2015, at 8:47 AM, David Hill wrote: > > > >> On 1/28/15, 2:09 AM, Prasant Jalan wrote: > >> Few more questions about your Boundary Devices iMX6 Quad: > >> - Amount of RAM/memory in your iMX6 system? > >> - iMX6 Single Core Clock speed (0.8 GHz, 1 GHz or 1.2 GHz) > >> - Which javaFX version did you use to get the above measurements (if > you recollect)? > > > > I am using: http://boundarydevices.com/product/sabre-lite-imx6-sbc/ > > > > Specs are on the page. It is a Quad, so 4 cores @ 1GHz, 1GB memory. > > > > OS is a Ubuntu base distro, provided by BoundaryDevices, though I have a > similar setup using Yocto that I have not been able to see any FX > differences. > > > > ubuntu at oracle:~$ cat /proc/cpuinfo > > processor : 0 > > model name : ARMv7 Processor rev 10 (v7l) > > BogoMIPS : 790.52 > > > > My monitor is connected with HDMI, 720P. Note that 1080p will likely be > slower - more data to move even with a GPU. > > > > Using JDK 8u6 + OpenJFX build (which is my development setup). There are > some improvements that are present in OpenJFX that are not in 8u6, and that > certainly might affect performance. The process to build OpenJFX is here. < > https://wiki.openjdk.java.net/display/OpenJFX/Building+OpenJFX> > > > > For a simple JFX command, it is unlikely that we will require more than > 2 CPU cores. One thread for the application, and another for the repainter. > A more complex application with worker thread might light up more cores. > > > > Using the top command (then hitting "1" to enable the Core usage > display), I see my Industrial app using one to two cores like this: > > > > %Cpu0 : 22.4 us, 2.0 sy, 0.0 ni, 75.5 id, 0.0 wa, 0.0 hi, 0.0 si, > 0.0 st > > %Cpu1 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, > 0.0 st > > %Cpu2 : 0.3 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, > 0.0 st > > %Cpu3 : 66.8 us, 4.3 sy, 0.0 ni, 28.9 id, 0.0 wa, 0.0 hi, 0.0 si, > 0.0 st > > > > Occasionally just one core like this, probably when we are computing a > change in the Scene. > > > > %Cpu0 : 8.0 us, 1.3 sy, 0.0 ni, 90.6 id, 0.0 wa, 0.0 hi, 0.0 si, > 0.0 st > > %Cpu1 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, > 0.0 st > > %Cpu2 : 83.8 us, 2.6 sy, 0.0 ni, 13.5 id, 0.0 wa, 0.0 hi, 0.0 si, > 0.0 st > > %Cpu3 : 0.7 us, 0.0 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, > 0.0 st > > > > and of course occasionally 3 cores - I expect that is when top is > running :-) > > > > Dave > > > > > > -- > > David Hill > > Java Embedded Development > > > > "A man's feet should be planted in his country, but his eyes should > survey the world." > > -- George Santayana (1863 - 1952) > > > From kevin.rushforth at oracle.com Wed Jan 28 22:00:21 2015 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Wed, 28 Jan 2015 14:00:21 -0800 Subject: JavaFX and JDK for ARM Message-ID: <54C95BF5.6090705@oracle.com> Many of you have been asking about the status of JavaFX in Linux/ARM embedded platforms. Starting with 8u33, JavaFX has been removed from both Oracle JDK for ARM and Oracle Java SE Embedded. [1] This is a resource trade off within Oracle. Included in that difficult trade off decision was the ongoing investment needed to properly support FX in a world where so much the hardware is not standardized -- it really is difficult to have enough hardware and testing resources committed to support FX on ARM. It is important to understand that when we say support, we are not talking about just "running" on a device like the Raspberry PI -- but providing support for paying customers that are almost certainly going to be using hardware that is customized for their embedded product. This does not mean that FX is going away on other platforms, and hopefully does not mean we will be disappearing from ARM completely. The core JavaFX team will continue working on the ARM port as resources permit, hopefully with involvement of members of the OpenJFX community. We have continued to demonstrate this commitment with the moving all of the JavaFX sources to OpenJFX, and maintaining an up to date OpenJFX Wiki which includes detailed articles on building for ARM. We will continue to do what we can to make it easier to build and overlay OpenJFX on top of the ARM JDKs. We hope to arrange for a external build of OpenJFX for ARM so that more people will be able to easily obtain a current build. Most of the FX source code is shared across all ports, and we will continue to do regular internal builds of linux-armv6hf to ensure that it runs. We will continue to maintain the Monocle glass platform in any case, as we use it for some of our dektop unit tests. We have received a lot of help from the community -- particularly for iOS and Android. Now we hope we can work together to keep Linux ARM viable and interesting. -- Kevin Rushforth and David Hill [1] For more information on the decision, I refer you to the following statement from Dalibor Topic and Donald Smith that Dalibor posted to the Raspberry Pi forum. http://www.raspberrypi.org/forums/viewtopic.php?f=81&t=97367&p=678791#p678791 ------------------------------------------------------------------------------------------------------- Apologies for the terse release note regarding this change to the Oracle JDK for ARM and Oracle Java SE Embedded products. Clearly this change should have come with more context. Starting with Oracle JDK for ARM 8u33 and Oracle Java SE Embedded 8u33, JavaFX Embedded, a port of JavaFX 8 which was only available on Linux/ARM platforms, is not supported, and has been removed from these downloads. The complete source code for JavaFX Embedded has been contributed to the OpenJFX open source project in the OpenJDK community under the GPL v2 with Classpath exception license. JavaFX development has been done in the OpenJDK open source community for some time now, enabling JavaFX developers to contribute back their changes to the source code, and produce their own OpenJFX binaries for their target platforms under their own responsibility. JavaFX continues to be provided as a fully supported part of the Oracle JDK 8 product on x86 platforms (Windows, Linux, Mac). ------------------------------------------------------------------------------------------------------- From David.Hill at Oracle.com Wed Jan 28 22:03:17 2015 From: David.Hill at Oracle.com (David Hill) Date: Wed, 28 Jan 2015 17:03:17 -0500 Subject: iMX6Q graphics performance In-Reply-To: References: <54BCC3DE.7010703@indsp.com> <54BE9651.7000307@Oracle.com> <54BF39C4.2090807@indsp.com> <54C7D28D.2020607@Oracle.com> <54C88B10.4080106@indsp.com> <54C912BA.8010007@Oracle.com> Message-ID: <54C95CA5.6080308@Oracle.com> On 1/28/15, 3:44 PM, Mike wrote: > What is your Favorite Embedded board if you got something right now? Odroid U3? or something else. I guess > the Odroid U3 is availabe in Early Feb again at 179.00 US. > http://www.hardkernel.com/main/products/prdt_info.php?g_code=G140448267127 My current favorite is the BoundaryDevices - partly because they do an awesome job of building a distro with the drivers I needed. There are only a small number of boards that provide a distro with the required accelerated drivers, and very few of those support direct to framebuffer rendering. The U3 is a snazzy board at a great price, and you can get accelerated rendering in X11. Our focus was to take X11 out of the loop for resource and other considerations - rendering direct to the framebuffer. But... I never did get an accelerated direct to framebuffer working for the U3 (and the Mali GPU). The ARM guys say it can be done, but it needs to be part of the platform port. OpenJFX can work with the X11 on the U3, but there are places, particularly with the touch and key support where the fit and finish is not very good. It was good enough for Jasper to demo though :-) Dave > > On Wed, Jan 28, 2015 at 11:56 AM, Jasper Potts > wrote: > > We were getting good performance with 1080p for JavaOne keynote Car demo last year. Though not as good as Odroid U3 > > Jasper > > Sent from my iPhone > > > On Jan 28, 2015, at 8:47 AM, David Hill > wrote: > > > >> On 1/28/15, 2:09 AM, Prasant Jalan wrote: > >> Few more questions about your Boundary Devices iMX6 Quad: > >> - Amount of RAM/memory in your iMX6 system? > >> - iMX6 Single Core Clock speed (0.8 GHz, 1 GHz or 1.2 GHz) > >> - Which javaFX version did you use to get the above measurements (if you recollect)? > > > > I am using: http://boundarydevices.com/product/sabre-lite-imx6-sbc/ > > > > Specs are on the page. It is a Quad, so 4 cores @ 1GHz, 1GB memory. > > > > OS is a Ubuntu base distro, provided by BoundaryDevices, though I have a similar setup using Yocto that I have not been able to see any FX differences. > > > > ubuntu at oracle:~$ cat /proc/cpuinfo > > processor : 0 > > model name : ARMv7 Processor rev 10 (v7l) > > BogoMIPS : 790.52 > > > > My monitor is connected with HDMI, 720P. Note that 1080p will likely be slower - more data to move even with a GPU. > > > > Using JDK 8u6 + OpenJFX build (which is my development setup). There are some improvements that are present in OpenJFX that are not in 8u6, and that certainly might affect performance. The process to build OpenJFX is here. > > > > For a simple JFX command, it is unlikely that we will require more than 2 CPU cores. One thread for the application, and another for the repainter. A more complex application with worker thread might light up more cores. > > > > Using the top command (then hitting "1" to enable the Core usage display), I see my Industrial app using one to two cores like this: > > > > %Cpu0 : 22.4 us, 2.0 sy, 0.0 ni, 75.5 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st > > %Cpu1 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st > > %Cpu2 : 0.3 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st > > %Cpu3 : 66.8 us, 4.3 sy, 0.0 ni, 28.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st > > > > Occasionally just one core like this, probably when we are computing a change in the Scene. > > > > %Cpu0 : 8.0 us, 1.3 sy, 0.0 ni, 90.6 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st > > %Cpu1 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st > > %Cpu2 : 83.8 us, 2.6 sy, 0.0 ni, 13.5 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st > > %Cpu3 : 0.7 us, 0.0 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st > > > > and of course occasionally 3 cores - I expect that is when top is running :-) > > > > Dave > > > > > > -- > > David Hill > > Java Embedded Development > > > > "A man's feet should be planted in his country, but his eyes should survey the world." > > -- George Santayana (1863 - 1952) > > > > -- David Hill Java Embedded Development "A man's feet should be planted in his country, but his eyes should survey the world." -- George Santayana (1863 - 1952) From mikegps1 at gmail.com Wed Jan 28 22:32:06 2015 From: mikegps1 at gmail.com (Mike) Date: Wed, 28 Jan 2015 14:32:06 -0800 Subject: iMX6Q graphics performance In-Reply-To: <54C95CA5.6080308@Oracle.com> References: <54BCC3DE.7010703@indsp.com> <54BE9651.7000307@Oracle.com> <54BF39C4.2090807@indsp.com> <54C7D28D.2020607@Oracle.com> <54C88B10.4080106@indsp.com> <54C912BA.8010007@Oracle.com> <54C95CA5.6080308@Oracle.com> Message-ID: Thanks so much guys! Last Question is Which boards from BoundaryDevices have you tried with Javafx? I see they have a new board too. This is very helpful information and will save us a lot of time. We are after Top Graphics Performance in Embedded. Mike On Wed, Jan 28, 2015 at 2:03 PM, David Hill wrote: > On 1/28/15, 3:44 PM, Mike wrote: > > What is your Favorite Embedded board if you got something right now? > Odroid U3? or something else. I guess > the Odroid U3 is availabe in Early Feb again at 179.00 US. > http://www.hardkernel.com/main/products/prdt_info.php?g_code=G140448267127 > > > My current favorite is the BoundaryDevices - partly because they do an > awesome job of building a distro with the drivers I needed. > > There are only a small number of boards that provide a distro with the > required accelerated drivers, and very few of those support direct to > framebuffer rendering. > > The U3 is a snazzy board at a great price, and you can get accelerated > rendering in X11. Our focus was to take X11 out of the loop for resource > and other considerations - rendering direct to the framebuffer. But... I > never did get an accelerated direct to framebuffer working for the U3 (and > the Mali GPU). The ARM guys say it can be done, but it needs to be part of > the platform port. > > OpenJFX can work with the X11 on the U3, but there are places, > particularly with the touch and key support where the fit and finish is not > very good. It was good enough for Jasper to demo though :-) > > Dave > > > On Wed, Jan 28, 2015 at 11:56 AM, Jasper Potts > wrote: > >> We were getting good performance with 1080p for JavaOne keynote Car demo >> last year. Though not as good as Odroid U3 >> >> Jasper >> >> Sent from my iPhone >> >> > On Jan 28, 2015, at 8:47 AM, David Hill wrote: >> > >> >> On 1/28/15, 2:09 AM, Prasant Jalan wrote: >> >> Few more questions about your Boundary Devices iMX6 Quad: >> >> - Amount of RAM/memory in your iMX6 system? >> >> - iMX6 Single Core Clock speed (0.8 GHz, 1 GHz or 1.2 GHz) >> >> - Which javaFX version did you use to get the above measurements (if >> you recollect)? >> > >> > I am using: http://boundarydevices.com/product/sabre-lite-imx6-sbc/ >> > >> > Specs are on the page. It is a Quad, so 4 cores @ 1GHz, 1GB memory. >> > >> > OS is a Ubuntu base distro, provided by BoundaryDevices, though I have >> a similar setup using Yocto that I have not been able to see any FX >> differences. >> > >> > ubuntu at oracle:~$ cat /proc/cpuinfo >> > processor : 0 >> > model name : ARMv7 Processor rev 10 (v7l) >> > BogoMIPS : 790.52 >> > >> > My monitor is connected with HDMI, 720P. Note that 1080p will likely be >> slower - more data to move even with a GPU. >> > >> > Using JDK 8u6 + OpenJFX build (which is my development setup). There >> are some improvements that are present in OpenJFX that are not in 8u6, and >> that certainly might affect performance. The process to build OpenJFX is >> here. >> > >> > For a simple JFX command, it is unlikely that we will require more than >> 2 CPU cores. One thread for the application, and another for the repainter. >> A more complex application with worker thread might light up more cores. >> > >> > Using the top command (then hitting "1" to enable the Core usage >> display), I see my Industrial app using one to two cores like this: >> > >> > %Cpu0 : 22.4 us, 2.0 sy, 0.0 ni, 75.5 id, 0.0 wa, 0.0 hi, 0.0 >> si, 0.0 st >> > %Cpu1 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 >> si, 0.0 st >> > %Cpu2 : 0.3 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 >> si, 0.0 st >> > %Cpu3 : 66.8 us, 4.3 sy, 0.0 ni, 28.9 id, 0.0 wa, 0.0 hi, 0.0 >> si, 0.0 st >> > >> > Occasionally just one core like this, probably when we are computing a >> change in the Scene. >> > >> > %Cpu0 : 8.0 us, 1.3 sy, 0.0 ni, 90.6 id, 0.0 wa, 0.0 hi, 0.0 >> si, 0.0 st >> > %Cpu1 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 >> si, 0.0 st >> > %Cpu2 : 83.8 us, 2.6 sy, 0.0 ni, 13.5 id, 0.0 wa, 0.0 hi, 0.0 >> si, 0.0 st >> > %Cpu3 : 0.7 us, 0.0 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 >> si, 0.0 st >> > >> > and of course occasionally 3 cores - I expect that is when top is >> running :-) >> > >> > Dave >> > >> > >> > -- >> > David Hill >> > Java Embedded Development >> > >> > "A man's feet should be planted in his country, but his eyes should >> survey the world." >> > -- George Santayana (1863 - 1952) >> > >> > > > > -- > David Hill > Java Embedded Development > > "A man's feet should be planted in his country, but his eyes should survey the world." > -- George Santayana (1863 - 1952) > > From mikegps1 at gmail.com Wed Jan 28 22:36:25 2015 From: mikegps1 at gmail.com (Mike) Date: Wed, 28 Jan 2015 14:36:25 -0800 Subject: iMX6Q graphics performance In-Reply-To: <54C95CA5.6080308@Oracle.com> References: <54BCC3DE.7010703@indsp.com> <54BE9651.7000307@Oracle.com> <54BF39C4.2090807@indsp.com> <54C7D28D.2020607@Oracle.com> <54C88B10.4080106@indsp.com> <54C912BA.8010007@Oracle.com> <54C95CA5.6080308@Oracle.com> Message-ID: OH sorry David, I think you answered this already -- reading above. On Wed, Jan 28, 2015 at 2:03 PM, David Hill wrote: > On 1/28/15, 3:44 PM, Mike wrote: > > What is your Favorite Embedded board if you got something right now? > Odroid U3? or something else. I guess > the Odroid U3 is availabe in Early Feb again at 179.00 US. > http://www.hardkernel.com/main/products/prdt_info.php?g_code=G140448267127 > > > My current favorite is the BoundaryDevices - partly because they do an > awesome job of building a distro with the drivers I needed. > > There are only a small number of boards that provide a distro with the > required accelerated drivers, and very few of those support direct to > framebuffer rendering. > > The U3 is a snazzy board at a great price, and you can get accelerated > rendering in X11. Our focus was to take X11 out of the loop for resource > and other considerations - rendering direct to the framebuffer. But... I > never did get an accelerated direct to framebuffer working for the U3 (and > the Mali GPU). The ARM guys say it can be done, but it needs to be part of > the platform port. > > OpenJFX can work with the X11 on the U3, but there are places, > particularly with the touch and key support where the fit and finish is not > very good. It was good enough for Jasper to demo though :-) > > Dave > > > On Wed, Jan 28, 2015 at 11:56 AM, Jasper Potts > wrote: > >> We were getting good performance with 1080p for JavaOne keynote Car demo >> last year. Though not as good as Odroid U3 >> >> Jasper >> >> Sent from my iPhone >> >> > On Jan 28, 2015, at 8:47 AM, David Hill wrote: >> > >> >> On 1/28/15, 2:09 AM, Prasant Jalan wrote: >> >> Few more questions about your Boundary Devices iMX6 Quad: >> >> - Amount of RAM/memory in your iMX6 system? >> >> - iMX6 Single Core Clock speed (0.8 GHz, 1 GHz or 1.2 GHz) >> >> - Which javaFX version did you use to get the above measurements (if >> you recollect)? >> > >> > I am using: http://boundarydevices.com/product/sabre-lite-imx6-sbc/ >> > >> > Specs are on the page. It is a Quad, so 4 cores @ 1GHz, 1GB memory. >> > >> > OS is a Ubuntu base distro, provided by BoundaryDevices, though I have >> a similar setup using Yocto that I have not been able to see any FX >> differences. >> > >> > ubuntu at oracle:~$ cat /proc/cpuinfo >> > processor : 0 >> > model name : ARMv7 Processor rev 10 (v7l) >> > BogoMIPS : 790.52 >> > >> > My monitor is connected with HDMI, 720P. Note that 1080p will likely be >> slower - more data to move even with a GPU. >> > >> > Using JDK 8u6 + OpenJFX build (which is my development setup). There >> are some improvements that are present in OpenJFX that are not in 8u6, and >> that certainly might affect performance. The process to build OpenJFX is >> here. >> > >> > For a simple JFX command, it is unlikely that we will require more than >> 2 CPU cores. One thread for the application, and another for the repainter. >> A more complex application with worker thread might light up more cores. >> > >> > Using the top command (then hitting "1" to enable the Core usage >> display), I see my Industrial app using one to two cores like this: >> > >> > %Cpu0 : 22.4 us, 2.0 sy, 0.0 ni, 75.5 id, 0.0 wa, 0.0 hi, 0.0 >> si, 0.0 st >> > %Cpu1 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 >> si, 0.0 st >> > %Cpu2 : 0.3 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 >> si, 0.0 st >> > %Cpu3 : 66.8 us, 4.3 sy, 0.0 ni, 28.9 id, 0.0 wa, 0.0 hi, 0.0 >> si, 0.0 st >> > >> > Occasionally just one core like this, probably when we are computing a >> change in the Scene. >> > >> > %Cpu0 : 8.0 us, 1.3 sy, 0.0 ni, 90.6 id, 0.0 wa, 0.0 hi, 0.0 >> si, 0.0 st >> > %Cpu1 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 >> si, 0.0 st >> > %Cpu2 : 83.8 us, 2.6 sy, 0.0 ni, 13.5 id, 0.0 wa, 0.0 hi, 0.0 >> si, 0.0 st >> > %Cpu3 : 0.7 us, 0.0 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 >> si, 0.0 st >> > >> > and of course occasionally 3 cores - I expect that is when top is >> running :-) >> > >> > Dave >> > >> > >> > -- >> > David Hill >> > Java Embedded Development >> > >> > "A man's feet should be planted in his country, but his eyes should >> survey the world." >> > -- George Santayana (1863 - 1952) >> > >> > > > > -- > David Hill > Java Embedded Development > > "A man's feet should be planted in his country, but his eyes should survey the world." > -- George Santayana (1863 - 1952) > > From David.Hill at Oracle.com Wed Jan 28 22:41:33 2015 From: David.Hill at Oracle.com (David Hill) Date: Wed, 28 Jan 2015 17:41:33 -0500 Subject: iMX6Q graphics performance In-Reply-To: References: <54BCC3DE.7010703@indsp.com> <54BE9651.7000307@Oracle.com> <54BF39C4.2090807@indsp.com> <54C7D28D.2020607@Oracle.com> <54C88B10.4080106@indsp.com> <54C912BA.8010007@Oracle.com> <54C95CA5.6080308@Oracle.com> Message-ID: <54C9659D.4000906@Oracle.com> On 1/28/15, 5:32 PM, Mike wrote: > Thanks so much guys! > Last Question is Which boards from BoundaryDevices have you tried with Javafx? I see they have a new board too. > This is very helpful information and will save us a lot of time. We are after Top Graphics Performance in Embedded. > From BoundaryDev I have only tried the rather ancient BD-SL-i.MX6, but have no reason to believe that the newer boards will not work. So much depends on your application and what it is trying to do. Some apps will do better with a faster processor (the BD devices are 1GHz, and the U3 is 1.3 I think), some are dependent on the GPU, some on memory speed and availability..... As I mentioned we light up 2 cores easily - so a single core CPU *will* be slower to some extent compared to a dual (at the same speed). Dave > Mike > > > On Wed, Jan 28, 2015 at 2:03 PM, David Hill > wrote: > > On 1/28/15, 3:44 PM, Mike wrote: >> What is your Favorite Embedded board if you got something right now? Odroid U3? or something else. I guess >> the Odroid U3 is availabe in Early Feb again at 179.00 US. >> http://www.hardkernel.com/main/products/prdt_info.php?g_code=G140448267127 > > My current favorite is the BoundaryDevices - partly because they do an awesome job of building a distro with the drivers I needed. > > There are only a small number of boards that provide a distro with the required accelerated drivers, and very few of those support direct to framebuffer rendering. > > The U3 is a snazzy board at a great price, and you can get accelerated rendering in X11. Our focus was to take X11 out of the loop for resource and other considerations - rendering direct to the framebuffer. But... I never did get an accelerated direct to framebuffer working for the U3 (and the Mali GPU). The ARM guys say it can be done, but it needs to be part of the platform port. > > OpenJFX can work with the X11 on the U3, but there are places, particularly with the touch and key support where the fit and finish is not very good. It was good enough for Jasper to demo though :-) > > Dave > >> >> On Wed, Jan 28, 2015 at 11:56 AM, Jasper Potts > wrote: >> >> We were getting good performance with 1080p for JavaOne keynote Car demo last year. Though not as good as Odroid U3 >> >> Jasper >> >> Sent from my iPhone >> >> > On Jan 28, 2015, at 8:47 AM, David Hill > wrote: >> > >> >> On 1/28/15, 2:09 AM, Prasant Jalan wrote: >> >> Few more questions about your Boundary Devices iMX6 Quad: >> >> - Amount of RAM/memory in your iMX6 system? >> >> - iMX6 Single Core Clock speed (0.8 GHz, 1 GHz or 1.2 GHz) >> >> - Which javaFX version did you use to get the above measurements (if you recollect)? >> > >> > I am using: http://boundarydevices.com/product/sabre-lite-imx6-sbc/ >> > >> > Specs are on the page. It is a Quad, so 4 cores @ 1GHz, 1GB memory. >> > >> > OS is a Ubuntu base distro, provided by BoundaryDevices, though I have a similar setup using Yocto that I have not been able to see any FX differences. >> > >> > ubuntu at oracle:~$ cat /proc/cpuinfo >> > processor : 0 >> > model name : ARMv7 Processor rev 10 (v7l) >> > BogoMIPS : 790.52 >> > >> > My monitor is connected with HDMI, 720P. Note that 1080p will likely be slower - more data to move even with a GPU. >> > >> > Using JDK 8u6 + OpenJFX build (which is my development setup). There are some improvements that are present in OpenJFX that are not in 8u6, and that certainly might affect performance. The process to build OpenJFX is here. >> > >> > For a simple JFX command, it is unlikely that we will require more than 2 CPU cores. One thread for the application, and another for the repainter. A more complex application with worker thread might light up more cores. >> > >> > Using the top command (then hitting "1" to enable the Core usage display), I see my Industrial app using one to two cores like this: >> > >> > %Cpu0 : 22.4 us, 2.0 sy, 0.0 ni, 75.5 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st >> > %Cpu1 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st >> > %Cpu2 : 0.3 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st >> > %Cpu3 : 66.8 us, 4.3 sy, 0.0 ni, 28.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st >> > >> > Occasionally just one core like this, probably when we are computing a change in the Scene. >> > >> > %Cpu0 : 8.0 us, 1.3 sy, 0.0 ni, 90.6 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st >> > %Cpu1 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st >> > %Cpu2 : 83.8 us, 2.6 sy, 0.0 ni, 13.5 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st >> > %Cpu3 : 0.7 us, 0.0 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st >> > >> > and of course occasionally 3 cores - I expect that is when top is running :-) >> > >> > Dave >> > >> > >> > -- >> > David Hill >> > Java Embedded Development >> > >> > "A man's feet should be planted in his country, but his eyes should survey the world." >> > -- George Santayana (1863 - 1952) >> > >> >> > > > -- > David Hill > Java Embedded Development > > "A man's feet should be planted in his country, but his eyes should survey the world." > -- George Santayana (1863 - 1952) > > -- David Hill Java Embedded Development "A man's feet should be planted in his country, but his eyes should survey the world." -- George Santayana (1863 - 1952) From philip.race at oracle.com Thu Jan 29 04:53:02 2015 From: philip.race at oracle.com (Phil Race) Date: Wed, 28 Jan 2015 20:53:02 -0800 Subject: custom controls: printing In-Reply-To: <54C88022.5050304@tbee.org> References: <54C8288F.1070101@tbee.org> <54C83ECD.3040603@oracle.com> <54C88022.5050304@tbee.org> Message-ID: <54C9BCAE.9000604@oracle.com> That example is not great as it picked the one node type that knows how to do something special with printing and completely overlooks it. The print(Node) method it provides can print any node type but it is scaling it to fit on a single side of paper. That's not ideal for a huge spreadsheet/table as you won't be able to read the output without a microscope. I was pointing to the method on webengine that you mention last below as the one you should use and the example does not use that anywhere. To get proper pagination you need to explicitly call the WebEngine.print(PrinterJob) method -phil. On 1/27/15 10:22 PM, Tom Eugelink wrote: > Ok, so looking at some examples like > http://java.dzone.com/articles/introduction-example-javafx-8 > where PrintJob is let lose on a node, JavaFX's PrintJob will either > use the screen rendering or -if present- call: public void > print(PrinterJob job) > > Correct? > > Tom > > > > On 28-1-2015 02:43, Phil Race wrote: >> On 1/27/15 4:08 PM, Tom Eugelink wrote: >>> Do I need to do something special to support printing of custom >>> controls? The use case is that on screen a spreadsheet can be shown >>> in a scrollpane, but when printing the whole spreadsheet should be >>> printed. >> Being a 'custom' control doesn't really make a difference here. >> The same would apply if you wanted to print one of the built-in controls >> that is in a scroll pane or otherwise not likely to fit on a page. >> Spreadsheets, like TableView, TextArea and the like will need >> to have their data laid out for the printer by the application. >> In practice this means starting with the data contained in >> the spreadsheet and iterating over it printing as much as fits >> on each page in what ever way you want. >> I am sure that something that can handle this this would >> make a nice add-on to to the core API but it was not something >> that was considered appropriate to be part of FX core. >> We expected reporting packages to pop up from 3rd parties >> The exception to this is HtmlEditor / WebEngine where you >> cannot reasonably expect the application or such a package >> to know how to properly print the data (HTML and other web content) >> Hence that has a method to print its content to a PrinterJob >> http://docs.oracle.com/javase/8/javafx/api/javafx/scene/web/WebEngine.html#print-javafx.print.PrinterJob- >> >> So one possibility for you is to throw your data into HTML table >> syntax, load >> it into a web node and print that. >> >> -phil. > From tbee at tbee.org Thu Jan 29 06:23:45 2015 From: tbee at tbee.org (Tom Eugelink) Date: Thu, 29 Jan 2015 07:23:45 +0100 Subject: custom controls: printing In-Reply-To: <54C9BCAE.9000604@oracle.com> References: <54C8288F.1070101@tbee.org> <54C83ECD.3040603@oracle.com> <54C88022.5050304@tbee.org> <54C9BCAE.9000604@oracle.com> Message-ID: <54C9D1F1.5070203@tbee.org> Ok, I see my question is not quite clear: I'm not looking for how to print, I am trying to figure out how to properly implement printing on a custom control, more specifically JFxtras' Agenda. Agenda has the same problem as the more recognizable usecase of a spreadsheet: it uses a scrollpane in its skin, so when taking a screenshot this scrollpane limits what is captured, but when printing -like a spreadsheet- I need all the data. So first I was trying to grasp how printing in JavaFX works conceptually, but from what I'm decuding so far this is very limited and basically no more that screen capturing. Correct? Tom On 29-1-2015 05:53, Phil Race wrote: > That example is not great as it picked the one node type that knows how to do > something special with printing and completely overlooks it. > > The print(Node) method it provides can print any node type but it is scaling > it to fit on a single side of paper. That's not ideal for a huge spreadsheet/table > as you won't be able to read the output without a microscope. > > I was pointing to the method on webengine that you mention last below > as the one you should use and the example does not use that anywhere. > > To get proper pagination you need to explicitly call the WebEngine.print(PrinterJob) method > > -phil. > > > On 1/27/15 10:22 PM, Tom Eugelink wrote: >> Ok, so looking at some examples like http://java.dzone.com/articles/introduction-example-javafx-8 >> where PrintJob is let lose on a node, JavaFX's PrintJob will either use the screen rendering or -if present- call: public void print(PrinterJob job) >> >> Correct? >> >> Tom >> >> >> >> On 28-1-2015 02:43, Phil Race wrote: >>> On 1/27/15 4:08 PM, Tom Eugelink wrote: >>>> Do I need to do something special to support printing of custom controls? The use case is that on screen a spreadsheet can be shown in a scrollpane, but when printing the whole spreadsheet should be printed. >>> Being a 'custom' control doesn't really make a difference here. >>> The same would apply if you wanted to print one of the built-in controls >>> that is in a scroll pane or otherwise not likely to fit on a page. >>> Spreadsheets, like TableView, TextArea and the like will need >>> to have their data laid out for the printer by the application. >>> In practice this means starting with the data contained in >>> the spreadsheet and iterating over it printing as much as fits >>> on each page in what ever way you want. >>> I am sure that something that can handle this this would >>> make a nice add-on to to the core API but it was not something >>> that was considered appropriate to be part of FX core. >>> We expected reporting packages to pop up from 3rd parties >>> The exception to this is HtmlEditor / WebEngine where you >>> cannot reasonably expect the application or such a package >>> to know how to properly print the data (HTML and other web content) >>> Hence that has a method to print its content to a PrinterJob >>> http://docs.oracle.com/javase/8/javafx/api/javafx/scene/web/WebEngine.html#print-javafx.print.PrinterJob- >>> So one possibility for you is to throw your data into HTML table syntax, load >>> it into a web node and print that. >>> >>> -phil. >> > From philip.race at oracle.com Thu Jan 29 07:01:14 2015 From: philip.race at oracle.com (Phil Race) Date: Wed, 28 Jan 2015 23:01:14 -0800 Subject: custom controls: printing In-Reply-To: <54C9D1F1.5070203@tbee.org> References: <54C8288F.1070101@tbee.org> <54C83ECD.3040603@oracle.com> <54C88022.5050304@tbee.org> <54C9BCAE.9000604@oracle.com> <54C9D1F1.5070203@tbee.org> Message-ID: <54C9DABA.3030901@oracle.com> On 1/28/15 10:23 PM, Tom Eugelink wrote: > Ok, I see my question is not quite clear: I'm not looking for how to > print, I am trying to figure out how to properly implement printing on > a custom control, more specifically JFxtras' Agenda. Agenda has the > same problem as the more recognizable usecase of a spreadsheet: it > uses a scrollpane in its skin, so when taking a screenshot this > scrollpane limits what is captured, but when printing -like a > spreadsheet- I need all the data. > > So first I was trying to grasp how printing in JavaFX works > conceptually, but from what I'm decuding so far this is very limited > and basically no more that screen capturing. Correct? You can draw anything you like to the printer. It doesn't have to ever be displayed on the screen. But any time you (eg) go beyond primitives where you can define and control the extent and go into the realm of content driven nodes, you need to deal with pagination and at that point you need to go back to the data you want to display and format it for the printer. Printing the list of items in a ComboBox is very different than printing/draw the ComboBox control. If the author of a control provides a means to do that for you (like HtmlEditor does) then it becomes easy. If they don't you'll need to do it yourself. If you create an Agenda that is never displayed but has the same data and set its size so that it can display all the data, I expect it should be possible to scale it so that it fits on one page like the example you referenced but once you have 500 items in your agenda, someone is going to have to handle the magic that splits that across pages and there's no way the core printing API could know how to do that for a control. All it sees are Nodes .. -phil. > > Tom > > > > On 29-1-2015 05:53, Phil Race wrote: >> That example is not great as it picked the one node type that knows >> how to do >> something special with printing and completely overlooks it. >> >> The print(Node) method it provides can print any node type but it is >> scaling >> it to fit on a single side of paper. That's not ideal for a huge >> spreadsheet/table >> as you won't be able to read the output without a microscope. >> >> I was pointing to the method on webengine that you mention last below >> as the one you should use and the example does not use that anywhere. >> >> To get proper pagination you need to explicitly call the >> WebEngine.print(PrinterJob) method >> >> -phil. >> >> >> On 1/27/15 10:22 PM, Tom Eugelink wrote: >>> Ok, so looking at some examples like >>> http://java.dzone.com/articles/introduction-example-javafx-8 >>> where PrintJob is let lose on a node, JavaFX's PrintJob will either >>> use the screen rendering or -if present- call: public void >>> print(PrinterJob job) >>> >>> Correct? >>> >>> Tom >>> >>> >>> >>> On 28-1-2015 02:43, Phil Race wrote: >>>> On 1/27/15 4:08 PM, Tom Eugelink wrote: >>>>> Do I need to do something special to support printing of custom >>>>> controls? The use case is that on screen a spreadsheet can be >>>>> shown in a scrollpane, but when printing the whole spreadsheet >>>>> should be printed. >>>> Being a 'custom' control doesn't really make a difference here. >>>> The same would apply if you wanted to print one of the built-in >>>> controls >>>> that is in a scroll pane or otherwise not likely to fit on a page. >>>> Spreadsheets, like TableView, TextArea and the like will need >>>> to have their data laid out for the printer by the application. >>>> In practice this means starting with the data contained in >>>> the spreadsheet and iterating over it printing as much as fits >>>> on each page in what ever way you want. >>>> I am sure that something that can handle this this would >>>> make a nice add-on to to the core API but it was not something >>>> that was considered appropriate to be part of FX core. >>>> We expected reporting packages to pop up from 3rd parties >>>> The exception to this is HtmlEditor / WebEngine where you >>>> cannot reasonably expect the application or such a package >>>> to know how to properly print the data (HTML and other web content) >>>> Hence that has a method to print its content to a PrinterJob >>>> http://docs.oracle.com/javase/8/javafx/api/javafx/scene/web/WebEngine.html#print-javafx.print.PrinterJob- >>>> >>>> So one possibility for you is to throw your data into HTML table >>>> syntax, load >>>> it into a web node and print that. >>>> >>>> -phil. >>> >> > From tbee at tbee.org Thu Jan 29 07:38:54 2015 From: tbee at tbee.org (Tom Eugelink) Date: Thu, 29 Jan 2015 08:38:54 +0100 Subject: custom controls: printing In-Reply-To: <54C9DABA.3030901@oracle.com> References: <54C8288F.1070101@tbee.org> <54C83ECD.3040603@oracle.com> <54C88022.5050304@tbee.org> <54C9BCAE.9000604@oracle.com> <54C9D1F1.5070203@tbee.org> <54C9DABA.3030901@oracle.com> Message-ID: <54C9E38E.3030405@tbee.org> On 29-1-2015 08:01, Phil Race wrote: > > If you create an Agenda that is never displayed but has the same > data and set its size so that it can display all the data, I expect > it should be possible to scale it so that it fits on one page like > the example you referenced but once you have 500 items in > your agenda, someone is going to have to handle the magic > that splits that across pages and there's no way the core printing API > could know how to do that for a control. All it sees are Nodes .. Ok. I get that. So bottom line is that I need to implement print(PrintJob), similar to webview's, to get rid of the scrollpane. Agenda looks like Google Calendar, so it is more complex than a list. And that for each skin. Ok. Tom From krueger at lesspain.de Thu Jan 29 10:11:59 2015 From: krueger at lesspain.de (=?UTF-8?Q?Robert_Kr=C3=BCger?=) Date: Thu, 29 Jan 2015 11:11:59 +0100 Subject: TableView API, no lazy retrieval of visible cell content possible? In-Reply-To: References: <54C8DD4D.3090807@media-interactive.de> <54C908FA.6040108@media-interactive.de> Message-ID: I have filed https://javafx-jira.kenai.com/browse/RT-39917 for this in Jira. On Wed, Jan 28, 2015 at 5:57 PM, Robert Kr?ger wrote: > > > On Wed, Jan 28, 2015 at 5:55 PM, Robert Kr?ger > wrote: > >> OK, I investigated some more. >> >> What is weird is that the same table cell instance (I checked the Object >> hashcode) is set to different model values while it is still visible, i.e. >> I get sequences like this in the log, just when I display the table: >> >> Updating cell 673139775 from null with Image reference for Row 0 >> Adding Row 0 to image load queue >> Updating cell 673139775 from Image reference for Row 0 with Image >> reference for Row 1 >> Adding Row 1 to image load queue >> Dequeueing image for Row 0 >> Updating cell 673139775 from Image reference for Row 1 with Image >> reference for Row 2 >> Adding Row 2 to image load queue >> Dequeueing image for Row 1 >> Updating cell 673139775 from Image reference for Row 2 with Image >> reference for Row 3 >> Adding Row 3 to image load queue >> Dequeueing image for Row 2 >> Updating cell 673139775 from Image reference for Row 3 with Image >> reference for Row 4 >> Adding Row 4 to image load queue >> Dequeueing image for Row 3 >> Updating cell 673139775 from Image reference for Row 4 with Image >> reference for Row 5 >> Adding Row 5 to image load queue >> Dequeueing image for Row 4 >> Updating cell 673139775 from Image reference for Row 5 with Image >> reference for Row 6 >> Adding Row 6 to image load queue >> Dequeueing image for Row 5 >> >> This means that I cannot rely on the same table cell to be used for >> displaying the content while its row is visible (+ a bit of buffered rows >> around the visible area) and that means the whole approach will not work. >> >> It would really be great if someone from Oracle could comment here. None >> of this behaviour is documented in the API so it seems that using this is >> really relying on implementation details and I have found any other options >> to achieve that. The behaviour of the application as it is >> > > this should be "I have _not_ found ..." > > >> now is that randomly some images are never loaded, because they are >> quickly removed from the load queue because the cell's content is >> overwritten while it is still being displayed. >> >> >> -- Robert Kr?ger Managing Partner Lesspain GmbH & Co. KG www.lesspain-software.com From johan at lodgon.com Thu Jan 29 20:03:39 2015 From: johan at lodgon.com (Johan Vos) Date: Thu, 29 Jan 2015 21:03:39 +0100 Subject: JavaFX and JDK for ARM In-Reply-To: <54C95BF5.6090705@oracle.com> References: <54C95BF5.6090705@oracle.com> Message-ID: Hi Kevin, Thanks for the update. I think the positive message is that Oracle is moving JavaFX forward. I also agree that supporting JavaFX on ARM involves more than just running HelloWorld on the Raspberry Pi. Having said that, I feel comfortable enough to help out with the ARM port. The wiki is a great resource, and building the SDK was really easy. The fact that most code in OpenJFX is shared across all platforms is really great, it enabled the Android and iOS ports. Building and hosting the ARM ports can be done in javafxports.org -- that site will contain an important update soon as well. I think it is important to have as much (ported) code as possible still on OpenJFX, provided it is of the same quality as the current code and it passes the reviews. - Johan 2015-01-28 23:00 GMT+01:00 Kevin Rushforth : > Many of you have been asking about the status of JavaFX in Linux/ARM > embedded platforms. Starting with 8u33, JavaFX has been removed from both > Oracle JDK for ARM and Oracle Java SE Embedded. [1] > > This is a resource trade off within Oracle. Included in that difficult > trade off decision was the ongoing investment needed to properly support FX > in a world where so much the hardware is not standardized -- it really is > difficult to have enough hardware and testing resources committed to > support FX on ARM. It is important to understand that when we say support, > we are not talking about just "running" on a device like the Raspberry PI > -- but providing support for paying customers that are almost certainly > going to be using hardware that is customized for their embedded product. > > This does not mean that FX is going away on other platforms, and hopefully > does not mean we will be disappearing from ARM completely. > > The core JavaFX team will continue working on the ARM port as resources > permit, hopefully with involvement of members of the OpenJFX community. We > have continued to demonstrate this commitment with the moving all of the > JavaFX sources to OpenJFX, and maintaining an up to date OpenJFX Wiki which > includes detailed articles on building for ARM. > > We will continue to do what we can to make it easier to build and overlay > OpenJFX on top of the ARM JDKs. > > We hope to arrange for a external build of OpenJFX for ARM so that more > people will be able to easily obtain a current build. > > Most of the FX source code is shared across all ports, and we will > continue to do regular internal builds of linux-armv6hf to ensure that it > runs. We will continue to maintain the Monocle glass platform in any case, > as we use it for some of our dektop unit tests. > > We have received a lot of help from the community -- particularly for iOS > and Android. Now we hope we can work together to keep Linux ARM viable and > interesting. > > -- Kevin Rushforth and David Hill > > > [1] For more information on the decision, I refer you to the following > statement from Dalibor Topic and Donald Smith that Dalibor posted to the > Raspberry Pi forum. > > http://www.raspberrypi.org/forums/viewtopic.php?f=81&t= > 97367&p=678791#p678791 > > ------------------------------------------------------------ > ------------------------------------------- > Apologies for the terse release note regarding this change to the Oracle > JDK for ARM and Oracle Java SE Embedded products. Clearly this change > should have come with more context. > > Starting with Oracle JDK for ARM 8u33 and Oracle Java SE Embedded 8u33, > JavaFX Embedded, a port of JavaFX 8 which was only available on Linux/ARM > platforms, is not supported, and has been removed from these downloads. > > The complete source code for JavaFX Embedded has been contributed to the > OpenJFX open source project in the OpenJDK community under the GPL v2 with > Classpath exception license. JavaFX development has been done in the > OpenJDK open source community for some time now, enabling JavaFX developers > to contribute back their changes to the source code, and produce their own > OpenJFX binaries for their target platforms under their own responsibility. > > JavaFX continues to be provided as a fully supported part of the Oracle > JDK 8 product on x86 platforms (Windows, Linux, Mac). > ------------------------------------------------------------ > ------------------------------------------- > > From derijcke.erik at gmail.com Thu Jan 29 20:47:55 2015 From: derijcke.erik at gmail.com (Erik De Rijcke) Date: Thu, 29 Jan 2015 21:47:55 +0100 Subject: Wayland support for JavaFX Message-ID: Hi all, I'm looking at running javafx on wayland ( http://wayland.freedesktop.org ). First of all, I was wondering if anyone else knows of any attempts to avoid duplicate work, as for now google turns op empty. Secondly, I'm looking for sources on how to write a new javafx platform. Google points me to monocle and it's *Platform implementations. Are there other sources of documentation or pointers or 'must-known's? I already made wayland java bindings ( https://github.com/Zubnix/wayland-java-bindings ) and wrote a simple wayland compositor ( https://github.com/Zubnix/westmalle ) all in pure Java. So the wayland part is already covered. Thanks in advance, I'll update this post with my progressions. Erik From David.Hill at Oracle.com Thu Jan 29 21:02:44 2015 From: David.Hill at Oracle.com (David Hill) Date: Thu, 29 Jan 2015 16:02:44 -0500 Subject: Wayland support for JavaFX In-Reply-To: References: Message-ID: <54CA9FF4.1020701@Oracle.com> On 1/29/15, 3:47 PM, Erik De Rijcke wrote: > Hi all, > > I'm looking at running javafx on wayland ( http://wayland.freedesktop.org > ). First of all, I was wondering if anyone else knows of any attempts to > avoid duplicate work, as for now google turns op empty. > > Secondly, I'm looking for sources on how to write a new javafx platform. > Google points me to monocle and it's *Platform implementations. Are there > other sources of documentation or pointers or 'must-known's? > > I already made wayland java bindings ( > https://github.com/Zubnix/wayland-java-bindings ) and wrote a simple > wayland compositor ( https://github.com/Zubnix/westmalle ) all in pure > Java. So the wayland part is already covered. > > Thanks in advance, I'll update this post with my progressions. I am not aware of anyone doing a wayland port yet. It certainly should be a reasonable thing to do, using Glass/Monocle, we already support a similar setup with EGL->Framebuffer and Software -> Framebuffer. Glancing at your wayland-java-bindings I see mention of EGL :-) Note however, Monocle does its own "windows" virtually. Wayland was designed as a composition as well as a framebuffer engine. Monocle will want to create a mono native window which acts as our display, that we then render onto. Note that Monocle supports a number of platforms and rendering paths, starting in PlatformFactory. Which hardware are you going to try this on ? Dave > > Erik -- David Hill Java Embedded Development "A man's feet should be planted in his country, but his eyes should survey the world." -- George Santayana (1863 - 1952) From derijcke.erik at gmail.com Thu Jan 29 21:35:44 2015 From: derijcke.erik at gmail.com (Erik De Rijcke) Date: Thu, 29 Jan 2015 22:35:44 +0100 Subject: Fwd: Wayland support for JavaFX In-Reply-To: References: <54CA9FF4.1020701@Oracle.com> Message-ID: ---------- Forwarded message ---------- From: Erik De Rijcke Date: Thu, Jan 29, 2015 at 10:35 PM Subject: Re: Wayland support for JavaFX To: David Hill I'll probably test it on the Weston (the Wayland reference compositor) and secretly also on my own compositor both running on my PC hardware. The thing is, Wayland clients don't really care what the hardware supports. The *real* egl context is set up in the compositor and with a little mesa trickery, is made available to the client. (see http://ppaalanen.blogspot.be/2012/03/what-does-egl-do-in-wayland-stack.html ). So the client doesn't need to know how to setup an egl context. If egl is unavailable or undesired, the client can/should be able to fall back to software rendering, which is simply done by filling a buffer with pixels and asking the compositor to dislay it. I'm having a look at the EGL->Framebuffer and Software -> Framebuffer and at first glance seems like a very easy thing to port to Wayland (that is, easy as easy goes in software development...). I'm not quite sure what you mean with the 'own virtual windows'. It sounds a bit like a use case for wayland's subsurface ( http://ppaalanen.blogspot.be/2013/11/sub-surfaces-now.html ) which afaik does exactly that. Erik On Thu, Jan 29, 2015 at 10:02 PM, David Hill wrote: > On 1/29/15, 3:47 PM, Erik De Rijcke wrote: > >> Hi all, >> >> I'm looking at running javafx on wayland ( http://wayland.freedesktop.org >> ). First of all, I was wondering if anyone else knows of any attempts to >> avoid duplicate work, as for now google turns op empty. >> >> Secondly, I'm looking for sources on how to write a new javafx platform. >> Google points me to monocle and it's *Platform implementations. Are there >> other sources of documentation or pointers or 'must-known's? >> >> I already made wayland java bindings ( >> https://github.com/Zubnix/wayland-java-bindings ) and wrote a simple >> wayland compositor ( https://github.com/Zubnix/westmalle ) all in pure >> Java. So the wayland part is already covered. >> >> Thanks in advance, I'll update this post with my progressions. >> > > I am not aware of anyone doing a wayland port yet. It certainly should be > a reasonable thing to do, using Glass/Monocle, we already support a similar > setup with EGL->Framebuffer and Software -> Framebuffer. > > Glancing at your wayland-java-bindings I see mention of EGL :-) > > Note however, Monocle does its own "windows" virtually. Wayland was > designed as a composition as well as a framebuffer engine. Monocle will > want to create a mono native window which acts as our display, that we then > render onto. > > Note that Monocle supports a number of platforms and rendering paths, > starting in PlatformFactory. > > Which hardware are you going to try this on ? > > Dave > > > >> Erik >> > > > -- > David Hill > Java Embedded Development > > "A man's feet should be planted in his country, but his eyes should survey > the world." > -- George Santayana (1863 - 1952) > > From vadim.pakhnushev at oracle.com Fri Jan 30 14:38:38 2015 From: vadim.pakhnushev at oracle.com (Vadim Pakhnushev) Date: Fri, 30 Jan 2015 17:38:38 +0300 Subject: In(Sanity) Testing Mondays Message-ID: <54CB976E.1080508@oracle.com> Reminder, Monday is our weekly sanity testing. You can find your testing assignment at: https://wiki.openjdk.java.net/display/OpenJFX/Sanity+Testing Also please remember that the repo will be locked from 1am PST until 1pm PST. Happy testing! Thanks, Vadim From derijcke.erik at gmail.com Fri Jan 30 21:23:20 2015 From: derijcke.erik at gmail.com (Erik De Rijcke) Date: Fri, 30 Jan 2015 22:23:20 +0100 Subject: Wayland support for JavaFX In-Reply-To: <54CAAAEE.1080906@Oracle.com> References: <54CA9FF4.1020701@Oracle.com> <54CAAAEE.1080906@Oracle.com> Message-ID: Innitial (currently nont working) code lives at: https://github.com/Zubnix/wayland-javafx I do have a few questions: - How are you supposed to handle events coming from the display system itself? For example, I don't see any X events being handled. How/where should that be done? - How does the client rendering loop works? Like in X, in wayland you have to "flush" queued op requests to the compositor. How/where should that be done? Erik On Thu, Jan 29, 2015 at 10:49 PM, David Hill wrote: > On 1/29/15, 4:35 PM, Erik De Rijcke wrote: > > I'll probably test it on the Weston (the Wayland reference compositor) and > secretly also on my own compositor both running on my PC hardware. The > thing is, Wayland clients don't really care what the hardware supports. The > *real* egl context is set up in the compositor and with a little mesa > trickery, is made available to the client. (see > http://ppaalanen.blogspot.be/2012/03/what-does-egl-do-in-wayland-stack.html > ). So the client doesn't need to know how to setup an egl context. If egl > is unavailable or undesired, the client can/should be able to fall back to > software rendering, which is simply done by filling a buffer with pixels > and asking the compositor to dislay it. > > I'm having a look at the EGL->Framebuffer and Software -> Framebuffer > and at first glance seems like a very easy thing to port to Wayland (that > is, easy as easy goes in software development...). I'm not quite sure what > you mean with the 'own virtual windows'. It sounds a bit like a use case > for wayland's subsurface ( > http://ppaalanen.blogspot.be/2013/11/sub-surfaces-now.html ) which afaik > does exactly that. > > Mesa maybe the tricky part. The software renderer has demonstrated > shader compatability issues in the past with JFX. These are shaders that > are happy across a range of other devices. > > It still might be interesting to try it with the software -> framebuffer > path. > > Good luck and let us appraised. > > Dave > > Erik > > On Thu, Jan 29, 2015 at 10:02 PM, David Hill > wrote: > >> On 1/29/15, 3:47 PM, Erik De Rijcke wrote: >> >>> Hi all, >>> >>> I'm looking at running javafx on wayland ( >>> http://wayland.freedesktop.org >>> ). First of all, I was wondering if anyone else knows of any attempts to >>> avoid duplicate work, as for now google turns op empty. >>> >>> Secondly, I'm looking for sources on how to write a new javafx platform. >>> Google points me to monocle and it's *Platform implementations. Are there >>> other sources of documentation or pointers or 'must-known's? >>> >>> I already made wayland java bindings ( >>> https://github.com/Zubnix/wayland-java-bindings ) and wrote a simple >>> wayland compositor ( https://github.com/Zubnix/westmalle ) all in pure >>> Java. So the wayland part is already covered. >>> >>> Thanks in advance, I'll update this post with my progressions. >>> >> >> I am not aware of anyone doing a wayland port yet. It certainly should >> be a reasonable thing to do, using Glass/Monocle, we already support a >> similar setup with EGL->Framebuffer and Software -> Framebuffer. >> >> Glancing at your wayland-java-bindings I see mention of EGL :-) >> >> Note however, Monocle does its own "windows" virtually. Wayland was >> designed as a composition as well as a framebuffer engine. Monocle will >> want to create a mono native window which acts as our display, that we then >> render onto. >> >> Note that Monocle supports a number of platforms and rendering paths, >> starting in PlatformFactory. >> >> Which hardware are you going to try this on ? >> >> Dave >> >> >> >>> Erik >>> >> >> >> -- >> David Hill >> Java Embedded Development >> >> "A man's feet should be planted in his country, but his eyes should >> survey the world." >> -- George Santayana (1863 - 1952) >> >> > > > -- > David Hill > Java Embedded Development > > "A man's feet should be planted in his country, but his eyes should survey the world." > -- George Santayana (1863 - 1952) > >