From daniel.armbrust.list at gmail.com Tue Jan 1 03:54:14 2019 From: daniel.armbrust.list at gmail.com (Dan Armbrust) Date: Mon, 31 Dec 2018 21:54:14 -0600 Subject: Problem running JavaFX in maven plugins Message-ID: Hi, I'm trying to migrate a codebase to JDK 11 / OpenJFX, and have run into an issue I didn't have under JDK 8. We have a complex maven build process - parts of which include building our own maven plugins, and then executing those plugins in a different portion of the build. Maven uses isolated Plugin Classloaders for each plugin execution: https://maven.apache.org/guides/mini/guide-maven-classloading.html When my plugin executes, its going down a path that needs to start up the JavaFX subsystem - mostly to get support for tasks and such (we are actually building headless, with a hack of a HeadlessToolkit shimmed in to make JavaFX actually work headless) but - it would appear that because some other class loader in my build process already hit the JavaFX startup once... I fail on a native library load: Loading library glass from resource failed: java.lang.UnsatisfiedLinkError: Native Library /home/darmbrust/.openjfx/cache/11/libglass.so already loaded in another classloader java.lang.UnsatisfiedLinkError: Native Library /home/darmbrust/.openjfx/cache/11/libglass.so already loaded in another classloader ??????? at java.base/java.lang.ClassLoader$NativeLibrary.loadLibrary(ClassLoader.java:2456) ??????? at java.base/java.lang.ClassLoader.loadLibrary0(ClassLoader.java:2684) ??????? at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2617) ??????? at java.base/java.lang.Runtime.load0(Runtime.java:767) ??????? at java.base/java.lang.System.load(System.java:1831) ??????? at com.sun.glass.utils.NativeLibLoader.installLibraryFromResource(NativeLibLoader.java:205) ??????? at com.sun.glass.utils.NativeLibLoader.loadLibraryFromResource(NativeLibLoader.java:185) ??????? at com.sun.glass.utils.NativeLibLoader.loadLibraryInternal(NativeLibLoader.java:157) ??????? at com.sun.glass.utils.NativeLibLoader.loadLibrary(NativeLibLoader.java:52) ??????? at com.sun.glass.ui.Application.loadNativeLibrary(Application.java:110) ??????? at com.sun.glass.ui.Application.loadNativeLibrary(Application.java:118) ??????? at com.sun.glass.ui.gtk.GtkApplication.lambda$static$2(GtkApplication.java:109) ??????? at java.base/java.security.AccessController.doPrivileged(Native Method) ??????? at com.sun.glass.ui.gtk.GtkApplication.(GtkApplication.java:108) ??????? at com.sun.glass.ui.gtk.GtkPlatformFactory.createApplication(GtkPlatformFactory.java:41) ??????? at com.sun.glass.ui.Application.run(Application.java:144) ??????? at com.sun.javafx.tk.quantum.QuantumToolkit.startup(QuantumToolkit.java:258) ??????? at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:269) Any suggestions on how to deal with this? I'm running on linux with: openjdk 11.0.1 2018-10-16 OpenJDK Runtime Environment 18.9 (build 11.0.1+13) OpenJDK 64-Bit Server VM 18.9 (build 11.0.1+13, mixed mode) I'm going to try this hack and see if it works: https://stackoverflow.com/questions/28369180/multiple-maven-plugin-dependencies-native-library-already-loaded-in-another-cl But it would be nice to have a proper solution for this. Also, on a completely unrelated note, where the heck is the JavaFX bug tracker these days?? There seems to be no end to confusing information out there about where the bug tracker is, multiple github mirrors have trackers, and the place that should clarify this says nothing: https://openjfx.io/ Multiple Oracle pages still point to the Jira, many other pages point to the bugreport.java.com, others point to https://bugs.openjdk.java.net/ but that shows no javafx project. Is this one official now? https://github.com/javafxports/openjdk-jfx/issues Thanks, Dan From mike.ennen at gmail.com Tue Jan 1 04:36:34 2019 From: mike.ennen at gmail.com (Michael Ennen) Date: Mon, 31 Dec 2018 21:36:34 -0700 Subject: Problem running JavaFX in maven plugins In-Reply-To: References: Message-ID: The official issue tracker for JavaFX is https://bugs.openjdk.java.net. The JavaFX project is a "Component" of OpenJDK. You can see the JavaFX bugs from this URL: https://bugs.openjdk.java.net/browse/JDK-8215964?jql=project%20%3D%20JDK%20AND%20component%20%3D%20javafx The GitHub issue tracker is a useful addition to the Jira (at least in my opinion) for talking about issues that people want to (potentially) create a pull request (on the Github) for. Cheers, Michael Ennen On Mon, Dec 31, 2018 at 8:54 PM Dan Armbrust wrote: > Hi, > > I'm trying to migrate a codebase to JDK 11 / OpenJFX, and have run into an > issue I didn't > have under JDK 8. > > We have a complex maven build process - parts of which include building > our own maven > plugins, and then executing those plugins in a different portion of the > build. > > Maven uses isolated Plugin Classloaders for each plugin execution: > https://maven.apache.org/guides/mini/guide-maven-classloading.html > > When my plugin executes, its going down a path that needs to start up the > JavaFX subsystem > - mostly to get support for tasks and such (we are actually building > headless, with a hack > of a HeadlessToolkit shimmed in to make JavaFX actually work headless) but > - it would > appear that because some other class loader in my build process already > hit the JavaFX > startup once... I fail on a native library load: > > Loading library glass from resource failed: > java.lang.UnsatisfiedLinkError: Native Library > /home/darmbrust/.openjfx/cache/11/libglass.so already loaded in another > classloader > java.lang.UnsatisfiedLinkError: Native Library > /home/darmbrust/.openjfx/cache/11/libglass.so already loaded in another > classloader > at > java.base/java.lang.ClassLoader$NativeLibrary.loadLibrary(ClassLoader.java:2456) > at > java.base/java.lang.ClassLoader.loadLibrary0(ClassLoader.java:2684) > at > java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2617) > at java.base/java.lang.Runtime.load0(Runtime.java:767) > at java.base/java.lang.System.load(System.java:1831) > at > > com.sun.glass.utils.NativeLibLoader.installLibraryFromResource(NativeLibLoader.java:205) > at > > com.sun.glass.utils.NativeLibLoader.loadLibraryFromResource(NativeLibLoader.java:185) > at > com.sun.glass.utils.NativeLibLoader.loadLibraryInternal(NativeLibLoader.java:157) > at > com.sun.glass.utils.NativeLibLoader.loadLibrary(NativeLibLoader.java:52) > at > com.sun.glass.ui.Application.loadNativeLibrary(Application.java:110) > at > com.sun.glass.ui.Application.loadNativeLibrary(Application.java:118) > at > com.sun.glass.ui.gtk.GtkApplication.lambda$static$2(GtkApplication.java:109) > at java.base/java.security.AccessController.doPrivileged(Native > Method) > at > com.sun.glass.ui.gtk.GtkApplication.(GtkApplication.java:108) > at > > com.sun.glass.ui.gtk.GtkPlatformFactory.createApplication(GtkPlatformFactory.java:41) > at com.sun.glass.ui.Application.run(Application.java:144) > at > com.sun.javafx.tk.quantum.QuantumToolkit.startup(QuantumToolkit.java:258) > at > com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:269) > > Any suggestions on how to deal with this? > > I'm running on linux with: > openjdk 11.0.1 2018-10-16 > OpenJDK Runtime Environment 18.9 (build 11.0.1+13) > OpenJDK 64-Bit Server VM 18.9 (build 11.0.1+13, mixed mode) > > I'm going to try this hack and see if it works: > > https://stackoverflow.com/questions/28369180/multiple-maven-plugin-dependencies-native-library-already-loaded-in-another-cl > > But it would be nice to have a proper solution for this. > > Also, on a completely unrelated note, where the heck is the JavaFX bug > tracker these > days? There seems to be no end to confusing information out there about > where the bug > tracker is, multiple github mirrors have trackers, and the place that > should clarify this > says nothing: https://openjfx.io/ > > Multiple Oracle pages still point to the Jira, many other pages point to > the > bugreport.java.com, others point to https://bugs.openjdk.java.net/ but > that shows no > javafx project. > > Is this one official now? > https://github.com/javafxports/openjdk-jfx/issues > > > Thanks, > Dan > > From kevin.rushforth at oracle.com Wed Jan 2 21:43:31 2019 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Wed, 2 Jan 2019 13:43:31 -0800 Subject: [12] RFR: JDK-8214793: Update copyright header for files modified in 2018 Message-ID: Ambarish or Murali, Please review the following fix to bump the copyright year to 2018 for files modified last year, but not updated: https://bugs.openjdk.java.net/browse/JDK-8214793 http://cr.openjdk.java.net/~kcr/8214793/webrev/ Thanks. -- Kevin From youngty1997 at gmail.com Thu Jan 3 00:27:45 2019 From: youngty1997 at gmail.com (Ty Young) Date: Wed, 2 Jan 2019 18:27:45 -0600 Subject: JavaFX Content Rendering & Resizing and Font Bugs In Linux Message-ID: <41181d90-c5c4-e6d8-b120-90c6621c3443@gmail.com> (I'm too lazy to make different emails for every bug so I've just thrown them in a single email. Hopefully that isn't a big deal.) In my attempt to write a more proper responsive JavaFX UI, I've created a new JavaFX project which extensively uses DoubleBindings to force the min/max width/height of various components to their parent containing objects(HBox and VBox mainly) so that 1440p and 4k displays could be more easily supported. While it does allow for easier 1440p and 4k scaling, JavaFX itself seems to have /extremely/ horrible content rendering & resizing bugs to the point where the application becomes usable. For clarity, the applications uses buttons in a VBox which when clicked set a ScrollPane on the right side to whatever pane the button represents("About" for example) like a TabPane. This is so it can be scaled more easily to different resolutions. Multiple of the bugs can be observed by simply resizing the JavaFX window. When doing so, content will seemingly struggle to keep up with resizing events. As a result, white(or sometimes black) glitching can be seen wherever the window is being expanded and UI components will "jump" around. TableView's horizontal and vertical scrollbars will glitch out and show while the window is being resized even though it has plenty of room to display the contents. They sometimes even get stuck, requiring the user to resize the window for them to go away. If the window is resized or if the window is maximized and later unmaximized , any non visible content will not be resized and will require that the window be resized by the user. A horizontal scroll bar will be displayed and usable to scroll to the content that hasn't been adjusted to the new window size. Sometimes JavaFX will slowly resize the content in seemingly steps however it doesn't always do this. Thinking that this might be problems caused by extensive use of DoubleBinding, I launched SceneBuilder 10 which uses Oracle JDK 10. It has all of the same UI glitching that I've encountered in my JavaFX application at a lesser scale besides TableView since it doesn't use TableView. The degree of how badly the bugs happen seemingly depend on: ??? A. The app launch ??? B. The time the application is open ??? C. The max stretched width/height of the window In other words, it's possible to experience little UI glitching one app launch while using it after awhile but then relaunch it later with no code changed and get far more glitching. Another problem is a font bug revolving around making text bold. When attempting to make a label bold, the boldness is seemingly not being applied to some Label text. It might work on a few Labels in a certain part of the UI but completely refuse in other parts. Making things weirder is the disappearing boldness of Labels after setting a new Pane in the ScrollPane and switching back to a that specific pane. For example: on first click to the pane two labels will be bold as set in code. Switching to another pane and back results in the last bold label not being bold anymore. Switching to another pane again results in the first Label no longer being bold. All of these bugs make the application unusable(except the boldness bug). Is this all known? Are there any workarounds? P.S. To whoever is developing SceneBuilder, please add a minimum width/height to the stage. A user shouldn't be able to make resize the window to 1x5 or whatever the smallest window size is allowed by the OS. From kevin.rushforth at oracle.com Fri Jan 4 00:31:21 2019 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Thu, 3 Jan 2019 16:31:21 -0800 Subject: [12] RFR: 8200665: Ensemble: Update SyntaxHighlighter to version 4.0.1 Message-ID: <371fe481-0ba9-155f-9e2e-bdf4611c81a3@oracle.com> Hi Ajit or Ambarish, Please review the following to update the third-party SyntaxHighlighter utility (used by the Ensemble8 demo) to the latest version 4.0.1: https://bugs.openjdk.java.net/browse/JDK-8200665 http://cr.openjdk.java.net/~kcr/8200665/webrev.00/ Details are in the bug report. Thanks. -- Kevin From daniel.armbrust.list at gmail.com Fri Jan 4 06:28:41 2019 From: daniel.armbrust.list at gmail.com (Dan Armbrust) Date: Fri, 4 Jan 2019 00:28:41 -0600 Subject: Problem running JavaFX in maven plugins In-Reply-To: References: Message-ID: As a followup, the easiest workaround I found is this silly hack: ???????????????????? String s = System.getProperty("javafxHack"); ???????????????????? int i = 0; ???????????????????? if (!StringUtils.isBlank(s)) ???????????????????? { ??????????????????????? i = Integer.parseInt(s); ??????????????????????? i++; ???????????????????? } ???????????????????? System.setProperty("javafxHack", i + ""); ???????????????????? System.setProperty("javafx.version", "mavenHack" + i); Which I run before calling PlatformImpl.startup(); This way, each classloader that launches JavaFX gets its own copy of the dll. It would be nice if the JavaFX code itself handled the dll's better to not have this issue - this is a regression from JDK 8. But I do realize its probably a rare usecase... I run into it because I have multiple instantiations of a plugin that runs during a maven lifecycle that utilizes the tasks API, among other things. But this will also break for anyone that tries to use parts of JavaFX in a server like tomcat where classloaders are isolated. But that might not be a common issue either unless the very old feature request about JavaFX not supporting running Headless get fixed. I currently use our own hacked implementation of a ToolKit to inject when running headless, in order to make the tasks API work. Dan On 12/31/2018 09:54 PM, Dan Armbrust wrote: > Hi, > > I'm trying to migrate a codebase to JDK 11 / OpenJFX, and have run into an issue I > didn't have under JDK 8. > > We have a complex maven build process - parts of which include building our own maven > plugins, and then executing those plugins in a different portion of the build. > > Maven uses isolated Plugin Classloaders for each plugin execution: > https://maven.apache.org/guides/mini/guide-maven-classloading.html > > When my plugin executes, its going down a path that needs to start up the JavaFX > subsystem - mostly to get support for tasks and such (we are actually building headless, > with a hack of a HeadlessToolkit shimmed in to make JavaFX actually work headless) but - > it would appear that because some other class loader in my build process already hit the > JavaFX startup once... I fail on a native library load: > > Loading library glass from resource failed: java.lang.UnsatisfiedLinkError: Native > Library /home/darmbrust/.openjfx/cache/11/libglass.so already loaded in another classloader > java.lang.UnsatisfiedLinkError: Native Library > /home/darmbrust/.openjfx/cache/11/libglass.so already loaded in another classloader > ??????? at java.base/java.lang.ClassLoader$NativeLibrary.loadLibrary(ClassLoader.java:2456) > ??????? at java.base/java.lang.ClassLoader.loadLibrary0(ClassLoader.java:2684) > ??????? at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2617) > ??????? at java.base/java.lang.Runtime.load0(Runtime.java:767) > ??????? at java.base/java.lang.System.load(System.java:1831) > ??????? at > com.sun.glass.utils.NativeLibLoader.installLibraryFromResource(NativeLibLoader.java:205) > ??????? at > com.sun.glass.utils.NativeLibLoader.loadLibraryFromResource(NativeLibLoader.java:185) > ??????? at com.sun.glass.utils.NativeLibLoader.loadLibraryInternal(NativeLibLoader.java:157) > ??????? at com.sun.glass.utils.NativeLibLoader.loadLibrary(NativeLibLoader.java:52) > ??????? at com.sun.glass.ui.Application.loadNativeLibrary(Application.java:110) > ??????? at com.sun.glass.ui.Application.loadNativeLibrary(Application.java:118) > ??????? at com.sun.glass.ui.gtk.GtkApplication.lambda$static$2(GtkApplication.java:109) > ??????? at java.base/java.security.AccessController.doPrivileged(Native Method) > ??????? at com.sun.glass.ui.gtk.GtkApplication.(GtkApplication.java:108) > ??????? at > com.sun.glass.ui.gtk.GtkPlatformFactory.createApplication(GtkPlatformFactory.java:41) > ??????? at com.sun.glass.ui.Application.run(Application.java:144) > ??????? at com.sun.javafx.tk.quantum.QuantumToolkit.startup(QuantumToolkit.java:258) > ??????? at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:269) > > Any suggestions on how to deal with this? > > I'm running on linux with: > openjdk 11.0.1 2018-10-16 > OpenJDK Runtime Environment 18.9 (build 11.0.1+13) > OpenJDK 64-Bit Server VM 18.9 (build 11.0.1+13, mixed mode) > > I'm going to try this hack and see if it works: > https://stackoverflow.com/questions/28369180/multiple-maven-plugin-dependencies-native-library-already-loaded-in-another-cl > > But it would be nice to have a proper solution for this. > > Also, on a completely unrelated note, where the heck is the JavaFX bug tracker these > days?? There seems to be no end to confusing information out there about where the bug > tracker is, multiple github mirrors have trackers, and the place that should clarify > this says nothing: https://openjfx.io/ > > Multiple Oracle pages still point to the Jira, many other pages point to the > bugreport.java.com, others point to https://bugs.openjdk.java.net/ but that shows no > javafx project. > > Is this one official now? https://github.com/javafxports/openjdk-jfx/issues > > > Thanks, > Dan > From arunprasad.rajkumar at oracle.com Fri Jan 4 10:21:06 2019 From: arunprasad.rajkumar at oracle.com (Arunprasad Rajkumar) Date: Fri, 4 Jan 2019 15:51:06 +0530 Subject: RFR JDK-8215799: [Windows] Complex texts are not rendered properly Message-ID: <2C3FA821-68A5-4042-B249-B9ACAC93152B@oracle.com> Hi, Please review the following Github PR, https://github.com/javafxports/openjdk-jfx/pull/337 https://bugs.openjdk.java.net/browse/JDK-8215799 Thanks, Arun From kevin.rushforth at oracle.com Fri Jan 4 23:54:09 2019 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Fri, 4 Jan 2019 15:54:09 -0800 Subject: Proposed schedule for JavaFX 12 In-Reply-To: References: Message-ID: As a reminder, the RDP1 date for JavaFX 12 is this coming Monday, January 7, at 23:59 Pacific time. This is the deadline for features, although we will have a process for getting in some smaller enhancements after RDP1 with approval, as was done in previous releases. -- Kevin On 10/24/2018 5:42 AM, Kevin Rushforth wrote: > Here is the proposed schedule for JavaFX 12. > > RDP1: Jan 7, 2019 (aka ?feature freeze?) > RDP2: Feb 4, 2019 > Freeze: Feb 25, 2019 > GA: March 12, 2019 > > We plan to fork a 12-dev stabilization repo some time between RDP1 and > RDP2. The GA date is one week ahead of JDK 12, matching what we did > for 11. > > Please let Johan or I know if you have any questions. > > -- Kevin > From ramonjsantiago at gmail.com Sat Jan 5 13:33:28 2019 From: ramonjsantiago at gmail.com (Ramon Santiago) Date: Sat, 5 Jan 2019 08:33:28 -0500 Subject: Has any consideration been made to move the Charts into s separate module? Message-ID: -- rjs From johnvalrose at gmail.com Sat Jan 5 13:43:58 2019 From: johnvalrose at gmail.com (John-Val Rose) Date: Sun, 6 Jan 2019 00:43:58 +1100 Subject: Has any consideration been made to move the Charts into s separate module? In-Reply-To: References: Message-ID: <4E008BED-960E-41B1-AE09-9E1A3FF7136B@gmail.com> Hi Ramon, I personally have never seen or heard of any such discussion and I?m not entirely sure in which context you are using the word ?module?. Do you meaning simply removing charts from the core of JavaFX or do you mean creating the charts as an actual module within JPMS? Either way, can you tell us why you have thought of this idea? Graciously, John-Val > On 6 Jan 2019, at 00:33, Ramon Santiago wrote: > > -- > rjs From ramonjsantiago at gmail.com Sat Jan 5 13:56:29 2019 From: ramonjsantiago at gmail.com (Ramon Santiago) Date: Sat, 5 Jan 2019 08:56:29 -0500 Subject: Has any consideration been made to move the Charts into s separate module? In-Reply-To: <4E008BED-960E-41B1-AE09-9E1A3FF7136B@gmail.com> References: <4E008BED-960E-41B1-AE09-9E1A3FF7136B@gmail.com> Message-ID: Yes, I meant removing charts from the core of JavaFX and moving he charts to a separate JPMS module. Why? They are not really core components are they? They are dead weight in applications that never will use them. On Sat, Jan 5, 2019 at 8:44 AM John-Val Rose wrote: > Hi Ramon, > > I personally have never seen or heard of any such discussion and I?m not > entirely sure in which context you are using the word ?module?. > > Do you meaning simply removing charts from the core of JavaFX or do you > mean creating the charts as an actual module within JPMS? > > Either way, can you tell us why you have thought of this idea? > > Graciously, > > John-Val > > > On 6 Jan 2019, at 00:33, Ramon Santiago > wrote: > > > > -- > > rjs > -- rjs From tbee at tbee.org Sat Jan 5 14:00:29 2019 From: tbee at tbee.org (Tom Eugelink) Date: Sat, 5 Jan 2019 15:00:29 +0100 Subject: Has any consideration been made to move the Charts into s separate module? In-Reply-To: References: <4E008BED-960E-41B1-AE09-9E1A3FF7136B@gmail.com> Message-ID: <4d5416a2-ba02-edb4-51d4-9718763854c1@tbee.org> That does make sense... On 5-1-2019 14:56, Ramon Santiago wrote: > Yes, I meant removing charts from the core of JavaFX and moving he charts > to a separate JPMS module. > > Why? They are not really core components are they? They are dead weight in > applications that never will use them. > > On Sat, Jan 5, 2019 at 8:44 AM John-Val Rose wrote: > >> Hi Ramon, >> >> I personally have never seen or heard of any such discussion and I?m not >> entirely sure in which context you are using the word ?module?. >> >> Do you meaning simply removing charts from the core of JavaFX or do you >> mean creating the charts as an actual module within JPMS? >> >> Either way, can you tell us why you have thought of this idea? >> >> Graciously, >> >> John-Val >> >>> On 6 Jan 2019, at 00:33, Ramon Santiago >> wrote: >>> -- >>> rjs > From youngty1997 at gmail.com Sat Jan 5 14:56:00 2019 From: youngty1997 at gmail.com (Ty Young) Date: Sat, 5 Jan 2019 08:56:00 -0600 Subject: JavaFX Content Rendering & Resizing and Font Bugs In Linux In-Reply-To: <41181d90-c5c4-e6d8-b120-90c6621c3443@gmail.com> References: <41181d90-c5c4-e6d8-b120-90c6621c3443@gmail.com> Message-ID: <54431d51-bd6d-c776-4eaa-08cbb8b9e867@gmail.com> On 1/2/19 6:27 PM, Ty Young wrote: > > (I'm too lazy to make different emails for every bug so I've just > thrown them in a single email. Hopefully that isn't a big deal.) > > > In my attempt to write a more proper responsive JavaFX UI, I've > created a new JavaFX project which extensively uses DoubleBindings to > force the min/max width/height of various components to their parent > containing objects(HBox and VBox mainly) so that 1440p and 4k displays > could be more easily supported. While it does allow for easier 1440p > and 4k scaling, JavaFX itself seems to have /extremely/ horrible > content rendering & resizing bugs to the point where the application > becomes usable. > > > For clarity, the applications uses buttons in a VBox which when > clicked set a ScrollPane on the right side to whatever pane the button > represents("About" for example) like a TabPane. This is so it can be > scaled more easily to different resolutions. > > > Multiple of the bugs can be observed by simply resizing the JavaFX > window. When doing so, content will seemingly struggle to keep up with > resizing events. As a result, white(or sometimes black) glitching can > be seen wherever the window is being expanded and UI components will > "jump" around. TableView's horizontal and vertical scrollbars will > glitch out and show while the window is being resized even though it > has plenty of room to display the contents. They sometimes even get > stuck, requiring the user to resize the window for them to go away. > > > If the window is resized or if the window is maximized and later > unmaximized , any non visible content will not be resized and will > require that the window be resized by the user. A horizontal scroll > bar will be displayed and usable to scroll to the content that hasn't > been adjusted to the new window size. Sometimes JavaFX will slowly > resize the content in seemingly steps however it doesn't always do this. > > > Thinking that this might be problems caused by extensive use of > DoubleBinding, I launched SceneBuilder 10 which uses Oracle JDK 10. It > has all of the same UI glitching that I've encountered in my JavaFX > application at a lesser scale besides TableView since it doesn't use > TableView. > > > The degree of how badly the bugs happen seemingly depend on: > > ??? A. The app launch > > ??? B. The time the application is open > > ??? C. The max stretched width/height of the window > > > In other words, it's possible to experience little UI glitching one > app launch while using it after awhile but then relaunch it later with > no code changed and get far more glitching. > > > Another problem is a font bug revolving around making text bold. When > attempting to make a label bold, the boldness is seemingly not being > applied to some Label text. It might work on a few Labels in a certain > part of the UI but completely refuse in other parts. Making things > weirder is the disappearing boldness of Labels after setting a new > Pane in the ScrollPane and switching back to a that specific pane. > > > For example: on first click to the pane two labels will be bold as set > in code. Switching to another pane and back results in the last bold > label not being bold anymore. Switching to another pane again results > in the first Label no longer being bold. > > > All of these bugs make the application unusable(except the boldness > bug). Is this all known? Are there any workarounds? > > > P.S. To whoever is developing SceneBuilder, please add a minimum > width/height to the stage. A user shouldn't be able to make resize the > window to 1x5 or whatever the smallest window size is allowed by the OS. > I've also just tested this in Ubuntu 18.04 as well via a jlink bundle. All of the window resizing and content jumping bugs exist on it as well. Does anyone know anything? From johnvalrose at gmail.com Sun Jan 6 01:58:47 2019 From: johnvalrose at gmail.com (John-Val Rose) Date: Sun, 6 Jan 2019 12:58:47 +1100 Subject: Has any consideration been made to move the Charts into s separate module? In-Reply-To: References: <4E008BED-960E-41B1-AE09-9E1A3FF7136B@gmail.com> Message-ID: <4AD64D16-B2E8-4452-AA11-B755F207945E@gmail.com> I doubt any JavaFX application would use ALL the features so couldn?t you make the same argument for ?detachment? about many other parts of JavaFX? And what are the ?core components?? That is probably a subjective question. > On 6 Jan 2019, at 00:56, Ramon Santiago wrote: > > Yes, I meant removing charts from the core of JavaFX and moving he charts to a separate JPMS module. > > Why? They are not really core components are they? They are dead weight in applications that never will use them. > >> On Sat, Jan 5, 2019 at 8:44 AM John-Val Rose wrote: >> Hi Ramon, >> >> I personally have never seen or heard of any such discussion and I?m not entirely sure in which context you are using the word ?module?. >> >> Do you meaning simply removing charts from the core of JavaFX or do you mean creating the charts as an actual module within JPMS? >> >> Either way, can you tell us why you have thought of this idea? >> >> Graciously, >> >> John-Val >> >> > On 6 Jan 2019, at 00:33, Ramon Santiago wrote: >> > >> > -- >> > rjs > > > -- > rjs From tbee at tbee.org Sun Jan 6 09:27:00 2019 From: tbee at tbee.org (Tom Eugelink) Date: Sun, 6 Jan 2019 10:27:00 +0100 Subject: Has any consideration been made to move the Charts into s separate module? In-Reply-To: <4AD64D16-B2E8-4452-AA11-B755F207945E@gmail.com> References: <4E008BED-960E-41B1-AE09-9E1A3FF7136B@gmail.com> <4AD64D16-B2E8-4452-AA11-B755F207945E@gmail.com> Message-ID: <85bf1b6a-c686-7e5c-8fc9-3e429ac76c72@tbee.org> But (I assumed charts was in core as Ramon said) taking a look at the javadoc; charts are in the controls module, not in the core (javafx-base or javafx-graphics). So that seems quite ok. https://docs.oracle.com/javase/9/docs/api/javafx.controls-summary.html On 6-1-2019 02:58, John-Val Rose wrote: > I doubt any JavaFX application would use ALL the features so couldn?t you make the same argument for ?detachment? about many other parts of JavaFX? > > And what are the ?core components?? That is probably a subjective question. > >> On 6 Jan 2019, at 00:56, Ramon Santiago wrote: >> >> Yes, I meant removing charts from the core of JavaFX and moving he charts to a separate JPMS module. >> >> Why? They are not really core components are they? They are dead weight in applications that never will use them. >> >>> On Sat, Jan 5, 2019 at 8:44 AM John-Val Rose wrote: >>> Hi Ramon, >>> >>> I personally have never seen or heard of any such discussion and I?m not entirely sure in which context you are using the word ?module?. >>> >>> Do you meaning simply removing charts from the core of JavaFX or do you mean creating the charts as an actual module within JPMS? >>> >>> Either way, can you tell us why you have thought of this idea? >>> >>> Graciously, >>> >>> John-Val >>> >>>> On 6 Jan 2019, at 00:33, Ramon Santiago wrote: >>>> >>>> -- >>>> rjs >> >> -- >> rjs From johnvalrose at gmail.com Sun Jan 6 09:43:58 2019 From: johnvalrose at gmail.com (John-Val Rose) Date: Sun, 6 Jan 2019 20:43:58 +1100 Subject: Has any consideration been made to move the Charts into s separate module? In-Reply-To: <85bf1b6a-c686-7e5c-8fc9-3e429ac76c72@tbee.org> References: <4E008BED-960E-41B1-AE09-9E1A3FF7136B@gmail.com> <4AD64D16-B2E8-4452-AA11-B755F207945E@gmail.com> <85bf1b6a-c686-7e5c-8fc9-3e429ac76c72@tbee.org> Message-ID: <12ECF4A3-9FC1-42A9-9017-89EDF2346271@gmail.com> So Tom are you saying that javafx.base and javafx.graphics are the only ?core? modules in JavaFX? Has that ever been officially stated or established? How can javafx.controls or javafx.fxml not be considered core modules? There?s not much you can do with JavaFX without controls and FXML (albeit optional) is a critical part of most JavaFX apps. > On 6 Jan 2019, at 20:27, Tom Eugelink wrote: > > But (I assumed charts was in core as Ramon said) taking a look at the javadoc; charts are in the controls module, not in the core (javafx-base or javafx-graphics). So that seems quite ok. > > https://docs.oracle.com/javase/9/docs/api/javafx.controls-summary.html > > >> On 6-1-2019 02:58, John-Val Rose wrote: >> I doubt any JavaFX application would use ALL the features so couldn?t you make the same argument for ?detachment? about many other parts of JavaFX? >> >> And what are the ?core components?? That is probably a subjective question. >> >>> On 6 Jan 2019, at 00:56, Ramon Santiago wrote: >>> >>> Yes, I meant removing charts from the core of JavaFX and moving he charts to a separate JPMS module. >>> >>> Why? They are not really core components are they? They are dead weight in applications that never will use them. >>> >>>> On Sat, Jan 5, 2019 at 8:44 AM John-Val Rose wrote: >>>> Hi Ramon, >>>> >>>> I personally have never seen or heard of any such discussion and I?m not entirely sure in which context you are using the word ?module?. >>>> >>>> Do you meaning simply removing charts from the core of JavaFX or do you mean creating the charts as an actual module within JPMS? >>>> >>>> Either way, can you tell us why you have thought of this idea? >>>> >>>> Graciously, >>>> >>>> John-Val >>>> >>>>> On 6 Jan 2019, at 00:33, Ramon Santiago wrote: >>>>> >>>>> -- >>>>> rjs >>> >>> -- >>> rjs > > From siddheshrane at disroot.org Sun Jan 6 10:43:44 2019 From: siddheshrane at disroot.org (Siddhesh Rane) Date: Sun, 06 Jan 2019 16:13:44 +0530 Subject: JavaFX Content Rendering & Resizing and Font Bugs In Linux In-Reply-To: <41181d90-c5c4-e6d8-b120-90c6621c3443@gmail.com> Message-ID: From siddheshrane at disroot.org Sun Jan 6 11:06:59 2019 From: siddheshrane at disroot.org (Siddhesh Rane) Date: Sun, 06 Jan 2019 11:06:59 +0000 Subject: JavaFX Content Rendering & Resizing and Font Bugs In Linux In-Reply-To: <41181d90-c5c4-e6d8-b120-90c6621c3443@gmail.com> References: <41181d90-c5c4-e6d8-b120-90c6621c3443@gmail.com> Message-ID: <2764fba17ca93d885b90c22d417da4a3@disroot.org> (An earlier version of this email turned out completely empty when delivered on the mailing list) I have used JavaFX on Linux since 8.0 and have never faced any serious issues. January 3, 2019 4:29 AM, "Ty Young" wrote: > In my attempt to write a more proper responsive JavaFX UI, I've created > a new JavaFX project which extensively uses DoubleBindings to force the > min/max width/height of various components to their parent containing > objects(HBox and VBox mainly) so that 1440p and 4k displays could be > more easily supported. This is not how layout is supposed to be done. The parent container calculates its computed size based on its children which takes into account min/pref/max size of children. Min/pref/max are intrinsic properties of the child irrespective of the container it is in. You are introducing a chicken and egg situation here by having both dimensions depend on each other. You'll get undefined behaviour. If you want children to occupy full width and height of parent, set VBox to "fill width" with Vgrow ALWAYS on children and Hbox to "fill height" and hgrow always in scene builder. > While it does allow for easier 1440p and 4k > scaling, JavaFX itself seems to have /extremely/ horrible content > rendering & resizing bugs to the point where the application becomes > usable. If you are taking about buttons being extremely small on high definition screens on Linux, you can set root font size in your css to >1.0em. Alternatively you can set default font size with - Dcom.sun.javafx.fontSize=18 where default is 12. You can try it for any javafx application by setting _JAVA_OPTIONS=-Dcom.sun.javafx.fontSize=18 on the command line. > Multiple of the bugs can be observed by simply resizing the JavaFX > window. When doing so, content will seemingly struggle to keep up with > resizing events. As a result, white(or sometimes black) glitching can be > seen wherever the window is being expanded and UI components will "jump" > around. White or black bars on window expansion are not specific to javafx. I've seen that on Windows file explorer and Chrome with Gmail tab. It seems to me that the window resizing happens asynchronously so it doesn't wait for the application to have calculated layout and painted the new area. For any complex UI, the layout computation cannot keep up with window resize. > Thinking that this might be problems caused by extensive use of > DoubleBinding, I launched SceneBuilder 10 which uses Oracle JDK 10. It > has all of the same UI glitching that I've encountered in my JavaFX > application at a lesser scale besides TableView since it doesn't use > TableView. Scene Builder is a complex application. Above point applies. > Another problem is a font bug revolving around making text bold. When > attempting to make a label bold, the boldness is seemingly not being > applied to some Label text. It might work on a few Labels in a certain > part of the UI but completely refuse in other parts. Making things > weirder is the disappearing boldness of Labels after setting a new Pane > in the ScrollPane and switching back to a that specific pane. Without relevant code, we cannot comment. Regards Siddhesh Rane From tbee at tbee.org Sun Jan 6 12:16:35 2019 From: tbee at tbee.org (Tom Eugelink) Date: Sun, 6 Jan 2019 13:16:35 +0100 Subject: Has any consideration been made to move the Charts into s separate module? In-Reply-To: <12ECF4A3-9FC1-42A9-9017-89EDF2346271@gmail.com> References: <4E008BED-960E-41B1-AE09-9E1A3FF7136B@gmail.com> <4AD64D16-B2E8-4452-AA11-B755F207945E@gmail.com> <85bf1b6a-c686-7e5c-8fc9-3e429ac76c72@tbee.org> <12ECF4A3-9FC1-42A9-9017-89EDF2346271@gmail.com> Message-ID: <965fc039-fba7-f005-08b1-bc2257f41f3a@tbee.org> I'm responding to your "moving he charts to a separate JPMS? module". It would make sense to have a javafx.charts, but at least charts are not in javafx.graphics or lower. Javafx.controls is IMHO an okay-but-not-ideal JPMS module to have them in. But since they are now, it's not really worth a refactor. Given the typical size of a controls application, the charts classes won't make much of a difference. Whether charts belong in OpenJFX in the first place, and this what I think you mean with "core" (you have not established that concept either), is another topic. I would say no, the chart library of Gerrit illustates that. But someone at some point thought it was a good idea, just like half of Maven is/was in the JRE (a new HTTP client implementation???). So because of backward compatibility keeping in OpenJFX what was in Oracle's JRE makes sense. Call it historical debt or something. We just need a better alternative and then the classes can be removed at some point in the future. On 6-1-2019 10:43, John-Val Rose wrote: > So Tom are you saying that javafx.base and javafx.graphics are the only ?core? modules in JavaFX? > > Has that ever been officially stated or established? > > How can javafx.controls or javafx.fxml not be considered core modules? > > There?s not much you can do with JavaFX without controls and FXML (albeit optional) is a critical part of most JavaFX apps. > >> On 6 Jan 2019, at 20:27, Tom Eugelink wrote: >> >> But (I assumed charts was in core as Ramon said) taking a look at the javadoc; charts are in the controls module, not in the core (javafx-base or javafx-graphics). So that seems quite ok. >> >> https://docs.oracle.com/javase/9/docs/api/javafx.controls-summary.html >> >> >>> On 6-1-2019 02:58, John-Val Rose wrote: >>> I doubt any JavaFX application would use ALL the features so couldn?t you make the same argument for ?detachment? about many other parts of JavaFX? >>> >>> And what are the ?core components?? That is probably a subjective question. >>> >>>> On 6 Jan 2019, at 00:56, Ramon Santiago wrote: >>>> >>>> Yes, I meant removing charts from the core of JavaFX and moving he charts to a separate JPMS module. >>>> >>>> Why? They are not really core components are they? They are dead weight in applications that never will use them. >>>> >>>>> On Sat, Jan 5, 2019 at 8:44 AM John-Val Rose wrote: >>>>> Hi Ramon, >>>>> >>>>> I personally have never seen or heard of any such discussion and I?m not entirely sure in which context you are using the word ?module?. >>>>> >>>>> Do you meaning simply removing charts from the core of JavaFX or do you mean creating the charts as an actual module within JPMS? >>>>> >>>>> Either way, can you tell us why you have thought of this idea? >>>>> >>>>> Graciously, >>>>> >>>>> John-Val >>>>> >>>>>> On 6 Jan 2019, at 00:33, Ramon Santiago wrote: >>>>>> >>>>>> -- >>>>>> rjs >>>> -- >>>> rjs >> From johnvalrose at gmail.com Sun Jan 6 14:40:09 2019 From: johnvalrose at gmail.com (John-Val Rose) Date: Mon, 7 Jan 2019 01:40:09 +1100 Subject: Has any consideration been made to move the Charts into s separate module? In-Reply-To: <965fc039-fba7-f005-08b1-bc2257f41f3a@tbee.org> References: <4E008BED-960E-41B1-AE09-9E1A3FF7136B@gmail.com> <4AD64D16-B2E8-4452-AA11-B755F207945E@gmail.com> <85bf1b6a-c686-7e5c-8fc9-3e429ac76c72@tbee.org> <12ECF4A3-9FC1-42A9-9017-89EDF2346271@gmail.com> <965fc039-fba7-f005-08b1-bc2257f41f3a@tbee.org> Message-ID: <1672B6A4-853E-42E1-AF71-16209674CB98@gmail.com> I think we actually agree Tom. I have not established what is ?core? JavaFX simply because it has never crossed my mind that some modules are ?core? whereas others must (by inference) be ?peripheral?. I don?t see any value in refactoring charts into their own module given that, as I said, without controls there?s not much value in using JavaFX. There are lots of really good 3rd-party controls libraries such as those of Gerrit that you mentioned but there are numerous other 3rd-party JavaFX libraries that do not relate to controls at all. I guess I just don?t see any reason to strip JavaFX right down to the ?core? (whatever that is) by for example moving charts or any other specific type of control into separate JPMS modules. And does anyone have some actual real-world stats as to how frequently charts are used? I, for one, certainly do not view them as ?dead weight?. > On 6 Jan 2019, at 23:16, Tom Eugelink wrote: > > I'm responding to your "moving he charts to a separate JPMS module". It would make sense to have a javafx.charts, but at least charts are not in javafx.graphics or lower. Javafx.controls is IMHO an okay-but-not-ideal JPMS module to have them in. But since they are now, it's not really worth a refactor. Given the typical size of a controls application, the charts classes won't make much of a difference. > > Whether charts belong in OpenJFX in the first place, and this what I think you mean with "core" (you have not established that concept either), is another topic. I would say no, the chart library of Gerrit illustates that. But someone at some point thought it was a good idea, just like half of Maven is/was in the JRE (a new HTTP client implementation???). So because of backward compatibility keeping in OpenJFX what was in Oracle's JRE makes sense. Call it historical debt or something. We just need a better alternative and then the classes can be removed at some point in the future. > > >> On 6-1-2019 10:43, John-Val Rose wrote: >> So Tom are you saying that javafx.base and javafx.graphics are the only ?core? modules in JavaFX? >> >> Has that ever been officially stated or established? >> >> How can javafx.controls or javafx.fxml not be considered core modules? >> >> There?s not much you can do with JavaFX without controls and FXML (albeit optional) is a critical part of most JavaFX apps. >> >>> On 6 Jan 2019, at 20:27, Tom Eugelink wrote: >>> >>> But (I assumed charts was in core as Ramon said) taking a look at the javadoc; charts are in the controls module, not in the core (javafx-base or javafx-graphics). So that seems quite ok. >>> >>> https://docs.oracle.com/javase/9/docs/api/javafx.controls-summary.html >>> >>> >>>> On 6-1-2019 02:58, John-Val Rose wrote: >>>> I doubt any JavaFX application would use ALL the features so couldn?t you make the same argument for ?detachment? about many other parts of JavaFX? >>>> >>>> And what are the ?core components?? That is probably a subjective question. >>>> >>>>> On 6 Jan 2019, at 00:56, Ramon Santiago wrote: >>>>> >>>>> Yes, I meant removing charts from the core of JavaFX and moving he charts to a separate JPMS module. >>>>> >>>>> Why? They are not really core components are they? They are dead weight in applications that never will use them. >>>>> >>>>>> On Sat, Jan 5, 2019 at 8:44 AM John-Val Rose wrote: >>>>>> Hi Ramon, >>>>>> >>>>>> I personally have never seen or heard of any such discussion and I?m not entirely sure in which context you are using the word ?module?. >>>>>> >>>>>> Do you meaning simply removing charts from the core of JavaFX or do you mean creating the charts as an actual module within JPMS? >>>>>> >>>>>> Either way, can you tell us why you have thought of this idea? >>>>>> >>>>>> Graciously, >>>>>> >>>>>> John-Val >>>>>> >>>>>>> On 6 Jan 2019, at 00:33, Ramon Santiago wrote: >>>>>>> >>>>>>> -- >>>>>>> rjs >>>>> -- >>>>> rjs >>> > From youngty1997 at gmail.com Sun Jan 6 19:15:15 2019 From: youngty1997 at gmail.com (Ty Young) Date: Sun, 6 Jan 2019 13:15:15 -0600 Subject: JavaFX Content Rendering & Resizing and Font Bugs In Linux In-Reply-To: <2764fba17ca93d885b90c22d417da4a3@disroot.org> References: <41181d90-c5c4-e6d8-b120-90c6621c3443@gmail.com> <2764fba17ca93d885b90c22d417da4a3@disroot.org> Message-ID: <29ef5775-9c0d-f9e5-74ad-4d1b7ccb4a39@gmail.com> On 1/6/19 5:06 AM, Siddhesh Rane wrote: > (An earlier version of this email turned out completely empty when delivered on the mailing list) > > I have used JavaFX on Linux since 8.0 and have never faced any serious issues. > > January 3, 2019 4:29 AM, "Ty Young" wrote: > >> In my attempt to write a more proper responsive JavaFX UI, I've created >> a new JavaFX project which extensively uses DoubleBindings to force the >> min/max width/height of various components to their parent containing >> objects(HBox and VBox mainly) so that 1440p and 4k displays could be >> more easily supported. > This is not how layout is supposed to be done. The parent container calculates its computed size based on its children which takes into account min/pref/max size of children. Min/pref/max are intrinsic properties of the child irrespective of the container it is in. > You are introducing a chicken and egg situation here by having both dimensions depend on each other. You'll get undefined behaviour. > > If you want children to occupy full width and height of parent, set VBox to "fill width" with Vgrow ALWAYS on children and Hbox to "fill height" and hgrow always in scene builder. I'm well aware of how the parents size is calculated. However, the more level top level UI components are percentage based of the entire window so that, for example, the left button is 15% of the total window width and the ScrollPane is 85% of the total window width. Content within the ScrollPane is also reduced to 85% of the ScrollPane's width. This percentage based UI scaling has been done in website for years. There isn't anything particularly different here. Content should theoretically be resized in a top down fashion on any resize event after first creation. If this causes unnecessary resizing events then why exactly does the DoubleBinding API even exist to begin with? This is always going to be an issue when you use it. > >> While it does allow for easier 1440p and 4k >> scaling, JavaFX itself seems to have /extremely/ horrible content >> rendering & resizing bugs to the point where the application becomes >> usable. > If you are taking about buttons being extremely small on high definition screens on Linux, you can set root font size in your css to >1.0em. Alternatively you can set default font size with - Dcom.sun.javafx.fontSize=18 where default is 12. You can try it for any javafx application by setting _JAVA_OPTIONS=-Dcom.sun.javafx.fontSize=18 on the command line. As far as I'm aware JavaFX uses the system default font size unless told otherwise. As such, font should scale perfectly on native displays. Problem is, this is not true when using xrandr to scale the viewport nor does it affect padding or spacing between UI elements so while it'll supposedly look fine using a more responsive application design like i've been doing it will be less 1:1 scaling. Extra handling is required for above 1080p scaling sadly. Default font size is 13 according to Font.getDefault().getSize(). According to Gnome Tweaks it's supposed to be 11. Which one is right? Who knows. Maybe using Font.getDefault().getSize() isn't a reliable way of getting system font size but I can't immediately think of a better way to get the actual system font size. > >> Multiple of the bugs can be observed by simply resizing the JavaFX >> window. When doing so, content will seemingly struggle to keep up with >> resizing events. As a result, white(or sometimes black) glitching can be >> seen wherever the window is being expanded and UI components will "jump" >> around. > White or black bars on window expansion are not specific to javafx. I've seen that on Windows file explorer and Chrome with Gmail tab. It seems to me that the window resizing happens asynchronously so it doesn't wait for the application to have calculated layout and painted the new area. For any complex UI, the layout computation cannot keep up with window resize. In complete honestly I've never really payed much attention to window resizing behavior until now as I usually just keep applications maximized. Opening various applications and resizing them shows that while there are far more applications with glitchy and low FPS resizing, there are also examples of applications that have no trouble resizing UI components. Non glitchy: Gnome Settings(My app design is roughly based on this. It too uses percentage based UI sizing without issue.) Gnome Disks QT5 Settings GNU Octage Only Office Vid Cutter Glitchy: JavaFX apps Netbeans WPS Office Steam(game client) Given that some applications with fairly complex UI work fine I don't really buy the "UI is just too complex!" theory/defense/excuse. Not only does the app use bog standard JavaFX UI components but there aren't that many on the screen at any given time. Going by behavior of ScrollPane's glitchy horizontal bar, JavaFX doesn't even resize UI content that isn't in a user's view anyway so the amount of UI components that needs to be resized is fairly small(maybe 40 including TableView's subcomponents?). > >> Thinking that this might be problems caused by extensive use of >> DoubleBinding, I launched SceneBuilder 10 which uses Oracle JDK 10. It >> has all of the same UI glitching that I've encountered in my JavaFX >> application at a lesser scale besides TableView since it doesn't use >> TableView. > Scene Builder is a complex application. Above point applies. SceneBuilder's complexity is always a constant so it would stand to reason that the glitchy resizing would also be a constant. It isn't. Again, the glitchy behavior is seemingly dependent on the 3 things that I mentioned. >> Another problem is a font bug revolving around making text bold. When >> attempting to make a label bold, the boldness is seemingly not being >> applied to some Label text. It might work on a few Labels in a certain >> part of the UI but completely refuse in other parts. Making things >> weirder is the disappearing boldness of Labels after setting a new Pane >> in the ScrollPane and switching back to a that specific pane. > Without relevant code, we cannot comment.