From danno.ferrin at shemnon.com Sun Jun 1 01:17:04 2014 From: danno.ferrin at shemnon.com (Danno Ferrin) Date: Sat, 31 May 2014 19:17:04 -0600 Subject: Extending a Region to create a JUNG Layout In-Reply-To: <090BBF1F-D3A6-465A-8F04-A7515F57E814@gmail.com> References: <090BBF1F-D3A6-465A-8F04-A7515F57E814@gmail.com> Message-ID: The new matrix classes exposed in JavaFX 8 help a lot. I'll re-license it BSD. 2 clause, 3 clause, new? Can you point me to a preferred header? On Fri, May 30, 2014 at 6:11 PM, Jeffrey Guenther < guenther.jeffrey at gmail.com> wrote: > Danno, thanks! It works super well and has so little code! > > If I use the class in my JUNG work, I need a BSD license. The rest of that > codebase is BSD already. I?ll contact you off list if I go that direction. > Right now, I?m trying to get my head wrapped around what it would take to > modernize JUNG. > > > On May 30, 2014, at 4:20 PM, Danno Ferrin wrote: > > > You may find this class valuable, it is a pane that listens to zoom and > mouse scroll events in a group, essential for large graphs: > > > > > https://github.com/shemnon/FollowTheBitcoin/blob/master/src/main/groovy/com/shemnon/btc/view/ZoomPane.java > > > > I haven't had time to harden it and componentize it into a standalone > release. If you don't like the license let me know what license you would > like. > > > > --Danno > > > > ----- Original Message ----- > > From: sven.reimers at gmail.com > > To: guenther.jeffrey at gmail.com > > Cc: openjfx-dev at openjdk.java.net > > Sent: Friday, May 30, 2014 1:27:48 AM GMT -07:00 US/Canada Mountain > > Subject: Re: Extending a Region to create a JUNG Layout > > > > Hi Jeffrey, > > > > I did some prototyping with Jung JavaFX and Java 8, the results are here > > > > https://bitbucket.org/sreimers/jung8 > > > > It uses gradle to build and contains an additional library for jungfx. > > > > Enjoy > > > > -Sven > > > > > > On Fri, May 30, 2014 at 8:44 AM, Jeffrey Guenther < > > guenther.jeffrey at gmail.com> wrote: > > > >> Hi, > >> > >> I'm in the midst of exploring how I might port JUNG( > >> http://jung.sourceforge.net/index.html) to JavaFX. JUNG is a > graph/layout > >> tool my lab uses for some of their data visualizations. With the > release of > >> JavaFX 2, we've started building our prototypes in JavaFX. > >> > >> Rather than use the JFXSwingPanel, I want to try modifying the JUNG to > work > >> "natively" in JavaFX. In the long term, I'd like to see JUNG ported > >> completely to JavaFX using properties, CSS and the like. > >> > >> I've built a quick demo ( > >> https://gist.github.com/jrguenther/9d0c37329f9928a2b56e) and need help > >> going forward. I've been reading the docs and hitting google, but I > think I > >> need more info. > >> > >> Can someone point me to a detailed explanation of how to extend Region > to > >> create my own layout? > >> In particular, how can I get a region to relayout it's children when > it's > >> being resized? > >> When does a the region's parent call layoutChildren()? > >> If the height and width of the region are set to Double.MAX_VALUE > >> indicating the area can grow infinitely, how does the region know what > size > >> to set itself to? > >> > >> Thanks, > >> Jeff > >> > > > > > > > > -- > > 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 krueger at lesspain.de Sun Jun 1 08:18:39 2014 From: krueger at lesspain.de (=?UTF-8?Q?Robert_Kr=C3=BCger?=) Date: Sun, 1 Jun 2014 10:18:39 +0200 Subject: Ugly flashing when opening a css-styled stage Message-ID: Hi, I'm in the process of evaluating Java FX 8 for our currently Swing-based product (also Java 8) on OSX. My first attempt to style a stage's background resulted in an ugly flashing effect which I would classify as a show-stopper for delivering a commercial product. This looks like it is caused by the stage being drawn at least once before the style has been applied, and I am wondering what the mistake is since my code is more or less a straight-forward hello world: package jfxtest; import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.layout.StackPane; import javafx.stage.Stage; public class JXTest extends Application { @Override public void start(Stage primaryStage) throws Exception { final StackPane pane = new StackPane(); final Button closeButton = new Button("Close"); closeButton.setOnAction(event -> primaryStage.close()); pane.getChildren().add(closeButton); final Scene scene = new Scene(pane, 800, 600); scene.getStylesheets().add("dark.css"); scene.getStylesheets(); primaryStage.setScene(scene); primaryStage.setTitle(getClass().getSimpleName()); primaryStage.show(); } public static void main(String[] args) { launch(args); } } with dark.css being: .root { -fx-background: rgb(54, 54, 54); } Is this a Mac-specific problem? Is there a workaround? Which of the two mailing lists is the more appropriate one to post these things (JFX problems which look like they might be platform-specific) to? Thanks, Robert From sven.reimers at gmail.com Sun Jun 1 08:34:15 2014 From: sven.reimers at gmail.com (Sven Reimers) Date: Sun, 1 Jun 2014 10:34:15 +0200 Subject: Extending a Region to create a JUNG Layout In-Reply-To: References: <090BBF1F-D3A6-465A-8F04-A7515F57E814@gmail.com> Message-ID: Controller compatible? -Sven Am 01.06.2014 03:17 schrieb "Danno Ferrin" : > The new matrix classes exposed in JavaFX 8 help a lot. > > I'll re-license it BSD. 2 clause, 3 clause, new? Can you point me to a > preferred header? > > > On Fri, May 30, 2014 at 6:11 PM, Jeffrey Guenther < > guenther.jeffrey at gmail.com> wrote: > > > Danno, thanks! It works super well and has so little code! > > > > If I use the class in my JUNG work, I need a BSD license. The rest of > that > > codebase is BSD already. I?ll contact you off list if I go that > direction. > > Right now, I?m trying to get my head wrapped around what it would take to > > modernize JUNG. > > > > > > On May 30, 2014, at 4:20 PM, Danno Ferrin > wrote: > > > > > You may find this class valuable, it is a pane that listens to zoom and > > mouse scroll events in a group, essential for large graphs: > > > > > > > > > https://github.com/shemnon/FollowTheBitcoin/blob/master/src/main/groovy/com/shemnon/btc/view/ZoomPane.java > > > > > > I haven't had time to harden it and componentize it into a standalone > > release. If you don't like the license let me know what license you > would > > like. > > > > > > --Danno > > > > > > ----- Original Message ----- > > > From: sven.reimers at gmail.com > > > To: guenther.jeffrey at gmail.com > > > Cc: openjfx-dev at openjdk.java.net > > > Sent: Friday, May 30, 2014 1:27:48 AM GMT -07:00 US/Canada Mountain > > > Subject: Re: Extending a Region to create a JUNG Layout > > > > > > Hi Jeffrey, > > > > > > I did some prototyping with Jung JavaFX and Java 8, the results are > here > > > > > > https://bitbucket.org/sreimers/jung8 > > > > > > It uses gradle to build and contains an additional library for jungfx. > > > > > > Enjoy > > > > > > -Sven > > > > > > > > > On Fri, May 30, 2014 at 8:44 AM, Jeffrey Guenther < > > > guenther.jeffrey at gmail.com> wrote: > > > > > >> Hi, > > >> > > >> I'm in the midst of exploring how I might port JUNG( > > >> http://jung.sourceforge.net/index.html) to JavaFX. JUNG is a > > graph/layout > > >> tool my lab uses for some of their data visualizations. With the > > release of > > >> JavaFX 2, we've started building our prototypes in JavaFX. > > >> > > >> Rather than use the JFXSwingPanel, I want to try modifying the JUNG to > > work > > >> "natively" in JavaFX. In the long term, I'd like to see JUNG ported > > >> completely to JavaFX using properties, CSS and the like. > > >> > > >> I've built a quick demo ( > > >> https://gist.github.com/jrguenther/9d0c37329f9928a2b56e) and need > help > > >> going forward. I've been reading the docs and hitting google, but I > > think I > > >> need more info. > > >> > > >> Can someone point me to a detailed explanation of how to extend Region > > to > > >> create my own layout? > > >> In particular, how can I get a region to relayout it's children when > > it's > > >> being resized? > > >> When does a the region's parent call layoutChildren()? > > >> If the height and width of the region are set to Double.MAX_VALUE > > >> indicating the area can grow infinitely, how does the region know what > > size > > >> to set itself to? > > >> > > >> Thanks, > > >> Jeff > > >> > > > > > > > > > > > > -- > > > 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 sven.reimers at gmail.com Sun Jun 1 08:34:55 2014 From: sven.reimers at gmail.com (Sven Reimers) Date: Sun, 1 Jun 2014 10:34:55 +0200 Subject: Extending a Region to create a JUNG Layout In-Reply-To: References: <090BBF1F-D3A6-465A-8F04-A7515F57E814@gmail.com> Message-ID: Upps.. Controller compatible... -Sven Am 01.06.2014 10:34 schrieb "Sven Reimers" : > Controller compatible? > > -Sven > Am 01.06.2014 03:17 schrieb "Danno Ferrin" : > >> The new matrix classes exposed in JavaFX 8 help a lot. >> >> I'll re-license it BSD. 2 clause, 3 clause, new? Can you point me to a >> preferred header? >> >> >> On Fri, May 30, 2014 at 6:11 PM, Jeffrey Guenther < >> guenther.jeffrey at gmail.com> wrote: >> >> > Danno, thanks! It works super well and has so little code! >> > >> > If I use the class in my JUNG work, I need a BSD license. The rest of >> that >> > codebase is BSD already. I?ll contact you off list if I go that >> direction. >> > Right now, I?m trying to get my head wrapped around what it would take >> to >> > modernize JUNG. >> > >> > >> > On May 30, 2014, at 4:20 PM, Danno Ferrin >> wrote: >> > >> > > You may find this class valuable, it is a pane that listens to zoom >> and >> > mouse scroll events in a group, essential for large graphs: >> > > >> > > >> > >> https://github.com/shemnon/FollowTheBitcoin/blob/master/src/main/groovy/com/shemnon/btc/view/ZoomPane.java >> > > >> > > I haven't had time to harden it and componentize it into a standalone >> > release. If you don't like the license let me know what license you >> would >> > like. >> > > >> > > --Danno >> > > >> > > ----- Original Message ----- >> > > From: sven.reimers at gmail.com >> > > To: guenther.jeffrey at gmail.com >> > > Cc: openjfx-dev at openjdk.java.net >> > > Sent: Friday, May 30, 2014 1:27:48 AM GMT -07:00 US/Canada Mountain >> > > Subject: Re: Extending a Region to create a JUNG Layout >> > > >> > > Hi Jeffrey, >> > > >> > > I did some prototyping with Jung JavaFX and Java 8, the results are >> here >> > > >> > > https://bitbucket.org/sreimers/jung8 >> > > >> > > It uses gradle to build and contains an additional library for jungfx. >> > > >> > > Enjoy >> > > >> > > -Sven >> > > >> > > >> > > On Fri, May 30, 2014 at 8:44 AM, Jeffrey Guenther < >> > > guenther.jeffrey at gmail.com> wrote: >> > > >> > >> Hi, >> > >> >> > >> I'm in the midst of exploring how I might port JUNG( >> > >> http://jung.sourceforge.net/index.html) to JavaFX. JUNG is a >> > graph/layout >> > >> tool my lab uses for some of their data visualizations. With the >> > release of >> > >> JavaFX 2, we've started building our prototypes in JavaFX. >> > >> >> > >> Rather than use the JFXSwingPanel, I want to try modifying the JUNG >> to >> > work >> > >> "natively" in JavaFX. In the long term, I'd like to see JUNG ported >> > >> completely to JavaFX using properties, CSS and the like. >> > >> >> > >> I've built a quick demo ( >> > >> https://gist.github.com/jrguenther/9d0c37329f9928a2b56e) and need >> help >> > >> going forward. I've been reading the docs and hitting google, but I >> > think I >> > >> need more info. >> > >> >> > >> Can someone point me to a detailed explanation of how to extend >> Region >> > to >> > >> create my own layout? >> > >> In particular, how can I get a region to relayout it's children when >> > it's >> > >> being resized? >> > >> When does a the region's parent call layoutChildren()? >> > >> If the height and width of the region are set to Double.MAX_VALUE >> > >> indicating the area can grow infinitely, how does the region know >> what >> > size >> > >> to set itself to? >> > >> >> > >> Thanks, >> > >> Jeff >> > >> >> > > >> > > >> > > >> > > -- >> > > 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 hang.vo at oracle.com Sun Jun 1 17:17:48 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Sun, 01 Jun 2014 17:17:48 +0000 Subject: hg: openjfx/8u-dev/rt: Implemet inertia for rotate gesture Message-ID: <201406011718.s51HI0m4002666@aojmv0008> Changeset: 15cf0c957d82 Author: Seeon Birger Date: 2014-06-01 19:55 +0300 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/15cf0c957d82 Implemet inertia for rotate gesture ! modules/graphics/src/main/java/com/sun/javafx/tk/quantum/RotateGestureRecognizer.java From jeff at reportmill.com Sun Jun 1 19:59:16 2014 From: jeff at reportmill.com (Jeff Martin) Date: Sun, 1 Jun 2014 14:59:16 -0500 Subject: Ugly flashing when opening a css-styled stage In-Reply-To: References: Message-ID: <30C846C5-1189-47C2-BCEE-35876A33F386@reportmill.com> I haven't seen this, but here's a hack you can try: // Show stage transparent once to get proper drawing _stage.setOpacity(0); _stage.show(); _stage.hide(); _stage.setOpacity(1); I've done this before to trigger Stage to set it's width/height property (which I needed to position the stage property). jeff On Jun 1, 2014, at 3:18 AM, Robert Kr?ger wrote: > Hi, > > I'm in the process of evaluating Java FX 8 for our currently > Swing-based product (also Java 8) on OSX. > > My first attempt to style a stage's background resulted in an ugly > flashing effect which I would classify as a show-stopper for > delivering a commercial product. This looks like it is caused by the > stage being drawn at least once before the style has been applied, and > I am wondering what the mistake is since my code is more or less a > straight-forward hello world: > > package jfxtest; > > import javafx.application.Application; > import javafx.scene.Scene; > import javafx.scene.control.Button; > import javafx.scene.layout.StackPane; > import javafx.stage.Stage; > > public class JXTest extends Application { > > @Override > public void start(Stage primaryStage) throws Exception { > final StackPane pane = new StackPane(); > final Button closeButton = new Button("Close"); > closeButton.setOnAction(event -> primaryStage.close()); > pane.getChildren().add(closeButton); > final Scene scene = new Scene(pane, 800, 600); > scene.getStylesheets().add("dark.css"); > scene.getStylesheets(); > primaryStage.setScene(scene); > primaryStage.setTitle(getClass().getSimpleName()); > primaryStage.show(); > } > > public static void main(String[] args) { > launch(args); > } > } > > with dark.css being: > > .root { > -fx-background: rgb(54, 54, 54); > } > > Is this a Mac-specific problem? Is there a workaround? Which of the > two mailing lists is the more appropriate one to post these things > (JFX problems which look like they might be platform-specific) to? > > Thanks, > > Robert From guenther.jeffrey at gmail.com Mon Jun 2 04:49:59 2014 From: guenther.jeffrey at gmail.com (Jeffrey Guenther) Date: Sun, 1 Jun 2014 21:49:59 -0700 Subject: Extending a Region to create a JUNG Layout In-Reply-To: References: <090BBF1F-D3A6-465A-8F04-A7515F57E814@gmail.com> Message-ID: BSD - 3 Clause - http://jung.sourceforge.net/license.txt On Sat, May 31, 2014 at 6:17 PM, Danno Ferrin wrote: > The new matrix classes exposed in JavaFX 8 help a lot. > > I'll re-license it BSD. 2 clause, 3 clause, new? Can you point me to a > preferred header? > > > On Fri, May 30, 2014 at 6:11 PM, Jeffrey Guenther < > guenther.jeffrey at gmail.com> wrote: > >> Danno, thanks! It works super well and has so little code! >> >> If I use the class in my JUNG work, I need a BSD license. The rest of >> that codebase is BSD already. I?ll contact you off list if I go that >> direction. Right now, I?m trying to get my head wrapped around what it >> would take to modernize JUNG. >> >> >> On May 30, 2014, at 4:20 PM, Danno Ferrin >> wrote: >> >> > You may find this class valuable, it is a pane that listens to zoom and >> mouse scroll events in a group, essential for large graphs: >> > >> > >> https://github.com/shemnon/FollowTheBitcoin/blob/master/src/main/groovy/com/shemnon/btc/view/ZoomPane.java >> > >> > I haven't had time to harden it and componentize it into a standalone >> release. If you don't like the license let me know what license you would >> like. >> > >> > --Danno >> > >> > ----- Original Message ----- >> > From: sven.reimers at gmail.com >> > To: guenther.jeffrey at gmail.com >> > Cc: openjfx-dev at openjdk.java.net >> > Sent: Friday, May 30, 2014 1:27:48 AM GMT -07:00 US/Canada Mountain >> > Subject: Re: Extending a Region to create a JUNG Layout >> > >> > Hi Jeffrey, >> > >> > I did some prototyping with Jung JavaFX and Java 8, the results are here >> > >> > https://bitbucket.org/sreimers/jung8 >> > >> > It uses gradle to build and contains an additional library for jungfx. >> > >> > Enjoy >> > >> > -Sven >> > >> > >> > On Fri, May 30, 2014 at 8:44 AM, Jeffrey Guenther < >> > guenther.jeffrey at gmail.com> wrote: >> > >> >> Hi, >> >> >> >> I'm in the midst of exploring how I might port JUNG( >> >> http://jung.sourceforge.net/index.html) to JavaFX. JUNG is a >> graph/layout >> >> tool my lab uses for some of their data visualizations. With the >> release of >> >> JavaFX 2, we've started building our prototypes in JavaFX. >> >> >> >> Rather than use the JFXSwingPanel, I want to try modifying the JUNG to >> work >> >> "natively" in JavaFX. In the long term, I'd like to see JUNG ported >> >> completely to JavaFX using properties, CSS and the like. >> >> >> >> I've built a quick demo ( >> >> https://gist.github.com/jrguenther/9d0c37329f9928a2b56e) and need help >> >> going forward. I've been reading the docs and hitting google, but I >> think I >> >> need more info. >> >> >> >> Can someone point me to a detailed explanation of how to extend Region >> to >> >> create my own layout? >> >> In particular, how can I get a region to relayout it's children when >> it's >> >> being resized? >> >> When does a the region's parent call layoutChildren()? >> >> If the height and width of the region are set to Double.MAX_VALUE >> >> indicating the area can grow infinitely, how does the region know what >> size >> >> to set itself to? >> >> >> >> Thanks, >> >> Jeff >> >> >> > >> > >> > >> > -- >> > 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 hang.vo at oracle.com Mon Jun 2 05:47:20 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Mon, 02 Jun 2014 05:47:20 +0000 Subject: hg: openjfx/8u-dev/rt: RT-36833: [ColorPicker] NLS: over translated message for Korean in controls_ko.properties file. Message-ID: <201406020547.s525la3S015046@aojmv0008> Changeset: 3308d6a77846 Author: mfang Date: 2014-06-01 22:39 -0700 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/3308d6a77846 RT-36833: [ColorPicker] NLS: over translated message for Korean in controls_ko.properties file. ! modules/controls/src/main/resources/com/sun/javafx/scene/control/skin/resources/controls_ko.properties From krueger at lesspain.de Mon Jun 2 07:51:55 2014 From: krueger at lesspain.de (=?UTF-8?Q?Robert_Kr=C3=BCger?=) Date: Mon, 2 Jun 2014 09:51:55 +0200 Subject: Ugly flashing when opening a css-styled stage In-Reply-To: <30C846C5-1189-47C2-BCEE-35876A33F386@reportmill.com> References: <30C846C5-1189-47C2-BCEE-35876A33F386@reportmill.com> Message-ID: Thanks but it does not seem to improve the situation. btw, I am using 1.8.0_05-b13 on Mac OS 10.9.3 on a retina MBP. On Sun, Jun 1, 2014 at 9:59 PM, Jeff Martin wrote: > I haven't seen this, but here's a hack you can try: > > // Show stage transparent once to get proper drawing > _stage.setOpacity(0); _stage.show(); _stage.hide(); _stage.setOpacity(1); > > I've done this before to trigger Stage to set it's width/height property (which I needed to position the stage property). > > jeff > > > On Jun 1, 2014, at 3:18 AM, Robert Kr?ger wrote: > >> Hi, >> >> I'm in the process of evaluating Java FX 8 for our currently >> Swing-based product (also Java 8) on OSX. >> >> My first attempt to style a stage's background resulted in an ugly >> flashing effect which I would classify as a show-stopper for >> delivering a commercial product. This looks like it is caused by the >> stage being drawn at least once before the style has been applied, and >> I am wondering what the mistake is since my code is more or less a >> straight-forward hello world: >> >> package jfxtest; >> >> import javafx.application.Application; >> import javafx.scene.Scene; >> import javafx.scene.control.Button; >> import javafx.scene.layout.StackPane; >> import javafx.stage.Stage; >> >> public class JXTest extends Application { >> >> @Override >> public void start(Stage primaryStage) throws Exception { >> final StackPane pane = new StackPane(); >> final Button closeButton = new Button("Close"); >> closeButton.setOnAction(event -> primaryStage.close()); >> pane.getChildren().add(closeButton); >> final Scene scene = new Scene(pane, 800, 600); >> scene.getStylesheets().add("dark.css"); >> scene.getStylesheets(); >> primaryStage.setScene(scene); >> primaryStage.setTitle(getClass().getSimpleName()); >> primaryStage.show(); >> } >> >> public static void main(String[] args) { >> launch(args); >> } >> } >> >> with dark.css being: >> >> .root { >> -fx-background: rgb(54, 54, 54); >> } >> >> Is this a Mac-specific problem? Is there a workaround? Which of the >> two mailing lists is the more appropriate one to post these things >> (JFX problems which look like they might be platform-specific) to? >> >> Thanks, >> >> Robert > From tom.schindl at bestsolution.at Mon Jun 2 08:04:40 2014 From: tom.schindl at bestsolution.at (Tom Schindl) Date: Mon, 02 Jun 2014 10:04:40 +0200 Subject: Ugly flashing when opening a css-styled stage In-Reply-To: References: <30C846C5-1189-47C2-BCEE-35876A33F386@reportmill.com> Message-ID: <538C3018.2070803@bestsolution.at> To rule out CSS is the reason you could directly set the background: pane.setBackground(new Background(new BackgroundFill(Color.rgb(54, 54, 54), CornerRadii.EMPTY, Insets.EMPTY))); Does that improve the situation? Tom On 02.06.14 09:51, Robert Kr?ger wrote: > Thanks but it does not seem to improve the situation. > > btw, I am using 1.8.0_05-b13 on Mac OS 10.9.3 on a retina MBP. > > On Sun, Jun 1, 2014 at 9:59 PM, Jeff Martin wrote: >> I haven't seen this, but here's a hack you can try: >> >> // Show stage transparent once to get proper drawing >> _stage.setOpacity(0); _stage.show(); _stage.hide(); _stage.setOpacity(1); >> >> I've done this before to trigger Stage to set it's width/height property (which I needed to position the stage property). >> >> jeff >> >> >> On Jun 1, 2014, at 3:18 AM, Robert Kr?ger wrote: >> >>> Hi, >>> >>> I'm in the process of evaluating Java FX 8 for our currently >>> Swing-based product (also Java 8) on OSX. >>> >>> My first attempt to style a stage's background resulted in an ugly >>> flashing effect which I would classify as a show-stopper for >>> delivering a commercial product. This looks like it is caused by the >>> stage being drawn at least once before the style has been applied, and >>> I am wondering what the mistake is since my code is more or less a >>> straight-forward hello world: >>> >>> package jfxtest; >>> >>> import javafx.application.Application; >>> import javafx.scene.Scene; >>> import javafx.scene.control.Button; >>> import javafx.scene.layout.StackPane; >>> import javafx.stage.Stage; >>> >>> public class JXTest extends Application { >>> >>> @Override >>> public void start(Stage primaryStage) throws Exception { >>> final StackPane pane = new StackPane(); >>> final Button closeButton = new Button("Close"); >>> closeButton.setOnAction(event -> primaryStage.close()); >>> pane.getChildren().add(closeButton); >>> final Scene scene = new Scene(pane, 800, 600); >>> scene.getStylesheets().add("dark.css"); >>> scene.getStylesheets(); >>> primaryStage.setScene(scene); >>> primaryStage.setTitle(getClass().getSimpleName()); >>> primaryStage.show(); >>> } >>> >>> public static void main(String[] args) { >>> launch(args); >>> } >>> } >>> >>> with dark.css being: >>> >>> .root { >>> -fx-background: rgb(54, 54, 54); >>> } >>> >>> Is this a Mac-specific problem? Is there a workaround? Which of the >>> two mailing lists is the more appropriate one to post these things >>> (JFX problems which look like they might be platform-specific) to? >>> >>> Thanks, >>> >>> Robert >> From krueger at lesspain.de Mon Jun 2 09:11:28 2014 From: krueger at lesspain.de (=?UTF-8?Q?Robert_Kr=C3=BCger?=) Date: Mon, 2 Jun 2014 11:11:28 +0200 Subject: Ugly flashing when opening a css-styled stage In-Reply-To: <538C3018.2070803@bestsolution.at> References: <30C846C5-1189-47C2-BCEE-35876A33F386@reportmill.com> <538C3018.2070803@bestsolution.at> Message-ID: No, it does not. So it is not the CSS. On Mon, Jun 2, 2014 at 10:04 AM, Tom Schindl wrote: > To rule out CSS is the reason you could directly set the background: > > pane.setBackground(new Background(new BackgroundFill(Color.rgb(54, 54, > 54), CornerRadii.EMPTY, Insets.EMPTY))); > > Does that improve the situation? > > Tom > > > On 02.06.14 09:51, Robert Kr?ger wrote: >> Thanks but it does not seem to improve the situation. >> >> btw, I am using 1.8.0_05-b13 on Mac OS 10.9.3 on a retina MBP. >> >> On Sun, Jun 1, 2014 at 9:59 PM, Jeff Martin wrote: >>> I haven't seen this, but here's a hack you can try: >>> >>> // Show stage transparent once to get proper drawing >>> _stage.setOpacity(0); _stage.show(); _stage.hide(); _stage.setOpacity(1); >>> >>> I've done this before to trigger Stage to set it's width/height property (which I needed to position the stage property). >>> >>> jeff >>> >>> >>> On Jun 1, 2014, at 3:18 AM, Robert Kr?ger wrote: >>> >>>> Hi, >>>> >>>> I'm in the process of evaluating Java FX 8 for our currently >>>> Swing-based product (also Java 8) on OSX. >>>> >>>> My first attempt to style a stage's background resulted in an ugly >>>> flashing effect which I would classify as a show-stopper for >>>> delivering a commercial product. This looks like it is caused by the >>>> stage being drawn at least once before the style has been applied, and >>>> I am wondering what the mistake is since my code is more or less a >>>> straight-forward hello world: >>>> >>>> package jfxtest; >>>> >>>> import javafx.application.Application; >>>> import javafx.scene.Scene; >>>> import javafx.scene.control.Button; >>>> import javafx.scene.layout.StackPane; >>>> import javafx.stage.Stage; >>>> >>>> public class JXTest extends Application { >>>> >>>> @Override >>>> public void start(Stage primaryStage) throws Exception { >>>> final StackPane pane = new StackPane(); >>>> final Button closeButton = new Button("Close"); >>>> closeButton.setOnAction(event -> primaryStage.close()); >>>> pane.getChildren().add(closeButton); >>>> final Scene scene = new Scene(pane, 800, 600); >>>> scene.getStylesheets().add("dark.css"); >>>> scene.getStylesheets(); >>>> primaryStage.setScene(scene); >>>> primaryStage.setTitle(getClass().getSimpleName()); >>>> primaryStage.show(); >>>> } >>>> >>>> public static void main(String[] args) { >>>> launch(args); >>>> } >>>> } >>>> >>>> with dark.css being: >>>> >>>> .root { >>>> -fx-background: rgb(54, 54, 54); >>>> } >>>> >>>> Is this a Mac-specific problem? Is there a workaround? Which of the >>>> two mailing lists is the more appropriate one to post these things >>>> (JFX problems which look like they might be platform-specific) to? >>>> >>>> Thanks, >>>> >>>> Robert >>> > From seeon.birger at oracle.com Mon Jun 2 09:14:25 2014 From: seeon.birger at oracle.com (Seeon Birger) Date: Mon, 2 Jun 2014 02:14:25 -0700 (PDT) Subject: Post commit notification: RT-36546: Implement inertia for Rotate gesture Message-ID: <1e4f9a9e-db55-4ffd-bd03-57d59ec415f7@default> JIRA: HYPERLINK "https://javafx-jira.kenai.com/browse/RT-36546"RT-36546: Implement inertia for Rotate gesture Changeset: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/15cf0c957d82 Regards, Seeon From anthony.petrov at oracle.com Mon Jun 2 13:01:56 2014 From: anthony.petrov at oracle.com (Anthony Petrov) Date: Mon, 02 Jun 2014 17:01:56 +0400 Subject: Ugly flashing when opening a css-styled stage In-Reply-To: References: Message-ID: <538C75C4.9070500@oracle.com> Hi Robert, > Which of the > two mailing lists is the more appropriate one to post these things > (JFX problems which look like they might be platform-specific) to? FYI: the JDK Mac OS X Port Project has been completed long time ago, so currently the macosx-port-dev@ mailing list isn't appropriate for almost anything. Please report JavaFX bugs at: https://javafx-jira.kenai.com/ AWT/Swing/JDK bugs can be reported at: http://bugreport.java.com/bugreport/ (or http://bugs.sun.com/ ) If you wish to participate in the development of the technologies (e.g. you want to contribute a patch for JavaFX or JDK platform), then you're welcome to post your suggestions on the appropriate development mailing lists (openjfx-dev@, awt-dev@, swing-dev@, etc.) -- best regards, Anthony On 6/1/2014 12:18 PM, Robert Kr?ger wrote: > Hi, > > I'm in the process of evaluating Java FX 8 for our currently > Swing-based product (also Java 8) on OSX. > > My first attempt to style a stage's background resulted in an ugly > flashing effect which I would classify as a show-stopper for > delivering a commercial product. This looks like it is caused by the > stage being drawn at least once before the style has been applied, and > I am wondering what the mistake is since my code is more or less a > straight-forward hello world: > > package jfxtest; > > import javafx.application.Application; > import javafx.scene.Scene; > import javafx.scene.control.Button; > import javafx.scene.layout.StackPane; > import javafx.stage.Stage; > > public class JXTest extends Application { > > @Override > public void start(Stage primaryStage) throws Exception { > final StackPane pane = new StackPane(); > final Button closeButton = new Button("Close"); > closeButton.setOnAction(event -> primaryStage.close()); > pane.getChildren().add(closeButton); > final Scene scene = new Scene(pane, 800, 600); > scene.getStylesheets().add("dark.css"); > scene.getStylesheets(); > primaryStage.setScene(scene); > primaryStage.setTitle(getClass().getSimpleName()); > primaryStage.show(); > } > > public static void main(String[] args) { > launch(args); > } > } > > with dark.css being: > > .root { > -fx-background: rgb(54, 54, 54); > } > > Is this a Mac-specific problem? Is there a workaround? Which of the > two mailing lists is the more appropriate one to post these things > (JFX problems which look like they might be platform-specific) to? > > Thanks, > > Robert > From anthony.petrov at oracle.com Mon Jun 2 13:06:05 2014 From: anthony.petrov at oracle.com (Anthony Petrov) Date: Mon, 02 Jun 2014 17:06:05 +0400 Subject: Integrating JFX Dialog/Stage in Swing application In-Reply-To: References: <4E45D9C6-9BE3-4A49-BF53-AFAE5CC67836@reportmill.com> Message-ID: <538C76BD.6090801@oracle.com> > Platform.setImplicitExit(false) ^^^^ This is the correct answer. Please see the javadoc for more details. -- best regards, Anthony On 5/31/2014 10:19 PM, Jeff Martin wrote: > You might try calling that new JFXPanel() in your application main. Maybe go ahead and call Platform.setImplicitExit(false) as well. > > jeff > > > On May 31, 2014, at 9:46 AM, Robert Kr?ger wrote: > >> That was quicker than I had hoped. Invoking close() on the stage >> constructed in this way results in this here: >> >> [ERROR|16:24:23] d.l.m.MediaTool Uncaught exception in thread JavaFX >> Application Thread: [JavaFX Application Thread] >> java.lang.IllegalStateException: This operation is permitted on the >> event thread only; currentThread = JavaFX Application Thread >> at com.sun.glass.ui.Application.checkEventThread(Application.java:427) >> ~[jfxrt.jar:na] >> at com.sun.glass.ui.View.isClosed(View.java:409) ~[jfxrt.jar:na] >> at com.sun.glass.ui.mac.MacTouchInputSupport.notifyNextTouchEvent(MacTouchInputSupport.java:122) >> ~[jfxrt.jar:na] >> at com.sun.glass.ui.mac.MacGestureSupport.notifyNextTouchEvent(MacGestureSupport.java:77) >> ~[jfxrt.jar:na] >> >> I checked in the debugger and com.sun.glass.ui.Application#eventThread >> is null. This makes me believe the environment is not properly >> initialized despite the invocation on new JFXPanel() that I have in >> the EDT before the stage is built. >> >> On Sat, May 31, 2014 at 4:15 PM, Robert Kr?ger wrote: >>> Hi Jeff, >>> >>> thanks, yeah, that's a workaround I have also found. I am just asking >>> myself (and the JFX developers on this list) why this kind of >>> Integration is not supported directly. >>> >>> Good to know that you have used this quite a bit. So I'll try using it >>> until someone brings up a nicer solution or I run into any problems >>> :-). >>> >>> Cheers, >>> >>> Robert >>> >>> On Sat, May 31, 2014 at 3:57 PM, Jeff Martin wrote: >>>> I'm sure this isn't the proper answer, but I have used this call to initialize the FX toolkit on demand from various Swing contexts and it has always worked for me: >>>> >>>> new javafx.embed.swing.JFXPanel(); >>>> >>>> Then you would need the Platform.runLater(). Usually for the whole method that creates your UI and shows the Stage. In some cases, I would make the first line of my method that ends up invoking the JFX dialog something like this: >>>> >>>> public void doSomething() >>>> { >>>> // Ensure we're on FX thread >>>> if(!Platform.isFXApplicationThread()) { >>>> Platform.runLater(new Runnable() { public void run() { doSomething(); } return; } >>>> >>>> ? ... >>>> } >>>> >>>> I've done quite a bit of this and it works without problems (for me). >>>> >>>> jeff martin >>>> >>>> On May 31, 2014, at 7:27 AM, Robert Kr?ger wrote: >>>> >>>>> Hi, >>>>> >>>>> I am trying something which I thought would technically be the easiest >>>>> way of migrating parts of an existing application from Swing to JFX, >>>>> i.e. have a Swing JMenuItem trigger the showing of a JFX stage because >>>>> I thought this would technically even be cleaner than to have a swing >>>>> dialog containing an JFXPanel. >>>>> >>>>> Doing this results in the following Exception: >>>>> >>>>> java.lang.IllegalStateException: Toolkit not initialized >>>>> at com.sun.javafx.application.PlatformImpl.runLater(PlatformImpl.java:276) >>>>> ~[jfxrt.jar:na] >>>>> at com.sun.javafx.application.PlatformImpl.runLater(PlatformImpl.java:271) >>>>> ~[jfxrt.jar:na] >>>>> at javafx.application.Platform.runLater(Platform.java:78) ~[jfxrt.jar:na] >>>>> at de.lesspain.mediatool.menu.ToolsSubmenu$1.actionPerformed(ToolsSubmenu.java:20) >>>>> ~[ >>>>> >>>>> javadoc of runLater states: >>>>> >>>>> This method must not be called before the FX runtime has been >>>>> initialized. For standard JavaFX applications that extend Application, >>>>> and use either the Java launcher or one of the launch methods in the >>>>> Application class to launch the application, the FX runtime is >>>>> initialized by the launcher before the Application class is loaded. >>>>> For Swing applications that use JFXPanel to display FX content, the FX >>>>> runtime is initialized when the first JFXPanel instance is >>>>> constructed. >>>>> >>>>> So this is consistent. Still I am wondering, why it should not be >>>>> supported to just trigger opening a stage from a Swing menu? Either by >>>>> Platform.runLater autoinitializing or offering a separate method like >>>>> Platform.ensureInitialized(). >>>>> >>>>> Am I missing something obvious? >>>>> >>>>> Thanks, >>>>> >>>>> 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 drakkoon at gmail.com Mon Jun 2 14:20:54 2014 From: drakkoon at gmail.com (Guillaume Anctil) Date: Mon, 2 Jun 2014 10:20:54 -0400 Subject: Resizing stage creates delays in platform.runLater pool? Message-ID: Hi, I have encountered severe lag in my application when resizing the stage while an animation is running. I've made this very simple example code to reproduce the issue: https://github.com/Drakkoon/LWJGL-FX/blob/master/src/JavaFXResizeTest.java This is only a tread that acquires a semaphore, prints the System.nanotime() delta and releases the semaphore. There's a button on the stage that can clicked on to start a fade animation and stop it. Resizing the stage while it is animating will create huge deltas in the thread. Stopping the animation brings everything back to normal. Restarting the animation once resized and stopped does not create the huge deltas until you resize again. Does anyone know what is at play here, what underlying system creates the lag and how to avoid this? Thanks. From richard.bair at oracle.com Mon Jun 2 14:23:53 2014 From: richard.bair at oracle.com (Richard Bair) Date: Mon, 2 Jun 2014 07:23:53 -0700 Subject: Resizing stage creates delays in platform.runLater pool? In-Reply-To: References: Message-ID: My guess would be that the number of resize events is swamping the event queue. > On Jun 2, 2014, at 7:20 AM, Guillaume Anctil wrote: > > Hi, > > I have encountered severe lag in my application when resizing the stage > while an animation is running. > > I've made this very simple example code to reproduce the issue: > https://github.com/Drakkoon/LWJGL-FX/blob/master/src/JavaFXResizeTest.java > > This is only a tread that acquires a semaphore, prints the > System.nanotime() delta and releases the semaphore. There's a button on the > stage that can clicked on to start a fade animation and stop it. > > Resizing the stage while it is animating will create huge deltas in the > thread. Stopping the animation brings everything back to normal. Restarting > the animation once resized and stopped does not create the huge deltas > until you resize again. > > Does anyone know what is at play here, what underlying system creates the > lag and how to avoid this? > > Thanks. From drakkoon at gmail.com Mon Jun 2 14:43:28 2014 From: drakkoon at gmail.com (Guillaume Anctil) Date: Mon, 2 Jun 2014 10:43:28 -0400 Subject: Resizing stage creates delays in platform.runLater pool? In-Reply-To: References: Message-ID: It might be something like that. But it seems to be in the platform, not application related. When detecting a resize, I tried putting the thread to sleep for a long amount of time. Something like 5 seconds before adding a new Runnable in the Platform.runLater queue. It's still very slow when it starts again. (Only when there's an animation running). Could it be that the animation pulse + resize swamps he queue and it never gets back to full speed again? Does the pulse have a high priority? The fade animation on the button never seems to slow down. On Mon, Jun 2, 2014 at 10:23 AM, Richard Bair wrote: > My guess would be that the number of resize events is swamping the event > queue. > > > On Jun 2, 2014, at 7:20 AM, Guillaume Anctil wrote: > > > > Hi, > > > > I have encountered severe lag in my application when resizing the stage > > while an animation is running. > > > > I've made this very simple example code to reproduce the issue: > > > https://github.com/Drakkoon/LWJGL-FX/blob/master/src/JavaFXResizeTest.java > > > > This is only a tread that acquires a semaphore, prints the > > System.nanotime() delta and releases the semaphore. There's a button on > the > > stage that can clicked on to start a fade animation and stop it. > > > > Resizing the stage while it is animating will create huge deltas in the > > thread. Stopping the animation brings everything back to normal. > Restarting > > the animation once resized and stopped does not create the huge deltas > > until you resize again. > > > > Does anyone know what is at play here, what underlying system creates the > > lag and how to avoid this? > > > > Thanks. > From anthony.petrov at oracle.com Mon Jun 2 14:43:54 2014 From: anthony.petrov at oracle.com (Anthony Petrov) Date: Mon, 02 Jun 2014 18:43:54 +0400 Subject: Resizing stage creates delays in platform.runLater pool? In-Reply-To: References: Message-ID: <538C8DAA.3000300@oracle.com> You may be hitting this bug: https://javafx-jira.kenai.com/browse/RT-36796 Please try running with -Dprism.order=sw and see if this changes anything. -- best regards, Anthony On 6/2/2014 6:20 PM, Guillaume Anctil wrote: > Hi, > > I have encountered severe lag in my application when resizing the stage > while an animation is running. > > I've made this very simple example code to reproduce the issue: > https://github.com/Drakkoon/LWJGL-FX/blob/master/src/JavaFXResizeTest.java > > This is only a tread that acquires a semaphore, prints the > System.nanotime() delta and releases the semaphore. There's a button on the > stage that can clicked on to start a fade animation and stop it. > > Resizing the stage while it is animating will create huge deltas in the > thread. Stopping the animation brings everything back to normal. Restarting > the animation once resized and stopped does not create the huge deltas > until you resize again. > > Does anyone know what is at play here, what underlying system creates the > lag and how to avoid this? > > Thanks. > From drakkoon at gmail.com Mon Jun 2 14:51:21 2014 From: drakkoon at gmail.com (Guillaume Anctil) Date: Mon, 2 Jun 2014 10:51:21 -0400 Subject: Resizing stage creates delays in platform.runLater pool? In-Reply-To: <538C8DAA.3000300@oracle.com> References: <538C8DAA.3000300@oracle.com> Message-ID: Yes. -Dprism.order=sw does fix the issue. Looking at that bug's sample code and how to reproduce, it looks very similar. Thank you. I'll run it in software mode for now and see how bad it affects performance. I can always apply a hacky workaround of stopping animations when I detect a resize and restarting them once the resize is done. So I guess this is on your radar, and it is being looked into? On Mon, Jun 2, 2014 at 10:43 AM, Anthony Petrov wrote: > You may be hitting this bug: https://javafx-jira.kenai.com/browse/RT-36796 > > Please try running with -Dprism.order=sw and see if this changes anything. > > -- > best regards, > Anthony > > > On 6/2/2014 6:20 PM, Guillaume Anctil wrote: > >> Hi, >> >> I have encountered severe lag in my application when resizing the stage >> while an animation is running. >> >> I've made this very simple example code to reproduce the issue: >> https://github.com/Drakkoon/LWJGL-FX/blob/master/src/ >> JavaFXResizeTest.java >> >> This is only a tread that acquires a semaphore, prints the >> System.nanotime() delta and releases the semaphore. There's a button on >> the >> stage that can clicked on to start a fade animation and stop it. >> >> Resizing the stage while it is animating will create huge deltas in the >> thread. Stopping the animation brings everything back to normal. >> Restarting >> the animation once resized and stopped does not create the huge deltas >> until you resize again. >> >> Does anyone know what is at play here, what underlying system creates the >> lag and how to avoid this? >> >> Thanks. >> >> From steve.x.northover at oracle.com Mon Jun 2 15:06:04 2014 From: steve.x.northover at oracle.com (Stephen F Northover) Date: Mon, 02 Jun 2014 11:06:04 -0400 Subject: Resizing stage creates delays in platform.runLater pool? In-Reply-To: References: <538C8DAA.3000300@oracle.com> Message-ID: <538C92DC.9090506@oracle.com> I suggest you add yourself to the bug. At this time, we are not sure what is causing it. It could be graphics or event queue related as there is evidence that changing either solves the problem. Steve On 2014-06-02, 10:51 AM, Guillaume Anctil wrote: > Yes. -Dprism.order=sw does fix the issue. Looking at that bug's sample code > and how to reproduce, it looks very similar. > > Thank you. I'll run it in software mode for now and see how bad it affects > performance. I can always apply a hacky workaround of stopping animations > when I detect a resize and restarting them once the resize is done. > > So I guess this is on your radar, and it is being looked into? > > > On Mon, Jun 2, 2014 at 10:43 AM, Anthony Petrov > wrote: > >> You may be hitting this bug: https://javafx-jira.kenai.com/browse/RT-36796 >> >> Please try running with -Dprism.order=sw and see if this changes anything. >> >> -- >> best regards, >> Anthony >> >> >> On 6/2/2014 6:20 PM, Guillaume Anctil wrote: >> >>> Hi, >>> >>> I have encountered severe lag in my application when resizing the stage >>> while an animation is running. >>> >>> I've made this very simple example code to reproduce the issue: >>> https://github.com/Drakkoon/LWJGL-FX/blob/master/src/ >>> JavaFXResizeTest.java >>> >>> This is only a tread that acquires a semaphore, prints the >>> System.nanotime() delta and releases the semaphore. There's a button on >>> the >>> stage that can clicked on to start a fade animation and stop it. >>> >>> Resizing the stage while it is animating will create huge deltas in the >>> thread. Stopping the animation brings everything back to normal. >>> Restarting >>> the animation once resized and stopped does not create the huge deltas >>> until you resize again. >>> >>> Does anyone know what is at play here, what underlying system creates the >>> lag and how to avoid this? >>> >>> Thanks. >>> >>> From lehmann at media-interactive.de Mon Jun 2 15:10:10 2014 From: lehmann at media-interactive.de (Werner Lehmann) Date: Mon, 2 Jun 2014 17:10:10 +0200 Subject: Resizing stage creates delays in platform.runLater pool? In-Reply-To: References: Message-ID: <538C93D2.6030508@media-interactive.de> We also experienced laggy animation with a "stage slide out/down" animation. The animation would change stage size and it appeared to have only 2 or 3 frames. Workaround was to use a different animation style: keep stage size but move it 20 px down while changing opacity from low to full, both animated. Maybe this is an option for you, too. Werner On 02.06.2014 16:20, Guillaume Anctil wrote: > Does anyone know what is at play here, what underlying system creates the > lag and how to avoid this? From steve.x.northover at oracle.com Mon Jun 2 15:16:02 2014 From: steve.x.northover at oracle.com (Stephen F Northover) Date: Mon, 02 Jun 2014 11:16:02 -0400 Subject: Resizing stage creates delays in platform.runLater pool? In-Reply-To: <538C93D2.6030508@media-interactive.de> References: <538C93D2.6030508@media-interactive.de> Message-ID: <538C9532.5000205@oracle.com> Does running with the software pipeline fix the problem as suggested in https://javafx-jira.kenai.com/browse/RT-36796 ? Steve On 2014-06-02, 11:10 AM, Werner Lehmann wrote: > We also experienced laggy animation with a "stage slide out/down" > animation. The animation would change stage size and it appeared to > have only 2 or 3 frames. Workaround was to use a different animation > style: keep stage size but move it 20 px down while changing opacity > from low to full, both animated. Maybe this is an option for you, too. > > Werner > > On 02.06.2014 16:20, Guillaume Anctil wrote: >> Does anyone know what is at play here, what underlying system creates >> the >> lag and how to avoid this? From krueger at lesspain.de Mon Jun 2 15:38:56 2014 From: krueger at lesspain.de (=?UTF-8?Q?Robert_Kr=C3=BCger?=) Date: Mon, 2 Jun 2014 17:38:56 +0200 Subject: Ugly flashing when opening a css-styled stage In-Reply-To: <538C75C4.9070500@oracle.com> References: <538C75C4.9070500@oracle.com> Message-ID: Hi Anthony On Mon, Jun 2, 2014 at 3:01 PM, Anthony Petrov wrote: > Hi Robert, > > >> Which of the >> two mailing lists is the more appropriate one to post these things >> (JFX problems which look like they might be platform-specific) to? > > > FYI: the JDK Mac OS X Port Project has been completed long time ago, so > currently the macosx-port-dev@ mailing list isn't appropriate for almost > anything. Oh, that's a surprise. I thought it was more or less the successor of apple-java-dev, i.e. where one discusses issues/problems/questions specific to the Mac port of the JDK/JRE and Java development on the Mac in general. > > Please report JavaFX bugs at: https://javafx-jira.kenai.com/ Submitted as RT-37372 > > AWT/Swing/JDK bugs can be reported at: http://bugreport.java.com/bugreport/ > (or http://bugs.sun.com/ ) > > If you wish to participate in the development of the technologies (e.g. you > want to contribute a patch for JavaFX or JDK platform), then you're welcome > to post your suggestions on the appropriate development mailing lists > (openjfx-dev@, awt-dev@, swing-dev@, etc.) > I've been subscribed to the two lists for a while now and my impression is, it is also a place where people running into problems with the platform's limitations exchange their experience which has been very valuable especially when dealing with a rather new platform but I guess I need to move to the OTN community for this. Thanks and best regards, Robert From lehmann at media-interactive.de Mon Jun 2 16:45:46 2014 From: lehmann at media-interactive.de (Werner Lehmann) Date: Mon, 2 Jun 2014 18:45:46 +0200 Subject: Resizing stage creates delays in platform.runLater pool? In-Reply-To: <538C9532.5000205@oracle.com> References: <538C93D2.6030508@media-interactive.de> <538C9532.5000205@oracle.com> Message-ID: <538CAA3A.50306@media-interactive.de> Probably not (that code is gone so I don't know for sure). For some other (Mac-related) reason, the software pipeline was already used for our internal testing. Didn't seem to make a difference. FWIW, there was also an NPE occurring if someone was crazy enough to show that popup many times by clicking on the button which triggers it - while the previous animation did not yet finish. I think two animations were competing over the same animated properties if that is even possible. Anyway, not an issue anymore. Werner On 02.06.2014 17:16, Stephen F Northover wrote: > Does running with the software pipeline fix the problem as suggested in > https://javafx-jira.kenai.com/browse/RT-36796 ? > > Steve From anthony.petrov at oracle.com Mon Jun 2 18:06:18 2014 From: anthony.petrov at oracle.com (Anthony Petrov) Date: Mon, 02 Jun 2014 22:06:18 +0400 Subject: [8u20] Review request RT-37304: [Mac] handleOnMenuValidation may not be called when using system menu bar Message-ID: <538CBD1A.2040501@oracle.com> Hi Steve, Petr, Please review the fix: https://javafx-jira.kenai.com/browse/RT-37304 -- best regards, Anthony From kevin.rushforth at oracle.com Mon Jun 2 20:23:06 2014 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Mon, 02 Jun 2014 13:23:06 -0700 Subject: Done with weekly JavaFX 8u20 testing Message-ID: <538CDD2A.3090500@oracle.com> We are done with JavaFX 8u20 (in)sanity testing for this week. The repo is open for commits again. -- Kevin From danno.ferrin at shemnon.com Mon Jun 2 20:46:10 2014 From: danno.ferrin at shemnon.com (Danno Ferrin) Date: Mon, 2 Jun 2014 14:46:10 -0600 Subject: Extending a Region to create a JUNG Layout In-Reply-To: References: <090BBF1F-D3A6-465A-8F04-A7515F57E814@gmail.com> Message-ID: Except the license.txt page points to the OSI page that is... BSD 2 Clause. Here's the zoom pane as BSD 2 clause... https://github.com/shemnon/FollowTheBitcoin/commit/effd601965875fec8891f8202afea1f84f1daf54 If you really want me to add the non-endorsement clause I can, but it is kind of awkwardly worded for individual contributors. On Sun, Jun 1, 2014 at 10:49 PM, Jeffrey Guenther < guenther.jeffrey at gmail.com> wrote: > BSD - 3 Clause - http://jung.sourceforge.net/license.txt > > > On Sat, May 31, 2014 at 6:17 PM, Danno Ferrin > wrote: > >> The new matrix classes exposed in JavaFX 8 help a lot. >> >> I'll re-license it BSD. 2 clause, 3 clause, new? Can you point me to a >> preferred header? >> >> >> On Fri, May 30, 2014 at 6:11 PM, Jeffrey Guenther < >> guenther.jeffrey at gmail.com> wrote: >> >>> Danno, thanks! It works super well and has so little code! >>> >>> If I use the class in my JUNG work, I need a BSD license. The rest of >>> that codebase is BSD already. I?ll contact you off list if I go that >>> direction. Right now, I?m trying to get my head wrapped around what it >>> would take to modernize JUNG. >>> >>> >>> On May 30, 2014, at 4:20 PM, Danno Ferrin >>> wrote: >>> >>> > You may find this class valuable, it is a pane that listens to zoom >>> and mouse scroll events in a group, essential for large graphs: >>> > >>> > >>> https://github.com/shemnon/FollowTheBitcoin/blob/master/src/main/groovy/com/shemnon/btc/view/ZoomPane.java >>> > >>> > I haven't had time to harden it and componentize it into a standalone >>> release. If you don't like the license let me know what license you would >>> like. >>> > >>> > --Danno >>> > >>> > ----- Original Message ----- >>> > From: sven.reimers at gmail.com >>> > To: guenther.jeffrey at gmail.com >>> > Cc: openjfx-dev at openjdk.java.net >>> > Sent: Friday, May 30, 2014 1:27:48 AM GMT -07:00 US/Canada Mountain >>> > Subject: Re: Extending a Region to create a JUNG Layout >>> > >>> > Hi Jeffrey, >>> > >>> > I did some prototyping with Jung JavaFX and Java 8, the results are >>> here >>> > >>> > https://bitbucket.org/sreimers/jung8 >>> > >>> > It uses gradle to build and contains an additional library for jungfx. >>> > >>> > Enjoy >>> > >>> > -Sven >>> > >>> > >>> > On Fri, May 30, 2014 at 8:44 AM, Jeffrey Guenther < >>> > guenther.jeffrey at gmail.com> wrote: >>> > >>> >> Hi, >>> >> >>> >> I'm in the midst of exploring how I might port JUNG( >>> >> http://jung.sourceforge.net/index.html) to JavaFX. JUNG is a >>> graph/layout >>> >> tool my lab uses for some of their data visualizations. With the >>> release of >>> >> JavaFX 2, we've started building our prototypes in JavaFX. >>> >> >>> >> Rather than use the JFXSwingPanel, I want to try modifying the JUNG >>> to work >>> >> "natively" in JavaFX. In the long term, I'd like to see JUNG ported >>> >> completely to JavaFX using properties, CSS and the like. >>> >> >>> >> I've built a quick demo ( >>> >> https://gist.github.com/jrguenther/9d0c37329f9928a2b56e) and need >>> help >>> >> going forward. I've been reading the docs and hitting google, but I >>> think I >>> >> need more info. >>> >> >>> >> Can someone point me to a detailed explanation of how to extend >>> Region to >>> >> create my own layout? >>> >> In particular, how can I get a region to relayout it's children when >>> it's >>> >> being resized? >>> >> When does a the region's parent call layoutChildren()? >>> >> If the height and width of the region are set to Double.MAX_VALUE >>> >> indicating the area can grow infinitely, how does the region know >>> what size >>> >> to set itself to? >>> >> >>> >> Thanks, >>> >> Jeff >>> >> >>> > >>> > >>> > >>> > -- >>> > 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 hang.vo at oracle.com Mon Jun 2 20:48:32 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Mon, 02 Jun 2014 20:48:32 +0000 Subject: hg: openjfx/8u-dev/rt: RT-36844 [Monocle] Implement modality support for monocle Message-ID: <201406022048.s52Kmkar023462@aojmv0008> Changeset: f3841fb9697d Author: Lisa.Selle at oracle.com Date: 2014-06-02 16:39 -0400 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/f3841fb9697d RT-36844 [Monocle] Implement modality support for monocle Reviewed by dblaukopf Tested with HelloSanity ! modules/graphics/src/main/java/com/sun/glass/ui/monocle/MonocleWindow.java ! modules/graphics/src/main/java/com/sun/glass/ui/monocle/MonocleWindowManager.java ! modules/graphics/src/main/java/com/sun/glass/ui/monocle/input/MouseInput.java From hang.vo at oracle.com Mon Jun 2 21:18:15 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Mon, 02 Jun 2014 21:18:15 +0000 Subject: hg: openjfx/8u-dev/rt: [BUILD] adding include file to fix errors in monocle Message-ID: <201406022118.s52LIR5B027665@aojmv0008> Changeset: b245bc977cc5 Author: ddhill Date: 2014-06-02 17:04 -0400 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/b245bc977cc5 [BUILD] adding include file to fix errors in monocle Reviewed-by: kselle ! buildSrc/crosslibs/crosslibs-armv6hf.sh ! modules/graphics/src/main/native-glass/monocle/dispman/DispmanScreen.c From hang.vo at oracle.com Mon Jun 2 21:33:10 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Mon, 02 Jun 2014 21:33:10 +0000 Subject: hg: openjfx/8u-dev/rt: [ACCESSIBILITY ONLY] Remove unnecessary ROLE code Message-ID: <201406022133.s52LXMKO029614@aojmv0008> Changeset: edb590702b98 Author: snorthov Date: 2014-06-02 17:25 -0400 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/edb590702b98 [ACCESSIBILITY ONLY] Remove unnecessary ROLE code ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/PaginationSkin.java From hang.vo at oracle.com Mon Jun 2 22:03:25 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Mon, 02 Jun 2014 22:03:25 +0000 Subject: hg: openjfx/8u-dev/rt: RT-37185: [Menu] In a huge menu, the upward scrolling arrow stops working (regression) Message-ID: <201406022203.s52M3bGB003975@aojmv0008> Changeset: 0531e969fa87 Author: jgiles Date: 2014-06-03 09:55 +1200 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/0531e969fa87 RT-37185: [Menu] In a huge menu, the upward scrolling arrow stops working (regression) ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ContextMenuContent.java From hang.vo at oracle.com Tue Jun 3 07:33:35 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 03 Jun 2014 07:33:35 +0000 Subject: hg: openjfx/8u-dev/rt: RT-37313 [EnsembleApp, Hyperlink] Links draw as '...' until mouse is hovered over them (regression) Message-ID: <201406030733.s537Xmm7026672@aojmv0008> Changeset: 30125e062b9e Author: Martin Sladecek Date: 2014-06-03 09:19 +0200 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/30125e062b9e RT-37313 [EnsembleApp, Hyperlink] Links draw as '...' until mouse is hovered over them (regression) Reviewed by: jgiles ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ScrollPaneSkin.java From hang.vo at oracle.com Tue Jun 3 11:18:08 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 03 Jun 2014 11:18:08 +0000 Subject: hg: openjfx/8u-dev/rt: RT-37304: [Mac] handleOnMenuValidation may not be called when using system menu bar Message-ID: <201406031118.s53BILvp005668@aojmv0008> Changeset: 996cfddf18cc Author: Anthony Petrov Date: 2014-06-03 15:10 +0400 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/996cfddf18cc RT-37304: [Mac] handleOnMenuValidation may not be called when using system menu bar Reviewed-by: pchelko, snorthov ! modules/graphics/src/main/native-glass/mac/GlassMenu.m From lehmann at media-interactive.de Tue Jun 3 12:11:26 2014 From: lehmann at media-interactive.de (Werner Lehmann) Date: Tue, 3 Jun 2014 14:11:26 +0200 Subject: Label baseline offset with a graphic Message-ID: <538DBB6E.4080109@media-interactive.de> Hi, I am trying to align labels on their baseline in an hbox. This is surprisingly difficult if some of the labels have a graphic (on the left). Turns out that LabeledSkinBase.computeBaselineOffset() simply uses the max of the text baseline and the height of the graphic: h = Math.max(textBaselineOffset, g.prefHeight(-1)); So, if the label has no graphic its height is 17 with baseline 13. With a 16x16 graphic the height is still 17 but the baseline changes to 16. Which of course messes up the baseline alignment to other controls. Doesn't it make more sense to use the baseline of the actual text (possibly adjusted if the graphic is big)? Screenshot: http://postimg.org/image/kv12r24z9/ Werner From martin.sladecek at oracle.com Tue Jun 3 12:25:50 2014 From: martin.sladecek at oracle.com (Martin Sladecek) Date: Tue, 03 Jun 2014 14:25:50 +0200 Subject: Label baseline offset with a graphic In-Reply-To: <538DBB6E.4080109@media-interactive.de> References: <538DBB6E.4080109@media-interactive.de> Message-ID: <538DBECE.4040301@oracle.com> Hi Werner, this has changed in 8u20. See https://javafx-jira.kenai.com/browse/RT-36729 -Martin On 06/03/2014 02:11 PM, Werner Lehmann wrote: > Hi, > > I am trying to align labels on their baseline in an hbox. This is > surprisingly difficult if some of the labels have a graphic (on the > left). Turns out that > > LabeledSkinBase.computeBaselineOffset() > > simply uses the max of the text baseline and the height of the graphic: > > h = Math.max(textBaselineOffset, g.prefHeight(-1)); > > So, if the label has no graphic its height is 17 with baseline 13. > With a 16x16 graphic the height is still 17 but the baseline changes > to 16. Which of course messes up the baseline alignment to other > controls. > > Doesn't it make more sense to use the baseline of the actual text > (possibly adjusted if the graphic is big)? > > Screenshot: http://postimg.org/image/kv12r24z9/ > > Werner From lehmann at media-interactive.de Tue Jun 3 13:03:31 2014 From: lehmann at media-interactive.de (Werner Lehmann) Date: Tue, 3 Jun 2014 15:03:31 +0200 Subject: Label baseline offset with a graphic In-Reply-To: <538DBECE.4040301@oracle.com> References: <538DBB6E.4080109@media-interactive.de> <538DBECE.4040301@oracle.com> Message-ID: <538DC7A3.4040007@media-interactive.de> Hi Martin, excellent - then I don't have to start looking for workarounds. Werner On 03.06.2014 14:25, Martin Sladecek wrote: > Hi Werner, > this has changed in 8u20. Seehttps://javafx-jira.kenai.com/browse/RT-36729 > > -Martin From vadim.pakhnushev at oracle.com Tue Jun 3 15:34:03 2014 From: vadim.pakhnushev at oracle.com (Vadim Pakhnushev) Date: Tue, 03 Jun 2014 19:34:03 +0400 Subject: [8u20] Review request for RT-20295: Error loading JPG image when scaling Message-ID: <538DEAEB.9040602@oracle.com> Jim, Please review a fix for this: https://javafx-jira.kenai.com/browse/RT-20295 http://cr.openjdk.java.net/~vadim/RT-20295/webrev.00/ Thanks, Vadim From hang.vo at oracle.com Tue Jun 3 16:03:45 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 03 Jun 2014 16:03:45 +0000 Subject: hg: openjfx/8u-dev/rt: RT-37296: adding native lens dalvik files Message-ID: <201406031604.s53G42Ht018962@aojmv0008> Changeset: 2ef2bd3548d5 Author: ddhill Date: 2014-06-03 12:00 -0400 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/2ef2bd3548d5 RT-37296: adding native lens dalvik files Contributed-by: johanvos + modules/graphics/src/main/native-glass/lens/dalvik/dalvikConst.h + modules/graphics/src/main/native-glass/lens/dalvik/dalvikInput.c + modules/graphics/src/main/native-glass/lens/dalvik/dalvikInput.h + modules/graphics/src/main/native-glass/lens/dalvik/dalvikUtils.c + modules/graphics/src/main/native-glass/lens/dalvik/dalvikUtils.h + modules/graphics/src/main/native-glass/lens/dalvik/screen.c From anthony.petrov at oracle.com Tue Jun 3 17:39:30 2014 From: anthony.petrov at oracle.com (Anthony Petrov) Date: Tue, 03 Jun 2014 21:39:30 +0400 Subject: [8u20] Review request: RT-35953: [SwingNode] Swing component in JavaFx swing node no right click event Message-ID: <538E0852.2000201@oracle.com> Hi Steve, Please review the fix: https://javafx-jira.kenai.com/browse/RT-35953 -- best regards, Anthony From hang.vo at oracle.com Tue Jun 3 19:33:32 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 03 Jun 2014 19:33:32 +0000 Subject: hg: openjfx/8u-dev/rt: 5 new changesets Message-ID: <201406031934.s53JYDOW019774@aojmv0008> Changeset: 111fabdf0a8c Author: Anthony Petrov Date: 2014-06-03 23:17 +0400 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/111fabdf0a8c RT-35953: [SwingNode] Swing component in JavaFx swing node no right click event Reviewed-by: snorthov ! modules/swing/src/main/java/javafx/embed/swing/SwingEvents.java ! modules/swing/src/main/java/javafx/embed/swing/SwingNode.java Changeset: 5f2b469230fd Author: David Grieve Date: 2014-06-03 15:22 -0400 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/5f2b469230fd [DOCS-ONLY] RT-36961: update ListView substructure in cssref ! modules/graphics/src/main/docs/javafx/scene/doc-files/cssref.html Changeset: c94e47e6cc6d Author: David Grieve Date: 2014-06-03 15:22 -0400 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/c94e47e6cc6d [DOCS-ONLY] RT-22136: update radial-gradient spec in cssref ! modules/graphics/src/main/docs/javafx/scene/doc-files/cssref.html Changeset: 882320722dc1 Author: David Grieve Date: 2014-06-03 15:22 -0400 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/882320722dc1 [DOCS-ONLY] RT-36393: update ScrollPane substructure section of cssref ! modules/graphics/src/main/docs/javafx/scene/doc-files/cssref.html Changeset: 408bd7051587 Author: David Grieve Date: 2014-06-03 15:22 -0400 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/408bd7051587 [DOCS-ONLY] RT-37176: update cssref with @font-face and @import ! modules/graphics/src/main/docs/javafx/scene/doc-files/cssref.html From david.grieve at oracle.com Tue Jun 3 21:03:08 2014 From: david.grieve at oracle.com (David Grieve) Date: Tue, 03 Jun 2014 17:03:08 -0400 Subject: [8u] Review Request: (RT-23891) [HTMLEditor] content is confused during selection, styles are lost Message-ID: <538E380C.3060300@oracle.com> Please review diff which is entered as a comment in the bug. The diff changes a MouseEvent handler to update the toolbar state on mouse-released rather than updating the toolbar state on _every_ mouse event. https://javafx-jira.kenai.com/browse/RT-23891 From hang.vo at oracle.com Tue Jun 3 21:03:51 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 03 Jun 2014 21:03:51 +0000 Subject: hg: openjfx/8u-dev/rt: [BUILD] correct dup line error in x86egl.gradle Message-ID: <201406032104.s53L45ln003639@aojmv0008> Changeset: 5e9c0547a04f Author: ddhill Date: 2014-06-03 16:45 -0400 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/5e9c0547a04f [BUILD] correct dup line error in x86egl.gradle ! buildSrc/x86egl.gradle From jonathan.giles at oracle.com Tue Jun 3 22:07:24 2014 From: jonathan.giles at oracle.com (Jonathan Giles) Date: Wed, 04 Jun 2014 10:07:24 +1200 Subject: [API REVIEW REQUEST] RT-5747: Spinner control Message-ID: <538E471C.9050708@oracle.com> Hi all, A Spinner control is in the planning stages for JavaFX 8u40, and so when my 8u20 backlog has got down (or near to) zero recently, I've been prototyping one possible implementation of the Spinner. I'm now at the stage where I would appreciate more eyes on the API, so I have published the JavaDoc as a zip file attachment to the jira issue [1] - see spinner-javadoc.zip. Additionally, a relatively recent implementation is also available - download spinner.zip - but note that the visuals, whilst passable, are not in their final form in any way! I'm aware that RT-5747 has become relatively long winded, but I would like to draw attention to my most recent comment [2], where I'm specifically pointing out areas that need more discussion. As always I have an opinion on these issues, but I'm keen to hear yours. Also, for those of you that look at the API, you may be interested to note the stepping away from using a List for the backing model. I have some more early discussion on this decision at [3], but you probably want to read through the rest of the comments to fully understand! Suffice to say, nothing is set in stone - this is still in the prototype stage (although rather far along). If people could post their thoughts to the Jira issue, rather than as a response to this email, that would be appreciated. [1] https://javafx-jira.kenai.com/browse/RT-5747 [2] https://javafx-jira.kenai.com/browse/RT-5747?focusedCommentId=411207#comment-411207 [3] https://javafx-jira.kenai.com/browse/RT-5747?focusedCommentId=409920#comment-409920 Thanks, -- Jonathan From hang.vo at oracle.com Tue Jun 3 23:03:07 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 03 Jun 2014 23:03:07 +0000 Subject: hg: openjfx/8u-dev/rt: RT-37385: [Font] Two Font.loadFont calls on OSX returns null second time a font is loaded Message-ID: <201406032303.s53N3QPH021123@aojmv0008> Changeset: 30a2acd048e5 Author: Felipe Heidrich Date: 2014-06-03 15:53 -0700 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/30a2acd048e5 RT-37385: [Font] Two Font.loadFont calls on OSX returns null second time a font is loaded ! modules/graphics/src/main/java/com/sun/javafx/font/PrismFontFactory.java From hang.vo at oracle.com Tue Jun 3 23:48:11 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 03 Jun 2014 23:48:11 +0000 Subject: hg: openjfx/8u-dev/rt: RT-23891: update toolbar state only on mouse release Message-ID: <201406032348.s53NmPbS028811@aojmv0008> Changeset: 89c7ea2b6709 Author: David Grieve Date: 2014-06-03 19:40 -0400 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/89c7ea2b6709 RT-23891: update toolbar state only on mouse release ! modules/web/src/main/java/com/sun/javafx/scene/web/skin/HTMLEditorSkin.java From hang.vo at oracle.com Wed Jun 4 00:48:37 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Wed, 04 Jun 2014 00:48:37 +0000 Subject: hg: openjfx/8u-dev/rt: 2 new changesets Message-ID: <201406040048.s540mukw007344@aojmv0008> Changeset: d674eb219ae7 Author: shemnon Date: 2014-06-03 08:32 -0600 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/d674eb219ae7 RT-37384: SERVICE_HINT option is broken in OEL Summary: init script is package name, not app filesystem name. Fix in DEB and RPM builds ! modules/fxpackager/src/main/java/com/oracle/tools/packager/linux/LinuxDebBundler.java ! modules/fxpackager/src/main/java/com/oracle/tools/packager/linux/LinuxRpmBundler.java Changeset: f7a7ff507c0e Author: shemnon Date: 2014-06-03 18:33 -0600 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/f7a7ff507c0e RT-37384: SERVICE_HINT option is broken in OEL Summary: Deb fixes - daemon name needs to be 16 characters or less, also stop on uninstall broken. Add some test packagers for linux daemons ! modules/fxpackager/src/main/java/com/oracle/tools/packager/linux/LinuxDebBundler.java ! modules/fxpackager/src/main/resources/com/oracle/tools/packager/linux/LinuxDebBundler.properties ! modules/fxpackager/src/main/resources/com/oracle/tools/packager/linux/template.prerm ! modules/fxpackager/src/test/java/com/oracle/tools/packager/linux/LinuxDebBundlerTest.java ! modules/fxpackager/src/test/java/com/oracle/tools/packager/linux/LinuxRpmBundlerTest.java + modules/fxpackager/src/test/java/hello/HelloService.java From hang.vo at oracle.com Wed Jun 4 06:33:27 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Wed, 04 Jun 2014 06:33:27 +0000 Subject: hg: openjfx/8u-dev/rt: [TESTS] RT-36184 Add tests for custom TraversalEngines that were introduced in RT-36065 Message-ID: <201406040633.s546Xf2R024810@aojmv0008> Changeset: 9d8a6ca92731 Author: Martin Sladecek Date: 2014-06-04 08:29 +0200 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/9d8a6ca92731 [TESTS] RT-36184 Add tests for custom TraversalEngines that were introduced in RT-36065 ! modules/graphics/src/main/java/com/sun/javafx/scene/traversal/TopMostTraversalEngine.java + modules/graphics/src/test/java/com/sun/javafx/scene/traversal/TopMostTraversalEngineTest.java From hang.vo at oracle.com Wed Jun 4 07:48:34 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Wed, 04 Jun 2014 07:48:34 +0000 Subject: hg: openjfx/8u-dev/rt: Sync up SceneBuilder changes Message-ID: <201406040748.s547mkFR005289@aojmv0008> Changeset: 1ed6990e4ff3 Author: yjoan Date: 2014-06-04 09:32 +0200 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/1ed6990e4ff3 Sync up SceneBuilder changes ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/css/DocumentWindow.css ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/css/ThemeDark.css - apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/Background-Neutral-Uniform.png ! apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/PreferencesRecordGlobal.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/css/Theme.css ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/ImageUtils.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/images/ui/Background-Neutral-Uniform.png ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/job/DeleteObjectSelectionJob.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/content/ContentPanelController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/InspectorPanelController.java ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/util/DesignImage.java + apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/util/DesignImage.png - apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/effectpicker/EffectPicker.css ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/effectpicker/EffectPicker.fxml - apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/PaintPicker.css ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/PaintPicker.fxml ! apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/colorpicker/ColorPicker.css ! apps/scenebuilder/samples/IssueTrackingBiDi/src/issuetrackingbidi/model/TrackingServiceStub.java ! apps/scenebuilder/samples/IssueTrackingLite/src/issuetrackinglite/model/TrackingServiceStub.java From hang.vo at oracle.com Wed Jun 4 15:04:14 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Wed, 04 Jun 2014 15:04:14 +0000 Subject: hg: openjfx/8u-dev/rt: [BUILD/DOC] update armhf toolchain builder script, add armsf script. Message-ID: <201406041504.s54F4RQ7020753@aojmv0008> Changeset: c14699348b0d Author: ddhill Date: 2014-06-04 10:48 -0400 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/c14699348b0d [BUILD/DOC] update armhf toolchain builder script, add armsf script. ! buildSrc/crosslibs/crosslibs-armv6hf.sh + buildSrc/crosslibs/crosslibs-armv6sf.sh From steve.x.northover at oracle.com Wed Jun 4 15:07:21 2014 From: steve.x.northover at oracle.com (Stephen F Northover) Date: Wed, 04 Jun 2014 11:07:21 -0400 Subject: [API REVIEW REQUEST] RT-5747: Spinner control In-Reply-To: <538E471C.9050708@oracle.com> References: <538E471C.9050708@oracle.com> Message-ID: <538F3629.4050603@oracle.com> Thanks Jonathan! Although the JIRA is long winded, at least it captures all the thinking in one place. Steve On 2014-06-03, 6:07 PM, Jonathan Giles wrote: > Hi all, > > A Spinner control is in the planning stages for JavaFX 8u40, and so > when my 8u20 backlog has got down (or near to) zero recently, I've > been prototyping one possible implementation of the Spinner. I'm now > at the stage where I would appreciate more eyes on the API, so I have > published the JavaDoc as a zip file attachment to the jira issue [1] - > see spinner-javadoc.zip. Additionally, a relatively recent > implementation is also available - download spinner.zip - but note > that the visuals, whilst passable, are not in their final form in any > way! > > I'm aware that RT-5747 has become relatively long winded, but I would > like to draw attention to my most recent comment [2], where I'm > specifically pointing out areas that need more discussion. As always I > have an opinion on these issues, but I'm keen to hear yours. > > Also, for those of you that look at the API, you may be interested to > note the stepping away from using a List for the backing model. I have > some more early discussion on this decision at [3], but you probably > want to read through the rest of the comments to fully understand! > Suffice to say, nothing is set in stone - this is still in the > prototype stage (although rather far along). > > If people could post their thoughts to the Jira issue, rather than as > a response to this email, that would be appreciated. > > [1] https://javafx-jira.kenai.com/browse/RT-5747 > [2] > https://javafx-jira.kenai.com/browse/RT-5747?focusedCommentId=411207#comment-411207 > [3] > https://javafx-jira.kenai.com/browse/RT-5747?focusedCommentId=409920#comment-409920 > > Thanks, > -- Jonathan From hang.vo at oracle.com Wed Jun 4 15:33:22 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Wed, 04 Jun 2014 15:33:22 +0000 Subject: hg: openjfx/8u-dev/rt: RT-37384: SERVICE_HINT option is broken in OEL Message-ID: <201406041533.s54FXZfW025465@aojmv0008> Changeset: cd489ba433b6 Author: shemnon Date: 2014-06-04 09:21 -0600 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/cd489ba433b6 RT-37384: SERVICE_HINT option is broken in OEL Summary: Windows fixes - there were also some problems with names and strange characters in windows services. ! modules/fxpackager/src/main/java/com/oracle/tools/packager/StandardBundlerParam.java ! modules/fxpackager/src/main/java/com/oracle/tools/packager/linux/LinuxAppBundler.java ! modules/fxpackager/src/main/java/com/oracle/tools/packager/linux/LinuxDebBundler.java ! modules/fxpackager/src/main/java/com/oracle/tools/packager/linux/LinuxRpmBundler.java ! modules/fxpackager/src/main/java/com/oracle/tools/packager/windows/WinMsiBundler.java ! modules/fxpackager/src/main/native/launcher/win/WinLauncherSvc.cpp ! modules/fxpackager/src/main/resources/com/oracle/tools/packager/StandardBundlerParam.properties ! modules/fxpackager/src/main/resources/com/oracle/tools/packager/linux/LinuxAppBundler.properties ! modules/fxpackager/src/test/java/com/oracle/tools/packager/linux/LinuxDebBundlerTest.java ! modules/fxpackager/src/test/java/com/oracle/tools/packager/windows/WinServiceBundlerTest.java From hang.vo at oracle.com Wed Jun 4 15:48:30 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Wed, 04 Jun 2014 15:48:30 +0000 Subject: hg: openjfx/8u-dev/rt: RT-37048, RT-37153, RT-36242 switch over to a new ARM cross toolchain to solve multiple library issues Message-ID: <201406041548.s54FmhVP028861@aojmv0008> Changeset: 15fb66ba7ea2 Author: ddhill Date: 2014-06-04 11:36 -0400 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/15fb66ba7ea2 RT-37048,RT-37153,RT-36242 switch over to a new ARM cross toolchain to solve multiple library issues ! buildSrc/armv5sf.gradle ! buildSrc/armv6hf.gradle ! buildSrc/armv6sf.gradle ! buildSrc/armv7hf.gradle ! buildSrc/armv7sf.gradle From hang.vo at oracle.com Wed Jun 4 17:48:15 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Wed, 04 Jun 2014 17:48:15 +0000 Subject: hg: openjfx/8u-dev/rt: RT-37153 fixing include path for ARM sf and media Message-ID: <201406041748.s54HmTgj016111@aojmv0008> Changeset: 8b466ca2b9ed Author: ddhill Date: 2014-06-04 13:36 -0400 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/8b466ca2b9ed RT-37153 fixing include path for ARM sf and media ! buildSrc/armv5sf.gradle ! buildSrc/armv6sf.gradle ! buildSrc/armv7sf.gradle From johan at lodgon.com Wed Jun 4 19:07:40 2014 From: johan at lodgon.com (Johan Vos) Date: Wed, 4 Jun 2014 21:07:40 +0200 Subject: retrolambda In-Reply-To: References: Message-ID: As a follow-up on this: I managed to run the retrolambda process in the gradle build for each module (rather than in the end unpacking everything). There is still the issue with jfxrt.jar on the classpath. Since it is in the ext directory, I can't remove it by specifying the Xbootclasspath. I tried to prepend the Xbootclasspath in the retrolambda process with the classes generated by openjfx, but in that case, they are loaded by the System classloader and ignored by retrolambda. I'll try to discuss this in the retrolambda project. In theory, I could move jre/lib/ext/jfxrt.jar to some temporary directory, run retrolambda and move jfxrt.jar back, but that requires root access in most cases and it is very ugly. Is there a better way to ignore the jfxrt.jar in the Java 8 SDK? - Johan 2014-05-02 11:43 GMT+02:00 Johan Vos : > Hi, > > I was able to refactor all lambda's out of the class files of jfxrt.jar > using RetroLambda 1.1.5-SNAPSHOT.jar (after adding the eclipse swt jar to > the classpath and removing jfxrt.jar from the bootclasspath). > > This means that the builds for platforms that don't support invokedynamic > should be able to work with the OpenJFX code base. > I'll try to add the retrolambda gradle plugin somehow in the openjfx > gradle system. As I'm not an expert with gradle, some help would be > appreciated. > > At this moment, I simply unzipped the jfxrt.jar, removed the jfxrt.jar > from the lib/ext directory in the Java 8 install, and executed > > java -Dretrolambda.inputDir=class > -Dretrolambda.classpath=class:org.eclipse.swt.gtk.linux.x86_64_3.7.2.v3740f-.jar > -Dretrolambda.outputDir=retroclass -javaagent:retrolambda.jar -jar > retrolambda.jar > > > It should be possible to optionally do this retrocompiling task during the > build of OpenJFX. In my JavaFX-Android applications, I use > gradle-retrolambda as follows: > buildscript { > repositories { > mavenCentral() > } > > dependencies { > classpath 'me.tatarka:gradle-retrolambda:1.3.0' > } > } > ... > apply plugin: 'retrolambda' > > - Johan > From richard.bair at oracle.com Wed Jun 4 19:10:40 2014 From: richard.bair at oracle.com (Richard Bair) Date: Wed, 4 Jun 2014 12:10:40 -0700 Subject: retrolambda In-Reply-To: References: Message-ID: We?ve been in the practice of having two installs of java 8 ? one with jfxrt.jar in the class path and one without it. You can also remove it via setting the ext.classpath if I remember correctly (our main build.gradle is playing this trick I think). That also wipes out Nashorn (which is also in the ext class path) but I think that?s OK in this case. Richard On Jun 4, 2014, at 12:07 PM, Johan Vos wrote: > As a follow-up on this: I managed to run the retrolambda process in the > gradle build for each module (rather than in the end unpacking everything). > There is still the issue with jfxrt.jar on the classpath. Since it is in > the ext directory, I can't remove it by specifying the Xbootclasspath. I > tried to prepend the Xbootclasspath in the retrolambda process with the > classes generated by openjfx, but in that case, they are loaded by the > System classloader and ignored by retrolambda. > > I'll try to discuss this in the retrolambda project. > > In theory, I could move jre/lib/ext/jfxrt.jar to some temporary directory, > run retrolambda and move jfxrt.jar back, but that requires root access in > most cases and it is very ugly. > > Is there a better way to ignore the jfxrt.jar in the Java 8 SDK? > > - Johan > > > 2014-05-02 11:43 GMT+02:00 Johan Vos : > >> Hi, >> >> I was able to refactor all lambda's out of the class files of jfxrt.jar >> using RetroLambda 1.1.5-SNAPSHOT.jar (after adding the eclipse swt jar to >> the classpath and removing jfxrt.jar from the bootclasspath). >> >> This means that the builds for platforms that don't support invokedynamic >> should be able to work with the OpenJFX code base. >> I'll try to add the retrolambda gradle plugin somehow in the openjfx >> gradle system. As I'm not an expert with gradle, some help would be >> appreciated. >> >> At this moment, I simply unzipped the jfxrt.jar, removed the jfxrt.jar >> from the lib/ext directory in the Java 8 install, and executed >> >> java -Dretrolambda.inputDir=class >> -Dretrolambda.classpath=class:org.eclipse.swt.gtk.linux.x86_64_3.7.2.v3740f-.jar >> -Dretrolambda.outputDir=retroclass -javaagent:retrolambda.jar -jar >> retrolambda.jar >> >> >> It should be possible to optionally do this retrocompiling task during the >> build of OpenJFX. In my JavaFX-Android applications, I use >> gradle-retrolambda as follows: >> buildscript { >> repositories { >> mavenCentral() >> } >> >> dependencies { >> classpath 'me.tatarka:gradle-retrolambda:1.3.0' >> } >> } >> ... >> apply plugin: 'retrolambda' >> >> - Johan >> From kevin.rushforth at oracle.com Wed Jun 4 19:23:02 2014 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Wed, 04 Jun 2014 12:23:02 -0700 Subject: retrolambda In-Reply-To: References: Message-ID: <538F7216.7040000@oracle.com> The FX build already relies on the fact that jfxrt.jar is removed from the JDK with which you build. In fact, the build should detect and fail if this is not the case. -- Kevin Johan Vos wrote: > As a follow-up on this: I managed to run the retrolambda process in the > gradle build for each module (rather than in the end unpacking everything). > There is still the issue with jfxrt.jar on the classpath. Since it is in > the ext directory, I can't remove it by specifying the Xbootclasspath. I > tried to prepend the Xbootclasspath in the retrolambda process with the > classes generated by openjfx, but in that case, they are loaded by the > System classloader and ignored by retrolambda. > > I'll try to discuss this in the retrolambda project. > > In theory, I could move jre/lib/ext/jfxrt.jar to some temporary directory, > run retrolambda and move jfxrt.jar back, but that requires root access in > most cases and it is very ugly. > > Is there a better way to ignore the jfxrt.jar in the Java 8 SDK? > > - Johan > > > 2014-05-02 11:43 GMT+02:00 Johan Vos : > > >> Hi, >> >> I was able to refactor all lambda's out of the class files of jfxrt.jar >> using RetroLambda 1.1.5-SNAPSHOT.jar (after adding the eclipse swt jar to >> the classpath and removing jfxrt.jar from the bootclasspath). >> >> This means that the builds for platforms that don't support invokedynamic >> should be able to work with the OpenJFX code base. >> I'll try to add the retrolambda gradle plugin somehow in the openjfx >> gradle system. As I'm not an expert with gradle, some help would be >> appreciated. >> >> At this moment, I simply unzipped the jfxrt.jar, removed the jfxrt.jar >> from the lib/ext directory in the Java 8 install, and executed >> >> java -Dretrolambda.inputDir=class >> -Dretrolambda.classpath=class:org.eclipse.swt.gtk.linux.x86_64_3.7.2.v3740f-.jar >> -Dretrolambda.outputDir=retroclass -javaagent:retrolambda.jar -jar >> retrolambda.jar >> >> >> It should be possible to optionally do this retrocompiling task during the >> build of OpenJFX. In my JavaFX-Android applications, I use >> gradle-retrolambda as follows: >> buildscript { >> repositories { >> mavenCentral() >> } >> >> dependencies { >> classpath 'me.tatarka:gradle-retrolambda:1.3.0' >> } >> } >> ... >> apply plugin: 'retrolambda' >> >> - Johan >> >> From David.Hill at Oracle.com Wed Jun 4 19:28:18 2014 From: David.Hill at Oracle.com (David Hill) Date: Wed, 04 Jun 2014 15:28:18 -0400 Subject: Change of crosstools for arm builds Message-ID: <538F7352.2020600@Oracle.com> Just a heads up - I changed the ARM crosstools (headers and libraries) today. I have aJira task to update the OpenJFX webpage, but it may take a few days to get to it. It entails using a (hopefully) easier script that pulls packages, rather than peeling them from a Pi sd card. Let me know if you need the instructions sooner. -- David Hill Java Embedded Development There cannot be a crisis next week. My schedule is already full. -- Henry Kissinger (1923 - ) From hang.vo at oracle.com Wed Jun 4 20:48:31 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Wed, 04 Jun 2014 20:48:31 +0000 Subject: hg: openjfx/8u-dev/rt: 2 new changesets Message-ID: <201406042048.s54Kmoux013316@aojmv0008> Changeset: 64bdc268649c Author: hudson Date: 2014-06-04 07:54 -0700 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/64bdc268649c Added tag 8u20-b17 for changeset 3308d6a77846 ! .hgtags Changeset: b1d8f27e99cc Author: kcr Date: 2014-06-04 13:43 -0700 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/b1d8f27e99cc Automated merge with ssh://jfxsrc.us.oracle.com//javafx/8u/master/jfx/rt - apps/scenebuilder/SceneBuilderApp/src/com/oracle/javafx/scenebuilder/app/preferences/Background-Neutral-Uniform.png - apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/effectpicker/EffectPicker.css - apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/util/control/paintpicker/PaintPicker.css From hang.vo at oracle.com Wed Jun 4 21:03:38 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Wed, 04 Jun 2014 21:03:38 +0000 Subject: hg: openjfx/8u-dev/rt: RT-37297: [Accessibility, Windows] Next item (caps_lock+arrow_left) does not work well on List Message-ID: <201406042103.s54L3qPK015610@aojmv0008> Changeset: 1abc0126b89d Author: Felipe Heidrich Date: 2014-06-04 13:54 -0700 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/1abc0126b89d RT-37297: [Accessibility, Windows] Next item (caps_lock+arrow_left) does not work well on List ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ListViewSkin.java ! modules/controls/src/main/java/javafx/scene/control/ListView.java ! modules/graphics/src/main/java/com/sun/glass/ui/win/WinAccessible.java From hang.vo at oracle.com Wed Jun 4 23:03:37 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Wed, 04 Jun 2014 23:03:37 +0000 Subject: hg: openjfx/8u-dev/rt: RT-37402: Allow Windows MSI Bundler productVersion to differ from the general version Message-ID: <201406042303.s54N3o2o003135@aojmv0008> Changeset: 1e55ca95e704 Author: shemnon Date: 2014-06-04 16:45 -0600 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/1e55ca95e704 RT-37402: Allow Windows MSI Bundler productVersion to differ from the general version Summary: add 'win.msi.productVersion' bundler arg to override version ! modules/fxpackager/src/main/java/com/oracle/tools/packager/windows/WinMsiBundler.java ! modules/fxpackager/src/main/resources/com/oracle/tools/packager/windows/WinMsiBundler.properties ! modules/fxpackager/src/test/java/com/oracle/tools/packager/windows/WinMsiBundlerTest.java From rafaljfx at gmail.com Wed Jun 4 23:13:44 2014 From: rafaljfx at gmail.com (Rafal Leibzig) Date: Thu, 5 Jun 2014 01:13:44 +0200 Subject: How to scale control properly? Message-ID: Hi, Sorry for disturbing you, but I have a question and no one answered me on other forums. My question is rather simple: http://stackoverflow.com/questions/23997115/how-to-scale-control-and-layout-it-properly-in-javafx Thanks in advance. You are the experts. :) -- Rafal From james.graham at oracle.com Thu Jun 5 03:57:03 2014 From: james.graham at oracle.com (Jim Graham) Date: Wed, 04 Jun 2014 20:57:03 -0700 Subject: 8u20 review request: RT-36016 dirty region problems with large blurs Message-ID: <538FEA8F.7040209@oracle.com> webrev: http://cr.openjdk.java.net/~flar/RT-36016/webrev.00/ Jira: https://javafx-jira.kenai.com/browse/RT-36016 This is a regression caused by the recent work on blurs/shadows on retina... ...jim From hang.vo at oracle.com Thu Jun 5 06:33:17 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Thu, 05 Jun 2014 06:33:17 +0000 Subject: hg: openjfx/8u-dev/rt: RT-37156 [Layout] Textarea can not be seen in the application Message-ID: <201406050633.s556XTSG006160@aojmv0008> Changeset: 9acf98773cdc Author: Martin Sladecek Date: 2014-06-05 08:22 +0200 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/9acf98773cdc RT-37156 [Layout] Textarea can not be seen in the application Reviewed by: dgrieve ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TextAreaSkin.java From martin.sladecek at oracle.com Thu Jun 5 14:12:44 2014 From: martin.sladecek at oracle.com (Martin Sladecek) Date: Thu, 05 Jun 2014 16:12:44 +0200 Subject: How to scale control properly? In-Reply-To: References: Message-ID: <53907ADC.2000604@oracle.com> Hi Rafal, you can wrap the control in a Group. That way, it's (actually Group's) layoutBounds will be the same as it's transformed bounds (boundsInParent). Alternatively you can use css styling, but I don't know much about how to do it properly, maybe Jonathan can help you there. -Martin On 06/05/2014 01:13 AM, Rafal Leibzig wrote: > Hi, > > Sorry for disturbing you, but I have a question and no one answered me on > other forums. > > My question is rather simple: > > http://stackoverflow.com/questions/23997115/how-to-scale-control-and-layout-it-properly-in-javafx > > > Thanks in advance. > You are the experts. :) > > From hang.vo at oracle.com Thu Jun 5 14:18:33 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Thu, 05 Jun 2014 14:18:33 +0000 Subject: hg: openjfx/8u-dev/rt: RT-37396: [CSS] pseudo-class state not taking effect Message-ID: <201406051418.s55EIjKj016169@aojmv0008> Changeset: 2a1db2fff116 Author: David Grieve Date: 2014-06-05 10:15 -0400 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/2a1db2fff116 RT-37396: [CSS] pseudo-class state not taking effect ! modules/graphics/src/main/java/javafx/scene/CssStyleHelper.java From hang.vo at oracle.com Thu Jun 5 14:48:28 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Thu, 05 Jun 2014 14:48:28 +0000 Subject: hg: openjfx/8u-dev/rt: RT-37373 [Unit Tests] - Intermittent failure in com.sun.glass.ui.monocle.input.RotateTest Message-ID: <201406051448.s55EmgaB020206@aojmv0008> Changeset: eb7ab0261393 Author: Elina Kleyman Date: 2014-06-05 17:41 +0300 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/eb7ab0261393 RT-37373 [Unit Tests] - Intermittent failure in com.sun.glass.ui.monocle.input.RotateTest ! tests/system/src/test/java/com/sun/glass/ui/monocle/input/RotateTest.java From drakkoon at gmail.com Thu Jun 5 16:05:10 2014 From: drakkoon at gmail.com (Guillaume Anctil) Date: Thu, 5 Jun 2014 12:05:10 -0400 Subject: FXMLLoader checking code conventions too much? Message-ID: Hi, on a project I work on, the code convention does not follow the Java standard and class names start with a lower case 'c': "cSomeClass.java" In the parsing of the FXMLLoader, the loadType function looks like this: int i = name.indexOf('.'); int n = name.length(); while (i != -1 && i < n && Character.isLowerCase(name.charAt(i + 1))) { i = name.indexOf('.', i + 1); } if (i == -1 || i == n) { throw new ClassNotFoundException(); } String packageName = name.substring(0, i); String className = name.substring(i + 1); This causes a ClassNotFoundException on our custom controls because of the lowercase check. I was wondering if a simple: int i = name.lastIndexOf('.'); Instead of the lowercase check could be viable. The ClassNotFoundException would still be thrown later on, when trying to actually load the class. Is there a reason that I don't see why the convention _must_ be upheld in this case? Thanks. From rafaljfx at gmail.com Thu Jun 5 18:41:25 2014 From: rafaljfx at gmail.com (Rafal Leibzig) Date: Thu, 5 Jun 2014 20:41:25 +0200 Subject: How to scale control properly? In-Reply-To: <53907ADC.2000604@oracle.com> References: <53907ADC.2000604@oracle.com> Message-ID: Thanks for advice. I know this trick with wrapping in a Group, but as i wrote on stackoverflow, there is dropshadow effect after moving mouse over the control. This effect extends group's layoutBounds for a while. And when mouse leaves out the control, then group's layoutBounds shrink. I found the sources/css for this control: https://bitbucket.org/controlsfx/controlsfx/src/96f40eb0b579277139192e2398fbbaf7fd01f91e/controlsfx/src/main/resources/org/controlsfx/control/rating.css?at=default -- Rafal 2014-06-05 16:12 GMT+02:00 Martin Sladecek : > Hi Rafal, > you can wrap the control in a Group. That way, it's (actually Group's) > layoutBounds will be the same as it's transformed bounds (boundsInParent). > Alternatively you can use css styling, but I don't know much about how to > do it properly, maybe Jonathan can help you there. > > -Martin > > > On 06/05/2014 01:13 AM, Rafal Leibzig wrote: > >> Hi, >> >> Sorry for disturbing you, but I have a question and no one answered me on >> other forums. >> >> My question is rather simple: >> >> http://stackoverflow.com/questions/23997115/how-to- >> scale-control-and-layout-it-properly-in-javafx >> >> >> Thanks in advance. >> You are the experts. :) >> >> >> > From steve.x.northover at oracle.com Thu Jun 5 18:57:31 2014 From: steve.x.northover at oracle.com (Stephen F Northover) Date: Thu, 05 Jun 2014 14:57:31 -0400 Subject: FXMLLoader checking code conventions too much? In-Reply-To: References: Message-ID: <5390BD9B.9010103@oracle.com> I see no reason why we should enforce this. Martin, any idea? Steve On 2014-06-05, 12:05 PM, Guillaume Anctil wrote: > Hi, > > on a project I work on, the code convention does not follow the Java > standard and class names start with a lower case 'c': "cSomeClass.java" > > In the parsing of the FXMLLoader, the loadType function looks > like this: > > int i = name.indexOf('.'); > int n = name.length(); > while (i != -1 > && i < n > && Character.isLowerCase(name.charAt(i + 1))) { > i = name.indexOf('.', i + 1); > } > > if (i == -1 || i == n) { > throw new ClassNotFoundException(); > } > > String packageName = name.substring(0, i); > String className = name.substring(i + 1); > > > This causes a ClassNotFoundException on our custom controls because of the > lowercase check. > > I was wondering if a simple: > > int i = name.lastIndexOf('.'); > > Instead of the lowercase check could be viable. The ClassNotFoundException > would still be thrown later on, when trying to actually load the class. > > Is there a reason that I don't see why the convention _must_ be upheld in > this case? > > Thanks. From martin.sladecek at oracle.com Thu Jun 5 20:19:19 2014 From: martin.sladecek at oracle.com (Martin Sladecek) Date: Thu, 05 Jun 2014 22:19:19 +0200 Subject: FXMLLoader checking code conventions too much? In-Reply-To: <5390BD9B.9010103@oracle.com> References: <5390BD9B.9010103@oracle.com> Message-ID: <5390D0C7.30202@oracle.com> Currently, we use case to distinguish between newly created objects (upper-case class name) and properties (lower-case). Otherwise, it would not be clear when there's e.g. a text property and text class if we should set a property called text or create new text object and try to assign it to the default property. The same problem with static setters. Is "hello.text.text" a fully qualified name of text class in or "text" static setter of a hello.text class? I guess we could define some order in which we would try out this options in the current context, but SB will have a problem since they use static mode which can be used without having the classes on the cp. -Martin On 5.6.2014 20:57, Stephen F Northover wrote: > I see no reason why we should enforce this. Martin, any idea? > > Steve > > On 2014-06-05, 12:05 PM, Guillaume Anctil wrote: >> Hi, >> >> on a project I work on, the code convention does not follow the Java >> standard and class names start with a lower case 'c': "cSomeClass.java" >> >> In the parsing of the FXMLLoader, the loadType function >> looks >> like this: >> >> int i = name.indexOf('.'); >> int n = name.length(); >> while (i != -1 >> && i < n >> && Character.isLowerCase(name.charAt(i + 1))) { >> i = name.indexOf('.', i + 1); >> } >> >> if (i == -1 || i == n) { >> throw new ClassNotFoundException(); >> } >> >> String packageName = name.substring(0, i); >> String className = name.substring(i + 1); >> >> >> This causes a ClassNotFoundException on our custom controls because >> of the >> lowercase check. >> >> I was wondering if a simple: >> >> int i = name.lastIndexOf('.'); >> >> Instead of the lowercase check could be viable. The >> ClassNotFoundException >> would still be thrown later on, when trying to actually load the class. >> >> Is there a reason that I don't see why the convention _must_ be >> upheld in >> this case? >> >> Thanks. > From steve.x.northover at oracle.com Thu Jun 5 20:21:05 2014 From: steve.x.northover at oracle.com (Stephen F Northover) Date: Thu, 05 Jun 2014 16:21:05 -0400 Subject: FXMLLoader checking code conventions too much? In-Reply-To: <5390D0C7.30202@oracle.com> References: <5390BD9B.9010103@oracle.com> <5390D0C7.30202@oracle.com> Message-ID: <5390D131.4010600@oracle.com> Seems like we can't/shouldn't fix this. We can at least make sure it is documented. Steve On 2014-06-05, 4:19 PM, Martin Sladecek wrote: > Currently, we use case to distinguish between newly created objects > (upper-case class name) and properties (lower-case). Otherwise, it > would not be clear when there's e.g. a text property and text class if > we should set a property called text or create new text object and try > to assign it to the default property. The same problem with static > setters. > Is "hello.text.text" a fully qualified name of text class in or "text" > static setter of a hello.text class? > > I guess we could define some order in which we would try out this > options in the current context, but SB will have a problem since they > use static mode which can be used without having the classes on the cp. > > -Martin > > On 5.6.2014 20:57, Stephen F Northover wrote: >> I see no reason why we should enforce this. Martin, any idea? >> >> Steve >> >> On 2014-06-05, 12:05 PM, Guillaume Anctil wrote: >>> Hi, >>> >>> on a project I work on, the code convention does not follow the Java >>> standard and class names start with a lower case 'c': "cSomeClass.java" >>> >>> In the parsing of the FXMLLoader, the loadType function >>> looks >>> like this: >>> >>> int i = name.indexOf('.'); >>> int n = name.length(); >>> while (i != -1 >>> && i < n >>> && Character.isLowerCase(name.charAt(i + 1))) { >>> i = name.indexOf('.', i + 1); >>> } >>> >>> if (i == -1 || i == n) { >>> throw new ClassNotFoundException(); >>> } >>> >>> String packageName = name.substring(0, i); >>> String className = name.substring(i + 1); >>> >>> >>> This causes a ClassNotFoundException on our custom controls because >>> of the >>> lowercase check. >>> >>> I was wondering if a simple: >>> >>> int i = name.lastIndexOf('.'); >>> >>> Instead of the lowercase check could be viable. The >>> ClassNotFoundException >>> would still be thrown later on, when trying to actually load the class. >>> >>> Is there a reason that I don't see why the convention _must_ be >>> upheld in >>> this case? >>> >>> Thanks. >> > From martin.sladecek at oracle.com Thu Jun 5 20:29:23 2014 From: martin.sladecek at oracle.com (Martin Sladecek) Date: Thu, 05 Jun 2014 22:29:23 +0200 Subject: FXMLLoader checking code conventions too much? In-Reply-To: <5390D131.4010600@oracle.com> References: <5390BD9B.9010103@oracle.com> <5390D0C7.30202@oracle.com> <5390D131.4010600@oracle.com> Message-ID: <5390D323.6000704@oracle.com> Maybe some special tags can solve the problem, like abc abc They could be used in cases where the class name violates the restrictions we have for property/object tags. FXML version and SB will have to be update though, which means such fxml will not be compatible with older versions. This is definitely something we should do only on major release (9). -Martin On 5.6.2014 22:21, Stephen F Northover wrote: > Seems like we can't/shouldn't fix this. We can at least make sure it > is documented. > > Steve > > On 2014-06-05, 4:19 PM, Martin Sladecek wrote: >> Currently, we use case to distinguish between newly created objects >> (upper-case class name) and properties (lower-case). Otherwise, it >> would not be clear when there's e.g. a text property and text class >> if we should set a property called text or create new text object and >> try to assign it to the default property. The same problem with >> static setters. >> Is "hello.text.text" a fully qualified name of text class in or >> "text" static setter of a hello.text class? >> >> I guess we could define some order in which we would try out this >> options in the current context, but SB will have a problem since they >> use static mode which can be used without having the classes on the cp. >> >> -Martin >> >> On 5.6.2014 20:57, Stephen F Northover wrote: >>> I see no reason why we should enforce this. Martin, any idea? >>> >>> Steve >>> >>> On 2014-06-05, 12:05 PM, Guillaume Anctil wrote: >>>> Hi, >>>> >>>> on a project I work on, the code convention does not follow the Java >>>> standard and class names start with a lower case 'c': >>>> "cSomeClass.java" >>>> >>>> In the parsing of the FXMLLoader, the loadType function >>>> looks >>>> like this: >>>> >>>> int i = name.indexOf('.'); >>>> int n = name.length(); >>>> while (i != -1 >>>> && i < n >>>> && Character.isLowerCase(name.charAt(i + 1))) { >>>> i = name.indexOf('.', i + 1); >>>> } >>>> >>>> if (i == -1 || i == n) { >>>> throw new ClassNotFoundException(); >>>> } >>>> >>>> String packageName = name.substring(0, i); >>>> String className = name.substring(i + 1); >>>> >>>> >>>> This causes a ClassNotFoundException on our custom controls because >>>> of the >>>> lowercase check. >>>> >>>> I was wondering if a simple: >>>> >>>> int i = name.lastIndexOf('.'); >>>> >>>> Instead of the lowercase check could be viable. The >>>> ClassNotFoundException >>>> would still be thrown later on, when trying to actually load the >>>> class. >>>> >>>> Is there a reason that I don't see why the convention _must_ be >>>> upheld in >>>> this case? >>>> >>>> Thanks. >>> >> > From philip.race at oracle.com Thu Jun 5 20:30:54 2014 From: philip.race at oracle.com (Phil Race) Date: Thu, 05 Jun 2014 13:30:54 -0700 Subject: RFR: Fix RT-37209: NPE showing print dialog Message-ID: <5390D37E.9040908@oracle.com> https://javafx-jira.kenai.com/browse/RT-37209 http://cr.openjdk.java.net/~prr/rt-37209/ From hang.vo at oracle.com Thu Jun 5 20:33:25 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Thu, 05 Jun 2014 20:33:25 +0000 Subject: hg: openjfx/8u-dev/rt: RT-37341: Ensemble8: TextField can not change its color Message-ID: <201406052033.s55KXbjZ009346@aojmv0008> Changeset: 36f4864a04e8 Author: David Grieve Date: 2014-06-05 16:30 -0400 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/36f4864a04e8 RT-37341: Ensemble8: TextField can not change its color ! modules/graphics/src/main/java/javafx/scene/Node.java From hang.vo at oracle.com Thu Jun 5 20:48:15 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Thu, 05 Jun 2014 20:48:15 +0000 Subject: hg: openjfx/8u-dev/rt: 2 new changesets Message-ID: <201406052048.s55KmYrN011823@aojmv0008> Changeset: c5cfd184a714 Author: Anthony Petrov Date: 2014-06-06 00:39 +0400 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/c5cfd184a714 RT-37406: [SwingNode]:swing component in swingnode lost foucs when keycode up(Arrow Up) Summary: consume() KeyEvents for UP and DOWN arrows, in addtion to already consumed LEFT and RIGHT ones ! modules/swing/src/main/java/javafx/embed/swing/SwingNode.java Changeset: d04c6e8ba00a Author: shemnon Date: 2014-06-05 14:44 -0600 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/d04c6e8ba00a RT-37217: [Bundlers] mac packaging fails when RUNTIME option is passed Summary: Add runtime sanity check, requiring the jvm shared libraries or rt.jar to show up in the runtime bundle arg. ! modules/fxpackager/src/main/java/com/oracle/tools/packager/AbstractBundler.java ! modules/fxpackager/src/main/java/com/oracle/tools/packager/linux/LinuxAppBundler.java ! modules/fxpackager/src/main/java/com/oracle/tools/packager/mac/MacAppBundler.java ! modules/fxpackager/src/main/java/com/oracle/tools/packager/windows/WinAppBundler.java ! modules/fxpackager/src/test/java/com/oracle/tools/packager/linux/LinuxAppBundlerTest.java ! modules/fxpackager/src/test/java/com/oracle/tools/packager/mac/MacAppBundlerTest.java ! modules/fxpackager/src/test/java/com/oracle/tools/packager/windows/WinAppBundlerTest.java From james.graham at oracle.com Thu Jun 5 20:58:43 2014 From: james.graham at oracle.com (Jim Graham) Date: Thu, 05 Jun 2014 13:58:43 -0700 Subject: FXMLLoader checking code conventions too much? In-Reply-To: References: Message-ID: <5390DA03.7030501@oracle.com> In that code "i < n" is a tautology. It's purpose seems to be to prevent the following "i+1"s from overflowing the string length, but then it should be "i < n-1" or "n" should just be initialized to name.length()-1 (and be called "max" or something to make its purpose clear)... ...jim On 6/5/14 9:05 AM, Guillaume Anctil wrote: > Hi, > > on a project I work on, the code convention does not follow the Java > standard and class names start with a lower case 'c': "cSomeClass.java" > > In the parsing of the FXMLLoader, the loadType function looks > like this: > > int i = name.indexOf('.'); > int n = name.length(); > while (i != -1 > && i < n > && Character.isLowerCase(name.charAt(i + 1))) { > i = name.indexOf('.', i + 1); > } > > if (i == -1 || i == n) { > throw new ClassNotFoundException(); > } > > String packageName = name.substring(0, i); > String className = name.substring(i + 1); > > > This causes a ClassNotFoundException on our custom controls because of the > lowercase check. > > I was wondering if a simple: > > int i = name.lastIndexOf('.'); > > Instead of the lowercase check could be viable. The ClassNotFoundException > would still be thrown later on, when trying to actually load the class. > > Is there a reason that I don't see why the convention _must_ be upheld in > this case? > > Thanks. > From steve.x.northover at oracle.com Thu Jun 5 21:28:07 2014 From: steve.x.northover at oracle.com (Stephen F Northover) Date: Thu, 05 Jun 2014 17:28:07 -0400 Subject: FXMLLoader checking code conventions too much? In-Reply-To: <5390D323.6000704@oracle.com> References: <5390BD9B.9010103@oracle.com> <5390D0C7.30202@oracle.com> <5390D131.4010600@oracle.com> <5390D323.6000704@oracle.com> Message-ID: <5390E0E7.2070805@oracle.com> Guillaume, if you feel strongly about this, please file a JIRA. Thanks! Steve On 2014-06-05, 4:29 PM, Martin Sladecek wrote: > Maybe some special tags can solve the problem, like > abc > > abc > > They could be used in cases where the class name violates the > restrictions we have for property/object tags. FXML version and SB > will have to be update though, which means such fxml will not be > compatible with older versions. This is definitely something we should > do only on major release (9). > > -Martin > > On 5.6.2014 22:21, Stephen F Northover wrote: >> Seems like we can't/shouldn't fix this. We can at least make sure it >> is documented. >> >> Steve >> >> On 2014-06-05, 4:19 PM, Martin Sladecek wrote: >>> Currently, we use case to distinguish between newly created objects >>> (upper-case class name) and properties (lower-case). Otherwise, it >>> would not be clear when there's e.g. a text property and text class >>> if we should set a property called text or create new text object >>> and try to assign it to the default property. The same problem with >>> static setters. >>> Is "hello.text.text" a fully qualified name of text class in or >>> "text" static setter of a hello.text class? >>> >>> I guess we could define some order in which we would try out this >>> options in the current context, but SB will have a problem since >>> they use static mode which can be used without having the classes on >>> the cp. >>> >>> -Martin >>> >>> On 5.6.2014 20:57, Stephen F Northover wrote: >>>> I see no reason why we should enforce this. Martin, any idea? >>>> >>>> Steve >>>> >>>> On 2014-06-05, 12:05 PM, Guillaume Anctil wrote: >>>>> Hi, >>>>> >>>>> on a project I work on, the code convention does not follow the Java >>>>> standard and class names start with a lower case 'c': >>>>> "cSomeClass.java" >>>>> >>>>> In the parsing of the FXMLLoader, the loadType >>>>> function looks >>>>> like this: >>>>> >>>>> int i = name.indexOf('.'); >>>>> int n = name.length(); >>>>> while (i != -1 >>>>> && i < n >>>>> && Character.isLowerCase(name.charAt(i + 1))) { >>>>> i = name.indexOf('.', i + 1); >>>>> } >>>>> >>>>> if (i == -1 || i == n) { >>>>> throw new ClassNotFoundException(); >>>>> } >>>>> >>>>> String packageName = name.substring(0, i); >>>>> String className = name.substring(i + 1); >>>>> >>>>> >>>>> This causes a ClassNotFoundException on our custom controls >>>>> because of the >>>>> lowercase check. >>>>> >>>>> I was wondering if a simple: >>>>> >>>>> int i = name.lastIndexOf('.'); >>>>> >>>>> Instead of the lowercase check could be viable. The >>>>> ClassNotFoundException >>>>> would still be thrown later on, when trying to actually load the >>>>> class. >>>>> >>>>> Is there a reason that I don't see why the convention _must_ be >>>>> upheld in >>>>> this case? >>>>> >>>>> Thanks. >>>> >>> >> > From david.grieve at oracle.com Thu Jun 5 21:37:24 2014 From: david.grieve at oracle.com (David Grieve) Date: Thu, 05 Jun 2014 17:37:24 -0400 Subject: [8u] Review Request: RT-37408: [ScrollPane] incorrect preferred size when viewport pref size is specified and bar is present Message-ID: <5390E314.2090700@oracle.com> Martin, Please review the patch attached to https://javafx-jira.kenai.com/browse/RT-37408. From hang.vo at oracle.com Thu Jun 5 23:03:44 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Thu, 05 Jun 2014 23:03:44 +0000 Subject: hg: openjfx/8u-dev/rt: Fixed RT-37209) [Printing] NPE when showing print dialog Message-ID: <201406052303.s55N3w5Y000600@aojmv0008> Changeset: d9e26c986af1 Author: prr Date: 2014-06-05 15:57 -0700 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/d9e26c986af1 Fixed RT-37209) [Printing] NPE when showing print dialog Reviewed-by: kcr ! modules/graphics/src/main/java/com/sun/prism/j2d/print/J2DPrinter.java ! modules/graphics/src/main/java/com/sun/prism/j2d/print/J2DPrinterJob.java From hang.vo at oracle.com Thu Jun 5 23:33:13 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Thu, 05 Jun 2014 23:33:13 +0000 Subject: hg: openjfx/8u-dev/rt: Fix RT-36016: Dirty region (actually clipping) problems on blurs with large radii Message-ID: <201406052333.s55NXPkr006348@aojmv0008> Changeset: e2d745ffbf0a Author: flar Date: 2014-06-05 16:22 -0700 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/e2d745ffbf0a Fix RT-36016: Dirty region (actually clipping) problems on blurs with large radii Reviewed by: kcr ! modules/graphics/src/main/java/com/sun/scenario/effect/impl/state/BoxRenderState.java From hang.vo at oracle.com Fri Jun 6 00:48:10 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Fri, 06 Jun 2014 00:48:10 +0000 Subject: hg: openjfx/8u-dev/rt: RT-37395: TreeTableView's selectedItems reports changes that include null items when when a TreeItem is collapsed. Message-ID: <201406060048.s560mN3N017080@aojmv0008> Changeset: 784974feb001 Author: jgiles Date: 2014-06-06 12:40 +1200 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/784974feb001 RT-37395: TreeTableView's selectedItems reports changes that include null items when when a TreeItem is collapsed. ! modules/controls/src/main/java/javafx/scene/control/MultipleSelectionModelBase.java ! modules/controls/src/main/java/javafx/scene/control/TreeTableView.java ! modules/controls/src/test/java/javafx/scene/control/TreeTableViewTest.java ! modules/controls/src/test/java/javafx/scene/control/TreeViewTest.java From hang.vo at oracle.com Fri Jun 6 10:48:20 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Fri, 06 Jun 2014 10:48:20 +0000 Subject: hg: openjfx/8u-dev/rt: RT-37425: [Monocle] key events on udev input path don't work correctly on odroid Message-ID: <201406061048.s56AmXSI010122@aojmv0008> Changeset: ce8f5e176a92 Author: Daniel Blaukopf Date: 2014-06-06 13:39 +0300 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/ce8f5e176a92 RT-37425: [Monocle] key events on udev input path don't work correctly on odroid ! modules/graphics/src/main/java/com/sun/glass/ui/monocle/util/IntSet.java ! tests/system/src/test/java/com/sun/glass/ui/monocle/input/USKeyboardTest.java From hang.vo at oracle.com Fri Jun 6 13:33:42 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Fri, 06 Jun 2014 13:33:42 +0000 Subject: hg: openjfx/8u-dev/rt: RT-37408: [ScrollPane] incorrect preferred size when viewport pref size is specified and bar is present Message-ID: <201406061333.s56DXtQw003387@aojmv0008> Changeset: b229352490bb Author: David Grieve Date: 2014-06-06 09:17 -0400 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/b229352490bb RT-37408: [ScrollPane] incorrect preferred size when viewport pref size is specified and bar is present Reviewed by: martin ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ScrollPaneSkin.java From lisa.selle at oracle.com Fri Jun 6 14:40:16 2014 From: lisa.selle at oracle.com (Lisa Selle) Date: Fri, 06 Jun 2014 10:40:16 -0400 Subject: (In)Sanity Monday... Message-ID: <5391D2D0.3010407@oracle.com> Reminder to check out the matrix at https://wiki.openjdk.java.net/display/OpenJFX/8u20 for your insanity testing assignment for this week, assignments have been updated this week. Testing should take 1 hour or less. If your assignment takes longer, stop after an hour and continue where you left off the following week. Also, please review the weekly code freeze and push rules Happy testing! Lisa From peter.levart at gmail.com Fri Jun 6 14:44:04 2014 From: peter.levart at gmail.com (Peter Levart) Date: Fri, 06 Jun 2014 16:44:04 +0200 Subject: Building WebKit natives with debug symbols on 32 bit Linux In-Reply-To: <5385FE19.6060904@Oracle.com> References: <5385E70E.4070401@gmail.com> <5385E901.4090205@gmail.com> <5385FE19.6060904@Oracle.com> Message-ID: <5391D3B4.5060402@gmail.com> Hi David, Thanks for pointing me in the right direction. Although I've almost lost hope before finally succeeding. I tried various other approaches on the way, but finally, what I did was very simple. It could be possible to create a separate configuration (i.e. LINUX32) with some additional tweaks to some other scripts (some scripts use the configuration name as a logic token), but here I present a simpler variant with changes applied to current LINUX configuration. In order to cross-compile on 64 bit Ubuntu 14.04 for 32 bit Linux target you need to patch some makefiles and build scripts: http://cr.openjdk.java.net/~plevart/openjfx-8u-dev-rt/linux32on64tools/webrev.01/ Besides above changes to build scripts, the following environment variables have to be defined (in $HOME/.profile): JAVA_HOME=/path/to/32bit/jdk PATH=$JAVA_HOME/bin:$PATH PKG_CONFIG_LIBDIR=/usr/lib/i386-linux-gnu/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig QMAKESPEC=linux-g++-32 export JAVA_HOME PATH PKG_CONFIG_LIBDIR QMAKESPEC You need to install the i386 versions of runtime libraries needed to execute the 32 bit JVM. I don't have the names at hand, but the list could quickly be compiled by trying to run some Java GUI program using 32 bit JVM and then using apt-file on the missing library file to find-out the name of the package. /Wash, rinse, repeat.../ until all i386 JDK runtime dependencies are installed. In addition, i386 versions of *-dev packages needed for compiling openjfx have to be installed. This is the most tricky part to get right, since installing them pulls-in some i386 runtime library dependencies which conflict with x86_64 versions of libraries that might already be installed on 64 bit system. "apt-get install" is clever on Ubuntu 14.04 and *REMOVES* the installed dependency sub-tree of x86_64 packages before installing a conflicting i386 version of requested package. For some of *-dev:i386 packages this means that even the tools needed for building (gcc, binutils) get de-installed, but you can re-install them later without conflicts (that's strange, but APT packaging seem to work with at least 3 levels of dependency strengths). The most important part is that the following packages: gcc, gcc-4.8, g++, g++-48, binutils (with dependencies) are kept at x86_64 architecture (that's the whole purpose of cross-compilation). In addition, you also need to install the following packages, to be able to produce 32bit binaries with 64bit tools: gcc-multilib, gcc-4.8-multilib, g++-multilib, g++-4.8-multilib I think that's all. With this changes I managed to produce 32 bit libjfxwebkit.so with debugging symbols included (it's nearly 1.7 GiB !!!). You need at least 10 GiB of free RAM when attempting such build (the "ld" process grows to about 8 GiB of resident space when collecting object files into a shared library - no wonder it can't be done with 32 bit "ld"). With 32bit debug build of openjfx I reproduced the crash mentioned in (https://javafx-jira.kenai.com/browse/RT-33599) and got the following backtrace from gdb: ... ... #7 #8 0x6591cc7e in WTFCrash () at ../../../../src/main/native/Source/WTF/wtf/Assertions.cpp:345 #9 0x65950c3f in WTF::OSAllocator::reserveUncommitted (bytes=126976, usage=WTF::OSAllocator::UnknownUsage, writable=true, executable=false, includesGuardPages=false) at ../../../../src/main/native/Source/WTF/wtf/OSAllocatorPosix.cpp:58 #10 0x65ac9033 in WTF::PageAllocationAligned::allocate (size=65536, alignment=65536, usage=WTF::OSAllocator::UnknownUsage, writable=true) at ../../../../src/main/native/Source/WTF/wtf/PageAllocationAligned.cpp:55 #11 0x65b5bff7 in JSC::DFG::Allocator::allocateSlow (this=0x70df9f78) at ../../../../src/main/native/Source/JavaScriptCore/dfg/DFGAllocator.h:204 #12 0x65b5a7c0 in JSC::DFG::Allocator::freeListAllocate (this=0x70df9f78) at ../../../../src/main/native/Source/JavaScriptCore/dfg/DFGAllocator.h:190 #13 0x65b58e4a in JSC::DFG::Allocator::allocate (this=0x70df9f78) at ../../../../src/main/native/Source/JavaScriptCore/dfg/DFGAllocator.h:109 #14 0x65b53d53 in operator new (size=84, allocator=...) at ../../../../src/main/native/Source/JavaScriptCore/dfg/DFGNodeAllocator.h:45 #15 0x65b5bbb1 in JSC::DFG::Graph::addNode (this=0x68a9effc, type=0, _DFG_value1=@0x68a9de3c: JSC::DFG::Phi, _DFG_value2=..., _DFG_value3=...) at ../../../../src/main/native/Source/JavaScriptCore/dfg/DFGGraph.h:166 #16 0x65ce34a7 in JSC::DFG::CPSRethreadingPhase::addPhiSilently (this=0x68a9dfd8, block=0x88d5970, codeOrigin=..., variable=0x89501b0) at ../../../../src/main/native/Source/JavaScriptCore/dfg/DFGCPSRethreadingPhase.cpp:133 #17 0x65ce532c in JSC::DFG::CPSRethreadingPhase::addPhi<(JSC::OperandKind)1> (this=0x68a9dfd8, block=0x88d5970, codeOrigin=..., variable=0x89501b0, index=5) at ../../../../src/main/native/Source/JavaScriptCore/dfg/DFGCPSRethreadingPhase.cpp:141 #18 0x65ce5492 in JSC::DFG::CPSRethreadingPhase::addPhi<(JSC::OperandKind)1> (this=0x68a9dfd8, codeOrigin=..., variable=0x89501b0, index=5) at ../../../../src/main/native/Source/JavaScriptCore/dfg/DFGCPSRethreadingPhase.cpp:149 #19 0x65ce4c43 in JSC::DFG::CPSRethreadingPhase::canonicalizeGetLocalFor<(JSC::OperandKind)1> (this=0x68a9dfd8, node=0x43f389d0, variable=0x89501b0, idx=5) at ../../../../src/main/native/Source/JavaScriptCore/dfg/DFGCPSRethreadingPhase.cpp:213 #20 0x65ce3559 in JSC::DFG::CPSRethreadingPhase::canonicalizeGetLocal (this=0x68a9dfd8, node=0x43f389d0) at ../../../../src/main/native/Source/JavaScriptCore/dfg/DFGCPSRethreadingPhase.cpp:225 #21 0x65ce373c in JSC::DFG::CPSRethreadingPhase::canonicalizeLocalsInBlock (this=0x68a9dfd8) at ../../../../src/main/native/Source/JavaScriptCore/dfg/DFGCPSRethreadingPhase.cpp:361 #22 0x65ce3828 in JSC::DFG::CPSRethreadingPhase::canonicalizeLocalsInBlocks (this=0x68a9dfd8) at ../../../../src/main/native/Source/JavaScriptCore/dfg/DFGCPSRethreadingPhase.cpp:392 #23 0x65ce30f4 in JSC::DFG::CPSRethreadingPhase::run (this=0x68a9dfd8) at ../../../../src/main/native/Source/JavaScriptCore/dfg/DFGCPSRethreadingPhase.cpp:52 #24 0x65ce5f5e in JSC::DFG::runAndLog (phase=...) at ../../../../src/main/native/Source/JavaScriptCore/dfg/DFGPhase.h:75 #25 0x65ce50bd in JSC::DFG::runPhase (graph=...) at ../../../../src/main/native/Source/JavaScriptCore/dfg/DFGPhase.h:85 #26 0x65ce2cfd in JSC::DFG::performCPSRethreading (graph=...) at ../../../../src/main/native/Source/JavaScriptCore/dfg/DFGCPSRethreadingPhase.cpp:493 #27 0x65b4e08a in JSC::DFG::compile (compileMode=JSC::DFG::CompileFunction, exec=0x6343bf48, codeBlock=0x43ce1308, jitCode=..., jitCodeWithArityCheck=0x5f52bb04, osrEntryBytecodeIndex=0) at ../../../../src/main/native/Source/JavaScriptCore/dfg/DFGDriver.cpp:122 #28 0x65b4d983 in JSC::DFG::tryCompileFunction (exec=0x6343bf48, codeBlock=0x43ce1308, jitCode=..., jitCodeWithArityCheck=..., bytecodeIndex=0) at ../../../../src/main/native/Source/JavaScriptCore/dfg/DFGDriver.cpp:182 #29 0x659ee25b in JSC::jitCompileFunctionIfAppropriate (exec=0x6343bf48, codeBlock=..., jitCode=..., jitCodeWithArityCheck=..., jitType=JSC::JITCode::DFGJIT, bytecodeIndex=0, effort=JSC::JITCompilationCanFail) at ../../../../src/main/native/Source/JavaScriptCore/jit/JITDriver.h:95 #30 0x659ee4a4 in JSC::prepareFunctionForExecution (exec=0x6343bf48, codeBlock=..., jitCode=..., jitCodeWithArityCheck=..., jitType=JSC::JITCode::DFGJIT, bytecodeIndex=0, kind=JSC::CodeForCall) at ../../../../src/main/native/Source/JavaScriptCore/runtime/ExecutionHarness.h:68 #31 0x659ebe91 in JSC::FunctionExecutable::compileForCallInternal (this=0x5f52bad8, exec=0x6343bf48, scope=0x61d5dbf0, jitType=JSC::JITCode::DFGJIT, bytecodeIndex=0) at ../../../../src/main/native/Source/JavaScriptCore/runtime/Executable.cpp:539 #32 0x659eb659 in JSC::FunctionExecutable::compileOptimizedForCall (this=0x5f52bad8, exec=0x6343bf48, scope=0x61d5dbf0, bytecodeIndex=0) at ../../../../src/main/native/Source/JavaScriptCore/runtime/Executable.cpp:464 #33 0x65ae4398 in JSC::FunctionExecutable::compileOptimizedFor (this=0x5f52bad8, exec=0x6343bf48, scope=0x61d5dbf0, bytecodeIndex=0, kind=JSC::CodeForCall) at ../../../../src/main/native/Source/JavaScriptCore/runtime/Executable.h:679 #34 0x65ae05cf in JSC::FunctionCodeBlock::compileOptimized (this=0x4b40f818, exec=0x6343bf48, scope=0x61d5dbf0, bytecodeIndex=0) at ../../../../src/main/native/Source/JavaScriptCore/bytecode/CodeBlock.cpp:2843 #35 0x659a406d in JSC::cti_optimize (args=0x68a9fcc0) at ../../../../src/main/native/Source/JavaScriptCore/jit/JITStubs.cpp:1964 ---Type to continue, or q to quit--- #36 0x659a0ce1 in JSC::tryCacheGetByID (callFrame=0x0, codeBlock=0xfffffffb, returnAddress=..., baseValue=..., propertyName=..., slot=..., stubInfo=0x0) at ../../../../src/main/native/Source/JavaScriptCore/jit/JITStubs.cpp:1068 #37 0x6343bad8 in ?? () #38 0x65994da7 in JSC::JITCode::execute (this=0x5f5237ac, stack=0x70df9cf0, callFrame=0x6343a058, vm=0x70df3df8) at ../../../../src/main/native/Source/JavaScriptCore/jit/JITCode.h:135 #39 0x659922bc in JSC::Interpreter::executeCall (this=0x70df9ce8, callFrame=0x6253f994, function=0x5eedf618, callType=JSC::CallTypeJS, callData=..., thisValue=..., args=...) at ../../../../src/main/native/Source/JavaScriptCore/interpreter/Interpreter.cpp:1052 #40 0x659dc14c in JSC::call (exec=0x6253f994, functionObject=..., callType=JSC::CallTypeJS, callData=..., thisValue=..., args=...) at ../../../../src/main/native/Source/JavaScriptCore/runtime/CallData.cpp:40 #41 0x64a34c05 in WebCore::JSMainThreadExecState::call (exec=0x6253f994, functionObject=..., callType=JSC::CallTypeJS, callData=..., thisValue=..., args=...) at ../../../../src/main/native/Source/WebCore/bindings/js/JSMainThreadExecState.h:56 #42 0x64a7e0cb in WebCore::ScheduledAction::executeFunctionInContext (this=0x524f9388, globalObject=0x6253f838, thisValue=..., context=0x62c58a50) at ../../../../src/main/native/Source/WebCore/bindings/js/ScheduledAction.cpp:111 #43 0x64a7e312 in WebCore::ScheduledAction::execute (this=0x524f9388, document=0x62c589f0) at ../../../../src/main/native/Source/WebCore/bindings/js/ScheduledAction.cpp:132 #44 0x64a7de62 in WebCore::ScheduledAction::execute (this=0x524f9388, context=0x62c58a50) at ../../../../src/main/native/Source/WebCore/bindings/js/ScheduledAction.cpp:80 #45 0x651930df in WebCore::DOMTimer::fired (this=0x442283f8) at ../../../../src/main/native/Source/WebCore/page/DOMTimer.cpp:140 #46 0x65360730 in WebCore::ThreadTimers::sharedTimerFiredInternal (this=0x70dd3a50) at ../../../../src/main/native/Source/WebCore/platform/ThreadTimers.cpp:129 #47 0x65360663 in WebCore::ThreadTimers::sharedTimerFired () at ../../../../src/main/native/Source/WebCore/platform/ThreadTimers.cpp:105 #48 0x65303abe in Java_com_sun_webkit_Timer_twkFireTimerEvent (env=0x6890552c, clazz=0x68aa00c0) at ../../../../src/main/native/Source/WebCore/platform/java/SharedTimerJava.cpp:63 ... ... ...from first look at relevant sources it seems that the crash is a result of not being able to allocate 64 KiB block with 64 KiB alignment which means that a 128 KiB block is attempted to be mmap-ed and it fails. The WebKit Javascript engine's answer to not being able to allocate memory is simply a CRASH()? It seems so. Compared to HOTSPOT this is very primitive, but such is the reality of this fast-grown code unfortunately which is 4-times as big as the HOTSPOT. Anybody venturing into using WebKit to build and run complex GUI-s should be told that (and offered Java + JavaFX instead as alternative ;-)... Regards, Peter On 05/28/2014 05:17 PM, David Hill wrote: > On 5/28/14, May 28, 9:47 AM, Peter Levart wrote: >> Hi Again, >> >> The idea that comes to my mind is the following: would it be possible >> to cross-compile the openjfx on the 64 bit Linux using 64 bit tools, >> but targeted at 32 bit Linux? What would have to be changed in build >> environment to accomplish that? I imagine the environment would have >> to have access to headers and development libraries of the 32 bit >> Linux system - that's no problem - I would just mount the root of a >> 32 bit Ubuntu to some directory, but then I would have to force all >> tools to use that path instead of the running system one. And the gcc >> would have to be given some cross-compiling options too, I guess... >> > In theory this is easy :-) > > We already have a cross compile mechanism in gradle, used for the > Linux arm and Android builds. (see buildSrc/armv* for example). > > You would start with one of the build files as a template - > linux.gradle, sed/copy it to linux32.gradle with something like: > > cd buildSrc > sed -s 's/LINUX/LINUX32/' linux.gradle > linux32.gradle > > After that, it would be a matter of tweaking the cc and ld flags > contained in the file, to tell gcc to be 32bit and to use the right > libraries. Looks like adding -m32 to commonFlags is all it should need: > > // A set of common parameters to use for both compiling and linking > def commonFlags = [ > "-m32", // <<<<< 32 bit output > "-fno-strict-aliasing", "-fPIC", "-fno-omit-frame-pointer", // > optimization flags > "-W", "-Wall", "-Wno-unused", "-Wno-parentheses", > "-Werror=implicit-function-declaration"] // warning flags > > and tweak where the libraries are installed: > > // Libraries end up in the sdk/rt/lib/$OS_ARCH directory for Linux > LINUX32.libDest = "lib/i386" > LINUX32.arch = "i386" # << this is an addition not needed in > linux.gradle > > You specify the crossbuild like this: > gradle -PUSE_DEPEND=false -PBUILD_NATIVES=true > -PCOMPILE_TARGETS=linux32 > > But... > looks like we need to disable > LINUX32.compileFXPackager = false; > because build.gradle has some stuff hardcoded in it (would need a jira > for that if people care). > > And - you need the i386 development packages installed. I had already > added this to get my cross compilers to work, > apt-get install libstdc++6:i386 > but needed to add other to get more of the build to complete and ran > into apt-get telling me all my i386 deps were broken. Perhaps it would > work better if I was on a newer distro (I am on 12.04) > https://wiki.openjdk.java.net/display/OpenJFX/Building+OpenJFX > has the list of packages, in theory, you just need to add :i386 to > each one. > > Since I can't get the i386 packages, at this point you are on your own > :-) > > Dave > > >> Peter >> >> On 05/28/2014 03:39 PM, Peter Levart wrote: >>> Hi, >>> >>> I'm new to this list and I have searched the archives, but haven't >>> found a discussion about this. If I have missed it, please just >>> direct me to the archived thread. >>> >>> I'm trying to debug a crash in a native part of WebKit-JavaFX >>> bindings (https://javafx-jira.kenai.com/browse/RT-33599). I have >>> only been able to reproduce it on 32 bit platforms (Windows and >>> Linux so far). I'm trying to build the WebKit natives with debugging >>> symbols, so that I can pin-point the location of the crash in code >>> using gdb. I have managed to do this successfully on 64 bit Linux, >>> producing 1.7 GB large libjfxwebkit.so. But on 32 bit Linux, where >>> only I can reproduce the crash, the build fails with linker error: >>> "memory exhausted" when trying to assemble the libjfxwebkit.so from >>> object files. So far I have not been successful in my attempts to >>> circumvent this build error. I fave tried the following: >>> >>> - added '--no-keep-memory' to linker options. The man page says >>> about it: >>> ld normally optimizes for speed over memory usage by >>> caching the symbol tables of input files in memory. This option >>> tells ld to instead optimize for memory usage, by >>> rereading the symbol tables as necessary. This may be >>> required if ld runs out of memory space while linking a large >>> executable. >>> >>> - booted the 64bit Ubuntu system and chrooted into a 32 bit >>> environment. Some say that with 64 bit kernel, each 32 bit >>> user-space process has more address space than with 32 bit kernel. >>> >>> - both of the above >>> >>> >>> My question to the list is: How do you guys produce 32 bit >>> libjfxwebkit.so with debugging symbols? Have you been able to? Do >>> you have any special tricks in your sleeves? >>> >>> >>> Regards, >>> >>> Peter >>> >> > > From David.Hill at Oracle.com Fri Jun 6 15:41:17 2014 From: David.Hill at Oracle.com (David Hill) Date: Fri, 06 Jun 2014 11:41:17 -0400 Subject: Change of crosstools for arm builds In-Reply-To: <538F7352.2020600@Oracle.com> References: <538F7352.2020600@Oracle.com> Message-ID: <5391E11D.2080207@Oracle.com> On 6/4/14, Jun 4, 3:28 PM, David Hill wrote: A follow up - https://wiki.openjdk.java.net/display/OpenJFX/Cross+Building+for+Arm+Hard+Float has been updated to reflect the new tool chain script. And I had to update the script (upping the revision) when I realized I lost one header. Dave > > Just a heads up - I changed the ARM crosstools (headers and libraries) today. > > I have aJira task to update the OpenJFX webpage, but it may take a few days to get to it. > > It entails using a (hopefully) easier script that pulls packages, rather than peeling them from a Pi sd card. > Let me know if you need the instructions sooner. -- David Hill Java Embedded Development "The only reason some people get lost in thought is because it's unfamiliar territory." -- Paul Fix From hang.vo at oracle.com Fri Jun 6 15:48:21 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Fri, 06 Jun 2014 15:48:21 +0000 Subject: hg: openjfx/8u-dev/rt: RT-37431 [KeyCode] Wrong key code report for dead circumflex using KeyCode.getKeyCode(String name) Message-ID: <201406061548.s56FmXAJ022396@aojmv0008> Changeset: 7368fff13097 Author: snorthov Date: 2014-06-06 11:42 -0400 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/7368fff13097 RT-37431 [KeyCode] Wrong key code report for dead circumflex using KeyCode.getKeyCode(String name) Summary: The name of the key was simply wrong (likely cut/paste error) ! modules/graphics/src/main/java/javafx/scene/input/KeyCode.java From hang.vo at oracle.com Fri Jun 6 16:48:14 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Fri, 06 Jun 2014 16:48:14 +0000 Subject: hg: openjfx/8u-dev/rt: 2 new changesets Message-ID: <201406061648.s56GmXAP001073@aojmv0008> Changeset: f12c0b6b2a0e Author: shemnon Date: 2014-06-05 15:45 -0600 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/f12c0b6b2a0e RT-37353: Exception when bundler is being passed different VM options via CLI Summary: Don't pass empty lists or maps into the bundle params, with test. ! modules/fxpackager/src/main/java/com/sun/javafx/tools/packager/bundlers/BundleParams.java ! modules/fxpackager/src/test/java/com/oracle/tools/packager/CLITest.java Changeset: b9fb7e166129 Author: shemnon Date: 2014-06-06 10:43 -0600 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/b9fb7e166129 [test only] RT-37217: [Bundlers] mac packaging fails when RUNTIME option is passed Summary: Integration servers do non-standard things with the JRE the run from, so ignore the mac tests unless the JRE is set up as we expect it to be. ! modules/fxpackager/src/test/java/com/oracle/tools/packager/mac/MacAppBundlerTest.java ! modules/fxpackager/src/test/java/com/oracle/tools/packager/mac/MacAppStoreBundlerTest.java ! modules/fxpackager/src/test/java/com/oracle/tools/packager/mac/MacDaemonBundlerTest.java ! modules/fxpackager/src/test/java/com/oracle/tools/packager/mac/MacDmgBundlerTest.java ! modules/fxpackager/src/test/java/com/oracle/tools/packager/mac/MacPkgBundlerTest.java From hang.vo at oracle.com Fri Jun 6 20:04:09 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Fri, 06 Jun 2014 20:04:09 +0000 Subject: hg: openjfx/8u-dev/rt: 4 new changesets Message-ID: <201406062004.s56K4fRS001114@aojmv0008> Changeset: 6b1998b7dc2e Author: kcr Date: 2014-06-06 10:53 -0700 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/6b1998b7dc2e [WHITESPACE] remove tabs ! build.gradle Changeset: decce733e64e Author: kcr Date: 2014-06-06 10:53 -0700 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/decce733e64e RT-37403: JavaFX javadoc is missing USE information ! build.gradle Changeset: b132a9887e87 Author: kcr Date: 2014-06-06 10:53 -0700 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/b132a9887e87 RT-37413: Dalvik specific classes Contributed-by: Johan Vos ! modules/graphics/src/dalvik/java/javafxports/android/DalvikLauncher.java ! modules/graphics/src/dalvik/java/javafxports/android/FXActivity.java ! modules/graphics/src/dalvik/java/javafxports/android/Launcher.java + modules/graphics/src/main/java/com/sun/glass/ui/android/DalvikInput.java Changeset: 968bca22c305 Author: kcr Date: 2014-06-06 12:48 -0700 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/968bca22c305 RT-37410: [Android] Add option to build to use retrolambda to remove lambdas Contributed-by: Johan Vos ! build.gradle ! buildSrc/dalvik.gradle From james.graham at oracle.com Fri Jun 6 21:52:01 2014 From: james.graham at oracle.com (Jim Graham) Date: Fri, 06 Jun 2014 14:52:01 -0700 Subject: 8u20 review request RT-37434: Canvas dimensions not synchronous if bound Message-ID: <53923801.4030802@oracle.com> webrev: http://cr.openjdk.java.net/~flar/RT-37434/webrev.00/ Jira: https://javafx-jira.kenai.com/browse/RT-37434 Is there any other way for the properties to be updated that the new fix doesn't cover? ...jim From hang.vo at oracle.com Fri Jun 6 22:48:12 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Fri, 06 Jun 2014 22:48:12 +0000 Subject: hg: openjfx/8u-dev/rt: 2 new changesets Message-ID: <201406062248.s56MmVmH027041@aojmv0008> Changeset: 7fded83c0920 Author: flar Date: 2014-06-06 15:41 -0700 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/7fded83c0920 Fix RT-37434: Canvas can draw outside dimensions when width and height are bound Reviewed by: kcr ! modules/graphics/src/main/java/javafx/scene/canvas/Canvas.java Changeset: 63955f844c0c Author: ddhill Date: 2014-06-05 21:11 -0400 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/63955f844c0c [BUILD] Bump the arm toolchain version after adding back a vendor header file. ! buildSrc/armv5sf.gradle ! buildSrc/armv6hf.gradle ! buildSrc/armv6sf.gradle ! buildSrc/armv7hf.gradle ! buildSrc/armv7sf.gradle ! buildSrc/crosslibs/crosslibs-armv6hf.sh ! buildSrc/crosslibs/crosslibs-armv6sf.sh From james.graham at oracle.com Sat Jun 7 00:44:30 2014 From: james.graham at oracle.com (Jim Graham) Date: Fri, 06 Jun 2014 17:44:30 -0700 Subject: 8u20 review request: RT-36891: canvas does not clear correctly with clipping Message-ID: <5392606E.9000403@oracle.com> webrev: http://cr.openjdk.java.net/~flar/RT-36891/webrev.00/ Jira: https://javafx-jira.kenai.com/browse/RT-36891 Details are in the Jira comments... ...jim From james.graham at oracle.com Sat Jun 7 00:58:51 2014 From: james.graham at oracle.com (Jim Graham) Date: Fri, 06 Jun 2014 17:58:51 -0700 Subject: 8u20 review request: RT-37449 - use of Canvas PixelWriter leaves graphics in SRC mode Message-ID: <539263CB.4090300@oracle.com> webrev: http://cr.openjdk.java.net/~flar/RT-37449/webrev.00/ Jira: https://javafx-jira.kenai.com/browse/RT-37449 Simple fix, details in Jira comments... ...jim From krampenschiesser at gmail.com Sun Jun 8 08:24:36 2014 From: krampenschiesser at gmail.com (Christian) Date: Sun, 08 Jun 2014 10:24:36 +0200 Subject: SceneBuilder 2.0 import custom components from Jar Message-ID: <53941DC4.3010504@gmail.com> Hi, I was trying to import controlsfx-5.0.6 and controlsfx-5.0.6_20 into scenebuilder. However only some or few controls could be imported. When using these controls strange effects happen. I was looking into the user guide in order to determine the requirements that have to be met by the components in the jar file. However there was just a simple guideline about how to import and not how to develop custom components so that they match the scenebuilder. I further turned the logging level of the scenbuilder to finest and hoped to see at least some stacktraces that might give me a hint. But I only saw stacktraces when using the imported components (mainly belonging to missing resources because of classpath problems) nothing from the import/jarfile-scan itself. I was hoping that I can adjust the controlsfx classes so that they work fine with the scenebuilder. Any hints are more then welcome! ps.: It seems that scenebuilder is closed source, or is the some source out there I could start with? Is there an early access release for 8u20? Thanks, Christian From krampenschiesser at gmail.com Sun Jun 8 08:31:37 2014 From: krampenschiesser at gmail.com (Christian) Date: Sun, 08 Jun 2014 10:31:37 +0200 Subject: Node lookup with TabPane Message-ID: <53941F69.9050404@gmail.com> Hi, I'm not sure if this is a bug because it looks like it is designed this way. I just tried to do a TabPane.lookupAll("#myId") which does not return any result. This is because the TabPane doesn't add the Tabs(which are no nodes) to its children. If it would add the content of each pane to the children the lookup would work. My solution right now is to scan the scenegraph myself. It is just not that easy to determine when to use lookupAll and when to manually scan the scenegraph. Didn't yet check it but I think the same might apply to containers like Accordion. Would be nice if somebody could give me some clarification. Thanks, Christian Unit Test: public class TabTest { @Test public void testLookup() throws Exception { TabPane tabPane = new TabPane(); Tab tab1 = new Tab("tab1"); tabPane.getTabs().add(tab1); StackPane content = new StackPane(); TextField nodeWithId = new TextField(); nodeWithId.setId("test"); content.getChildren().add(nodeWithId); tab1.setContent(content); assertSame(nodeWithId, content.lookup("#test")); Set idNodes = tabPane.lookupAll("#test"); assertEquals(1,idNodes.size()); assertSame(nodeWithId, tabPane.lookup("#test")); } } From jonathan.giles at oracle.com Sun Jun 8 20:44:15 2014 From: jonathan.giles at oracle.com (Jonathan Giles) Date: Mon, 09 Jun 2014 08:44:15 +1200 Subject: Node lookup with TabPane In-Reply-To: <53941F69.9050404@gmail.com> References: <53941F69.9050404@gmail.com> Message-ID: <5394CB1F.1090009@oracle.com> Christian, There is no reason why this shouldn't work - please file a bug report in our Jira bug tracker and we can take a look at resolving this. Thanks, -- Jonathan On 8/06/2014 8:31 p.m., Christian wrote: > Hi, > I'm not sure if this is a bug because it looks like it is designed > this way. > I just tried to do a TabPane.lookupAll("#myId") which does not return > any result. > This is because the TabPane doesn't add the Tabs(which are no nodes) > to its children. > If it would add the content of each pane to the children the lookup > would work. > My solution right now is to scan the scenegraph myself. > It is just not that easy to determine when to use lookupAll and when > to manually scan the scenegraph. > Didn't yet check it but I think the same might apply to containers > like Accordion. > Would be nice if somebody could give me some clarification. > Thanks, > Christian > > > Unit Test: > public class TabTest { > @Test > public void testLookup() throws Exception { > TabPane tabPane = new TabPane(); > Tab tab1 = new Tab("tab1"); > tabPane.getTabs().add(tab1); > > StackPane content = new StackPane(); > TextField nodeWithId = new TextField(); > nodeWithId.setId("test"); > content.getChildren().add(nodeWithId); > tab1.setContent(content); > > assertSame(nodeWithId, content.lookup("#test")); > Set idNodes = tabPane.lookupAll("#test"); > assertEquals(1,idNodes.size()); > assertSame(nodeWithId, tabPane.lookup("#test")); > } > } From jonathan.giles at oracle.com Sun Jun 8 20:56:56 2014 From: jonathan.giles at oracle.com (Jonathan Giles) Date: Mon, 09 Jun 2014 08:56:56 +1200 Subject: SceneBuilder 2.0 import custom components from Jar In-Reply-To: <53941DC4.3010504@gmail.com> References: <53941DC4.3010504@gmail.com> Message-ID: <5394CE18.5050708@oracle.com> Christian, With my OpenJFX hat on: ======================= ControlsFX-related issues are best discussed on the controlsfx-dev mailing list, which can be accessed (and signed up to) here: http://groups.controlsfx.org Scene Builder is open source - you can access it by cloning the OpenJFX rt repo, and you'll find the Scene Builder source code in apps/scenebuilder. With my ControlsFX hat on: ======================= Regarding getting ControlsFX to play nicer with Scene Builder - that is really a matter for the ControlsFX project to resolve. ControlsFX needs to follow the requirements of Scene Builder and FXML, and I'm not 100% clear on what the definitive list of requirements is, but I know some of the requirements include having a public no-args constructor, and using @NamedArg on constructor parameters to define the parameter name. I have been hoping someone from the community would step up to make ControlsFX more FXML and Scene Builder compliant. If you're interested please ping me off-list. Relatedly, I recently asked if the Scene Builder team if someone could take a quick look at ControlsFX to cast their expert eyes over the API and let me know what is and isn't going to work well for them. Thanks, -- Jonathan On 8/06/2014 8:24 p.m., Christian wrote: > Hi, > I was trying to import controlsfx-5.0.6 and controlsfx-5.0.6_20 into > scenebuilder. > However only some or few controls could be imported. > When using these controls strange effects happen. > I was looking into the user guide in order to determine the > requirements that have to be met by the components in the jar file. > However there was just a simple guideline about how to import and not > how to develop custom components so that they match the scenebuilder. > I further turned the logging level of the scenbuilder to finest and > hoped to see at least some stacktraces that might give me a hint. > But I only saw stacktraces when using the imported components (mainly > belonging to missing resources because of classpath problems) nothing > from the import/jarfile-scan itself. > I was hoping that I can adjust the controlsfx classes so that they > work fine with the scenebuilder. > Any hints are more then welcome! > > ps.: > It seems that scenebuilder is closed source, or is the some source out > there I could start with? > Is there an early access release for 8u20? > > Thanks, > Christian From tbee at tbee.org Mon Jun 9 06:19:27 2014 From: tbee at tbee.org (Tom Eugelink) Date: Mon, 09 Jun 2014 08:19:27 +0200 Subject: monitor mouse events but not capture them Message-ID: <539551EF.3050706@tbee.org> Hi all, Maybe someone has solved this already, so I thought I pop the question. Currently I'm working on CirclePopupMenu; a menu that is supposed to pop up on any place in a scene when a certain (usually the middle or right) mouse button is pressed. Right now CirclePopupMenu requires a stackpane to which it binds itself. CirclePopupMenu initially places an empty "canvas" Pane on the stack pane, and will use that to render and position the menu when it needs to appear. Also I need to monitor the mouse to detect if the menu should appear. In order to do that, I would like to use that canvas pane, but then any non relevant button clicks will not reach the underlying controls. In order to enable correct behavior I need to setPickOnBounds(false) on the pane, but then it does receive the mouse events anymore. Is there any way to monitor mouse events but still pass them through to the underlying controls? In Swing I did something similar and used a system level mouse event hook. Tom PS: I'm not certain if the stackpane approach I've used is the best way to do this. It does work expect the mouse button problem. But any suggestions are welcome. From martin.sladecek at oracle.com Mon Jun 9 06:29:35 2014 From: martin.sladecek at oracle.com (Martin Sladecek) Date: Mon, 09 Jun 2014 08:29:35 +0200 Subject: monitor mouse events but not capture them In-Reply-To: <539551EF.3050706@tbee.org> References: <539551EF.3050706@tbee.org> Message-ID: <5395544F.6040702@oracle.com> Hi Tom, have you tried .addEventFilter() method? It receives the Event before the controls underneath the canvas, in the capturing phase. If you don't consume the Event, it should pass down to the controls. For more on the topic, see http://docs.oracle.com/javafx/2/events/processing.htm or http://parleys.com/play/514892290364bc17fc56c39f -Martin On 06/09/2014 08:19 AM, Tom Eugelink wrote: > Hi all, > > Maybe someone has solved this already, so I thought I pop the > question. Currently I'm working on CirclePopupMenu; a menu that is > supposed to pop up on any place in a scene when a certain (usually the > middle or right) mouse button is pressed. > > Right now CirclePopupMenu requires a stackpane to which it binds > itself. CirclePopupMenu initially places an empty "canvas" Pane on the > stack pane, and will use that to render and position the menu when it > needs to appear. > > Also I need to monitor the mouse to detect if the menu should appear. > In order to do that, I would like to use that canvas pane, but then > any non relevant button clicks will not reach the underlying controls. > In order to enable correct behavior I need to setPickOnBounds(false) > on the pane, but then it does receive the mouse events anymore. > > Is there any way to monitor mouse events but still pass them through > to the underlying controls? In Swing I did something similar and used > a system level mouse event hook. > > Tom > > PS: I'm not certain if the stackpane approach I've used is the best > way to do this. It does work expect the mouse button problem. But any > suggestions are welcome. From tbee at tbee.org Mon Jun 9 06:44:33 2014 From: tbee at tbee.org (Tom Eugelink) Date: Mon, 09 Jun 2014 08:44:33 +0200 Subject: monitor mouse events but not capture them In-Reply-To: <5395544F.6040702@oracle.com> References: <539551EF.3050706@tbee.org> <5395544F.6040702@oracle.com> Message-ID: <539557D1.6070000@tbee.org> Yessss. It does not work on the canvas pane, I suspect because of the pickOnBounds, but it does work on the stackpane. Plus, I can register to the stack pane without claiming the onMouseClick/Press hook. Many thanks! Tom On 2014-6-9 8:29, Martin Sladecek wrote: > Hi Tom, > have you tried .addEventFilter() method? It receives the Event before the controls underneath the canvas, in the capturing phase. If you don't consume the Event, it should pass down to the controls. > For more on the topic, see http://docs.oracle.com/javafx/2/events/processing.htm or http://parleys.com/play/514892290364bc17fc56c39f > > -Martin > > On 06/09/2014 08:19 AM, Tom Eugelink wrote: >> Hi all, >> >> Maybe someone has solved this already, so I thought I pop the question. Currently I'm working on CirclePopupMenu; a menu that is supposed to pop up on any place in a scene when a certain (usually the middle or right) mouse button is pressed. >> >> Right now CirclePopupMenu requires a stackpane to which it binds itself. CirclePopupMenu initially places an empty "canvas" Pane on the stack pane, and will use that to render and position the menu when it needs to appear. >> >> Also I need to monitor the mouse to detect if the menu should appear. In order to do that, I would like to use that canvas pane, but then any non relevant button clicks will not reach the underlying controls. In order to enable correct behavior I need to setPickOnBounds(false) on the pane, but then it does receive the mouse events anymore. >> >> Is there any way to monitor mouse events but still pass them through to the underlying controls? In Swing I did something similar and used a system level mouse event hook. >> >> Tom >> >> PS: I'm not certain if the stackpane approach I've used is the best way to do this. It does work expect the mouse button problem. But any suggestions are welcome. > From martin.sladecek at oracle.com Mon Jun 9 07:46:33 2014 From: martin.sladecek at oracle.com (Martin Sladecek) Date: Mon, 09 Jun 2014 09:46:33 +0200 Subject: monitor mouse events but not capture them In-Reply-To: <539557D1.6070000@tbee.org> References: <539551EF.3050706@tbee.org> <5395544F.6040702@oracle.com> <539557D1.6070000@tbee.org> Message-ID: <53956659.4040701@oracle.com> Just looked at the code and it seems Canvas does pick on bounds independently of the pickOnBounds value. There's currently no logic for picking only when over an opaque pixel ( worth filing a JIRA issue maybe?). This makes Canvas to consume everything as it's always picked instead of some controls underneath. Unfortunately, I can't think of any solution that would work right now. If we'd support Node picking (https://javafx-jira.kenai.com/browse/RT-20184), it would be possible to "redirect" an unwanted event to a different event target on that mouse position. -Martin On 06/09/2014 08:44 AM, Tom Eugelink wrote: > > Yessss. It does not work on the canvas pane, I suspect because of the > pickOnBounds, but it does work on the stackpane. Plus, I can register > to the stack pane without claiming the onMouseClick/Press hook. > > Many thanks! > > Tom > > > > On 2014-6-9 8:29, Martin Sladecek wrote: >> Hi Tom, >> have you tried .addEventFilter() method? It receives the Event before >> the controls underneath the canvas, in the capturing phase. If you >> don't consume the Event, it should pass down to the controls. >> For more on the topic, see >> http://docs.oracle.com/javafx/2/events/processing.htm or >> http://parleys.com/play/514892290364bc17fc56c39f >> >> -Martin >> >> On 06/09/2014 08:19 AM, Tom Eugelink wrote: >>> Hi all, >>> >>> Maybe someone has solved this already, so I thought I pop the >>> question. Currently I'm working on CirclePopupMenu; a menu that is >>> supposed to pop up on any place in a scene when a certain (usually >>> the middle or right) mouse button is pressed. >>> >>> Right now CirclePopupMenu requires a stackpane to which it binds >>> itself. CirclePopupMenu initially places an empty "canvas" Pane on >>> the stack pane, and will use that to render and position the menu >>> when it needs to appear. >>> >>> Also I need to monitor the mouse to detect if the menu should >>> appear. In order to do that, I would like to use that canvas pane, >>> but then any non relevant button clicks will not reach the >>> underlying controls. In order to enable correct behavior I need to >>> setPickOnBounds(false) on the pane, but then it does receive the >>> mouse events anymore. >>> >>> Is there any way to monitor mouse events but still pass them through >>> to the underlying controls? In Swing I did something similar and >>> used a system level mouse event hook. >>> >>> Tom >>> >>> PS: I'm not certain if the stackpane approach I've used is the best >>> way to do this. It does work expect the mouse button problem. But >>> any suggestions are welcome. >> > > From tbee at tbee.org Mon Jun 9 08:07:49 2014 From: tbee at tbee.org (Tom Eugelink) Date: Mon, 09 Jun 2014 10:07:49 +0200 Subject: monitor mouse events but not capture them In-Reply-To: <53956659.4040701@oracle.com> References: <539551EF.3050706@tbee.org> <5395544F.6040702@oracle.com> <539557D1.6070000@tbee.org> <53956659.4040701@oracle.com> Message-ID: <53956B55.6020209@tbee.org> Hm, maybe I chose bad words; I'm not using Canvas, but just a Pane. Since the Pane is only used to draw the menu on when it need to appear, I'm calling it the canvas pane, as in "what is painted on". On 2014-6-9 9:46, Martin Sladecek wrote: > Just looked at the code and it seems Canvas does pick on bounds independently of the pickOnBounds value. There's currently no logic for picking only when over an opaque pixel ( worth filing a JIRA issue maybe?). This makes Canvas to consume everything as it's always picked instead of some controls underneath. > > Unfortunately, I can't think of any solution that would work right now. If we'd support Node picking (https://javafx-jira.kenai.com/browse/RT-20184), it would be possible to "redirect" an unwanted event to a different event target on that mouse position. > > -Martin > > > On 06/09/2014 08:44 AM, Tom Eugelink wrote: >> >> Yessss. It does not work on the canvas pane, I suspect because of the pickOnBounds, but it does work on the stackpane. Plus, I can register to the stack pane without claiming the onMouseClick/Press hook. >> >> Many thanks! >> >> Tom >> >> >> >> On 2014-6-9 8:29, Martin Sladecek wrote: >>> Hi Tom, >>> have you tried .addEventFilter() method? It receives the Event before the controls underneath the canvas, in the capturing phase. If you don't consume the Event, it should pass down to the controls. >>> For more on the topic, see http://docs.oracle.com/javafx/2/events/processing.htm or http://parleys.com/play/514892290364bc17fc56c39f >>> >>> -Martin >>> >>> On 06/09/2014 08:19 AM, Tom Eugelink wrote: >>>> Hi all, >>>> >>>> Maybe someone has solved this already, so I thought I pop the question. Currently I'm working on CirclePopupMenu; a menu that is supposed to pop up on any place in a scene when a certain (usually the middle or right) mouse button is pressed. >>>> >>>> Right now CirclePopupMenu requires a stackpane to which it binds itself. CirclePopupMenu initially places an empty "canvas" Pane on the stack pane, and will use that to render and position the menu when it needs to appear. >>>> >>>> Also I need to monitor the mouse to detect if the menu should appear. In order to do that, I would like to use that canvas pane, but then any non relevant button clicks will not reach the underlying controls. In order to enable correct behavior I need to setPickOnBounds(false) on the pane, but then it does receive the mouse events anymore. >>>> >>>> Is there any way to monitor mouse events but still pass them through to the underlying controls? In Swing I did something similar and used a system level mouse event hook. >>>> >>>> Tom >>>> >>>> PS: I'm not certain if the stackpane approach I've used is the best way to do this. It does work expect the mouse button problem. But any suggestions are welcome. >>> >> >> > From martin.sladecek at oracle.com Mon Jun 9 08:13:54 2014 From: martin.sladecek at oracle.com (Martin Sladecek) Date: Mon, 09 Jun 2014 10:13:54 +0200 Subject: monitor mouse events but not capture them In-Reply-To: <53956B55.6020209@tbee.org> References: <539551EF.3050706@tbee.org> <5395544F.6040702@oracle.com> <539557D1.6070000@tbee.org> <53956659.4040701@oracle.com> <53956B55.6020209@tbee.org> Message-ID: <53956CC2.1080008@oracle.com> OK, so to avoid further confusion, you have a PopupWindow with a Pane and you want to capture Events on the Pane and sent those events to the underlying controls (in a parent window) if those events are not relevant to that popup? Thanks, -Martin On 06/09/2014 10:07 AM, Tom Eugelink wrote: > > Hm, maybe I chose bad words; I'm not using Canvas, but just a Pane. > Since the Pane is only used to draw the menu on when it need to > appear, I'm calling it the canvas pane, as in "what is painted on". > > > On 2014-6-9 9:46, Martin Sladecek wrote: >> Just looked at the code and it seems Canvas does pick on bounds >> independently of the pickOnBounds value. There's currently no logic >> for picking only when over an opaque pixel ( worth filing a JIRA >> issue maybe?). This makes Canvas to consume everything as it's always >> picked instead of some controls underneath. >> >> Unfortunately, I can't think of any solution that would work right >> now. If we'd support Node picking >> (https://javafx-jira.kenai.com/browse/RT-20184), it would be possible >> to "redirect" an unwanted event to a different event target on that >> mouse position. >> >> -Martin >> >> >> On 06/09/2014 08:44 AM, Tom Eugelink wrote: >>> >>> Yessss. It does not work on the canvas pane, I suspect because of >>> the pickOnBounds, but it does work on the stackpane. Plus, I can >>> register to the stack pane without claiming the onMouseClick/Press >>> hook. >>> >>> Many thanks! >>> >>> Tom >>> >>> >>> >>> On 2014-6-9 8:29, Martin Sladecek wrote: >>>> Hi Tom, >>>> have you tried .addEventFilter() method? It receives the Event >>>> before the controls underneath the canvas, in the capturing phase. >>>> If you don't consume the Event, it should pass down to the controls. >>>> For more on the topic, see >>>> http://docs.oracle.com/javafx/2/events/processing.htm or >>>> http://parleys.com/play/514892290364bc17fc56c39f >>>> >>>> -Martin >>>> >>>> On 06/09/2014 08:19 AM, Tom Eugelink wrote: >>>>> Hi all, >>>>> >>>>> Maybe someone has solved this already, so I thought I pop the >>>>> question. Currently I'm working on CirclePopupMenu; a menu that is >>>>> supposed to pop up on any place in a scene when a certain (usually >>>>> the middle or right) mouse button is pressed. >>>>> >>>>> Right now CirclePopupMenu requires a stackpane to which it binds >>>>> itself. CirclePopupMenu initially places an empty "canvas" Pane on >>>>> the stack pane, and will use that to render and position the menu >>>>> when it needs to appear. >>>>> >>>>> Also I need to monitor the mouse to detect if the menu should >>>>> appear. In order to do that, I would like to use that canvas pane, >>>>> but then any non relevant button clicks will not reach the >>>>> underlying controls. In order to enable correct behavior I need to >>>>> setPickOnBounds(false) on the pane, but then it does receive the >>>>> mouse events anymore. >>>>> >>>>> Is there any way to monitor mouse events but still pass them >>>>> through to the underlying controls? In Swing I did something >>>>> similar and used a system level mouse event hook. >>>>> >>>>> Tom >>>>> >>>>> PS: I'm not certain if the stackpane approach I've used is the >>>>> best way to do this. It does work expect the mouse button problem. >>>>> But any suggestions are welcome. >>>> >>> >>> >> > > From tbee at tbee.org Mon Jun 9 08:18:37 2014 From: tbee at tbee.org (Tom Eugelink) Date: Mon, 09 Jun 2014 10:18:37 +0200 Subject: monitor mouse events but not capture them In-Reply-To: <53956CC2.1080008@oracle.com> References: <539551EF.3050706@tbee.org> <5395544F.6040702@oracle.com> <539557D1.6070000@tbee.org> <53956659.4040701@oracle.com> <53956B55.6020209@tbee.org> <53956CC2.1080008@oracle.com> Message-ID: <53956DDD.3010505@tbee.org> No, I require a StackPane, to which a special "canvas" Pane is added. And on that Pane a circular shaped menu is placed. The separate pane prevents conflicting with other nodes that may be drawn, the stack pane makes sure the menu is on top. See the blog post about both corner menu and circle popup menu: http://tbeernot.wordpress.com/ On 2014-6-9 10:13, Martin Sladecek wrote: > OK, so to avoid further confusion, you have a PopupWindow with a Pane and you want to capture Events on the Pane and sent those events to the underlying controls (in a parent window) if those events are not relevant to that popup? > > Thanks, > -Martin > > On 06/09/2014 10:07 AM, Tom Eugelink wrote: >> >> Hm, maybe I chose bad words; I'm not using Canvas, but just a Pane. Since the Pane is only used to draw the menu on when it need to appear, I'm calling it the canvas pane, as in "what is painted on". >> >> >> On 2014-6-9 9:46, Martin Sladecek wrote: >>> Just looked at the code and it seems Canvas does pick on bounds independently of the pickOnBounds value. There's currently no logic for picking only when over an opaque pixel ( worth filing a JIRA issue maybe?). This makes Canvas to consume everything as it's always picked instead of some controls underneath. >>> >>> Unfortunately, I can't think of any solution that would work right now. If we'd support Node picking (https://javafx-jira.kenai.com/browse/RT-20184), it would be possible to "redirect" an unwanted event to a different event target on that mouse position. >>> >>> -Martin >>> >>> >>> On 06/09/2014 08:44 AM, Tom Eugelink wrote: >>>> >>>> Yessss. It does not work on the canvas pane, I suspect because of the pickOnBounds, but it does work on the stackpane. Plus, I can register to the stack pane without claiming the onMouseClick/Press hook. >>>> >>>> Many thanks! >>>> >>>> Tom >>>> >>>> >>>> >>>> On 2014-6-9 8:29, Martin Sladecek wrote: >>>>> Hi Tom, >>>>> have you tried .addEventFilter() method? It receives the Event before the controls underneath the canvas, in the capturing phase. If you don't consume the Event, it should pass down to the controls. >>>>> For more on the topic, see http://docs.oracle.com/javafx/2/events/processing.htm or http://parleys.com/play/514892290364bc17fc56c39f >>>>> >>>>> -Martin >>>>> >>>>> On 06/09/2014 08:19 AM, Tom Eugelink wrote: >>>>>> Hi all, >>>>>> >>>>>> Maybe someone has solved this already, so I thought I pop the question. Currently I'm working on CirclePopupMenu; a menu that is supposed to pop up on any place in a scene when a certain (usually the middle or right) mouse button is pressed. >>>>>> >>>>>> Right now CirclePopupMenu requires a stackpane to which it binds itself. CirclePopupMenu initially places an empty "canvas" Pane on the stack pane, and will use that to render and position the menu when it needs to appear. >>>>>> >>>>>> Also I need to monitor the mouse to detect if the menu should appear. In order to do that, I would like to use that canvas pane, but then any non relevant button clicks will not reach the underlying controls. In order to enable correct behavior I need to setPickOnBounds(false) on the pane, but then it does receive the mouse events anymore. >>>>>> >>>>>> Is there any way to monitor mouse events but still pass them through to the underlying controls? In Swing I did something similar and used a system level mouse event hook. >>>>>> >>>>>> Tom >>>>>> >>>>>> PS: I'm not certain if the stackpane approach I've used is the best way to do this. It does work expect the mouse button problem. But any suggestions are welcome. >>>>> >>>> >>>> >>> >> >> > From tbee at tbee.org Mon Jun 9 08:20:40 2014 From: tbee at tbee.org (Tom Eugelink) Date: Mon, 09 Jun 2014 10:20:40 +0200 Subject: monitor mouse events but not capture them In-Reply-To: <53956CC2.1080008@oracle.com> References: <539551EF.3050706@tbee.org> <5395544F.6040702@oracle.com> <539557D1.6070000@tbee.org> <53956659.4040701@oracle.com> <53956B55.6020209@tbee.org> <53956CC2.1080008@oracle.com> Message-ID: <53956E58.50907@tbee.org> Or to see in in action with a single java -jar statement, download the samples from. http://jfxtras.org/ On 2014-6-9 10:13, Martin Sladecek wrote: > OK, so to avoid further confusion, you have a PopupWindow with a Pane and you want to capture Events on the Pane and sent those events to the underlying controls (in a parent window) if those events are not relevant to that popup? > > Thanks, > -Martin > > On 06/09/2014 10:07 AM, Tom Eugelink wrote: >> >> Hm, maybe I chose bad words; I'm not using Canvas, but just a Pane. Since the Pane is only used to draw the menu on when it need to appear, I'm calling it the canvas pane, as in "what is painted on". >> >> >> On 2014-6-9 9:46, Martin Sladecek wrote: >>> Just looked at the code and it seems Canvas does pick on bounds independently of the pickOnBounds value. There's currently no logic for picking only when over an opaque pixel ( worth filing a JIRA issue maybe?). This makes Canvas to consume everything as it's always picked instead of some controls underneath. >>> >>> Unfortunately, I can't think of any solution that would work right now. If we'd support Node picking (https://javafx-jira.kenai.com/browse/RT-20184), it would be possible to "redirect" an unwanted event to a different event target on that mouse position. >>> >>> -Martin >>> >>> >>> On 06/09/2014 08:44 AM, Tom Eugelink wrote: >>>> >>>> Yessss. It does not work on the canvas pane, I suspect because of the pickOnBounds, but it does work on the stackpane. Plus, I can register to the stack pane without claiming the onMouseClick/Press hook. >>>> >>>> Many thanks! >>>> >>>> Tom >>>> >>>> >>>> >>>> On 2014-6-9 8:29, Martin Sladecek wrote: >>>>> Hi Tom, >>>>> have you tried .addEventFilter() method? It receives the Event before the controls underneath the canvas, in the capturing phase. If you don't consume the Event, it should pass down to the controls. >>>>> For more on the topic, see http://docs.oracle.com/javafx/2/events/processing.htm or http://parleys.com/play/514892290364bc17fc56c39f >>>>> >>>>> -Martin >>>>> >>>>> On 06/09/2014 08:19 AM, Tom Eugelink wrote: >>>>>> Hi all, >>>>>> >>>>>> Maybe someone has solved this already, so I thought I pop the question. Currently I'm working on CirclePopupMenu; a menu that is supposed to pop up on any place in a scene when a certain (usually the middle or right) mouse button is pressed. >>>>>> >>>>>> Right now CirclePopupMenu requires a stackpane to which it binds itself. CirclePopupMenu initially places an empty "canvas" Pane on the stack pane, and will use that to render and position the menu when it needs to appear. >>>>>> >>>>>> Also I need to monitor the mouse to detect if the menu should appear. In order to do that, I would like to use that canvas pane, but then any non relevant button clicks will not reach the underlying controls. In order to enable correct behavior I need to setPickOnBounds(false) on the pane, but then it does receive the mouse events anymore. >>>>>> >>>>>> Is there any way to monitor mouse events but still pass them through to the underlying controls? In Swing I did something similar and used a system level mouse event hook. >>>>>> >>>>>> Tom >>>>>> >>>>>> PS: I'm not certain if the stackpane approach I've used is the best way to do this. It does work expect the mouse button problem. But any suggestions are welcome. >>>>> >>>> >>>> >>> >> >> > From martin.sladecek at oracle.com Mon Jun 9 08:41:17 2014 From: martin.sladecek at oracle.com (Martin Sladecek) Date: Mon, 09 Jun 2014 10:41:17 +0200 Subject: monitor mouse events but not capture them In-Reply-To: <53956E58.50907@tbee.org> References: <539551EF.3050706@tbee.org> <5395544F.6040702@oracle.com> <539557D1.6070000@tbee.org> <53956659.4040701@oracle.com> <53956B55.6020209@tbee.org> <53956CC2.1080008@oracle.com> <53956E58.50907@tbee.org> Message-ID: <5395732D.80909@oracle.com> Oh, I see. So it's not a PopupWindow at all. Events can pass only though parent-child hierarchy, so you can't catch an Event in your "circular menu" pane and then pass it to some other children of the parent StackPane. The menu pane would have to be parent of the controls in the StackPane. So again, you'd need RT-20184 to determine the target again by temporarily making the menu pane mouse transparent, doing Scene.pick and then redirecting the Event by Event.fireEvent(). But I think reworking you menu to be a PopupWindow should work. The transparent areas in the circular menu should pass mouse events to the underlying window. -Martin On 06/09/2014 10:20 AM, Tom Eugelink wrote: > > Or to see in in action with a single java -jar statement, download the > samples from. > http://jfxtras.org/ > > > > On 2014-6-9 10:13, Martin Sladecek wrote: >> OK, so to avoid further confusion, you have a PopupWindow with a Pane >> and you want to capture Events on the Pane and sent those events to >> the underlying controls (in a parent window) if those events are not >> relevant to that popup? >> >> Thanks, >> -Martin >> >> On 06/09/2014 10:07 AM, Tom Eugelink wrote: >>> >>> Hm, maybe I chose bad words; I'm not using Canvas, but just a Pane. >>> Since the Pane is only used to draw the menu on when it need to >>> appear, I'm calling it the canvas pane, as in "what is painted on". >>> >>> >>> On 2014-6-9 9:46, Martin Sladecek wrote: >>>> Just looked at the code and it seems Canvas does pick on bounds >>>> independently of the pickOnBounds value. There's currently no logic >>>> for picking only when over an opaque pixel ( worth filing a JIRA >>>> issue maybe?). This makes Canvas to consume everything as it's >>>> always picked instead of some controls underneath. >>>> >>>> Unfortunately, I can't think of any solution that would work right >>>> now. If we'd support Node picking >>>> (https://javafx-jira.kenai.com/browse/RT-20184), it would be >>>> possible to "redirect" an unwanted event to a different event >>>> target on that mouse position. >>>> >>>> -Martin >>>> >>>> >>>> On 06/09/2014 08:44 AM, Tom Eugelink wrote: >>>>> >>>>> Yessss. It does not work on the canvas pane, I suspect because of >>>>> the pickOnBounds, but it does work on the stackpane. Plus, I can >>>>> register to the stack pane without claiming the onMouseClick/Press >>>>> hook. >>>>> >>>>> Many thanks! >>>>> >>>>> Tom >>>>> >>>>> >>>>> >>>>> On 2014-6-9 8:29, Martin Sladecek wrote: >>>>>> Hi Tom, >>>>>> have you tried .addEventFilter() method? It receives the Event >>>>>> before the controls underneath the canvas, in the capturing >>>>>> phase. If you don't consume the Event, it should pass down to the >>>>>> controls. >>>>>> For more on the topic, see >>>>>> http://docs.oracle.com/javafx/2/events/processing.htm or >>>>>> http://parleys.com/play/514892290364bc17fc56c39f >>>>>> >>>>>> -Martin >>>>>> >>>>>> On 06/09/2014 08:19 AM, Tom Eugelink wrote: >>>>>>> Hi all, >>>>>>> >>>>>>> Maybe someone has solved this already, so I thought I pop the >>>>>>> question. Currently I'm working on CirclePopupMenu; a menu that >>>>>>> is supposed to pop up on any place in a scene when a certain >>>>>>> (usually the middle or right) mouse button is pressed. >>>>>>> >>>>>>> Right now CirclePopupMenu requires a stackpane to which it binds >>>>>>> itself. CirclePopupMenu initially places an empty "canvas" Pane >>>>>>> on the stack pane, and will use that to render and position the >>>>>>> menu when it needs to appear. >>>>>>> >>>>>>> Also I need to monitor the mouse to detect if the menu should >>>>>>> appear. In order to do that, I would like to use that canvas >>>>>>> pane, but then any non relevant button clicks will not reach the >>>>>>> underlying controls. In order to enable correct behavior I need >>>>>>> to setPickOnBounds(false) on the pane, but then it does receive >>>>>>> the mouse events anymore. >>>>>>> >>>>>>> Is there any way to monitor mouse events but still pass them >>>>>>> through to the underlying controls? In Swing I did something >>>>>>> similar and used a system level mouse event hook. >>>>>>> >>>>>>> Tom >>>>>>> >>>>>>> PS: I'm not certain if the stackpane approach I've used is the >>>>>>> best way to do this. It does work expect the mouse button >>>>>>> problem. But any suggestions are welcome. >>>>>> >>>>> >>>>> >>>> >>> >>> >> > > From tbee at tbee.org Mon Jun 9 09:01:00 2014 From: tbee at tbee.org (Tom Eugelink) Date: Mon, 09 Jun 2014 11:01:00 +0200 Subject: monitor mouse events but not capture them In-Reply-To: <5395732D.80909@oracle.com> References: <539551EF.3050706@tbee.org> <5395544F.6040702@oracle.com> <539557D1.6070000@tbee.org> <53956659.4040701@oracle.com> <53956B55.6020209@tbee.org> <53956CC2.1080008@oracle.com> <53956E58.50907@tbee.org> <5395732D.80909@oracle.com> Message-ID: <539577CC.9000509@tbee.org> But a PopupWindow would be detached from the pane? Not sure if that is what I envision, but I'll give it a go and see what it looks like. Your event filter does work though for what I need now. Thanks! On 2014-6-9 10:41, Martin Sladecek wrote: > Oh, I see. So it's not a PopupWindow at all. > Events can pass only though parent-child hierarchy, so you can't catch an Event in your "circular menu" pane and then pass it to some other children of the parent StackPane. The menu pane would have to be parent of the controls in the StackPane. > So again, you'd need RT-20184 to determine the target again by temporarily making the menu pane mouse transparent, doing Scene.pick and then redirecting the Event by Event.fireEvent(). > > But I think reworking you menu to be a PopupWindow should work. The transparent areas in the circular menu should pass mouse events to the underlying window. > > -Martin > > On 06/09/2014 10:20 AM, Tom Eugelink wrote: >> >> Or to see in in action with a single java -jar statement, download the samples from. >> http://jfxtras.org/ >> >> >> >> On 2014-6-9 10:13, Martin Sladecek wrote: >>> OK, so to avoid further confusion, you have a PopupWindow with a Pane and you want to capture Events on the Pane and sent those events to the underlying controls (in a parent window) if those events are not relevant to that popup? >>> >>> Thanks, >>> -Martin >>> >>> On 06/09/2014 10:07 AM, Tom Eugelink wrote: >>>> >>>> Hm, maybe I chose bad words; I'm not using Canvas, but just a Pane. Since the Pane is only used to draw the menu on when it need to appear, I'm calling it the canvas pane, as in "what is painted on". >>>> >>>> >>>> On 2014-6-9 9:46, Martin Sladecek wrote: >>>>> Just looked at the code and it seems Canvas does pick on bounds independently of the pickOnBounds value. There's currently no logic for picking only when over an opaque pixel ( worth filing a JIRA issue maybe?). This makes Canvas to consume everything as it's always picked instead of some controls underneath. >>>>> >>>>> Unfortunately, I can't think of any solution that would work right now. If we'd support Node picking (https://javafx-jira.kenai.com/browse/RT-20184), it would be possible to "redirect" an unwanted event to a different event target on that mouse position. >>>>> >>>>> -Martin >>>>> >>>>> >>>>> On 06/09/2014 08:44 AM, Tom Eugelink wrote: >>>>>> >>>>>> Yessss. It does not work on the canvas pane, I suspect because of the pickOnBounds, but it does work on the stackpane. Plus, I can register to the stack pane without claiming the onMouseClick/Press hook. >>>>>> >>>>>> Many thanks! >>>>>> >>>>>> Tom >>>>>> >>>>>> >>>>>> >>>>>> On 2014-6-9 8:29, Martin Sladecek wrote: >>>>>>> Hi Tom, >>>>>>> have you tried .addEventFilter() method? It receives the Event before the controls underneath the canvas, in the capturing phase. If you don't consume the Event, it should pass down to the controls. >>>>>>> For more on the topic, see http://docs.oracle.com/javafx/2/events/processing.htm or http://parleys.com/play/514892290364bc17fc56c39f >>>>>>> >>>>>>> -Martin >>>>>>> >>>>>>> On 06/09/2014 08:19 AM, Tom Eugelink wrote: >>>>>>>> Hi all, >>>>>>>> >>>>>>>> Maybe someone has solved this already, so I thought I pop the question. Currently I'm working on CirclePopupMenu; a menu that is supposed to pop up on any place in a scene when a certain (usually the middle or right) mouse button is pressed. >>>>>>>> >>>>>>>> Right now CirclePopupMenu requires a stackpane to which it binds itself. CirclePopupMenu initially places an empty "canvas" Pane on the stack pane, and will use that to render and position the menu when it needs to appear. >>>>>>>> >>>>>>>> Also I need to monitor the mouse to detect if the menu should appear. In order to do that, I would like to use that canvas pane, but then any non relevant button clicks will not reach the underlying controls. In order to enable correct behavior I need to setPickOnBounds(false) on the pane, but then it does receive the mouse events anymore. >>>>>>>> >>>>>>>> Is there any way to monitor mouse events but still pass them through to the underlying controls? In Swing I did something similar and used a system level mouse event hook. >>>>>>>> >>>>>>>> Tom >>>>>>>> >>>>>>>> PS: I'm not certain if the stackpane approach I've used is the best way to do this. It does work expect the mouse button problem. But any suggestions are welcome. >>>>>>> >>>>>> >>>>>> >>>>> >>>> >>>> >>> >> >> > From malcolm.lidierth at kcl.ac.uk Mon Jun 9 09:06:07 2014 From: malcolm.lidierth at kcl.ac.uk (Lidierth, Malcolm) Date: Mon, 9 Jun 2014 09:06:07 +0000 Subject: SceneBuilder 2.0 import custom components from Ja In-Reply-To: References: Message-ID: <1402304766975.65805@kcl.ac.uk> Scene Builder presently displays menu items where there is a public setter/getter for a class. Should it also display them when there is a default setter/getter implemented in an interface? That would allow control of the menus for concrete subclasses of a common abstract class where individual subclasses might implement a different set of related interfaces. __________________ From: openjfx-dev on behalf of openjfx-dev-request at openjdk.java.net Sent: Monday, June 09, 2014 9:08 AM To: openjfx-dev at openjdk.java.net Subject: openjfx-dev Digest, Vol 31, Issue 13 Send openjfx-dev mailing list submissions to openjfx-dev at openjdk.java.net To subscribe or unsubscribe via the World Wide Web, visit http://mail.openjdk.java.net/mailman/listinfo/openjfx-dev or, via email, send a message with subject or body 'help' to openjfx-dev-request at openjdk.java.net You can reach the person managing the list at openjfx-dev-owner at openjdk.java.net When replying, please edit your Subject line so it is more specific than "Re: Contents of openjfx-dev digest..." Today's Topics: 1. Re: Node lookup with TabPane (Jonathan Giles) 2. Re: SceneBuilder 2.0 import custom components from Jar (Jonathan Giles) 3. monitor mouse events but not capture them (Tom Eugelink) 4. Re: monitor mouse events but not capture them (Martin Sladecek) 5. Re: monitor mouse events but not capture them (Tom Eugelink) 6. Re: monitor mouse events but not capture them (Martin Sladecek) 7. Re: monitor mouse events but not capture them (Tom Eugelink) ---------------------------------------------------------------------- Message: 1 Date: Mon, 09 Jun 2014 08:44:15 +1200 From: Jonathan Giles To: openjfx-dev at openjdk.java.net Subject: Re: Node lookup with TabPane Message-ID: <5394CB1F.1090009 at oracle.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Christian, There is no reason why this shouldn't work - please file a bug report in our Jira bug tracker and we can take a look at resolving this. Thanks, -- Jonathan On 8/06/2014 8:31 p.m., Christian wrote: > Hi, > I'm not sure if this is a bug because it looks like it is designed > this way. > I just tried to do a TabPane.lookupAll("#myId") which does not return > any result. > This is because the TabPane doesn't add the Tabs(which are no nodes) > to its children. > If it would add the content of each pane to the children the lookup > would work. > My solution right now is to scan the scenegraph myself. > It is just not that easy to determine when to use lookupAll and when > to manually scan the scenegraph. > Didn't yet check it but I think the same might apply to containers > like Accordion. > Would be nice if somebody could give me some clarification. > Thanks, > Christian > > > Unit Test: > public class TabTest { > @Test > public void testLookup() throws Exception { > TabPane tabPane = new TabPane(); > Tab tab1 = new Tab("tab1"); > tabPane.getTabs().add(tab1); > > StackPane content = new StackPane(); > TextField nodeWithId = new TextField(); > nodeWithId.setId("test"); > content.getChildren().add(nodeWithId); > tab1.setContent(content); > > assertSame(nodeWithId, content.lookup("#test")); > Set idNodes = tabPane.lookupAll("#test"); > assertEquals(1,idNodes.size()); > assertSame(nodeWithId, tabPane.lookup("#test")); > } > } ------------------------------ Message: 2 Date: Mon, 09 Jun 2014 08:56:56 +1200 From: Jonathan Giles To: openjfx-dev at openjdk.java.net Subject: Re: SceneBuilder 2.0 import custom components from Jar Message-ID: <5394CE18.5050708 at oracle.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Christian, With my OpenJFX hat on: ======================= ControlsFX-related issues are best discussed on the controlsfx-dev mailing list, which can be accessed (and signed up to) here: http://groups.controlsfx.org Scene Builder is open source - you can access it by cloning the OpenJFX rt repo, and you'll find the Scene Builder source code in apps/scenebuilder. With my ControlsFX hat on: ======================= Regarding getting ControlsFX to play nicer with Scene Builder - that is really a matter for the ControlsFX project to resolve. ControlsFX needs to follow the requirements of Scene Builder and FXML, and I'm not 100% clear on what the definitive list of requirements is, but I know some of the requirements include having a public no-args constructor, and using @NamedArg on constructor parameters to define the parameter name. I have been hoping someone from the community would step up to make ControlsFX more FXML and Scene Builder compliant. If you're interested please ping me off-list. Relatedly, I recently asked if the Scene Builder team if someone could take a quick look at ControlsFX to cast their expert eyes over the API and let me know what is and isn't going to work well for them. Thanks, -- Jonathan On 8/06/2014 8:24 p.m., Christian wrote: > Hi, > I was trying to import controlsfx-5.0.6 and controlsfx-5.0.6_20 into > scenebuilder. > However only some or few controls could be imported. > When using these controls strange effects happen. > I was looking into the user guide in order to determine the > requirements that have to be met by the components in the jar file. > However there was just a simple guideline about how to import and not > how to develop custom components so that they match the scenebuilder. > I further turned the logging level of the scenbuilder to finest and > hoped to see at least some stacktraces that might give me a hint. > But I only saw stacktraces when using the imported components (mainly > belonging to missing resources because of classpath problems) nothing > from the import/jarfile-scan itself. > I was hoping that I can adjust the controlsfx classes so that they > work fine with the scenebuilder. > Any hints are more then welcome! > > ps.: > It seems that scenebuilder is closed source, or is the some source out > there I could start with? > Is there an early access release for 8u20? > > Thanks, > Christian ------------------------------ Message: 3 Date: Mon, 09 Jun 2014 08:19:27 +0200 From: Tom Eugelink To: "openjfx-dev at openjdk.java.net" Subject: monitor mouse events but not capture them Message-ID: <539551EF.3050706 at tbee.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Hi all, Maybe someone has solved this already, so I thought I pop the question. Currently I'm working on CirclePopupMenu; a menu that is supposed to pop up on any place in a scene when a certain (usually the middle or right) mouse button is pressed. Right now CirclePopupMenu requires a stackpane to which it binds itself. CirclePopupMenu initially places an empty "canvas" Pane on the stack pane, and will use that to render and position the menu when it needs to appear. Also I need to monitor the mouse to detect if the menu should appear. In order to do that, I would like to use that canvas pane, but then any non relevant button clicks will not reach the underlying controls. In order to enable correct behavior I need to setPickOnBounds(false) on the pane, but then it does receive the mouse events anymore. Is there any way to monitor mouse events but still pass them through to the underlying controls? In Swing I did something similar and used a system level mouse event hook. Tom PS: I'm not certain if the stackpane approach I've used is the best way to do this. It does work expect the mouse button problem. But any suggestions are welcome. ------------------------------ Message: 4 Date: Mon, 09 Jun 2014 08:29:35 +0200 From: Martin Sladecek To: openjfx-dev at openjdk.java.net Subject: Re: monitor mouse events but not capture them Message-ID: <5395544F.6040702 at oracle.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Hi Tom, have you tried .addEventFilter() method? It receives the Event before the controls underneath the canvas, in the capturing phase. If you don't consume the Event, it should pass down to the controls. For more on the topic, see http://docs.oracle.com/javafx/2/events/processing.htm or http://parleys.com/play/514892290364bc17fc56c39f -Martin On 06/09/2014 08:19 AM, Tom Eugelink wrote: > Hi all, > > Maybe someone has solved this already, so I thought I pop the > question. Currently I'm working on CirclePopupMenu; a menu that is > supposed to pop up on any place in a scene when a certain (usually the > middle or right) mouse button is pressed. > > Right now CirclePopupMenu requires a stackpane to which it binds > itself. CirclePopupMenu initially places an empty "canvas" Pane on the > stack pane, and will use that to render and position the menu when it > needs to appear. > > Also I need to monitor the mouse to detect if the menu should appear. > In order to do that, I would like to use that canvas pane, but then > any non relevant button clicks will not reach the underlying controls. > In order to enable correct behavior I need to setPickOnBounds(false) > on the pane, but then it does receive the mouse events anymore. > > Is there any way to monitor mouse events but still pass them through > to the underlying controls? In Swing I did something similar and used > a system level mouse event hook. > > Tom > > PS: I'm not certain if the stackpane approach I've used is the best > way to do this. It does work expect the mouse button problem. But any > suggestions are welcome. ------------------------------ Message: 5 Date: Mon, 09 Jun 2014 08:44:33 +0200 From: Tom Eugelink To: openjfx-dev at openjdk.java.net Subject: Re: monitor mouse events but not capture them Message-ID: <539557D1.6070000 at tbee.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Yessss. It does not work on the canvas pane, I suspect because of the pickOnBounds, but it does work on the stackpane. Plus, I can register to the stack pane without claiming the onMouseClick/Press hook. Many thanks! Tom On 2014-6-9 8:29, Martin Sladecek wrote: > Hi Tom, > have you tried .addEventFilter() method? It receives the Event before the controls underneath the canvas, in the capturing phase. If you don't consume the Event, it should pass down to the controls. > For more on the topic, see http://docs.oracle.com/javafx/2/events/processing.htm or http://parleys.com/play/514892290364bc17fc56c39f > > -Martin > > On 06/09/2014 08:19 AM, Tom Eugelink wrote: >> Hi all, >> >> Maybe someone has solved this already, so I thought I pop the question. Currently I'm working on CirclePopupMenu; a menu that is supposed to pop up on any place in a scene when a certain (usually the middle or right) mouse button is pressed. >> >> Right now CirclePopupMenu requires a stackpane to which it binds itself. CirclePopupMenu initially places an empty "canvas" Pane on the stack pane, and will use that to render and position the menu when it needs to appear. >> >> Also I need to monitor the mouse to detect if the menu should appear. In order to do that, I would like to use that canvas pane, but then any non relevant button clicks will not reach the underlying controls. In order to enable correct behavior I need to setPickOnBounds(false) on the pane, but then it does receive the mouse events anymore. >> >> Is there any way to monitor mouse events but still pass them through to the underlying controls? In Swing I did something similar and used a system level mouse event hook. >> >> Tom >> >> PS: I'm not certain if the stackpane approach I've used is the best way to do this. It does work expect the mouse button problem. But any suggestions are welcome. > ------------------------------ Message: 6 Date: Mon, 09 Jun 2014 09:46:33 +0200 From: Martin Sladecek To: openjfx-dev at openjdk.java.net Subject: Re: monitor mouse events but not capture them Message-ID: <53956659.4040701 at oracle.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Just looked at the code and it seems Canvas does pick on bounds independently of the pickOnBounds value. There's currently no logic for picking only when over an opaque pixel ( worth filing a JIRA issue maybe?). This makes Canvas to consume everything as it's always picked instead of some controls underneath. Unfortunately, I can't think of any solution that would work right now. If we'd support Node picking (https://javafx-jira.kenai.com/browse/RT-20184), it would be possible to "redirect" an unwanted event to a different event target on that mouse position. -Martin On 06/09/2014 08:44 AM, Tom Eugelink wrote: > > Yessss. It does not work on the canvas pane, I suspect because of the > pickOnBounds, but it does work on the stackpane. Plus, I can register > to the stack pane without claiming the onMouseClick/Press hook. > > Many thanks! > > Tom > > > > On 2014-6-9 8:29, Martin Sladecek wrote: >> Hi Tom, >> have you tried .addEventFilter() method? It receives the Event before >> the controls underneath the canvas, in the capturing phase. If you >> don't consume the Event, it should pass down to the controls. >> For more on the topic, see >> http://docs.oracle.com/javafx/2/events/processing.htm or >> http://parleys.com/play/514892290364bc17fc56c39f >> >> -Martin >> >> On 06/09/2014 08:19 AM, Tom Eugelink wrote: >>> Hi all, >>> >>> Maybe someone has solved this already, so I thought I pop the >>> question. Currently I'm working on CirclePopupMenu; a menu that is >>> supposed to pop up on any place in a scene when a certain (usually >>> the middle or right) mouse button is pressed. >>> >>> Right now CirclePopupMenu requires a stackpane to which it binds >>> itself. CirclePopupMenu initially places an empty "canvas" Pane on >>> the stack pane, and will use that to render and position the menu >>> when it needs to appear. >>> >>> Also I need to monitor the mouse to detect if the menu should >>> appear. In order to do that, I would like to use that canvas pane, >>> but then any non relevant button clicks will not reach the >>> underlying controls. In order to enable correct behavior I need to >>> setPickOnBounds(false) on the pane, but then it does receive the >>> mouse events anymore. >>> >>> Is there any way to monitor mouse events but still pass them through >>> to the underlying controls? In Swing I did something similar and >>> used a system level mouse event hook. >>> >>> Tom >>> >>> PS: I'm not certain if the stackpane approach I've used is the best >>> way to do this. It does work expect the mouse button problem. But >>> any suggestions are welcome. >> > > ------------------------------ Message: 7 Date: Mon, 09 Jun 2014 10:07:49 +0200 From: Tom Eugelink To: openjfx-dev at openjdk.java.net Subject: Re: monitor mouse events but not capture them Message-ID: <53956B55.6020209 at tbee.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Hm, maybe I chose bad words; I'm not using Canvas, but just a Pane. Since the Pane is only used to draw the menu on when it need to appear, I'm calling it the canvas pane, as in "what is painted on". On 2014-6-9 9:46, Martin Sladecek wrote: > Just looked at the code and it seems Canvas does pick on bounds independently of the pickOnBounds value. There's currently no logic for picking only when over an opaque pixel ( worth filing a JIRA issue maybe?). This makes Canvas to consume everything as it's always picked instead of some controls underneath. > > Unfortunately, I can't think of any solution that would work right now. If we'd support Node picking (https://javafx-jira.kenai.com/browse/RT-20184), it would be possible to "redirect" an unwanted event to a different event target on that mouse position. > > -Martin > > > On 06/09/2014 08:44 AM, Tom Eugelink wrote: >> >> Yessss. It does not work on the canvas pane, I suspect because of the pickOnBounds, but it does work on the stackpane. Plus, I can register to the stack pane without claiming the onMouseClick/Press hook. >> >> Many thanks! >> >> Tom >> >> >> >> On 2014-6-9 8:29, Martin Sladecek wrote: >>> Hi Tom, >>> have you tried .addEventFilter() method? It receives the Event before the controls underneath the canvas, in the capturing phase. If you don't consume the Event, it should pass down to the controls. >>> For more on the topic, see http://docs.oracle.com/javafx/2/events/processing.htm or http://parleys.com/play/514892290364bc17fc56c39f >>> >>> -Martin >>> >>> On 06/09/2014 08:19 AM, Tom Eugelink wrote: >>>> Hi all, >>>> >>>> Maybe someone has solved this already, so I thought I pop the question. Currently I'm working on CirclePopupMenu; a menu that is supposed to pop up on any place in a scene when a certain (usually the middle or right) mouse button is pressed. >>>> >>>> Right now CirclePopupMenu requires a stackpane to which it binds itself. CirclePopupMenu initially places an empty "canvas" Pane on the stack pane, and will use that to render and position the menu when it needs to appear. >>>> >>>> Also I need to monitor the mouse to detect if the menu should appear. In order to do that, I would like to use that canvas pane, but then any non relevant button clicks will not reach the underlying controls. In order to enable correct behavior I need to setPickOnBounds(false) on the pane, but then it does receive the mouse events anymore. >>>> >>>> Is there any way to monitor mouse events but still pass them through to the underlying controls? In Swing I did something similar and used a system level mouse event hook. >>>> >>>> Tom >>>> >>>> PS: I'm not certain if the stackpane approach I've used is the best way to do this. It does work expect the mouse button problem. But any suggestions are welcome. >>> >> >> > End of openjfx-dev Digest, Vol 31, Issue 13 ******************************************* From tomas.mikula at gmail.com Mon Jun 9 11:48:16 2014 From: tomas.mikula at gmail.com (Tomas Mikula) Date: Mon, 9 Jun 2014 13:48:16 +0200 Subject: monitor mouse events but not capture them In-Reply-To: <539577CC.9000509@tbee.org> References: <539551EF.3050706@tbee.org> <5395544F.6040702@oracle.com> <539557D1.6070000@tbee.org> <53956659.4040701@oracle.com> <53956B55.6020209@tbee.org> <53956CC2.1080008@oracle.com> <53956E58.50907@tbee.org> <5395732D.80909@oracle.com> <539577CC.9000509@tbee.org> Message-ID: Hi Tom, I am in favor of the menu being a PopupWindow, but alternatively, could your "canvas" be a Group instead of a Pane? The code would look like this: StackPane stack = new StackPane(); Group canvas = new Group(); canvas.setManaged(false); stack.setOnMousePressed(e -> { // layout in the top left corner of the stack pane canvas.setLayoutX(0); canvas.setLayoutY(0); stack.getChildren().add(canvas); }); Regards, Tomas On Mon, Jun 9, 2014 at 11:01 AM, Tom Eugelink wrote: > > But a PopupWindow would be detached from the pane? Not sure if that is what > I envision, but I'll give it a go and see what it looks like. > > Your event filter does work though for what I need now. > > Thanks! > > > On 2014-6-9 10:41, Martin Sladecek wrote: >> >> Oh, I see. So it's not a PopupWindow at all. >> Events can pass only though parent-child hierarchy, so you can't catch an >> Event in your "circular menu" pane and then pass it to some other children >> of the parent StackPane. The menu pane would have to be parent of the >> controls in the StackPane. >> So again, you'd need RT-20184 to determine the target again by temporarily >> making the menu pane mouse transparent, doing Scene.pick and then >> redirecting the Event by Event.fireEvent(). >> >> But I think reworking you menu to be a PopupWindow should work. The >> transparent areas in the circular menu should pass mouse events to the >> underlying window. >> >> -Martin >> >> On 06/09/2014 10:20 AM, Tom Eugelink wrote: >>> >>> >>> Or to see in in action with a single java -jar statement, download the >>> samples from. >>> http://jfxtras.org/ >>> >>> >>> >>> On 2014-6-9 10:13, Martin Sladecek wrote: >>>> >>>> OK, so to avoid further confusion, you have a PopupWindow with a Pane >>>> and you want to capture Events on the Pane and sent those events to the >>>> underlying controls (in a parent window) if those events are not relevant to >>>> that popup? >>>> >>>> Thanks, >>>> -Martin >>>> >>>> On 06/09/2014 10:07 AM, Tom Eugelink wrote: >>>>> >>>>> >>>>> Hm, maybe I chose bad words; I'm not using Canvas, but just a Pane. >>>>> Since the Pane is only used to draw the menu on when it need to appear, I'm >>>>> calling it the canvas pane, as in "what is painted on". >>>>> >>>>> >>>>> On 2014-6-9 9:46, Martin Sladecek wrote: >>>>>> >>>>>> Just looked at the code and it seems Canvas does pick on bounds >>>>>> independently of the pickOnBounds value. There's currently no logic for >>>>>> picking only when over an opaque pixel ( worth filing a JIRA issue maybe?). >>>>>> This makes Canvas to consume everything as it's always picked instead of >>>>>> some controls underneath. >>>>>> >>>>>> Unfortunately, I can't think of any solution that would work right >>>>>> now. If we'd support Node picking >>>>>> (https://javafx-jira.kenai.com/browse/RT-20184), it would be possible to >>>>>> "redirect" an unwanted event to a different event target on that mouse >>>>>> position. >>>>>> >>>>>> -Martin >>>>>> >>>>>> >>>>>> On 06/09/2014 08:44 AM, Tom Eugelink wrote: >>>>>>> >>>>>>> >>>>>>> Yessss. It does not work on the canvas pane, I suspect because of the >>>>>>> pickOnBounds, but it does work on the stackpane. Plus, I can register to the >>>>>>> stack pane without claiming the onMouseClick/Press hook. >>>>>>> >>>>>>> Many thanks! >>>>>>> >>>>>>> Tom >>>>>>> >>>>>>> >>>>>>> >>>>>>> On 2014-6-9 8:29, Martin Sladecek wrote: >>>>>>>> >>>>>>>> Hi Tom, >>>>>>>> have you tried .addEventFilter() method? It receives the Event >>>>>>>> before the controls underneath the canvas, in the capturing phase. If you >>>>>>>> don't consume the Event, it should pass down to the controls. >>>>>>>> For more on the topic, see >>>>>>>> http://docs.oracle.com/javafx/2/events/processing.htm or >>>>>>>> http://parleys.com/play/514892290364bc17fc56c39f >>>>>>>> >>>>>>>> -Martin >>>>>>>> >>>>>>>> On 06/09/2014 08:19 AM, Tom Eugelink wrote: >>>>>>>>> >>>>>>>>> Hi all, >>>>>>>>> >>>>>>>>> Maybe someone has solved this already, so I thought I pop the >>>>>>>>> question. Currently I'm working on CirclePopupMenu; a menu that is supposed >>>>>>>>> to pop up on any place in a scene when a certain (usually the middle or >>>>>>>>> right) mouse button is pressed. >>>>>>>>> >>>>>>>>> Right now CirclePopupMenu requires a stackpane to which it binds >>>>>>>>> itself. CirclePopupMenu initially places an empty "canvas" Pane on the stack >>>>>>>>> pane, and will use that to render and position the menu when it needs to >>>>>>>>> appear. >>>>>>>>> >>>>>>>>> Also I need to monitor the mouse to detect if the menu should >>>>>>>>> appear. In order to do that, I would like to use that canvas pane, but then >>>>>>>>> any non relevant button clicks will not reach the underlying controls. In >>>>>>>>> order to enable correct behavior I need to setPickOnBounds(false) on the >>>>>>>>> pane, but then it does receive the mouse events anymore. >>>>>>>>> >>>>>>>>> Is there any way to monitor mouse events but still pass them >>>>>>>>> through to the underlying controls? In Swing I did something similar and >>>>>>>>> used a system level mouse event hook. >>>>>>>>> >>>>>>>>> Tom >>>>>>>>> >>>>>>>>> PS: I'm not certain if the stackpane approach I've used is the best >>>>>>>>> way to do this. It does work expect the mouse button problem. But any >>>>>>>>> suggestions are welcome. >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>> >>>>> >>>> >>> >>> >> > > From tom.schindl at bestsolution.at Mon Jun 9 14:16:53 2014 From: tom.schindl at bestsolution.at (Tom Schindl) Date: Mon, 09 Jun 2014 16:16:53 +0200 Subject: SceneBuilder 2.0 import custom components from Ja In-Reply-To: <1402304766975.65805@kcl.ac.uk> References: <1402304766975.65805@kcl.ac.uk> Message-ID: <5395C1D5.8060401@bestsolution.at> Maybe it should but to me your use of default-methods in interfaces looks very odd and you should maybe rethink! Tom On 09.06.14 11:06, Lidierth, Malcolm wrote: > Scene Builder presently displays menu items where there is a public setter/getter for a class. > Should it also display them when there is a default setter/getter implemented in an interface? > > That would allow control of the menus for concrete subclasses of a common abstract class where individual subclasses might implement a different set of related interfaces. > > > > __________________ > From: openjfx-dev on behalf of openjfx-dev-request at openjdk.java.net > Sent: Monday, June 09, 2014 9:08 AM > To: openjfx-dev at openjdk.java.net > Subject: openjfx-dev Digest, Vol 31, Issue 13 > > Send openjfx-dev mailing list submissions to > openjfx-dev at openjdk.java.net > > To subscribe or unsubscribe via the World Wide Web, visit > http://mail.openjdk.java.net/mailman/listinfo/openjfx-dev > or, via email, send a message with subject or body 'help' to > openjfx-dev-request at openjdk.java.net > > You can reach the person managing the list at > openjfx-dev-owner at openjdk.java.net > > When replying, please edit your Subject line so it is more specific > than "Re: Contents of openjfx-dev digest..." > > > Today's Topics: > > 1. Re: Node lookup with TabPane (Jonathan Giles) > 2. Re: SceneBuilder 2.0 import custom components from Jar > (Jonathan Giles) > 3. monitor mouse events but not capture them (Tom Eugelink) > 4. Re: monitor mouse events but not capture them (Martin Sladecek) > 5. Re: monitor mouse events but not capture them (Tom Eugelink) > 6. Re: monitor mouse events but not capture them (Martin Sladecek) > 7. Re: monitor mouse events but not capture them (Tom Eugelink) > > > ---------------------------------------------------------------------- > > Message: 1 > Date: Mon, 09 Jun 2014 08:44:15 +1200 > From: Jonathan Giles > To: openjfx-dev at openjdk.java.net > Subject: Re: Node lookup with TabPane > Message-ID: <5394CB1F.1090009 at oracle.com> > Content-Type: text/plain; charset=ISO-8859-1; format=flowed > > Christian, > > There is no reason why this shouldn't work - please file a bug report in > our Jira bug tracker and we can take a look at resolving this. > > Thanks, > > -- Jonathan > > On 8/06/2014 8:31 p.m., Christian wrote: >> Hi, >> I'm not sure if this is a bug because it looks like it is designed >> this way. >> I just tried to do a TabPane.lookupAll("#myId") which does not return >> any result. >> This is because the TabPane doesn't add the Tabs(which are no nodes) >> to its children. >> If it would add the content of each pane to the children the lookup >> would work. >> My solution right now is to scan the scenegraph myself. >> It is just not that easy to determine when to use lookupAll and when >> to manually scan the scenegraph. >> Didn't yet check it but I think the same might apply to containers >> like Accordion. >> Would be nice if somebody could give me some clarification. >> Thanks, >> Christian >> >> >> Unit Test: >> public class TabTest { >> @Test >> public void testLookup() throws Exception { >> TabPane tabPane = new TabPane(); >> Tab tab1 = new Tab("tab1"); >> tabPane.getTabs().add(tab1); >> >> StackPane content = new StackPane(); >> TextField nodeWithId = new TextField(); >> nodeWithId.setId("test"); >> content.getChildren().add(nodeWithId); >> tab1.setContent(content); >> >> assertSame(nodeWithId, content.lookup("#test")); >> Set idNodes = tabPane.lookupAll("#test"); >> assertEquals(1,idNodes.size()); >> assertSame(nodeWithId, tabPane.lookup("#test")); >> } >> } > > > > ------------------------------ > > Message: 2 > Date: Mon, 09 Jun 2014 08:56:56 +1200 > From: Jonathan Giles > To: openjfx-dev at openjdk.java.net > Subject: Re: SceneBuilder 2.0 import custom components from Jar > Message-ID: <5394CE18.5050708 at oracle.com> > Content-Type: text/plain; charset=ISO-8859-1; format=flowed > > Christian, > > With my OpenJFX hat on: > ======================= > ControlsFX-related issues are best discussed on the controlsfx-dev > mailing list, which can be accessed (and signed up to) here: > http://groups.controlsfx.org > > Scene Builder is open source - you can access it by cloning the OpenJFX > rt repo, and you'll find the Scene Builder source code in apps/scenebuilder. > > > With my ControlsFX hat on: > ======================= > Regarding getting ControlsFX to play nicer with Scene Builder - that is > really a matter for the ControlsFX project to resolve. ControlsFX needs > to follow the requirements of Scene Builder and FXML, and I'm not 100% > clear on what the definitive list of requirements is, but I know some of > the requirements include having a public no-args constructor, and using > @NamedArg on constructor parameters to define the parameter name. I have > been hoping someone from the community would step up to make ControlsFX > more FXML and Scene Builder compliant. If you're interested please ping > me off-list. > > Relatedly, I recently asked if the Scene Builder team if someone could > take a quick look at ControlsFX to cast their expert eyes over the API > and let me know what is and isn't going to work well for them. > > Thanks, > > -- Jonathan > > On 8/06/2014 8:24 p.m., Christian wrote: >> Hi, >> I was trying to import controlsfx-5.0.6 and controlsfx-5.0.6_20 into >> scenebuilder. >> However only some or few controls could be imported. >> When using these controls strange effects happen. >> I was looking into the user guide in order to determine the >> requirements that have to be met by the components in the jar file. >> However there was just a simple guideline about how to import and not >> how to develop custom components so that they match the scenebuilder. >> I further turned the logging level of the scenbuilder to finest and >> hoped to see at least some stacktraces that might give me a hint. >> But I only saw stacktraces when using the imported components (mainly >> belonging to missing resources because of classpath problems) nothing >> from the import/jarfile-scan itself. >> I was hoping that I can adjust the controlsfx classes so that they >> work fine with the scenebuilder. >> Any hints are more then welcome! >> >> ps.: >> It seems that scenebuilder is closed source, or is the some source out >> there I could start with? >> Is there an early access release for 8u20? >> >> Thanks, >> Christian > > > > ------------------------------ > > Message: 3 > Date: Mon, 09 Jun 2014 08:19:27 +0200 > From: Tom Eugelink > To: "openjfx-dev at openjdk.java.net" > Subject: monitor mouse events but not capture them > Message-ID: <539551EF.3050706 at tbee.org> > Content-Type: text/plain; charset=ISO-8859-1; format=flowed > > Hi all, > > Maybe someone has solved this already, so I thought I pop the question. Currently I'm working on CirclePopupMenu; a menu that is supposed to pop up on any place in a scene when a certain (usually the middle or right) mouse button is pressed. > > Right now CirclePopupMenu requires a stackpane to which it binds itself. CirclePopupMenu initially places an empty "canvas" Pane on the stack pane, and will use that to render and position the menu when it needs to appear. > > Also I need to monitor the mouse to detect if the menu should appear. In order to do that, I would like to use that canvas pane, but then any non relevant button clicks will not reach the underlying controls. In order to enable correct behavior I need to setPickOnBounds(false) on the pane, but then it does receive the mouse events anymore. > > Is there any way to monitor mouse events but still pass them through to the underlying controls? In Swing I did something similar and used a system level mouse event hook. > > Tom > > PS: I'm not certain if the stackpane approach I've used is the best way to do this. It does work expect the mouse button problem. But any suggestions are welcome. > > > ------------------------------ > > Message: 4 > Date: Mon, 09 Jun 2014 08:29:35 +0200 > From: Martin Sladecek > To: openjfx-dev at openjdk.java.net > Subject: Re: monitor mouse events but not capture them > Message-ID: <5395544F.6040702 at oracle.com> > Content-Type: text/plain; charset=ISO-8859-1; format=flowed > > Hi Tom, > have you tried .addEventFilter() method? It receives the Event before > the controls underneath the canvas, in the capturing phase. If you don't > consume the Event, it should pass down to the controls. > For more on the topic, see > http://docs.oracle.com/javafx/2/events/processing.htm or > http://parleys.com/play/514892290364bc17fc56c39f > > -Martin > > On 06/09/2014 08:19 AM, Tom Eugelink wrote: >> Hi all, >> >> Maybe someone has solved this already, so I thought I pop the >> question. Currently I'm working on CirclePopupMenu; a menu that is >> supposed to pop up on any place in a scene when a certain (usually the >> middle or right) mouse button is pressed. >> >> Right now CirclePopupMenu requires a stackpane to which it binds >> itself. CirclePopupMenu initially places an empty "canvas" Pane on the >> stack pane, and will use that to render and position the menu when it >> needs to appear. >> >> Also I need to monitor the mouse to detect if the menu should appear. >> In order to do that, I would like to use that canvas pane, but then >> any non relevant button clicks will not reach the underlying controls. >> In order to enable correct behavior I need to setPickOnBounds(false) >> on the pane, but then it does receive the mouse events anymore. >> >> Is there any way to monitor mouse events but still pass them through >> to the underlying controls? In Swing I did something similar and used >> a system level mouse event hook. >> >> Tom >> >> PS: I'm not certain if the stackpane approach I've used is the best >> way to do this. It does work expect the mouse button problem. But any >> suggestions are welcome. > > > > ------------------------------ > > Message: 5 > Date: Mon, 09 Jun 2014 08:44:33 +0200 > From: Tom Eugelink > To: openjfx-dev at openjdk.java.net > Subject: Re: monitor mouse events but not capture them > Message-ID: <539557D1.6070000 at tbee.org> > Content-Type: text/plain; charset=ISO-8859-1; format=flowed > > > Yessss. It does not work on the canvas pane, I suspect because of the pickOnBounds, but it does work on the stackpane. Plus, I can register to the stack pane without claiming the onMouseClick/Press hook. > > Many thanks! > > Tom > > > > On 2014-6-9 8:29, Martin Sladecek wrote: >> Hi Tom, >> have you tried .addEventFilter() method? It receives the Event before the controls underneath the canvas, in the capturing phase. If you don't consume the Event, it should pass down to the controls. >> For more on the topic, see http://docs.oracle.com/javafx/2/events/processing.htm or http://parleys.com/play/514892290364bc17fc56c39f >> >> -Martin >> >> On 06/09/2014 08:19 AM, Tom Eugelink wrote: >>> Hi all, >>> >>> Maybe someone has solved this already, so I thought I pop the question. Currently I'm working on CirclePopupMenu; a menu that is supposed to pop up on any place in a scene when a certain (usually the middle or right) mouse button is pressed. >>> >>> Right now CirclePopupMenu requires a stackpane to which it binds itself. CirclePopupMenu initially places an empty "canvas" Pane on the stack pane, and will use that to render and position the menu when it needs to appear. >>> >>> Also I need to monitor the mouse to detect if the menu should appear. In order to do that, I would like to use that canvas pane, but then any non relevant button clicks will not reach the underlying controls. In order to enable correct behavior I need to setPickOnBounds(false) on the pane, but then it does receive the mouse events anymore. >>> >>> Is there any way to monitor mouse events but still pass them through to the underlying controls? In Swing I did something similar and used a system level mouse event hook. >>> >>> Tom >>> >>> PS: I'm not certain if the stackpane approach I've used is the best way to do this. It does work expect the mouse button problem. But any suggestions are welcome. >> > > > > > ------------------------------ > > Message: 6 > Date: Mon, 09 Jun 2014 09:46:33 +0200 > From: Martin Sladecek > To: openjfx-dev at openjdk.java.net > Subject: Re: monitor mouse events but not capture them > Message-ID: <53956659.4040701 at oracle.com> > Content-Type: text/plain; charset=ISO-8859-1; format=flowed > > Just looked at the code and it seems Canvas does pick on bounds > independently of the pickOnBounds value. There's currently no logic for > picking only when over an opaque pixel ( worth filing a JIRA issue > maybe?). This makes Canvas to consume everything as it's always picked > instead of some controls underneath. > > Unfortunately, I can't think of any solution that would work right now. > If we'd support Node picking > (https://javafx-jira.kenai.com/browse/RT-20184), it would be possible to > "redirect" an unwanted event to a different event target on that mouse > position. > > -Martin > > > On 06/09/2014 08:44 AM, Tom Eugelink wrote: >> >> Yessss. It does not work on the canvas pane, I suspect because of the >> pickOnBounds, but it does work on the stackpane. Plus, I can register >> to the stack pane without claiming the onMouseClick/Press hook. >> >> Many thanks! >> >> Tom >> >> >> >> On 2014-6-9 8:29, Martin Sladecek wrote: >>> Hi Tom, >>> have you tried .addEventFilter() method? It receives the Event before >>> the controls underneath the canvas, in the capturing phase. If you >>> don't consume the Event, it should pass down to the controls. >>> For more on the topic, see >>> http://docs.oracle.com/javafx/2/events/processing.htm or >>> http://parleys.com/play/514892290364bc17fc56c39f >>> >>> -Martin >>> >>> On 06/09/2014 08:19 AM, Tom Eugelink wrote: >>>> Hi all, >>>> >>>> Maybe someone has solved this already, so I thought I pop the >>>> question. Currently I'm working on CirclePopupMenu; a menu that is >>>> supposed to pop up on any place in a scene when a certain (usually >>>> the middle or right) mouse button is pressed. >>>> >>>> Right now CirclePopupMenu requires a stackpane to which it binds >>>> itself. CirclePopupMenu initially places an empty "canvas" Pane on >>>> the stack pane, and will use that to render and position the menu >>>> when it needs to appear. >>>> >>>> Also I need to monitor the mouse to detect if the menu should >>>> appear. In order to do that, I would like to use that canvas pane, >>>> but then any non relevant button clicks will not reach the >>>> underlying controls. In order to enable correct behavior I need to >>>> setPickOnBounds(false) on the pane, but then it does receive the >>>> mouse events anymore. >>>> >>>> Is there any way to monitor mouse events but still pass them through >>>> to the underlying controls? In Swing I did something similar and >>>> used a system level mouse event hook. >>>> >>>> Tom >>>> >>>> PS: I'm not certain if the stackpane approach I've used is the best >>>> way to do this. It does work expect the mouse button problem. But >>>> any suggestions are welcome. >>> >> >> > > > > ------------------------------ > > Message: 7 > Date: Mon, 09 Jun 2014 10:07:49 +0200 > From: Tom Eugelink > To: openjfx-dev at openjdk.java.net > Subject: Re: monitor mouse events but not capture them > Message-ID: <53956B55.6020209 at tbee.org> > Content-Type: text/plain; charset=ISO-8859-1; format=flowed > > > Hm, maybe I chose bad words; I'm not using Canvas, but just a Pane. Since the Pane is only used to draw the menu on when it need to appear, I'm calling it the canvas pane, as in "what is painted on". > > > On 2014-6-9 9:46, Martin Sladecek wrote: >> Just looked at the code and it seems Canvas does pick on bounds independently of the pickOnBounds value. There's currently no logic for picking only when over an opaque pixel ( worth filing a JIRA issue maybe?). This makes Canvas to consume everything as it's always picked instead of some controls underneath. >> >> Unfortunately, I can't think of any solution that would work right now. If we'd support Node picking (https://javafx-jira.kenai.com/browse/RT-20184), it would be possible to "redirect" an unwanted event to a different event target on that mouse position. >> >> -Martin >> >> >> On 06/09/2014 08:44 AM, Tom Eugelink wrote: >>> >>> Yessss. It does not work on the canvas pane, I suspect because of the pickOnBounds, but it does work on the stackpane. Plus, I can register to the stack pane without claiming the onMouseClick/Press hook. >>> >>> Many thanks! >>> >>> Tom >>> >>> >>> >>> On 2014-6-9 8:29, Martin Sladecek wrote: >>>> Hi Tom, >>>> have you tried .addEventFilter() method? It receives the Event before the controls underneath the canvas, in the capturing phase. If you don't consume the Event, it should pass down to the controls. >>>> For more on the topic, see http://docs.oracle.com/javafx/2/events/processing.htm or http://parleys.com/play/514892290364bc17fc56c39f >>>> >>>> -Martin >>>> >>>> On 06/09/2014 08:19 AM, Tom Eugelink wrote: >>>>> Hi all, >>>>> >>>>> Maybe someone has solved this already, so I thought I pop the question. Currently I'm working on CirclePopupMenu; a menu that is supposed to pop up on any place in a scene when a certain (usually the middle or right) mouse button is pressed. >>>>> >>>>> Right now CirclePopupMenu requires a stackpane to which it binds itself. CirclePopupMenu initially places an empty "canvas" Pane on the stack pane, and will use that to render and position the menu when it needs to appear. >>>>> >>>>> Also I need to monitor the mouse to detect if the menu should appear. In order to do that, I would like to use that canvas pane, but then any non relevant button clicks will not reach the underlying controls. In order to enable correct behavior I need to setPickOnBounds(false) on the pane, but then it does receive the mouse events anymore. >>>>> >>>>> Is there any way to monitor mouse events but still pass them through to the underlying controls? In Swing I did something similar and used a system level mouse event hook. >>>>> >>>>> Tom >>>>> >>>>> PS: I'm not certain if the stackpane approach I've used is the best way to do this. It does work expect the mouse button problem. But any suggestions are welcome. >>>> >>> >>> >> > > > > > End of openjfx-dev Digest, Vol 31, Issue 13 > ******************************************* > From pgronkiewicz at gmail.com Mon Jun 9 15:41:16 2014 From: pgronkiewicz at gmail.com (Pawel Gronkiewicz) Date: Mon, 9 Jun 2014 15:41:16 +0000 (UTC) Subject: Invitation to connect on LinkedIn Message-ID: <117494654.61083528.1402328476030.JavaMail.app@ela4-app7996.prod> LinkedIn ------------ I'd like to add you to my professional network on LinkedIn. - Pawel Pawel Gronkiewicz QA Engineer at Zalando SE Berlin Area, Germany Confirm that you know Pawel Gronkiewicz: https://www.linkedin.com/e/j4bywu-hw7y616g-6w/isd/5881791911672426496/WbTSli-Q/?hs=false&tok=2CLTRv31JJEmg1 -- You are receiving Invitation to Connect emails. Click to unsubscribe: http://www.linkedin.com/e/j4bywu-hw7y616g-6w/p63fWs4VSbaM8taBLf3sTb8VSQFM_H2BLf3sTxcnZr8/goo/openjfx-dev%40openjdk%2Ejava%2Enet/20061/I7229956350_1/?hs=false&tok=0L55q5-ZBJEmg1 (c) 2012 LinkedIn Corporation. 2029 Stierlin Ct, Mountain View, CA 94043, USA. From hang.vo at oracle.com Mon Jun 9 16:32:47 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Mon, 09 Jun 2014 16:32:47 +0000 Subject: hg: openjfx/8u-dev/rt: 3 new changesets Message-ID: <201406091633.s59GX9KD027761@aojmv0008> Changeset: c3f0df64cedf Author: snorthov Date: 2014-06-09 12:28 -0400 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/c3f0df64cedf INTELLIJ ONLY: fix project files reference to Eclipse bin directory ! .idea/rt-closed.iml Changeset: 030f278e3de1 Author: snorthov Date: 2014-06-09 12:29 -0400 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/030f278e3de1 ECLIPSE ONLY: fix project files to include SceneBuilder examples ! apps/scenebuilder/.classpath Changeset: 01cf6a99e67b Author: snorthov Date: 2014-06-09 12:30 -0400 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/01cf6a99e67b INTELLIJ ONLY: fix project files to include SceneBuilder examples + .idea/AirportApp.iml + .idea/HelloI18N.iml + .idea/HelloSwingNode.iml + .idea/IssueTrackingBiDi.iml + .idea/IssueTrackingLite.iml + .idea/Login.iml + .idea/UnlockCustom.iml ! .idea/modules.xml From daniel.blaukopf at oracle.com Mon Jun 9 19:45:27 2014 From: daniel.blaukopf at oracle.com (Daniel Blaukopf) Date: Mon, 9 Jun 2014 22:45:27 +0300 Subject: Review request: RT-37474 [Monocle] Shift-backspace generates an undefined key code Message-ID: <0D35BBC3-52E0-410A-86A5-DA6C7C49B386@oracle.com> Hi Lisa, Please review: https://javafx-jira.kenai.com/browse/RT-37474 http://cr.openjdk.java.net/~dblaukop/webrev-20140609-2233-RT-37474/webrev Thanks, Daniel From kevin.rushforth at oracle.com Mon Jun 9 19:57:10 2014 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Mon, 09 Jun 2014 12:57:10 -0700 Subject: 8u-dev forest open for normal pushes Message-ID: <53961196.5010907@oracle.com> From anthony.petrov at oracle.com Mon Jun 9 20:22:18 2014 From: anthony.petrov at oracle.com (Anthony Petrov) Date: Tue, 10 Jun 2014 00:22:18 +0400 Subject: [8u20] Review request: RT-36361: [Accessibility] Mac: context menu hot key not working Message-ID: <5396177A.50205@oracle.com> Hi Felipe, Steve, Please review the fix: https://javafx-jira.kenai.com/browse/RT-36361 -- best regards, Anthony From steve.x.northover at oracle.com Mon Jun 9 20:25:43 2014 From: steve.x.northover at oracle.com (Stephen F Northover) Date: Mon, 09 Jun 2014 16:25:43 -0400 Subject: [8u20] Review request: [FXCanvas, JFXPanel] NPE in Browser while pressing back/forward buttons from mouse In-Reply-To: <5396177A.50205@oracle.com> References: <5396177A.50205@oracle.com> Message-ID: <53961847.70706@oracle.com> Hi Antony, Felipe, Please review: https://javafx-jira.kenai.com/browse/RT-37436 Steve From hang.vo at oracle.com Mon Jun 9 21:02:59 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Mon, 09 Jun 2014 21:02:59 +0000 Subject: hg: openjfx/8u-dev/rt: 2 new changesets Message-ID: <201406092103.s59L3HIw009383@aojmv0008> Changeset: a3b5a890fbe1 Author: flar Date: 2014-06-09 13:47 -0700 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/a3b5a890fbe1 Fix RT-36891: [Canvas] clipping can be corrupted by transform Reviewed by: kcr ! modules/graphics/src/main/java/com/sun/javafx/sg/prism/NGCanvas.java Changeset: bc2f5bd0feac Author: flar Date: 2014-06-09 13:54 -0700 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/bc2f5bd0feac Fix RT-37449: [Canvas] PixelWriter single pixel writes leave the graphics in SRC mode Reviewed by: kcr, felipe ! modules/graphics/src/main/java/com/sun/javafx/sg/prism/NGCanvas.java From hang.vo at oracle.com Mon Jun 9 21:47:38 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Mon, 09 Jun 2014 21:47:38 +0000 Subject: hg: openjfx/8u-dev/rt: 2 new changesets Message-ID: <201406092147.s59LltGo016931@aojmv0008> Changeset: 570ce4be0938 Author: Felipe Heidrich Date: 2014-06-09 13:22 -0700 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/570ce4be0938 RT-36630: [Accessibility] Mac, sometimes VO focus starts at the wrong node ! modules/graphics/src/main/java/com/sun/glass/ui/mac/MacAccessible.java ! modules/graphics/src/main/java/com/sun/glass/ui/win/WinAccessible.java ! modules/graphics/src/main/java/javafx/scene/Node.java Changeset: 8a087879ffc5 Author: Felipe Heidrich Date: 2014-06-09 14:33 -0700 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/8a087879ffc5 [ACCESSIBILITY] Indeterminate ProgressIndicator should be reported as 'Indeterminate progress indicator' 'instead of 'buy indicator' by VoiceOver, The fix is to not specify the max value for AXProgressIndicator instead of using AXBusyIndicator. ! modules/graphics/src/main/java/com/sun/glass/ui/mac/MacAccessible.java From hang.vo at oracle.com Mon Jun 9 22:17:42 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Mon, 09 Jun 2014 22:17:42 +0000 Subject: hg: openjfx/8u-dev/rt: 3 new changesets Message-ID: <201406092218.s59MI67t021143@aojmv0008> Changeset: 9b0627dd3de8 Author: Felipe Heidrich Date: 2014-06-09 15:12 -0700 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/9b0627dd3de8 [Accessibility] removing accessibilityIndexOfChild(), it never fixed anything (it was added during early investigation on virtualizing items and children). ! modules/graphics/src/main/java/com/sun/glass/ui/mac/MacAccessible.java Changeset: e67939cbeff2 Author: shemnon Date: 2014-06-09 15:49 -0600 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/e67939cbeff2 RT-37477: [packager] Classpath seaparter internally inconsistant Summary: make space separated jars the norm. ! modules/fxpackager/src/main/java/com/oracle/tools/packager/StandardBundlerParam.java ! modules/fxpackager/src/main/java/com/oracle/tools/packager/mac/MacAppBundler.java Changeset: af5c225d743e Author: shemnon Date: 2014-06-09 16:12 -0600 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/af5c225d743e RT-37477: [packager] Classpath seaparter internally inconsistant Summary: change MAIN_JAR_CLASSPATH field to simply CLASSPATH ! modules/fxpackager/src/main/java/com/oracle/tools/packager/StandardBundlerParam.java ! modules/fxpackager/src/main/java/com/oracle/tools/packager/linux/LinuxAppBundler.java ! modules/fxpackager/src/main/java/com/oracle/tools/packager/mac/MacAppBundler.java ! modules/fxpackager/src/main/java/com/oracle/tools/packager/windows/WinAppBundler.java ! modules/fxpackager/src/main/resources/com/oracle/tools/packager/StandardBundlerParam.properties ! modules/fxpackager/src/test/java/com/oracle/tools/packager/linux/LinuxAppBundlerTest.java ! modules/fxpackager/src/test/java/com/oracle/tools/packager/linux/LinuxDebBundlerTest.java ! modules/fxpackager/src/test/java/com/oracle/tools/packager/linux/LinuxRpmBundlerTest.java ! modules/fxpackager/src/test/java/com/oracle/tools/packager/mac/MacAppBundlerTest.java ! modules/fxpackager/src/test/java/com/oracle/tools/packager/mac/MacAppStoreBundlerTest.java ! modules/fxpackager/src/test/java/com/oracle/tools/packager/mac/MacDmgBundlerTest.java ! modules/fxpackager/src/test/java/com/oracle/tools/packager/mac/MacPkgBundlerTest.java ! modules/fxpackager/src/test/java/com/oracle/tools/packager/windows/WinAppBundlerTest.java ! modules/fxpackager/src/test/java/com/oracle/tools/packager/windows/WinExeBundlerTest.java ! modules/fxpackager/src/test/java/com/oracle/tools/packager/windows/WinMsiBundlerTest.java ! modules/fxpackager/src/test/java/com/oracle/tools/packager/windows/WinServiceBundlerTest.java From jeff at reportmill.com Mon Jun 9 22:52:26 2014 From: jeff at reportmill.com (Jeff Martin) Date: Mon, 9 Jun 2014 17:52:26 -0500 Subject: -fx-background-radius problem Message-ID: Has anyone seen a problem with -fx-background-radius on Windows? When I run Windows using Parallels (on a Mac), -fx-background-radius styles seem to get ignored. Here is my sample code: // Create label with background color and radius Label label = new Label("Testing"); label.setPadding(new Insets(20)); label.setStyle("-fx-background-color:cyan;-fx-background-radius:20;"); // Add to box, scene and stage VBox vbox = new VBox(); vbox.setPrefSize(300,300); vbox.setAlignment(Pos.CENTER); vbox.getChildren().add(label); aStage.setScene(new Scene(vbox)); aStage.show(); On my Mac it renders correctly: http://www.reportmill.com/examples/Radius/RadiusMac.jpg On Parallels Windows it does not: http://www.reportmill.com/examples/Radius/RadiusWin.jpg Am I missing something or should I file a bug? jeff From kevin.rushforth at oracle.com Mon Jun 9 23:18:08 2014 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Mon, 09 Jun 2014 16:18:08 -0700 Subject: -fx-background-radius problem In-Reply-To: References: Message-ID: <539640B0.6070409@oracle.com> Since you said: > On Parallels Windows it does not: http://www.reportmill.com/examples/Radius/RadiusWin.jpg > This is probably a SW rendering bug (we will fall back to SW when running in Parallels). Is this with 8u20-ea or with 8u5? Please file a JIRA with a complete test program. Also, can you try it with "-Dprism.order=sw" on Mac and see if the same bug happens? -- Kevin Jeff Martin wrote: > Has anyone seen a problem with -fx-background-radius on Windows? When I run Windows using Parallels (on a Mac), -fx-background-radius styles seem to get ignored. > > Here is my sample code: > > // Create label with background color and radius > Label label = new Label("Testing"); label.setPadding(new Insets(20)); > label.setStyle("-fx-background-color:cyan;-fx-background-radius:20;"); > > // Add to box, scene and stage > VBox vbox = new VBox(); vbox.setPrefSize(300,300); vbox.setAlignment(Pos.CENTER); > vbox.getChildren().add(label); aStage.setScene(new Scene(vbox)); aStage.show(); > > On my Mac it renders correctly: http://www.reportmill.com/examples/Radius/RadiusMac.jpg > > On Parallels Windows it does not: http://www.reportmill.com/examples/Radius/RadiusWin.jpg > > Am I missing something or should I file a bug? > > jeff From hang.vo at oracle.com Tue Jun 10 00:02:50 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 10 Jun 2014 00:02:50 +0000 Subject: hg: openjfx/8u-dev/rt: [Accessibility] WinAccessible#Navigate() was quite inneficient for next/previous sibling navigation. It had to traverse the parent starting at index zero to find the current child before it can know the next sibling. Since next sibling travesral is usually sequencial, by remembering the index for the last child it sets up for the next call to next sibling to start at the right location in the list Message-ID: <201406100003.s5A031Dj007443@aojmv0008> Changeset: 27adbe346c85 Author: Felipe Heidrich Date: 2014-06-09 16:45 -0700 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/27adbe346c85 [Accessibility] WinAccessible#Navigate() was quite inneficient for next/previous sibling navigation. It had to traverse the parent starting at index zero to find the current child before it can know the next sibling. Since next sibling travesral is usually sequencial, by remembering the index for the last child it sets up for the next call to next sibling to start at the right location in the list ! modules/graphics/src/main/java/com/sun/glass/ui/win/WinAccessible.java From hang.vo at oracle.com Tue Jun 10 03:17:41 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 10 Jun 2014 03:17:41 +0000 Subject: hg: openjfx/8u-dev/rt: RT-37429: [TreeTable] An ArrayIndexOutOfBoundsException is thrown when calling getAddedSubList on a Change from TreeTableView's selectedItems. Message-ID: <201406100317.s5A3Hrh0003430@aojmv0008> Changeset: 60c28b4342a4 Author: jgiles Date: 2014-06-10 12:56 +1200 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/60c28b4342a4 RT-37429: [TreeTable] An ArrayIndexOutOfBoundsException is thrown when calling getAddedSubList on a Change from TreeTableView's selectedItems. ! modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/TableViewBehaviorBase.java ! modules/controls/src/main/java/javafx/scene/control/ListView.java ! modules/controls/src/main/java/javafx/scene/control/MultipleSelectionModelBase.java ! modules/controls/src/main/java/javafx/scene/control/TableCell.java ! modules/controls/src/main/java/javafx/scene/control/TablePosition.java ! modules/controls/src/main/java/javafx/scene/control/TableView.java ! modules/controls/src/main/java/javafx/scene/control/TreeTableCell.java ! modules/controls/src/main/java/javafx/scene/control/TreeTablePosition.java ! modules/controls/src/main/java/javafx/scene/control/TreeTableView.java ! modules/controls/src/test/java/javafx/scene/control/TableViewTest.java ! modules/controls/src/test/java/javafx/scene/control/TreeTableViewMouseInputTest.java ! modules/controls/src/test/java/javafx/scene/control/TreeTableViewTest.java From richard.bair at oracle.com Tue Jun 10 03:09:00 2014 From: richard.bair at oracle.com (Richard Bair) Date: Mon, 9 Jun 2014 20:09:00 -0700 Subject: How to scale control properly? In-Reply-To: References: <53907ADC.2000604@oracle.com> Message-ID: One thing we?ve always considered was adding some kind of convenience API to Node to toggle how the layout bounds are computed (whether they take into account transforms or not). Martin, how difficult would that be, do you think? Richard On Jun 5, 2014, at 11:41 AM, Rafal Leibzig wrote: > Thanks for advice. > I know this trick with wrapping in a Group, but as i wrote on > stackoverflow, there is dropshadow effect after moving mouse over the > control. > This effect extends group's layoutBounds for a while. > And when mouse leaves out the control, then group's layoutBounds shrink. > > I found the sources/css for this control: > https://bitbucket.org/controlsfx/controlsfx/src/96f40eb0b579277139192e2398fbbaf7fd01f91e/controlsfx/src/main/resources/org/controlsfx/control/rating.css?at=default > > -- > Rafal > > > 2014-06-05 16:12 GMT+02:00 Martin Sladecek : > >> Hi Rafal, >> you can wrap the control in a Group. That way, it's (actually Group's) >> layoutBounds will be the same as it's transformed bounds (boundsInParent). >> Alternatively you can use css styling, but I don't know much about how to >> do it properly, maybe Jonathan can help you there. >> >> -Martin >> >> >> On 06/05/2014 01:13 AM, Rafal Leibzig wrote: >> >>> Hi, >>> >>> Sorry for disturbing you, but I have a question and no one answered me on >>> other forums. >>> >>> My question is rather simple: >>> >>> http://stackoverflow.com/questions/23997115/how-to- >>> scale-control-and-layout-it-properly-in-javafx >>> >>> >>> Thanks in advance. >>> You are the experts. :) >>> >>> >>> >> From hang.vo at oracle.com Tue Jun 10 04:18:04 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 10 Jun 2014 04:18:04 +0000 Subject: hg: openjfx/8u-dev/rt: RT-37392: TableView's columns auto-resize if a CSS class is added/removed on MouseEnter/Exit of a wrapping pane Message-ID: <201406100418.s5A4IGvr011697@aojmv0008> Changeset: 7cbfb3021f40 Author: jgiles Date: 2014-06-10 16:07 +1200 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/7cbfb3021f40 RT-37392: TableView's columns auto-resize if a CSS class is added/removed on MouseEnter/Exit of a wrapping pane ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TableColumnHeader.java From hang.vo at oracle.com Tue Jun 10 06:03:13 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 10 Jun 2014 06:03:13 +0000 Subject: hg: openjfx/8u-dev/rt: 2 new changesets Message-ID: <201406100603.s5A63VwE026018@aojmv0008> Changeset: 619b6657bf41 Author: Daniel Blaukopf Date: 2014-06-10 08:45 +0300 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/619b6657bf41 RT-37474 [Monocle] Shift-backspace generates an undefined key code Reviewed-by: kselle ! modules/graphics/src/main/java/com/sun/glass/ui/monocle/util/IntSet.java + tests/system/src/test/java/com/sun/glass/ui/monocle/IntSetTest.java ! tests/system/src/test/java/com/sun/glass/ui/monocle/input/USKeyboardTest.java Changeset: 8e8843aaaff2 Author: Martin Sladecek Date: 2014-06-10 07:50 +0200 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/8e8843aaaff2 RT-37394 ProgressBar starts from wrong position when switching from indeterminate to determinate mode Reviewed by: jgiles ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ProgressBarSkin.java From martin.sladecek at oracle.com Tue Jun 10 06:23:17 2014 From: martin.sladecek at oracle.com (Martin Sladecek) Date: Tue, 10 Jun 2014 08:23:17 +0200 Subject: How to scale control properly? In-Reply-To: References: <53907ADC.2000604@oracle.com> Message-ID: <5396A455.4010204@oracle.com> That should work for non-resizable Nodes, but resizables would be tricky if not impossible. During the layout pass, we need to know min/pref/max size. In this case, it would have to be adjusted with the transformation (which can be a rotation, shear or doesn't have to be affine). The transformation can make width&height depend on each other (like 45deg rotation makes the min/max width depend on height and vice-versa). Then there's a problem with Region's width/height properties which are being set by the layout pane. They should be without transformations (as internal layout uses them), so either the layout algorithms would have to undo the transforms and compute the right size or the logic would need to be in resize() call, which turns setWidth/setHeight to kind-of a pitfall. I think the best solution would be to add some "scale" styleable-only property to Control, as that's probably the most reasonable transform we want to include in layout bounds. As controls have another layer of layoutChildren() call which passes the width/height and do not (should not?) use getWidth()/getHeight() for their layout, it might be possible to hide the internal logic in some common Skin code. That would also mean adding a mandatory Pane to each control that would be the root of the skin, but a child of the control, to hide the internal transformations. -Martin On 10.6.2014 05:09, Richard Bair wrote: > One thing we?ve always considered was adding some kind of convenience API to Node to toggle how the layout bounds are computed (whether they take into account transforms or not). Martin, how difficult would that be, do you think? > > Richard > > On Jun 5, 2014, at 11:41 AM, Rafal Leibzig wrote: > >> Thanks for advice. >> I know this trick with wrapping in a Group, but as i wrote on >> stackoverflow, there is dropshadow effect after moving mouse over the >> control. >> This effect extends group's layoutBounds for a while. >> And when mouse leaves out the control, then group's layoutBounds shrink. >> >> I found the sources/css for this control: >> https://bitbucket.org/controlsfx/controlsfx/src/96f40eb0b579277139192e2398fbbaf7fd01f91e/controlsfx/src/main/resources/org/controlsfx/control/rating.css?at=default >> >> -- >> Rafal >> >> >> 2014-06-05 16:12 GMT+02:00 Martin Sladecek : >> >>> Hi Rafal, >>> you can wrap the control in a Group. That way, it's (actually Group's) >>> layoutBounds will be the same as it's transformed bounds (boundsInParent). >>> Alternatively you can use css styling, but I don't know much about how to >>> do it properly, maybe Jonathan can help you there. >>> >>> -Martin >>> >>> >>> On 06/05/2014 01:13 AM, Rafal Leibzig wrote: >>> >>>> Hi, >>>> >>>> Sorry for disturbing you, but I have a question and no one answered me on >>>> other forums. >>>> >>>> My question is rather simple: >>>> >>>> http://stackoverflow.com/questions/23997115/how-to- >>>> scale-control-and-layout-it-properly-in-javafx >>>> >>>> >>>> Thanks in advance. >>>> You are the experts. :) >>>> >>>> >>>> From tbee at tbee.org Tue Jun 10 06:48:23 2014 From: tbee at tbee.org (Tom Eugelink) Date: Tue, 10 Jun 2014 08:48:23 +0200 Subject: monitor mouse events but not capture them In-Reply-To: References: <539551EF.3050706@tbee.org> <5395544F.6040702@oracle.com> <539557D1.6070000@tbee.org> <53956659.4040701@oracle.com> <53956B55.6020209@tbee.org> <53956CC2.1080008@oracle.com> <53956E58.50907@tbee.org> <5395732D.80909@oracle.com> <539577CC.9000509@tbee.org> Message-ID: <5396AA37.70203@tbee.org> Looking at PopupWindow; that is an abstract class and I'm not finding much examples on how to use it. Maybe extending PopupControl would be a better choice. Been looking at the ContextMenu source code (which is extending PopupControl), but it is somewhat mysterious how those MenuItems get rendered. I would expect maybe a skin, but I'm not finding it. On 2014-6-9 13:48, Tomas Mikula wrote: > Hi Tom, > > I am in favor of the menu being a PopupWindow, but alternatively, > could your "canvas" be a Group instead of a Pane? > > The code would look like this: > > StackPane stack = new StackPane(); > > Group canvas = new Group(); > canvas.setManaged(false); > > stack.setOnMousePressed(e -> { > // layout in the top left corner of the stack pane > canvas.setLayoutX(0); > canvas.setLayoutY(0); > > stack.getChildren().add(canvas); > }); > > Regards, > Tomas > > On Mon, Jun 9, 2014 at 11:01 AM, Tom Eugelink wrote: >> But a PopupWindow would be detached from the pane? Not sure if that is what >> I envision, but I'll give it a go and see what it looks like. >> >> Your event filter does work though for what I need now. >> >> Thanks! >> >> >> On 2014-6-9 10:41, Martin Sladecek wrote: >>> Oh, I see. So it's not a PopupWindow at all. >>> Events can pass only though parent-child hierarchy, so you can't catch an >>> Event in your "circular menu" pane and then pass it to some other children >>> of the parent StackPane. The menu pane would have to be parent of the >>> controls in the StackPane. >>> So again, you'd need RT-20184 to determine the target again by temporarily >>> making the menu pane mouse transparent, doing Scene.pick and then >>> redirecting the Event by Event.fireEvent(). >>> >>> But I think reworking you menu to be a PopupWindow should work. The >>> transparent areas in the circular menu should pass mouse events to the >>> underlying window. >>> >>> -Martin >>> >>> On 06/09/2014 10:20 AM, Tom Eugelink wrote: >>>> >>>> Or to see in in action with a single java -jar statement, download the >>>> samples from. >>>> http://jfxtras.org/ >>>> >>>> >>>> >>>> On 2014-6-9 10:13, Martin Sladecek wrote: >>>>> OK, so to avoid further confusion, you have a PopupWindow with a Pane >>>>> and you want to capture Events on the Pane and sent those events to the >>>>> underlying controls (in a parent window) if those events are not relevant to >>>>> that popup? >>>>> >>>>> Thanks, >>>>> -Martin >>>>> >>>>> On 06/09/2014 10:07 AM, Tom Eugelink wrote: >>>>>> >>>>>> Hm, maybe I chose bad words; I'm not using Canvas, but just a Pane. >>>>>> Since the Pane is only used to draw the menu on when it need to appear, I'm >>>>>> calling it the canvas pane, as in "what is painted on". >>>>>> >>>>>> >>>>>> On 2014-6-9 9:46, Martin Sladecek wrote: >>>>>>> Just looked at the code and it seems Canvas does pick on bounds >>>>>>> independently of the pickOnBounds value. There's currently no logic for >>>>>>> picking only when over an opaque pixel ( worth filing a JIRA issue maybe?). >>>>>>> This makes Canvas to consume everything as it's always picked instead of >>>>>>> some controls underneath. >>>>>>> >>>>>>> Unfortunately, I can't think of any solution that would work right >>>>>>> now. If we'd support Node picking >>>>>>> (https://javafx-jira.kenai.com/browse/RT-20184), it would be possible to >>>>>>> "redirect" an unwanted event to a different event target on that mouse >>>>>>> position. >>>>>>> >>>>>>> -Martin >>>>>>> >>>>>>> >>>>>>> On 06/09/2014 08:44 AM, Tom Eugelink wrote: >>>>>>>> >>>>>>>> Yessss. It does not work on the canvas pane, I suspect because of the >>>>>>>> pickOnBounds, but it does work on the stackpane. Plus, I can register to the >>>>>>>> stack pane without claiming the onMouseClick/Press hook. >>>>>>>> >>>>>>>> Many thanks! >>>>>>>> >>>>>>>> Tom >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> On 2014-6-9 8:29, Martin Sladecek wrote: >>>>>>>>> Hi Tom, >>>>>>>>> have you tried .addEventFilter() method? It receives the Event >>>>>>>>> before the controls underneath the canvas, in the capturing phase. If you >>>>>>>>> don't consume the Event, it should pass down to the controls. >>>>>>>>> For more on the topic, see >>>>>>>>> http://docs.oracle.com/javafx/2/events/processing.htm or >>>>>>>>> http://parleys.com/play/514892290364bc17fc56c39f >>>>>>>>> >>>>>>>>> -Martin >>>>>>>>> >>>>>>>>> On 06/09/2014 08:19 AM, Tom Eugelink wrote: >>>>>>>>>> Hi all, >>>>>>>>>> >>>>>>>>>> Maybe someone has solved this already, so I thought I pop the >>>>>>>>>> question. Currently I'm working on CirclePopupMenu; a menu that is supposed >>>>>>>>>> to pop up on any place in a scene when a certain (usually the middle or >>>>>>>>>> right) mouse button is pressed. >>>>>>>>>> >>>>>>>>>> Right now CirclePopupMenu requires a stackpane to which it binds >>>>>>>>>> itself. CirclePopupMenu initially places an empty "canvas" Pane on the stack >>>>>>>>>> pane, and will use that to render and position the menu when it needs to >>>>>>>>>> appear. >>>>>>>>>> >>>>>>>>>> Also I need to monitor the mouse to detect if the menu should >>>>>>>>>> appear. In order to do that, I would like to use that canvas pane, but then >>>>>>>>>> any non relevant button clicks will not reach the underlying controls. In >>>>>>>>>> order to enable correct behavior I need to setPickOnBounds(false) on the >>>>>>>>>> pane, but then it does receive the mouse events anymore. >>>>>>>>>> >>>>>>>>>> Is there any way to monitor mouse events but still pass them >>>>>>>>>> through to the underlying controls? In Swing I did something similar and >>>>>>>>>> used a system level mouse event hook. >>>>>>>>>> >>>>>>>>>> Tom >>>>>>>>>> >>>>>>>>>> PS: I'm not certain if the stackpane approach I've used is the best >>>>>>>>>> way to do this. It does work expect the mouse button problem. But any >>>>>>>>>> suggestions are welcome. >>>>>>>>> >>>>>>>> >>>>>> >>>> >> From eric.le.ponner at oracle.com Tue Jun 10 08:52:58 2014 From: eric.le.ponner at oracle.com (Eric Le Ponner) Date: Tue, 10 Jun 2014 10:52:58 +0200 Subject: SceneBuilder 2.0 import custom components from Jar In-Reply-To: <5394CE18.5050708@oracle.com> References: <53941DC4.3010504@gmail.com> <5394CE18.5050708@oracle.com> Message-ID: <9EE7E6E4-41D0-43D9-A4EE-4E380DBF3B5D@oracle.com> @Christian, JAR import command of Scene Builder 2.0 collects all the classes found in the JAR file and retains only the one that 1) can be instantiated using FXMLLoader 2) extends javafx.scene.Node. In practice, for each class a.b.C, it generates the following FXML: and passes it to FXMLLoader.load(). Then it checks instanceof Node on the resulting object. See JarExplorer.exploreEntry() method in Scene Builder sources for more details. @Jonathan We?ve acknowledged your request and will have a look to ControlsFX. Eric Le 8 juin 2014 ? 22:56, Jonathan Giles a ?crit : > Christian, > > With my OpenJFX hat on: > ======================= > ControlsFX-related issues are best discussed on the controlsfx-dev mailing list, which can be accessed (and signed up to) here: http://groups.controlsfx.org > > Scene Builder is open source - you can access it by cloning the OpenJFX rt repo, and you'll find the Scene Builder source code in apps/scenebuilder. > > > With my ControlsFX hat on: > ======================= > Regarding getting ControlsFX to play nicer with Scene Builder - that is really a matter for the ControlsFX project to resolve. ControlsFX needs to follow the requirements of Scene Builder and FXML, and I'm not 100% clear on what the definitive list of requirements is, but I know some of the requirements include having a public no-args constructor, and using @NamedArg on constructor parameters to define the parameter name. I have been hoping someone from the community would step up to make ControlsFX more FXML and Scene Builder compliant. If you're interested please ping me off-list. > > Relatedly, I recently asked if the Scene Builder team if someone could take a quick look at ControlsFX to cast their expert eyes over the API and let me know what is and isn't going to work well for them. > > Thanks, > > -- Jonathan > > On 8/06/2014 8:24 p.m., Christian wrote: >> Hi, >> I was trying to import controlsfx-5.0.6 and controlsfx-5.0.6_20 into scenebuilder. >> However only some or few controls could be imported. >> When using these controls strange effects happen. >> I was looking into the user guide in order to determine the requirements that have to be met by the components in the jar file. >> However there was just a simple guideline about how to import and not how to develop custom components so that they match the scenebuilder. >> I further turned the logging level of the scenbuilder to finest and hoped to see at least some stacktraces that might give me a hint. >> But I only saw stacktraces when using the imported components (mainly belonging to missing resources because of classpath problems) nothing from the import/jarfile-scan itself. >> I was hoping that I can adjust the controlsfx classes so that they work fine with the scenebuilder. >> Any hints are more then welcome! >> >> ps.: >> It seems that scenebuilder is closed source, or is the some source out there I could start with? >> Is there an early access release for 8u20? >> >> Thanks, >> Christian > From tomas.mikula at gmail.com Tue Jun 10 11:45:09 2014 From: tomas.mikula at gmail.com (Tomas Mikula) Date: Tue, 10 Jun 2014 13:45:09 +0200 Subject: monitor mouse events but not capture them In-Reply-To: <5396AA37.70203@tbee.org> References: <539551EF.3050706@tbee.org> <5395544F.6040702@oracle.com> <539557D1.6070000@tbee.org> <53956659.4040701@oracle.com> <53956B55.6020209@tbee.org> <53956CC2.1080008@oracle.com> <53956E58.50907@tbee.org> <5395732D.80909@oracle.com> <539577CC.9000509@tbee.org> <5396AA37.70203@tbee.org> Message-ID: What about using Popup, which is a subclass of PopupWindow? You just need to populate its content popup.getContent().addAll(Node...); and then show it at the right position, relative to any node popup.show(canvas, x, y); Tomas On Jun 10, 2014 8:49 AM, "Tom Eugelink" wrote: > > Looking at PopupWindow; that is an abstract class and I'm not finding much > examples on how to use it. Maybe extending PopupControl would be a better > choice. > > Been looking at the ContextMenu source code (which is extending > PopupControl), but it is somewhat mysterious how those MenuItems get > rendered. I would expect maybe a skin, but I'm not finding it. > > > On 2014-6-9 13:48, Tomas Mikula wrote: > >> Hi Tom, >> >> I am in favor of the menu being a PopupWindow, but alternatively, >> could your "canvas" be a Group instead of a Pane? >> >> The code would look like this: >> >> StackPane stack = new StackPane(); >> >> Group canvas = new Group(); >> canvas.setManaged(false); >> >> stack.setOnMousePressed(e -> { >> // layout in the top left corner of the stack pane >> canvas.setLayoutX(0); >> canvas.setLayoutY(0); >> >> stack.getChildren().add(canvas); >> }); >> >> Regards, >> Tomas >> >> On Mon, Jun 9, 2014 at 11:01 AM, Tom Eugelink wrote: >> >>> But a PopupWindow would be detached from the pane? Not sure if that is >>> what >>> I envision, but I'll give it a go and see what it looks like. >>> >>> Your event filter does work though for what I need now. >>> >>> Thanks! >>> >>> >>> On 2014-6-9 10:41, Martin Sladecek wrote: >>> >>>> Oh, I see. So it's not a PopupWindow at all. >>>> Events can pass only though parent-child hierarchy, so you can't catch >>>> an >>>> Event in your "circular menu" pane and then pass it to some other >>>> children >>>> of the parent StackPane. The menu pane would have to be parent of the >>>> controls in the StackPane. >>>> So again, you'd need RT-20184 to determine the target again by >>>> temporarily >>>> making the menu pane mouse transparent, doing Scene.pick and then >>>> redirecting the Event by Event.fireEvent(). >>>> >>>> But I think reworking you menu to be a PopupWindow should work. The >>>> transparent areas in the circular menu should pass mouse events to the >>>> underlying window. >>>> >>>> -Martin >>>> >>>> On 06/09/2014 10:20 AM, Tom Eugelink wrote: >>>> >>>>> >>>>> Or to see in in action with a single java -jar statement, download the >>>>> samples from. >>>>> http://jfxtras.org/ >>>>> >>>>> >>>>> >>>>> On 2014-6-9 10:13, Martin Sladecek wrote: >>>>> >>>>>> OK, so to avoid further confusion, you have a PopupWindow with a Pane >>>>>> and you want to capture Events on the Pane and sent those events to >>>>>> the >>>>>> underlying controls (in a parent window) if those events are not >>>>>> relevant to >>>>>> that popup? >>>>>> >>>>>> Thanks, >>>>>> -Martin >>>>>> >>>>>> On 06/09/2014 10:07 AM, Tom Eugelink wrote: >>>>>> >>>>>>> >>>>>>> Hm, maybe I chose bad words; I'm not using Canvas, but just a Pane. >>>>>>> Since the Pane is only used to draw the menu on when it need to >>>>>>> appear, I'm >>>>>>> calling it the canvas pane, as in "what is painted on". >>>>>>> >>>>>>> >>>>>>> On 2014-6-9 9:46, Martin Sladecek wrote: >>>>>>> >>>>>>>> Just looked at the code and it seems Canvas does pick on bounds >>>>>>>> independently of the pickOnBounds value. There's currently no logic >>>>>>>> for >>>>>>>> picking only when over an opaque pixel ( worth filing a JIRA issue >>>>>>>> maybe?). >>>>>>>> This makes Canvas to consume everything as it's always picked >>>>>>>> instead of >>>>>>>> some controls underneath. >>>>>>>> >>>>>>>> Unfortunately, I can't think of any solution that would work right >>>>>>>> now. If we'd support Node picking >>>>>>>> (https://javafx-jira.kenai.com/browse/RT-20184), it would be >>>>>>>> possible to >>>>>>>> "redirect" an unwanted event to a different event target on that >>>>>>>> mouse >>>>>>>> position. >>>>>>>> >>>>>>>> -Martin >>>>>>>> >>>>>>>> >>>>>>>> On 06/09/2014 08:44 AM, Tom Eugelink wrote: >>>>>>>> >>>>>>>>> >>>>>>>>> Yessss. It does not work on the canvas pane, I suspect because of >>>>>>>>> the >>>>>>>>> pickOnBounds, but it does work on the stackpane. Plus, I can >>>>>>>>> register to the >>>>>>>>> stack pane without claiming the onMouseClick/Press hook. >>>>>>>>> >>>>>>>>> Many thanks! >>>>>>>>> >>>>>>>>> Tom >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> On 2014-6-9 8:29, Martin Sladecek wrote: >>>>>>>>> >>>>>>>>>> Hi Tom, >>>>>>>>>> have you tried .addEventFilter() method? It receives the Event >>>>>>>>>> before the controls underneath the canvas, in the capturing >>>>>>>>>> phase. If you >>>>>>>>>> don't consume the Event, it should pass down to the controls. >>>>>>>>>> For more on the topic, see >>>>>>>>>> http://docs.oracle.com/javafx/2/events/processing.htm or >>>>>>>>>> http://parleys.com/play/514892290364bc17fc56c39f >>>>>>>>>> >>>>>>>>>> -Martin >>>>>>>>>> >>>>>>>>>> On 06/09/2014 08:19 AM, Tom Eugelink wrote: >>>>>>>>>> >>>>>>>>>>> Hi all, >>>>>>>>>>> >>>>>>>>>>> Maybe someone has solved this already, so I thought I pop the >>>>>>>>>>> question. Currently I'm working on CirclePopupMenu; a menu that >>>>>>>>>>> is supposed >>>>>>>>>>> to pop up on any place in a scene when a certain (usually the >>>>>>>>>>> middle or >>>>>>>>>>> right) mouse button is pressed. >>>>>>>>>>> >>>>>>>>>>> Right now CirclePopupMenu requires a stackpane to which it binds >>>>>>>>>>> itself. CirclePopupMenu initially places an empty "canvas" Pane >>>>>>>>>>> on the stack >>>>>>>>>>> pane, and will use that to render and position the menu when it >>>>>>>>>>> needs to >>>>>>>>>>> appear. >>>>>>>>>>> >>>>>>>>>>> Also I need to monitor the mouse to detect if the menu should >>>>>>>>>>> appear. In order to do that, I would like to use that canvas >>>>>>>>>>> pane, but then >>>>>>>>>>> any non relevant button clicks will not reach the underlying >>>>>>>>>>> controls. In >>>>>>>>>>> order to enable correct behavior I need to >>>>>>>>>>> setPickOnBounds(false) on the >>>>>>>>>>> pane, but then it does receive the mouse events anymore. >>>>>>>>>>> >>>>>>>>>>> Is there any way to monitor mouse events but still pass them >>>>>>>>>>> through to the underlying controls? In Swing I did something >>>>>>>>>>> similar and >>>>>>>>>>> used a system level mouse event hook. >>>>>>>>>>> >>>>>>>>>>> Tom >>>>>>>>>>> >>>>>>>>>>> PS: I'm not certain if the stackpane approach I've used is the >>>>>>>>>>> best >>>>>>>>>>> way to do this. It does work expect the mouse button problem. >>>>>>>>>>> But any >>>>>>>>>>> suggestions are welcome. >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>> >>>>> >>> > > From hang.vo at oracle.com Tue Jun 10 13:03:22 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 10 Jun 2014 13:03:22 +0000 Subject: hg: openjfx/8u-dev/rt: RT-32213: Decoding BMP file throws an exception Message-ID: <201406101303.s5AD3YrM026364@aojmv0008> Changeset: 815505eb4abc Author: vadim Date: 2014-06-10 16:52 +0400 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/815505eb4abc RT-32213: Decoding BMP file throws an exception Reviewed-by: kcr, flar ! modules/graphics/src/main/java/com/sun/javafx/iio/bmp/BMPImageLoaderFactory.java + modules/graphics/src/test/java/com/sun/javafx/iio/BMPImageLoaderTest.java From hang.vo at oracle.com Tue Jun 10 13:17:57 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 10 Jun 2014 13:17:57 +0000 Subject: hg: openjfx/8u-dev/rt: Follow-up for RT-32213: Use ImageTools.readFully method. Message-ID: <201406101318.s5ADI8vQ028284@aojmv0008> Changeset: 1aec26077b48 Author: vadim Date: 2014-06-10 17:08 +0400 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/1aec26077b48 Follow-up for RT-32213: Use ImageTools.readFully method. ! modules/graphics/src/main/java/com/sun/javafx/iio/bmp/BMPImageLoaderFactory.java From tomas.mikula at gmail.com Tue Jun 10 13:38:37 2014 From: tomas.mikula at gmail.com (Tomas Mikula) Date: Tue, 10 Jun 2014 15:38:37 +0200 Subject: monitor mouse events but not capture them In-Reply-To: References: <539551EF.3050706@tbee.org> <5395544F.6040702@oracle.com> <539557D1.6070000@tbee.org> <53956659.4040701@oracle.com> <53956B55.6020209@tbee.org> <53956CC2.1080008@oracle.com> <53956E58.50907@tbee.org> <5395732D.80909@oracle.com> <539577CC.9000509@tbee.org> <5396AA37.70203@tbee.org> Message-ID: Since talk is cheap, I slightly reworked your code (not using PopupWindow) and it seems to work. CircularPopupMenu: https://github.com/TomasMikula/jfxtras-labs/blob/8.0/src/main/java/jfxtras/labs/scene/menu/CirclePopupMenu1.java Sample: https://github.com/TomasMikula/jfxtras-labs/blob/8.0/src/main/java/jfxtras/labs/scene/menu/Sample1.java Main points: * No "canvas" pane used, CircularPane is added directly to the stack pane. * CircularPane is added as the last child to the stack pane in order to be on top. * CircularPane is an "unmanaged" child of the stack pane, in order to allow custom positioning (at mouse pointer) * Since setPickOnBounds(false) causes the mouse exit the circular pane as soon as it opens, there's slightly more logic to hide the menu instead of just listening to MOUSE_EXITED events: stackPane.addEventHandler(MouseEvent.MOUSE_MOVED, e -> { if(isShown()) { Bounds localBounds = circularPane.getBoundsInLocal(); Bounds screenBounds = circularPane.localToScreen(localBounds); if(!screenBounds.contains(e.getScreenX(), e.getScreenY())) { hide(); } } }); Cheers, Tomas On Tue, Jun 10, 2014 at 1:45 PM, Tomas Mikula wrote: > What about using Popup, which is a subclass of PopupWindow? You just need to > populate its content > > popup.getContent().addAll(Node...); > > and then show it at the right position, relative to any node > > popup.show(canvas, x, y); > > Tomas > > On Jun 10, 2014 8:49 AM, "Tom Eugelink" wrote: >> >> >> Looking at PopupWindow; that is an abstract class and I'm not finding much >> examples on how to use it. Maybe extending PopupControl would be a better >> choice. >> >> Been looking at the ContextMenu source code (which is extending >> PopupControl), but it is somewhat mysterious how those MenuItems get >> rendered. I would expect maybe a skin, but I'm not finding it. >> >> >> On 2014-6-9 13:48, Tomas Mikula wrote: >>> >>> Hi Tom, >>> >>> I am in favor of the menu being a PopupWindow, but alternatively, >>> could your "canvas" be a Group instead of a Pane? >>> >>> The code would look like this: >>> >>> StackPane stack = new StackPane(); >>> >>> Group canvas = new Group(); >>> canvas.setManaged(false); >>> >>> stack.setOnMousePressed(e -> { >>> // layout in the top left corner of the stack pane >>> canvas.setLayoutX(0); >>> canvas.setLayoutY(0); >>> >>> stack.getChildren().add(canvas); >>> }); >>> >>> Regards, >>> Tomas >>> >>> On Mon, Jun 9, 2014 at 11:01 AM, Tom Eugelink wrote: >>>> >>>> But a PopupWindow would be detached from the pane? Not sure if that is >>>> what >>>> I envision, but I'll give it a go and see what it looks like. >>>> >>>> Your event filter does work though for what I need now. >>>> >>>> Thanks! >>>> >>>> >>>> On 2014-6-9 10:41, Martin Sladecek wrote: >>>>> >>>>> Oh, I see. So it's not a PopupWindow at all. >>>>> Events can pass only though parent-child hierarchy, so you can't catch >>>>> an >>>>> Event in your "circular menu" pane and then pass it to some other >>>>> children >>>>> of the parent StackPane. The menu pane would have to be parent of the >>>>> controls in the StackPane. >>>>> So again, you'd need RT-20184 to determine the target again by >>>>> temporarily >>>>> making the menu pane mouse transparent, doing Scene.pick and then >>>>> redirecting the Event by Event.fireEvent(). >>>>> >>>>> But I think reworking you menu to be a PopupWindow should work. The >>>>> transparent areas in the circular menu should pass mouse events to the >>>>> underlying window. >>>>> >>>>> -Martin >>>>> >>>>> On 06/09/2014 10:20 AM, Tom Eugelink wrote: >>>>>> >>>>>> >>>>>> Or to see in in action with a single java -jar statement, download the >>>>>> samples from. >>>>>> http://jfxtras.org/ >>>>>> >>>>>> >>>>>> >>>>>> On 2014-6-9 10:13, Martin Sladecek wrote: >>>>>>> >>>>>>> OK, so to avoid further confusion, you have a PopupWindow with a Pane >>>>>>> and you want to capture Events on the Pane and sent those events to >>>>>>> the >>>>>>> underlying controls (in a parent window) if those events are not >>>>>>> relevant to >>>>>>> that popup? >>>>>>> >>>>>>> Thanks, >>>>>>> -Martin >>>>>>> >>>>>>> On 06/09/2014 10:07 AM, Tom Eugelink wrote: >>>>>>>> >>>>>>>> >>>>>>>> Hm, maybe I chose bad words; I'm not using Canvas, but just a Pane. >>>>>>>> Since the Pane is only used to draw the menu on when it need to >>>>>>>> appear, I'm >>>>>>>> calling it the canvas pane, as in "what is painted on". >>>>>>>> >>>>>>>> >>>>>>>> On 2014-6-9 9:46, Martin Sladecek wrote: >>>>>>>>> >>>>>>>>> Just looked at the code and it seems Canvas does pick on bounds >>>>>>>>> independently of the pickOnBounds value. There's currently no logic >>>>>>>>> for >>>>>>>>> picking only when over an opaque pixel ( worth filing a JIRA issue >>>>>>>>> maybe?). >>>>>>>>> This makes Canvas to consume everything as it's always picked >>>>>>>>> instead of >>>>>>>>> some controls underneath. >>>>>>>>> >>>>>>>>> Unfortunately, I can't think of any solution that would work right >>>>>>>>> now. If we'd support Node picking >>>>>>>>> (https://javafx-jira.kenai.com/browse/RT-20184), it would be >>>>>>>>> possible to >>>>>>>>> "redirect" an unwanted event to a different event target on that >>>>>>>>> mouse >>>>>>>>> position. >>>>>>>>> >>>>>>>>> -Martin >>>>>>>>> >>>>>>>>> >>>>>>>>> On 06/09/2014 08:44 AM, Tom Eugelink wrote: >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Yessss. It does not work on the canvas pane, I suspect because of >>>>>>>>>> the >>>>>>>>>> pickOnBounds, but it does work on the stackpane. Plus, I can >>>>>>>>>> register to the >>>>>>>>>> stack pane without claiming the onMouseClick/Press hook. >>>>>>>>>> >>>>>>>>>> Many thanks! >>>>>>>>>> >>>>>>>>>> Tom >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On 2014-6-9 8:29, Martin Sladecek wrote: >>>>>>>>>>> >>>>>>>>>>> Hi Tom, >>>>>>>>>>> have you tried .addEventFilter() method? It receives the Event >>>>>>>>>>> before the controls underneath the canvas, in the capturing >>>>>>>>>>> phase. If you >>>>>>>>>>> don't consume the Event, it should pass down to the controls. >>>>>>>>>>> For more on the topic, see >>>>>>>>>>> http://docs.oracle.com/javafx/2/events/processing.htm or >>>>>>>>>>> http://parleys.com/play/514892290364bc17fc56c39f >>>>>>>>>>> >>>>>>>>>>> -Martin >>>>>>>>>>> >>>>>>>>>>> On 06/09/2014 08:19 AM, Tom Eugelink wrote: >>>>>>>>>>>> >>>>>>>>>>>> Hi all, >>>>>>>>>>>> >>>>>>>>>>>> Maybe someone has solved this already, so I thought I pop the >>>>>>>>>>>> question. Currently I'm working on CirclePopupMenu; a menu that >>>>>>>>>>>> is supposed >>>>>>>>>>>> to pop up on any place in a scene when a certain (usually the >>>>>>>>>>>> middle or >>>>>>>>>>>> right) mouse button is pressed. >>>>>>>>>>>> >>>>>>>>>>>> Right now CirclePopupMenu requires a stackpane to which it binds >>>>>>>>>>>> itself. CirclePopupMenu initially places an empty "canvas" Pane >>>>>>>>>>>> on the stack >>>>>>>>>>>> pane, and will use that to render and position the menu when it >>>>>>>>>>>> needs to >>>>>>>>>>>> appear. >>>>>>>>>>>> >>>>>>>>>>>> Also I need to monitor the mouse to detect if the menu should >>>>>>>>>>>> appear. In order to do that, I would like to use that canvas >>>>>>>>>>>> pane, but then >>>>>>>>>>>> any non relevant button clicks will not reach the underlying >>>>>>>>>>>> controls. In >>>>>>>>>>>> order to enable correct behavior I need to >>>>>>>>>>>> setPickOnBounds(false) on the >>>>>>>>>>>> pane, but then it does receive the mouse events anymore. >>>>>>>>>>>> >>>>>>>>>>>> Is there any way to monitor mouse events but still pass them >>>>>>>>>>>> through to the underlying controls? In Swing I did something >>>>>>>>>>>> similar and >>>>>>>>>>>> used a system level mouse event hook. >>>>>>>>>>>> >>>>>>>>>>>> Tom >>>>>>>>>>>> >>>>>>>>>>>> PS: I'm not certain if the stackpane approach I've used is the >>>>>>>>>>>> best >>>>>>>>>>>> way to do this. It does work expect the mouse button problem. >>>>>>>>>>>> But any >>>>>>>>>>>> suggestions are welcome. >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>> >>>>>> >>>> >> >> > From tbee at tbee.org Tue Jun 10 13:52:13 2014 From: tbee at tbee.org (Tom Eugelink) Date: Tue, 10 Jun 2014 15:52:13 +0200 Subject: monitor mouse events but not capture them In-Reply-To: References: <539551EF.3050706@tbee.org> <5395544F.6040702@oracle.com> <539557D1.6070000@tbee.org> <53956659.4040701@oracle.com> <53956B55.6020209@tbee.org> <53956CC2.1080008@oracle.com> <53956E58.50907@tbee.org> <5395732D.80909@oracle.com> <539577CC.9000509@tbee.org> <5396AA37.70203@tbee.org> Message-ID: <53970D8D.601@tbee.org> You're way ahead of me. Why use stackpane and not popup as suggested? Wouldn't Popup remove the need for a stackpane? Tom On 2014-6-10 15:38, Tomas Mikula wrote: > Since talk is cheap, I slightly reworked your code (not using > PopupWindow) and it seems to work. > > CircularPopupMenu: > https://github.com/TomasMikula/jfxtras-labs/blob/8.0/src/main/java/jfxtras/labs/scene/menu/CirclePopupMenu1.java > > Sample: > https://github.com/TomasMikula/jfxtras-labs/blob/8.0/src/main/java/jfxtras/labs/scene/menu/Sample1.java > > Main points: > * No "canvas" pane used, CircularPane is added directly to the stack pane. > * CircularPane is added as the last child to the stack pane in order > to be on top. > * CircularPane is an "unmanaged" child of the stack pane, in order to > allow custom positioning (at mouse pointer) > * Since setPickOnBounds(false) causes the mouse exit the circular pane > as soon as it opens, there's slightly more logic to hide the menu > instead of just listening to MOUSE_EXITED events: > > stackPane.addEventHandler(MouseEvent.MOUSE_MOVED, e -> { > if(isShown()) { > Bounds localBounds = circularPane.getBoundsInLocal(); > Bounds screenBounds = circularPane.localToScreen(localBounds); > if(!screenBounds.contains(e.getScreenX(), e.getScreenY())) { > hide(); > } > } > }); > > Cheers, > Tomas > > On Tue, Jun 10, 2014 at 1:45 PM, Tomas Mikula wrote: >> What about using Popup, which is a subclass of PopupWindow? You just need to >> populate its content >> >> popup.getContent().addAll(Node...); >> >> and then show it at the right position, relative to any node >> >> popup.show(canvas, x, y); >> >> Tomas >> >> On Jun 10, 2014 8:49 AM, "Tom Eugelink" wrote: >>> >>> Looking at PopupWindow; that is an abstract class and I'm not finding much >>> examples on how to use it. Maybe extending PopupControl would be a better >>> choice. >>> >>> Been looking at the ContextMenu source code (which is extending >>> PopupControl), but it is somewhat mysterious how those MenuItems get >>> rendered. I would expect maybe a skin, but I'm not finding it. >>> >>> >>> On 2014-6-9 13:48, Tomas Mikula wrote: >>>> Hi Tom, >>>> >>>> I am in favor of the menu being a PopupWindow, but alternatively, >>>> could your "canvas" be a Group instead of a Pane? >>>> >>>> The code would look like this: >>>> >>>> StackPane stack = new StackPane(); >>>> >>>> Group canvas = new Group(); >>>> canvas.setManaged(false); >>>> >>>> stack.setOnMousePressed(e -> { >>>> // layout in the top left corner of the stack pane >>>> canvas.setLayoutX(0); >>>> canvas.setLayoutY(0); >>>> >>>> stack.getChildren().add(canvas); >>>> }); >>>> >>>> Regards, >>>> Tomas >>>> >>>> On Mon, Jun 9, 2014 at 11:01 AM, Tom Eugelink wrote: >>>>> But a PopupWindow would be detached from the pane? Not sure if that is >>>>> what >>>>> I envision, but I'll give it a go and see what it looks like. >>>>> >>>>> Your event filter does work though for what I need now. >>>>> >>>>> Thanks! >>>>> >>>>> >>>>> On 2014-6-9 10:41, Martin Sladecek wrote: >>>>>> Oh, I see. So it's not a PopupWindow at all. >>>>>> Events can pass only though parent-child hierarchy, so you can't catch >>>>>> an >>>>>> Event in your "circular menu" pane and then pass it to some other >>>>>> children >>>>>> of the parent StackPane. The menu pane would have to be parent of the >>>>>> controls in the StackPane. >>>>>> So again, you'd need RT-20184 to determine the target again by >>>>>> temporarily >>>>>> making the menu pane mouse transparent, doing Scene.pick and then >>>>>> redirecting the Event by Event.fireEvent(). >>>>>> >>>>>> But I think reworking you menu to be a PopupWindow should work. The >>>>>> transparent areas in the circular menu should pass mouse events to the >>>>>> underlying window. >>>>>> >>>>>> -Martin >>>>>> >>>>>> On 06/09/2014 10:20 AM, Tom Eugelink wrote: >>>>>>> >>>>>>> Or to see in in action with a single java -jar statement, download the >>>>>>> samples from. >>>>>>> http://jfxtras.org/ >>>>>>> >>>>>>> >>>>>>> >>>>>>> On 2014-6-9 10:13, Martin Sladecek wrote: >>>>>>>> OK, so to avoid further confusion, you have a PopupWindow with a Pane >>>>>>>> and you want to capture Events on the Pane and sent those events to >>>>>>>> the >>>>>>>> underlying controls (in a parent window) if those events are not >>>>>>>> relevant to >>>>>>>> that popup? >>>>>>>> >>>>>>>> Thanks, >>>>>>>> -Martin >>>>>>>> >>>>>>>> On 06/09/2014 10:07 AM, Tom Eugelink wrote: >>>>>>>>> >>>>>>>>> Hm, maybe I chose bad words; I'm not using Canvas, but just a Pane. >>>>>>>>> Since the Pane is only used to draw the menu on when it need to >>>>>>>>> appear, I'm >>>>>>>>> calling it the canvas pane, as in "what is painted on". >>>>>>>>> >>>>>>>>> >>>>>>>>> On 2014-6-9 9:46, Martin Sladecek wrote: >>>>>>>>>> Just looked at the code and it seems Canvas does pick on bounds >>>>>>>>>> independently of the pickOnBounds value. There's currently no logic >>>>>>>>>> for >>>>>>>>>> picking only when over an opaque pixel ( worth filing a JIRA issue >>>>>>>>>> maybe?). >>>>>>>>>> This makes Canvas to consume everything as it's always picked >>>>>>>>>> instead of >>>>>>>>>> some controls underneath. >>>>>>>>>> >>>>>>>>>> Unfortunately, I can't think of any solution that would work right >>>>>>>>>> now. If we'd support Node picking >>>>>>>>>> (https://javafx-jira.kenai.com/browse/RT-20184), it would be >>>>>>>>>> possible to >>>>>>>>>> "redirect" an unwanted event to a different event target on that >>>>>>>>>> mouse >>>>>>>>>> position. >>>>>>>>>> >>>>>>>>>> -Martin >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On 06/09/2014 08:44 AM, Tom Eugelink wrote: >>>>>>>>>>> >>>>>>>>>>> Yessss. It does not work on the canvas pane, I suspect because of >>>>>>>>>>> the >>>>>>>>>>> pickOnBounds, but it does work on the stackpane. Plus, I can >>>>>>>>>>> register to the >>>>>>>>>>> stack pane without claiming the onMouseClick/Press hook. >>>>>>>>>>> >>>>>>>>>>> Many thanks! >>>>>>>>>>> >>>>>>>>>>> Tom >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> On 2014-6-9 8:29, Martin Sladecek wrote: >>>>>>>>>>>> Hi Tom, >>>>>>>>>>>> have you tried .addEventFilter() method? It receives the Event >>>>>>>>>>>> before the controls underneath the canvas, in the capturing >>>>>>>>>>>> phase. If you >>>>>>>>>>>> don't consume the Event, it should pass down to the controls. >>>>>>>>>>>> For more on the topic, see >>>>>>>>>>>> http://docs.oracle.com/javafx/2/events/processing.htm or >>>>>>>>>>>> http://parleys.com/play/514892290364bc17fc56c39f >>>>>>>>>>>> >>>>>>>>>>>> -Martin >>>>>>>>>>>> >>>>>>>>>>>> On 06/09/2014 08:19 AM, Tom Eugelink wrote: >>>>>>>>>>>>> Hi all, >>>>>>>>>>>>> >>>>>>>>>>>>> Maybe someone has solved this already, so I thought I pop the >>>>>>>>>>>>> question. Currently I'm working on CirclePopupMenu; a menu that >>>>>>>>>>>>> is supposed >>>>>>>>>>>>> to pop up on any place in a scene when a certain (usually the >>>>>>>>>>>>> middle or >>>>>>>>>>>>> right) mouse button is pressed. >>>>>>>>>>>>> >>>>>>>>>>>>> Right now CirclePopupMenu requires a stackpane to which it binds >>>>>>>>>>>>> itself. CirclePopupMenu initially places an empty "canvas" Pane >>>>>>>>>>>>> on the stack >>>>>>>>>>>>> pane, and will use that to render and position the menu when it >>>>>>>>>>>>> needs to >>>>>>>>>>>>> appear. >>>>>>>>>>>>> >>>>>>>>>>>>> Also I need to monitor the mouse to detect if the menu should >>>>>>>>>>>>> appear. In order to do that, I would like to use that canvas >>>>>>>>>>>>> pane, but then >>>>>>>>>>>>> any non relevant button clicks will not reach the underlying >>>>>>>>>>>>> controls. In >>>>>>>>>>>>> order to enable correct behavior I need to >>>>>>>>>>>>> setPickOnBounds(false) on the >>>>>>>>>>>>> pane, but then it does receive the mouse events anymore. >>>>>>>>>>>>> >>>>>>>>>>>>> Is there any way to monitor mouse events but still pass them >>>>>>>>>>>>> through to the underlying controls? In Swing I did something >>>>>>>>>>>>> similar and >>>>>>>>>>>>> used a system level mouse event hook. >>>>>>>>>>>>> >>>>>>>>>>>>> Tom >>>>>>>>>>>>> >>>>>>>>>>>>> PS: I'm not certain if the stackpane approach I've used is the >>>>>>>>>>>>> best >>>>>>>>>>>>> way to do this. It does work expect the mouse button problem. >>>>>>>>>>>>> But any >>>>>>>>>>>>> suggestions are welcome. >>>>>>>>>>>> >>> From lisa.selle at oracle.com Tue Jun 10 13:57:04 2014 From: lisa.selle at oracle.com (Lisa Selle) Date: Tue, 10 Jun 2014 09:57:04 -0400 Subject: [8u20] review request: RT-35004 Sample JavaFX 8 projects from Oracle wont build on NetBeans 8.0 Message-ID: <53970EB0.6080003@oracle.com> Hi Kevin and David, Please review the proposed fix for: https://javafx-jira.kenai.com/browse/RT-35004 Details in the jira. Thanks, Lisa From tomas.mikula at gmail.com Tue Jun 10 13:57:01 2014 From: tomas.mikula at gmail.com (Tomas Mikula) Date: Tue, 10 Jun 2014 15:57:01 +0200 Subject: monitor mouse events but not capture them In-Reply-To: <53970D8D.601@tbee.org> References: <539551EF.3050706@tbee.org> <5395544F.6040702@oracle.com> <539557D1.6070000@tbee.org> <53956659.4040701@oracle.com> <53956B55.6020209@tbee.org> <53956CC2.1080008@oracle.com> <53956E58.50907@tbee.org> <5395732D.80909@oracle.com> <539577CC.9000509@tbee.org> <5396AA37.70203@tbee.org> <53970D8D.601@tbee.org> Message-ID: Just because I wanted to make minimal changes to your code, which was already using StackPane. Yes, Popup would remove the need for a StackPane. On Tue, Jun 10, 2014 at 3:52 PM, Tom Eugelink wrote: > > You're way ahead of me. Why use stackpane and not popup as suggested? > Wouldn't Popup remove the need for a stackpane? > > Tom > > > > > On 2014-6-10 15:38, Tomas Mikula wrote: >> >> Since talk is cheap, I slightly reworked your code (not using >> PopupWindow) and it seems to work. >> >> CircularPopupMenu: >> >> https://github.com/TomasMikula/jfxtras-labs/blob/8.0/src/main/java/jfxtras/labs/scene/menu/CirclePopupMenu1.java >> >> Sample: >> >> https://github.com/TomasMikula/jfxtras-labs/blob/8.0/src/main/java/jfxtras/labs/scene/menu/Sample1.java >> >> Main points: >> * No "canvas" pane used, CircularPane is added directly to the stack pane. >> * CircularPane is added as the last child to the stack pane in order >> to be on top. >> * CircularPane is an "unmanaged" child of the stack pane, in order to >> allow custom positioning (at mouse pointer) >> * Since setPickOnBounds(false) causes the mouse exit the circular pane >> as soon as it opens, there's slightly more logic to hide the menu >> instead of just listening to MOUSE_EXITED events: >> >> stackPane.addEventHandler(MouseEvent.MOUSE_MOVED, e -> { >> if(isShown()) { >> Bounds localBounds = circularPane.getBoundsInLocal(); >> Bounds screenBounds = circularPane.localToScreen(localBounds); >> if(!screenBounds.contains(e.getScreenX(), e.getScreenY())) { >> hide(); >> } >> } >> }); >> >> Cheers, >> Tomas >> >> On Tue, Jun 10, 2014 at 1:45 PM, Tomas Mikula >> wrote: >>> >>> What about using Popup, which is a subclass of PopupWindow? You just need >>> to >>> populate its content >>> >>> popup.getContent().addAll(Node...); >>> >>> and then show it at the right position, relative to any node >>> >>> popup.show(canvas, x, y); >>> >>> Tomas >>> >>> On Jun 10, 2014 8:49 AM, "Tom Eugelink" wrote: >>>> >>>> >>>> Looking at PopupWindow; that is an abstract class and I'm not finding >>>> much >>>> examples on how to use it. Maybe extending PopupControl would be a >>>> better >>>> choice. >>>> >>>> Been looking at the ContextMenu source code (which is extending >>>> PopupControl), but it is somewhat mysterious how those MenuItems get >>>> rendered. I would expect maybe a skin, but I'm not finding it. >>>> >>>> >>>> On 2014-6-9 13:48, Tomas Mikula wrote: >>>>> >>>>> Hi Tom, >>>>> >>>>> I am in favor of the menu being a PopupWindow, but alternatively, >>>>> could your "canvas" be a Group instead of a Pane? >>>>> >>>>> The code would look like this: >>>>> >>>>> StackPane stack = new StackPane(); >>>>> >>>>> Group canvas = new Group(); >>>>> canvas.setManaged(false); >>>>> >>>>> stack.setOnMousePressed(e -> { >>>>> // layout in the top left corner of the stack pane >>>>> canvas.setLayoutX(0); >>>>> canvas.setLayoutY(0); >>>>> >>>>> stack.getChildren().add(canvas); >>>>> }); >>>>> >>>>> Regards, >>>>> Tomas >>>>> >>>>> On Mon, Jun 9, 2014 at 11:01 AM, Tom Eugelink wrote: >>>>>> >>>>>> But a PopupWindow would be detached from the pane? Not sure if that is >>>>>> what >>>>>> I envision, but I'll give it a go and see what it looks like. >>>>>> >>>>>> Your event filter does work though for what I need now. >>>>>> >>>>>> Thanks! >>>>>> >>>>>> >>>>>> On 2014-6-9 10:41, Martin Sladecek wrote: >>>>>>> >>>>>>> Oh, I see. So it's not a PopupWindow at all. >>>>>>> Events can pass only though parent-child hierarchy, so you can't >>>>>>> catch >>>>>>> an >>>>>>> Event in your "circular menu" pane and then pass it to some other >>>>>>> children >>>>>>> of the parent StackPane. The menu pane would have to be parent of the >>>>>>> controls in the StackPane. >>>>>>> So again, you'd need RT-20184 to determine the target again by >>>>>>> temporarily >>>>>>> making the menu pane mouse transparent, doing Scene.pick and then >>>>>>> redirecting the Event by Event.fireEvent(). >>>>>>> >>>>>>> But I think reworking you menu to be a PopupWindow should work. The >>>>>>> transparent areas in the circular menu should pass mouse events to >>>>>>> the >>>>>>> underlying window. >>>>>>> >>>>>>> -Martin >>>>>>> >>>>>>> On 06/09/2014 10:20 AM, Tom Eugelink wrote: >>>>>>>> >>>>>>>> >>>>>>>> Or to see in in action with a single java -jar statement, download >>>>>>>> the >>>>>>>> samples from. >>>>>>>> http://jfxtras.org/ >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> On 2014-6-9 10:13, Martin Sladecek wrote: >>>>>>>>> >>>>>>>>> OK, so to avoid further confusion, you have a PopupWindow with a >>>>>>>>> Pane >>>>>>>>> and you want to capture Events on the Pane and sent those events to >>>>>>>>> the >>>>>>>>> underlying controls (in a parent window) if those events are not >>>>>>>>> relevant to >>>>>>>>> that popup? >>>>>>>>> >>>>>>>>> Thanks, >>>>>>>>> -Martin >>>>>>>>> >>>>>>>>> On 06/09/2014 10:07 AM, Tom Eugelink wrote: >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Hm, maybe I chose bad words; I'm not using Canvas, but just a >>>>>>>>>> Pane. >>>>>>>>>> Since the Pane is only used to draw the menu on when it need to >>>>>>>>>> appear, I'm >>>>>>>>>> calling it the canvas pane, as in "what is painted on". >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On 2014-6-9 9:46, Martin Sladecek wrote: >>>>>>>>>>> >>>>>>>>>>> Just looked at the code and it seems Canvas does pick on bounds >>>>>>>>>>> independently of the pickOnBounds value. There's currently no >>>>>>>>>>> logic >>>>>>>>>>> for >>>>>>>>>>> picking only when over an opaque pixel ( worth filing a JIRA >>>>>>>>>>> issue >>>>>>>>>>> maybe?). >>>>>>>>>>> This makes Canvas to consume everything as it's always picked >>>>>>>>>>> instead of >>>>>>>>>>> some controls underneath. >>>>>>>>>>> >>>>>>>>>>> Unfortunately, I can't think of any solution that would work >>>>>>>>>>> right >>>>>>>>>>> now. If we'd support Node picking >>>>>>>>>>> (https://javafx-jira.kenai.com/browse/RT-20184), it would be >>>>>>>>>>> possible to >>>>>>>>>>> "redirect" an unwanted event to a different event target on that >>>>>>>>>>> mouse >>>>>>>>>>> position. >>>>>>>>>>> >>>>>>>>>>> -Martin >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> On 06/09/2014 08:44 AM, Tom Eugelink wrote: >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> Yessss. It does not work on the canvas pane, I suspect because >>>>>>>>>>>> of >>>>>>>>>>>> the >>>>>>>>>>>> pickOnBounds, but it does work on the stackpane. Plus, I can >>>>>>>>>>>> register to the >>>>>>>>>>>> stack pane without claiming the onMouseClick/Press hook. >>>>>>>>>>>> >>>>>>>>>>>> Many thanks! >>>>>>>>>>>> >>>>>>>>>>>> Tom >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> On 2014-6-9 8:29, Martin Sladecek wrote: >>>>>>>>>>>>> >>>>>>>>>>>>> Hi Tom, >>>>>>>>>>>>> have you tried .addEventFilter() method? It receives the Event >>>>>>>>>>>>> before the controls underneath the canvas, in the capturing >>>>>>>>>>>>> phase. If you >>>>>>>>>>>>> don't consume the Event, it should pass down to the controls. >>>>>>>>>>>>> For more on the topic, see >>>>>>>>>>>>> http://docs.oracle.com/javafx/2/events/processing.htm or >>>>>>>>>>>>> http://parleys.com/play/514892290364bc17fc56c39f >>>>>>>>>>>>> >>>>>>>>>>>>> -Martin >>>>>>>>>>>>> >>>>>>>>>>>>> On 06/09/2014 08:19 AM, Tom Eugelink wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>> Hi all, >>>>>>>>>>>>>> >>>>>>>>>>>>>> Maybe someone has solved this already, so I thought I pop the >>>>>>>>>>>>>> question. Currently I'm working on CirclePopupMenu; a menu >>>>>>>>>>>>>> that >>>>>>>>>>>>>> is supposed >>>>>>>>>>>>>> to pop up on any place in a scene when a certain (usually the >>>>>>>>>>>>>> middle or >>>>>>>>>>>>>> right) mouse button is pressed. >>>>>>>>>>>>>> >>>>>>>>>>>>>> Right now CirclePopupMenu requires a stackpane to which it >>>>>>>>>>>>>> binds >>>>>>>>>>>>>> itself. CirclePopupMenu initially places an empty "canvas" >>>>>>>>>>>>>> Pane >>>>>>>>>>>>>> on the stack >>>>>>>>>>>>>> pane, and will use that to render and position the menu when >>>>>>>>>>>>>> it >>>>>>>>>>>>>> needs to >>>>>>>>>>>>>> appear. >>>>>>>>>>>>>> >>>>>>>>>>>>>> Also I need to monitor the mouse to detect if the menu should >>>>>>>>>>>>>> appear. In order to do that, I would like to use that canvas >>>>>>>>>>>>>> pane, but then >>>>>>>>>>>>>> any non relevant button clicks will not reach the underlying >>>>>>>>>>>>>> controls. In >>>>>>>>>>>>>> order to enable correct behavior I need to >>>>>>>>>>>>>> setPickOnBounds(false) on the >>>>>>>>>>>>>> pane, but then it does receive the mouse events anymore. >>>>>>>>>>>>>> >>>>>>>>>>>>>> Is there any way to monitor mouse events but still pass them >>>>>>>>>>>>>> through to the underlying controls? In Swing I did something >>>>>>>>>>>>>> similar and >>>>>>>>>>>>>> used a system level mouse event hook. >>>>>>>>>>>>>> >>>>>>>>>>>>>> Tom >>>>>>>>>>>>>> >>>>>>>>>>>>>> PS: I'm not certain if the stackpane approach I've used is the >>>>>>>>>>>>>> best >>>>>>>>>>>>>> way to do this. It does work expect the mouse button problem. >>>>>>>>>>>>>> But any >>>>>>>>>>>>>> suggestions are welcome. >>>>>>>>>>>>> >>>>>>>>>>>>> >>>> > > From tomas.mikula at gmail.com Tue Jun 10 14:26:23 2014 From: tomas.mikula at gmail.com (Tomas Mikula) Date: Tue, 10 Jun 2014 16:26:23 +0200 Subject: monitor mouse events but not capture them In-Reply-To: References: <539551EF.3050706@tbee.org> <5395544F.6040702@oracle.com> <539557D1.6070000@tbee.org> <53956659.4040701@oracle.com> <53956B55.6020209@tbee.org> <53956CC2.1080008@oracle.com> <53956E58.50907@tbee.org> <5395732D.80909@oracle.com> <539577CC.9000509@tbee.org> <5396AA37.70203@tbee.org> <53970D8D.601@tbee.org> Message-ID: Here it is, using a Popup: https://github.com/TomasMikula/jfxtras-labs/blob/8.0/src/main/java/jfxtras/labs/scene/menu/CirclePopupMenu2.java https://github.com/TomasMikula/jfxtras-labs/blob/8.0/src/main/java/jfxtras/labs/scene/menu/Sample2.java The nice thing about popup window is that it can extend beyond the bounds of the owner window. Just let me know if transparency works for you as expected. Some time ago transparency stopped working on my system and I didn't care to find out why, so my Popup has white background instead of transparent, but should be transparent on a healthy system. On Tue, Jun 10, 2014 at 3:57 PM, Tomas Mikula wrote: > Just because I wanted to make minimal changes to your code, which was > already using StackPane. Yes, Popup would remove the need for a > StackPane. > > On Tue, Jun 10, 2014 at 3:52 PM, Tom Eugelink wrote: >> >> You're way ahead of me. Why use stackpane and not popup as suggested? >> Wouldn't Popup remove the need for a stackpane? >> >> Tom >> >> >> >> >> On 2014-6-10 15:38, Tomas Mikula wrote: >>> >>> Since talk is cheap, I slightly reworked your code (not using >>> PopupWindow) and it seems to work. >>> >>> CircularPopupMenu: >>> >>> https://github.com/TomasMikula/jfxtras-labs/blob/8.0/src/main/java/jfxtras/labs/scene/menu/CirclePopupMenu1.java >>> >>> Sample: >>> >>> https://github.com/TomasMikula/jfxtras-labs/blob/8.0/src/main/java/jfxtras/labs/scene/menu/Sample1.java >>> >>> Main points: >>> * No "canvas" pane used, CircularPane is added directly to the stack pane. >>> * CircularPane is added as the last child to the stack pane in order >>> to be on top. >>> * CircularPane is an "unmanaged" child of the stack pane, in order to >>> allow custom positioning (at mouse pointer) >>> * Since setPickOnBounds(false) causes the mouse exit the circular pane >>> as soon as it opens, there's slightly more logic to hide the menu >>> instead of just listening to MOUSE_EXITED events: >>> >>> stackPane.addEventHandler(MouseEvent.MOUSE_MOVED, e -> { >>> if(isShown()) { >>> Bounds localBounds = circularPane.getBoundsInLocal(); >>> Bounds screenBounds = circularPane.localToScreen(localBounds); >>> if(!screenBounds.contains(e.getScreenX(), e.getScreenY())) { >>> hide(); >>> } >>> } >>> }); >>> >>> Cheers, >>> Tomas >>> >>> On Tue, Jun 10, 2014 at 1:45 PM, Tomas Mikula >>> wrote: >>>> >>>> What about using Popup, which is a subclass of PopupWindow? You just need >>>> to >>>> populate its content >>>> >>>> popup.getContent().addAll(Node...); >>>> >>>> and then show it at the right position, relative to any node >>>> >>>> popup.show(canvas, x, y); >>>> >>>> Tomas >>>> >>>> On Jun 10, 2014 8:49 AM, "Tom Eugelink" wrote: >>>>> >>>>> >>>>> Looking at PopupWindow; that is an abstract class and I'm not finding >>>>> much >>>>> examples on how to use it. Maybe extending PopupControl would be a >>>>> better >>>>> choice. >>>>> >>>>> Been looking at the ContextMenu source code (which is extending >>>>> PopupControl), but it is somewhat mysterious how those MenuItems get >>>>> rendered. I would expect maybe a skin, but I'm not finding it. >>>>> >>>>> >>>>> On 2014-6-9 13:48, Tomas Mikula wrote: >>>>>> >>>>>> Hi Tom, >>>>>> >>>>>> I am in favor of the menu being a PopupWindow, but alternatively, >>>>>> could your "canvas" be a Group instead of a Pane? >>>>>> >>>>>> The code would look like this: >>>>>> >>>>>> StackPane stack = new StackPane(); >>>>>> >>>>>> Group canvas = new Group(); >>>>>> canvas.setManaged(false); >>>>>> >>>>>> stack.setOnMousePressed(e -> { >>>>>> // layout in the top left corner of the stack pane >>>>>> canvas.setLayoutX(0); >>>>>> canvas.setLayoutY(0); >>>>>> >>>>>> stack.getChildren().add(canvas); >>>>>> }); >>>>>> >>>>>> Regards, >>>>>> Tomas >>>>>> >>>>>> On Mon, Jun 9, 2014 at 11:01 AM, Tom Eugelink wrote: >>>>>>> >>>>>>> But a PopupWindow would be detached from the pane? Not sure if that is >>>>>>> what >>>>>>> I envision, but I'll give it a go and see what it looks like. >>>>>>> >>>>>>> Your event filter does work though for what I need now. >>>>>>> >>>>>>> Thanks! >>>>>>> >>>>>>> >>>>>>> On 2014-6-9 10:41, Martin Sladecek wrote: >>>>>>>> >>>>>>>> Oh, I see. So it's not a PopupWindow at all. >>>>>>>> Events can pass only though parent-child hierarchy, so you can't >>>>>>>> catch >>>>>>>> an >>>>>>>> Event in your "circular menu" pane and then pass it to some other >>>>>>>> children >>>>>>>> of the parent StackPane. The menu pane would have to be parent of the >>>>>>>> controls in the StackPane. >>>>>>>> So again, you'd need RT-20184 to determine the target again by >>>>>>>> temporarily >>>>>>>> making the menu pane mouse transparent, doing Scene.pick and then >>>>>>>> redirecting the Event by Event.fireEvent(). >>>>>>>> >>>>>>>> But I think reworking you menu to be a PopupWindow should work. The >>>>>>>> transparent areas in the circular menu should pass mouse events to >>>>>>>> the >>>>>>>> underlying window. >>>>>>>> >>>>>>>> -Martin >>>>>>>> >>>>>>>> On 06/09/2014 10:20 AM, Tom Eugelink wrote: >>>>>>>>> >>>>>>>>> >>>>>>>>> Or to see in in action with a single java -jar statement, download >>>>>>>>> the >>>>>>>>> samples from. >>>>>>>>> http://jfxtras.org/ >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> On 2014-6-9 10:13, Martin Sladecek wrote: >>>>>>>>>> >>>>>>>>>> OK, so to avoid further confusion, you have a PopupWindow with a >>>>>>>>>> Pane >>>>>>>>>> and you want to capture Events on the Pane and sent those events to >>>>>>>>>> the >>>>>>>>>> underlying controls (in a parent window) if those events are not >>>>>>>>>> relevant to >>>>>>>>>> that popup? >>>>>>>>>> >>>>>>>>>> Thanks, >>>>>>>>>> -Martin >>>>>>>>>> >>>>>>>>>> On 06/09/2014 10:07 AM, Tom Eugelink wrote: >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Hm, maybe I chose bad words; I'm not using Canvas, but just a >>>>>>>>>>> Pane. >>>>>>>>>>> Since the Pane is only used to draw the menu on when it need to >>>>>>>>>>> appear, I'm >>>>>>>>>>> calling it the canvas pane, as in "what is painted on". >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> On 2014-6-9 9:46, Martin Sladecek wrote: >>>>>>>>>>>> >>>>>>>>>>>> Just looked at the code and it seems Canvas does pick on bounds >>>>>>>>>>>> independently of the pickOnBounds value. There's currently no >>>>>>>>>>>> logic >>>>>>>>>>>> for >>>>>>>>>>>> picking only when over an opaque pixel ( worth filing a JIRA >>>>>>>>>>>> issue >>>>>>>>>>>> maybe?). >>>>>>>>>>>> This makes Canvas to consume everything as it's always picked >>>>>>>>>>>> instead of >>>>>>>>>>>> some controls underneath. >>>>>>>>>>>> >>>>>>>>>>>> Unfortunately, I can't think of any solution that would work >>>>>>>>>>>> right >>>>>>>>>>>> now. If we'd support Node picking >>>>>>>>>>>> (https://javafx-jira.kenai.com/browse/RT-20184), it would be >>>>>>>>>>>> possible to >>>>>>>>>>>> "redirect" an unwanted event to a different event target on that >>>>>>>>>>>> mouse >>>>>>>>>>>> position. >>>>>>>>>>>> >>>>>>>>>>>> -Martin >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> On 06/09/2014 08:44 AM, Tom Eugelink wrote: >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> Yessss. It does not work on the canvas pane, I suspect because >>>>>>>>>>>>> of >>>>>>>>>>>>> the >>>>>>>>>>>>> pickOnBounds, but it does work on the stackpane. Plus, I can >>>>>>>>>>>>> register to the >>>>>>>>>>>>> stack pane without claiming the onMouseClick/Press hook. >>>>>>>>>>>>> >>>>>>>>>>>>> Many thanks! >>>>>>>>>>>>> >>>>>>>>>>>>> Tom >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> On 2014-6-9 8:29, Martin Sladecek wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>> Hi Tom, >>>>>>>>>>>>>> have you tried .addEventFilter() method? It receives the Event >>>>>>>>>>>>>> before the controls underneath the canvas, in the capturing >>>>>>>>>>>>>> phase. If you >>>>>>>>>>>>>> don't consume the Event, it should pass down to the controls. >>>>>>>>>>>>>> For more on the topic, see >>>>>>>>>>>>>> http://docs.oracle.com/javafx/2/events/processing.htm or >>>>>>>>>>>>>> http://parleys.com/play/514892290364bc17fc56c39f >>>>>>>>>>>>>> >>>>>>>>>>>>>> -Martin >>>>>>>>>>>>>> >>>>>>>>>>>>>> On 06/09/2014 08:19 AM, Tom Eugelink wrote: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Hi all, >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Maybe someone has solved this already, so I thought I pop the >>>>>>>>>>>>>>> question. Currently I'm working on CirclePopupMenu; a menu >>>>>>>>>>>>>>> that >>>>>>>>>>>>>>> is supposed >>>>>>>>>>>>>>> to pop up on any place in a scene when a certain (usually the >>>>>>>>>>>>>>> middle or >>>>>>>>>>>>>>> right) mouse button is pressed. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Right now CirclePopupMenu requires a stackpane to which it >>>>>>>>>>>>>>> binds >>>>>>>>>>>>>>> itself. CirclePopupMenu initially places an empty "canvas" >>>>>>>>>>>>>>> Pane >>>>>>>>>>>>>>> on the stack >>>>>>>>>>>>>>> pane, and will use that to render and position the menu when >>>>>>>>>>>>>>> it >>>>>>>>>>>>>>> needs to >>>>>>>>>>>>>>> appear. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Also I need to monitor the mouse to detect if the menu should >>>>>>>>>>>>>>> appear. In order to do that, I would like to use that canvas >>>>>>>>>>>>>>> pane, but then >>>>>>>>>>>>>>> any non relevant button clicks will not reach the underlying >>>>>>>>>>>>>>> controls. In >>>>>>>>>>>>>>> order to enable correct behavior I need to >>>>>>>>>>>>>>> setPickOnBounds(false) on the >>>>>>>>>>>>>>> pane, but then it does receive the mouse events anymore. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Is there any way to monitor mouse events but still pass them >>>>>>>>>>>>>>> through to the underlying controls? In Swing I did something >>>>>>>>>>>>>>> similar and >>>>>>>>>>>>>>> used a system level mouse event hook. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Tom >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> PS: I'm not certain if the stackpane approach I've used is the >>>>>>>>>>>>>>> best >>>>>>>>>>>>>>> way to do this. It does work expect the mouse button problem. >>>>>>>>>>>>>>> But any >>>>>>>>>>>>>>> suggestions are welcome. >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>> >> >> From hang.vo at oracle.com Tue Jun 10 14:47:50 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 10 Jun 2014 14:47:50 +0000 Subject: hg: openjfx/8u-dev/rt: Fix for RT-35004 - Sample JavaFX 8 projects from Oracle wont build on NetBeans 8.0 Message-ID: <201406101448.s5AEm22G010605@aojmv0008> Changeset: c11fe70cde3c Author: Lisa.Selle at oracle.com Date: 2014-06-10 10:45 -0400 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/c11fe70cde3c Fix for RT-35004 - Sample JavaFX 8 projects from Oracle wont build on NetBeans 8.0 Reviewed by kcr Tested with netbeans 8. ! apps/samples/3DViewer/nbproject/project.properties From jeff at reportmill.com Tue Jun 10 15:15:46 2014 From: jeff at reportmill.com (Jeff Martin) Date: Tue, 10 Jun 2014 10:15:46 -0500 Subject: -fx-background-radius problem In-Reply-To: <539640B0.6070409@oracle.com> References: <539640B0.6070409@oracle.com> Message-ID: <648453D6-D072-4CC1-98EC-853ADC41D867@reportmill.com> This is on 8u5 b13. Running with SW on Mac didn't reproduce the problem. Here is the jira: Jira: -fx-background-radius not rendering on Parallels Windows jeff On Jun 9, 2014, at 6:18 PM, Kevin Rushforth wrote: > Since you said: > >> On Parallels Windows it does not: http://www.reportmill.com/examples/Radius/RadiusWin.jpg >> > > This is probably a SW rendering bug (we will fall back to SW when running in Parallels). Is this with 8u20-ea or with 8u5? > > Please file a JIRA with a complete test program. Also, can you try it with "-Dprism.order=sw" on Mac and see if the same bug happens? > > -- Kevin > > > Jeff Martin wrote: >> Has anyone seen a problem with -fx-background-radius on Windows? When I run Windows using Parallels (on a Mac), -fx-background-radius styles seem to get ignored. >> >> Here is my sample code: >> >> // Create label with background color and radius >> Label label = new Label("Testing"); label.setPadding(new Insets(20)); >> label.setStyle("-fx-background-color:cyan;-fx-background-radius:20;"); >> >> // Add to box, scene and stage >> VBox vbox = new VBox(); vbox.setPrefSize(300,300); vbox.setAlignment(Pos.CENTER); >> vbox.getChildren().add(label); aStage.setScene(new Scene(vbox)); aStage.show(); >> >> On my Mac it renders correctly: http://www.reportmill.com/examples/Radius/RadiusMac.jpg >> >> On Parallels Windows it does not: http://www.reportmill.com/examples/Radius/RadiusWin.jpg >> >> Am I missing something or should I file a bug? >> >> jeff From hang.vo at oracle.com Tue Jun 10 15:32:36 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 10 Jun 2014 15:32:36 +0000 Subject: hg: openjfx/8u-dev/rt: INTELLIJ ONLY: fix project files to compile code in rt/tests (match Eclipse) Message-ID: <201406101532.s5AFWmEP017176@aojmv0008> Changeset: 72d965b4d0f5 Author: snorthov Date: 2014-06-10 11:20 -0400 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/72d965b4d0f5 INTELLIJ ONLY: fix project files to compile code in rt/tests (match Eclipse) ! .idea/modules.xml + .idea/rt-tests.iml From kevin.rushforth at oracle.com Tue Jun 10 15:38:34 2014 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Tue, 10 Jun 2014 08:38:34 -0700 Subject: [8u20] review request: RT-35912: [Ensemble8] build.xml fails if run from generated source bundle Message-ID: <5397267A.3030608@oracle.com> Hi Lisa and David, Please review: https://javafx-jira.kenai.com/browse/RT-35912 Details are in JIRA. -- Kevin From tbee at tbee.org Tue Jun 10 15:44:26 2014 From: tbee at tbee.org (Tom Eugelink) Date: Tue, 10 Jun 2014 17:44:26 +0200 Subject: monitor mouse events but not capture them In-Reply-To: References: <539551EF.3050706@tbee.org> <5395544F.6040702@oracle.com> <539557D1.6070000@tbee.org> <53956659.4040701@oracle.com> <53956B55.6020209@tbee.org> <53956CC2.1080008@oracle.com> <53956E58.50907@tbee.org> <5395732D.80909@oracle.com> <539577CC.9000509@tbee.org> <5396AA37.70203@tbee.org> <53970D8D.601@tbee.org> Message-ID: <539727DA.8010906@tbee.org> Thanks for all the help, you've given me a lot of helpful tips. I already was working on a popup based version and I see you ran into the same problems as I did (initial popup had no width for the circularPane, etc), the difference is that I bind the menu to Stage, since I do not envision CirclePopupMenu as a context menu to a specific node. It could of course... Uncertain about that. Anyhow, the only remaining problem is hiding when the mouse exits. Stage does not send the mouse events to addEventFilter. The node.addEventFilter does not solve that and on scene I'm not getting the events either. But I like the way it is going. Thanks! Tom On 2014-6-10 16:26, Tomas Mikula wrote: > Here it is, using a Popup: > https://github.com/TomasMikula/jfxtras-labs/blob/8.0/src/main/java/jfxtras/labs/scene/menu/CirclePopupMenu2.java > https://github.com/TomasMikula/jfxtras-labs/blob/8.0/src/main/java/jfxtras/labs/scene/menu/Sample2.java > > The nice thing about popup window is that it can extend beyond the > bounds of the owner window. > Just let me know if transparency works for you as expected. Some time > ago transparency stopped working on my system and I didn't care to > find out why, so my Popup has white background instead of transparent, > but should be transparent on a healthy system. > > On Tue, Jun 10, 2014 at 3:57 PM, Tomas Mikula wrote: >> Just because I wanted to make minimal changes to your code, which was >> already using StackPane. Yes, Popup would remove the need for a >> StackPane. >> >> On Tue, Jun 10, 2014 at 3:52 PM, Tom Eugelink wrote: >>> You're way ahead of me. Why use stackpane and not popup as suggested? >>> Wouldn't Popup remove the need for a stackpane? >>> >>> Tom >>> >>> >>> >>> >>> On 2014-6-10 15:38, Tomas Mikula wrote: >>>> Since talk is cheap, I slightly reworked your code (not using >>>> PopupWindow) and it seems to work. >>>> >>>> CircularPopupMenu: >>>> >>>> https://github.com/TomasMikula/jfxtras-labs/blob/8.0/src/main/java/jfxtras/labs/scene/menu/CirclePopupMenu1.java >>>> >>>> Sample: >>>> >>>> https://github.com/TomasMikula/jfxtras-labs/blob/8.0/src/main/java/jfxtras/labs/scene/menu/Sample1.java >>>> >>>> Main points: >>>> * No "canvas" pane used, CircularPane is added directly to the stack pane. >>>> * CircularPane is added as the last child to the stack pane in order >>>> to be on top. >>>> * CircularPane is an "unmanaged" child of the stack pane, in order to >>>> allow custom positioning (at mouse pointer) >>>> * Since setPickOnBounds(false) causes the mouse exit the circular pane >>>> as soon as it opens, there's slightly more logic to hide the menu >>>> instead of just listening to MOUSE_EXITED events: >>>> >>>> stackPane.addEventHandler(MouseEvent.MOUSE_MOVED, e -> { >>>> if(isShown()) { >>>> Bounds localBounds = circularPane.getBoundsInLocal(); >>>> Bounds screenBounds = circularPane.localToScreen(localBounds); >>>> if(!screenBounds.contains(e.getScreenX(), e.getScreenY())) { >>>> hide(); >>>> } >>>> } >>>> }); >>>> >>>> Cheers, >>>> Tomas >>>> >>>> On Tue, Jun 10, 2014 at 1:45 PM, Tomas Mikula >>>> wrote: >>>>> What about using Popup, which is a subclass of PopupWindow? You just need >>>>> to >>>>> populate its content >>>>> >>>>> popup.getContent().addAll(Node...); >>>>> >>>>> and then show it at the right position, relative to any node >>>>> >>>>> popup.show(canvas, x, y); >>>>> >>>>> Tomas >>>>> >>>>> On Jun 10, 2014 8:49 AM, "Tom Eugelink" wrote: >>>>>> >>>>>> Looking at PopupWindow; that is an abstract class and I'm not finding >>>>>> much >>>>>> examples on how to use it. Maybe extending PopupControl would be a >>>>>> better >>>>>> choice. >>>>>> >>>>>> Been looking at the ContextMenu source code (which is extending >>>>>> PopupControl), but it is somewhat mysterious how those MenuItems get >>>>>> rendered. I would expect maybe a skin, but I'm not finding it. >>>>>> >>>>>> >>>>>> On 2014-6-9 13:48, Tomas Mikula wrote: >>>>>>> Hi Tom, >>>>>>> >>>>>>> I am in favor of the menu being a PopupWindow, but alternatively, >>>>>>> could your "canvas" be a Group instead of a Pane? >>>>>>> >>>>>>> The code would look like this: >>>>>>> >>>>>>> StackPane stack = new StackPane(); >>>>>>> >>>>>>> Group canvas = new Group(); >>>>>>> canvas.setManaged(false); >>>>>>> >>>>>>> stack.setOnMousePressed(e -> { >>>>>>> // layout in the top left corner of the stack pane >>>>>>> canvas.setLayoutX(0); >>>>>>> canvas.setLayoutY(0); >>>>>>> >>>>>>> stack.getChildren().add(canvas); >>>>>>> }); >>>>>>> >>>>>>> Regards, >>>>>>> Tomas >>>>>>> >>>>>>> On Mon, Jun 9, 2014 at 11:01 AM, Tom Eugelink wrote: >>>>>>>> But a PopupWindow would be detached from the pane? Not sure if that is >>>>>>>> what >>>>>>>> I envision, but I'll give it a go and see what it looks like. >>>>>>>> >>>>>>>> Your event filter does work though for what I need now. >>>>>>>> >>>>>>>> Thanks! >>>>>>>> >>>>>>>> >>>>>>>> On 2014-6-9 10:41, Martin Sladecek wrote: >>>>>>>>> Oh, I see. So it's not a PopupWindow at all. >>>>>>>>> Events can pass only though parent-child hierarchy, so you can't >>>>>>>>> catch >>>>>>>>> an >>>>>>>>> Event in your "circular menu" pane and then pass it to some other >>>>>>>>> children >>>>>>>>> of the parent StackPane. The menu pane would have to be parent of the >>>>>>>>> controls in the StackPane. >>>>>>>>> So again, you'd need RT-20184 to determine the target again by >>>>>>>>> temporarily >>>>>>>>> making the menu pane mouse transparent, doing Scene.pick and then >>>>>>>>> redirecting the Event by Event.fireEvent(). >>>>>>>>> >>>>>>>>> But I think reworking you menu to be a PopupWindow should work. The >>>>>>>>> transparent areas in the circular menu should pass mouse events to >>>>>>>>> the >>>>>>>>> underlying window. >>>>>>>>> >>>>>>>>> -Martin >>>>>>>>> >>>>>>>>> On 06/09/2014 10:20 AM, Tom Eugelink wrote: >>>>>>>>>> >>>>>>>>>> Or to see in in action with a single java -jar statement, download >>>>>>>>>> the >>>>>>>>>> samples from. >>>>>>>>>> http://jfxtras.org/ >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On 2014-6-9 10:13, Martin Sladecek wrote: >>>>>>>>>>> OK, so to avoid further confusion, you have a PopupWindow with a >>>>>>>>>>> Pane >>>>>>>>>>> and you want to capture Events on the Pane and sent those events to >>>>>>>>>>> the >>>>>>>>>>> underlying controls (in a parent window) if those events are not >>>>>>>>>>> relevant to >>>>>>>>>>> that popup? >>>>>>>>>>> >>>>>>>>>>> Thanks, >>>>>>>>>>> -Martin >>>>>>>>>>> >>>>>>>>>>> On 06/09/2014 10:07 AM, Tom Eugelink wrote: >>>>>>>>>>>> >>>>>>>>>>>> Hm, maybe I chose bad words; I'm not using Canvas, but just a >>>>>>>>>>>> Pane. >>>>>>>>>>>> Since the Pane is only used to draw the menu on when it need to >>>>>>>>>>>> appear, I'm >>>>>>>>>>>> calling it the canvas pane, as in "what is painted on". >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> On 2014-6-9 9:46, Martin Sladecek wrote: >>>>>>>>>>>>> Just looked at the code and it seems Canvas does pick on bounds >>>>>>>>>>>>> independently of the pickOnBounds value. There's currently no >>>>>>>>>>>>> logic >>>>>>>>>>>>> for >>>>>>>>>>>>> picking only when over an opaque pixel ( worth filing a JIRA >>>>>>>>>>>>> issue >>>>>>>>>>>>> maybe?). >>>>>>>>>>>>> This makes Canvas to consume everything as it's always picked >>>>>>>>>>>>> instead of >>>>>>>>>>>>> some controls underneath. >>>>>>>>>>>>> >>>>>>>>>>>>> Unfortunately, I can't think of any solution that would work >>>>>>>>>>>>> right >>>>>>>>>>>>> now. If we'd support Node picking >>>>>>>>>>>>> (https://javafx-jira.kenai.com/browse/RT-20184), it would be >>>>>>>>>>>>> possible to >>>>>>>>>>>>> "redirect" an unwanted event to a different event target on that >>>>>>>>>>>>> mouse >>>>>>>>>>>>> position. >>>>>>>>>>>>> >>>>>>>>>>>>> -Martin >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> On 06/09/2014 08:44 AM, Tom Eugelink wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>> Yessss. It does not work on the canvas pane, I suspect because >>>>>>>>>>>>>> of >>>>>>>>>>>>>> the >>>>>>>>>>>>>> pickOnBounds, but it does work on the stackpane. Plus, I can >>>>>>>>>>>>>> register to the >>>>>>>>>>>>>> stack pane without claiming the onMouseClick/Press hook. >>>>>>>>>>>>>> >>>>>>>>>>>>>> Many thanks! >>>>>>>>>>>>>> >>>>>>>>>>>>>> Tom >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> On 2014-6-9 8:29, Martin Sladecek wrote: >>>>>>>>>>>>>>> Hi Tom, >>>>>>>>>>>>>>> have you tried .addEventFilter() method? It receives the Event >>>>>>>>>>>>>>> before the controls underneath the canvas, in the capturing >>>>>>>>>>>>>>> phase. If you >>>>>>>>>>>>>>> don't consume the Event, it should pass down to the controls. >>>>>>>>>>>>>>> For more on the topic, see >>>>>>>>>>>>>>> http://docs.oracle.com/javafx/2/events/processing.htm or >>>>>>>>>>>>>>> http://parleys.com/play/514892290364bc17fc56c39f >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> -Martin >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> On 06/09/2014 08:19 AM, Tom Eugelink wrote: >>>>>>>>>>>>>>>> Hi all, >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Maybe someone has solved this already, so I thought I pop the >>>>>>>>>>>>>>>> question. Currently I'm working on CirclePopupMenu; a menu >>>>>>>>>>>>>>>> that >>>>>>>>>>>>>>>> is supposed >>>>>>>>>>>>>>>> to pop up on any place in a scene when a certain (usually the >>>>>>>>>>>>>>>> middle or >>>>>>>>>>>>>>>> right) mouse button is pressed. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Right now CirclePopupMenu requires a stackpane to which it >>>>>>>>>>>>>>>> binds >>>>>>>>>>>>>>>> itself. CirclePopupMenu initially places an empty "canvas" >>>>>>>>>>>>>>>> Pane >>>>>>>>>>>>>>>> on the stack >>>>>>>>>>>>>>>> pane, and will use that to render and position the menu when >>>>>>>>>>>>>>>> it >>>>>>>>>>>>>>>> needs to >>>>>>>>>>>>>>>> appear. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Also I need to monitor the mouse to detect if the menu should >>>>>>>>>>>>>>>> appear. In order to do that, I would like to use that canvas >>>>>>>>>>>>>>>> pane, but then >>>>>>>>>>>>>>>> any non relevant button clicks will not reach the underlying >>>>>>>>>>>>>>>> controls. In >>>>>>>>>>>>>>>> order to enable correct behavior I need to >>>>>>>>>>>>>>>> setPickOnBounds(false) on the >>>>>>>>>>>>>>>> pane, but then it does receive the mouse events anymore. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Is there any way to monitor mouse events but still pass them >>>>>>>>>>>>>>>> through to the underlying controls? In Swing I did something >>>>>>>>>>>>>>>> similar and >>>>>>>>>>>>>>>> used a system level mouse event hook. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Tom >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> PS: I'm not certain if the stackpane approach I've used is the >>>>>>>>>>>>>>>> best >>>>>>>>>>>>>>>> way to do this. It does work expect the mouse button problem. >>>>>>>>>>>>>>>> But any >>>>>>>>>>>>>>>> suggestions are welcome. >>>>>>>>>>>>>>> >>> From lehmann at media-interactive.de Tue Jun 10 16:18:07 2014 From: lehmann at media-interactive.de (Werner Lehmann) Date: Tue, 10 Jun 2014 18:18:07 +0200 Subject: ScrollPane.content moves with arrow keys Message-ID: <53972FBF.8070009@media-interactive.de> Hi, we came across a curious behavior of ScrollPane in 8u5: the scrollpane content can be moved around with arrow keys if it is smaller than the viewport. This can be reproduced in SceneBuilder with simple FXML: > > > > > > > > > > > Just a scrollpane with a checkbox in it. It looks like a bug to me but maybe I am missing something? Werner From eric.le.ponner at oracle.com Tue Jun 10 16:30:23 2014 From: eric.le.ponner at oracle.com (Eric Le Ponner) Date: Tue, 10 Jun 2014 18:30:23 +0200 Subject: ScrollPane.content moves with arrow keys In-Reply-To: <53972FBF.8070009@media-interactive.de> References: <53972FBF.8070009@media-interactive.de> Message-ID: <16136EB8-C712-45F8-9579-CC0CF72F08C1@oracle.com> Curious indeed :) And probably not intended you?re right. Note that Scene Builder 2.0 embeds its own jdk. So it means the problem can be reproduced with FX8 GA release. Eric Le 10 juin 2014 ? 18:18, Werner Lehmann a ?crit : > Hi, > > we came across a curious behavior of ScrollPane in 8u5: the scrollpane content can be moved around with arrow keys if it is smaller than the viewport. This can be reproduced in SceneBuilder with simple FXML: > >> >> >> >> >> >> >> >> >> >> >> > > Just a scrollpane with a checkbox in it. It looks like a bug to me but maybe I am missing something? > > Werner From tbee at tbee.org Tue Jun 10 16:50:59 2014 From: tbee at tbee.org (Tom Eugelink) Date: Tue, 10 Jun 2014 18:50:59 +0200 Subject: monitor mouse events but not capture them In-Reply-To: <539727DA.8010906@tbee.org> References: <539551EF.3050706@tbee.org> <5395544F.6040702@oracle.com> <539557D1.6070000@tbee.org> <53956659.4040701@oracle.com> <53956B55.6020209@tbee.org> <53956CC2.1080008@oracle.com> <53956E58.50907@tbee.org> <5395732D.80909@oracle.com> <539577CC.9000509@tbee.org> <5396AA37.70203@tbee.org> <53970D8D.601@tbee.org> <539727DA.8010906@tbee.org> Message-ID: <53973773.3090705@tbee.org> Ah, attaching to Node is a good idea after all! Tom On 2014-6-10 17:44, Tom Eugelink wrote: > > Thanks for all the help, you've given me a lot of helpful tips. I already was working on a popup based version and I see you ran into the same problems as I did (initial popup had no width for the circularPane, etc), the difference is that I bind the menu to Stage, since I do not envision CirclePopupMenu as a context menu to a specific node. It could of course... Uncertain about that. > > Anyhow, the only remaining problem is hiding when the mouse exits. Stage does not send the mouse events to addEventFilter. The node.addEventFilter does not solve that and on scene I'm not getting the events either. But I like the way it is going. > > Thanks! > > Tom > > On 2014-6-10 16:26, Tomas Mikula wrote: >> Here it is, using a Popup: >> https://github.com/TomasMikula/jfxtras-labs/blob/8.0/src/main/java/jfxtras/labs/scene/menu/CirclePopupMenu2.java >> https://github.com/TomasMikula/jfxtras-labs/blob/8.0/src/main/java/jfxtras/labs/scene/menu/Sample2.java >> >> The nice thing about popup window is that it can extend beyond the >> bounds of the owner window. >> Just let me know if transparency works for you as expected. Some time >> ago transparency stopped working on my system and I didn't care to >> find out why, so my Popup has white background instead of transparent, >> but should be transparent on a healthy system. >> >> On Tue, Jun 10, 2014 at 3:57 PM, Tomas Mikula wrote: >>> Just because I wanted to make minimal changes to your code, which was >>> already using StackPane. Yes, Popup would remove the need for a >>> StackPane. >>> >>> On Tue, Jun 10, 2014 at 3:52 PM, Tom Eugelink wrote: >>>> You're way ahead of me. Why use stackpane and not popup as suggested? >>>> Wouldn't Popup remove the need for a stackpane? >>>> >>>> Tom >>>> >>>> >>>> >>>> >>>> On 2014-6-10 15:38, Tomas Mikula wrote: >>>>> Since talk is cheap, I slightly reworked your code (not using >>>>> PopupWindow) and it seems to work. >>>>> >>>>> CircularPopupMenu: >>>>> >>>>> https://github.com/TomasMikula/jfxtras-labs/blob/8.0/src/main/java/jfxtras/labs/scene/menu/CirclePopupMenu1.java >>>>> >>>>> Sample: >>>>> >>>>> https://github.com/TomasMikula/jfxtras-labs/blob/8.0/src/main/java/jfxtras/labs/scene/menu/Sample1.java >>>>> >>>>> Main points: >>>>> * No "canvas" pane used, CircularPane is added directly to the stack pane. >>>>> * CircularPane is added as the last child to the stack pane in order >>>>> to be on top. >>>>> * CircularPane is an "unmanaged" child of the stack pane, in order to >>>>> allow custom positioning (at mouse pointer) >>>>> * Since setPickOnBounds(false) causes the mouse exit the circular pane >>>>> as soon as it opens, there's slightly more logic to hide the menu >>>>> instead of just listening to MOUSE_EXITED events: >>>>> >>>>> stackPane.addEventHandler(MouseEvent.MOUSE_MOVED, e -> { >>>>> if(isShown()) { >>>>> Bounds localBounds = circularPane.getBoundsInLocal(); >>>>> Bounds screenBounds = circularPane.localToScreen(localBounds); >>>>> if(!screenBounds.contains(e.getScreenX(), e.getScreenY())) { >>>>> hide(); >>>>> } >>>>> } >>>>> }); >>>>> >>>>> Cheers, >>>>> Tomas >>>>> >>>>> On Tue, Jun 10, 2014 at 1:45 PM, Tomas Mikula >>>>> wrote: >>>>>> What about using Popup, which is a subclass of PopupWindow? You just need >>>>>> to >>>>>> populate its content >>>>>> >>>>>> popup.getContent().addAll(Node...); >>>>>> >>>>>> and then show it at the right position, relative to any node >>>>>> >>>>>> popup.show(canvas, x, y); >>>>>> >>>>>> Tomas >>>>>> >>>>>> On Jun 10, 2014 8:49 AM, "Tom Eugelink" wrote: >>>>>>> >>>>>>> Looking at PopupWindow; that is an abstract class and I'm not finding >>>>>>> much >>>>>>> examples on how to use it. Maybe extending PopupControl would be a >>>>>>> better >>>>>>> choice. >>>>>>> >>>>>>> Been looking at the ContextMenu source code (which is extending >>>>>>> PopupControl), but it is somewhat mysterious how those MenuItems get >>>>>>> rendered. I would expect maybe a skin, but I'm not finding it. >>>>>>> >>>>>>> >>>>>>> On 2014-6-9 13:48, Tomas Mikula wrote: >>>>>>>> Hi Tom, >>>>>>>> >>>>>>>> I am in favor of the menu being a PopupWindow, but alternatively, >>>>>>>> could your "canvas" be a Group instead of a Pane? >>>>>>>> >>>>>>>> The code would look like this: >>>>>>>> >>>>>>>> StackPane stack = new StackPane(); >>>>>>>> >>>>>>>> Group canvas = new Group(); >>>>>>>> canvas.setManaged(false); >>>>>>>> >>>>>>>> stack.setOnMousePressed(e -> { >>>>>>>> // layout in the top left corner of the stack pane >>>>>>>> canvas.setLayoutX(0); >>>>>>>> canvas.setLayoutY(0); >>>>>>>> >>>>>>>> stack.getChildren().add(canvas); >>>>>>>> }); >>>>>>>> >>>>>>>> Regards, >>>>>>>> Tomas >>>>>>>> >>>>>>>> On Mon, Jun 9, 2014 at 11:01 AM, Tom Eugelink wrote: >>>>>>>>> But a PopupWindow would be detached from the pane? Not sure if that is >>>>>>>>> what >>>>>>>>> I envision, but I'll give it a go and see what it looks like. >>>>>>>>> >>>>>>>>> Your event filter does work though for what I need now. >>>>>>>>> >>>>>>>>> Thanks! >>>>>>>>> >>>>>>>>> >>>>>>>>> On 2014-6-9 10:41, Martin Sladecek wrote: >>>>>>>>>> Oh, I see. So it's not a PopupWindow at all. >>>>>>>>>> Events can pass only though parent-child hierarchy, so you can't >>>>>>>>>> catch >>>>>>>>>> an >>>>>>>>>> Event in your "circular menu" pane and then pass it to some other >>>>>>>>>> children >>>>>>>>>> of the parent StackPane. The menu pane would have to be parent of the >>>>>>>>>> controls in the StackPane. >>>>>>>>>> So again, you'd need RT-20184 to determine the target again by >>>>>>>>>> temporarily >>>>>>>>>> making the menu pane mouse transparent, doing Scene.pick and then >>>>>>>>>> redirecting the Event by Event.fireEvent(). >>>>>>>>>> >>>>>>>>>> But I think reworking you menu to be a PopupWindow should work. The >>>>>>>>>> transparent areas in the circular menu should pass mouse events to >>>>>>>>>> the >>>>>>>>>> underlying window. >>>>>>>>>> >>>>>>>>>> -Martin >>>>>>>>>> >>>>>>>>>> On 06/09/2014 10:20 AM, Tom Eugelink wrote: >>>>>>>>>>> >>>>>>>>>>> Or to see in in action with a single java -jar statement, download >>>>>>>>>>> the >>>>>>>>>>> samples from. >>>>>>>>>>> http://jfxtras.org/ >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> On 2014-6-9 10:13, Martin Sladecek wrote: >>>>>>>>>>>> OK, so to avoid further confusion, you have a PopupWindow with a >>>>>>>>>>>> Pane >>>>>>>>>>>> and you want to capture Events on the Pane and sent those events to >>>>>>>>>>>> the >>>>>>>>>>>> underlying controls (in a parent window) if those events are not >>>>>>>>>>>> relevant to >>>>>>>>>>>> that popup? >>>>>>>>>>>> >>>>>>>>>>>> Thanks, >>>>>>>>>>>> -Martin >>>>>>>>>>>> >>>>>>>>>>>> On 06/09/2014 10:07 AM, Tom Eugelink wrote: >>>>>>>>>>>>> >>>>>>>>>>>>> Hm, maybe I chose bad words; I'm not using Canvas, but just a >>>>>>>>>>>>> Pane. >>>>>>>>>>>>> Since the Pane is only used to draw the menu on when it need to >>>>>>>>>>>>> appear, I'm >>>>>>>>>>>>> calling it the canvas pane, as in "what is painted on". >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> On 2014-6-9 9:46, Martin Sladecek wrote: >>>>>>>>>>>>>> Just looked at the code and it seems Canvas does pick on bounds >>>>>>>>>>>>>> independently of the pickOnBounds value. There's currently no >>>>>>>>>>>>>> logic >>>>>>>>>>>>>> for >>>>>>>>>>>>>> picking only when over an opaque pixel ( worth filing a JIRA >>>>>>>>>>>>>> issue >>>>>>>>>>>>>> maybe?). >>>>>>>>>>>>>> This makes Canvas to consume everything as it's always picked >>>>>>>>>>>>>> instead of >>>>>>>>>>>>>> some controls underneath. >>>>>>>>>>>>>> >>>>>>>>>>>>>> Unfortunately, I can't think of any solution that would work >>>>>>>>>>>>>> right >>>>>>>>>>>>>> now. If we'd support Node picking >>>>>>>>>>>>>> (https://javafx-jira.kenai.com/browse/RT-20184), it would be >>>>>>>>>>>>>> possible to >>>>>>>>>>>>>> "redirect" an unwanted event to a different event target on that >>>>>>>>>>>>>> mouse >>>>>>>>>>>>>> position. >>>>>>>>>>>>>> >>>>>>>>>>>>>> -Martin >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> On 06/09/2014 08:44 AM, Tom Eugelink wrote: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Yessss. It does not work on the canvas pane, I suspect because >>>>>>>>>>>>>>> of >>>>>>>>>>>>>>> the >>>>>>>>>>>>>>> pickOnBounds, but it does work on the stackpane. Plus, I can >>>>>>>>>>>>>>> register to the >>>>>>>>>>>>>>> stack pane without claiming the onMouseClick/Press hook. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Many thanks! >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Tom >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> On 2014-6-9 8:29, Martin Sladecek wrote: >>>>>>>>>>>>>>>> Hi Tom, >>>>>>>>>>>>>>>> have you tried .addEventFilter() method? It receives the Event >>>>>>>>>>>>>>>> before the controls underneath the canvas, in the capturing >>>>>>>>>>>>>>>> phase. If you >>>>>>>>>>>>>>>> don't consume the Event, it should pass down to the controls. >>>>>>>>>>>>>>>> For more on the topic, see >>>>>>>>>>>>>>>> http://docs.oracle.com/javafx/2/events/processing.htm or >>>>>>>>>>>>>>>> http://parleys.com/play/514892290364bc17fc56c39f >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> -Martin >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> On 06/09/2014 08:19 AM, Tom Eugelink wrote: >>>>>>>>>>>>>>>>> Hi all, >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Maybe someone has solved this already, so I thought I pop the >>>>>>>>>>>>>>>>> question. Currently I'm working on CirclePopupMenu; a menu >>>>>>>>>>>>>>>>> that >>>>>>>>>>>>>>>>> is supposed >>>>>>>>>>>>>>>>> to pop up on any place in a scene when a certain (usually the >>>>>>>>>>>>>>>>> middle or >>>>>>>>>>>>>>>>> right) mouse button is pressed. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Right now CirclePopupMenu requires a stackpane to which it >>>>>>>>>>>>>>>>> binds >>>>>>>>>>>>>>>>> itself. CirclePopupMenu initially places an empty "canvas" >>>>>>>>>>>>>>>>> Pane >>>>>>>>>>>>>>>>> on the stack >>>>>>>>>>>>>>>>> pane, and will use that to render and position the menu when >>>>>>>>>>>>>>>>> it >>>>>>>>>>>>>>>>> needs to >>>>>>>>>>>>>>>>> appear. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Also I need to monitor the mouse to detect if the menu should >>>>>>>>>>>>>>>>> appear. In order to do that, I would like to use that canvas >>>>>>>>>>>>>>>>> pane, but then >>>>>>>>>>>>>>>>> any non relevant button clicks will not reach the underlying >>>>>>>>>>>>>>>>> controls. In >>>>>>>>>>>>>>>>> order to enable correct behavior I need to >>>>>>>>>>>>>>>>> setPickOnBounds(false) on the >>>>>>>>>>>>>>>>> pane, but then it does receive the mouse events anymore. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Is there any way to monitor mouse events but still pass them >>>>>>>>>>>>>>>>> through to the underlying controls? In Swing I did something >>>>>>>>>>>>>>>>> similar and >>>>>>>>>>>>>>>>> used a system level mouse event hook. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Tom >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> PS: I'm not certain if the stackpane approach I've used is the >>>>>>>>>>>>>>>>> best >>>>>>>>>>>>>>>>> way to do this. It does work expect the mouse button problem. >>>>>>>>>>>>>>>>> But any >>>>>>>>>>>>>>>>> suggestions are welcome. >>>>>>>>>>>>>>>> >>>> > > From lisa.selle at oracle.com Tue Jun 10 16:51:45 2014 From: lisa.selle at oracle.com (Lisa Selle) Date: Tue, 10 Jun 2014 12:51:45 -0400 Subject: [8u26] Review request RT-36915 [Monocle] Add support for minimize to monocle Message-ID: <539737A1.6070101@oracle.com> Daniel, Please review the proposed fix for https://javafx-jira.kenai.com/browse/RT-36915 Details in the jira. Thanks, Lisa From hang.vo at oracle.com Tue Jun 10 17:03:35 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 10 Jun 2014 17:03:35 +0000 Subject: hg: openjfx/8u-dev/rt: [Accessibility] Very rudimentary a11y support for TextFlow (note that TextFlow currently is not used by Controls, better support will be required is that ever changes) Message-ID: <201406101703.s5AH3lSA029945@aojmv0008> Changeset: da52f6e7f012 Author: Felipe Heidrich Date: 2014-06-09 15:28 -0700 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/da52f6e7f012 [Accessibility] Very rudimentary a11y support for TextFlow (note that TextFlow currently is not used by Controls, better support will be required is that ever changes) ! modules/graphics/src/main/java/javafx/scene/text/TextFlow.java From tomas.mikula at gmail.com Tue Jun 10 17:07:51 2014 From: tomas.mikula at gmail.com (Tomas Mikula) Date: Tue, 10 Jun 2014 19:07:51 +0200 Subject: monitor mouse events but not capture them In-Reply-To: <53973773.3090705@tbee.org> References: <539551EF.3050706@tbee.org> <5395544F.6040702@oracle.com> <539557D1.6070000@tbee.org> <53956659.4040701@oracle.com> <53956B55.6020209@tbee.org> <53956CC2.1080008@oracle.com> <53956E58.50907@tbee.org> <5395732D.80909@oracle.com> <539577CC.9000509@tbee.org> <5396AA37.70203@tbee.org> <53970D8D.601@tbee.org> <539727DA.8010906@tbee.org> <53973773.3090705@tbee.org> Message-ID: Somehow I didn't get your previous email that you are quoting now. Listening to MOUSE_MOVED events on the Scene seemed to work for me. Didn't it work for you? You may as well install the menu to a Scene instead of a Node. That will also simplify listening to scene's events, because you don't have to worry about the case when the node is not yet attached to the scene (when node.getScene() returns null). By the way, you should probably use addEventHandler instead of addEventFilter, to allow child nodes to consume the event if they want to override the right click. Tomas On Tue, Jun 10, 2014 at 6:50 PM, Tom Eugelink wrote: > > Ah, attaching to Node is a good idea after all! > > Tom > > > On 2014-6-10 17:44, Tom Eugelink wrote: >> >> >> Thanks for all the help, you've given me a lot of helpful tips. I already >> was working on a popup based version and I see you ran into the same >> problems as I did (initial popup had no width for the circularPane, etc), >> the difference is that I bind the menu to Stage, since I do not envision >> CirclePopupMenu as a context menu to a specific node. It could of course... >> Uncertain about that. >> >> Anyhow, the only remaining problem is hiding when the mouse exits. Stage >> does not send the mouse events to addEventFilter. The node.addEventFilter >> does not solve that and on scene I'm not getting the events either. But I >> like the way it is going. >> >> Thanks! >> >> Tom >> >> >> On 2014-6-10 16:26, Tomas Mikula wrote: >>> >>> Here it is, using a Popup: >>> >>> https://github.com/TomasMikula/jfxtras-labs/blob/8.0/src/main/java/jfxtras/labs/scene/menu/CirclePopupMenu2.java >>> >>> https://github.com/TomasMikula/jfxtras-labs/blob/8.0/src/main/java/jfxtras/labs/scene/menu/Sample2.java >>> >>> The nice thing about popup window is that it can extend beyond the >>> bounds of the owner window. >>> Just let me know if transparency works for you as expected. Some time >>> ago transparency stopped working on my system and I didn't care to >>> find out why, so my Popup has white background instead of transparent, >>> but should be transparent on a healthy system. >>> >>> On Tue, Jun 10, 2014 at 3:57 PM, Tomas Mikula >>> wrote: >>>> >>>> Just because I wanted to make minimal changes to your code, which was >>>> already using StackPane. Yes, Popup would remove the need for a >>>> StackPane. >>>> >>>> On Tue, Jun 10, 2014 at 3:52 PM, Tom Eugelink wrote: >>>>> >>>>> You're way ahead of me. Why use stackpane and not popup as suggested? >>>>> Wouldn't Popup remove the need for a stackpane? >>>>> >>>>> Tom >>>>> >>>>> >>>>> >>>>> >>>>> On 2014-6-10 15:38, Tomas Mikula wrote: >>>>>> >>>>>> Since talk is cheap, I slightly reworked your code (not using >>>>>> PopupWindow) and it seems to work. >>>>>> >>>>>> CircularPopupMenu: >>>>>> >>>>>> >>>>>> https://github.com/TomasMikula/jfxtras-labs/blob/8.0/src/main/java/jfxtras/labs/scene/menu/CirclePopupMenu1.java >>>>>> >>>>>> Sample: >>>>>> >>>>>> >>>>>> https://github.com/TomasMikula/jfxtras-labs/blob/8.0/src/main/java/jfxtras/labs/scene/menu/Sample1.java >>>>>> >>>>>> Main points: >>>>>> * No "canvas" pane used, CircularPane is added directly to the stack >>>>>> pane. >>>>>> * CircularPane is added as the last child to the stack pane in order >>>>>> to be on top. >>>>>> * CircularPane is an "unmanaged" child of the stack pane, in order to >>>>>> allow custom positioning (at mouse pointer) >>>>>> * Since setPickOnBounds(false) causes the mouse exit the circular pane >>>>>> as soon as it opens, there's slightly more logic to hide the menu >>>>>> instead of just listening to MOUSE_EXITED events: >>>>>> >>>>>> stackPane.addEventHandler(MouseEvent.MOUSE_MOVED, e -> { >>>>>> if(isShown()) { >>>>>> Bounds localBounds = circularPane.getBoundsInLocal(); >>>>>> Bounds screenBounds = >>>>>> circularPane.localToScreen(localBounds); >>>>>> if(!screenBounds.contains(e.getScreenX(), >>>>>> e.getScreenY())) { >>>>>> hide(); >>>>>> } >>>>>> } >>>>>> }); >>>>>> >>>>>> Cheers, >>>>>> Tomas >>>>>> >>>>>> On Tue, Jun 10, 2014 at 1:45 PM, Tomas Mikula >>>>>> wrote: >>>>>>> >>>>>>> What about using Popup, which is a subclass of PopupWindow? You just >>>>>>> need >>>>>>> to >>>>>>> populate its content >>>>>>> >>>>>>> popup.getContent().addAll(Node...); >>>>>>> >>>>>>> and then show it at the right position, relative to any node >>>>>>> >>>>>>> popup.show(canvas, x, y); >>>>>>> >>>>>>> Tomas >>>>>>> >>>>>>> On Jun 10, 2014 8:49 AM, "Tom Eugelink" wrote: >>>>>>>> >>>>>>>> >>>>>>>> Looking at PopupWindow; that is an abstract class and I'm not >>>>>>>> finding >>>>>>>> much >>>>>>>> examples on how to use it. Maybe extending PopupControl would be a >>>>>>>> better >>>>>>>> choice. >>>>>>>> >>>>>>>> Been looking at the ContextMenu source code (which is extending >>>>>>>> PopupControl), but it is somewhat mysterious how those MenuItems get >>>>>>>> rendered. I would expect maybe a skin, but I'm not finding it. >>>>>>>> >>>>>>>> >>>>>>>> On 2014-6-9 13:48, Tomas Mikula wrote: >>>>>>>>> >>>>>>>>> Hi Tom, >>>>>>>>> >>>>>>>>> I am in favor of the menu being a PopupWindow, but alternatively, >>>>>>>>> could your "canvas" be a Group instead of a Pane? >>>>>>>>> >>>>>>>>> The code would look like this: >>>>>>>>> >>>>>>>>> StackPane stack = new StackPane(); >>>>>>>>> >>>>>>>>> Group canvas = new Group(); >>>>>>>>> canvas.setManaged(false); >>>>>>>>> >>>>>>>>> stack.setOnMousePressed(e -> { >>>>>>>>> // layout in the top left corner of the stack pane >>>>>>>>> canvas.setLayoutX(0); >>>>>>>>> canvas.setLayoutY(0); >>>>>>>>> >>>>>>>>> stack.getChildren().add(canvas); >>>>>>>>> }); >>>>>>>>> >>>>>>>>> Regards, >>>>>>>>> Tomas >>>>>>>>> >>>>>>>>> On Mon, Jun 9, 2014 at 11:01 AM, Tom Eugelink >>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>> But a PopupWindow would be detached from the pane? Not sure if >>>>>>>>>> that is >>>>>>>>>> what >>>>>>>>>> I envision, but I'll give it a go and see what it looks like. >>>>>>>>>> >>>>>>>>>> Your event filter does work though for what I need now. >>>>>>>>>> >>>>>>>>>> Thanks! >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On 2014-6-9 10:41, Martin Sladecek wrote: >>>>>>>>>>> >>>>>>>>>>> Oh, I see. So it's not a PopupWindow at all. >>>>>>>>>>> Events can pass only though parent-child hierarchy, so you can't >>>>>>>>>>> catch >>>>>>>>>>> an >>>>>>>>>>> Event in your "circular menu" pane and then pass it to some other >>>>>>>>>>> children >>>>>>>>>>> of the parent StackPane. The menu pane would have to be parent of >>>>>>>>>>> the >>>>>>>>>>> controls in the StackPane. >>>>>>>>>>> So again, you'd need RT-20184 to determine the target again by >>>>>>>>>>> temporarily >>>>>>>>>>> making the menu pane mouse transparent, doing Scene.pick and then >>>>>>>>>>> redirecting the Event by Event.fireEvent(). >>>>>>>>>>> >>>>>>>>>>> But I think reworking you menu to be a PopupWindow should work. >>>>>>>>>>> The >>>>>>>>>>> transparent areas in the circular menu should pass mouse events >>>>>>>>>>> to >>>>>>>>>>> the >>>>>>>>>>> underlying window. >>>>>>>>>>> >>>>>>>>>>> -Martin >>>>>>>>>>> >>>>>>>>>>> On 06/09/2014 10:20 AM, Tom Eugelink wrote: >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> Or to see in in action with a single java -jar statement, >>>>>>>>>>>> download >>>>>>>>>>>> the >>>>>>>>>>>> samples from. >>>>>>>>>>>> http://jfxtras.org/ >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> On 2014-6-9 10:13, Martin Sladecek wrote: >>>>>>>>>>>>> >>>>>>>>>>>>> OK, so to avoid further confusion, you have a PopupWindow with >>>>>>>>>>>>> a >>>>>>>>>>>>> Pane >>>>>>>>>>>>> and you want to capture Events on the Pane and sent those >>>>>>>>>>>>> events to >>>>>>>>>>>>> the >>>>>>>>>>>>> underlying controls (in a parent window) if those events are >>>>>>>>>>>>> not >>>>>>>>>>>>> relevant to >>>>>>>>>>>>> that popup? >>>>>>>>>>>>> >>>>>>>>>>>>> Thanks, >>>>>>>>>>>>> -Martin >>>>>>>>>>>>> >>>>>>>>>>>>> On 06/09/2014 10:07 AM, Tom Eugelink wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> Hm, maybe I chose bad words; I'm not using Canvas, but just a >>>>>>>>>>>>>> Pane. >>>>>>>>>>>>>> Since the Pane is only used to draw the menu on when it need >>>>>>>>>>>>>> to >>>>>>>>>>>>>> appear, I'm >>>>>>>>>>>>>> calling it the canvas pane, as in "what is painted on". >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> On 2014-6-9 9:46, Martin Sladecek wrote: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Just looked at the code and it seems Canvas does pick on >>>>>>>>>>>>>>> bounds >>>>>>>>>>>>>>> independently of the pickOnBounds value. There's currently no >>>>>>>>>>>>>>> logic >>>>>>>>>>>>>>> for >>>>>>>>>>>>>>> picking only when over an opaque pixel ( worth filing a JIRA >>>>>>>>>>>>>>> issue >>>>>>>>>>>>>>> maybe?). >>>>>>>>>>>>>>> This makes Canvas to consume everything as it's always picked >>>>>>>>>>>>>>> instead of >>>>>>>>>>>>>>> some controls underneath. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Unfortunately, I can't think of any solution that would work >>>>>>>>>>>>>>> right >>>>>>>>>>>>>>> now. If we'd support Node picking >>>>>>>>>>>>>>> (https://javafx-jira.kenai.com/browse/RT-20184), it would be >>>>>>>>>>>>>>> possible to >>>>>>>>>>>>>>> "redirect" an unwanted event to a different event target on >>>>>>>>>>>>>>> that >>>>>>>>>>>>>>> mouse >>>>>>>>>>>>>>> position. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> -Martin >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> On 06/09/2014 08:44 AM, Tom Eugelink wrote: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Yessss. It does not work on the canvas pane, I suspect >>>>>>>>>>>>>>>> because >>>>>>>>>>>>>>>> of >>>>>>>>>>>>>>>> the >>>>>>>>>>>>>>>> pickOnBounds, but it does work on the stackpane. Plus, I can >>>>>>>>>>>>>>>> register to the >>>>>>>>>>>>>>>> stack pane without claiming the onMouseClick/Press hook. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Many thanks! >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Tom >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> On 2014-6-9 8:29, Martin Sladecek wrote: >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Hi Tom, >>>>>>>>>>>>>>>>> have you tried .addEventFilter() method? It receives the >>>>>>>>>>>>>>>>> Event >>>>>>>>>>>>>>>>> before the controls underneath the canvas, in the capturing >>>>>>>>>>>>>>>>> phase. If you >>>>>>>>>>>>>>>>> don't consume the Event, it should pass down to the >>>>>>>>>>>>>>>>> controls. >>>>>>>>>>>>>>>>> For more on the topic, see >>>>>>>>>>>>>>>>> http://docs.oracle.com/javafx/2/events/processing.htm or >>>>>>>>>>>>>>>>> http://parleys.com/play/514892290364bc17fc56c39f >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> -Martin >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> On 06/09/2014 08:19 AM, Tom Eugelink wrote: >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Hi all, >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Maybe someone has solved this already, so I thought I pop >>>>>>>>>>>>>>>>>> the >>>>>>>>>>>>>>>>>> question. Currently I'm working on CirclePopupMenu; a menu >>>>>>>>>>>>>>>>>> that >>>>>>>>>>>>>>>>>> is supposed >>>>>>>>>>>>>>>>>> to pop up on any place in a scene when a certain (usually >>>>>>>>>>>>>>>>>> the >>>>>>>>>>>>>>>>>> middle or >>>>>>>>>>>>>>>>>> right) mouse button is pressed. >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Right now CirclePopupMenu requires a stackpane to which it >>>>>>>>>>>>>>>>>> binds >>>>>>>>>>>>>>>>>> itself. CirclePopupMenu initially places an empty "canvas" >>>>>>>>>>>>>>>>>> Pane >>>>>>>>>>>>>>>>>> on the stack >>>>>>>>>>>>>>>>>> pane, and will use that to render and position the menu >>>>>>>>>>>>>>>>>> when >>>>>>>>>>>>>>>>>> it >>>>>>>>>>>>>>>>>> needs to >>>>>>>>>>>>>>>>>> appear. >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Also I need to monitor the mouse to detect if the menu >>>>>>>>>>>>>>>>>> should >>>>>>>>>>>>>>>>>> appear. In order to do that, I would like to use that >>>>>>>>>>>>>>>>>> canvas >>>>>>>>>>>>>>>>>> pane, but then >>>>>>>>>>>>>>>>>> any non relevant button clicks will not reach the >>>>>>>>>>>>>>>>>> underlying >>>>>>>>>>>>>>>>>> controls. In >>>>>>>>>>>>>>>>>> order to enable correct behavior I need to >>>>>>>>>>>>>>>>>> setPickOnBounds(false) on the >>>>>>>>>>>>>>>>>> pane, but then it does receive the mouse events anymore. >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Is there any way to monitor mouse events but still pass >>>>>>>>>>>>>>>>>> them >>>>>>>>>>>>>>>>>> through to the underlying controls? In Swing I did >>>>>>>>>>>>>>>>>> something >>>>>>>>>>>>>>>>>> similar and >>>>>>>>>>>>>>>>>> used a system level mouse event hook. >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Tom >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> PS: I'm not certain if the stackpane approach I've used is >>>>>>>>>>>>>>>>>> the >>>>>>>>>>>>>>>>>> best >>>>>>>>>>>>>>>>>> way to do this. It does work expect the mouse button >>>>>>>>>>>>>>>>>> problem. >>>>>>>>>>>>>>>>>> But any >>>>>>>>>>>>>>>>>> suggestions are welcome. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>> >> >> > > From tbee at tbee.org Tue Jun 10 17:14:45 2014 From: tbee at tbee.org (Tom Eugelink) Date: Tue, 10 Jun 2014 19:14:45 +0200 Subject: monitor mouse events but not capture them In-Reply-To: References: <539551EF.3050706@tbee.org> <5395544F.6040702@oracle.com> <539557D1.6070000@tbee.org> <53956659.4040701@oracle.com> <53956B55.6020209@tbee.org> <53956CC2.1080008@oracle.com> <53956E58.50907@tbee.org> <5395732D.80909@oracle.com> <539577CC.9000509@tbee.org> <5396AA37.70203@tbee.org> <53970D8D.601@tbee.org> <539727DA.8010906@tbee.org> <53973773.3090705@tbee.org> Message-ID: <53973D05.1000008@tbee.org> My internet provider has problems sending to GMail addresses. For me it worked to register to scene.getRoot(). I like registering to a node, because it allows to install different menu's to different nodes, but still do the most common approach of install a single menu to the top level pane. Your code already uses addEventHandler, I adopted that. Tom On 2014-6-10 19:07, Tomas Mikula wrote: > Somehow I didn't get your previous email that you are quoting now. > > Listening to MOUSE_MOVED events on the Scene seemed to work for me. > Didn't it work for you? You may as well install the menu to a Scene > instead of a Node. That will also simplify listening to scene's > events, because you don't have to worry about the case when the node > is not yet attached to the scene (when node.getScene() returns null). > > By the way, you should probably use addEventHandler instead of > addEventFilter, to allow child nodes to consume the event if they want > to override the right click. > > Tomas > > On Tue, Jun 10, 2014 at 6:50 PM, Tom Eugelink wrote: >> Ah, attaching to Node is a good idea after all! >> >> Tom >> >> >> On 2014-6-10 17:44, Tom Eugelink wrote: >>> >>> Thanks for all the help, you've given me a lot of helpful tips. I already >>> was working on a popup based version and I see you ran into the same >>> problems as I did (initial popup had no width for the circularPane, etc), >>> the difference is that I bind the menu to Stage, since I do not envision >>> CirclePopupMenu as a context menu to a specific node. It could of course... >>> Uncertain about that. >>> >>> Anyhow, the only remaining problem is hiding when the mouse exits. Stage >>> does not send the mouse events to addEventFilter. The node.addEventFilter >>> does not solve that and on scene I'm not getting the events either. But I >>> like the way it is going. >>> >>> Thanks! >>> >>> Tom >>> >>> >>> On 2014-6-10 16:26, Tomas Mikula wrote: >>>> Here it is, using a Popup: >>>> >>>> https://github.com/TomasMikula/jfxtras-labs/blob/8.0/src/main/java/jfxtras/labs/scene/menu/CirclePopupMenu2.java >>>> >>>> https://github.com/TomasMikula/jfxtras-labs/blob/8.0/src/main/java/jfxtras/labs/scene/menu/Sample2.java >>>> >>>> The nice thing about popup window is that it can extend beyond the >>>> bounds of the owner window. >>>> Just let me know if transparency works for you as expected. Some time >>>> ago transparency stopped working on my system and I didn't care to >>>> find out why, so my Popup has white background instead of transparent, >>>> but should be transparent on a healthy system. >>>> >>>> On Tue, Jun 10, 2014 at 3:57 PM, Tomas Mikula >>>> wrote: >>>>> Just because I wanted to make minimal changes to your code, which was >>>>> already using StackPane. Yes, Popup would remove the need for a >>>>> StackPane. >>>>> >>>>> On Tue, Jun 10, 2014 at 3:52 PM, Tom Eugelink wrote: >>>>>> You're way ahead of me. Why use stackpane and not popup as suggested? >>>>>> Wouldn't Popup remove the need for a stackpane? >>>>>> >>>>>> Tom >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> On 2014-6-10 15:38, Tomas Mikula wrote: >>>>>>> Since talk is cheap, I slightly reworked your code (not using >>>>>>> PopupWindow) and it seems to work. >>>>>>> >>>>>>> CircularPopupMenu: >>>>>>> >>>>>>> >>>>>>> https://github.com/TomasMikula/jfxtras-labs/blob/8.0/src/main/java/jfxtras/labs/scene/menu/CirclePopupMenu1.java >>>>>>> >>>>>>> Sample: >>>>>>> >>>>>>> >>>>>>> https://github.com/TomasMikula/jfxtras-labs/blob/8.0/src/main/java/jfxtras/labs/scene/menu/Sample1.java >>>>>>> >>>>>>> Main points: >>>>>>> * No "canvas" pane used, CircularPane is added directly to the stack >>>>>>> pane. >>>>>>> * CircularPane is added as the last child to the stack pane in order >>>>>>> to be on top. >>>>>>> * CircularPane is an "unmanaged" child of the stack pane, in order to >>>>>>> allow custom positioning (at mouse pointer) >>>>>>> * Since setPickOnBounds(false) causes the mouse exit the circular pane >>>>>>> as soon as it opens, there's slightly more logic to hide the menu >>>>>>> instead of just listening to MOUSE_EXITED events: >>>>>>> >>>>>>> stackPane.addEventHandler(MouseEvent.MOUSE_MOVED, e -> { >>>>>>> if(isShown()) { >>>>>>> Bounds localBounds = circularPane.getBoundsInLocal(); >>>>>>> Bounds screenBounds = >>>>>>> circularPane.localToScreen(localBounds); >>>>>>> if(!screenBounds.contains(e.getScreenX(), >>>>>>> e.getScreenY())) { >>>>>>> hide(); >>>>>>> } >>>>>>> } >>>>>>> }); >>>>>>> >>>>>>> Cheers, >>>>>>> Tomas >>>>>>> >>>>>>> On Tue, Jun 10, 2014 at 1:45 PM, Tomas Mikula >>>>>>> wrote: >>>>>>>> What about using Popup, which is a subclass of PopupWindow? You just >>>>>>>> need >>>>>>>> to >>>>>>>> populate its content >>>>>>>> >>>>>>>> popup.getContent().addAll(Node...); >>>>>>>> >>>>>>>> and then show it at the right position, relative to any node >>>>>>>> >>>>>>>> popup.show(canvas, x, y); >>>>>>>> >>>>>>>> Tomas >>>>>>>> >>>>>>>> On Jun 10, 2014 8:49 AM, "Tom Eugelink" wrote: >>>>>>>>> >>>>>>>>> Looking at PopupWindow; that is an abstract class and I'm not >>>>>>>>> finding >>>>>>>>> much >>>>>>>>> examples on how to use it. Maybe extending PopupControl would be a >>>>>>>>> better >>>>>>>>> choice. >>>>>>>>> >>>>>>>>> Been looking at the ContextMenu source code (which is extending >>>>>>>>> PopupControl), but it is somewhat mysterious how those MenuItems get >>>>>>>>> rendered. I would expect maybe a skin, but I'm not finding it. >>>>>>>>> >>>>>>>>> >>>>>>>>> On 2014-6-9 13:48, Tomas Mikula wrote: >>>>>>>>>> Hi Tom, >>>>>>>>>> >>>>>>>>>> I am in favor of the menu being a PopupWindow, but alternatively, >>>>>>>>>> could your "canvas" be a Group instead of a Pane? >>>>>>>>>> >>>>>>>>>> The code would look like this: >>>>>>>>>> >>>>>>>>>> StackPane stack = new StackPane(); >>>>>>>>>> >>>>>>>>>> Group canvas = new Group(); >>>>>>>>>> canvas.setManaged(false); >>>>>>>>>> >>>>>>>>>> stack.setOnMousePressed(e -> { >>>>>>>>>> // layout in the top left corner of the stack pane >>>>>>>>>> canvas.setLayoutX(0); >>>>>>>>>> canvas.setLayoutY(0); >>>>>>>>>> >>>>>>>>>> stack.getChildren().add(canvas); >>>>>>>>>> }); >>>>>>>>>> >>>>>>>>>> Regards, >>>>>>>>>> Tomas >>>>>>>>>> >>>>>>>>>> On Mon, Jun 9, 2014 at 11:01 AM, Tom Eugelink >>>>>>>>>> wrote: >>>>>>>>>>> But a PopupWindow would be detached from the pane? Not sure if >>>>>>>>>>> that is >>>>>>>>>>> what >>>>>>>>>>> I envision, but I'll give it a go and see what it looks like. >>>>>>>>>>> >>>>>>>>>>> Your event filter does work though for what I need now. >>>>>>>>>>> >>>>>>>>>>> Thanks! >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> On 2014-6-9 10:41, Martin Sladecek wrote: >>>>>>>>>>>> Oh, I see. So it's not a PopupWindow at all. >>>>>>>>>>>> Events can pass only though parent-child hierarchy, so you can't >>>>>>>>>>>> catch >>>>>>>>>>>> an >>>>>>>>>>>> Event in your "circular menu" pane and then pass it to some other >>>>>>>>>>>> children >>>>>>>>>>>> of the parent StackPane. The menu pane would have to be parent of >>>>>>>>>>>> the >>>>>>>>>>>> controls in the StackPane. >>>>>>>>>>>> So again, you'd need RT-20184 to determine the target again by >>>>>>>>>>>> temporarily >>>>>>>>>>>> making the menu pane mouse transparent, doing Scene.pick and then >>>>>>>>>>>> redirecting the Event by Event.fireEvent(). >>>>>>>>>>>> >>>>>>>>>>>> But I think reworking you menu to be a PopupWindow should work. >>>>>>>>>>>> The >>>>>>>>>>>> transparent areas in the circular menu should pass mouse events >>>>>>>>>>>> to >>>>>>>>>>>> the >>>>>>>>>>>> underlying window. >>>>>>>>>>>> >>>>>>>>>>>> -Martin >>>>>>>>>>>> >>>>>>>>>>>> On 06/09/2014 10:20 AM, Tom Eugelink wrote: >>>>>>>>>>>>> >>>>>>>>>>>>> Or to see in in action with a single java -jar statement, >>>>>>>>>>>>> download >>>>>>>>>>>>> the >>>>>>>>>>>>> samples from. >>>>>>>>>>>>> http://jfxtras.org/ >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> On 2014-6-9 10:13, Martin Sladecek wrote: >>>>>>>>>>>>>> OK, so to avoid further confusion, you have a PopupWindow with >>>>>>>>>>>>>> a >>>>>>>>>>>>>> Pane >>>>>>>>>>>>>> and you want to capture Events on the Pane and sent those >>>>>>>>>>>>>> events to >>>>>>>>>>>>>> the >>>>>>>>>>>>>> underlying controls (in a parent window) if those events are >>>>>>>>>>>>>> not >>>>>>>>>>>>>> relevant to >>>>>>>>>>>>>> that popup? >>>>>>>>>>>>>> >>>>>>>>>>>>>> Thanks, >>>>>>>>>>>>>> -Martin >>>>>>>>>>>>>> >>>>>>>>>>>>>> On 06/09/2014 10:07 AM, Tom Eugelink wrote: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Hm, maybe I chose bad words; I'm not using Canvas, but just a >>>>>>>>>>>>>>> Pane. >>>>>>>>>>>>>>> Since the Pane is only used to draw the menu on when it need >>>>>>>>>>>>>>> to >>>>>>>>>>>>>>> appear, I'm >>>>>>>>>>>>>>> calling it the canvas pane, as in "what is painted on". >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> On 2014-6-9 9:46, Martin Sladecek wrote: >>>>>>>>>>>>>>>> Just looked at the code and it seems Canvas does pick on >>>>>>>>>>>>>>>> bounds >>>>>>>>>>>>>>>> independently of the pickOnBounds value. There's currently no >>>>>>>>>>>>>>>> logic >>>>>>>>>>>>>>>> for >>>>>>>>>>>>>>>> picking only when over an opaque pixel ( worth filing a JIRA >>>>>>>>>>>>>>>> issue >>>>>>>>>>>>>>>> maybe?). >>>>>>>>>>>>>>>> This makes Canvas to consume everything as it's always picked >>>>>>>>>>>>>>>> instead of >>>>>>>>>>>>>>>> some controls underneath. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Unfortunately, I can't think of any solution that would work >>>>>>>>>>>>>>>> right >>>>>>>>>>>>>>>> now. If we'd support Node picking >>>>>>>>>>>>>>>> (https://javafx-jira.kenai.com/browse/RT-20184), it would be >>>>>>>>>>>>>>>> possible to >>>>>>>>>>>>>>>> "redirect" an unwanted event to a different event target on >>>>>>>>>>>>>>>> that >>>>>>>>>>>>>>>> mouse >>>>>>>>>>>>>>>> position. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> -Martin >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> On 06/09/2014 08:44 AM, Tom Eugelink wrote: >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Yessss. It does not work on the canvas pane, I suspect >>>>>>>>>>>>>>>>> because >>>>>>>>>>>>>>>>> of >>>>>>>>>>>>>>>>> the >>>>>>>>>>>>>>>>> pickOnBounds, but it does work on the stackpane. Plus, I can >>>>>>>>>>>>>>>>> register to the >>>>>>>>>>>>>>>>> stack pane without claiming the onMouseClick/Press hook. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Many thanks! >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Tom >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> On 2014-6-9 8:29, Martin Sladecek wrote: >>>>>>>>>>>>>>>>>> Hi Tom, >>>>>>>>>>>>>>>>>> have you tried .addEventFilter() method? It receives the >>>>>>>>>>>>>>>>>> Event >>>>>>>>>>>>>>>>>> before the controls underneath the canvas, in the capturing >>>>>>>>>>>>>>>>>> phase. If you >>>>>>>>>>>>>>>>>> don't consume the Event, it should pass down to the >>>>>>>>>>>>>>>>>> controls. >>>>>>>>>>>>>>>>>> For more on the topic, see >>>>>>>>>>>>>>>>>> http://docs.oracle.com/javafx/2/events/processing.htm or >>>>>>>>>>>>>>>>>> http://parleys.com/play/514892290364bc17fc56c39f >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> -Martin >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> On 06/09/2014 08:19 AM, Tom Eugelink wrote: >>>>>>>>>>>>>>>>>>> Hi all, >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> Maybe someone has solved this already, so I thought I pop >>>>>>>>>>>>>>>>>>> the >>>>>>>>>>>>>>>>>>> question. Currently I'm working on CirclePopupMenu; a menu >>>>>>>>>>>>>>>>>>> that >>>>>>>>>>>>>>>>>>> is supposed >>>>>>>>>>>>>>>>>>> to pop up on any place in a scene when a certain (usually >>>>>>>>>>>>>>>>>>> the >>>>>>>>>>>>>>>>>>> middle or >>>>>>>>>>>>>>>>>>> right) mouse button is pressed. >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> Right now CirclePopupMenu requires a stackpane to which it >>>>>>>>>>>>>>>>>>> binds >>>>>>>>>>>>>>>>>>> itself. CirclePopupMenu initially places an empty "canvas" >>>>>>>>>>>>>>>>>>> Pane >>>>>>>>>>>>>>>>>>> on the stack >>>>>>>>>>>>>>>>>>> pane, and will use that to render and position the menu >>>>>>>>>>>>>>>>>>> when >>>>>>>>>>>>>>>>>>> it >>>>>>>>>>>>>>>>>>> needs to >>>>>>>>>>>>>>>>>>> appear. >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> Also I need to monitor the mouse to detect if the menu >>>>>>>>>>>>>>>>>>> should >>>>>>>>>>>>>>>>>>> appear. In order to do that, I would like to use that >>>>>>>>>>>>>>>>>>> canvas >>>>>>>>>>>>>>>>>>> pane, but then >>>>>>>>>>>>>>>>>>> any non relevant button clicks will not reach the >>>>>>>>>>>>>>>>>>> underlying >>>>>>>>>>>>>>>>>>> controls. In >>>>>>>>>>>>>>>>>>> order to enable correct behavior I need to >>>>>>>>>>>>>>>>>>> setPickOnBounds(false) on the >>>>>>>>>>>>>>>>>>> pane, but then it does receive the mouse events anymore. >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> Is there any way to monitor mouse events but still pass >>>>>>>>>>>>>>>>>>> them >>>>>>>>>>>>>>>>>>> through to the underlying controls? In Swing I did >>>>>>>>>>>>>>>>>>> something >>>>>>>>>>>>>>>>>>> similar and >>>>>>>>>>>>>>>>>>> used a system level mouse event hook. >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> Tom >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> PS: I'm not certain if the stackpane approach I've used is >>>>>>>>>>>>>>>>>>> the >>>>>>>>>>>>>>>>>>> best >>>>>>>>>>>>>>>>>>> way to do this. It does work expect the mouse button >>>>>>>>>>>>>>>>>>> problem. >>>>>>>>>>>>>>>>>>> But any >>>>>>>>>>>>>>>>>>> suggestions are welcome. >>>>>>>>>>>>>>>>>> >>> >> From steve.x.northover at oracle.com Tue Jun 10 17:18:25 2014 From: steve.x.northover at oracle.com (Stephen F Northover) Date: Tue, 10 Jun 2014 13:18:25 -0400 Subject: [8u20] Review request: RT-35197: Use Lambda in FX runtime and samples In-Reply-To: <534EA460.7030601@oracle.com> References: <534EA460.7030601@oracle.com> Message-ID: <53973DE1.9060103@oracle.com> Hi Kevin, Please review the lambdification of the rt-tests component. You are welcome to apply the patch, but there are numerous changes and they are all automatic. If you have outstanding changes, please commit them and I will lambdify once more. Jira: https://javafx-jira.kenai.com/browse/RT-35197 Webrev: See patch is in the JIRA Steve From randahl at rockit.dk Tue Jun 10 17:18:39 2014 From: randahl at rockit.dk (Randahl Fink Isaksen) Date: Tue, 10 Jun 2014 19:18:39 +0200 Subject: =?utf-8?Q?New_skinning_in_FX8_=E2=80=93_where_do_the_style_class?= =?utf-8?Q?es_go?= Message-ID: <48BEBECF-90DB-4D14-B56C-660CD8E14222@rockit.dk> Hi everybody I am a bit puzzled by the changes to the Skinnable API. With FX2 I created a couple of SkinBase based skins, and back then SkinBase was a descendant of Control. So I had Control ???? SkinBase ???? MySkin Now SkinBase is just a descendant of Object, which means I need to rewrite my code to represent Object ???? SkinBase ???? MySkin ??> MySkinControl (Of course I am curious why this change was made ? has anyone seen any documentation about this?) One problem is, whenever I have a control MyControl using a skin class MySkin I used to be able to change the style class of MyControl and those changes would automatically be reflected by MySkin. Now with FX8 when I change the style class of MyControl, nothing happens. Am I supposed to bind the styleClass property of my MySkinControl instance to the styleClass of my MyControl instance? The API documentation is a bit scarce so any pointers in the right direction would be much appreciated. Thanks Randahl From tbee at tbee.org Tue Jun 10 17:22:23 2014 From: tbee at tbee.org (Tom Eugelink) Date: Tue, 10 Jun 2014 19:22:23 +0200 Subject: monitor mouse events but not capture them In-Reply-To: <53973D05.1000008@tbee.org> References: <539551EF.3050706@tbee.org> <5395544F.6040702@oracle.com> <539557D1.6070000@tbee.org> <53956659.4040701@oracle.com> <53956B55.6020209@tbee.org> <53956CC2.1080008@oracle.com> <53956E58.50907@tbee.org> <5395732D.80909@oracle.com> <539577CC.9000509@tbee.org> <5396AA37.70203@tbee.org> <53970D8D.601@tbee.org> <539727DA.8010906@tbee.org> <53973773.3090705@tbee.org> <53973D05.1000008@tbee.org> Message-ID: <53973ECF.8060406@tbee.org> Placed a new version in GIT, tests are green as well. I'm quite pleased with the improvements. Going to take a peek at CornerMenu to see if it makes sense to refactor it also. Tom From hang.vo at oracle.com Tue Jun 10 17:32:41 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 10 Jun 2014 17:32:41 +0000 Subject: hg: openjfx/8u-dev/rt: RT-36361: [Accessibility] Mac: context menu hot key not working Message-ID: <201406101732.s5AHWrSb003719@aojmv0008> Changeset: 30b24988ef50 Author: Anthony Petrov Date: 2014-06-10 21:17 +0400 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/30b24988ef50 RT-36361: [Accessibility] Mac: context menu hot key not working Summary: Don't use menuForEvent: and always synthesize the menu event instead Reviewed-by: fheidric ! modules/graphics/src/main/native-glass/mac/GlassView3D.m ! modules/graphics/src/main/native-glass/mac/GlassViewDelegate.m From lehmann at media-interactive.de Tue Jun 10 17:59:00 2014 From: lehmann at media-interactive.de (Werner Lehmann) Date: Tue, 10 Jun 2014 19:59:00 +0200 Subject: New skinning in FX8 =?UTF-8?B?4oCTIHdoZXJlIGRvIHRoZSBzdHlsZSA=?= =?UTF-8?B?Y2xhc3NlcyBnbw==?= In-Reply-To: <48BEBECF-90DB-4D14-B56C-660CD8E14222@rockit.dk> References: <48BEBECF-90DB-4D14-B56C-660CD8E14222@rockit.dk> Message-ID: <53974764.7060807@media-interactive.de> Hi Randahl, see this wiki page... https://wiki.openjdk.java.net/display/OpenJFX/UI+Controls+Architecture and below: On 10.06.2014 19:18, Randahl Fink Isaksen wrote: > Object ???? SkinBase ???? MySkin ??> MySkinControl The new SkinBase is returning a modifiable version of the control's children. The FX2 way was actually more convoluted with behind-the-scenes copying of properties but I think that is covered on the wiki. > One problem is, whenever I have a control MyControl using a skin > class MySkin I used to be able to change the style class of MyControl > and those changes would automatically be reflected by MySkin. Now > with FX8 when I change the style class of MyControl, nothing > happens. This works for me. Maybe your css selectors need to be adjusted. After all the node hierarchy no longer has an extra skin node. > Am I supposed to bind the styleClass property of my MySkinControl > instance to the styleClass of my MyControl instance? Certainly not. In my opinion the control creation process is quite simple now. Create a new control class, set the style class, and provide the default skin by overriding createDefaultSkin(). Here you return an instance of your skin which extends SkinBase. Which is where you observe the control properties as usual. And use SkinBase.getChildren to add skin content. Werner From anthony.petrov at oracle.com Tue Jun 10 18:12:19 2014 From: anthony.petrov at oracle.com (Anthony Petrov) Date: Tue, 10 Jun 2014 22:12:19 +0400 Subject: [8u20] Review request: RT-36240: Drag and Drop for complex datatypes fails with JavaFX embedded in Swing Message-ID: <53974A83.4040200@oracle.com> Hi Steve, Please review: https://javafx-jira.kenai.com/browse/RT-36240 -- best regards, Anthony From lisa.selle at oracle.com Tue Jun 10 18:17:08 2014 From: lisa.selle at oracle.com (Lisa Selle) Date: Tue, 10 Jun 2014 14:17:08 -0400 Subject: [8u26] Review Request: RT-37369 [Monocle] When a child window is dismissed, the main window does not repaint right away Message-ID: <53974BA4.8070607@oracle.com> Daniel, Please review the proposed fix for https://javafx-jira.kenai.com/browse/RT-37369 Details in the jira. Thanks, Lisa From hang.vo at oracle.com Tue Jun 10 18:17:39 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 10 Jun 2014 18:17:39 +0000 Subject: hg: openjfx/8u-dev/rt: RT-37436: [FXCanvas, JFXPanel] NPE in Browser while pressing back/forward buttons from mouse Message-ID: <201406101817.s5AIHodi010803@aojmv0008> Changeset: d10817fc3844 Author: snorthov Date: 2014-06-10 14:06 -0400 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/d10817fc3844 RT-37436: [FXCanvas, JFXPanel] NPE in Browser while pressing back/forward buttons from mouse Reviewed by: felipe, anthony ! modules/swing/src/main/java/javafx/embed/swing/JFXPanel.java ! modules/swt/src/main/java/javafx/embed/swt/FXCanvas.java From lehmann at media-interactive.de Tue Jun 10 18:24:16 2014 From: lehmann at media-interactive.de (Werner Lehmann) Date: Tue, 10 Jun 2014 20:24:16 +0200 Subject: ScrollPane.content moves with arrow keys In-Reply-To: <16136EB8-C712-45F8-9579-CC0CF72F08C1@oracle.com> References: <53972FBF.8070009@media-interactive.de> <16136EB8-C712-45F8-9579-CC0CF72F08C1@oracle.com> Message-ID: <53974D50.5080709@media-interactive.de> It affects 8u5 as well: [#RT-37491] ScrollPane content can be moved around with arrow keys https://javafx-jira.kenai.com/browse/RT-37491 Werner On 10.06.2014 18:30, Eric Le Ponner wrote: > Curious indeed :) > And probably not intended you?re right. > > Note that Scene Builder 2.0 embeds its own jdk. > So it means the problem can be reproduced with FX8 GA release. > > Eric From hang.vo at oracle.com Tue Jun 10 18:48:00 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 10 Jun 2014 18:48:00 +0000 Subject: hg: openjfx/8u-dev/rt: RT-35197: Use Lambda in FX runtime and samples Message-ID: <201406101848.s5AImCmU016160@aojmv0008> Changeset: 79ce29689619 Author: snorthov Date: 2014-06-10 14:35 -0400 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/79ce29689619 RT-35197: Use Lambda in FX runtime and samples Reviewed by: kcr ! tests/app-lifecycle/ClassLoaderApp/src/classloader/TestApp2.java ! tests/golden-image-suite/src/modena/Modena.java ! tests/golden-image-suite/src/modena/SameHeightTestController.java ! tests/golden-image-suite/src/modena/SamplePageHelpers.java ! tests/golden-image-suite/src/modena/SamplePageNavigation.java ! tests/golden-image-suite/src/modena/SamplePageTableHelper.java ! tests/golden-image-suite/src/modena/SamplePageTreeTableHelper.java ! tests/golden-image-suite/src/modena/SimpleWindowPage.java ! tests/manual/printing/PageLayoutTest.java ! tests/manual/printing/PrintOrientTest.java ! tests/performance/VMPerformance/src/VMPerformance.java ! tests/system/src/test/java/com/sun/glass/ui/DefaultExceptionHandlerTest.java ! tests/system/src/test/java/com/sun/glass/ui/ExceptionHandlerTest.java ! tests/system/src/test/java/com/sun/glass/ui/monocle/input/DoubleClickTest.java ! tests/system/src/test/java/com/sun/glass/ui/monocle/input/InputDevicePropertyTest.java ! tests/system/src/test/java/com/sun/glass/ui/monocle/input/MonocleUInput.java ! tests/system/src/test/java/com/sun/glass/ui/monocle/input/RapidTapTest.java ! tests/system/src/test/java/com/sun/glass/ui/monocle/input/TestApplication.java ! tests/system/src/test/java/com/sun/glass/ui/monocle/input/TouchButtonTest.java ! tests/system/src/test/java/com/sun/glass/ui/monocle/input/TouchExceptionTest.java ! tests/system/src/test/java/com/sun/glass/ui/monocle/input/TouchTestBase.java ! tests/system/src/test/java/com/sun/javafx/application/ListenerTestCommon.java ! tests/system/src/test/java/com/sun/javafx/application/RunLaterTest.java ! tests/system/src/test/java/com/sun/javafx/application/SingleExitCommon.java ! tests/system/src/test/java/com/sun/javafx/application/SwingExitCommon.java ! tests/system/src/test/java/com/sun/javafx/application/SwingNoExit.java ! tests/system/src/test/java/com/sun/javafx/application/TaskbarAppCommon.java ! tests/system/src/test/java/com/sun/javafx/sg/prism/RT36296Test.java ! tests/system/src/test/java/com/sun/javafx/tk/quantum/CloseWindowTest.java ! tests/system/src/test/java/com/sun/javafx/tk/quantum/WindowSceneInitDisposeTest.java ! tests/system/src/test/java/helloworld/RectangleTest.java ! tests/system/src/test/java/javafx/embed/swing/RT23603Test.java ! tests/system/src/test/java/javafx/embed/swing/RT30650GUI.java ! tests/system/src/test/java/javafx/scene/PhongMaterialTest.java ! tests/system/src/test/java/javafx/scene/Snapshot1Test.java ! tests/system/src/test/java/javafx/scene/Snapshot2Test.java ! tests/system/src/test/java/javafx/scene/SnapshotCommon.java ! tests/system/src/test/java/javafx/scene/layout/RegionUITestBase.java ! tests/system/src/test/java/javafx/stage/ShowAndWaitTest.java ! tests/system/src/test/java/launchertest/TestApp.java ! tests/system/src/test/java/launchertest/TestAppNoMain.java ! tests/system/src/test/java/launchertest/TestAppNoMainThreadCheck.java ! tests/system/src/test/java/launchertest/TestAppThreadCheck.java ! tests/system/src/test/java/launchertest/TestNotApplication.java ! tests/system/src/test/java/launchertest/TestNotApplicationThreadCheck.java ! tests/system/src/test/java/launchertest/TestPreloader.java ! tests/system/src/test/java/painttest/ImagePaintTest.java ! tests/system/src/test/java/sandbox/app/FXApp.java ! tests/system/src/test/java/test3d/NearAndFarClipTest.java ! tests/system/src/test/java/test3d/Snapshot3DTest.java ! tests/system/src/test/java/test3d/TriangleMeshValidationTest.java ! tests/system/src/test/java/testharness/VisualTestBase.java ! tests/system/src/test/java/util/Util.java From hang.vo at oracle.com Tue Jun 10 19:04:13 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 10 Jun 2014 19:04:13 +0000 Subject: hg: openjfx/8u-dev/rt: RT-35912: [Ensemble8] build.xml fails if run from generated source bundle Message-ID: <201406101904.s5AJ4OcG019023@aojmv0008> Changeset: 7dbf508c2334 Author: kcr Date: 2014-06-10 11:58 -0700 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/7dbf508c2334 RT-35912: [Ensemble8] build.xml fails if run from generated source bundle Reviewed-by: kselle, ddhill ! apps/samples/Ensemble8/build.xml From jeff at reportmill.com Tue Jun 10 23:59:14 2014 From: jeff at reportmill.com (Jeff Martin) Date: Tue, 10 Jun 2014 18:59:14 -0500 Subject: VisibleBounds Message-ID: <04B6F9F0-C5A6-4BDC-AACC-361C7C3B534E@reportmill.com> What is the JFX equivalent of JComponent.getVisibleRect() - and is there a way to get a notification when it changes? jeff From adanecito at yahoo.com Wed Jun 11 03:54:34 2014 From: adanecito at yahoo.com (Tony Anecito) Date: Tue, 10 Jun 2014 20:54:34 -0700 (PDT) Subject: Bundler question for Mac OS X... Message-ID: <1402458874.63325.YahooMailNeo@web121806.mail.ne1.yahoo.com> Hi All, I noticed the menu bar for OS X is probably using my class name that has the static main in it. How do I override that in the JavFX Deploy ant script? The About, Hide and Quit sub-menu items are using a different name than what I want. The main menu item is correct. Thanks! Tony From hang.vo at oracle.com Wed Jun 11 06:17:46 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Wed, 11 Jun 2014 06:17:46 +0000 Subject: hg: openjfx/8u-dev/rt: [JAVADOC] RT-37485 Javadoc is confusing for javafx.animation.Timeline Message-ID: <201406110617.s5B6Hvu2022603@aojmv0008> Changeset: e87cf80130c4 Author: Martin Sladecek Date: 2014-06-11 08:02 +0200 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/e87cf80130c4 [JAVADOC] RT-37485 Javadoc is confusing for javafx.animation.Timeline ! modules/graphics/src/main/java/javafx/animation/Timeline.java From randahl at rockit.dk Wed Jun 11 07:57:51 2014 From: randahl at rockit.dk (Randahl Fink Isaksen) Date: Wed, 11 Jun 2014 09:57:51 +0200 Subject: Double skin addition Message-ID: <9E6DFE3D-6D41-43C5-BDB5-C5FAA843C8BA@rockit.dk> I have noticed that if I create a skin which adds a label like this public MySkin(MyControl control) { super(control); pane.getChildren().add(label); getChildren().add(pane); } the label is actually added twice in my application. I suspect this is because I am switching style sheets during startup, which means my createDefaultSkin method might be invoked twice. I found out, I can easily solve this by changing my code to using a getChildren().setAll(label) rather than getChildren().add(label), but I am surprised that JavaFX would not by itself clear the control?s children when applying a new skin. Has anyone else experienced this? Thanks Randahl From hang.vo at oracle.com Wed Jun 11 08:32:45 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Wed, 11 Jun 2014 08:32:45 +0000 Subject: hg: openjfx/8u-dev/rt: RT-37220: HelloSanity: Adding gesture test-cases (includes usage of scroll, rotate and zoom) Message-ID: <201406110832.s5B8WuAR011107@aojmv0008> Changeset: cbc97e1d7330 Author: Elina Kleyman Date: 2014-06-11 11:16 +0300 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/cbc97e1d7330 RT-37220: HelloSanity: Adding gesture test-cases (includes usage of scroll, rotate and zoom) ! apps/toys/Hello/src/main/java/hello/HelloSanity.java ! apps/toys/Hello/src/main/java/hello/TestBuilder.java From martin.sladecek at oracle.com Wed Jun 11 08:50:42 2014 From: martin.sladecek at oracle.com (Martin Sladecek) Date: Wed, 11 Jun 2014 10:50:42 +0200 Subject: Formatted text field API (RT-14000, RT-30881) Message-ID: <53981862.3030008@oracle.com> Hello, I would like to start some discussion about formatted text field API. The related JIRA issues are RT-14000 (formatted text field) and RT-30881 (content filter). The RT-30881 defines a content filter for all text input controls (in TextInputControl class), like TextField and TextArea. This was originally implemented by Richard Bair and briefly discussed here: http://mail.openjdk.java.net/pipermail/openjfx-dev/2012-December/004687.html. I've tried to build formatted text field on top of that (and made some changes to the API) since content filtering is something most formatted text fields will use. First, the TextInputControl additions: * contentFilter property of type ObjectProperty So let's look at the content filter and content change (both nested classes of TextInputControl): /** * Content Filter specifies the filter to be used with {@link TextInputControl#contentFilterProperty()}. * It allow user to intercept and modify any change done to the text content. * To avoid content that's not valid for the filter, it's possible to assign a default value supplier for the filter. *

* The filter itself is an {@code UnaryOperator} that accepts {@link javafx.scene.control.TextInputControl.ContentChange} object. * It should return a {@link javafx.scene.control.TextInputControl.ContentChange} object that contains the actual (filtered) * change. Returning null rejects the change. *

* If default value supplier is provided, it is used when the {@code ContentFilter} is assigned to a {@code TextInputControl} * and it's current text is invalid. It is expected that the provided default value is accepted by the filtering operator. */ public static class ContentFilter { /** * Creates a new filter with the providing filtering operator. * @param filter the filtering operator * * @throws java.lang.NullPointerException if filter is null */ public ContentFilter(UnaryOperator filter) {} /** * Creates a new filter with the providing filtering operator and default value supplier. * @param filter the filtering operator * @param defaultValue the default value or null * * @throws java.lang.NullPointerException if filter is null */ public ContentFilter(UnaryOperator filter, Supplier defaultValue) {} /** * The filtering operator of this filter. * @return the operator */ public UnaryOperator getFilter() {} /** * The default value provider of this filter * @return the default value provider or null */ public Supplier getDefaultValue() {} /** * Chains this filter with a filtering operator. The other filtering operator is used only if this * filter's operator rejects the operation. The default value of the new {@code ContentFilter} is the same * as of this filter. * @param other the filtering operator to chain * @return a new ContentFilter as described above */ public ContentFilter orApply(UnaryOperator other) {} /** * Chains this filter with a filtering operator of another {@code ContentFilter}. The other filtering operator is used only if this * filter's operator rejects the operation. The default value of the new {@code ContentFilter} is the same * as of this filter. * @param other the filter to chain * @return a new ContentFilter as described above */ public ContentFilter orApply(ContentFilter other) {} } /** * Contains the state representing a change in the content for a * TextInputControl. This object is passed to any registered * {@code contentFilter} on the TextInputControl whenever the text * for the TextInputControl is modified. *

* This class contains state and convenience methods for determining what * change occurred on the control. It also has a reference to the * TextInputControl itself so that the developer may query any other * state on the control. Note that you should never modify the state * of the control directly from within the contentFilter handler. *

*

* The ContentChange is mutable, but not observable. It should be used * only for the life of a single change. It is intended that the * ContentChange will be modified from within the contentFilter. *

*/ public static final class ContentChange implements Cloneable{ /** * Gets the control associated with this change. * @return The control associated with this change. This will never be null. */ public final TextInputControl getControl() {} /** * Gets the start index into the {@link javafx.scene.control.TextInputControl#getText()} * for the modification. This will always be a value > 0 and * <= {@link javafx.scene.control.TextInputControl#getLength()}. * * @return The start index */ public final int getStart() {} /** * Sets the start index for the range to be modified. This value must * always be a value > 0 and <= {@link javafx.scene.control.TextInputControl#getLength()} *

* Note that setting start before the current end will also change end to the same value. * * @param value the new start index */ public final void setStart(int value) {} /** * Gets the end index into the {@link javafx.scene.control.TextInputControl#getText()} * for the modification. This will always be a value > {@link #getStart()} and * <= {@link javafx.scene.control.TextInputControl#getLength()}. * * @return The end index */ public final int getEnd() {} /** * Sets the end index for the range to be modified. This value must * always be a value > {@link #getStart()} and <= {@link javafx.scene.control.TextInputControl#getLength()}. * Note that there is an order dependency between modifying the start * and end values. They must always be modified in order such that they * do not violate their constraints. * * @param value The new end index */ public final void setEnd(int value) {} /** * A convenience method returning an IndexRange representing the * start and end values. * * @return a non-null IndexRange representing the range from start to end. */ public final IndexRange getRange() {} /** * A convenience method assigning both the start and end values * together, in such a way as to ensure they are valid with respect to * each other. One way to use this method is to set the range like this: * {@code * change.setRange(IndexRange.normalize(newStart, newEnd)); * } * * @param value The new range. Cannot be null. */ public final void setRange(IndexRange value) {} /** * A convenience method assigning both the start and end values * together, in such a way as to ensure they are valid with respect to * each other. The start must be less than or equal to the end. * * @param start The new start value. Must be a valid start value * @param end The new end value. Must be a valid end value */ public final void setRange(int start, int end) {} /** * Gets the new anchor. This value will always be > 0 and * <= {@link #getProposedControlText()}{@code}.getLength()} * * @return The new anchor position */ public final int getNewAnchor() {} /** * Sets the new anchor. This value must be > 0 and * <= {@link #getProposedControlText()}{@code}.getLength()}. Note that there * is an order dependence here, in that the anchor should be * specified after the new text has been specified. * * @param value The new anchor position */ public final void setNewAnchor(int value) {} /** * Gets the new caret position. This value will always be > 0 and * <= {@link #getProposedControlText()}{@code}.getLength()} * * @return The new caret position */ public final int getNewCaretPosition() {} /** * Sets the new caret position. This value must be > 0 and * <= {@link #getProposedControlText()}{@code}.getLength()}. Note that there * is an order dependence here, in that the caret position should be * specified after the new text has been specified. * * @param value The new caret position */ public final void setNewCaretPosition(int value) {} /** * Gets the text used in this change. For example, this may be new * text being added, or text which is replacing all the control's text * within the range of start and end. Typically it is an empty string * only for cases where the range is being deleted. * * @return The text involved in this change. This will never be null. */ public final String getText() {} /** * Sets the text to use in this change. This is used to replace the * range from start to end, if such a range exists, or to insert text * at the position represented by start == end. * * @param value The text. This cannot be null. */ public final void setText(String value) {} /** * Gets the complete new text which will be used on the control after * this change. Note that some controls (such as TextField) may do further * filtering after the change is made (such as stripping out newlines) * such that you cannot assume that the newText will be exactly the same * as what is finally set as the content on the control, however it is * correct to assume that this is the case for the purpose of computing * the new caret position and new anchor position (as those values supplied * will be modified as necessary after the control has stripped any * additional characters that the control might strip). * * @return The controls proposed new text at the time of this call, according * to the state set for start, end, and text properties on this ContentChange object. */ public final String getProposedControlText() {} /** * Gets whether this change was in response to text being added. Note that * after the ContentChange object is modified by the contentFilter (by one * of the setters) the return value of this method is not altered. It answers * as to whether this change was fired as a result of text being added, * not whether text will end up being added in the end. * *

* Text may have been added either cause it was {@link #isInserted()}, * {@link #isAppended()}, or {@link #isPrepended()}. *

* * @return true if text was being added */ public final boolean isAdded() {} /** * Gets whether this change was in response to text being deleted. Note that * after the ContentChange object is modified by the contentFilter (by one * of the setters) the return value of this method is not altered. It answers * as to whether this change was fired as a result of text being deleted, * not whether text will end up being deleted in the end. * * @return true if text was being deleted */ public final boolean isDeleted() {} /** * Gets whether this change was in response to text being added, and in * particular, inserted into the midst of the control text. If this is * true, then {@link #isAdded()} will return true. * * @return true if text was being inserted */ public final boolean isInserted() {} /** * Gets whether this change was in response to text being added, and in * particular, appended to the end of the control text. If this is * true, then {@link #isAdded()} will return true. * * @return true if text was being appended */ public final boolean isAppended() {} /** * Gets whether this change was in response to text being added, and in * particular, prepended at the start of the control text. If this is * true, then {@link #isAdded()} will return true. * * @return true if text was being prepended */ public final boolean isPrepended() {} /** * Gets whether this change was in response to text being replaced. Note that * after the ContentChange object is modified by the contentFilter (by one * of the setters) the return value of this method is not altered. It answers * as to whether this change was fired as a result of text being replaced, * not whether text will end up being replaced in the end. * * @return true if text was being replaced */ public final boolean isReplaced() {} @Override public ContentChange clone() {} } The new FormattedTextField class relies on the content filtering and adds a concept of values convertible to/from a text: ** * FormattedTextField is a special kind of TextField that handles conversion between a value of type {@code T} and * a text of this TextField. *

* There are two types of converters: *

    *
  • {@link #valueConverterProperty()} represents the default converter between the text and values
  • *
  • {@link #editConverterProperty()} is a special converter that takes precedence when the textfield is being edited. * This allows to have a edit-friendly format and a nice display format for the value
  • *
* *

* When editing the text field, the value is not updated until either {@code ENTER} key is pressed or focus is lost. * If the conversion fail, the last known valid value is used instead. * * @param the value type */ public final class FormattedTextField extends TextField{ /** * Creates a formatted text field with the specified converter and a null value. * @param valueConverter the value converter */ public FormattedTextField(StringConverter valueConverter) {} /** * Creates a formatted text field with the specified converter and a value * @param valueConverter the value converter * @param value the initial value */ public FormattedTextField(StringConverter valueConverter, T value) {} /** * This represents the current value of the formatted text field. If a {@link #valueConverterProperty()} is provided, * and the text field is not being edited, the value is a representation of the text in the text field. */ public final ReadOnlyObjectProperty valueProperty() {} public final void setValue(T value) {} public final T getValue() {} /** * The default converter between the values and text. * Note that changing the converter might lead to a change of value, but only if the text can be converted by the new * converter. Otherwise, the current value is converted to a text, which is set to the field. * @see #editConverterProperty() */ public final ObjectProperty> valueConverterProperty() {} public final void setValueConverter(StringConverter converter) {} public final StringConverter getValueConverter() {} /** * Converter between values and text when the field is being edited. * @see #valueConverterProperty() */ public final ObjectProperty> editConverterProperty() {} public final void setEditConverter(StringConverter converter) {} public final StringConverter getEditConverter() {} } You can find the whole patch here: https://javafx-jira.kenai.com/secure/attachment/44678/rt-30881_14000_proposal.patch There are some examples for content filtering in RT-30881. I'll attach some formatted text field samples soon. Thanks, -Martin From hang.vo at oracle.com Wed Jun 11 09:03:07 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Wed, 11 Jun 2014 09:03:07 +0000 Subject: hg: openjfx/8u-dev/rt: RT-36240: Drag and Drop for complex datatypes fails with JavaFX embedded in Swing Message-ID: <201406110903.s5B93JOU015507@aojmv0008> Changeset: 429b2e166839 Author: Anthony Petrov Date: 2014-06-11 13:00 +0400 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/429b2e166839 RT-36240: Drag and Drop for complex datatypes fails with JavaFX embedded in Swing Reviewed-by: snorthov ! modules/swing/src/main/java/javafx/embed/swing/DataFlavorUtils.java From hang.vo at oracle.com Wed Jun 11 09:47:38 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Wed, 11 Jun 2014 09:47:38 +0000 Subject: hg: openjfx/8u-dev/rt: RT-37140: Unit tests for inertia of rotate gesture Message-ID: <201406110947.s5B9lnWl021709@aojmv0008> Changeset: 5527e3f6b542 Author: Elina Kleyman Date: 2014-06-11 12:31 +0300 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/5527e3f6b542 RT-37140: Unit tests for inertia of rotate gesture ! tests/system/src/test/java/com/sun/glass/ui/monocle/input/RotateTest.java ! tests/system/src/test/java/com/sun/glass/ui/monocle/input/TestLog.java From anthony.petrov at oracle.com Wed Jun 11 10:16:36 2014 From: anthony.petrov at oracle.com (Anthony Petrov) Date: Wed, 11 Jun 2014 14:16:36 +0400 Subject: Bundler question for Mac OS X... In-Reply-To: <1402458874.63325.YahooMailNeo@web121806.mail.ne1.yahoo.com> References: <1402458874.63325.YahooMailNeo@web121806.mail.ne1.yahoo.com> Message-ID: <53982C84.90307@oracle.com> Hi Tony, I don't know the exact syntax for the FX deploy script (is it the -title or -name option for the javafxpackager [1] ?), however [2] suggests that the CFBundleName key in Info.plist can be used to set the application name. I can confirm that Glass reads the value and assigns it to the application name. The Quit menu item then uses this name for its text label. Does setting the CFBundleName work for you? [1] http://docs.oracle.com/javafx/2/deployment/javafxpackager.htm [2] https://javafx-jira.kenai.com/browse/RT-18563 -- best regards, Anthony On 6/11/2014 7:54 AM, Tony Anecito wrote: > Hi All, > > I noticed the menu bar for OS X is probably using my class name that has the static main in it. How do I override that in the JavFX Deploy ant script? The About, Hide and Quit sub-menu items are using a different name than what I want. The main menu item is correct. > > Thanks! > Tony > From tomas.mikula at gmail.com Wed Jun 11 11:16:05 2014 From: tomas.mikula at gmail.com (Tomas Mikula) Date: Wed, 11 Jun 2014 13:16:05 +0200 Subject: Double skin addition In-Reply-To: <9E6DFE3D-6D41-43C5-BDB5-C5FAA843C8BA@rockit.dk> References: <9E6DFE3D-6D41-43C5-BDB5-C5FAA843C8BA@rockit.dk> Message-ID: Hi Randahl, you should override your Skin's dispose() method that removes the label. Possible reasons I can imagine why JavaFX does not clear the child list itself: 1. The control could have some children on it's own, which shouldn't be deleted when applying a skin. This will be the case for a control that does not have a default skin. 2. Some third party code may add some nodes (e.g. a lightweight popup or a "close" button) to your control. These should not be removed when switching skins either. Regards, Tomas On Wed, Jun 11, 2014 at 9:57 AM, Randahl Fink Isaksen wrote: > I have noticed that if I create a skin which adds a label like this > > public MySkin(MyControl control) { > super(control); > pane.getChildren().add(label); > getChildren().add(pane); > } > > the label is actually added twice in my application. I suspect this is because I am switching style sheets during startup, which means my createDefaultSkin method might be invoked twice. > > I found out, I can easily solve this by changing my code to using a getChildren().setAll(label) rather than getChildren().add(label), but I am surprised that JavaFX would not by itself clear the control?s children when applying a new skin. > > Has anyone else experienced this? > > Thanks > > Randahl From rafi.tayar at oracle.com Wed Jun 11 11:51:02 2014 From: rafi.tayar at oracle.com (Rafi Tayar) Date: Wed, 11 Jun 2014 04:51:02 -0700 (PDT) Subject: Review request : RT-34913 TextField in Ensemble 8 appears too narrow to fit characters with descenders Message-ID: <51ad0bc5-9965-453b-b828-ec2f10df2691@default> Lisa, Please review the proposed fix for https://javafx-jira.kenai.com/browse/RT-34913 Details in the jira. Thanks, Rafi From rafi.tayar at oracle.com Wed Jun 11 13:05:32 2014 From: rafi.tayar at oracle.com (Rafi Tayar) Date: Wed, 11 Jun 2014 06:05:32 -0700 (PDT) Subject: Review Request : RT-34933 Ensemble: some samples have too small edit boxes Message-ID: Lisa, Please review the proposed fix for https://javafx-jira.kenai.com/browse/RT-34933 Details in the jira. Thanks, Rafi From david.grieve at oracle.com Wed Jun 11 13:46:02 2014 From: david.grieve at oracle.com (David Grieve) Date: Wed, 11 Jun 2014 09:46:02 -0400 Subject: [8u] Review Request: RT-37420: [TableView] TableView custom TableCell with ComboBoxes not editable Message-ID: <53985D9A.1070200@oracle.com> Jonathan, Please review the diff added as a comment to https://javafx-jira.kenai.com/browse/RT-37420. From hang.vo at oracle.com Wed Jun 11 13:47:54 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Wed, 11 Jun 2014 13:47:54 +0000 Subject: hg: openjfx/8u-dev/rt: Fix for RT-37369 [Monocle] When a child window is dismissed, the main window does not repaint right away Message-ID: <201406111348.s5BDm543025665@aojmv0008> Changeset: 4d490de09504 Author: Lisa.Selle at oracle.com Date: 2014-06-11 09:43 -0400 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/4d490de09504 Fix for RT-37369 [Monocle] When a child window is dismissed, the main window does not repaint right away Reviewed by dhill, dblaukopf Tested with HelloSanity ! modules/graphics/src/main/java/com/sun/glass/ui/monocle/MonocleWindow.java ! modules/graphics/src/main/java/com/sun/glass/ui/monocle/MonocleWindowManager.java From danno.ferrin at oracle.com Wed Jun 11 13:50:33 2014 From: danno.ferrin at oracle.com (Danno Ferrin) Date: Wed, 11 Jun 2014 07:50:33 -0600 Subject: Bundler question for Mac OS X... In-Reply-To: <53982C84.90307@oracle.com> References: <1402458874.63325.YahooMailNeo@web121806.mail.ne1.yahoo.com> <53982C84.90307@oracle.com> Message-ID: <07094FAA-5B88-4BE7-8055-110C03953A8E@oracle.com> This will be upgraded in the 8u20 release. For pre8u20 in the ant script the menu bar name is the name attribute from the application element. (This will still work in 8u20, if it doesn?t it is a bug to me I will fix). The down side is that some of those value have double use when using multiple platforms. For example the id attribute is also the UUID for MSI bundles. The name is also the name of the launcher file too, and pre 8u20 they are tied together (unless you do a drop in resource to manually fix the identifier). Starting with 8u20 you can specify bundle params, and I have done my best to eliminate the overlapping values, or at least allow you to set specific values that will fall back to overlapping values. Since the windows bundlers don?t understand those arguments they will ignore them. And the bundle name can be different from the launcher name now as well. On Jun 11, 2014, at 4:16 AM, Anthony Petrov wrote: > Hi Tony, > > I don't know the exact syntax for the FX deploy script (is it the -title or -name option for the javafxpackager [1] ?), however [2] suggests that the CFBundleName key in Info.plist can be used to set the application name. I can confirm that Glass reads the value and assigns it to the application name. The Quit menu item then uses this name for its text label. > > Does setting the CFBundleName work for you? > > [1] http://docs.oracle.com/javafx/2/deployment/javafxpackager.htm > > [2] https://javafx-jira.kenai.com/browse/RT-18563 > > -- > best regards, > Anthony > > On 6/11/2014 7:54 AM, Tony Anecito wrote: >> Hi All, >> >> I noticed the menu bar for OS X is probably using my class name that has the static main in it. How do I override that in the JavFX Deploy ant script? The About, Hide and Quit sub-menu items are using a different name than what I want. The main menu item is correct. >> >> Thanks! >> Tony >> From martin.sladecek at oracle.com Wed Jun 11 13:59:16 2014 From: martin.sladecek at oracle.com (Martin Sladecek) Date: Wed, 11 Jun 2014 15:59:16 +0200 Subject: Formatted text field API (RT-14000, RT-30881) In-Reply-To: References: <53981862.3030008@oracle.com> Message-ID: <539860B4.3080102@oracle.com> Binding the property would mean the text field can be edited (the field is still editable), but it's content cannot be committed (by either pressing ENTER or focusing out of the field), so it's content is practically irrelevant. If you think there's a reasonable use case for this, there should be no problem with having writable value. -Martin On 11.6.2014 15:53, Scott Palmer wrote: > In FormattedTextField why is the value property returned as a > read-only property? > This control should allow bi-directional bindings to the value property. > > Scott > > On Wed, Jun 11, 2014 at 4:50 AM, Martin Sladecek > wrote: >> Hello, >> I would like to start some discussion about formatted text field API. The >> related JIRA issues are RT-14000 (formatted text field) and RT-30881 >> (content filter). >> >> The RT-30881 defines a content filter for all text input controls (in >> TextInputControl class), like TextField and TextArea. This was originally >> implemented by Richard Bair and briefly discussed here: >> http://mail.openjdk.java.net/pipermail/openjfx-dev/2012-December/004687.html. >> I've tried to build formatted text field on top of that (and made some >> changes to the API) since content filtering is something most formatted text >> fields will use. >> >> First, the TextInputControl additions: >> >> * contentFilter property of type ObjectProperty >> >> So let's look at the content filter and content change (both nested classes >> of TextInputControl): >> >> /** >> * Content Filter specifies the filter to be used with {@link >> TextInputControl#contentFilterProperty()}. >> * It allow user to intercept and modify any change done to the text >> content. >> * To avoid content that's not valid for the filter, it's possible to >> assign a default value supplier for the filter. >> *

>> * The filter itself is an {@code UnaryOperator} that accepts {@link >> javafx.scene.control.TextInputControl.ContentChange} object. >> * It should return a {@link >> javafx.scene.control.TextInputControl.ContentChange} object that contains >> the actual (filtered) >> * change. Returning null rejects the change. >> *

>> * If default value supplier is provided, it is used when the {@code >> ContentFilter} is assigned to a {@code TextInputControl} >> * and it's current text is invalid. It is expected that the provided >> default value is accepted by the filtering operator. >> */ >> public static class ContentFilter { >> >> /** >> * Creates a new filter with the providing filtering operator. >> * @param filter the filtering operator >> * >> * @throws java.lang.NullPointerException if filter is null >> */ >> public ContentFilter(UnaryOperator filter) {} >> >> /** >> * Creates a new filter with the providing filtering operator and >> default value supplier. >> * @param filter the filtering operator >> * @param defaultValue the default value or null >> * >> * @throws java.lang.NullPointerException if filter is null >> */ >> public ContentFilter(UnaryOperator filter, >> Supplier defaultValue) {} >> >> /** >> * The filtering operator of this filter. >> * @return the operator >> */ >> public UnaryOperator getFilter() {} >> >> /** >> * The default value provider of this filter >> * @return the default value provider or null >> */ >> public Supplier getDefaultValue() {} >> >> /** >> * Chains this filter with a filtering operator. The other filtering >> operator is used only if this >> * filter's operator rejects the operation. The default value of the >> new {@code ContentFilter} is the same >> * as of this filter. >> * @param other the filtering operator to chain >> * @return a new ContentFilter as described above >> */ >> public ContentFilter orApply(UnaryOperator other) {} >> >> /** >> * Chains this filter with a filtering operator of another {@code >> ContentFilter}. The other filtering operator is used only if this >> * filter's operator rejects the operation. The default value of the >> new {@code ContentFilter} is the same >> * as of this filter. >> * @param other the filter to chain >> * @return a new ContentFilter as described above >> */ >> public ContentFilter orApply(ContentFilter other) {} >> >> } >> >> /** >> * Contains the state representing a change in the content for a >> * TextInputControl. This object is passed to any registered >> * {@code contentFilter} on the TextInputControl whenever the text >> * for the TextInputControl is modified. >> *

>> * This class contains state and convenience methods for determining >> what >> * change occurred on the control. It also has a reference to the >> * TextInputControl itself so that the developer may query any other >> * state on the control. Note that you should never modify the state >> * of the control directly from within the contentFilter handler. >> *

>> *

>> * The ContentChange is mutable, but not observable. It should be >> used >> * only for the life of a single change. It is intended that the >> * ContentChange will be modified from within the contentFilter. >> *

>> */ >> public static final class ContentChange implements Cloneable{ >> >> /** >> * Gets the control associated with this change. >> * @return The control associated with this change. This will never >> be null. >> */ >> public final TextInputControl getControl() {} >> >> /** >> * Gets the start index into the {@link >> javafx.scene.control.TextInputControl#getText()} >> * for the modification. This will always be a value > 0 and >> * <= {@link javafx.scene.control.TextInputControl#getLength()}. >> * >> * @return The start index >> */ >> public final int getStart() {} >> >> /** >> * Sets the start index for the range to be modified. This value >> must >> * always be a value > 0 and <= {@link >> javafx.scene.control.TextInputControl#getLength()} >> *

>> * Note that setting start before the current end will also >> change end to the same value. >> * >> * @param value the new start index >> */ >> public final void setStart(int value) {} >> >> /** >> * Gets the end index into the {@link >> javafx.scene.control.TextInputControl#getText()} >> * for the modification. This will always be a value > {@link >> #getStart()} and >> * <= {@link javafx.scene.control.TextInputControl#getLength()}. >> * >> * @return The end index >> */ >> public final int getEnd() {} >> >> /** >> * Sets the end index for the range to be modified. This value must >> * always be a value > {@link #getStart()} and <= {@link >> javafx.scene.control.TextInputControl#getLength()}. >> * Note that there is an order dependency between modifying the >> start >> * and end values. They must always be modified in order such that >> they >> * do not violate their constraints. >> * >> * @param value The new end index >> */ >> public final void setEnd(int value) {} >> >> /** >> * A convenience method returning an IndexRange representing the >> * start and end values. >> * >> * @return a non-null IndexRange representing the range from start >> to end. >> */ >> public final IndexRange getRange() {} >> >> /** >> * A convenience method assigning both the start and end values >> * together, in such a way as to ensure they are valid with respect >> to >> * each other. One way to use this method is to set the range like >> this: >> * {@code >> * change.setRange(IndexRange.normalize(newStart, newEnd)); >> * } >> * >> * @param value The new range. Cannot be null. >> */ >> public final void setRange(IndexRange value) {} >> >> /** >> * A convenience method assigning both the start and end values >> * together, in such a way as to ensure they are valid with respect >> to >> * each other. The start must be less than or equal to the end. >> * >> * @param start The new start value. Must be a valid start value >> * @param end The new end value. Must be a valid end value >> */ >> public final void setRange(int start, int end) {} >> >> /** >> * Gets the new anchor. This value will always be > 0 and >> * <= {@link #getProposedControlText()}{@code}.getLength()} >> * >> * @return The new anchor position >> */ >> public final int getNewAnchor() {} >> >> /** >> * Sets the new anchor. This value must be > 0 and >> * <= {@link #getProposedControlText()}{@code}.getLength()}. Note >> that there >> * is an order dependence here, in that the anchor should be >> * specified after the new text has been specified. >> * >> * @param value The new anchor position >> */ >> public final void setNewAnchor(int value) {} >> >> /** >> * Gets the new caret position. This value will always be > 0 and >> * <= {@link #getProposedControlText()}{@code}.getLength()} >> * >> * @return The new caret position >> */ >> public final int getNewCaretPosition() {} >> >> /** >> * Sets the new caret position. This value must be > 0 and >> * <= {@link #getProposedControlText()}{@code}.getLength()}. Note >> that there >> * is an order dependence here, in that the caret position should be >> * specified after the new text has been specified. >> * >> * @param value The new caret position >> */ >> public final void setNewCaretPosition(int value) {} >> >> /** >> * Gets the text used in this change. For example, this may be new >> * text being added, or text which is replacing all the control's >> text >> * within the range of start and end. Typically it is an empty >> string >> * only for cases where the range is being deleted. >> * >> * @return The text involved in this change. This will never be >> null. >> */ >> public final String getText() {} >> >> /** >> * Sets the text to use in this change. This is used to replace the >> * range from start to end, if such a range exists, or to insert >> text >> * at the position represented by start == end. >> * >> * @param value The text. This cannot be null. >> */ >> public final void setText(String value) {} >> >> /** >> * Gets the complete new text which will be used on the control >> after >> * this change. Note that some controls (such as TextField) may do >> further >> * filtering after the change is made (such as stripping out >> newlines) >> * such that you cannot assume that the newText will be exactly the >> same >> * as what is finally set as the content on the control, however it >> is >> * correct to assume that this is the case for the purpose of >> computing >> * the new caret position and new anchor position (as those values >> supplied >> * will be modified as necessary after the control has stripped any >> * additional characters that the control might strip). >> * >> * @return The controls proposed new text at the time of this call, >> according >> * to the state set for start, end, and text properties on >> this ContentChange object. >> */ >> public final String getProposedControlText() {} >> >> /** >> * Gets whether this change was in response to text being added. >> Note that >> * after the ContentChange object is modified by the contentFilter >> (by one >> * of the setters) the return value of this method is not altered. >> It answers >> * as to whether this change was fired as a result of text being >> added, >> * not whether text will end up being added in the end. >> * >> *

>> * Text may have been added either cause it was {@link >> #isInserted()}, >> * {@link #isAppended()}, or {@link #isPrepended()}. >> *

>> * >> * @return true if text was being added >> */ >> public final boolean isAdded() {} >> >> /** >> * Gets whether this change was in response to text being deleted. >> Note that >> * after the ContentChange object is modified by the contentFilter >> (by one >> * of the setters) the return value of this method is not altered. >> It answers >> * as to whether this change was fired as a result of text being >> deleted, >> * not whether text will end up being deleted in the end. >> * >> * @return true if text was being deleted >> */ >> public final boolean isDeleted() {} >> >> /** >> * Gets whether this change was in response to text being added, and >> in >> * particular, inserted into the midst of the control text. If this >> is >> * true, then {@link #isAdded()} will return true. >> * >> * @return true if text was being inserted >> */ >> public final boolean isInserted() {} >> >> /** >> * Gets whether this change was in response to text being added, and >> in >> * particular, appended to the end of the control text. If this is >> * true, then {@link #isAdded()} will return true. >> * >> * @return true if text was being appended >> */ >> public final boolean isAppended() {} >> >> /** >> * Gets whether this change was in response to text being added, and >> in >> * particular, prepended at the start of the control text. If this >> is >> * true, then {@link #isAdded()} will return true. >> * >> * @return true if text was being prepended >> */ >> public final boolean isPrepended() {} >> >> /** >> * Gets whether this change was in response to text being replaced. >> Note that >> * after the ContentChange object is modified by the contentFilter >> (by one >> * of the setters) the return value of this method is not altered. >> It answers >> * as to whether this change was fired as a result of text being >> replaced, >> * not whether text will end up being replaced in the end. >> * >> * @return true if text was being replaced >> */ >> public final boolean isReplaced() {} >> >> @Override >> public ContentChange clone() {} >> } >> >> >> >> The new FormattedTextField class relies on the content filtering and adds a >> concept of values convertible to/from a text: >> >> ** >> * FormattedTextField is a special kind of TextField that handles conversion >> between a value of type {@code T} and >> * a text of this TextField. >> *

>> * There are two types of converters: >> *

    >> *
  • {@link #valueConverterProperty()} represents the default >> converter between the text and values
  • >> *
  • {@link #editConverterProperty()} is a special converter that >> takes precedence when the textfield is being edited. >> * This allows to have a edit-friendly format and a nice display format >> for the value
  • >> *
>> * >> *

>> * When editing the text field, the value is not updated until either {@code >> ENTER} key is pressed or focus is lost. >> * If the conversion fail, the last known valid value is used instead. >> * >> * @param the value type >> */ >> public final class FormattedTextField extends TextField{ >> >> /** >> * Creates a formatted text field with the specified converter and a >> null value. >> * @param valueConverter the value converter >> */ >> public FormattedTextField(StringConverter valueConverter) {} >> >> /** >> * Creates a formatted text field with the specified converter and a >> value >> * @param valueConverter the value converter >> * @param value the initial value >> */ >> public FormattedTextField(StringConverter valueConverter, T value) {} >> >> /** >> * This represents the current value of the formatted text field. If a >> {@link #valueConverterProperty()} is provided, >> * and the text field is not being edited, the value is a representation >> of the text in the text field. >> */ >> public final ReadOnlyObjectProperty valueProperty() {} >> public final void setValue(T value) {} >> public final T getValue() {} >> >> /** >> * The default converter between the values and text. >> * Note that changing the converter might lead to a change of value, but >> only if the text can be converted by the new >> * converter. Otherwise, the current value is converted to a text, which >> is set to the field. >> * @see #editConverterProperty() >> */ >> public final ObjectProperty> valueConverterProperty() >> {} >> public final void setValueConverter(StringConverter converter) {} >> public final StringConverter getValueConverter() {} >> >> /** >> * Converter between values and text when the field is being edited. >> * @see #valueConverterProperty() >> */ >> public final ObjectProperty> editConverterProperty() >> {} >> public final void setEditConverter(StringConverter converter) {} >> public final StringConverter getEditConverter() {} >> >> } >> >> You can find the whole patch here: >> https://javafx-jira.kenai.com/secure/attachment/44678/rt-30881_14000_proposal.patch >> There are some examples for content filtering in RT-30881. I'll attach some >> formatted text field samples soon. >> >> Thanks, >> -Martin >> From adanecito at yahoo.com Wed Jun 11 14:03:31 2014 From: adanecito at yahoo.com (Tony Anecito) Date: Wed, 11 Jun 2014 07:03:31 -0700 (PDT) Subject: Bundler question for Mac OS X... In-Reply-To: <07094FAA-5B88-4BE7-8055-110C03953A8E@oracle.com> References: <1402458874.63325.YahooMailNeo@web121806.mail.ne1.yahoo.com> <53982C84.90307@oracle.com> <07094FAA-5B88-4BE7-8055-110C03953A8E@oracle.com> Message-ID: <1402495411.87088.YahooMailNeo@web121801.mail.ne1.yahoo.com> ?Hi, ? The name attribute affects the main menu item but not the sub-menu items. Not sure if you understood what I meant by sub-menu items. It would be better if the sub-menu items did not use the starting/launcher class name. I even found examples googleing where java main.startupclassname was shown for sub-menu items. ? Apple iTunes store will reject java apps becuase of this issue. They want the app name to match everywhere on the app including the sub-menu item names. ? Thanks, -Tony On Wednesday, June 11, 2014 7:50 AM, Danno Ferrin wrote: This will be upgraded in the 8u20 release. For pre8u20 in the ant script the menu bar name is the name attribute from the application element. ? ? ? (This will still work in 8u20, if it doesn?t it is a bug to me I will fix). The down side is that some of those value have double use when using multiple platforms.? For example the id attribute is also the UUID for MSI bundles.? The name is also the name of the launcher file too, and pre 8u20 they are tied together (unless you do a drop in resource to manually fix the identifier). Starting with 8u20 you can specify bundle params, and I have done my best to eliminate the overlapping values, or at least allow you to set specific values that will fall back to overlapping values. ? ? ? ? Since the windows bundlers don?t understand those arguments they will ignore them.? And the bundle name can be different from the launcher name now as well. On Jun 11, 2014, at 4:16 AM, Anthony Petrov wrote: > Hi Tony, > > I don't know the exact syntax for the FX deploy script (is it the -title or -name option for the javafxpackager [1] ?), however [2] suggests that the CFBundleName key in Info.plist can be used to set the application name. I can confirm that Glass reads the value and assigns it to the application name. The Quit menu item then uses this name for its text label. > > Does setting the CFBundleName work for you? > > [1] http://docs.oracle.com/javafx/2/deployment/javafxpackager.htm > > [2] https://javafx-jira.kenai.com/browse/RT-18563 > > -- > best regards, > Anthony > > On 6/11/2014 7:54 AM, Tony Anecito wrote: >> Hi All, >> >> I noticed the menu bar for OS X is probably using my class name that has the static main in it. How do I override that in the JavFX Deploy ant script? The About, Hide and Quit sub-menu items are using a different name than what I want. The main menu item is correct. >> >> Thanks! >> Tony >> From adanecito at yahoo.com Wed Jun 11 14:05:52 2014 From: adanecito at yahoo.com (Tony Anecito) Date: Wed, 11 Jun 2014 07:05:52 -0700 (PDT) Subject: Bundler question for Mac OS X... In-Reply-To: <1402495411.87088.YahooMailNeo@web121801.mail.ne1.yahoo.com> References: <1402458874.63325.YahooMailNeo@web121806.mail.ne1.yahoo.com> <53982C84.90307@oracle.com> <07094FAA-5B88-4BE7-8055-110C03953A8E@oracle.com> <1402495411.87088.YahooMailNeo@web121801.mail.ne1.yahoo.com> Message-ID: <1402495552.60950.YahooMailNeo@web121803.mail.ne1.yahoo.com> I will try your suggestion to see if the sub-menu items name changes with?what you sugggested. ? Thanks, -Tony? On , Tony Anecito wrote: ?Hi, The name attribute affects the main menu item but not the sub-menu items. Not sure if you understood what I meant by sub-menu items. It would be better if the sub-menu items did not use the starting/launcher class name. I even found examples googleing where java main.startupclassname was shown for sub-menu items. Apple iTunes store will reject java apps becuase of this issue. They want the app name to match everywhere on the app including the sub-menu item names. Thanks, -Tony On Wednesday, June 11, 2014 7:50 AM, Danno Ferrin wrote: This will be upgraded in the 8u20 release. For pre8u20 in the ant script the menu bar name is the name attribute from the application element. ? ? ? (This will still work in 8u20, if it doesn?t it is a bug to me I will fix). The down side is that some of those value have double use when using multiple platforms.? For example the id attribute is also the UUID for MSI bundles.? The name is also the name of the launcher file too, and pre 8u20 they are tied together (unless you do a drop in resource to manually fix the identifier). Starting with 8u20 you can specify bundle params, and I have done my best to eliminate the overlapping values, or at least allow you to set specific values that will fall back to overlapping values. ? ? ? ? Since the windows bundlers don?t understand those arguments they will ignore them.? And the bundle name can be different from the launcher name now as well. On Jun 11, 2014, at 4:16 AM, Anthony Petrov wrote: > Hi Tony, > > I don't know the exact syntax for the FX deploy script (is it the -title or -name option for the javafxpackager [1] ?), however [2] suggests that the CFBundleName key in Info.plist can be used to set the application name. I can confirm that Glass reads the value and assigns it to the application name. The Quit menu item then uses this name for its text label. > > Does setting the CFBundleName work for you? > > [1] http://docs.oracle.com/javafx/2/deployment/javafxpackager.htm > > [2] https://javafx-jira.kenai.com/browse/RT-18563 > > -- > best regards, > Anthony > > On 6/11/2014 7:54 AM, Tony Anecito wrote: >> Hi All, >> >> I noticed the menu bar for OS X is probably using my class name that has the static main in it. How do I override that in the JavFX Deploy ant script? The About, Hide and Quit sub-menu items are using a different name than what I want. The main menu item is correct. >> >> Thanks! >> Tony >> From martin.sladecek at oracle.com Wed Jun 11 14:08:53 2014 From: martin.sladecek at oracle.com (Martin Sladecek) Date: Wed, 11 Jun 2014 16:08:53 +0200 Subject: Formatted text field API (RT-14000, RT-30881) In-Reply-To: References: <53981862.3030008@oracle.com> <539860B4.3080102@oracle.com> Message-ID: <539862F5.30706@oracle.com> Although I'm not sure the second one can be considered a use-case, I agree that somebody might want uneditable field with some format (and it's up to the developer to make it uneditable), so I'll make the value rw. -Martin On 11.6.2014 16:03, Scott Palmer wrote: > There are two cases for this: > - a regular binding could be used with a read-only FormattedTextField > for cases where you want the text representation shown in the UI and > have it selectable and readable for copy/paste. > - a bi-directional binding should "just work" > > Scott > > On Wed, Jun 11, 2014 at 9:59 AM, Martin Sladecek > wrote: >> Binding the property would mean the text field can be edited (the field is >> still editable), but it's content cannot be committed (by either pressing >> ENTER or focusing out of the field), so it's content is practically >> irrelevant. >> If you think there's a reasonable use case for this, there should be no >> problem with having writable value. >> >> -Martin >> >> >> On 11.6.2014 15:53, Scott Palmer wrote: >>> In FormattedTextField why is the value property returned as a >>> read-only property? >>> This control should allow bi-directional bindings to the value property. >>> >>> Scott >>> >>> On Wed, Jun 11, 2014 at 4:50 AM, Martin Sladecek >>> wrote: >>>> Hello, >>>> I would like to start some discussion about formatted text field API. The >>>> related JIRA issues are RT-14000 (formatted text field) and RT-30881 >>>> (content filter). >>>> >>>> The RT-30881 defines a content filter for all text input controls (in >>>> TextInputControl class), like TextField and TextArea. This was originally >>>> implemented by Richard Bair and briefly discussed here: >>>> >>>> http://mail.openjdk.java.net/pipermail/openjfx-dev/2012-December/004687.html. >>>> I've tried to build formatted text field on top of that (and made some >>>> changes to the API) since content filtering is something most formatted >>>> text >>>> fields will use. >>>> >>>> First, the TextInputControl additions: >>>> >>>> * contentFilter property of type ObjectProperty >>>> >>>> So let's look at the content filter and content change (both nested >>>> classes >>>> of TextInputControl): >>>> >>>> /** >>>> * Content Filter specifies the filter to be used with {@link >>>> TextInputControl#contentFilterProperty()}. >>>> * It allow user to intercept and modify any change done to the text >>>> content. >>>> * To avoid content that's not valid for the filter, it's possible >>>> to >>>> assign a default value supplier for the filter. >>>> *

>>>> * The filter itself is an {@code UnaryOperator} that accepts {@link >>>> javafx.scene.control.TextInputControl.ContentChange} object. >>>> * It should return a {@link >>>> javafx.scene.control.TextInputControl.ContentChange} object that contains >>>> the actual (filtered) >>>> * change. Returning null rejects the change. >>>> *

>>>> * If default value supplier is provided, it is used when the {@code >>>> ContentFilter} is assigned to a {@code TextInputControl} >>>> * and it's current text is invalid. It is expected that the >>>> provided >>>> default value is accepted by the filtering operator. >>>> */ >>>> public static class ContentFilter { >>>> >>>> /** >>>> * Creates a new filter with the providing filtering operator. >>>> * @param filter the filtering operator >>>> * >>>> * @throws java.lang.NullPointerException if filter is null >>>> */ >>>> public ContentFilter(UnaryOperator filter) {} >>>> >>>> /** >>>> * Creates a new filter with the providing filtering operator >>>> and >>>> default value supplier. >>>> * @param filter the filtering operator >>>> * @param defaultValue the default value or null >>>> * >>>> * @throws java.lang.NullPointerException if filter is null >>>> */ >>>> public ContentFilter(UnaryOperator filter, >>>> Supplier defaultValue) {} >>>> >>>> /** >>>> * The filtering operator of this filter. >>>> * @return the operator >>>> */ >>>> public UnaryOperator getFilter() {} >>>> >>>> /** >>>> * The default value provider of this filter >>>> * @return the default value provider or null >>>> */ >>>> public Supplier getDefaultValue() {} >>>> >>>> /** >>>> * Chains this filter with a filtering operator. The other >>>> filtering >>>> operator is used only if this >>>> * filter's operator rejects the operation. The default value of >>>> the >>>> new {@code ContentFilter} is the same >>>> * as of this filter. >>>> * @param other the filtering operator to chain >>>> * @return a new ContentFilter as described above >>>> */ >>>> public ContentFilter orApply(UnaryOperator other) >>>> {} >>>> >>>> /** >>>> * Chains this filter with a filtering operator of another >>>> {@code >>>> ContentFilter}. The other filtering operator is used only if this >>>> * filter's operator rejects the operation. The default value of >>>> the >>>> new {@code ContentFilter} is the same >>>> * as of this filter. >>>> * @param other the filter to chain >>>> * @return a new ContentFilter as described above >>>> */ >>>> public ContentFilter orApply(ContentFilter other) {} >>>> >>>> } >>>> >>>> /** >>>> * Contains the state representing a change in the content for a >>>> * TextInputControl. This object is passed to any registered >>>> * {@code contentFilter} on the TextInputControl whenever the text >>>> * for the TextInputControl is modified. >>>> *

>>>> * This class contains state and convenience methods for >>>> determining >>>> what >>>> * change occurred on the control. It also has a reference to >>>> the >>>> * TextInputControl itself so that the developer may query any >>>> other >>>> * state on the control. Note that you should never modify the >>>> state >>>> * of the control directly from within the contentFilter >>>> handler. >>>> *

>>>> *

>>>> * The ContentChange is mutable, but not observable. It should >>>> be >>>> used >>>> * only for the life of a single change. It is intended that the >>>> * ContentChange will be modified from within the contentFilter. >>>> *

>>>> */ >>>> public static final class ContentChange implements Cloneable{ >>>> >>>> /** >>>> * Gets the control associated with this change. >>>> * @return The control associated with this change. This will >>>> never >>>> be null. >>>> */ >>>> public final TextInputControl getControl() {} >>>> >>>> /** >>>> * Gets the start index into the {@link >>>> javafx.scene.control.TextInputControl#getText()} >>>> * for the modification. This will always be a value > 0 and >>>> * <= {@link >>>> javafx.scene.control.TextInputControl#getLength()}. >>>> * >>>> * @return The start index >>>> */ >>>> public final int getStart() {} >>>> >>>> /** >>>> * Sets the start index for the range to be modified. This value >>>> must >>>> * always be a value > 0 and <= {@link >>>> javafx.scene.control.TextInputControl#getLength()} >>>> *

>>>> * Note that setting start before the current end will >>>> also >>>> change end to the same value. >>>> * >>>> * @param value the new start index >>>> */ >>>> public final void setStart(int value) {} >>>> >>>> /** >>>> * Gets the end index into the {@link >>>> javafx.scene.control.TextInputControl#getText()} >>>> * for the modification. This will always be a value > {@link >>>> #getStart()} and >>>> * <= {@link >>>> javafx.scene.control.TextInputControl#getLength()}. >>>> * >>>> * @return The end index >>>> */ >>>> public final int getEnd() {} >>>> >>>> /** >>>> * Sets the end index for the range to be modified. This value >>>> must >>>> * always be a value > {@link #getStart()} and <= {@link >>>> javafx.scene.control.TextInputControl#getLength()}. >>>> * Note that there is an order dependency between modifying the >>>> start >>>> * and end values. They must always be modified in order such >>>> that >>>> they >>>> * do not violate their constraints. >>>> * >>>> * @param value The new end index >>>> */ >>>> public final void setEnd(int value) {} >>>> >>>> /** >>>> * A convenience method returning an IndexRange representing the >>>> * start and end values. >>>> * >>>> * @return a non-null IndexRange representing the range from >>>> start >>>> to end. >>>> */ >>>> public final IndexRange getRange() {} >>>> >>>> /** >>>> * A convenience method assigning both the start and end values >>>> * together, in such a way as to ensure they are valid with >>>> respect >>>> to >>>> * each other. One way to use this method is to set the range >>>> like >>>> this: >>>> * {@code >>>> * change.setRange(IndexRange.normalize(newStart, newEnd)); >>>> * } >>>> * >>>> * @param value The new range. Cannot be null. >>>> */ >>>> public final void setRange(IndexRange value) {} >>>> >>>> /** >>>> * A convenience method assigning both the start and end values >>>> * together, in such a way as to ensure they are valid with >>>> respect >>>> to >>>> * each other. The start must be less than or equal to the end. >>>> * >>>> * @param start The new start value. Must be a valid start value >>>> * @param end The new end value. Must be a valid end value >>>> */ >>>> public final void setRange(int start, int end) {} >>>> >>>> /** >>>> * Gets the new anchor. This value will always be > 0 and >>>> * <= {@link #getProposedControlText()}{@code}.getLength()} >>>> * >>>> * @return The new anchor position >>>> */ >>>> public final int getNewAnchor() {} >>>> >>>> /** >>>> * Sets the new anchor. This value must be > 0 and >>>> * <= {@link #getProposedControlText()}{@code}.getLength()}. >>>> Note >>>> that there >>>> * is an order dependence here, in that the anchor should be >>>> * specified after the new text has been specified. >>>> * >>>> * @param value The new anchor position >>>> */ >>>> public final void setNewAnchor(int value) {} >>>> >>>> /** >>>> * Gets the new caret position. This value will always be > 0 >>>> and >>>> * <= {@link #getProposedControlText()}{@code}.getLength()} >>>> * >>>> * @return The new caret position >>>> */ >>>> public final int getNewCaretPosition() {} >>>> >>>> /** >>>> * Sets the new caret position. This value must be > 0 and >>>> * <= {@link #getProposedControlText()}{@code}.getLength()}. >>>> Note >>>> that there >>>> * is an order dependence here, in that the caret position >>>> should be >>>> * specified after the new text has been specified. >>>> * >>>> * @param value The new caret position >>>> */ >>>> public final void setNewCaretPosition(int value) {} >>>> >>>> /** >>>> * Gets the text used in this change. For example, this may be >>>> new >>>> * text being added, or text which is replacing all the >>>> control's >>>> text >>>> * within the range of start and end. Typically it is an empty >>>> string >>>> * only for cases where the range is being deleted. >>>> * >>>> * @return The text involved in this change. This will never be >>>> null. >>>> */ >>>> public final String getText() {} >>>> >>>> /** >>>> * Sets the text to use in this change. This is used to replace >>>> the >>>> * range from start to end, if such a range exists, or to insert >>>> text >>>> * at the position represented by start == end. >>>> * >>>> * @param value The text. This cannot be null. >>>> */ >>>> public final void setText(String value) {} >>>> >>>> /** >>>> * Gets the complete new text which will be used on the control >>>> after >>>> * this change. Note that some controls (such as TextField) may >>>> do >>>> further >>>> * filtering after the change is made (such as stripping out >>>> newlines) >>>> * such that you cannot assume that the newText will be exactly >>>> the >>>> same >>>> * as what is finally set as the content on the control, however >>>> it >>>> is >>>> * correct to assume that this is the case for the purpose of >>>> computing >>>> * the new caret position and new anchor position (as those >>>> values >>>> supplied >>>> * will be modified as necessary after the control has stripped >>>> any >>>> * additional characters that the control might strip). >>>> * >>>> * @return The controls proposed new text at the time of this >>>> call, >>>> according >>>> * to the state set for start, end, and text properties >>>> on >>>> this ContentChange object. >>>> */ >>>> public final String getProposedControlText() {} >>>> >>>> /** >>>> * Gets whether this change was in response to text being added. >>>> Note that >>>> * after the ContentChange object is modified by the >>>> contentFilter >>>> (by one >>>> * of the setters) the return value of this method is not >>>> altered. >>>> It answers >>>> * as to whether this change was fired as a result of text being >>>> added, >>>> * not whether text will end up being added in the end. >>>> * >>>> *

>>>> * Text may have been added either cause it was {@link >>>> #isInserted()}, >>>> * {@link #isAppended()}, or {@link #isPrepended()}. >>>> *

>>>> * >>>> * @return true if text was being added >>>> */ >>>> public final boolean isAdded() {} >>>> >>>> /** >>>> * Gets whether this change was in response to text being >>>> deleted. >>>> Note that >>>> * after the ContentChange object is modified by the >>>> contentFilter >>>> (by one >>>> * of the setters) the return value of this method is not >>>> altered. >>>> It answers >>>> * as to whether this change was fired as a result of text being >>>> deleted, >>>> * not whether text will end up being deleted in the end. >>>> * >>>> * @return true if text was being deleted >>>> */ >>>> public final boolean isDeleted() {} >>>> >>>> /** >>>> * Gets whether this change was in response to text being added, >>>> and >>>> in >>>> * particular, inserted into the midst of the control text. If >>>> this >>>> is >>>> * true, then {@link #isAdded()} will return true. >>>> * >>>> * @return true if text was being inserted >>>> */ >>>> public final boolean isInserted() {} >>>> >>>> /** >>>> * Gets whether this change was in response to text being added, >>>> and >>>> in >>>> * particular, appended to the end of the control text. If this >>>> is >>>> * true, then {@link #isAdded()} will return true. >>>> * >>>> * @return true if text was being appended >>>> */ >>>> public final boolean isAppended() {} >>>> >>>> /** >>>> * Gets whether this change was in response to text being added, >>>> and >>>> in >>>> * particular, prepended at the start of the control text. If >>>> this >>>> is >>>> * true, then {@link #isAdded()} will return true. >>>> * >>>> * @return true if text was being prepended >>>> */ >>>> public final boolean isPrepended() {} >>>> >>>> /** >>>> * Gets whether this change was in response to text being >>>> replaced. >>>> Note that >>>> * after the ContentChange object is modified by the >>>> contentFilter >>>> (by one >>>> * of the setters) the return value of this method is not >>>> altered. >>>> It answers >>>> * as to whether this change was fired as a result of text being >>>> replaced, >>>> * not whether text will end up being replaced in the end. >>>> * >>>> * @return true if text was being replaced >>>> */ >>>> public final boolean isReplaced() {} >>>> >>>> @Override >>>> public ContentChange clone() {} >>>> } >>>> >>>> >>>> >>>> The new FormattedTextField class relies on the content filtering and adds >>>> a >>>> concept of values convertible to/from a text: >>>> >>>> ** >>>> * FormattedTextField is a special kind of TextField that handles >>>> conversion >>>> between a value of type {@code T} and >>>> * a text of this TextField. >>>> *

>>>> * There are two types of converters: >>>> *

    >>>> *
  • {@link #valueConverterProperty()} represents the default >>>> converter between the text and values
  • >>>> *
  • {@link #editConverterProperty()} is a special converter that >>>> takes precedence when the textfield is being edited. >>>> * This allows to have a edit-friendly format and a nice display >>>> format >>>> for the value
  • >>>> *
>>>> * >>>> *

>>>> * When editing the text field, the value is not updated until either >>>> {@code >>>> ENTER} key is pressed or focus is lost. >>>> * If the conversion fail, the last known valid value is used instead. >>>> * >>>> * @param the value type >>>> */ >>>> public final class FormattedTextField extends TextField{ >>>> >>>> /** >>>> * Creates a formatted text field with the specified converter and a >>>> null value. >>>> * @param valueConverter the value converter >>>> */ >>>> public FormattedTextField(StringConverter valueConverter) {} >>>> >>>> /** >>>> * Creates a formatted text field with the specified converter and a >>>> value >>>> * @param valueConverter the value converter >>>> * @param value the initial value >>>> */ >>>> public FormattedTextField(StringConverter valueConverter, T >>>> value) {} >>>> >>>> /** >>>> * This represents the current value of the formatted text field. If >>>> a >>>> {@link #valueConverterProperty()} is provided, >>>> * and the text field is not being edited, the value is a >>>> representation >>>> of the text in the text field. >>>> */ >>>> public final ReadOnlyObjectProperty valueProperty() {} >>>> public final void setValue(T value) {} >>>> public final T getValue() {} >>>> >>>> /** >>>> * The default converter between the values and text. >>>> * Note that changing the converter might lead to a change of value, >>>> but >>>> only if the text can be converted by the new >>>> * converter. Otherwise, the current value is converted to a text, >>>> which >>>> is set to the field. >>>> * @see #editConverterProperty() >>>> */ >>>> public final ObjectProperty> >>>> valueConverterProperty() >>>> {} >>>> public final void setValueConverter(StringConverter converter) {} >>>> public final StringConverter getValueConverter() {} >>>> >>>> /** >>>> * Converter between values and text when the field is being edited. >>>> * @see #valueConverterProperty() >>>> */ >>>> public final ObjectProperty> >>>> editConverterProperty() >>>> {} >>>> public final void setEditConverter(StringConverter converter) {} >>>> public final StringConverter getEditConverter() {} >>>> >>>> } >>>> >>>> You can find the whole patch here: >>>> >>>> https://javafx-jira.kenai.com/secure/attachment/44678/rt-30881_14000_proposal.patch >>>> There are some examples for content filtering in RT-30881. I'll attach >>>> some >>>> formatted text field samples soon. >>>> >>>> Thanks, >>>> -Martin >>>> From malcolm.lidierth at kcl.ac.uk Wed Jun 11 14:16:16 2014 From: malcolm.lidierth at kcl.ac.uk (Lidierth Malcolm) Date: Wed, 11 Jun 2014 15:16:16 +0100 Subject: SceneBuilder 2.0 import custom components from Ja In-Reply-To: References: Message-ID: <539864B0.6060309@kcl.ac.uk> Tom I thought it was proabbaly a bad idea too - so I have not used that approach. A better question might have been: should default getters/setters be treated the same way by Scene Builder as public getters/setters in a class when deciding whether to display editors for the property? M On 09/06/2014 20:45, openjfx-dev-request at openjdk.java.net wrote: > Send openjfx-dev mailing list submissions to > openjfx-dev at openjdk.java.net > > To subscribe or unsubscribe via the World Wide Web, visit > http://mail.openjdk.java.net/mailman/listinfo/openjfx-dev > or, via email, send a message with subject or body 'help' to > openjfx-dev-request at openjdk.java.net > > You can reach the person managing the list at > openjfx-dev-owner at openjdk.java.net > > When replying, please edit your Subject line so it is more specific > than "Re: Contents of openjfx-dev digest..." > > > Today's Topics: > > 1. Re: SceneBuilder 2.0 import custom components from Ja > (Tom Schindl) > 2. Invitation to connect on LinkedIn (Pawel Gronkiewicz) > 3. hg: openjfx/8u-dev/rt: 3 new changesets (hang.vo at oracle.com) > 4. Review request: RT-37474 [Monocle] Shift-backspace generates > an undefined key code (Daniel Blaukopf) > > > ---------------------------------------------------------------------- > > Message: 1 > Date: Mon, 09 Jun 2014 16:16:53 +0200 > From: Tom Schindl > To: openjfx-dev at openjdk.java.net > Subject: Re: SceneBuilder 2.0 import custom components from Ja > Message-ID: <5395C1D5.8060401 at bestsolution.at> > Content-Type: text/plain; charset=ISO-8859-1 > > Maybe it should but to me your use of default-methods in interfaces > looks very odd and you should maybe rethink! > > Tom > > On 09.06.14 11:06, Lidierth, Malcolm wrote: >> Scene Builder presently displays menu items where there is a public setter/getter for a class. >> Should it also display them when there is a default setter/getter implemented in an interface? >> >> That would allow control of the menus for concrete subclasses of a common abstract class where individual subclasses might implement a different set of related interfaces. >> >> >> >> __________________ >> From: openjfx-dev on behalf of openjfx-dev-request at openjdk.java.net >> Sent: Monday, June 09, 2014 9:08 AM >> To: openjfx-dev at openjdk.java.net >> Subject: openjfx-dev Digest, Vol 31, Issue 13 >> >> Send openjfx-dev mailing list submissions to >> openjfx-dev at openjdk.java.net >> >> To subscribe or unsubscribe via the World Wide Web, visit >> http://mail.openjdk.java.net/mailman/listinfo/openjfx-dev >> or, via email, send a message with subject or body 'help' to >> openjfx-dev-request at openjdk.java.net >> >> You can reach the person managing the list at >> openjfx-dev-owner at openjdk.java.net >> >> When replying, please edit your Subject line so it is more specific >> than "Re: Contents of openjfx-dev digest..." >> >> >> Today's Topics: >> >> 1. Re: Node lookup with TabPane (Jonathan Giles) >> 2. Re: SceneBuilder 2.0 import custom components from Jar >> (Jonathan Giles) >> 3. monitor mouse events but not capture them (Tom Eugelink) >> 4. Re: monitor mouse events but not capture them (Martin Sladecek) >> 5. Re: monitor mouse events but not capture them (Tom Eugelink) >> 6. Re: monitor mouse events but not capture them (Martin Sladecek) >> 7. Re: monitor mouse events but not capture them (Tom Eugelink) >> >> >> ---------------------------------------------------------------------- >> >> Message: 1 >> Date: Mon, 09 Jun 2014 08:44:15 +1200 >> From: Jonathan Giles >> To: openjfx-dev at openjdk.java.net >> Subject: Re: Node lookup with TabPane >> Message-ID: <5394CB1F.1090009 at oracle.com> >> Content-Type: text/plain; charset=ISO-8859-1; format=flowed >> >> Christian, >> >> There is no reason why this shouldn't work - please file a bug report in >> our Jira bug tracker and we can take a look at resolving this. >> >> Thanks, >> >> -- Jonathan >> >> On 8/06/2014 8:31 p.m., Christian wrote: >>> Hi, >>> I'm not sure if this is a bug because it looks like it is designed >>> this way. >>> I just tried to do a TabPane.lookupAll("#myId") which does not return >>> any result. >>> This is because the TabPane doesn't add the Tabs(which are no nodes) >>> to its children. >>> If it would add the content of each pane to the children the lookup >>> would work. >>> My solution right now is to scan the scenegraph myself. >>> It is just not that easy to determine when to use lookupAll and when >>> to manually scan the scenegraph. >>> Didn't yet check it but I think the same might apply to containers >>> like Accordion. >>> Would be nice if somebody could give me some clarification. >>> Thanks, >>> Christian >>> >>> >>> Unit Test: >>> public class TabTest { >>> @Test >>> public void testLookup() throws Exception { >>> TabPane tabPane = new TabPane(); >>> Tab tab1 = new Tab("tab1"); >>> tabPane.getTabs().add(tab1); >>> >>> StackPane content = new StackPane(); >>> TextField nodeWithId = new TextField(); >>> nodeWithId.setId("test"); >>> content.getChildren().add(nodeWithId); >>> tab1.setContent(content); >>> >>> assertSame(nodeWithId, content.lookup("#test")); >>> Set idNodes = tabPane.lookupAll("#test"); >>> assertEquals(1,idNodes.size()); >>> assertSame(nodeWithId, tabPane.lookup("#test")); >>> } >>> } >> >> >> ------------------------------ >> >> Message: 2 >> Date: Mon, 09 Jun 2014 08:56:56 +1200 >> From: Jonathan Giles >> To: openjfx-dev at openjdk.java.net >> Subject: Re: SceneBuilder 2.0 import custom components from Jar >> Message-ID: <5394CE18.5050708 at oracle.com> >> Content-Type: text/plain; charset=ISO-8859-1; format=flowed >> >> Christian, >> >> With my OpenJFX hat on: >> ======================= >> ControlsFX-related issues are best discussed on the controlsfx-dev >> mailing list, which can be accessed (and signed up to) here: >> http://groups.controlsfx.org >> >> Scene Builder is open source - you can access it by cloning the OpenJFX >> rt repo, and you'll find the Scene Builder source code in apps/scenebuilder. >> >> >> With my ControlsFX hat on: >> ======================= >> Regarding getting ControlsFX to play nicer with Scene Builder - that is >> really a matter for the ControlsFX project to resolve. ControlsFX needs >> to follow the requirements of Scene Builder and FXML, and I'm not 100% >> clear on what the definitive list of requirements is, but I know some of >> the requirements include having a public no-args constructor, and using >> @NamedArg on constructor parameters to define the parameter name. I have >> been hoping someone from the community would step up to make ControlsFX >> more FXML and Scene Builder compliant. If you're interested please ping >> me off-list. >> >> Relatedly, I recently asked if the Scene Builder team if someone could >> take a quick look at ControlsFX to cast their expert eyes over the API >> and let me know what is and isn't going to work well for them. >> >> Thanks, >> >> -- Jonathan >> >> On 8/06/2014 8:24 p.m., Christian wrote: >>> Hi, >>> I was trying to import controlsfx-5.0.6 and controlsfx-5.0.6_20 into >>> scenebuilder. >>> However only some or few controls could be imported. >>> When using these controls strange effects happen. >>> I was looking into the user guide in order to determine the >>> requirements that have to be met by the components in the jar file. >>> However there was just a simple guideline about how to import and not >>> how to develop custom components so that they match the scenebuilder. >>> I further turned the logging level of the scenbuilder to finest and >>> hoped to see at least some stacktraces that might give me a hint. >>> But I only saw stacktraces when using the imported components (mainly >>> belonging to missing resources because of classpath problems) nothing >>> from the import/jarfile-scan itself. >>> I was hoping that I can adjust the controlsfx classes so that they >>> work fine with the scenebuilder. >>> Any hints are more then welcome! >>> >>> ps.: >>> It seems that scenebuilder is closed source, or is the some source out >>> there I could start with? >>> Is there an early access release for 8u20? >>> >>> Thanks, >>> Christian >> >> >> ------------------------------ >> >> Message: 3 >> Date: Mon, 09 Jun 2014 08:19:27 +0200 >> From: Tom Eugelink >> To: "openjfx-dev at openjdk.java.net" >> Subject: monitor mouse events but not capture them >> Message-ID: <539551EF.3050706 at tbee.org> >> Content-Type: text/plain; charset=ISO-8859-1; format=flowed >> >> Hi all, >> >> Maybe someone has solved this already, so I thought I pop the question. Currently I'm working on CirclePopupMenu; a menu that is supposed to pop up on any place in a scene when a certain (usually the middle or right) mouse button is pressed. >> >> Right now CirclePopupMenu requires a stackpane to which it binds itself. CirclePopupMenu initially places an empty "canvas" Pane on the stack pane, and will use that to render and position the menu when it needs to appear. >> >> Also I need to monitor the mouse to detect if the menu should appear. In order to do that, I would like to use that canvas pane, but then any non relevant button clicks will not reach the underlying controls. In order to enable correct behavior I need to setPickOnBounds(false) on the pane, but then it does receive the mouse events anymore. >> >> Is there any way to monitor mouse events but still pass them through to the underlying controls? In Swing I did something similar and used a system level mouse event hook. >> >> Tom >> >> PS: I'm not certain if the stackpane approach I've used is the best way to do this. It does work expect the mouse button problem. But any suggestions are welcome. >> >> >> ------------------------------ >> >> Message: 4 >> Date: Mon, 09 Jun 2014 08:29:35 +0200 >> From: Martin Sladecek >> To: openjfx-dev at openjdk.java.net >> Subject: Re: monitor mouse events but not capture them >> Message-ID: <5395544F.6040702 at oracle.com> >> Content-Type: text/plain; charset=ISO-8859-1; format=flowed >> >> Hi Tom, >> have you tried .addEventFilter() method? It receives the Event before >> the controls underneath the canvas, in the capturing phase. If you don't >> consume the Event, it should pass down to the controls. >> For more on the topic, see >> http://docs.oracle.com/javafx/2/events/processing.htm or >> http://parleys.com/play/514892290364bc17fc56c39f >> >> -Martin >> >> On 06/09/2014 08:19 AM, Tom Eugelink wrote: >>> Hi all, >>> >>> Maybe someone has solved this already, so I thought I pop the >>> question. Currently I'm working on CirclePopupMenu; a menu that is >>> supposed to pop up on any place in a scene when a certain (usually the >>> middle or right) mouse button is pressed. >>> >>> Right now CirclePopupMenu requires a stackpane to which it binds >>> itself. CirclePopupMenu initially places an empty "canvas" Pane on the >>> stack pane, and will use that to render and position the menu when it >>> needs to appear. >>> >>> Also I need to monitor the mouse to detect if the menu should appear. >>> In order to do that, I would like to use that canvas pane, but then >>> any non relevant button clicks will not reach the underlying controls. >>> In order to enable correct behavior I need to setPickOnBounds(false) >>> on the pane, but then it does receive the mouse events anymore. >>> >>> Is there any way to monitor mouse events but still pass them through >>> to the underlying controls? In Swing I did something similar and used >>> a system level mouse event hook. >>> >>> Tom >>> >>> PS: I'm not certain if the stackpane approach I've used is the best >>> way to do this. It does work expect the mouse button problem. But any >>> suggestions are welcome. >> >> >> ------------------------------ >> >> Message: 5 >> Date: Mon, 09 Jun 2014 08:44:33 +0200 >> From: Tom Eugelink >> To: openjfx-dev at openjdk.java.net >> Subject: Re: monitor mouse events but not capture them >> Message-ID: <539557D1.6070000 at tbee.org> >> Content-Type: text/plain; charset=ISO-8859-1; format=flowed >> >> >> Yessss. It does not work on the canvas pane, I suspect because of the pickOnBounds, but it does work on the stackpane. Plus, I can register to the stack pane without claiming the onMouseClick/Press hook. >> >> Many thanks! >> >> Tom >> >> >> >> On 2014-6-9 8:29, Martin Sladecek wrote: >>> Hi Tom, >>> have you tried .addEventFilter() method? It receives the Event before the controls underneath the canvas, in the capturing phase. If you don't consume the Event, it should pass down to the controls. >>> For more on the topic, see http://docs.oracle.com/javafx/2/events/processing.htm or http://parleys.com/play/514892290364bc17fc56c39f >>> >>> -Martin >>> >>> On 06/09/2014 08:19 AM, Tom Eugelink wrote: >>>> Hi all, >>>> >>>> Maybe someone has solved this already, so I thought I pop the question. Currently I'm working on CirclePopupMenu; a menu that is supposed to pop up on any place in a scene when a certain (usually the middle or right) mouse button is pressed. >>>> >>>> Right now CirclePopupMenu requires a stackpane to which it binds itself. CirclePopupMenu initially places an empty "canvas" Pane on the stack pane, and will use that to render and position the menu when it needs to appear. >>>> >>>> Also I need to monitor the mouse to detect if the menu should appear. In order to do that, I would like to use that canvas pane, but then any non relevant button clicks will not reach the underlying controls. In order to enable correct behavior I need to setPickOnBounds(false) on the pane, but then it does receive the mouse events anymore. >>>> >>>> Is there any way to monitor mouse events but still pass them through to the underlying controls? In Swing I did something similar and used a system level mouse event hook. >>>> >>>> Tom >>>> >>>> PS: I'm not certain if the stackpane approach I've used is the best way to do this. It does work expect the mouse button problem. But any suggestions are welcome. >> >> >> >> ------------------------------ >> >> Message: 6 >> Date: Mon, 09 Jun 2014 09:46:33 +0200 >> From: Martin Sladecek >> To: openjfx-dev at openjdk.java.net >> Subject: Re: monitor mouse events but not capture them >> Message-ID: <53956659.4040701 at oracle.com> >> Content-Type: text/plain; charset=ISO-8859-1; format=flowed >> >> Just looked at the code and it seems Canvas does pick on bounds >> independently of the pickOnBounds value. There's currently no logic for >> picking only when over an opaque pixel ( worth filing a JIRA issue >> maybe?). This makes Canvas to consume everything as it's always picked >> instead of some controls underneath. >> >> Unfortunately, I can't think of any solution that would work right now. >> If we'd support Node picking >> (https://javafx-jira.kenai.com/browse/RT-20184), it would be possible to >> "redirect" an unwanted event to a different event target on that mouse >> position. >> >> -Martin >> >> >> On 06/09/2014 08:44 AM, Tom Eugelink wrote: >>> Yessss. It does not work on the canvas pane, I suspect because of the >>> pickOnBounds, but it does work on the stackpane. Plus, I can register >>> to the stack pane without claiming the onMouseClick/Press hook. >>> >>> Many thanks! >>> >>> Tom >>> >>> >>> >>> On 2014-6-9 8:29, Martin Sladecek wrote: >>>> Hi Tom, >>>> have you tried .addEventFilter() method? It receives the Event before >>>> the controls underneath the canvas, in the capturing phase. If you >>>> don't consume the Event, it should pass down to the controls. >>>> For more on the topic, see >>>> http://docs.oracle.com/javafx/2/events/processing.htm or >>>> http://parleys.com/play/514892290364bc17fc56c39f >>>> >>>> -Martin >>>> >>>> On 06/09/2014 08:19 AM, Tom Eugelink wrote: >>>>> Hi all, >>>>> >>>>> Maybe someone has solved this already, so I thought I pop the >>>>> question. Currently I'm working on CirclePopupMenu; a menu that is >>>>> supposed to pop up on any place in a scene when a certain (usually >>>>> the middle or right) mouse button is pressed. >>>>> >>>>> Right now CirclePopupMenu requires a stackpane to which it binds >>>>> itself. CirclePopupMenu initially places an empty "canvas" Pane on >>>>> the stack pane, and will use that to render and position the menu >>>>> when it needs to appear. >>>>> >>>>> Also I need to monitor the mouse to detect if the menu should >>>>> appear. In order to do that, I would like to use that canvas pane, >>>>> but then any non relevant button clicks will not reach the >>>>> underlying controls. In order to enable correct behavior I need to >>>>> setPickOnBounds(false) on the pane, but then it does receive the >>>>> mouse events anymore. >>>>> >>>>> Is there any way to monitor mouse events but still pass them through >>>>> to the underlying controls? In Swing I did something similar and >>>>> used a system level mouse event hook. >>>>> >>>>> Tom >>>>> >>>>> PS: I'm not certain if the stackpane approach I've used is the best >>>>> way to do this. It does work expect the mouse button problem. But >>>>> any suggestions are welcome. >>> >> >> >> ------------------------------ >> >> Message: 7 >> Date: Mon, 09 Jun 2014 10:07:49 +0200 >> From: Tom Eugelink >> To: openjfx-dev at openjdk.java.net >> Subject: Re: monitor mouse events but not capture them >> Message-ID: <53956B55.6020209 at tbee.org> >> Content-Type: text/plain; charset=ISO-8859-1; format=flowed >> >> >> Hm, maybe I chose bad words; I'm not using Canvas, but just a Pane. Since the Pane is only used to draw the menu on when it need to appear, I'm calling it the canvas pane, as in "what is painted on". >> >> >> On 2014-6-9 9:46, Martin Sladecek wrote: >>> Just looked at the code and it seems Canvas does pick on bounds independently of the pickOnBounds value. There's currently no logic for picking only when over an opaque pixel ( worth filing a JIRA issue maybe?). This makes Canvas to consume everything as it's always picked instead of some controls underneath. >>> >>> Unfortunately, I can't think of any solution that would work right now. If we'd support Node picking (https://javafx-jira.kenai.com/browse/RT-20184), it would be possible to "redirect" an unwanted event to a different event target on that mouse position. >>> >>> -Martin >>> >>> >>> On 06/09/2014 08:44 AM, Tom Eugelink wrote: >>>> Yessss. It does not work on the canvas pane, I suspect because of the pickOnBounds, but it does work on the stackpane. Plus, I can register to the stack pane without claiming the onMouseClick/Press hook. >>>> >>>> Many thanks! >>>> >>>> Tom >>>> >>>> >>>> >>>> On 2014-6-9 8:29, Martin Sladecek wrote: >>>>> Hi Tom, >>>>> have you tried .addEventFilter() method? It receives the Event before the controls underneath the canvas, in the capturing phase. If you don't consume the Event, it should pass down to the controls. >>>>> For more on the topic, see http://docs.oracle.com/javafx/2/events/processing.htm or http://parleys.com/play/514892290364bc17fc56c39f >>>>> >>>>> -Martin >>>>> >>>>> On 06/09/2014 08:19 AM, Tom Eugelink wrote: >>>>>> Hi all, >>>>>> >>>>>> Maybe someone has solved this already, so I thought I pop the question. Currently I'm working on CirclePopupMenu; a menu that is supposed to pop up on any place in a scene when a certain (usually the middle or right) mouse button is pressed. >>>>>> >>>>>> Right now CirclePopupMenu requires a stackpane to which it binds itself. CirclePopupMenu initially places an empty "canvas" Pane on the stack pane, and will use that to render and position the menu when it needs to appear. >>>>>> >>>>>> Also I need to monitor the mouse to detect if the menu should appear. In order to do that, I would like to use that canvas pane, but then any non relevant button clicks will not reach the underlying controls. In order to enable correct behavior I need to setPickOnBounds(false) on the pane, but then it does receive the mouse events anymore. >>>>>> >>>>>> Is there any way to monitor mouse events but still pass them through to the underlying controls? In Swing I did something similar and used a system level mouse event hook. >>>>>> >>>>>> Tom >>>>>> >>>>>> PS: I'm not certain if the stackpane approach I've used is the best way to do this. It does work expect the mouse button problem. But any suggestions are welcome. >>>> >> >> >> >> End of openjfx-dev Digest, Vol 31, Issue 13 >> ******************************************* >> > > > ------------------------------ > > Message: 2 > Date: Mon, 9 Jun 2014 15:41:16 +0000 (UTC) > From: Pawel Gronkiewicz > To: > Subject: Invitation to connect on LinkedIn > Message-ID: > <117494654.61083528.1402328476030.JavaMail.app at ela4-app7996.prod> > Content-Type: text/plain; charset=UTF-8 > > LinkedIn > ------------ > > > > I'd like to add you to my professional network on LinkedIn. > > - Pawel > > Pawel Gronkiewicz > QA Engineer at Zalando SE > Berlin Area, Germany > > Confirm that you know Pawel Gronkiewicz: > https://www.linkedin.com/e/j4bywu-hw7y616g-6w/isd/5881791911672426496/WbTSli-Q/?hs=false&tok=2CLTRv31JJEmg1 > > -- > You are receiving Invitation to Connect emails. Click to unsubscribe: > http://www.linkedin.com/e/j4bywu-hw7y616g-6w/p63fWs4VSbaM8taBLf3sTb8VSQFM_H2BLf3sTxcnZr8/goo/openjfx-dev%40openjdk%2Ejava%2Enet/20061/I7229956350_1/?hs=false&tok=0L55q5-ZBJEmg1 > > (c) 2012 LinkedIn Corporation. 2029 Stierlin Ct, Mountain View, CA 94043, USA. > > > > > > ------------------------------ > > Message: 3 > Date: Mon, 09 Jun 2014 16:32:47 +0000 > From: hang.vo at oracle.com > To: openjfx-dev at openjdk.java.net > Subject: hg: openjfx/8u-dev/rt: 3 new changesets > Message-ID: <201406091633.s59GX9KD027761 at aojmv0008> > > Changeset: c3f0df64cedf > Author: snorthov > Date: 2014-06-09 12:28 -0400 > URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/c3f0df64cedf > > INTELLIJ ONLY: fix project files reference to Eclipse bin directory > > ! .idea/rt-closed.iml > > Changeset: 030f278e3de1 > Author: snorthov > Date: 2014-06-09 12:29 -0400 > URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/030f278e3de1 > > ECLIPSE ONLY: fix project files to include SceneBuilder examples > > ! apps/scenebuilder/.classpath > > Changeset: 01cf6a99e67b > Author: snorthov > Date: 2014-06-09 12:30 -0400 > URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/01cf6a99e67b > > INTELLIJ ONLY: fix project files to include SceneBuilder examples > > + .idea/AirportApp.iml > + .idea/HelloI18N.iml > + .idea/HelloSwingNode.iml > + .idea/IssueTrackingBiDi.iml > + .idea/IssueTrackingLite.iml > + .idea/Login.iml > + .idea/UnlockCustom.iml > ! .idea/modules.xml > > > > ------------------------------ > > Message: 4 > Date: Mon, 9 Jun 2014 22:45:27 +0300 > From: Daniel Blaukopf > To: Lisa Selle , OpenJFX Mailing List > > Subject: Review request: RT-37474 [Monocle] Shift-backspace generates > an undefined key code > Message-ID: <0D35BBC3-52E0-410A-86A5-DA6C7C49B386 at oracle.com> > Content-Type: text/plain; charset=us-ascii > > Hi Lisa, > > Please review: > https://javafx-jira.kenai.com/browse/RT-37474 > http://cr.openjdk.java.net/~dblaukop/webrev-20140609-2233-RT-37474/webrev > > Thanks, > Daniel > > > End of openjfx-dev Digest, Vol 31, Issue 16 > ******************************************* -- Dr Malcolm Lidierth Senior Lecturer in Physiology Wolfson Centre for Age-Related Diseases Hodgkin Building Guy' Hospital Campus King's College London LONDON UK SE1 7EH Ph: +44(0) 20 78486175 (Direct Line) Hodgkin Room No. 1.63W *Visitors: This area requires swipe-card access so please go to the Hodgkin Building main reception desk and call from there.* From jeff at reportmill.com Wed Jun 11 14:17:37 2014 From: jeff at reportmill.com (Jeff Martin) Date: Wed, 11 Jun 2014 09:17:37 -0500 Subject: VisibleBounds In-Reply-To: <04B6F9F0-C5A6-4BDC-AACC-361C7C3B534E@reportmill.com> References: <04B6F9F0-C5A6-4BDC-AACC-361C7C3B534E@reportmill.com> Message-ID: Below is my poor man's getVisibleBounds. I'm using this so that my custom text pane only needs to add child nodes for lines of text that are visible - similar to how ListView and friends only add cell nodes for visible items. I hope I'm on the right track - I was surprised that my web search for getVisibleBounds() came up so empty. If nobody points out my idiocy, I'm going to put this in a blog. jeff /** * Returns the visible bounds for a node based on ancestor clips (or null if no clipping found). */ public static Bounds getVisibleBounds(Node aNode) { // Get parent visible bounds (if set, convert to local) Bounds bounds = aNode.getParent()!=null? getVisibleBounds(aNode.getParent()) : null; if(bounds!=null) { if(!bounds.isEmpty()) bounds = aNode.parentToLocal(bounds); else return bounds; } // If node has clip, get clip local bounds (intersected with parent visible bounds if present) if(aNode.getClip()!=null) { Node clip = aNode.getClip(); Bounds cb = clip.getBoundsInLocal(); bounds = bounds!=null? getIntersectingBounds(cb, bounds) : cb; } // Return node visible bounds return bounds; } /** * Returns the intersection bounds of two bounds. */ public static Bounds getIntersectingBounds(Bounds b1, Bounds b2) { if(!b1.intersects(b2)) return new BoundingBox(0,0,-1,-1); double minx = Math.max(b1.getMinX(), b2.getMinX()); double miny = Math.max(b1.getMinY(), b2.getMinY()); double maxx = Math.min(b1.getMaxX(), b2.getMaxX()); double maxy = Math.min(b1.getMaxY(), b2.getMaxY()); return new BoundingBox(minx, miny, maxx-minx, maxy-miny); } On Jun 10, 2014, at 6:59 PM, Jeff Martin wrote: > What is the JFX equivalent of JComponent.getVisibleRect() - and is there a way to get a notification when it changes? > > jeff From danno.ferrin at oracle.com Wed Jun 11 14:22:40 2014 From: danno.ferrin at oracle.com (Danno Ferrin) Date: Wed, 11 Jun 2014 08:22:40 -0600 Subject: Bundler question for Mac OS X... In-Reply-To: <1402495552.60950.YahooMailNeo@web121803.mail.ne1.yahoo.com> References: <1402458874.63325.YahooMailNeo@web121806.mail.ne1.yahoo.com> <53982C84.90307@oracle.com> <07094FAA-5B88-4BE7-8055-110C03953A8E@oracle.com> <1402495411.87088.YahooMailNeo@web121801.mail.ne1.yahoo.com> <1402495552.60950.YahooMailNeo@web121803.mail.ne1.yahoo.com> Message-ID: <9FF2AEF3-B45D-4DAF-AB50-CD8DA354C2B1@oracle.com> It does change the sub-menu items (Hide /Quit ), at least the 8u20 toolchain does. I would expect the 8u5 toolchain to change it too because it looks the same, but I haven?t worked on those builds recently. On Jun 11, 2014, at 8:05 AM, Tony Anecito wrote: > I will try your suggestion to see if the sub-menu items name changes with what you sugggested. > > Thanks, > -Tony > > > On , Tony Anecito wrote: > > > Hi, > > The name attribute affects the main menu item but not the sub-menu items. Not sure if you understood what I meant by sub-menu items. It would be better if the sub-menu items did not use the starting/launcher class name. I even found examples googleing where java main.startupclassname was shown for sub-menu items. > > Apple iTunes store will reject java apps becuase of this issue. They want the app name to match everywhere on the app including the sub-menu item names. > > Thanks, > -Tony > > > On Wednesday, June 11, 2014 7:50 AM, Danno Ferrin wrote: > > > This will be upgraded in the 8u20 release. > > For pre8u20 in the ant script the menu bar name is the name attribute from the application element. > > > > > > > > (This will still work in 8u20, if it doesn?t it is a bug to me I will fix). > > The down side is that some of those value have double use when using multiple platforms. For example the id attribute is also the UUID for MSI bundles. The name is also the name of the launcher file too, and pre 8u20 they are tied together (unless you do a drop in resource to manually fix the identifier). > > Starting with 8u20 you can specify bundle params, and I have done my best to eliminate the overlapping values, or at least allow you to set specific values that will fall back to overlapping values. > > > > > > > > > Since the windows bundlers don?t understand those arguments they will ignore them. And the bundle name can be different from the launcher name now as well. > > On Jun 11, 2014, at 4:16 AM, Anthony Petrov wrote: > > > Hi Tony, > > > > I don't know the exact syntax for the FX deploy script (is it the -title or -name option for the javafxpackager [1] ?), however [2] suggests that the CFBundleName key in Info.plist can be used to set the application name. I can confirm that Glass reads the value and assigns it to the application name. The Quit menu item then uses this name for its text label. > > > > Does setting the CFBundleName work for you? > > > > [1] http://docs.oracle.com/javafx/2/deployment/javafxpackager.htm > > > > [2] https://javafx-jira.kenai.com/browse/RT-18563 > > > > -- > > best regards, > > Anthony > > > > On 6/11/2014 7:54 AM, Tony Anecito wrote: > >> Hi All, > >> > >> I noticed the menu bar for OS X is probably using my class name that has the static main in it. How do I override that in the JavFX Deploy ant script? The About, Hide and Quit sub-menu items are using a different name than what I want. The main menu item is correct. > >> > >> Thanks! > >> Tony > >> > > > > From steve.x.northover at oracle.com Wed Jun 11 14:37:47 2014 From: steve.x.northover at oracle.com (Stephen F Northover) Date: Wed, 11 Jun 2014 10:37:47 -0400 Subject: VisibleBounds In-Reply-To: References: <04B6F9F0-C5A6-4BDC-AACC-361C7C3B534E@reportmill.com> Message-ID: <539869BB.3050902@oracle.com> This seems like a good enhancement request. Please enter a JIRA for it. Steve On 2014-06-11, 10:17 AM, Jeff Martin wrote: > Below is my poor man's getVisibleBounds. I'm using this so that my custom text pane only needs to add child nodes for lines of text that are visible - similar to how ListView and friends only add cell nodes for visible items. I hope I'm on the right track - I was surprised that my web search for getVisibleBounds() came up so empty. If nobody points out my idiocy, I'm going to put this in a blog. > > jeff > > /** > * Returns the visible bounds for a node based on ancestor clips (or null if no clipping found). > */ > public static Bounds getVisibleBounds(Node aNode) > { > // Get parent visible bounds (if set, convert to local) > Bounds bounds = aNode.getParent()!=null? getVisibleBounds(aNode.getParent()) : null; > if(bounds!=null) { if(!bounds.isEmpty()) bounds = aNode.parentToLocal(bounds); else return bounds; } > > // If node has clip, get clip local bounds (intersected with parent visible bounds if present) > if(aNode.getClip()!=null) { Node clip = aNode.getClip(); Bounds cb = clip.getBoundsInLocal(); > bounds = bounds!=null? getIntersectingBounds(cb, bounds) : cb; } > > // Return node visible bounds > return bounds; > } > > /** > * Returns the intersection bounds of two bounds. > */ > public static Bounds getIntersectingBounds(Bounds b1, Bounds b2) > { > if(!b1.intersects(b2)) return new BoundingBox(0,0,-1,-1); > double minx = Math.max(b1.getMinX(), b2.getMinX()); > double miny = Math.max(b1.getMinY(), b2.getMinY()); > double maxx = Math.min(b1.getMaxX(), b2.getMaxX()); > double maxy = Math.min(b1.getMaxY(), b2.getMaxY()); > return new BoundingBox(minx, miny, maxx-minx, maxy-miny); > } > > > On Jun 10, 2014, at 6:59 PM, Jeff Martin wrote: > >> What is the JFX equivalent of JComponent.getVisibleRect() - and is there a way to get a notification when it changes? >> >> jeff From swpalmer at gmail.com Wed Jun 11 14:45:07 2014 From: swpalmer at gmail.com (Scott Palmer) Date: Wed, 11 Jun 2014 10:45:07 -0400 Subject: Fwd: All-Permissions not working properly with sun.plugin2.applet.FXAppletSecurityManager In-Reply-To: <534F65C9.8030801@oracle.com> References: <2D816D15-74B6-499B-B8A5-07451BA075B1@oracle.com> <534F65C9.8030801@oracle.com> Message-ID: I tried to send an email to Thomas asking about the status of these issues (they are not visible to me), but the email bounced (user unknown). Could someone let me know the status? Thanks, Scott On Thu, Apr 17, 2014 at 1:25 AM, Thomas Ng wrote: > Thanks for the report! > > Two bugs created for this: > > security manager and applet-desc webstart mode: > https://bugs.openjdk.java.net/browse/JDK-8040231 > > reflection in daemon thread: > https://bugs.openjdk.java.net/browse/JDK-8040699 > > -thomas > > > *From: *Scott Palmer > *Subject: **All-Permissions not working properly with > sun.plugin2.applet.FXAppletSecurityManager* > *Date: *April 14, 2014 at 1:07:36 PM PDT > *To: *"openjfx-dev at openjdk.java.net" > > Can someone confirm that all-permissions is working for JavaFX apps > that are launched via Web Start with Java 8.0 and use daemon threads > in a Service? > > I have a JNLP file that has: > > > > > and the manifest of my app's jar has the following instruction in my > Gradle script: > > jar { > manifest { > attributes('Permissions': 'all-permissions', > 'Codebase': '*') > } > } > > I'm using the javafx gradle plugin and signing the jars... > e.g. I see this for every dependency and the main jar: > ... > Signing (BLOB) C:\Users\scott\.m2\caches\path\to\some.jar > Signed as C:\Users\scott\dev\MyProject\build\libs\some.jar > ... > > I even tried System.setSecurityManager(null); in my start() method > (and it lets me do it). > > However, daemon threads started by my Service are unable to use > reflection. (It is working in the main FX application thread.) I see > the following stack trace in the Java console: > > > Caused by: java.security.AccessControlException: access denied > ("java.lang.reflect.ReflectPermission" "suppressAccessChecks") > at java.security.AccessControlContext.checkPermission(Unknown Source) > at java.security.AccessController.checkPermission(Unknown Source) > at java.lang.SecurityManager.checkPermission(Unknown Source) > at sun.plugin2.applet.FXAppletSecurityManager.checkPermission(Unknown > Source) > at java.lang.reflect.AccessibleObject.setAccessible(Unknown Source) > > > Caused by: java.security.AccessControlException: access denied > ("java.lang.RuntimePermission" "accessDeclaredMembers") > at java.security.AccessControlContext.checkPermission(Unknown Source) > at java.security.AccessController.checkPermission(Unknown Source) > at java.lang.SecurityManager.checkPermission(Unknown Source) > at sun.plugin2.applet.FXAppletSecurityManager.checkPermission(Unknown > Source) > at java.lang.Class.checkMemberAccess(Unknown Source) > at java.lang.Class.getDeclaredMethod(Unknown Source) > at > ma.glasnost.orika.property.PropertyResolver.resolvePropertyType(PropertyResolver.java:304) > at > ma.glasnost.orika.property.PropertyResolver.processProperty(PropertyResolver.java:240) > at > ma.glasnost.orika.property.IntrospectorPropertyResolver.collectProperties(IntrospectorPropertyResolver.java:83) > ... 33 more > > I bring it up here because FXAppletSecurityManager is involved and > this smells like a possible bug in plugin2 > > Regards, > > Scott > > > > From kirill.kirichenko at oracle.com Wed Jun 11 14:56:50 2014 From: kirill.kirichenko at oracle.com (Kirill Kirichenko) Date: Wed, 11 Jun 2014 18:56:50 +0400 Subject: Proportional TableColumn resizing Message-ID: <53986E32.6060700@oracle.com> Hi all. How is it possible to create TableColumns (preferably in fxml) such that they have some proportional width say in percents rather than in pixels with a feature that when we resize the table the columns get resized proportionally ? Default behaviour is that when the window containing a table is grown in width all columns keep the width and one extra column appear that has no data. K From adanecito at yahoo.com Wed Jun 11 15:48:16 2014 From: adanecito at yahoo.com (Tony Anecito) Date: Wed, 11 Jun 2014 08:48:16 -0700 (PDT) Subject: Bundler question for Mac OS X... In-Reply-To: <9FF2AEF3-B45D-4DAF-AB50-CD8DA354C2B1@oracle.com> References: <1402458874.63325.YahooMailNeo@web121806.mail.ne1.yahoo.com> <53982C84.90307@oracle.com> <07094FAA-5B88-4BE7-8055-110C03953A8E@oracle.com> <1402495411.87088.YahooMailNeo@web121801.mail.ne1.yahoo.com> <1402495552.60950.YahooMailNeo@web121803.mail.ne1.yahoo.com> <9FF2AEF3-B45D-4DAF-AB50-CD8DA354C2B1@oracle.com> Message-ID: <1402501696.5186.YahooMailNeo@web121804.mail.ne1.yahoo.com> Thanks Danno I will try tonight with your suggestion. I will let you know the results. ? This is the last thing holding up approval of my app for the store. ? Best Regards, -Tony? On Wednesday, June 11, 2014 8:22 AM, Danno Ferrin wrote: It does change the sub-menu items (Hide /Quit ), at least the 8u20 toolchain does. ?I would expect the 8u5 toolchain to change it too because it looks the same, but I haven?t worked on those builds recently. On Jun 11, 2014, at 8:05 AM, Tony Anecito wrote: I will try your suggestion to see if the sub-menu items name changes with?what you sugggested. > >Thanks, >-Tony? > > > >On , Tony Anecito wrote: > > > >?Hi, > >The name attribute affects the main menu item but not the sub-menu items. Not sure if you understood what I meant by sub-menu items. It would be better if the sub-menu items did not use the starting/launcher class name. I even found examples googleing where java main.startupclassname was shown for sub-menu items. > >Apple iTunes store will reject java apps becuase of this issue. They want the app name to match everywhere on the app including the sub-menu item names. > >Thanks, >-Tony > > > >On Wednesday, June 11, 2014 7:50 AM, Danno Ferrin wrote: > > > >This will be upgraded in the 8u20 release. > >For pre8u20 in the ant script the menu bar name is the name attribute from the application element. > > >? >? >? > > >(This will still work in 8u20, if it doesn?t it is a bug to me I will fix). > >The down side is that some of those value have double use when using multiple platforms.? For example the id attribute is also the UUID for MSI bundles.? The name is also the name of the launcher file too, and pre 8u20 they are tied together (unless you do a drop in resource to manually fix the identifier). > >Starting with 8u20 you can specify bundle params, and I have done my best to eliminate the overlapping values, or at least allow you to set specific values that will fall back to overlapping values. > > >? >? >? >? > > >Since the windows bundlers don?t understand those arguments they will ignore them.? And the bundle name can be different from the launcher name now as well. > > >On Jun 11, 2014, at 4:16 AM, Anthony Petrov wrote: > >> Hi Tony, >> >> I don't know the exact syntax for the FX deploy script (is it the -title or -name option for the javafxpackager [1] ?), however [2] suggests that the CFBundleName key in Info.plist can be used to set the application name. I can confirm that Glass reads the value and assigns it to the application name. The Quit menu item then uses this name for its text label. >> >> Does setting the CFBundleName work for you? >> >> [1] http://docs.oracle.com/javafx/2/deployment/javafxpackager.htm >> >> [2] https://javafx-jira.kenai.com/browse/RT-18563 >> >> -- >> best regards, >> Anthony >> >> On 6/11/2014 7:54 AM, Tony Anecito wrote: >>> Hi All, >>> >>> I noticed the menu bar for OS X is probably using my class name that has the static main in it. How do I override that in the JavFX Deploy ant script? The About, Hide and Quit sub-menu items are using a different name than what I want. The main menu item is correct. >>> >>> Thanks! >>> Tony >>> > > > > > From kevin.rushforth at oracle.com Wed Jun 11 15:57:12 2014 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Wed, 11 Jun 2014 08:57:12 -0700 Subject: Fwd: All-Permissions not working properly with sun.plugin2.applet.FXAppletSecurityManager In-Reply-To: References: <2D816D15-74B6-499B-B8A5-07451BA075B1@oracle.com> <534F65C9.8030801@oracle.com> Message-ID: <53987C58.5080308@oracle.com> These are now assigned to Dmitry Cherapanov who I have copied here in case he isn't on the openjfx alias. They are both targeted to JDK 9. -- Kevin Scott Palmer wrote: > I tried to send an email to Thomas asking about the status of these issues > (they are not visible to me), but the email bounced (user unknown). Could > someone let me know the status? > > Thanks, > > Scott > > > On Thu, Apr 17, 2014 at 1:25 AM, Thomas Ng wrote: > > >> Thanks for the report! >> >> Two bugs created for this: >> >> security manager and applet-desc webstart mode: >> https://bugs.openjdk.java.net/browse/JDK-8040231 >> >> reflection in daemon thread: >> https://bugs.openjdk.java.net/browse/JDK-8040699 >> >> -thomas >> >> >> *From: *Scott Palmer >> *Subject: **All-Permissions not working properly with >> sun.plugin2.applet.FXAppletSecurityManager* >> *Date: *April 14, 2014 at 1:07:36 PM PDT >> *To: *"openjfx-dev at openjdk.java.net" >> >> Can someone confirm that all-permissions is working for JavaFX apps >> that are launched via Web Start with Java 8.0 and use daemon threads >> in a Service? >> >> I have a JNLP file that has: >> >> >> >> >> and the manifest of my app's jar has the following instruction in my >> Gradle script: >> >> jar { >> manifest { >> attributes('Permissions': 'all-permissions', >> 'Codebase': '*') >> } >> } >> >> I'm using the javafx gradle plugin and signing the jars... >> e.g. I see this for every dependency and the main jar: >> ... >> Signing (BLOB) C:\Users\scott\.m2\caches\path\to\some.jar >> Signed as C:\Users\scott\dev\MyProject\build\libs\some.jar >> ... >> >> I even tried System.setSecurityManager(null); in my start() method >> (and it lets me do it). >> >> However, daemon threads started by my Service are unable to use >> reflection. (It is working in the main FX application thread.) I see >> the following stack trace in the Java console: >> >> >> Caused by: java.security.AccessControlException: access denied >> ("java.lang.reflect.ReflectPermission" "suppressAccessChecks") >> at java.security.AccessControlContext.checkPermission(Unknown Source) >> at java.security.AccessController.checkPermission(Unknown Source) >> at java.lang.SecurityManager.checkPermission(Unknown Source) >> at sun.plugin2.applet.FXAppletSecurityManager.checkPermission(Unknown >> Source) >> at java.lang.reflect.AccessibleObject.setAccessible(Unknown Source) >> >> >> Caused by: java.security.AccessControlException: access denied >> ("java.lang.RuntimePermission" "accessDeclaredMembers") >> at java.security.AccessControlContext.checkPermission(Unknown Source) >> at java.security.AccessController.checkPermission(Unknown Source) >> at java.lang.SecurityManager.checkPermission(Unknown Source) >> at sun.plugin2.applet.FXAppletSecurityManager.checkPermission(Unknown >> Source) >> at java.lang.Class.checkMemberAccess(Unknown Source) >> at java.lang.Class.getDeclaredMethod(Unknown Source) >> at >> ma.glasnost.orika.property.PropertyResolver.resolvePropertyType(PropertyResolver.java:304) >> at >> ma.glasnost.orika.property.PropertyResolver.processProperty(PropertyResolver.java:240) >> at >> ma.glasnost.orika.property.IntrospectorPropertyResolver.collectProperties(IntrospectorPropertyResolver.java:83) >> ... 33 more >> >> I bring it up here because FXAppletSecurityManager is involved and >> this smells like a possible bug in plugin2 >> >> Regards, >> >> Scott >> >> >> >> >> From David.Hill at Oracle.com Wed Jun 11 15:59:05 2014 From: David.Hill at Oracle.com (David Hill) Date: Wed, 11 Jun 2014 11:59:05 -0400 Subject: review: Refactoring KeyEvent.getKeyCodeForChar Message-ID: <53987CC9.3020607@Oracle.com> Kevin, Steve, Anthony, Jira: *https://javafx-jira.kenai.com/browse/RT-37492 * Webrev for the refactor is here: http://cr.openjdk.java.net/~ddhill/RT-37492/ A simple test application is attached. I tested by running it against the before and then the after build on Linux and ARM checking the code returns are the same. Windows, Mac, IOS are hopefully right as this is a pretty easy substitution. I did notice that a few SWT did not have a native impl of the call currently ..... those I fixed that using the pattern, but still will be missing the native impl. -- David Hill Java Embedded Development "We trained hard, but it seemed that every time we were beginning to form up into teams, we would be reorganized. I was to learn later in life that we tend to meet any new situation by reorganizing; and a wonderful method it can be for creating the illusion of progress while producing confusion, inefficiency, and demoralization." -- Unknown (misattributed to Petronius Arbiter, 210AD). From swpalmer at gmail.com Wed Jun 11 16:14:19 2014 From: swpalmer at gmail.com (Scott Palmer) Date: Wed, 11 Jun 2014 12:14:19 -0400 Subject: Formatted text field API (RT-14000, RT-30881) In-Reply-To: <539862F5.30706@oracle.com> References: <53981862.3030008@oracle.com> <539860B4.3080102@oracle.com> <539862F5.30706@oracle.com> Message-ID: I already have a use for a bi-directional binding. I have a UI that shows properties of a component. The component's properties can be updated via the UI, and also by other events from background processes that are running, or even just as a reaction to some other property changing. So I need the binding from the model to the control to be bi-directional. The UI view is both read/write. The properties can be numbers, rational numbers expressed as fractions ##/###, times HH:MM:SS, enum values, etc. (My app has some complex requirements so in actual fact a simple binding probably isn't enough. But in principle it could be.) Or just think of a spreadsheet in Google docs being edited by two people on a network... I want to be able to update a cell, and I want to see when someone else updates it. Two different read/write fields connected to the same model. I just thought of something else. Can this be easily used as the field for a editable ComboBox? Scott On Wed, Jun 11, 2014 at 10:08 AM, Martin Sladecek < martin.sladecek at oracle.com> wrote: > Although I'm not sure the second one can be considered a use-case, I agree > that somebody might want uneditable field with some format (and it's up to > the developer to make it uneditable), so I'll make the value rw. > > -Martin > > On 11.6.2014 16:03, Scott Palmer wrote: > >> There are two cases for this: >> - a regular binding could be used with a read-only FormattedTextField >> for cases where you want the text representation shown in the UI and >> have it selectable and readable for copy/paste. >> - a bi-directional binding should "just work" >> >> Scott >> >> On Wed, Jun 11, 2014 at 9:59 AM, Martin Sladecek >> wrote: >> >>> Binding the property would mean the text field can be edited (the field >>> is >>> still editable), but it's content cannot be committed (by either pressing >>> ENTER or focusing out of the field), so it's content is practically >>> irrelevant. >>> If you think there's a reasonable use case for this, there should be no >>> problem with having writable value. >>> >>> -Martin >>> >>> >>> On 11.6.2014 15:53, Scott Palmer wrote: >>> >>>> In FormattedTextField why is the value property returned as a >>>> read-only property? >>>> This control should allow bi-directional bindings to the value property. >>>> >>>> Scott >>>> >>>> On Wed, Jun 11, 2014 at 4:50 AM, Martin Sladecek >>>> wrote: >>>> >>>>> Hello, >>>>> I would like to start some discussion about formatted text field API. >>>>> The >>>>> related JIRA issues are RT-14000 (formatted text field) and RT-30881 >>>>> (content filter). >>>>> >>>>> The RT-30881 defines a content filter for all text input controls (in >>>>> TextInputControl class), like TextField and TextArea. This was >>>>> originally >>>>> implemented by Richard Bair and briefly discussed here: >>>>> >>>>> http://mail.openjdk.java.net/pipermail/openjfx-dev/2012- >>>>> December/004687.html. >>>>> I've tried to build formatted text field on top of that (and made some >>>>> changes to the API) since content filtering is something most formatted >>>>> text >>>>> fields will use. >>>>> >>>>> First, the TextInputControl additions: >>>>> >>>>> * contentFilter property of type ObjectProperty >>>>> >>>>> So let's look at the content filter and content change (both nested >>>>> classes >>>>> of TextInputControl): >>>>> >>>>> /** >>>>> * Content Filter specifies the filter to be used with {@link >>>>> TextInputControl#contentFilterProperty()}. >>>>> * It allow user to intercept and modify any change done to the >>>>> text >>>>> content. >>>>> * To avoid content that's not valid for the filter, it's >>>>> possible >>>>> to >>>>> assign a default value supplier for the filter. >>>>> *

>>>>> * The filter itself is an {@code UnaryOperator} that accepts >>>>> {@link >>>>> javafx.scene.control.TextInputControl.ContentChange} object. >>>>> * It should return a {@link >>>>> javafx.scene.control.TextInputControl.ContentChange} object that >>>>> contains >>>>> the actual (filtered) >>>>> * change. Returning null rejects the change. >>>>> *

>>>>> * If default value supplier is provided, it is used when the >>>>> {@code >>>>> ContentFilter} is assigned to a {@code TextInputControl} >>>>> * and it's current text is invalid. It is expected that the >>>>> provided >>>>> default value is accepted by the filtering operator. >>>>> */ >>>>> public static class ContentFilter { >>>>> >>>>> /** >>>>> * Creates a new filter with the providing filtering >>>>> operator. >>>>> * @param filter the filtering operator >>>>> * >>>>> * @throws java.lang.NullPointerException if filter is null >>>>> */ >>>>> public ContentFilter(UnaryOperator filter) {} >>>>> >>>>> /** >>>>> * Creates a new filter with the providing filtering operator >>>>> and >>>>> default value supplier. >>>>> * @param filter the filtering operator >>>>> * @param defaultValue the default value or null >>>>> * >>>>> * @throws java.lang.NullPointerException if filter is null >>>>> */ >>>>> public ContentFilter(UnaryOperator filter, >>>>> Supplier defaultValue) {} >>>>> >>>>> /** >>>>> * The filtering operator of this filter. >>>>> * @return the operator >>>>> */ >>>>> public UnaryOperator getFilter() {} >>>>> >>>>> /** >>>>> * The default value provider of this filter >>>>> * @return the default value provider or null >>>>> */ >>>>> public Supplier getDefaultValue() {} >>>>> >>>>> /** >>>>> * Chains this filter with a filtering operator. The other >>>>> filtering >>>>> operator is used only if this >>>>> * filter's operator rejects the operation. The default >>>>> value of >>>>> the >>>>> new {@code ContentFilter} is the same >>>>> * as of this filter. >>>>> * @param other the filtering operator to chain >>>>> * @return a new ContentFilter as described above >>>>> */ >>>>> public ContentFilter orApply(UnaryOperator >>>>> other) >>>>> {} >>>>> >>>>> /** >>>>> * Chains this filter with a filtering operator of another >>>>> {@code >>>>> ContentFilter}. The other filtering operator is used only if this >>>>> * filter's operator rejects the operation. The default >>>>> value of >>>>> the >>>>> new {@code ContentFilter} is the same >>>>> * as of this filter. >>>>> * @param other the filter to chain >>>>> * @return a new ContentFilter as described above >>>>> */ >>>>> public ContentFilter orApply(ContentFilter other) {} >>>>> >>>>> } >>>>> >>>>> /** >>>>> * Contains the state representing a change in the content for a >>>>> * TextInputControl. This object is passed to any registered >>>>> * {@code contentFilter} on the TextInputControl whenever the >>>>> text >>>>> * for the TextInputControl is modified. >>>>> *

>>>>> * This class contains state and convenience methods for >>>>> determining >>>>> what >>>>> * change occurred on the control. It also has a reference to >>>>> the >>>>> * TextInputControl itself so that the developer may query >>>>> any >>>>> other >>>>> * state on the control. Note that you should never modify >>>>> the >>>>> state >>>>> * of the control directly from within the contentFilter >>>>> handler. >>>>> *

>>>>> *

>>>>> * The ContentChange is mutable, but not observable. It >>>>> should >>>>> be >>>>> used >>>>> * only for the life of a single change. It is intended that >>>>> the >>>>> * ContentChange will be modified from within the >>>>> contentFilter. >>>>> *

>>>>> */ >>>>> public static final class ContentChange implements Cloneable{ >>>>> >>>>> /** >>>>> * Gets the control associated with this change. >>>>> * @return The control associated with this change. This will >>>>> never >>>>> be null. >>>>> */ >>>>> public final TextInputControl getControl() {} >>>>> >>>>> /** >>>>> * Gets the start index into the {@link >>>>> javafx.scene.control.TextInputControl#getText()} >>>>> * for the modification. This will always be a value > 0 >>>>> and >>>>> * <= {@link >>>>> javafx.scene.control.TextInputControl#getLength()}. >>>>> * >>>>> * @return The start index >>>>> */ >>>>> public final int getStart() {} >>>>> >>>>> /** >>>>> * Sets the start index for the range to be modified. This >>>>> value >>>>> must >>>>> * always be a value > 0 and <= {@link >>>>> javafx.scene.control.TextInputControl#getLength()} >>>>> *

>>>>> * Note that setting start before the current end will >>>>> also >>>>> change end to the same value. >>>>> * >>>>> * @param value the new start index >>>>> */ >>>>> public final void setStart(int value) {} >>>>> >>>>> /** >>>>> * Gets the end index into the {@link >>>>> javafx.scene.control.TextInputControl#getText()} >>>>> * for the modification. This will always be a value > >>>>> {@link >>>>> #getStart()} and >>>>> * <= {@link >>>>> javafx.scene.control.TextInputControl#getLength()}. >>>>> * >>>>> * @return The end index >>>>> */ >>>>> public final int getEnd() {} >>>>> >>>>> /** >>>>> * Sets the end index for the range to be modified. This >>>>> value >>>>> must >>>>> * always be a value > {@link #getStart()} and <= >>>>> {@link >>>>> javafx.scene.control.TextInputControl#getLength()}. >>>>> * Note that there is an order dependency between modifying >>>>> the >>>>> start >>>>> * and end values. They must always be modified in order such >>>>> that >>>>> they >>>>> * do not violate their constraints. >>>>> * >>>>> * @param value The new end index >>>>> */ >>>>> public final void setEnd(int value) {} >>>>> >>>>> /** >>>>> * A convenience method returning an IndexRange representing >>>>> the >>>>> * start and end values. >>>>> * >>>>> * @return a non-null IndexRange representing the range from >>>>> start >>>>> to end. >>>>> */ >>>>> public final IndexRange getRange() {} >>>>> >>>>> /** >>>>> * A convenience method assigning both the start and end >>>>> values >>>>> * together, in such a way as to ensure they are valid with >>>>> respect >>>>> to >>>>> * each other. One way to use this method is to set the range >>>>> like >>>>> this: >>>>> * {@code >>>>> * change.setRange(IndexRange.normalize(newStart, >>>>> newEnd)); >>>>> * } >>>>> * >>>>> * @param value The new range. Cannot be null. >>>>> */ >>>>> public final void setRange(IndexRange value) {} >>>>> >>>>> /** >>>>> * A convenience method assigning both the start and end >>>>> values >>>>> * together, in such a way as to ensure they are valid with >>>>> respect >>>>> to >>>>> * each other. The start must be less than or equal to the >>>>> end. >>>>> * >>>>> * @param start The new start value. Must be a valid start >>>>> value >>>>> * @param end The new end value. Must be a valid end value >>>>> */ >>>>> public final void setRange(int start, int end) {} >>>>> >>>>> /** >>>>> * Gets the new anchor. This value will always be > 0 and >>>>> * <= {@link #getProposedControlText()}{@ >>>>> code}.getLength()} >>>>> * >>>>> * @return The new anchor position >>>>> */ >>>>> public final int getNewAnchor() {} >>>>> >>>>> /** >>>>> * Sets the new anchor. This value must be > 0 and >>>>> * <= {@link #getProposedControlText()}{@ >>>>> code}.getLength()}. >>>>> Note >>>>> that there >>>>> * is an order dependence here, in that the anchor should be >>>>> * specified after the new text has been specified. >>>>> * >>>>> * @param value The new anchor position >>>>> */ >>>>> public final void setNewAnchor(int value) {} >>>>> >>>>> /** >>>>> * Gets the new caret position. This value will always be >>>>> > 0 >>>>> and >>>>> * <= {@link #getProposedControlText()}{@ >>>>> code}.getLength()} >>>>> * >>>>> * @return The new caret position >>>>> */ >>>>> public final int getNewCaretPosition() {} >>>>> >>>>> /** >>>>> * Sets the new caret position. This value must be > 0 and >>>>> * <= {@link #getProposedControlText()}{@ >>>>> code}.getLength()}. >>>>> Note >>>>> that there >>>>> * is an order dependence here, in that the caret position >>>>> should be >>>>> * specified after the new text has been specified. >>>>> * >>>>> * @param value The new caret position >>>>> */ >>>>> public final void setNewCaretPosition(int value) {} >>>>> >>>>> /** >>>>> * Gets the text used in this change. For example, this may >>>>> be >>>>> new >>>>> * text being added, or text which is replacing all the >>>>> control's >>>>> text >>>>> * within the range of start and end. Typically it is an >>>>> empty >>>>> string >>>>> * only for cases where the range is being deleted. >>>>> * >>>>> * @return The text involved in this change. This will never >>>>> be >>>>> null. >>>>> */ >>>>> public final String getText() {} >>>>> >>>>> /** >>>>> * Sets the text to use in this change. This is used to >>>>> replace >>>>> the >>>>> * range from start to end, if such a range exists, or to >>>>> insert >>>>> text >>>>> * at the position represented by start == end. >>>>> * >>>>> * @param value The text. This cannot be null. >>>>> */ >>>>> public final void setText(String value) {} >>>>> >>>>> /** >>>>> * Gets the complete new text which will be used on the >>>>> control >>>>> after >>>>> * this change. Note that some controls (such as TextField) >>>>> may >>>>> do >>>>> further >>>>> * filtering after the change is made (such as stripping out >>>>> newlines) >>>>> * such that you cannot assume that the newText will be >>>>> exactly >>>>> the >>>>> same >>>>> * as what is finally set as the content on the control, >>>>> however >>>>> it >>>>> is >>>>> * correct to assume that this is the case for the purpose of >>>>> computing >>>>> * the new caret position and new anchor position (as those >>>>> values >>>>> supplied >>>>> * will be modified as necessary after the control has >>>>> stripped >>>>> any >>>>> * additional characters that the control might strip). >>>>> * >>>>> * @return The controls proposed new text at the time of this >>>>> call, >>>>> according >>>>> * to the state set for start, end, and text >>>>> properties >>>>> on >>>>> this ContentChange object. >>>>> */ >>>>> public final String getProposedControlText() {} >>>>> >>>>> /** >>>>> * Gets whether this change was in response to text being >>>>> added. >>>>> Note that >>>>> * after the ContentChange object is modified by the >>>>> contentFilter >>>>> (by one >>>>> * of the setters) the return value of this method is not >>>>> altered. >>>>> It answers >>>>> * as to whether this change was fired as a result of text >>>>> being >>>>> added, >>>>> * not whether text will end up being added in the end. >>>>> * >>>>> *

>>>>> * Text may have been added either cause it was {@link >>>>> #isInserted()}, >>>>> * {@link #isAppended()}, or {@link #isPrepended()}. >>>>> *

>>>>> * >>>>> * @return true if text was being added >>>>> */ >>>>> public final boolean isAdded() {} >>>>> >>>>> /** >>>>> * Gets whether this change was in response to text being >>>>> deleted. >>>>> Note that >>>>> * after the ContentChange object is modified by the >>>>> contentFilter >>>>> (by one >>>>> * of the setters) the return value of this method is not >>>>> altered. >>>>> It answers >>>>> * as to whether this change was fired as a result of text >>>>> being >>>>> deleted, >>>>> * not whether text will end up being deleted in the end. >>>>> * >>>>> * @return true if text was being deleted >>>>> */ >>>>> public final boolean isDeleted() {} >>>>> >>>>> /** >>>>> * Gets whether this change was in response to text being >>>>> added, >>>>> and >>>>> in >>>>> * particular, inserted into the midst of the control text. >>>>> If >>>>> this >>>>> is >>>>> * true, then {@link #isAdded()} will return true. >>>>> * >>>>> * @return true if text was being inserted >>>>> */ >>>>> public final boolean isInserted() {} >>>>> >>>>> /** >>>>> * Gets whether this change was in response to text being >>>>> added, >>>>> and >>>>> in >>>>> * particular, appended to the end of the control text. If >>>>> this >>>>> is >>>>> * true, then {@link #isAdded()} will return true. >>>>> * >>>>> * @return true if text was being appended >>>>> */ >>>>> public final boolean isAppended() {} >>>>> >>>>> /** >>>>> * Gets whether this change was in response to text being >>>>> added, >>>>> and >>>>> in >>>>> * particular, prepended at the start of the control text. If >>>>> this >>>>> is >>>>> * true, then {@link #isAdded()} will return true. >>>>> * >>>>> * @return true if text was being prepended >>>>> */ >>>>> public final boolean isPrepended() {} >>>>> >>>>> /** >>>>> * Gets whether this change was in response to text being >>>>> replaced. >>>>> Note that >>>>> * after the ContentChange object is modified by the >>>>> contentFilter >>>>> (by one >>>>> * of the setters) the return value of this method is not >>>>> altered. >>>>> It answers >>>>> * as to whether this change was fired as a result of text >>>>> being >>>>> replaced, >>>>> * not whether text will end up being replaced in the end. >>>>> * >>>>> * @return true if text was being replaced >>>>> */ >>>>> public final boolean isReplaced() {} >>>>> >>>>> @Override >>>>> public ContentChange clone() {} >>>>> } >>>>> >>>>> >>>>> >>>>> The new FormattedTextField class relies on the content filtering and >>>>> adds >>>>> a >>>>> concept of values convertible to/from a text: >>>>> >>>>> ** >>>>> * FormattedTextField is a special kind of TextField that handles >>>>> conversion >>>>> between a value of type {@code T} and >>>>> * a text of this TextField. >>>>> *

>>>>> * There are two types of converters: >>>>> *

    >>>>> *
  • {@link #valueConverterProperty()} represents the default >>>>> converter between the text and values
  • >>>>> *
  • {@link #editConverterProperty()} is a special converter >>>>> that >>>>> takes precedence when the textfield is being edited. >>>>> * This allows to have a edit-friendly format and a nice display >>>>> format >>>>> for the value
  • >>>>> *
>>>>> * >>>>> *

>>>>> * When editing the text field, the value is not updated until either >>>>> {@code >>>>> ENTER} key is pressed or focus is lost. >>>>> * If the conversion fail, the last known valid value is used >>>>> instead. >>>>> * >>>>> * @param the value type >>>>> */ >>>>> public final class FormattedTextField extends TextField{ >>>>> >>>>> /** >>>>> * Creates a formatted text field with the specified converter >>>>> and a >>>>> null value. >>>>> * @param valueConverter the value converter >>>>> */ >>>>> public FormattedTextField(StringConverter valueConverter) {} >>>>> >>>>> /** >>>>> * Creates a formatted text field with the specified converter >>>>> and a >>>>> value >>>>> * @param valueConverter the value converter >>>>> * @param value the initial value >>>>> */ >>>>> public FormattedTextField(StringConverter valueConverter, T >>>>> value) {} >>>>> >>>>> /** >>>>> * This represents the current value of the formatted text >>>>> field. If >>>>> a >>>>> {@link #valueConverterProperty()} is provided, >>>>> * and the text field is not being edited, the value is a >>>>> representation >>>>> of the text in the text field. >>>>> */ >>>>> public final ReadOnlyObjectProperty valueProperty() {} >>>>> public final void setValue(T value) {} >>>>> public final T getValue() {} >>>>> >>>>> /** >>>>> * The default converter between the values and text. >>>>> * Note that changing the converter might lead to a change of >>>>> value, >>>>> but >>>>> only if the text can be converted by the new >>>>> * converter. Otherwise, the current value is converted to a >>>>> text, >>>>> which >>>>> is set to the field. >>>>> * @see #editConverterProperty() >>>>> */ >>>>> public final ObjectProperty> >>>>> valueConverterProperty() >>>>> {} >>>>> public final void setValueConverter(StringConverter >>>>> converter) {} >>>>> public final StringConverter getValueConverter() {} >>>>> >>>>> /** >>>>> * Converter between values and text when the field is being >>>>> edited. >>>>> * @see #valueConverterProperty() >>>>> */ >>>>> public final ObjectProperty> >>>>> editConverterProperty() >>>>> {} >>>>> public final void setEditConverter(StringConverter >>>>> converter) {} >>>>> public final StringConverter getEditConverter() {} >>>>> >>>>> } >>>>> >>>>> You can find the whole patch here: >>>>> >>>>> https://javafx-jira.kenai.com/secure/attachment/44678/rt- >>>>> 30881_14000_proposal.patch >>>>> There are some examples for content filtering in RT-30881. I'll attach >>>>> some >>>>> formatted text field samples soon. >>>>> >>>>> Thanks, >>>>> -Martin >>>>> >>>>> > From swpalmer at gmail.com Wed Jun 11 16:18:33 2014 From: swpalmer at gmail.com (Scott Palmer) Date: Wed, 11 Jun 2014 12:18:33 -0400 Subject: Fwd: All-Permissions not working properly with sun.plugin2.applet.FXAppletSecurityManager In-Reply-To: <53987C58.5080308@oracle.com> References: <2D816D15-74B6-499B-B8A5-07451BA075B1@oracle.com> <534F65C9.8030801@oracle.com> <53987C58.5080308@oracle.com> Message-ID: Drat... I was hoping to see something much sooner, like 8u20 (obviously too late now) or 8u40. I'm unable to use Web Start deployment because of this. Is it necessary for these issues to be blocked from anonymous viewing? Thanks for the update. Scott On Wed, Jun 11, 2014 at 11:57 AM, Kevin Rushforth < kevin.rushforth at oracle.com> wrote: > These are now assigned to Dmitry Cherapanov who I have copied here in case > he isn't on the openjfx alias. They are both targeted to JDK 9. > > -- Kevin > > > Scott Palmer wrote: > >> I tried to send an email to Thomas asking about the status of these issues >> (they are not visible to me), but the email bounced (user unknown). Could >> someone let me know the status? >> >> Thanks, >> >> Scott >> >> >> On Thu, Apr 17, 2014 at 1:25 AM, Thomas Ng >> wrote: >> >> >> >>> Thanks for the report! >>> >>> Two bugs created for this: >>> >>> security manager and applet-desc webstart mode: >>> https://bugs.openjdk.java.net/browse/JDK-8040231 >>> >>> reflection in daemon thread: >>> https://bugs.openjdk.java.net/browse/JDK-8040699 >>> >>> -thomas >>> >>> >>> *From: *Scott Palmer >>> *Subject: **All-Permissions not working properly with >>> sun.plugin2.applet.FXAppletSecurityManager* >>> *Date: *April 14, 2014 at 1:07:36 PM PDT >>> *To: *"openjfx-dev at openjdk.java.net" >>> >>> >>> Can someone confirm that all-permissions is working for JavaFX apps >>> that are launched via Web Start with Java 8.0 and use daemon threads >>> in a Service? >>> >>> I have a JNLP file that has: >>> >>> >>> >>> >>> and the manifest of my app's jar has the following instruction in my >>> Gradle script: >>> >>> jar { >>> manifest { >>> attributes('Permissions': 'all-permissions', >>> 'Codebase': '*') >>> } >>> } >>> >>> I'm using the javafx gradle plugin and signing the jars... >>> e.g. I see this for every dependency and the main jar: >>> ... >>> Signing (BLOB) C:\Users\scott\.m2\caches\path\to\some.jar >>> Signed as C:\Users\scott\dev\MyProject\build\libs\some.jar >>> ... >>> >>> I even tried System.setSecurityManager(null); in my start() method >>> (and it lets me do it). >>> >>> However, daemon threads started by my Service are unable to use >>> reflection. (It is working in the main FX application thread.) I see >>> the following stack trace in the Java console: >>> >>> >>> Caused by: java.security.AccessControlException: access denied >>> ("java.lang.reflect.ReflectPermission" "suppressAccessChecks") >>> at java.security.AccessControlContext.checkPermission(Unknown Source) >>> at java.security.AccessController.checkPermission(Unknown Source) >>> at java.lang.SecurityManager.checkPermission(Unknown Source) >>> at sun.plugin2.applet.FXAppletSecurityManager.checkPermission(Unknown >>> Source) >>> at java.lang.reflect.AccessibleObject.setAccessible(Unknown Source) >>> >>> >>> Caused by: java.security.AccessControlException: access denied >>> ("java.lang.RuntimePermission" "accessDeclaredMembers") >>> at java.security.AccessControlContext.checkPermission(Unknown Source) >>> at java.security.AccessController.checkPermission(Unknown Source) >>> at java.lang.SecurityManager.checkPermission(Unknown Source) >>> at sun.plugin2.applet.FXAppletSecurityManager.checkPermission(Unknown >>> Source) >>> at java.lang.Class.checkMemberAccess(Unknown Source) >>> at java.lang.Class.getDeclaredMethod(Unknown Source) >>> at >>> ma.glasnost.orika.property.PropertyResolver.resolvePropertyType( >>> PropertyResolver.java:304) >>> at >>> ma.glasnost.orika.property.PropertyResolver.processProperty( >>> PropertyResolver.java:240) >>> at >>> ma.glasnost.orika.property.IntrospectorPropertyResolver. >>> collectProperties(IntrospectorPropertyResolver.java:83) >>> ... 33 more >>> >>> I bring it up here because FXAppletSecurityManager is involved and >>> this smells like a possible bug in plugin2 >>> >>> Regards, >>> >>> Scott >>> >>> >>> >>> >>> >>> >> From martin.sladecek at oracle.com Wed Jun 11 16:38:04 2014 From: martin.sladecek at oracle.com (Martin Sladecek) Date: Wed, 11 Jun 2014 18:38:04 +0200 Subject: Formatted text field API (RT-14000, RT-30881) In-Reply-To: References: <53981862.3030008@oracle.com> <539860B4.3080102@oracle.com> <539862F5.30706@oracle.com> Message-ID: <539885EC.90903@oracle.com> I already posted a comment in JIRA (RT-30881) that we should make the value writable. Anyhow, we should move the discussion to JIRA to keep everything at one place. Thanks, -Martin On 11.6.2014 18:14, Scott Palmer wrote: > I already have a use for a bi-directional binding. I have a UI that > shows properties of a component. The component's properties can be > updated via the UI, and also by other events from background processes > that are running, or even just as a reaction to some other property > changing. So I need the binding from the model to the control to be > bi-directional. The UI view is both read/write. The properties can be > numbers, rational numbers expressed as fractions ##/###, times > HH:MM:SS, enum values, etc. > > (My app has some complex requirements so in actual fact a simple > binding probably isn't enough. But in principle it could be.) > > Or just think of a spreadsheet in Google docs being edited by two > people on a network... I want to be able to update a cell, and I want > to see when someone else updates it. Two different read/write fields > connected to the same model. > > I just thought of something else. Can this be easily used as the field > for a editable ComboBox? > > Scott > > > On Wed, Jun 11, 2014 at 10:08 AM, Martin Sladecek > > wrote: > > Although I'm not sure the second one can be considered a use-case, > I agree that somebody might want uneditable field with some format > (and it's up to the developer to make it uneditable), so I'll make > the value rw. > > -Martin > > On 11.6.2014 16:03, Scott Palmer wrote: > > There are two cases for this: > - a regular binding could be used with a read-only > FormattedTextField > for cases where you want the text representation shown in the > UI and > have it selectable and readable for copy/paste. > - a bi-directional binding should "just work" > > Scott > > On Wed, Jun 11, 2014 at 9:59 AM, Martin Sladecek > > wrote: > > Binding the property would mean the text field can be > edited (the field is > still editable), but it's content cannot be committed (by > either pressing > ENTER or focusing out of the field), so it's content is > practically > irrelevant. > If you think there's a reasonable use case for this, there > should be no > problem with having writable value. > > -Martin > > > On 11.6.2014 15:53, Scott Palmer wrote: > > In FormattedTextField why is the value property > returned as a > read-only property? > This control should allow bi-directional bindings to > the value property. > > Scott > > On Wed, Jun 11, 2014 at 4:50 AM, Martin Sladecek > > wrote: > > Hello, > I would like to start some discussion about > formatted text field API. The > related JIRA issues are RT-14000 (formatted text > field) and RT-30881 > (content filter). > > The RT-30881 defines a content filter for all text > input controls (in > TextInputControl class), like TextField and > TextArea. This was originally > implemented by Richard Bair and briefly discussed > here: > > http://mail.openjdk.java.net/pipermail/openjfx-dev/2012-December/004687.html. > I've tried to build formatted text field on top of > that (and made some > changes to the API) since content filtering is > something most formatted > text > fields will use. > > First, the TextInputControl additions: > > * contentFilter property of type > ObjectProperty > > So let's look at the content filter and content > change (both nested > classes > of TextInputControl): > > /** > * Content Filter specifies the filter to be > used with {@link > TextInputControl#contentFilterProperty()}. > * It allow user to intercept and modify any > change done to the text > content. > * To avoid content that's not valid for the > filter, it's possible > to > assign a default value supplier for the filter. > *

> * The filter itself is an {@code > UnaryOperator} that accepts {@link > javafx.scene.control.TextInputControl.ContentChange} > object. > * It should return a {@link > javafx.scene.control.TextInputControl.ContentChange} > object that contains > the actual (filtered) > * change. Returning null rejects the change. > *

> * If default value supplier is provided, it > is used when the {@code > ContentFilter} is assigned to a {@code > TextInputControl} > * and it's current text is invalid. It is > expected that the > provided > default value is accepted by the filtering operator. > */ > public static class ContentFilter { > > /** > * Creates a new filter with the > providing filtering operator. > * @param filter the filtering operator > * > * @throws > java.lang.NullPointerException if filter is null > */ > public > ContentFilter(UnaryOperator filter) {} > > /** > * Creates a new filter with the > providing filtering operator > and > default value supplier. > * @param filter the filtering operator > * @param defaultValue the default value > or null > * > * @throws > java.lang.NullPointerException if filter is null > */ > public > ContentFilter(UnaryOperator filter, > Supplier defaultValue) {} > > /** > * The filtering operator of this filter. > * @return the operator > */ > public UnaryOperator > getFilter() {} > > /** > * The default value provider of this filter > * @return the default value provider or > null > */ > public Supplier getDefaultValue() {} > > /** > * Chains this filter with a filtering > operator. The other > filtering > operator is used only if this > * filter's operator rejects the > operation. The default value of > the > new {@code ContentFilter} is the same > * as of this filter. > * @param other the filtering operator > to chain > * @return a new ContentFilter as > described above > */ > public ContentFilter > orApply(UnaryOperator other) > {} > > /** > * Chains this filter with a filtering > operator of another > {@code > ContentFilter}. The other filtering operator is > used only if this > * filter's operator rejects the > operation. The default value of > the > new {@code ContentFilter} is the same > * as of this filter. > * @param other the filter to chain > * @return a new ContentFilter as > described above > */ > public ContentFilter > orApply(ContentFilter other) {} > > } > > /** > * Contains the state representing a change > in the content for a > * TextInputControl. This object is passed > to any registered > * {@code contentFilter} on the > TextInputControl whenever the text > * for the TextInputControl is modified. > *

> * This class contains state and > convenience methods for > determining > what > * change occurred on the control. It > also has a reference to > the > * TextInputControl itself so that the > developer may query any > other > * state on the control. Note that you > should never modify the > state > * of the control directly from within > the contentFilter > handler. > *

> *

> * The ContentChange is mutable, but not > observable. It should > be > used > * only for the life of a single change. > It is intended that the > * ContentChange will be modified from > within the contentFilter. > *

> */ > public static final class ContentChange > implements Cloneable{ > > /** > * Gets the control associated with this > change. > * @return The control associated with > this change. This will > never > be null. > */ > public final TextInputControl > getControl() {} > > /** > * Gets the start index into the {@link > javafx.scene.control.TextInputControl#getText()} > * for the modification. This will > always be a value > 0 and > * <= {@link > javafx.scene.control.TextInputControl#getLength()}. > * > * @return The start index > */ > public final int getStart() {} > > /** > * Sets the start index for the range to > be modified. This value > must > * always be a value > 0 and <= {@link > javafx.scene.control.TextInputControl#getLength()} > *

> * Note that setting start before > the current end will > also > change end to the same value. > * > * @param value the new start index > */ > public final void setStart(int value) {} > > /** > * Gets the end index into the {@link > javafx.scene.control.TextInputControl#getText()} > * for the modification. This will > always be a value > {@link > #getStart()} and > * <= {@link > javafx.scene.control.TextInputControl#getLength()}. > * > * @return The end index > */ > public final int getEnd() {} > > /** > * Sets the end index for the range to > be modified. This value > must > * always be a value > {@link > #getStart()} and <= {@link > javafx.scene.control.TextInputControl#getLength()}. > * Note that there is an order > dependency between modifying the > start > * and end values. They must always be > modified in order such > that > they > * do not violate their constraints. > * > * @param value The new end index > */ > public final void setEnd(int value) {} > > /** > * A convenience method returning an > IndexRange representing the > * start and end values. > * > * @return a non-null IndexRange > representing the range from > start > to end. > */ > public final IndexRange getRange() {} > > /** > * A convenience method assigning both > the start and end values > * together, in such a way as to ensure > they are valid with > respect > to > * each other. One way to use this > method is to set the range > like > this: > * {@code > * > change.setRange(IndexRange.normalize(newStart, > newEnd)); > * } > * > * @param value The new range. Cannot be > null. > */ > public final void setRange(IndexRange > value) {} > > /** > * A convenience method assigning both > the start and end values > * together, in such a way as to ensure > they are valid with > respect > to > * each other. The start must be less > than or equal to the end. > * > * @param start The new start value. > Must be a valid start value > * @param end The new end value. Must be > a valid end value > */ > public final void setRange(int start, > int end) {} > > /** > * Gets the new anchor. This value will > always be > 0 and > * <= {@link > #getProposedControlText()}{@code}.getLength()} > * > * @return The new anchor position > */ > public final int getNewAnchor() {} > > /** > * Sets the new anchor. This value must > be > 0 and > * <= {@link > #getProposedControlText()}{@code}.getLength()}. > Note > that there > * is an order dependence here, in that > the anchor should be > * specified after the new text has been > specified. > * > * @param value The new anchor position > */ > public final void setNewAnchor(int value) {} > > /** > * Gets the new caret position. This > value will always be > 0 > and > * <= {@link > #getProposedControlText()}{@code}.getLength()} > * > * @return The new caret position > */ > public final int getNewCaretPosition() {} > > /** > * Sets the new caret position. This > value must be > 0 and > * <= {@link > #getProposedControlText()}{@code}.getLength()}. > Note > that there > * is an order dependence here, in that > the caret position > should be > * specified after the new text has been > specified. > * > * @param value The new caret position > */ > public final void > setNewCaretPosition(int value) {} > > /** > * Gets the text used in this change. > For example, this may be > new > * text being added, or text which is > replacing all the > control's > text > * within the range of start and end. > Typically it is an empty > string > * only for cases where the range is > being deleted. > * > * @return The text involved in this > change. This will never be > null. > */ > public final String getText() {} > > /** > * Sets the text to use in this change. > This is used to replace > the > * range from start to end, if such a > range exists, or to insert > text > * at the position represented by start > == end. > * > * @param value The text. This cannot be > null. > */ > public final void setText(String value) {} > > /** > * Gets the complete new text which will > be used on the control > after > * this change. Note that some controls > (such as TextField) may > do > further > * filtering after the change is made > (such as stripping out > newlines) > * such that you cannot assume that the > newText will be exactly > the > same > * as what is finally set as the content > on the control, however > it > is > * correct to assume that this is the > case for the purpose of > computing > * the new caret position and new anchor > position (as those > values > supplied > * will be modified as necessary after > the control has stripped > any > * additional characters that the > control might strip). > * > * @return The controls proposed new > text at the time of this > call, > according > * to the state set for start, > end, and text properties > on > this ContentChange object. > */ > public final String > getProposedControlText() {} > > /** > * Gets whether this change was in > response to text being added. > Note that > * after the ContentChange object is > modified by the > contentFilter > (by one > * of the setters) the return value of > this method is not > altered. > It answers > * as to whether this change was fired > as a result of text being > added, > * not whether text will end up being > added in the end. > * > *

> * Text may have been added either cause > it was {@link > #isInserted()}, > * {@link #isAppended()}, or {@link > #isPrepended()}. > *

> * > * @return true if text was being added > */ > public final boolean isAdded() {} > > /** > * Gets whether this change was in > response to text being > deleted. > Note that > * after the ContentChange object is > modified by the > contentFilter > (by one > * of the setters) the return value of > this method is not > altered. > It answers > * as to whether this change was fired > as a result of text being > deleted, > * not whether text will end up being > deleted in the end. > * > * @return true if text was being deleted > */ > public final boolean isDeleted() {} > > /** > * Gets whether this change was in > response to text being added, > and > in > * particular, inserted into the midst > of the control text. If > this > is > * true, then {@link #isAdded()} will > return true. > * > * @return true if text was being inserted > */ > public final boolean isInserted() {} > > /** > * Gets whether this change was in > response to text being added, > and > in > * particular, appended to the end of > the control text. If this > is > * true, then {@link #isAdded()} will > return true. > * > * @return true if text was being appended > */ > public final boolean isAppended() {} > > /** > * Gets whether this change was in > response to text being added, > and > in > * particular, prepended at the start of > the control text. If > this > is > * true, then {@link #isAdded()} will > return true. > * > * @return true if text was being prepended > */ > public final boolean isPrepended() {} > > /** > * Gets whether this change was in > response to text being > replaced. > Note that > * after the ContentChange object is > modified by the > contentFilter > (by one > * of the setters) the return value of > this method is not > altered. > It answers > * as to whether this change was fired > as a result of text being > replaced, > * not whether text will end up being > replaced in the end. > * > * @return true if text was being replaced > */ > public final boolean isReplaced() {} > > @Override > public ContentChange clone() {} > } > > > > The new FormattedTextField class relies on the > content filtering and adds > a > concept of values convertible to/from a text: > > ** > * FormattedTextField is a special kind of > TextField that handles > conversion > between a value of type {@code T} and > * a text of this TextField. > *

> * There are two types of converters: > *

    > *
  • {@link #valueConverterProperty()} > represents the default > converter between the text and values
  • > *
  • {@link #editConverterProperty()} is a > special converter that > takes precedence when the textfield is being edited. > * This allows to have a edit-friendly > format and a nice display > format > for the value
  • > *
> * > *

> * When editing the text field, the value is not > updated until either > {@code > ENTER} key is pressed or focus is lost. > * If the conversion fail, the last known valid > value is used instead. > * > * @param the value type > */ > public final class FormattedTextField extends > TextField{ > > /** > * Creates a formatted text field with the > specified converter and a > null value. > * @param valueConverter the value converter > */ > public FormattedTextField(StringConverter > valueConverter) {} > > /** > * Creates a formatted text field with the > specified converter and a > value > * @param valueConverter the value converter > * @param value the initial value > */ > public FormattedTextField(StringConverter > valueConverter, T > value) {} > > /** > * This represents the current value of the > formatted text field. If > a > {@link #valueConverterProperty()} is provided, > * and the text field is not being edited, > the value is a > representation > of the text in the text field. > */ > public final ReadOnlyObjectProperty > valueProperty() {} > public final void setValue(T value) {} > public final T getValue() {} > > /** > * The default converter between the values > and text. > * Note that changing the converter might > lead to a change of value, > but > only if the text can be converted by the new > * converter. Otherwise, the current value > is converted to a text, > which > is set to the field. > * @see #editConverterProperty() > */ > public final ObjectProperty> > valueConverterProperty() > {} > public final void > setValueConverter(StringConverter converter) {} > public final StringConverter > getValueConverter() {} > > /** > * Converter between values and text when > the field is being edited. > * @see #valueConverterProperty() > */ > public final ObjectProperty> > editConverterProperty() > {} > public final void > setEditConverter(StringConverter converter) {} > public final StringConverter > getEditConverter() {} > > } > > You can find the whole patch here: > > https://javafx-jira.kenai.com/secure/attachment/44678/rt-30881_14000_proposal.patch > There are some examples for content filtering in > RT-30881. I'll attach > some > formatted text field samples soon. > > Thanks, > -Martin > > > From kevin.rushforth at oracle.com Wed Jun 11 16:52:12 2014 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Wed, 11 Jun 2014 09:52:12 -0700 Subject: Fwd: All-Permissions not working properly with sun.plugin2.applet.FXAppletSecurityManager In-Reply-To: References: <2D816D15-74B6-499B-B8A5-07451BA075B1@oracle.com> <534F65C9.8030801@oracle.com> <53987C58.5080308@oracle.com> Message-ID: <5398893C.8080107@oracle.com> Dmitry can comment further, but it is possible that this issue could be backported to 8u40 if done soon enough. I will double-check whether the bugs can be made non-confidential (so you can at least track progress), but I suspect they cannot in their current form, in which case new bugs should be filed with the confidential information moved to confidential comments in the bug. I will help with this. -- Kevin Scott Palmer wrote: > Drat... I was hoping to see something much sooner, like 8u20 > (obviously too late now) or 8u40. I'm unable to use Web Start > deployment because of this. > > Is it necessary for these issues to be blocked from anonymous viewing? > > Thanks for the update. > > Scott > > > On Wed, Jun 11, 2014 at 11:57 AM, Kevin Rushforth > > wrote: > > These are now assigned to Dmitry Cherapanov who I have copied here > in case he isn't on the openjfx alias. They are both targeted to > JDK 9. > > -- Kevin > > > Scott Palmer wrote: > > I tried to send an email to Thomas asking about the status of > these issues > (they are not visible to me), but the email bounced (user > unknown). Could > someone let me know the status? > > Thanks, > > Scott > > > On Thu, Apr 17, 2014 at 1:25 AM, Thomas Ng > > wrote: > > > > Thanks for the report! > > Two bugs created for this: > > security manager and applet-desc webstart mode: > https://bugs.openjdk.java.net/browse/JDK-8040231 > > reflection in daemon thread: > https://bugs.openjdk.java.net/browse/JDK-8040699 > > -thomas > > > *From: *Scott Palmer > > *Subject: **All-Permissions not working properly with > sun.plugin2.applet.FXAppletSecurityManager* > *Date: *April 14, 2014 at 1:07:36 PM PDT > *To: *"openjfx-dev at openjdk.java.net > " > > > > > Can someone confirm that all-permissions is working for > JavaFX apps > that are launched via Web Start with Java 8.0 and use > daemon threads > in a Service? > > I have a JNLP file that has: > > > > > and the manifest of my app's jar has the following > instruction in my > Gradle script: > > jar { > manifest { > attributes('Permissions': 'all-permissions', > 'Codebase': '*') > } > } > > I'm using the javafx gradle plugin and signing the jars... > e.g. I see this for every dependency and the main jar: > ... > Signing (BLOB) C:\Users\scott\.m2\caches\path\to\some.jar > Signed as C:\Users\scott\dev\MyProject\build\libs\some.jar > ... > > I even tried System.setSecurityManager(null); in my > start() method > (and it lets me do it). > > However, daemon threads started by my Service are unable > to use > reflection. (It is working in the main FX application > thread.) I see > the following stack trace in the Java console: > > > Caused by: java.security.AccessControlException: access denied > ("java.lang.reflect.ReflectPermission" "suppressAccessChecks") > at > java.security.AccessControlContext.checkPermission(Unknown > Source) > at java.security.AccessController.checkPermission(Unknown > Source) > at java.lang.SecurityManager.checkPermission(Unknown Source) > at > sun.plugin2.applet.FXAppletSecurityManager.checkPermission(Unknown > Source) > at > java.lang.reflect.AccessibleObject.setAccessible(Unknown > Source) > > > Caused by: java.security.AccessControlException: access denied > ("java.lang.RuntimePermission" "accessDeclaredMembers") > at > java.security.AccessControlContext.checkPermission(Unknown > Source) > at java.security.AccessController.checkPermission(Unknown > Source) > at java.lang.SecurityManager.checkPermission(Unknown Source) > at > sun.plugin2.applet.FXAppletSecurityManager.checkPermission(Unknown > Source) > at java.lang.Class.checkMemberAccess(Unknown Source) > at java.lang.Class.getDeclaredMethod(Unknown Source) > at > ma.glasnost.orika.property.PropertyResolver.resolvePropertyType(PropertyResolver.java:304) > at > ma.glasnost.orika.property.PropertyResolver.processProperty(PropertyResolver.java:240) > at > ma.glasnost.orika.property.IntrospectorPropertyResolver.collectProperties(IntrospectorPropertyResolver.java:83) > ... 33 more > > I bring it up here because FXAppletSecurityManager is > involved and > this smells like a possible bug in plugin2 > > Regards, > > Scott > > > > > > > From hang.vo at oracle.com Wed Jun 11 17:18:22 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Wed, 11 Jun 2014 17:18:22 +0000 Subject: hg: openjfx/8u-dev/rt: [Accessibility] improve comments to MacAccessible.java Message-ID: <201406111718.s5BHIXPo028125@aojmv0008> Changeset: 0cfa9e528b26 Author: Felipe Heidrich Date: 2014-06-11 10:14 -0700 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/0cfa9e528b26 [Accessibility] improve comments to MacAccessible.java ! modules/graphics/src/main/java/com/sun/glass/ui/mac/MacAccessible.java From lisa.selle at oracle.com Wed Jun 11 17:35:11 2014 From: lisa.selle at oracle.com (Lisa Selle) Date: Wed, 11 Jun 2014 13:35:11 -0400 Subject: [8u20] Review request RT-34962 Ensemble: Speed Gauge stops animation after going back to main screen Message-ID: <5398934F.2080006@oracle.com> Jasper, Please review the proposed fix for https://javafx-jira.kenai.com/browse/RT-34962 Details in jira. Thanks, Lisa From hang.vo at oracle.com Wed Jun 11 17:48:19 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Wed, 11 Jun 2014 17:48:19 +0000 Subject: hg: openjfx/8u-dev/rt: 2 new changesets Message-ID: <201406111748.s5BHmZaC002361@aojmv0008> Changeset: 18ca3f87dab2 Author: David Grieve Date: 2014-06-11 13:32 -0400 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/18ca3f87dab2 RT-37500: [Android] Map.computeIfAbsent call in StyleManager ! modules/graphics/src/main/java/com/sun/javafx/css/StyleManager.java Changeset: dddec7c8b7c2 Author: Lisa.Selle at oracle.com Date: 2014-06-11 13:44 -0400 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/dddec7c8b7c2 Fix for RT-36915 [Monocle] Add support for minimize to monocle Reviewed by dblaukopf, dhill Tested with HelloSanity ! modules/graphics/src/main/java/com/sun/glass/ui/monocle/MonocleWindow.java From hang.vo at oracle.com Wed Jun 11 19:17:35 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Wed, 11 Jun 2014 19:17:35 +0000 Subject: hg: openjfx/8u-dev/rt: 2 new changesets Message-ID: <201406111917.s5BJHqM7015541@aojmv0008> Changeset: 9229486ecaea Author: "Joseph Andresen " Date: 2014-06-11 12:06 -0700 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/9229486ecaea RT-36990: [Accessibility, Mac] Toolbar side menu does not get narrator focus. reviewed-by: felipe ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ContextMenuContent.java Changeset: b7698ff4b6e3 Author: Felipe Heidrich Date: 2014-06-11 12:09 -0700 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/b7698ff4b6e3 [Accessibility] Pagination is not annoucing selected page changed (using keyboard). This happens because the notification was sent before the selected page changed. Thus, at the time the notification windows 8 see nothing really changed and annouces nothing, Windows 7 annouces the old (and wrong) page. The fix is to send the notification after the selected page changes. ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/PaginationSkin.java ! modules/controls/src/main/java/javafx/scene/control/Pagination.java From hang.vo at oracle.com Wed Jun 11 19:32:51 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Wed, 11 Jun 2014 19:32:51 +0000 Subject: hg: openjfx/8u-dev/rt: Fix for RT-34962 Ensemble: Speed Gauge stops animation after going back to main screen Message-ID: <201406111933.s5BJX8jm017514@aojmv0008> Changeset: 6eaeae29f418 Author: Lisa.Selle at oracle.com Date: 2014-06-11 15:21 -0400 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/6eaeae29f418 Fix for RT-34962 Ensemble: Speed Gauge stops animation after going back to main screen Reviewed by jasper potts Tested with Ensemble ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/brickbreaker/BrickBreakerApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/brickbreaker/Level.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/gauge/SpeedGaugeApp.java From hang.vo at oracle.com Wed Jun 11 20:03:30 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Wed, 11 Jun 2014 20:03:30 +0000 Subject: hg: openjfx/8u-dev/rt: RT-35473 [Monocle] Allow specifying the VNC port (required to allow simultaneous tests in Jenkins) Message-ID: <201406112003.s5BK3g70022152@aojmv0008> Changeset: 1bb43e54af7a Author: Daniel Blaukopf Date: 2014-06-11 22:52 +0300 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/1bb43e54af7a RT-35473 [Monocle] Allow specifying the VNC port (required to allow simultaneous tests in Jenkins) ! modules/graphics/src/main/java/com/sun/glass/ui/monocle/vnc/VNCScreen.java From daniel.blaukopf at oracle.com Wed Jun 11 20:04:44 2014 From: daniel.blaukopf at oracle.com (Daniel Blaukopf) Date: Wed, 11 Jun 2014 23:04:44 +0300 Subject: [8u26] Review request RT-36960: A switch to change between frame buffers Message-ID: <1831B00E-69C7-4018-A363-A26DB65AD7B0@oracle.com> Hi Lisa, Please review the proposed fix for https://javafx-jira.kenai.com/browse/RT-36960 Thanks, Daniel From jeff at reportmill.com Wed Jun 11 21:00:52 2014 From: jeff at reportmill.com (Jeff Martin) Date: Wed, 11 Jun 2014 16:00:52 -0500 Subject: VisibleBounds In-Reply-To: <539869BB.3050902@oracle.com> References: <04B6F9F0-C5A6-4BDC-AACC-361C7C3B534E@reportmill.com> <539869BB.3050902@oracle.com> Message-ID: Okay - here's the jira (and a blog): Jira: Node could use a getVisibleBounds() method Blog: Getting the Visible Bounds of a Node jeff On Jun 11, 2014, at 9:37 AM, Stephen F Northover wrote: > This seems like a good enhancement request. Please enter a JIRA for it. > > Steve > > On 2014-06-11, 10:17 AM, Jeff Martin wrote: >> Below is my poor man's getVisibleBounds. I'm using this so that my custom text pane only needs to add child nodes for lines of text that are visible - similar to how ListView and friends only add cell nodes for visible items. I hope I'm on the right track - I was surprised that my web search for getVisibleBounds() came up so empty. If nobody points out my idiocy, I'm going to put this in a blog. >> >> jeff >> >> /** >> * Returns the visible bounds for a node based on ancestor clips (or null if no clipping found). >> */ >> public static Bounds getVisibleBounds(Node aNode) >> { >> // Get parent visible bounds (if set, convert to local) >> Bounds bounds = aNode.getParent()!=null? getVisibleBounds(aNode.getParent()) : null; >> if(bounds!=null) { if(!bounds.isEmpty()) bounds = aNode.parentToLocal(bounds); else return bounds; } >> // If node has clip, get clip local bounds (intersected with parent visible bounds if present) >> if(aNode.getClip()!=null) { Node clip = aNode.getClip(); Bounds cb = clip.getBoundsInLocal(); >> bounds = bounds!=null? getIntersectingBounds(cb, bounds) : cb; } >> // Return node visible bounds >> return bounds; >> } >> >> /** >> * Returns the intersection bounds of two bounds. >> */ >> public static Bounds getIntersectingBounds(Bounds b1, Bounds b2) >> { >> if(!b1.intersects(b2)) return new BoundingBox(0,0,-1,-1); >> double minx = Math.max(b1.getMinX(), b2.getMinX()); >> double miny = Math.max(b1.getMinY(), b2.getMinY()); >> double maxx = Math.min(b1.getMaxX(), b2.getMaxX()); >> double maxy = Math.min(b1.getMaxY(), b2.getMaxY()); >> return new BoundingBox(minx, miny, maxx-minx, maxy-miny); >> } >> >> >> On Jun 10, 2014, at 6:59 PM, Jeff Martin wrote: >> >>> What is the JFX equivalent of JComponent.getVisibleRect() - and is there a way to get a notification when it changes? >>> >>> jeff > From hang.vo at oracle.com Wed Jun 11 21:17:53 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Wed, 11 Jun 2014 21:17:53 +0000 Subject: hg: openjfx/8u-dev/rt: RT-37492 refactor Glass KeyEvent.getKeyCodeForChar moving impl to Application for ease of overriding in Java Message-ID: <201406112118.s5BLI4np002765@aojmv0008> Changeset: 3aa343ef3313 Author: ddhill Date: 2014-06-11 17:01 -0400 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/3aa343ef3313 RT-37492 refactor Glass KeyEvent.getKeyCodeForChar moving impl to Application for ease of overriding in Java Reviewed-by: kcr, anthony ! modules/graphics/src/main/java/com/sun/glass/events/KeyEvent.java ! modules/graphics/src/main/java/com/sun/glass/ui/Application.java ! modules/graphics/src/main/java/com/sun/glass/ui/gtk/GtkApplication.java ! modules/graphics/src/main/java/com/sun/glass/ui/ios/IosApplication.java ! modules/graphics/src/main/java/com/sun/glass/ui/lens/LensApplication.java ! modules/graphics/src/main/java/com/sun/glass/ui/mac/MacApplication.java ! modules/graphics/src/main/java/com/sun/glass/ui/monocle/MonocleApplication.java ! modules/graphics/src/main/java/com/sun/glass/ui/swt/SWTApplication.java ! modules/graphics/src/main/java/com/sun/glass/ui/win/WinApplication.java ! modules/graphics/src/main/native-glass/gtk/glass_key.cpp ! modules/graphics/src/main/native-glass/ios/GlassKey.m ! modules/graphics/src/main/native-glass/lens/LensApplication.c ! modules/graphics/src/main/native-glass/mac/GlassKey.m ! modules/graphics/src/main/native-glass/win/KeyTable.cpp From hang.vo at oracle.com Wed Jun 11 22:03:12 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Wed, 11 Jun 2014 22:03:12 +0000 Subject: hg: openjfx/8u-dev/rt: RT-37380: [TreeTable] HelloTreeTableView - some tree items intermittently require double-click to expand or collapse Message-ID: <201406112203.s5BM3OSl008871@aojmv0008> Changeset: 8ff6f815767f Author: jgiles Date: 2014-06-11 11:34 +1200 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/8ff6f815767f RT-37380: [TreeTable] HelloTreeTableView - some tree items intermittently require double-click to expand or collapse ! modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/TreeTableCellBehavior.java From hang.vo at oracle.com Wed Jun 11 22:47:42 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Wed, 11 Jun 2014 22:47:42 +0000 Subject: hg: openjfx/8u-dev/rt: RT-37420: [TableView] TableView custom TableCell with ComboBoxes not editable Message-ID: <201406112247.s5BMlrCC014952@aojmv0008> Changeset: cf00d4cc7219 Author: David Grieve Date: 2014-06-11 18:45 -0400 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/cf00d4cc7219 RT-37420: [TableView] TableView custom TableCell with ComboBoxes not editable Reviewed by: jonathan ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/LabeledSkinBase.java From hang.vo at oracle.com Wed Jun 11 23:17:50 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Wed, 11 Jun 2014 23:17:50 +0000 Subject: hg: openjfx/8u-dev/rt: RT-37421: [TreeView] TreeView layout regression Message-ID: <201406112318.s5BNI1Or020199@aojmv0008> Changeset: fdcebfd4841f Author: jgiles Date: 2014-06-12 11:02 +1200 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/fdcebfd4841f RT-37421: [TreeView] TreeView layout regression ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/VirtualFlow.java ! modules/controls/src/test/java/javafx/scene/control/TableViewTest.java From jeff at reportmill.com Thu Jun 12 01:36:46 2014 From: jeff at reportmill.com (Jeff Martin) Date: Wed, 11 Jun 2014 20:36:46 -0500 Subject: SnapCode is the first and only pure JavaFX IDE Message-ID: <8556B066-C649-4F3A-8397-1815FD639998@reportmill.com> Today we finished a two week port of the remaining Swing components of SnapCode to JavaFX, including the code editer, file manager, welcome panel, runtime browser/player and much more. That means JavaFX now has a real IDE written in JavaFX! Check out the video overview: Blog: http://reportmill.wordpress.com/2014/06/11/snapcode-is-the-first-and-only-pure-javafx-ide/ Video: https://www.youtube.com/watch?v=VZH3Ifd-IIs The good-new/bad-news is I won't be submitting any more JFXPanel bugs. :-) jeff From David.Hill at Oracle.com Thu Jun 12 02:22:13 2014 From: David.Hill at Oracle.com (David Hill) Date: Wed, 11 Jun 2014 22:22:13 -0400 Subject: Review for monocle robot Message-ID: <53990ED5.3010608@Oracle.com> jira: https://javafx-jira.kenai.com/browse/RT-36375 webrev: http://cr.openjdk.java.net/~ddhill/RT-36375/ This fixes 16 and 32 bit accelerated screen captures as tested with HelloSanity. -- David Hill Java Embedded Development "An undefined problem has an infinite number of solutions." -- Robert A. Humphrey From hang.vo at oracle.com Thu Jun 12 04:17:50 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Thu, 12 Jun 2014 04:17:50 +0000 Subject: hg: openjfx/8u-dev/rt: RT-37502: [TreeView] StackOverflow when overriding TreeItem getChildren() method with selection set Message-ID: <201406120418.s5C4I1Ys001890@aojmv0008> Changeset: 561b5d8d4971 Author: jgiles Date: 2014-06-12 16:02 +1200 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/561b5d8d4971 RT-37502: [TreeView] StackOverflow when overriding TreeItem getChildren() method with selection set ! modules/controls/src/main/java/javafx/scene/control/TreeItem.java ! modules/controls/src/main/java/javafx/scene/control/TreeUtil.java ! modules/controls/src/test/java/javafx/scene/control/TreeViewTest.java From hang.vo at oracle.com Thu Jun 12 06:32:52 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Thu, 12 Jun 2014 06:32:52 +0000 Subject: hg: openjfx/8u-dev/rt: RT-37409 [DatePicker, RTL, Regression] RTL DatePicker drop down positioned in the wrong place after changing showWeekNumbers property (regression) Message-ID: <201406120633.s5C6X41S020023@aojmv0008> Changeset: 70b72d969e74 Author: Martin Sladecek Date: 2014-06-12 08:30 +0200 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/70b72d969e74 RT-37409 [DatePicker, RTL, Regression] RTL DatePicker drop down positioned in the wrong place after changing showWeekNumbers property (regression) Reviewed by: dgrieve ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ComboBoxPopupControl.java ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/DatePickerSkin.java From rfisher at tesis.de Thu Jun 12 08:56:40 2014 From: rfisher at tesis.de (Robert Fisher) Date: Thu, 12 Jun 2014 10:56:40 +0200 Subject: Blurry strokes and zooming via scale transforms Message-ID: <8511e4e4-35de-49a2-8f8c-dbf8c85388d1@tesis.de> Hi all, I'm trying to avoid the blurry strokes you can get in JavaFX in some cases, e.g. for a non-integer stroke width, or a stroke width of 1 and StrokeType.CENTERED. So far my 'solution' to this problem has been to round layout values to integers, or to round and add 0.5 in the StrokeType.CENTERED case. However this approach is pretty useless if I apply a scale transform afterwards, which is the simplest way I know to create a zooming mechanism. So my question is: is there any way I can round things to integer values *after* transforms have been applied? Or tell the renderer to not try to approximate strokes drawn 'off-pixel' but instead to round & move them to the nearest pixel so that lines look sharp and clean? Any tips would be appreciated. Cheers, Rob From hang.vo at oracle.com Thu Jun 12 09:17:45 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Thu, 12 Jun 2014 09:17:45 +0000 Subject: hg: openjfx/8u-dev/rt: 2 new changesets Message-ID: <201406120918.s5C9I2fY012163@aojmv0008> Changeset: a208c5310449 Author: Martin Sladecek Date: 2014-06-12 11:03 +0200 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/a208c5310449 RT-37516 JavaBeanObjectPropertyBuilder not reusable when used with different classes ! modules/base/src/main/java/com/sun/javafx/property/adapter/JavaBeanPropertyBuilderHelper.java ! modules/base/src/test/java/com/sun/javafx/property/adapter/JavaBeanPropertyBuilderHelperTest.java Changeset: 2118045d6f67 Author: Martin Sladecek Date: 2014-06-12 11:06 +0200 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/2118045d6f67 RT-37493 [StackedAreaChart] does not test for empty series causing AIOOBE Reviewed by: jgiles Contributed by: snorthov ! modules/controls/src/main/java/javafx/scene/chart/StackedAreaChart.java From tbee at tbee.org Thu Jun 12 09:42:12 2014 From: tbee at tbee.org (Tom Eugelink) Date: Thu, 12 Jun 2014 11:42:12 +0200 Subject: Blurry strokes and zooming via scale transforms In-Reply-To: <8511e4e4-35de-49a2-8f8c-dbf8c85388d1@tesis.de> References: <8511e4e4-35de-49a2-8f8c-dbf8c85388d1@tesis.de> Message-ID: <539975F4.4060504@tbee.org> I recently had a similar situation, but then because certain properties were calculated-via-binding and the resulting value was not "snapped" to good values either. This resulted in my suggestion to allow custom calculations in bindings, which would then snap the value. https://javafx-jira.kenai.com/browse/RT-37255 And transformations on such values have the same effect of course. I was wondering, similar to the binding suggestion, would it be possible to apply a snapping transformation as the last transformation? Tom On 2014-6-12 10:56, Robert Fisher wrote: > Hi all, > > I'm trying to avoid the blurry strokes you can get in JavaFX in some cases, e.g. for a non-integer stroke width, or a stroke width of 1 and StrokeType.CENTERED. > > So far my 'solution' to this problem has been to round layout values to integers, or to round and add 0.5 in the StrokeType.CENTERED case. > > However this approach is pretty useless if I apply a scale transform afterwards, which is the simplest way I know to create a zooming mechanism. > > So my question is: is there any way I can round things to integer values *after* transforms have been applied? Or tell the renderer to not try to approximate strokes drawn 'off-pixel' but instead to round & move them to the nearest pixel so that lines look sharp and clean? > > Any tips would be appreciated. > > Cheers, > Rob From rfisher at tesis.de Thu Jun 12 10:10:08 2014 From: rfisher at tesis.de (Robert Fisher) Date: Thu, 12 Jun 2014 12:10:08 +0200 Subject: AW: Blurry strokes and zooming via scale transforms In-Reply-To: <539975F4.4060504@tbee.org> References: <8511e4e4-35de-49a2-8f8c-dbf8c85388d1@tesis.de> <539975F4.4060504@tbee.org> Message-ID: <4aa8a39d-42c6-432a-9abf-6a46f6994ca6@tesis.de> Well suppose I have a Rectangle with a size of 100x100 and stroke-width of 1, and I apply a scale transform to zoom in to 150%. Then I would like to see a size of 150x150 pixels and still see a sharp border stroke, let's say with a width of 2 pixels. I'm not sure how I could apply a snapping transformation to just correct stroke widths and not disturb the size of the shapes themselves. Cheers, Rob -----Urspr?ngliche Nachricht----- Von: openjfx-dev [mailto:openjfx-dev-bounces at openjdk.java.net] Im Auftrag von Tom Eugelink Gesendet: Donnerstag, 12. Juni 2014 11:42 An: openjfx-dev at openjdk.java.net Betreff: Re: Blurry strokes and zooming via scale transforms I recently had a similar situation, but then because certain properties were calculated-via-binding and the resulting value was not "snapped" to good values either. This resulted in my suggestion to allow custom calculations in bindings, which would then snap the value. https://javafx-jira.kenai.com/browse/RT-37255 And transformations on such values have the same effect of course. I was wondering, similar to the binding suggestion, would it be possible to apply a snapping transformation as the last transformation? Tom On 2014-6-12 10:56, Robert Fisher wrote: > Hi all, > > I'm trying to avoid the blurry strokes you can get in JavaFX in some cases, e.g. for a non-integer stroke width, or a stroke width of 1 and StrokeType.CENTERED. > > So far my 'solution' to this problem has been to round layout values to integers, or to round and add 0.5 in the StrokeType.CENTERED case. > > However this approach is pretty useless if I apply a scale transform afterwards, which is the simplest way I know to create a zooming mechanism. > > So my question is: is there any way I can round things to integer values *after* transforms have been applied? Or tell the renderer to not try to approximate strokes drawn 'off-pixel' but instead to round & move them to the nearest pixel so that lines look sharp and clean? > > Any tips would be appreciated. > > Cheers, > Rob From hang.vo at oracle.com Thu Jun 12 11:47:48 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Thu, 12 Jun 2014 11:47:48 +0000 Subject: hg: openjfx/8u-dev/rt: RT-37503 [FXML] FXMLLoader does not set attributes annotated @FXML for controllers with protected visibility Message-ID: <201406121147.s5CBlx1k002302@aojmv0008> Changeset: 892d13f9dbf5 Author: Martin Sladecek Date: 2014-06-12 13:33 +0200 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/892d13f9dbf5 RT-37503 [FXML] FXMLLoader does not set attributes annotated @FXML for controllers with protected visibility ! modules/fxml/src/main/java/javafx/fxml/FXMLLoader.java From daniel.blaukopf at oracle.com Thu Jun 12 12:07:42 2014 From: daniel.blaukopf at oracle.com (Daniel Blaukopf) Date: Thu, 12 Jun 2014 15:07:42 +0300 Subject: [8u26] Review request RT-37508: [Monocle] Support 16-bit software-rendered framebuffer Message-ID: <01C26D0B-92E6-4815-88E6-F7402B1DF281@oracle.com> Hi Dave, Please review the proposed fix for https://javafx-jira.kenai.com/browse/RT-37508 Thanks, Daniel From daniel.blaukopf at oracle.com Thu Jun 12 12:09:33 2014 From: daniel.blaukopf at oracle.com (Daniel Blaukopf) Date: Thu, 12 Jun 2014 15:09:33 +0300 Subject: [8u26] Review request RT-37512: [Monocle] Provide a software-rendered cursor Message-ID: Hi Dave and Lisa, Please review the proposed fix for https://javafx-jira.kenai.com/browse/RT-37512 Thanks, Daniel From hang.vo at oracle.com Thu Jun 12 12:17:37 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Thu, 12 Jun 2014 12:17:37 +0000 Subject: hg: openjfx/8u-dev/rt: RT-36960 [Monocle] A switch to change between frame buffers Message-ID: <201406121217.s5CCHnSH006613@aojmv0008> Changeset: 9a539116a956 Author: Daniel Blaukopf Date: 2014-06-12 15:11 +0300 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/9a539116a956 RT-36960 [Monocle] A switch to change between frame buffers Reviewed-by: kselle ! modules/graphics/src/main/java/com/sun/glass/ui/monocle/dispman/DispmanAcceleratedScreen.java ! modules/graphics/src/main/java/com/sun/glass/ui/monocle/linux/FBDevScreen.java ! modules/graphics/src/main/java/com/sun/glass/ui/monocle/linux/LinuxFrameBuffer.java ! modules/graphics/src/main/native-glass/monocle/dispman/DispmanAcceleratedScreen.c From lisa.selle at oracle.com Thu Jun 12 15:25:47 2014 From: lisa.selle at oracle.com (Lisa Selle) Date: Thu, 12 Jun 2014 11:25:47 -0400 Subject: [8u26] Review Request RT-37513 [Monocle] Should not show an exception trace when falling back to software rendering Message-ID: <5399C67B.1030009@oracle.com> Hi Daniel, Please review the proposed fix for https://javafx-jira.kenai.com/browse/RT-37513 Details in jira. Thanks, Lisa From hang.vo at oracle.com Thu Jun 12 16:03:49 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Thu, 12 Jun 2014 16:03:49 +0000 Subject: hg: openjfx/8u-dev/rt: RT-35729 [Monocle/TESTS] Swipe does not work on Monocle in HelloSanity Message-ID: <201406121604.s5CG41TS009729@aojmv0008> Changeset: 286217918102 Author: Daniel Blaukopf Date: 2014-06-12 18:51 +0300 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/286217918102 RT-35729 [Monocle/TESTS] Swipe does not work on Monocle in HelloSanity + tests/system/src/test/java/com/sun/glass/ui/monocle/input/SwipeTest.java From hang.vo at oracle.com Thu Jun 12 17:03:35 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Thu, 12 Jun 2014 17:03:35 +0000 Subject: hg: openjfx/8u-dev/rt: 2 new changesets Message-ID: <201406121703.s5CH3qGC018473@aojmv0008> Changeset: ec2c900e6037 Author: hudson Date: 2014-06-10 21:34 -0700 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/ec2c900e6037 Added tag 8u20-b18 for changeset 63955f844c0c ! .hgtags Changeset: 169d6b8b6386 Author: kcr Date: 2014-06-12 09:52 -0700 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/169d6b8b6386 Automated merge with ssh://jfxsrc.us.oracle.com//javafx/8u/master/jfx/rt From hang.vo at oracle.com Thu Jun 12 17:47:56 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Thu, 12 Jun 2014 17:47:56 +0000 Subject: hg: openjfx/8u-dev/rt: RT-37529: [Android] Boolean.hashCode(boolean) reference to JDK8 causes compile failure on Android Message-ID: <201406121748.s5CHm7WC026137@aojmv0008> Changeset: 5e7640e45127 Author: kcr Date: 2014-06-12 10:43 -0700 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/5e7640e45127 RT-37529: [Android] Boolean.hashCode(boolean) reference to JDK8 causes compile failure on Android Reviewed-by: snorthov Contributed-by: Johan Vos ! modules/graphics/src/main/java/com/sun/scenario/effect/impl/prism/PrFilterContext.java From John_Smith at symantec.com Thu Jun 12 20:05:04 2014 From: John_Smith at symantec.com (John Smith) Date: Thu, 12 Jun 2014 13:05:04 -0700 Subject: Blurry strokes and zooming via scale transforms In-Reply-To: <4aa8a39d-42c6-432a-9abf-6a46f6994ca6@tesis.de> References: <8511e4e4-35de-49a2-8f8c-dbf8c85388d1@tesis.de> <539975F4.4060504@tbee.org> <4aa8a39d-42c6-432a-9abf-6a46f6994ca6@tesis.de> Message-ID: <411E73D23DEC4C46BA48F2B6D8BF3D2216C184B1C2@TUS1XCHEVSPIN34.SYMC.SYMANTEC.COM> A couple of related stackoverflow questions won't solve your problem, but will provide some background info: http://stackoverflow.com/questions/16089304/javafx-imageview-without-any-smoothing http://stackoverflow.com/questions/11886230/how-to-draw-a-crisp-opaque-hairline-in-javafx-2-2 http://stackoverflow.com/questions/11881834/what-are-a-lines-exact-dimensions-in-javafx-2 -----Original Message----- From: openjfx-dev [mailto:openjfx-dev-bounces at openjdk.java.net] On Behalf Of Robert Fisher Sent: Thursday, June 12, 2014 3:10 AM To: openjfx-dev at openjdk.java.net Subject: AW: Blurry strokes and zooming via scale transforms Well suppose I have a Rectangle with a size of 100x100 and stroke-width of 1, and I apply a scale transform to zoom in to 150%. Then I would like to see a size of 150x150 pixels and still see a sharp border stroke, let's say with a width of 2 pixels. I'm not sure how I could apply a snapping transformation to just correct stroke widths and not disturb the size of the shapes themselves. Cheers, Rob -----Urspr?ngliche Nachricht----- Von: openjfx-dev [mailto:openjfx-dev-bounces at openjdk.java.net] Im Auftrag von Tom Eugelink Gesendet: Donnerstag, 12. Juni 2014 11:42 An: openjfx-dev at openjdk.java.net Betreff: Re: Blurry strokes and zooming via scale transforms I recently had a similar situation, but then because certain properties were calculated-via-binding and the resulting value was not "snapped" to good values either. This resulted in my suggestion to allow custom calculations in bindings, which would then snap the value. https://javafx-jira.kenai.com/browse/RT-37255 And transformations on such values have the same effect of course. I was wondering, similar to the binding suggestion, would it be possible to apply a snapping transformation as the last transformation? Tom On 2014-6-12 10:56, Robert Fisher wrote: > Hi all, > > I'm trying to avoid the blurry strokes you can get in JavaFX in some cases, e.g. for a non-integer stroke width, or a stroke width of 1 and StrokeType.CENTERED. > > So far my 'solution' to this problem has been to round layout values to integers, or to round and add 0.5 in the StrokeType.CENTERED case. > > However this approach is pretty useless if I apply a scale transform afterwards, which is the simplest way I know to create a zooming mechanism. > > So my question is: is there any way I can round things to integer values *after* transforms have been applied? Or tell the renderer to not try to approximate strokes drawn 'off-pixel' but instead to round & move them to the nearest pixel so that lines look sharp and clean? > > Any tips would be appreciated. > > Cheers, > Rob From felipe.heidrich at oracle.com Thu Jun 12 20:55:47 2014 From: felipe.heidrich at oracle.com (Felipe Heidrich) Date: Thu, 12 Jun 2014 13:55:47 -0700 Subject: please review: RT-36335: [Accessibility] Hide prototype API Message-ID: <6F6117CC-925A-4949-BA5D-818D15D074B9@oracle.com> Hi, Please review https://javafx-jira.kenai.com/browse/RT-36335 http://cr.openjdk.java.net/~fheidric/RT36335/webrev/ Note: JDK 8u20 Build b18 is the last build in the 8u20 serie to include accessibility. The accessibility code will be put back in the 8u-dev repo after the 8u20 fork, and it will be available again in the first 8u40 build. We don?t have a build schedule for 8u40, but it should start a few weeks after the 8u20 fork. Thanks Felipe From krueger at lesspain.de Thu Jun 12 20:57:53 2014 From: krueger at lesspain.de (=?UTF-8?Q?Robert_Kr=C3=BCger?=) Date: Thu, 12 Jun 2014 22:57:53 +0200 Subject: Adding application-wide stylesheet Message-ID: Hi, RT-18543 has been closed as not an issue with the following explanation: API exists in Application for this: http://download.java.net/jdk8/jfxdocs/javafx/application/Application.html#setUserAgentStylesheet-java.lang.String- But that does not the same thing as it replaces the default (modena) stylesheet, which is not what people asking this including the original poster usually want (see also http://stackoverflow.com/questions/16318517/how-do-i-dynamically-add-and-remove-css-for-the-whole-javafx-application). What is the reason not to expose what StyleManager.getInstance().addUserAgentStylesheet("...") does somewhere in public API like in Application? Thanks, Robert From hang.vo at oracle.com Thu Jun 12 21:17:45 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Thu, 12 Jun 2014 21:17:45 +0000 Subject: hg: openjfx/8u-dev/rt: Fix for RT-37513 [Monocle] Should not show an exception trace when falling back to software rendering Message-ID: <201406122117.s5CLHw6k027165@aojmv0008> Changeset: e6fc9e16cece Author: Lisa.Selle at oracle.com Date: 2014-06-12 17:04 -0400 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/e6fc9e16cece Fix for RT-37513 [Monocle] Should not show an exception trace when falling back to software rendering Reviewed-by dblaukopf Tested with HelloSanity ! modules/graphics/src/main/java/com/sun/glass/ui/monocle/AcceleratedScreen.java ! modules/graphics/src/main/java/com/sun/glass/ui/monocle/NativePlatform.java ! modules/graphics/src/main/java/com/sun/glass/ui/monocle/mx6/MX6AcceleratedScreen.java ! modules/graphics/src/main/java/com/sun/prism/es2/MonocleGLFactory.java From david.grieve at oracle.com Thu Jun 12 21:34:01 2014 From: david.grieve at oracle.com (David Grieve) Date: Thu, 12 Jun 2014 17:34:01 -0400 Subject: Adding application-wide stylesheet In-Reply-To: References: Message-ID: <539A1CC9.5090404@oracle.com> In 8u20, you can use @import in your .css file. That, along with Application#setUserAgentStylesheet(String), should do the trick. If I'm missing something, then please feel free to create a new feature request in JIRA. On 6/12/14, 4:57 PM, Robert Kr?ger wrote: > Hi, > > RT-18543 has been closed as not an issue with the following explanation: > > API exists in Application for this: > http://download.java.net/jdk8/jfxdocs/javafx/application/Application.html#setUserAgentStylesheet-java.lang.String- > > But that does not the same thing as it replaces the default (modena) > stylesheet, which is not what people asking this including the > original poster usually want (see also > http://stackoverflow.com/questions/16318517/how-do-i-dynamically-add-and-remove-css-for-the-whole-javafx-application). > > What is the reason not to expose what > StyleManager.getInstance().addUserAgentStylesheet("...") does > somewhere in public API like in Application? > > Thanks, > > Robert From krueger at lesspain.de Thu Jun 12 22:09:12 2014 From: krueger at lesspain.de (=?UTF-8?Q?Robert_Kr=C3=BCger?=) Date: Fri, 13 Jun 2014 00:09:12 +0200 Subject: Adding application-wide stylesheet In-Reply-To: <539A1CC9.5090404@oracle.com> References: <539A1CC9.5090404@oracle.com> Message-ID: How would one reference the stylesheet location of the default style sheet packaged with the JRE in the import statement? On Thu, Jun 12, 2014 at 11:34 PM, David Grieve wrote: > In 8u20, you can use @import in your .css file. That, along with > Application#setUserAgentStylesheet(String), should do the trick. If I'm > missing something, then please feel free to create a new feature request in > JIRA. > > > On 6/12/14, 4:57 PM, Robert Kr?ger wrote: >> >> Hi, >> >> RT-18543 has been closed as not an issue with the following explanation: >> >> API exists in Application for this: >> >> http://download.java.net/jdk8/jfxdocs/javafx/application/Application.html#setUserAgentStylesheet-java.lang.String- >> >> But that does not the same thing as it replaces the default (modena) >> stylesheet, which is not what people asking this including the >> original poster usually want (see also >> >> http://stackoverflow.com/questions/16318517/how-do-i-dynamically-add-and-remove-css-for-the-whole-javafx-application). >> >> What is the reason not to expose what >> StyleManager.getInstance().addUserAgentStylesheet("...") does >> somewhere in public API like in Application? >> >> Thanks, >> >> Robert > > -- Robert Kr?ger Managing Partner Lesspain GmbH & Co. KG www.lesspain-software.com From hang.vo at oracle.com Fri Jun 13 00:47:38 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Fri, 13 Jun 2014 00:47:38 +0000 Subject: hg: openjfx/8u-dev/rt: RT-37538: TableView SelectionModel selected items listener can cause an infinite loop. Message-ID: <201406130047.s5D0lnCQ029924@aojmv0008> Changeset: 9f5303fb78fb Author: jgiles Date: 2014-06-13 12:36 +1200 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/9f5303fb78fb RT-37538: TableView SelectionModel selected items listener can cause an infinite loop. ! modules/controls/src/main/java/javafx/scene/control/TableView.java ! modules/controls/src/main/java/javafx/scene/control/TreeTableView.java ! modules/controls/src/test/java/javafx/scene/control/ListViewTest.java ! modules/controls/src/test/java/javafx/scene/control/TableViewTest.java ! modules/controls/src/test/java/javafx/scene/control/TreeTableViewTest.java ! modules/controls/src/test/java/javafx/scene/control/TreeViewTest.java From kevin.rushforth at oracle.com Fri Jun 13 02:20:42 2014 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Thu, 12 Jun 2014 19:20:42 -0700 Subject: [8u20] review request: RT-37539: [Builders] Web builder classes not built unless COMPILE_WEBKIT=true Message-ID: <539A5FFA.2010204@oracle.com> David, Please review the following simple patch. https://javafx-jira.kenai.com/browse/RT-37539 The patch is in the JIRA. -- Kevin From jonathan.giles at oracle.com Fri Jun 13 04:10:09 2014 From: jonathan.giles at oracle.com (Jonathan Giles) Date: Fri, 13 Jun 2014 16:10:09 +1200 Subject: Proportional TableColumn resizing In-Reply-To: <53986E32.6060700@oracle.com> References: <53986E32.6060700@oracle.com> Message-ID: <539A79A1.3090305@oracle.com> Kirill, This is not presently possible (as far as I know - although with enough courage I'm sure a custom column resize policy could be set on the TableView to do this). You might also want to look at the existing TableView constrained resize policy - this may help you out a little (as it forces the columns to take up all available space). There is a jira issue for percentage sizing: https://javafx-jira.kenai.com/browse/RT-17180 I suggest you leave any thoughts or votes on that issue. Currently it is untargeted. -- Jonathan On 12/06/2014 2:56 a.m., Kirill Kirichenko wrote: > Hi all. > > How is it possible to create TableColumns (preferably in fxml) such > that they have some proportional width say in percents rather than in > pixels with a feature that when we resize the table the columns get > resized proportionally ? > Default behaviour is that when the window containing a table is grown > in width all columns keep the width and one extra column appear that > has no data. > > K From adanecito at yahoo.com Fri Jun 13 05:54:06 2014 From: adanecito at yahoo.com (Tony Anecito) Date: Thu, 12 Jun 2014 22:54:06 -0700 (PDT) Subject: Bundler question for Mac OS X... In-Reply-To: <1402501696.5186.YahooMailNeo@web121804.mail.ne1.yahoo.com> References: <1402458874.63325.YahooMailNeo@web121806.mail.ne1.yahoo.com> <53982C84.90307@oracle.com> <07094FAA-5B88-4BE7-8055-110C03953A8E@oracle.com> <1402495411.87088.YahooMailNeo@web121801.mail.ne1.yahoo.com> <1402495552.60950.YahooMailNeo@web121803.mail.ne1.yahoo.com> <9FF2AEF3-B45D-4DAF-AB50-CD8DA354C2B1@oracle.com> <1402501696.5186.YahooMailNeo@web121804.mail.ne1.yahoo.com> Message-ID: <1402638846.22245.YahooMailNeo@web121804.mail.ne1.yahoo.com> Hi Danno, I am using?1.8.0.0 and it does not work. Only the main menu item changes with the name. I will download prod 8u5 and try this. Where can I download the pkg for 8U20? ? Thanks, -Tony? On Wednesday, June 11, 2014 9:48 AM, Tony Anecito wrote: Thanks Danno I will try tonight with your suggestion. I will let you know the results. This is the last thing holding up approval of my app for the store. Best Regards, -Tony? On Wednesday, June 11, 2014 8:22 AM, Danno Ferrin wrote: It does change the sub-menu items (Hide /Quit ), at least the 8u20 toolchain does. ?I would expect the 8u5 toolchain to change it too because it looks the same, but I haven?t worked on those builds recently. On Jun 11, 2014, at 8:05 AM, Tony Anecito wrote: I will try your suggestion to see if the sub-menu items name changes with?what you sugggested. > >Thanks, >-Tony? > > > >On , Tony Anecito wrote: > > > >?Hi, > >The name attribute affects the main menu item but not the sub-menu items. Not sure if you understood what I meant by sub-menu items. It would be better if the sub-menu items did not use the starting/launcher class name. I even found examples googleing where java main.startupclassname was shown for sub-menu items. > >Apple iTunes store will reject java apps becuase of this issue. They want the app name to match everywhere on the app including the sub-menu item names. > >Thanks, >-Tony > > > >On Wednesday, June 11, 2014 7:50 AM, Danno Ferrin wrote: > > > >This will be upgraded in the 8u20 release. > >For pre8u20 in the ant script the menu bar name is the name attribute from the application element. > > >? >? >? > > >(This will still work in 8u20, if it doesn?t it is a bug to me I will fix). > >The down side is that some of those value have double use when using multiple platforms.? For example the id attribute is also the UUID for MSI bundles.? The name is also the name of the launcher file too, and pre 8u20 they are tied together (unless you do a drop in resource to manually fix the identifier). > >Starting with 8u20 you can specify bundle params, and I have done my best to eliminate the overlapping values, or at least allow you to set specific values that will fall back to overlapping values. > > >? >? >? >? > > >Since the windows bundlers don?t understand those arguments they will ignore them.? And the bundle name can be different from the launcher name now as well. > > >On Jun 11, 2014, at 4:16 AM, Anthony Petrov wrote: > >> Hi Tony, >> >> I don't know the exact syntax for the FX deploy script (is it the -title or -name option for the javafxpackager [1] ?), however [2] suggests that the CFBundleName key in Info.plist can be used to set the application name. I can confirm that Glass reads the value and assigns it to the application name. The Quit menu item then uses this name for its text label. >> >> Does setting the CFBundleName work for you? >> >> [1] http://docs.oracle.com/javafx/2/deployment/javafxpackager.htm >> >> [2] https://javafx-jira.kenai.com/browse/RT-18563 >> >> -- >> best regards, >> Anthony >> >> On 6/11/2014 7:54 AM, Tony Anecito wrote: >>> Hi All, >>> >>> I noticed the menu bar for OS X is probably using my class name that has the static main in it. How do I override that in the JavFX Deploy ant script? The About, Hide and Quit sub-menu items are using a different name than what I want. The main menu item is correct. >>> >>> Thanks! >>> Tony >>> > > > > > From adanecito at yahoo.com Fri Jun 13 06:41:03 2014 From: adanecito at yahoo.com (Tony Anecito) Date: Thu, 12 Jun 2014 23:41:03 -0700 (PDT) Subject: Bundler question for Mac OS X... In-Reply-To: <1402638846.22245.YahooMailNeo@web121804.mail.ne1.yahoo.com> References: <1402458874.63325.YahooMailNeo@web121806.mail.ne1.yahoo.com> <53982C84.90307@oracle.com> <07094FAA-5B88-4BE7-8055-110C03953A8E@oracle.com> <1402495411.87088.YahooMailNeo@web121801.mail.ne1.yahoo.com> <1402495552.60950.YahooMailNeo@web121803.mail.ne1.yahoo.com> <9FF2AEF3-B45D-4DAF-AB50-CD8DA354C2B1@oracle.com> <1402501696.5186.YahooMailNeo@web121804.mail.ne1.yahoo.com> <1402638846.22245.YahooMailNeo@web121804.mail.ne1.yahoo.com> Message-ID: <1402641663.59445.YahooMailNeo@web121801.mail.ne1.yahoo.com> Hi Danno, ? I tried 1.8.0_05 and same issue with sub-menu items. ? Let me know location for 1.8.0_20 and I will try that also. ? Thanks, -Tony? On Thursday, June 12, 2014 11:54 PM, Tony Anecito wrote: Hi Danno, I am using?1.8.0.0 and it does not work. Only the main menu item changes with the name. I will download prod 8u5 and try this. Where can I download the pkg for 8U20? Thanks, -Tony? On Wednesday, June 11, 2014 9:48 AM, Tony Anecito wrote: Thanks Danno I will try tonight with your suggestion. I will let you know the results. This is the last thing holding up approval of my app for the store. Best Regards, -Tony? On Wednesday, June 11, 2014 8:22 AM, Danno Ferrin wrote: It does change the sub-menu items (Hide /Quit ), at least the 8u20 toolchain does. ?I would expect the 8u5 toolchain to change it too because it looks the same, but I haven?t worked on those builds recently. On Jun 11, 2014, at 8:05 AM, Tony Anecito wrote: I will try your suggestion to see if the sub-menu items name changes with?what you sugggested. > >Thanks, >-Tony? > > > >On , Tony Anecito wrote: > > > >?Hi, > >The name attribute affects the main menu item but not the sub-menu items. Not sure if you understood what I meant by sub-menu items. It would be better if the sub-menu items did not use the starting/launcher class name. I even found examples googleing where java main.startupclassname was shown for sub-menu items. > >Apple iTunes store will reject java apps becuase of this issue. They want the app name to match everywhere on the app including the sub-menu item names. > >Thanks, >-Tony > > > >On Wednesday, June 11, 2014 7:50 AM, Danno Ferrin wrote: > > > >This will be upgraded in the 8u20 release. > >For pre8u20 in the ant script the menu bar name is the name attribute from the application element. > > >? >? >? > > >(This will still work in 8u20, if it doesn?t it is a bug to me I will fix). > >The down side is that some of those value have double use when using multiple platforms.? For example the id attribute is also the UUID for MSI bundles.? The name is also the name of the launcher file too, and pre 8u20 they are tied together (unless you do a drop in resource to manually fix the identifier). > >Starting with 8u20 you can specify bundle params, and I have done my best to eliminate the overlapping values, or at least allow you to set specific values that will fall back to overlapping values. > > >? >? >? >? > > >Since the windows bundlers don?t understand those arguments they will ignore them.? And the bundle name can be different from the launcher name now as well. > > >On Jun 11, 2014, at 4:16 AM, Anthony Petrov wrote: > >> Hi Tony, >> >> I don't know the exact syntax for the FX deploy script (is it the -title or -name option for the javafxpackager [1] ?), however [2] suggests that the CFBundleName key in Info.plist can be used to set the application name. I can confirm that Glass reads the value and assigns it to the application name. The Quit menu item then uses this name for its text label. >> >> Does setting the CFBundleName work for you? >> >> [1] http://docs.oracle.com/javafx/2/deployment/javafxpackager.htm >> >> [2] https://javafx-jira.kenai.com/browse/RT-18563 >> >> -- >> best regards, >> Anthony >> >> On 6/11/2014 7:54 AM, Tony Anecito wrote: >>> Hi All, >>> >>> I noticed the menu bar for OS X is probably using my class name that has the static main in it. How do I override that in the JavFX Deploy ant script? The About, Hide and Quit sub-menu items are using a different name than what I want. The main menu item is correct. >>> >>> Thanks! >>> Tony >>> > > > > > From krueger at lesspain.de Fri Jun 13 06:57:26 2014 From: krueger at lesspain.de (=?UTF-8?Q?Robert_Kr=C3=BCger?=) Date: Fri, 13 Jun 2014 08:57:26 +0200 Subject: Exposing native surface or opengl handle Message-ID: Hi, it has been discussed a number of time in the passed but let me quickly summarize: A number of people have requested a feature that provides the ability to have native code draw into a surface provided by a JavaFX application as fast as technically possible, i.e. with no indirection or copying because use cases for this were mostly cases where performance was critical, e.g. HD/UHD video players, real-time visualization etc. where losing even e few percent would make a software written in JavaFX unable to compete with native products (e.g. in the video area nobody will use a video player that is not able to play the content smoothly that VLC player or Quicktime can on the same machine). Some people already have libraries of native code that they have built over the years and would like to reuse. I would even go so far to say that our product will probably never be able to move to JFX (apart from mixing it a bit with Swing, which we currently see rather aa a migration strategy and not as the end result) without this problem solved. In the past the reactions/signals from the Oracle team in this respect were mixed but some of it indicated that this topic was discussed in the past and might be revisited after the release of JFX 8. Now that the latter has happened I would like to ask what the plans for this are. Is there a Jira Issue where we can track the progress of it? If not, does it make sense if I open one, so people (probably the same ones that have participated in these discussions in the past like Scott and the Ultramixer guys etc.) can collect their requirements/thoughts? Even if Oracle should decide not to do something about it, it would still be nice to get pointers in the code base to where this would be possible, even if it is non-portable. I know that for our product it would be totally OK to have different ways of doing this for each platform and to live with the limitation to not be able to manipulate the result in the FX scene graph apart from that the position of the surface moving with the hosting FX node and as far as I have understood others, it is the same for them. Maybe a Jira issue could also be a good place to bundle information about approaches interested parties are willing to pursue. Thoughts anyone? Robert From felix.bembrick at gmail.com Fri Jun 13 07:08:54 2014 From: felix.bembrick at gmail.com (Felix Bembrick) Date: Fri, 13 Jun 2014 17:08:54 +1000 Subject: Exposing native surface or opengl handle In-Reply-To: References: Message-ID: I absolutely agree that such a feature is critical for the success and longevity of JavaFX. I am *really* hoping for some heavily beefed-up 3D support in a JFX 8.* release or JFX 9. I need my graphics toolkit (currently JavaFX) to be able to handle everything from simple UIs with basic controls to complex 3D visualisations, just like the underlying graphics API is capable of (i.e. OpenGL or Direct3D). I strongly suspect though that focusing on OpenGL exclusively is the only viable way to go from a cost perspective which would mean JavaFX supporting OpenGL on Windows. On 13 June 2014 16:57, Robert Kr?ger wrote: > Hi, > > it has been discussed a number of time in the passed but let me > quickly summarize: > > A number of people have requested a feature that provides the ability > to have native code draw into a surface provided by a JavaFX > application as fast as technically possible, i.e. with no indirection > or copying because use cases for this were mostly cases where > performance was critical, e.g. HD/UHD video players, real-time > visualization etc. where losing even e few percent would make a > software written in JavaFX unable to compete with native products > (e.g. in the video area nobody will use a video player that is not > able to play the content smoothly that VLC player or Quicktime can on > the same machine). Some people already have libraries of native code > that they have built over the years and would like to reuse. I would > even go so far to say that our product will probably never be able to > move to JFX (apart from mixing it a bit with Swing, which we currently > see rather aa a migration strategy and not as the end result) without > this problem solved. > > In the past the reactions/signals from the Oracle team in this respect > were mixed but some of it indicated that this topic was discussed in > the past and might be revisited after the release of JFX 8. Now that > the latter has happened I would like to ask what the plans for this > are. > > Is there a Jira Issue where we can track the progress of it? > > If not, does it make sense if I open one, so people (probably the same > ones that have participated in these discussions in the past like > Scott and the Ultramixer guys etc.) can collect their > requirements/thoughts? > > Even if Oracle should decide not to do something about it, it would > still be nice to get pointers in the code base to where this would be > possible, even if it is non-portable. I know that for our product it > would be totally OK to have different ways of doing this for each > platform and to live with the limitation to not be able to manipulate > the result in the FX scene graph apart from that the position of the > surface moving with the hosting FX node and as far as I have > understood others, it is the same for them. > > Maybe a Jira issue could also be a good place to bundle information > about approaches interested parties are willing to pursue. > > Thoughts anyone? > > Robert > From adanecito at yahoo.com Fri Jun 13 07:26:47 2014 From: adanecito at yahoo.com (Tony Anecito) Date: Fri, 13 Jun 2014 00:26:47 -0700 (PDT) Subject: Bundler question for Mac OS X... In-Reply-To: <1402641663.59445.YahooMailNeo@web121801.mail.ne1.yahoo.com> References: <1402458874.63325.YahooMailNeo@web121806.mail.ne1.yahoo.com> <53982C84.90307@oracle.com> <07094FAA-5B88-4BE7-8055-110C03953A8E@oracle.com> <1402495411.87088.YahooMailNeo@web121801.mail.ne1.yahoo.com> <1402495552.60950.YahooMailNeo@web121803.mail.ne1.yahoo.com> <9FF2AEF3-B45D-4DAF-AB50-CD8DA354C2B1@oracle.com> <1402501696.5186.YahooMailNeo@web121804.mail.ne1.yahoo.com> <1402638846.22245.YahooMailNeo@web121804.mail.ne1.yahoo.com> <1402641663.59445.YahooMailNeo@web121801.mail.ne1.yahoo.com> Message-ID: <1402644407.59143.YahooMailNeo@web121803.mail.ne1.yahoo.com> Hi Danno, ? I downloaded 8u20?and it looks like the sub-menu items are using the launcher file name. ? Also, the?info.plist created by?the deploy task is wrong. It?does not?use the correct jar for JVMMainjarName so the app does not start untill I changed it to the correct name. Is this new?? ? I see the other fixes are in there we talked about. ? Regards, -Tony On Friday, June 13, 2014 12:41 AM, Tony Anecito wrote: Hi Danno, I tried 1.8.0_05 and same issue with sub-menu items. Let me know location for 1.8.0_20 and I will try that also. Thanks, -Tony? On Thursday, June 12, 2014 11:54 PM, Tony Anecito wrote: Hi Danno, I am using?1.8.0.0 and it does not work. Only the main menu item changes with the name. I will download prod 8u5 and try this. Where can I download the pkg for 8U20? Thanks, -Tony? On Wednesday, June 11, 2014 9:48 AM, Tony Anecito wrote: Thanks Danno I will try tonight with your suggestion. I will let you know the results. This is the last thing holding up approval of my app for the store. Best Regards, -Tony? On Wednesday, June 11, 2014 8:22 AM, Danno Ferrin wrote: It does change the sub-menu items (Hide /Quit ), at least the 8u20 toolchain does. ?I would expect the 8u5 toolchain to change it too because it looks the same, but I haven?t worked on those builds recently. On Jun 11, 2014, at 8:05 AM, Tony Anecito wrote: I will try your suggestion to see if the sub-menu items name changes with?what you sugggested. > >Thanks, >-Tony? > > > >On , Tony Anecito wrote: > > > >?Hi, > >The name attribute affects the main menu item but not the sub-menu items. Not sure if you understood what I meant by sub-menu items. It would be better if the sub-menu items did not use the starting/launcher class name. I even found examples googleing where java main.startupclassname was shown for sub-menu items. > >Apple iTunes store will reject java apps becuase of this issue. They want the app name to match everywhere on the app including the sub-menu item names. > >Thanks, >-Tony > > > >On Wednesday, June 11, 2014 7:50 AM, Danno Ferrin wrote: > > > >This will be upgraded in the 8u20 release. > >For pre8u20 in the ant script the menu bar name is the name attribute from the application element. > > >? >? >? > > >(This will still work in 8u20, if it doesn?t it is a bug to me I will fix). > >The down side is that some of those value have double use when using multiple platforms.? For example the id attribute is also the UUID for MSI bundles.? The name is also the name of the launcher file too, and pre 8u20 they are tied together (unless you do a drop in resource to manually fix the identifier). > >Starting with 8u20 you can specify bundle params, and I have done my best to eliminate the overlapping values, or at least allow you to set specific values that will fall back to overlapping values. > > >? >? >? >? > > >Since the windows bundlers don?t understand those arguments they will ignore them.? And the bundle name can be different from the launcher name now as well. > > >On Jun 11, 2014, at 4:16 AM, Anthony Petrov wrote: > >> Hi Tony, >> >> I don't know the exact syntax for the FX deploy script (is it the -title or -name option for the javafxpackager [1] ?), however [2] suggests that the CFBundleName key in Info.plist can be used to set the application name. I can confirm that Glass reads the value and assigns it to the application name. The Quit menu item then uses this name for its text label. >> >> Does setting the CFBundleName work for you? >> >> [1] http://docs.oracle.com/javafx/2/deployment/javafxpackager.htm >> >> [2] https://javafx-jira.kenai.com/browse/RT-18563 >> >> -- >> best regards, >> Anthony >> >> On 6/11/2014 7:54 AM, Tony Anecito wrote: >>> Hi All, >>> >>> I noticed the menu bar for OS X is probably using my class name that has the static main in it. How do I override that in the JavFX Deploy ant script? The About, Hide and Quit sub-menu items are using a different name than what I want. The main menu item is correct. >>> >>> Thanks! >>> Tony >>> > > > > > From randahl at rockit.dk Fri Jun 13 08:11:50 2014 From: randahl at rockit.dk (Randahl Fink Isaksen) Date: Fri, 13 Jun 2014 10:11:50 +0200 Subject: Is JavaFX keyboard event handling too rigid? Message-ID: <16923DCC-0AB3-4133-8912-BEDA30876FB6@rockit.dk> I have noticed that quite many developers are having trouble avoiding triggering of focus navigation occurring when a user presses the UP and DOWN arrow keys. From a number of different forum posts I have seen how people are jumping through hoops to avoid this. I myself have the challenge, that I need to use the UP and DOWN keys for changing the selected autocompletion in a text field, and it seems that no matter how greedily I try to consume or filter out these KeyEvents, JavaFX still insists on moving the focus from one field to the next. This got me thinking: Why is JavaFX keyboard event handling so rigid? If you implement a control which listens for keyboard events on itself and does some cool stuff, that is fine. But once you implement a subclass that wishes to replace some of that behaviour you are in trouble, because once the EventHandlers are registered, there is no public API to replace them. Is this a conscious design decision? Is it something that I should file a feature request on, or have I overlooked a part of the API which could be used here? Randahl From rfisher at tesis.de Fri Jun 13 08:33:39 2014 From: rfisher at tesis.de (Robert Fisher) Date: Fri, 13 Jun 2014 10:33:39 +0200 Subject: Blurry strokes and zooming via scale transforms Message-ID: <94afbd99-82db-4a34-9ec6-e1e15e771124@tesis.de> Thanks for the links, I'll take a look. Rob -----Urspr?ngliche Nachricht----- Von: John Smith [mailto:John_Smith at symantec.com] Gesendet: Donnerstag, 12. Juni 2014 22:05 An: Robert Fisher; openjfx-dev at openjdk.java.net Betreff: RE: Blurry strokes and zooming via scale transforms A couple of related stackoverflow questions won't solve your problem, but will provide some background info: http://stackoverflow.com/questions/16089304/javafx-imageview-without-any-smoothing http://stackoverflow.com/questions/11886230/how-to-draw-a-crisp-opaque-hairline-in-javafx-2-2 http://stackoverflow.com/questions/11881834/what-are-a-lines-exact-dimensions-in-javafx-2 -----Original Message----- From: openjfx-dev [mailto:openjfx-dev-bounces at openjdk.java.net] On Behalf Of Robert Fisher Sent: Thursday, June 12, 2014 3:10 AM To: openjfx-dev at openjdk.java.net Subject: AW: Blurry strokes and zooming via scale transforms Well suppose I have a Rectangle with a size of 100x100 and stroke-width of 1, and I apply a scale transform to zoom in to 150%. Then I would like to see a size of 150x150 pixels and still see a sharp border stroke, let's say with a width of 2 pixels. I'm not sure how I could apply a snapping transformation to just correct stroke widths and not disturb the size of the shapes themselves. Cheers, Rob -----Urspr?ngliche Nachricht----- Von: openjfx-dev [mailto:openjfx-dev-bounces at openjdk.java.net] Im Auftrag von Tom Eugelink Gesendet: Donnerstag, 12. Juni 2014 11:42 An: openjfx-dev at openjdk.java.net Betreff: Re: Blurry strokes and zooming via scale transforms I recently had a similar situation, but then because certain properties were calculated-via-binding and the resulting value was not "snapped" to good values either. This resulted in my suggestion to allow custom calculations in bindings, which would then snap the value. https://javafx-jira.kenai.com/browse/RT-37255 And transformations on such values have the same effect of course. I was wondering, similar to the binding suggestion, would it be possible to apply a snapping transformation as the last transformation? Tom On 2014-6-12 10:56, Robert Fisher wrote: > Hi all, > > I'm trying to avoid the blurry strokes you can get in JavaFX in some cases, e.g. for a non-integer stroke width, or a stroke width of 1 and StrokeType.CENTERED. > > So far my 'solution' to this problem has been to round layout values to integers, or to round and add 0.5 in the StrokeType.CENTERED case. > > However this approach is pretty useless if I apply a scale transform afterwards, which is the simplest way I know to create a zooming mechanism. > > So my question is: is there any way I can round things to integer values *after* transforms have been applied? Or tell the renderer to not try to approximate strokes drawn 'off-pixel' but instead to round & move them to the nearest pixel so that lines look sharp and clean? > > Any tips would be appreciated. > > Cheers, > Rob From hang.vo at oracle.com Fri Jun 13 10:17:58 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Fri, 13 Jun 2014 10:17:58 +0000 Subject: hg: openjfx/8u-dev/rt: 2 new changesets Message-ID: <201406131018.s5DAIFTf021564@aojmv0008> Changeset: 28bccddb2475 Author: Martin Sladecek Date: 2014-06-13 12:00 +0200 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/28bccddb2475 RT-37523 BooleanProperty.booleanProperty(ObjectProperty) changes value of source property ! modules/base/src/main/java/com/sun/javafx/binding/BidirectionalBinding.java ! modules/base/src/main/java/javafx/beans/property/BooleanProperty.java ! modules/base/src/main/java/javafx/beans/property/DoubleProperty.java ! modules/base/src/main/java/javafx/beans/property/FloatProperty.java ! modules/base/src/main/java/javafx/beans/property/IntegerProperty.java ! modules/base/src/main/java/javafx/beans/property/LongProperty.java ! modules/base/src/test/java/javafx/beans/property/BooleanPropertyTest.java ! modules/base/src/test/java/javafx/beans/property/DoublePropertyTest.java ! modules/base/src/test/java/javafx/beans/property/FloatPropertyTest.java ! modules/base/src/test/java/javafx/beans/property/IntegerPropertyTest.java ! modules/base/src/test/java/javafx/beans/property/LongPropertyTest.java Changeset: 0be1e326561e Author: Martin Sladecek Date: 2014-06-13 12:05 +0200 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/0be1e326561e RT-37506 [Android, FXML] FXMLLoader uses new Method.getParameterCount() method ! modules/fxml/src/main/java/javafx/fxml/FXMLLoader.java From hang.vo at oracle.com Fri Jun 13 10:33:18 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Fri, 13 Jun 2014 10:33:18 +0000 Subject: hg: openjfx/8u-dev/rt: RT-37507 [Android, FXML] JavaFXBuilderFactory contains a call to Constructor.getParameters Message-ID: <201406131033.s5DAXU0i023468@aojmv0008> Changeset: ee80f24584b4 Author: Martin Sladecek Date: 2014-06-13 12:17 +0200 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/ee80f24584b4 RT-37507 [Android, FXML] JavaFXBuilderFactory contains a call to Constructor.getParameters ! modules/fxml/src/main/java/javafx/fxml/JavaFXBuilderFactory.java From swpalmer at gmail.com Fri Jun 13 11:48:40 2014 From: swpalmer at gmail.com (Scott Palmer) Date: Fri, 13 Jun 2014 07:48:40 -0400 Subject: Exposing native surface or opengl handle In-Reply-To: References: Message-ID: <6E5055E2-386C-4120-B107-FDB3D8573D8E@gmail.com> This is critical, but I don't think we need to focus on a specific technology like Direct3D or OpenGL. As a first step all we need is a mechanism to get a native reference to the Window. Just like we can with JAWT. I'm guessing that JavaFX doesn't use heavyweight child windows so we could add a new child window that we manage with our own code and it would appear on top of the JavaFX content. Scott > On Jun 13, 2014, at 3:08 AM, Felix Bembrick wrote: > > I absolutely agree that such a feature is critical for the success and > longevity of JavaFX. I am *really* hoping for some heavily beefed-up 3D > support in a JFX 8.* release or JFX 9. > > I need my graphics toolkit (currently JavaFX) to be able to handle > everything from simple UIs with basic controls to complex 3D > visualisations, just like the underlying graphics API is capable of (i.e. > OpenGL or Direct3D). I strongly suspect though that focusing on OpenGL > exclusively is the only viable way to go from a cost perspective which > would mean JavaFX supporting OpenGL on Windows. > > >> On 13 June 2014 16:57, Robert Kr?ger wrote: >> >> Hi, >> >> it has been discussed a number of time in the passed but let me >> quickly summarize: >> >> A number of people have requested a feature that provides the ability >> to have native code draw into a surface provided by a JavaFX >> application as fast as technically possible, i.e. with no indirection >> or copying because use cases for this were mostly cases where >> performance was critical, e.g. HD/UHD video players, real-time >> visualization etc. where losing even e few percent would make a >> software written in JavaFX unable to compete with native products >> (e.g. in the video area nobody will use a video player that is not >> able to play the content smoothly that VLC player or Quicktime can on >> the same machine). Some people already have libraries of native code >> that they have built over the years and would like to reuse. I would >> even go so far to say that our product will probably never be able to >> move to JFX (apart from mixing it a bit with Swing, which we currently >> see rather aa a migration strategy and not as the end result) without >> this problem solved. >> >> In the past the reactions/signals from the Oracle team in this respect >> were mixed but some of it indicated that this topic was discussed in >> the past and might be revisited after the release of JFX 8. Now that >> the latter has happened I would like to ask what the plans for this >> are. >> >> Is there a Jira Issue where we can track the progress of it? >> >> If not, does it make sense if I open one, so people (probably the same >> ones that have participated in these discussions in the past like >> Scott and the Ultramixer guys etc.) can collect their >> requirements/thoughts? >> >> Even if Oracle should decide not to do something about it, it would >> still be nice to get pointers in the code base to where this would be >> possible, even if it is non-portable. I know that for our product it >> would be totally OK to have different ways of doing this for each >> platform and to live with the limitation to not be able to manipulate >> the result in the FX scene graph apart from that the position of the >> surface moving with the hosting FX node and as far as I have >> understood others, it is the same for them. >> >> Maybe a Jira issue could also be a good place to bundle information >> about approaches interested parties are willing to pursue. >> >> Thoughts anyone? >> >> Robert >> From tobi at ultramixer.com Fri Jun 13 12:08:58 2014 From: tobi at ultramixer.com (Tobias Bley) Date: Fri, 13 Jun 2014 14:08:58 +0200 Subject: Exposing native surface or opengl handle In-Reply-To: References: Message-ID: <539AE9DA.9090501@ultramixer.com> Hi Robert, thank you for pushing this topic again :) For our work we need a way to share the OpenGL context between JavaFX code and native code so that we can render stuff from native code into the JavaFX context. Another question and need is to how to share a context in JavaFX? How is it possible to render the same JavaFX node in OpenGL / graphics device twice? Imagine to show a webcam image on two different positions within a JavaFX app. With pure native OpenGL you could do this via "Context Sharing". But how to do it in JavaFX? Best regards, Tobi Am 13.06.14 08:57, schrieb Robert Kr?ger: > Hi, > > it has been discussed a number of time in the passed but let me > quickly summarize: > > A number of people have requested a feature that provides the ability > to have native code draw into a surface provided by a JavaFX > application as fast as technically possible, i.e. with no indirection > or copying because use cases for this were mostly cases where > performance was critical, e.g. HD/UHD video players, real-time > visualization etc. where losing even e few percent would make a > software written in JavaFX unable to compete with native products > (e.g. in the video area nobody will use a video player that is not > able to play the content smoothly that VLC player or Quicktime can on > the same machine). Some people already have libraries of native code > that they have built over the years and would like to reuse. I would > even go so far to say that our product will probably never be able to > move to JFX (apart from mixing it a bit with Swing, which we currently > see rather aa a migration strategy and not as the end result) without > this problem solved. > > In the past the reactions/signals from the Oracle team in this respect > were mixed but some of it indicated that this topic was discussed in > the past and might be revisited after the release of JFX 8. Now that > the latter has happened I would like to ask what the plans for this > are. > > Is there a Jira Issue where we can track the progress of it? > > If not, does it make sense if I open one, so people (probably the same > ones that have participated in these discussions in the past like > Scott and the Ultramixer guys etc.) can collect their > requirements/thoughts? > > Even if Oracle should decide not to do something about it, it would > still be nice to get pointers in the code base to where this would be > possible, even if it is non-portable. I know that for our product it > would be totally OK to have different ways of doing this for each > platform and to live with the limitation to not be able to manipulate > the result in the FX scene graph apart from that the position of the > surface moving with the hosting FX node and as far as I have > understood others, it is the same for them. > > Maybe a Jira issue could also be a good place to bundle information > about approaches interested parties are willing to pursue. > > Thoughts anyone? > > Robert From herve.girod at gmail.com Fri Jun 13 12:40:02 2014 From: herve.girod at gmail.com (=?utf-8?Q?Herv=C3=A9_Girod?=) Date: Fri, 13 Jun 2014 14:40:02 +0200 Subject: Exposing native surface or opengl handle In-Reply-To: <539AE9DA.9090501@ultramixer.com> References: <539AE9DA.9090501@ultramixer.com> Message-ID: I really think that pure JavaFX will always be better if you can, but in some cases you "have" to use external libraries using OpenGL, because you don't have the Java replacement, or it would be a LOT of work to recreate it. Herv? Sent from my iPhone > On Jun 13, 2014, at 14:08, Tobias Bley wrote: > > Hi Robert, > > thank you for pushing this topic again :) > > For our work we need a way to share the OpenGL context between JavaFX code and native code so that we can render stuff from native code into the JavaFX context. > > Another question and need is to how to share a context in JavaFX? How is it possible to render the same JavaFX node in OpenGL / graphics device twice? Imagine to show a webcam image on two different positions within a JavaFX app. With pure native OpenGL you could do this via "Context Sharing". But how to do it in JavaFX? > > Best regards, > Tobi > > > Am 13.06.14 08:57, schrieb Robert Kr?ger: >> Hi, >> >> it has been discussed a number of time in the passed but let me >> quickly summarize: >> >> A number of people have requested a feature that provides the ability >> to have native code draw into a surface provided by a JavaFX >> application as fast as technically possible, i.e. with no indirection >> or copying because use cases for this were mostly cases where >> performance was critical, e.g. HD/UHD video players, real-time >> visualization etc. where losing even e few percent would make a >> software written in JavaFX unable to compete with native products >> (e.g. in the video area nobody will use a video player that is not >> able to play the content smoothly that VLC player or Quicktime can on >> the same machine). Some people already have libraries of native code >> that they have built over the years and would like to reuse. I would >> even go so far to say that our product will probably never be able to >> move to JFX (apart from mixing it a bit with Swing, which we currently >> see rather aa a migration strategy and not as the end result) without >> this problem solved. >> >> In the past the reactions/signals from the Oracle team in this respect >> were mixed but some of it indicated that this topic was discussed in >> the past and might be revisited after the release of JFX 8. Now that >> the latter has happened I would like to ask what the plans for this >> are. >> >> Is there a Jira Issue where we can track the progress of it? >> >> If not, does it make sense if I open one, so people (probably the same >> ones that have participated in these discussions in the past like >> Scott and the Ultramixer guys etc.) can collect their >> requirements/thoughts? >> >> Even if Oracle should decide not to do something about it, it would >> still be nice to get pointers in the code base to where this would be >> possible, even if it is non-portable. I know that for our product it >> would be totally OK to have different ways of doing this for each >> platform and to live with the limitation to not be able to manipulate >> the result in the FX scene graph apart from that the position of the >> surface moving with the hosting FX node and as far as I have >> understood others, it is the same for them. >> >> Maybe a Jira issue could also be a good place to bundle information >> about approaches interested parties are willing to pursue. >> >> Thoughts anyone? >> >> Robert > From hang.vo at oracle.com Fri Jun 13 13:17:46 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Fri, 13 Jun 2014 13:17:46 +0000 Subject: hg: openjfx/8u-dev/rt: Fixed build path in Eclipse metadata for the AirportApp sample of SceneBuilder Message-ID: <201406131317.s5DDHvIm018357@aojmv0008> Changeset: fab4ceaa5c67 Author: yjoan Date: 2014-06-13 15:03 +0200 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/fab4ceaa5c67 Fixed build path in Eclipse metadata for the AirportApp sample of SceneBuilder ! apps/scenebuilder/samples/AirportApp/.classpath From hang.vo at oracle.com Fri Jun 13 13:47:59 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Fri, 13 Jun 2014 13:47:59 +0000 Subject: hg: openjfx/8u-dev/rt: 2 new changesets Message-ID: <201406131348.s5DDmFs8022850@aojmv0008> Changeset: 2f73643b0a99 Author: David Grieve Date: 2014-06-13 09:33 -0400 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/2f73643b0a99 RT-37540: [PopupControl] PopupControl.CSSBridge.setSkinClassNameMethod deleted ! modules/controls/src/main/java/javafx/scene/control/PopupControl.java Changeset: 89b559a30294 Author: David Grieve Date: 2014-06-13 09:33 -0400 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/89b559a30294 RT-37451: [PopupControl] PopupControl.CSSBridge.getStyleableParent method changed to final ! modules/controls/src/main/java/javafx/scene/control/PopupControl.java From tomas.mikula at gmail.com Fri Jun 13 14:39:08 2014 From: tomas.mikula at gmail.com (Tomas Mikula) Date: Fri, 13 Jun 2014 16:39:08 +0200 Subject: Is JavaFX keyboard event handling too rigid? In-Reply-To: <16923DCC-0AB3-4133-8912-BEDA30876FB6@rockit.dk> References: <16923DCC-0AB3-4133-8912-BEDA30876FB6@rockit.dk> Message-ID: Hi Randahl, I think the general advice is to avoid subclassing controls if possible. You can create your custom control that embeds a text field and filter events on your custom control so they never reach the embedded text field. Tomas On Fri, Jun 13, 2014 at 10:11 AM, Randahl Fink Isaksen wrote: > I have noticed that quite many developers are having trouble avoiding triggering of focus navigation occurring when a user presses the UP and DOWN arrow keys. From a number of different forum posts I have seen how people are jumping through hoops to avoid this. > > I myself have the challenge, that I need to use the UP and DOWN keys for changing the selected autocompletion in a text field, and it seems that no matter how greedily I try to consume or filter out these KeyEvents, JavaFX still insists on moving the focus from one field to the next. > > This got me thinking: Why is JavaFX keyboard event handling so rigid? If you implement a control which listens for keyboard events on itself and does some cool stuff, that is fine. But once you implement a subclass that wishes to replace some of that behaviour you are in trouble, because once the EventHandlers are registered, there is no public API to replace them. > > Is this a conscious design decision? Is it something that I should file a feature request on, or have I overlooked a part of the API which could be used here? > > Randahl > From danno.ferrin at shemnon.com Fri Jun 13 14:45:19 2014 From: danno.ferrin at shemnon.com (Danno Ferrin) Date: Fri, 13 Jun 2014 08:45:19 -0600 Subject: Large Image Export Message-ID: While working on a fun project I discovered that the Image Export limits the size of the export textures, mostly depending on your graphics stack. Here's one example: java.lang.RuntimeException: Requested texture dimensions (20581x245) require dimensions (0x245) that exceed maximum texture size (16384) at com.sun.prism.es2.ES2RTTexture.create(ES2RTTexture.java:220) at com.sun.prism.es2.ES2ResourceFactory.createRTTexture(ES2ResourceFactory.java:106) at com.sun.prism.es2.ES2ResourceFactory.createRTTexture(ES2ResourceFactory.java:102) at com.sun.javafx.tk.quantum.QuantumToolkit$QuantumImage.getRT(QuantumToolkit.java:1210) at com.sun.javafx.tk.quantum.QuantumToolkit$18.run(QuantumToolkit.java:1345) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) at com.sun.javafx.tk.RenderJob.run(RenderJob.java:58) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:129) This is on a mid-2012 Mac Book Air, and the MacGLConext looks to limit dimensions to 2^14. Is there anything I can do other than making sure my nodes don't get bigger than 16K on one side? I've tried setting a transform on the snapshot and zooming it below 16k, but it still gets the same exception with he same dimensions. --Danno From steve.x.northover at oracle.com Fri Jun 13 15:15:02 2014 From: steve.x.northover at oracle.com (Stephen F Northover) Date: Fri, 13 Jun 2014 11:15:02 -0400 Subject: Is JavaFX keyboard event handling too rigid? In-Reply-To: References: <16923DCC-0AB3-4133-8912-BEDA30876FB6@rockit.dk> Message-ID: <539B1576.2090500@oracle.com> You should be able to use event filtering to get in the way of any event before it is delivered to the control. If you provide some sample code for what you are trying to do, we can take a look at it and suggest a possible solution. Steve On 2014-06-13, 10:39 AM, Tomas Mikula wrote: > Hi Randahl, > > I think the general advice is to avoid subclassing controls if > possible. You can create your custom control that embeds a text field > and filter events on your custom control so they never reach the > embedded text field. > > Tomas > > On Fri, Jun 13, 2014 at 10:11 AM, Randahl Fink Isaksen > wrote: >> I have noticed that quite many developers are having trouble avoiding triggering of focus navigation occurring when a user presses the UP and DOWN arrow keys. From a number of different forum posts I have seen how people are jumping through hoops to avoid this. >> >> I myself have the challenge, that I need to use the UP and DOWN keys for changing the selected autocompletion in a text field, and it seems that no matter how greedily I try to consume or filter out these KeyEvents, JavaFX still insists on moving the focus from one field to the next. >> >> This got me thinking: Why is JavaFX keyboard event handling so rigid? If you implement a control which listens for keyboard events on itself and does some cool stuff, that is fine. But once you implement a subclass that wishes to replace some of that behaviour you are in trouble, because once the EventHandlers are registered, there is no public API to replace them. >> >> Is this a conscious design decision? Is it something that I should file a feature request on, or have I overlooked a part of the API which could be used here? >> >> Randahl >> From hang.vo at oracle.com Fri Jun 13 15:17:37 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Fri, 13 Jun 2014 15:17:37 +0000 Subject: hg: openjfx/8u-dev/rt: 2 new changesets Message-ID: <201406131517.s5DFHqlK005384@aojmv0008> Changeset: d80d00bde528 Author: ddhill Date: 2014-06-13 10:56 -0400 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/d80d00bde528 RT-36375 finishing Monocle Robot screen capture. Reviewed-by: dblaukopf Changeset: 6a7d974b09bd Author: snorthov Date: 2014-06-13 10:57 -0400 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/6a7d974b09bd [REMOVE UNUSED IMPORT] Causes compile error on Android / iOS ! modules/fxml/src/main/java/javafx/fxml/JavaFXBuilderFactory.java From kevin.rushforth at oracle.com Fri Jun 13 15:38:11 2014 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Fri, 13 Jun 2014 08:38:11 -0700 Subject: Large Image Export In-Reply-To: References: Message-ID: <539B1AE3.2010503@oracle.com> This is RT-22073 which is currently targeted for 9, but could be moved into 8u20 if there was enough demand to fix it. The (rather ugly) app-level workaround is to break the operation up into 4Kx4K tiles, and render the tiles in a loop specifying the appropriate viewport and translation via ShapshotParams. -- Kevin Danno Ferrin wrote: > While working on a fun project I discovered that the Image Export limits > the size of the export textures, mostly depending on your graphics stack. > Here's one example: > > java.lang.RuntimeException: Requested texture dimensions (20581x245) > require dimensions (0x245) that exceed maximum texture size (16384) > at com.sun.prism.es2.ES2RTTexture.create(ES2RTTexture.java:220) > at > com.sun.prism.es2.ES2ResourceFactory.createRTTexture(ES2ResourceFactory.java:106) > at > com.sun.prism.es2.ES2ResourceFactory.createRTTexture(ES2ResourceFactory.java:102) > at > com.sun.javafx.tk.quantum.QuantumToolkit$QuantumImage.getRT(QuantumToolkit.java:1210) > at com.sun.javafx.tk.quantum.QuantumToolkit$18.run(QuantumToolkit.java:1345) > at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) > at com.sun.javafx.tk.RenderJob.run(RenderJob.java:58) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > at > com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:129) > > This is on a mid-2012 Mac Book Air, and the MacGLConext looks to limit > dimensions to 2^14. > > Is there anything I can do other than making sure my nodes don't get bigger > than 16K on one side? I've tried setting a transform on the snapshot and > zooming it below 16k, but it still gets the same exception with he same > dimensions. > > --Danno > From kevin.rushforth at oracle.com Fri Jun 13 15:39:19 2014 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Fri, 13 Jun 2014 08:39:19 -0700 Subject: Large Image Export In-Reply-To: <539B1AE3.2010503@oracle.com> References: <539B1AE3.2010503@oracle.com> Message-ID: <539B1B27.3070906@oracle.com> > could be moved into 8u20 I meant 8u40. -- Kevin Kevin Rushforth wrote: > This is RT-22073 which > is currently targeted for 9, but could be moved into 8u20 if there was > enough demand to fix it. The (rather ugly) app-level workaround is to > break the operation up into 4Kx4K tiles, and render the tiles in a > loop specifying the appropriate viewport and translation via > ShapshotParams. > > -- Kevin > > > > Danno Ferrin wrote: >> While working on a fun project I discovered that the Image Export limits >> the size of the export textures, mostly depending on your graphics >> stack. >> Here's one example: >> >> java.lang.RuntimeException: Requested texture dimensions (20581x245) >> require dimensions (0x245) that exceed maximum texture size (16384) >> at com.sun.prism.es2.ES2RTTexture.create(ES2RTTexture.java:220) >> at >> com.sun.prism.es2.ES2ResourceFactory.createRTTexture(ES2ResourceFactory.java:106) >> >> at >> com.sun.prism.es2.ES2ResourceFactory.createRTTexture(ES2ResourceFactory.java:102) >> >> at >> com.sun.javafx.tk.quantum.QuantumToolkit$QuantumImage.getRT(QuantumToolkit.java:1210) >> >> at >> com.sun.javafx.tk.quantum.QuantumToolkit$18.run(QuantumToolkit.java:1345) >> >> at >> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) >> at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) >> at com.sun.javafx.tk.RenderJob.run(RenderJob.java:58) >> at >> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) >> >> at >> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) >> >> at >> com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:129) >> >> >> This is on a mid-2012 Mac Book Air, and the MacGLConext looks to limit >> dimensions to 2^14. >> >> Is there anything I can do other than making sure my nodes don't get >> bigger >> than 16K on one side? I've tried setting a transform on the snapshot >> and >> zooming it below 16k, but it still gets the same exception with he same >> dimensions. >> >> --Danno >> From danno.ferrin at shemnon.com Fri Jun 13 15:47:29 2014 From: danno.ferrin at shemnon.com (Danno Ferrin) Date: Fri, 13 Jun 2014 09:47:29 -0600 Subject: Large Image Export In-Reply-To: <539B1AE3.2010503@oracle.com> References: <539B1AE3.2010503@oracle.com> Message-ID: So the limitation is in the snapshot code, not the target image code? This is actually a feasible workaround, so 8u40 would be grand but 9 is also just fine. Also, is 4K the lowest the texture size max will be? Or is there some API to query it? On Fri, Jun 13, 2014 at 9:38 AM, Kevin Rushforth wrote: > This is RT-22073 which > is currently targeted for 9, but could be moved into 8u20 if there was > enough demand to fix it. The (rather ugly) app-level workaround is to break > the operation up into 4Kx4K tiles, and render the tiles in a loop > specifying the appropriate viewport and translation via ShapshotParams. > > -- Kevin > > > > > Danno Ferrin wrote: > > While working on a fun project I discovered that the Image Export limits > the size of the export textures, mostly depending on your graphics stack. > Here's one example: > > java.lang.RuntimeException: Requested texture dimensions (20581x245) > require dimensions (0x245) that exceed maximum texture size (16384) > at com.sun.prism.es2.ES2RTTexture.create(ES2RTTexture.java:220) > at > com.sun.prism.es2.ES2ResourceFactory.createRTTexture(ES2ResourceFactory.java:106) > at > com.sun.prism.es2.ES2ResourceFactory.createRTTexture(ES2ResourceFactory.java:102) > at > com.sun.javafx.tk.quantum.QuantumToolkit$QuantumImage.getRT(QuantumToolkit.java:1210) > at com.sun.javafx.tk.quantum.QuantumToolkit$18.run(QuantumToolkit.java:1345) > at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) > at com.sun.javafx.tk.RenderJob.run(RenderJob.java:58) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > at > com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:129) > > This is on a mid-2012 Mac Book Air, and the MacGLConext looks to limit > dimensions to 2^14. > > Is there anything I can do other than making sure my nodes don't get bigger > than 16K on one side? I've tried setting a transform on the snapshot and > zooming it below 16k, but it still gets the same exception with he same > dimensions. > > --Danno > > > From hang.vo at oracle.com Fri Jun 13 15:47:53 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Fri, 13 Jun 2014 15:47:53 +0000 Subject: hg: openjfx/8u-dev/rt: 2 new changesets Message-ID: <201406131548.s5DFmA3G009488@aojmv0008> Changeset: 65903865cab7 Author: kcr Date: 2014-06-13 08:41 -0700 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/65903865cab7 RT-37539: [Builders] Web builder classes not built unless COMPILE_WEBKIT=true Reviewed-by: ddhill ! build.gradle Changeset: a88b5721a3be Author: ddhill Date: 2014-06-13 11:20 -0400 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/a88b5721a3be RT-36375 finishing Monocle Robot screen capture (with changes this time) Reviewed-by: dblaukopf ! modules/graphics/src/main/java/com/sun/glass/ui/monocle/AcceleratedScreen.java ! modules/graphics/src/main/java/com/sun/glass/ui/monocle/MonocleRobot.java ! modules/graphics/src/main/java/com/sun/glass/ui/monocle/NativeScreen.java ! modules/graphics/src/main/java/com/sun/glass/ui/monocle/headless/HeadlessScreen.java ! modules/graphics/src/main/java/com/sun/glass/ui/monocle/linux/FBDevScreen.java ! modules/graphics/src/main/java/com/sun/glass/ui/monocle/linux/LinuxFrameBuffer.java ! modules/graphics/src/main/java/com/sun/glass/ui/monocle/x11/X11Screen.java From kevin.rushforth at oracle.com Fri Jun 13 16:12:02 2014 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Fri, 13 Jun 2014 09:12:02 -0700 Subject: Large Image Export In-Reply-To: References: <539B1AE3.2010503@oracle.com> Message-ID: <539B22D2.4030206@oracle.com> Yes, the limitation is in snapshot, although there are other places where we hit the same limit. When rendering an image via an InageView we do the tiling correctly. I haven't seen anything lower than 4K x 4X in practice, so that should be safe. We do query and keep the max texture size internally in Prism (per-resource-factory), but don't expose it via a public API. -- Kevin Danno Ferrin wrote: > So the limitation is in the snapshot code, not the target image code? > This is actually a feasible workaround, so 8u40 would be grand but 9 > is also just fine. > > Also, is 4K the lowest the texture size max will be? Or is there some > API to query it? > > > On Fri, Jun 13, 2014 at 9:38 AM, Kevin Rushforth > > wrote: > > This is RT-22073 > which is currently targeted for 9, but could be moved into 8u20 if > there was enough demand to fix it. The (rather ugly) app-level > workaround is to break the operation up into 4Kx4K tiles, and > render the tiles in a loop specifying the appropriate viewport and > translation via ShapshotParams. > > -- Kevin > > > > > Danno Ferrin wrote: >> While working on a fun project I discovered that the Image Export limits >> the size of the export textures, mostly depending on your graphics stack. >> Here's one example: >> >> java.lang.RuntimeException: Requested texture dimensions (20581x245) >> require dimensions (0x245) that exceed maximum texture size (16384) >> at com.sun.prism.es2.ES2RTTexture.create(ES2RTTexture.java:220) >> at >> com.sun.prism.es2.ES2ResourceFactory.createRTTexture(ES2ResourceFactory.java:106) >> at >> com.sun.prism.es2.ES2ResourceFactory.createRTTexture(ES2ResourceFactory.java:102) >> at >> com.sun.javafx.tk.quantum.QuantumToolkit$QuantumImage.getRT(QuantumToolkit.java:1210) >> at com.sun.javafx.tk.quantum.QuantumToolkit$18.run(QuantumToolkit.java:1345) >> at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) >> at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) >> at com.sun.javafx.tk.RenderJob.run(RenderJob.java:58) >> at >> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) >> at >> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) >> at >> com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:129) >> >> This is on a mid-2012 Mac Book Air, and the MacGLConext looks to limit >> dimensions to 2^14. >> >> Is there anything I can do other than making sure my nodes don't get bigger >> than 16K on one side? I've tried setting a transform on the snapshot and >> zooming it below 16k, but it still gets the same exception with he same >> dimensions. >> >> --Danno >> > > From steve.x.northover at oracle.com Fri Jun 13 16:46:04 2014 From: steve.x.northover at oracle.com (Stephen F Northover) Date: Fri, 13 Jun 2014 12:46:04 -0400 Subject: Large Image Export In-Reply-To: <539B1B27.3070906@oracle.com> References: <539B1AE3.2010503@oracle.com> <539B1B27.3070906@oracle.com> Message-ID: <539B2ACC.5050400@oracle.com> .. a rare instance of Kevin getting a release name wrong! Steve On 2014-06-13, 11:39 AM, Kevin Rushforth wrote: > > could be moved into 8u20 > > I meant 8u40. > > -- Kevin > > > Kevin Rushforth wrote: >> This is RT-22073 >> which is currently targeted for 9, but could be moved into 8u20 if >> there was enough demand to fix it. The (rather ugly) app-level >> workaround is to break the operation up into 4Kx4K tiles, and render >> the tiles in a loop specifying the appropriate viewport and >> translation via ShapshotParams. >> >> -- Kevin >> >> >> >> Danno Ferrin wrote: >>> While working on a fun project I discovered that the Image Export >>> limits >>> the size of the export textures, mostly depending on your graphics >>> stack. >>> Here's one example: >>> >>> java.lang.RuntimeException: Requested texture dimensions (20581x245) >>> require dimensions (0x245) that exceed maximum texture size (16384) >>> at com.sun.prism.es2.ES2RTTexture.create(ES2RTTexture.java:220) >>> at >>> com.sun.prism.es2.ES2ResourceFactory.createRTTexture(ES2ResourceFactory.java:106) >>> >>> at >>> com.sun.prism.es2.ES2ResourceFactory.createRTTexture(ES2ResourceFactory.java:102) >>> >>> at >>> com.sun.javafx.tk.quantum.QuantumToolkit$QuantumImage.getRT(QuantumToolkit.java:1210) >>> >>> at >>> com.sun.javafx.tk.quantum.QuantumToolkit$18.run(QuantumToolkit.java:1345) >>> >>> at >>> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) >>> at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) >>> at com.sun.javafx.tk.RenderJob.run(RenderJob.java:58) >>> at >>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) >>> >>> at >>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) >>> >>> at >>> com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:129) >>> >>> >>> This is on a mid-2012 Mac Book Air, and the MacGLConext looks to limit >>> dimensions to 2^14. >>> >>> Is there anything I can do other than making sure my nodes don't get >>> bigger >>> than 16K on one side? I've tried setting a transform on the >>> snapshot and >>> zooming it below 16k, but it still gets the same exception with he same >>> dimensions. >>> >>> --Danno From hang.vo at oracle.com Fri Jun 13 17:33:02 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Fri, 13 Jun 2014 17:33:02 +0000 Subject: hg: openjfx/8u-dev/rt: RT-37548: TabPaneSkin keeps reference to Tab after closing the last one Message-ID: <201406131733.s5DHXFI0024420@aojmv0008> Changeset: 80be95eb45f1 Author: David Grieve Date: 2014-06-13 13:18 -0400 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/80be95eb45f1 RT-37548: TabPaneSkin keeps reference to Tab after closing the last one ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TabPaneSkin.java From hang.vo at oracle.com Fri Jun 13 18:03:24 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Fri, 13 Jun 2014 18:03:24 +0000 Subject: hg: openjfx/8u-dev/rt: 6 new changesets Message-ID: <201406131804.s5DI461Z028838@aojmv0008> Changeset: d7447fb53063 Author: ddhill Date: 2014-06-13 13:57 -0400 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/d7447fb53063 RT-37544 [Android] new versions of FX launcher classes on Dalvik Contributed-by: johanvos ! modules/graphics/src/dalvik/java/javafxports/android/DalvikLauncher.java ! modules/graphics/src/dalvik/java/javafxports/android/FXActivity.java Changeset: bb93c8561e3a Author: ddhill Date: 2014-06-13 13:57 -0400 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/bb93c8561e3a RT-37545 [Android] On dalvik, don't use android library Contrbuted-by: johanvos ! modules/graphics/src/main/native-prism-es2/eglfb/wrapped_egl.c Changeset: f766fc30b94a Author: ddhill Date: 2014-06-13 13:57 -0400 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/f766fc30b94a RT-37546 [Android] Dalvik font descriptors in wrong directory Contrbuted-by: johanvos - modules/graphics/src/main/java/com/sun/javafx/font/android_system_fonts.xml + modules/graphics/src/main/resources/com/sun/javafx/font/android_system_fonts.xml Changeset: 31c211274ad5 Author: ddhill Date: 2014-06-13 13:57 -0400 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/31c211274ad5 RT-37532 [Android] dalvik.gradle contains an hardcoded path to rt.jar Contrbuted-by: johanvos ! buildSrc/dalvik.gradle Changeset: 2cf52ba25887 Author: ddhill Date: 2014-06-13 13:57 -0400 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/2cf52ba25887 RT-37543 [Android] align sdk directory structure dalvik with other platforms Contrbuted-by: johanvos ! buildSrc/dalvik.gradle Changeset: dd4e8fc28238 Author: ddhill Date: 2014-06-13 13:57 -0400 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/dd4e8fc28238 RT-36811 [Android] Stackoverflow on JavaFX Application Thread Contributed-by: snfuchs ! modules/graphics/src/main/java/com/sun/glass/ui/lens/LensApplication.java From David.Hill at Oracle.com Fri Jun 13 18:15:06 2014 From: David.Hill at Oracle.com (David Hill) Date: Fri, 13 Jun 2014 14:15:06 -0400 Subject: review for https://javafx-jira.kenai.com/browse/RT-37552 Message-ID: <539B3FAA.4010306@Oracle.com> Daniel, would you review the change in RT-37552 Dave jira: https://javafx-jira.kenai.com/browse/RT-37552 patch is in the Jira. -- David Hill Java Embedded Development Insanity in individuals is something rare - but in groups, parties, nations and epochs, it is the rule. -- Friedrich Nietzsche From kevin.rushforth at oracle.com Fri Jun 13 18:20:53 2014 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Fri, 13 Jun 2014 11:20:53 -0700 Subject: Large Image Export In-Reply-To: <539B2ACC.5050400@oracle.com> References: <539B1AE3.2010503@oracle.com> <539B1B27.3070906@oracle.com> <539B2ACC.5050400@oracle.com> Message-ID: <539B4105.10709@oracle.com> The funny thing is I was sure I had typed 8u40, but my fingers had other ideas. :) -- Kevin Stephen F Northover wrote: > ... a rare instance of Kevin getting a release name wrong! > > Steve > > On 2014-06-13, 11:39 AM, Kevin Rushforth wrote: >> > could be moved into 8u20 >> >> I meant 8u40. >> >> -- Kevin >> >> >> Kevin Rushforth wrote: >>> This is RT-22073 >>> which is currently targeted for 9, but could be moved into 8u20 if >>> there was enough demand to fix it. The (rather ugly) app-level >>> workaround is to break the operation up into 4Kx4K tiles, and render >>> the tiles in a loop specifying the appropriate viewport and >>> translation via ShapshotParams. >>> >>> -- Kevin >>> >>> >>> >>> Danno Ferrin wrote: >>>> While working on a fun project I discovered that the Image Export >>>> limits >>>> the size of the export textures, mostly depending on your graphics >>>> stack. >>>> Here's one example: >>>> >>>> java.lang.RuntimeException: Requested texture dimensions (20581x245) >>>> require dimensions (0x245) that exceed maximum texture size (16384) >>>> at com.sun.prism.es2.ES2RTTexture.create(ES2RTTexture.java:220) >>>> at >>>> com.sun.prism.es2.ES2ResourceFactory.createRTTexture(ES2ResourceFactory.java:106) >>>> >>>> at >>>> com.sun.prism.es2.ES2ResourceFactory.createRTTexture(ES2ResourceFactory.java:102) >>>> >>>> at >>>> com.sun.javafx.tk.quantum.QuantumToolkit$QuantumImage.getRT(QuantumToolkit.java:1210) >>>> >>>> at >>>> com.sun.javafx.tk.quantum.QuantumToolkit$18.run(QuantumToolkit.java:1345) >>>> >>>> at >>>> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) >>>> >>>> at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) >>>> at com.sun.javafx.tk.RenderJob.run(RenderJob.java:58) >>>> at >>>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) >>>> >>>> at >>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) >>>> >>>> at >>>> com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:129) >>>> >>>> >>>> This is on a mid-2012 Mac Book Air, and the MacGLConext looks to limit >>>> dimensions to 2^14. >>>> >>>> Is there anything I can do other than making sure my nodes don't >>>> get bigger >>>> than 16K on one side? I've tried setting a transform on the >>>> snapshot and >>>> zooming it below 16k, but it still gets the same exception with he >>>> same >>>> dimensions. >>>> >>>> --Danno > From hang.vo at oracle.com Fri Jun 13 19:33:10 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Fri, 13 Jun 2014 19:33:10 +0000 Subject: hg: openjfx/8u-dev/rt: RT-36335: [Accessibility] Hide prototype API Message-ID: <201406131933.s5DJXMPZ012707@aojmv0008> Changeset: 12197c6e1aa7 Author: Felipe Heidrich Date: 2014-06-13 12:21 -0700 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/12197c6e1aa7 RT-36335: [Accessibility] Hide prototype API ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ComboBoxListViewSkin.java ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ComboBoxPopupControl.java ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ContextMenuContent.java ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ContextMenuSkin.java ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/LabeledSkinBase.java ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ListViewSkin.java ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/MenuBarSkin.java ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/PaginationSkin.java ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ScrollBarSkin.java ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ScrollPaneSkin.java ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/SliderSkin.java ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TabPaneSkin.java ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TableColumnHeader.java ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TableRowSkin.java ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TableViewSkin.java ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TableViewSkinBase.java ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TextAreaSkin.java ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TextFieldSkin.java ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TextInputControlSkin.java ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ToolBarSkin.java ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TreeTableRowSkin.java ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TreeTableViewSkin.java ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TreeViewSkin.java ! modules/controls/src/main/java/javafx/scene/control/Button.java ! modules/controls/src/main/java/javafx/scene/control/ButtonBase.java ! modules/controls/src/main/java/javafx/scene/control/CheckBox.java ! modules/controls/src/main/java/javafx/scene/control/ChoiceBox.java ! modules/controls/src/main/java/javafx/scene/control/ComboBox.java ! modules/controls/src/main/java/javafx/scene/control/ComboBoxBase.java ! modules/controls/src/main/java/javafx/scene/control/Control.java ! modules/controls/src/main/java/javafx/scene/control/DatePicker.java ! modules/controls/src/main/java/javafx/scene/control/Hyperlink.java ! modules/controls/src/main/java/javafx/scene/control/Label.java ! modules/controls/src/main/java/javafx/scene/control/Labeled.java ! modules/controls/src/main/java/javafx/scene/control/ListCell.java ! modules/controls/src/main/java/javafx/scene/control/ListView.java ! modules/controls/src/main/java/javafx/scene/control/MenuBar.java ! modules/controls/src/main/java/javafx/scene/control/MenuButton.java ! modules/controls/src/main/java/javafx/scene/control/Pagination.java ! modules/controls/src/main/java/javafx/scene/control/PasswordField.java ! modules/controls/src/main/java/javafx/scene/control/ProgressBar.java ! modules/controls/src/main/java/javafx/scene/control/ProgressIndicator.java ! modules/controls/src/main/java/javafx/scene/control/RadioButton.java ! modules/controls/src/main/java/javafx/scene/control/ScrollBar.java ! modules/controls/src/main/java/javafx/scene/control/ScrollPane.java ! modules/controls/src/main/java/javafx/scene/control/SkinBase.java ! modules/controls/src/main/java/javafx/scene/control/Slider.java ! modules/controls/src/main/java/javafx/scene/control/SplitMenuButton.java ! modules/controls/src/main/java/javafx/scene/control/TabPane.java ! modules/controls/src/main/java/javafx/scene/control/TableCell.java ! modules/controls/src/main/java/javafx/scene/control/TableRow.java ! modules/controls/src/main/java/javafx/scene/control/TableView.java ! modules/controls/src/main/java/javafx/scene/control/TextArea.java ! modules/controls/src/main/java/javafx/scene/control/TextField.java ! modules/controls/src/main/java/javafx/scene/control/TextInputControl.java ! modules/controls/src/main/java/javafx/scene/control/TitledPane.java ! modules/controls/src/main/java/javafx/scene/control/ToggleButton.java ! modules/controls/src/main/java/javafx/scene/control/ToolBar.java ! modules/controls/src/main/java/javafx/scene/control/Tooltip.java ! modules/controls/src/main/java/javafx/scene/control/TreeCell.java ! modules/controls/src/main/java/javafx/scene/control/TreeTableCell.java ! modules/controls/src/main/java/javafx/scene/control/TreeTableRow.java ! modules/controls/src/main/java/javafx/scene/control/TreeTableView.java ! modules/controls/src/main/java/javafx/scene/control/TreeView.java ! modules/graphics/src/main/java/com/sun/glass/ui/Application.java ! modules/graphics/src/main/java/com/sun/glass/ui/PlatformAccessible.java ! modules/graphics/src/main/java/com/sun/glass/ui/View.java ! modules/graphics/src/main/java/com/sun/glass/ui/mac/MacAccessible.java ! modules/graphics/src/main/java/com/sun/glass/ui/mac/MacApplication.java ! modules/graphics/src/main/java/com/sun/glass/ui/win/WinAccessible.java ! modules/graphics/src/main/java/com/sun/glass/ui/win/WinApplication.java ! modules/graphics/src/main/java/com/sun/glass/ui/win/WinTextRangeProvider.java + modules/graphics/src/main/java/com/sun/javafx/scene/accessibility/Accessible.java + modules/graphics/src/main/java/com/sun/javafx/scene/accessibility/Action.java + modules/graphics/src/main/java/com/sun/javafx/scene/accessibility/Attribute.java + modules/graphics/src/main/java/com/sun/javafx/scene/accessibility/Role.java + modules/graphics/src/main/java/com/sun/javafx/scene/accessibility/package.html ! modules/graphics/src/main/java/com/sun/javafx/tk/TKSceneListener.java ! modules/graphics/src/main/java/com/sun/javafx/tk/quantum/GlassViewEventHandler.java ! modules/graphics/src/main/java/javafx/scene/Node.java ! modules/graphics/src/main/java/javafx/scene/Parent.java ! modules/graphics/src/main/java/javafx/scene/Scene.java - modules/graphics/src/main/java/javafx/scene/accessibility/Accessible.java - modules/graphics/src/main/java/javafx/scene/accessibility/Action.java - modules/graphics/src/main/java/javafx/scene/accessibility/Attribute.java - modules/graphics/src/main/java/javafx/scene/accessibility/Role.java - modules/graphics/src/main/java/javafx/scene/accessibility/package.html ! modules/graphics/src/main/java/javafx/scene/image/ImageView.java ! modules/graphics/src/main/java/javafx/scene/text/Text.java ! modules/graphics/src/main/java/javafx/scene/text/TextFlow.java From hang.vo at oracle.com Fri Jun 13 20:03:22 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Fri, 13 Jun 2014 20:03:22 +0000 Subject: hg: openjfx/8u-dev/rt: RT-37549: Ability to produce a DMG from an APP seems broken Message-ID: <201406132003.s5DK3aVT016798@aojmv0008> Changeset: d1b812ea87df Author: shemnon Date: 2014-06-13 13:45 -0600 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/d1b812ea87df RT-37549: Ability to produce a DMG from an APP seems broken Summary: When refactoring the feature got broken Also, took the opportunity to add some unit tests and improve the validation with this feature. ! modules/fxpackager/src/main/java/com/oracle/tools/packager/mac/MacBaseInstallerBundler.java ! modules/fxpackager/src/main/java/com/oracle/tools/packager/mac/MacDmgBundler.java ! modules/fxpackager/src/main/java/com/sun/javafx/tools/packager/Main.java ! modules/fxpackager/src/main/resources/com/oracle/tools/packager/mac/MacBaseInstallerBundler.properties ! modules/fxpackager/src/test/java/com/oracle/tools/packager/mac/MacDmgBundlerTest.java From kevin.rushforth at oracle.com Fri Jun 13 20:29:56 2014 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Fri, 13 Jun 2014 13:29:56 -0700 Subject: IMPORTANT: Commit rules for next week's rampdown to M5 Message-ID: <539B5F44.1060509@oracle.com> TO: ALL JAVAFX DEVELOPERS Next week is our ramp-down week for M5, which is the last milestone before we fork the 8u20 stabilization repo. As a reminder, the Milestone Week stabilization rules [1] are in effect for any changesets pushed after 1am on Monday, June 16. This means no post-commit reviews, and you need an extra "+1" from one of the leads listed on the Wiki (the usual exception applies for javadoc changes and changes that don't touch the shipping bits). Given that this is the last milestone before 8u20 goes into its end-of-the-release stabilization we are likely to be a bit more strict than previous milestones about giving approval. Pretty much if it isn't a regression or a serious bug, it will likely need to wait for 8u40. -- Steve & Kevin [1] https://wiki.openjdk.java.net/display/OpenJFX/8u20 From hang.vo at oracle.com Fri Jun 13 22:03:32 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Fri, 13 Jun 2014 22:03:32 +0000 Subject: hg: openjfx/8u-dev/rt: RT-37549: Ability to produce a DMG from an APP seems broken Message-ID: <201406132203.s5DM3iCk003071@aojmv0008> Changeset: 843180e964d3 Author: shemnon Date: 2014-06-13 15:51 -0600 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/843180e964d3 RT-37549: Ability to produce a DMG from an APP seems broken Summary: Add tests to PKG and MAS bundlers. Add size checks to verify file output bundlers have a sensible result (PKGs didn't at the time) Have interim PKG packages use the APP_FS_NAME, which doges a bunch of URL issues. ! modules/fxpackager/src/main/java/com/oracle/tools/packager/mac/MacAppStoreBundler.java ! modules/fxpackager/src/main/java/com/oracle/tools/packager/mac/MacPkgBundler.java ! modules/fxpackager/src/main/resources/com/oracle/tools/packager/mac/MacBaseInstallerBundler.properties ! modules/fxpackager/src/test/java/com/oracle/tools/packager/mac/MacAppStoreBundlerTest.java ! modules/fxpackager/src/test/java/com/oracle/tools/packager/mac/MacDmgBundlerTest.java ! modules/fxpackager/src/test/java/com/oracle/tools/packager/mac/MacPkgBundlerTest.java From kevin.rushforth at oracle.com Fri Jun 13 23:10:31 2014 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Fri, 13 Jun 2014 16:10:31 -0700 Subject: Reminder: committing changesets Message-ID: <539B84E7.2040101@oracle.com> As we near the end of the 8u20 release here are a few simple reminders of the rules for pushing changesets. 1) Generally all changesets should have a JIRA bug ID associated with them. Exceptions are documented on our Wiki [1]. 2) The format of commit messages (also on the Wiki) is: RT-nnnnn: bug title from JIRA Summary: a description of what or how you fixed the problem [optional] Reviewed-by: list, of, reviewers [openjdk ID is preferred] Contributed-by: Some One [if applicable] 3) Avoid unrelated changes in the same changeset Thanks. -- Kevin [1] https://wiki.openjdk.java.net/display/OpenJFX/Committing+the+Code From hang.vo at oracle.com Fri Jun 13 23:33:01 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Fri, 13 Jun 2014 23:33:01 +0000 Subject: hg: openjfx/8u-dev/rt: RT-37447: Update javapackager / javafxpackager man pages for 8u20 Message-ID: <201406132333.s5DNXFxM017147@aojmv0008> Changeset: f41461e0a98c Author: kcr Date: 2014-06-13 16:20 -0700 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/f41461e0a98c RT-37447: Update javapackager / javafxpackager man pages for 8u20 Summary: English versions of 8u20 man pages; translated versions to follow ! modules/fxpackager/src/main/man/man1/javafxpackager.1 ! modules/fxpackager/src/main/man/man1/javapackager.1 From kevin.rushforth at oracle.com Sat Jun 14 00:05:36 2014 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Fri, 13 Jun 2014 17:05:36 -0700 Subject: Fwd: All-Permissions not working properly with sun.plugin2.applet.FXAppletSecurityManager In-Reply-To: <5398893C.8080107@oracle.com> References: <2D816D15-74B6-499B-B8A5-07451BA075B1@oracle.com> <534F65C9.8030801@oracle.com> <53987C58.5080308@oracle.com> <5398893C.8080107@oracle.com> Message-ID: <539B91D0.2090505@oracle.com> Hi Scott, I created two new non-confidential bugs and closed the original ones as duplicates. Here are the new bugs: reflection in daemon thread: JDK-8046825 (was JDK-8040699) : All-Permissions not working properly with sun.plugin2.applet.FXAppletSecurityManager security manager and applet-desc webstart mode: JDK-8046826 (was JDK-8040231) : All permission fx javaws app could not set Security Manager to null. I have copied Dmitry in case he has any information about these bugs. -- Kevin Kevin Rushforth wrote: > Dmitry can comment further, but it is possible that this issue could > be backported to 8u40 if done soon enough. > > I will double-check whether the bugs can be made non-confidential (so > you can at least track progress), but I suspect they cannot in their > current form, in which case new bugs should be filed with the > confidential information moved to confidential comments in the bug. I > will help with this. > > -- Kevin > > > Scott Palmer wrote: >> Drat... I was hoping to see something much sooner, like 8u20 >> (obviously too late now) or 8u40. I'm unable to use Web Start >> deployment because of this. >> >> Is it necessary for these issues to be blocked from anonymous viewing? >> >> Thanks for the update. >> >> Scott >> >> >> On Wed, Jun 11, 2014 at 11:57 AM, Kevin Rushforth >> > wrote: >> >> These are now assigned to Dmitry Cherapanov who I have copied here >> in case he isn't on the openjfx alias. They are both targeted to >> JDK 9. >> >> -- Kevin >> >> >> Scott Palmer wrote: >> >> I tried to send an email to Thomas asking about the status of >> these issues >> (they are not visible to me), but the email bounced (user >> unknown). Could >> someone let me know the status? >> >> Thanks, >> >> Scott >> >> >> On Thu, Apr 17, 2014 at 1:25 AM, Thomas Ng >> > wrote: >> >> >> Thanks for the report! >> >> Two bugs created for this: >> >> security manager and applet-desc webstart mode: >> https://bugs.openjdk.java.net/browse/JDK-8040231 >> >> reflection in daemon thread: >> https://bugs.openjdk.java.net/browse/JDK-8040699 >> >> -thomas >> >> >> *From: *Scott Palmer > > >> *Subject: **All-Permissions not working properly with >> sun.plugin2.applet.FXAppletSecurityManager* >> *Date: *April 14, 2014 at 1:07:36 PM PDT >> *To: *"openjfx-dev at openjdk.java.net >> " >> > > >> >> >> Can someone confirm that all-permissions is working for >> JavaFX apps >> that are launched via Web Start with Java 8.0 and use >> daemon threads >> in a Service? >> >> I have a JNLP file that has: >> >> >> >> >> and the manifest of my app's jar has the following >> instruction in my >> Gradle script: >> >> jar { >> manifest { >> attributes('Permissions': 'all-permissions', >> 'Codebase': '*') >> } >> } >> >> I'm using the javafx gradle plugin and signing the jars... >> e.g. I see this for every dependency and the main jar: >> ... >> Signing (BLOB) C:\Users\scott\.m2\caches\path\to\some.jar >> Signed as C:\Users\scott\dev\MyProject\build\libs\some.jar >> ... >> >> I even tried System.setSecurityManager(null); in my >> start() method >> (and it lets me do it). >> >> However, daemon threads started by my Service are unable >> to use >> reflection. (It is working in the main FX application >> thread.) I see >> the following stack trace in the Java console: >> >> >> Caused by: java.security.AccessControlException: access >> denied >> ("java.lang.reflect.ReflectPermission" >> "suppressAccessChecks") >> at >> java.security.AccessControlContext.checkPermission(Unknown >> Source) >> at java.security.AccessController.checkPermission(Unknown >> Source) >> at java.lang.SecurityManager.checkPermission(Unknown Source) >> at >> >> sun.plugin2.applet.FXAppletSecurityManager.checkPermission(Unknown >> Source) >> at >> java.lang.reflect.AccessibleObject.setAccessible(Unknown >> Source) >> >> >> Caused by: java.security.AccessControlException: access >> denied >> ("java.lang.RuntimePermission" "accessDeclaredMembers") >> at >> java.security.AccessControlContext.checkPermission(Unknown >> Source) >> at java.security.AccessController.checkPermission(Unknown >> Source) >> at java.lang.SecurityManager.checkPermission(Unknown Source) >> at >> >> sun.plugin2.applet.FXAppletSecurityManager.checkPermission(Unknown >> Source) >> at java.lang.Class.checkMemberAccess(Unknown Source) >> at java.lang.Class.getDeclaredMethod(Unknown Source) >> at >> >> ma.glasnost.orika.property.PropertyResolver.resolvePropertyType(PropertyResolver.java:304) >> >> at >> >> ma.glasnost.orika.property.PropertyResolver.processProperty(PropertyResolver.java:240) >> >> at >> >> ma.glasnost.orika.property.IntrospectorPropertyResolver.collectProperties(IntrospectorPropertyResolver.java:83) >> >> ... 33 more >> >> I bring it up here because FXAppletSecurityManager is >> involved and >> this smells like a possible bug in plugin2 >> >> Regards, >> >> Scott >> >> >> >> >> >> From swpalmer at gmail.com Sat Jun 14 00:18:38 2014 From: swpalmer at gmail.com (Scott Palmer) Date: Fri, 13 Jun 2014 20:18:38 -0400 Subject: All-Permissions not working properly with sun.plugin2.applet.FXAppletSecurityManager In-Reply-To: <539B91D0.2090505@oracle.com> References: <2D816D15-74B6-499B-B8A5-07451BA075B1@oracle.com> <534F65C9.8030801@oracle.com> <53987C58.5080308@oracle.com> <5398893C.8080107@oracle.com> <539B91D0.2090505@oracle.com> Message-ID: Thank you. Is there a way that people that are not project authors can get notifications of updates? I can?t click to add myself to the watch list or vote without a login, and it seems to be near impossible to get a login. The "Account Help? link on the login page is broken and everything I?ve found in the wiki indicates I need to be a project author to get an account. Scott On Jun 13, 2014, at 8:05 PM, Kevin Rushforth wrote: > Hi Scott, > > I created two new non-confidential bugs and closed the original ones as duplicates. Here are the new bugs: > > > reflection in daemon thread: > JDK-8046825 (was JDK-8040699) : All-Permissions not working properly with sun.plugin2.applet.FXAppletSecurityManager > > security manager and applet-desc webstart mode: > JDK-8046826 (was JDK-8040231) : All permission fx javaws app could not set Security Manager to null. > > I have copied Dmitry in case he has any information about these bugs. > > -- Kevin > > > Kevin Rushforth wrote: >> >> Dmitry can comment further, but it is possible that this issue could be backported to 8u40 if done soon enough. >> >> I will double-check whether the bugs can be made non-confidential (so you can at least track progress), but I suspect they cannot in their current form, in which case new bugs should be filed with the confidential information moved to confidential comments in the bug. I will help with this. >> >> -- Kevin >> >> >> Scott Palmer wrote: >>> Drat... I was hoping to see something much sooner, like 8u20 (obviously too late now) or 8u40. I'm unable to use Web Start deployment because of this. >>> >>> Is it necessary for these issues to be blocked from anonymous viewing? >>> >>> Thanks for the update. >>> >>> Scott >>> >>> >>> On Wed, Jun 11, 2014 at 11:57 AM, Kevin Rushforth > wrote: >>> >>> These are now assigned to Dmitry Cherapanov who I have copied here >>> in case he isn't on the openjfx alias. They are both targeted to >>> JDK 9. >>> >>> -- Kevin >>> >>> >>> Scott Palmer wrote: >>> >>> I tried to send an email to Thomas asking about the status of >>> these issues >>> (they are not visible to me), but the email bounced (user >>> unknown). Could >>> someone let me know the status? >>> >>> Thanks, >>> >>> Scott >>> >>> >>> On Thu, Apr 17, 2014 at 1:25 AM, Thomas Ng >>> > wrote: >>> >>> >>> Thanks for the report! >>> >>> Two bugs created for this: >>> >>> security manager and applet-desc webstart mode: >>> https://bugs.openjdk.java.net/browse/JDK-8040231 >>> >>> reflection in daemon thread: >>> https://bugs.openjdk.java.net/browse/JDK-8040699 >>> >>> -thomas >>> >>> >>> *From: *Scott Palmer >> > >>> *Subject: **All-Permissions not working properly with >>> sun.plugin2.applet.FXAppletSecurityManager* >>> *Date: *April 14, 2014 at 1:07:36 PM PDT >>> *To: *"openjfx-dev at openjdk.java.net >>> " >>> >> > >>> >>> >>> Can someone confirm that all-permissions is working for >>> JavaFX apps >>> that are launched via Web Start with Java 8.0 and use >>> daemon threads >>> in a Service? >>> >>> I have a JNLP file that has: >>> >>> >>> >>> >>> and the manifest of my app's jar has the following >>> instruction in my >>> Gradle script: >>> >>> jar { >>> manifest { >>> attributes('Permissions': 'all-permissions', >>> 'Codebase': '*') >>> } >>> } >>> >>> I'm using the javafx gradle plugin and signing the jars... >>> e.g. I see this for every dependency and the main jar: >>> ... >>> Signing (BLOB) C:\Users\scott\.m2\caches\path\to\some.jar >>> Signed as C:\Users\scott\dev\MyProject\build\libs\some.jar >>> ... >>> >>> I even tried System.setSecurityManager(null); in my >>> start() method >>> (and it lets me do it). >>> >>> However, daemon threads started by my Service are unable >>> to use >>> reflection. (It is working in the main FX application >>> thread.) I see >>> the following stack trace in the Java console: >>> >>> >>> Caused by: java.security.AccessControlException: access denied >>> ("java.lang.reflect.ReflectPermission" "suppressAccessChecks") >>> at >>> java.security.AccessControlContext.checkPermission(Unknown >>> Source) >>> at java.security.AccessController.checkPermission(Unknown >>> Source) >>> at java.lang.SecurityManager.checkPermission(Unknown Source) >>> at >>> sun.plugin2.applet.FXAppletSecurityManager.checkPermission(Unknown >>> Source) >>> at >>> java.lang.reflect.AccessibleObject.setAccessible(Unknown >>> Source) >>> >>> >>> Caused by: java.security.AccessControlException: access denied >>> ("java.lang.RuntimePermission" "accessDeclaredMembers") >>> at >>> java.security.AccessControlContext.checkPermission(Unknown >>> Source) >>> at java.security.AccessController.checkPermission(Unknown >>> Source) >>> at java.lang.SecurityManager.checkPermission(Unknown Source) >>> at >>> sun.plugin2.applet.FXAppletSecurityManager.checkPermission(Unknown >>> Source) >>> at java.lang.Class.checkMemberAccess(Unknown Source) >>> at java.lang.Class.getDeclaredMethod(Unknown Source) >>> at >>> ma.glasnost.orika.property.PropertyResolver.resolvePropertyType(PropertyResolver.java:304) >>> at >>> ma.glasnost.orika.property.PropertyResolver.processProperty(PropertyResolver.java:240) >>> at >>> ma.glasnost.orika.property.IntrospectorPropertyResolver.collectProperties(IntrospectorPropertyResolver.java:83) >>> ... 33 more >>> >>> I bring it up here because FXAppletSecurityManager is >>> involved and >>> this smells like a possible bug in plugin2 >>> >>> Regards, >>> >>> Scott >>> >>> >>> >>> >>> >>> From james.graham at oracle.com Sat Jun 14 00:49:27 2014 From: james.graham at oracle.com (Jim Graham) Date: Fri, 13 Jun 2014 17:49:27 -0700 Subject: 8u20 review request: RT-37475 shadow in Ensemble8 Puzzle Pieces demo gets erased Message-ID: <539B9C17.3000806@oracle.com> webrev: http://cr.openjdk.java.net/~flar/RT-37475/webrev.00/ Jira: https://javafx-jira.kenai.com/browse/RT-37475 Lengthy explanation of an "aha" moment in the Jira, but the actual fix is fairly simple... ...jim From hang.vo at oracle.com Sat Jun 14 20:17:52 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Sat, 14 Jun 2014 20:17:52 +0000 Subject: hg: openjfx/8u-dev/rt: RT-20295: Error loading JPG image when scaling Message-ID: <201406142018.s5EKI3kU005325@aojmv0008> Changeset: 571a17178eaa Author: vadim Date: 2014-06-15 00:02 +0400 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/571a17178eaa RT-20295: Error loading JPG image when scaling Summary: fix nearest neigbor algorithm Reviewed-by: flar ! modules/graphics/src/main/java/com/sun/javafx/iio/common/RoughScaler.java ! modules/graphics/src/test/java/com/sun/javafx/iio/BMPImageLoaderTest.java + modules/graphics/src/test/java/com/sun/javafx/iio/ImageLoaderScalingTest.java + modules/graphics/src/test/java/com/sun/javafx/iio/ImageTestHelper.java From adanecito at yahoo.com Sun Jun 15 02:52:46 2014 From: adanecito at yahoo.com (Tony Anecito) Date: Sat, 14 Jun 2014 19:52:46 -0700 (PDT) Subject: New bundler in 8u20 question... Message-ID: <1402800766.24042.YahooMailNeo@web121801.mail.ne1.yahoo.com> Hi All, ? The new bundler in 8u20 seems to create a .pkg file. I am wondering if that is also codesigned via apple codesign command and if so how does it find the entitlements file? So is the goal of the new bundler to replace ALL the manual steps Danno mentioned previously for it to be ready for the Apple iTunes store? ? Thanks, -Tony From felix.bembrick at gmail.com Sun Jun 15 11:22:10 2014 From: felix.bembrick at gmail.com (Felix Bembrick) Date: Sun, 15 Jun 2014 21:22:10 +1000 Subject: [OT] Further to my LinkedIn spam Message-ID: Still embarrassed over spamming this entire list with a LinkedIn request some time ago, it looks like I am not the only one who fell victim to their "aggressive??" policies... http://readwrite.com/2014/06/13/linkedin-lawsuit-privacy-terms-of-service From hang.vo at oracle.com Sun Jun 15 13:03:07 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Sun, 15 Jun 2014 13:03:07 +0000 Subject: hg: openjfx/8u-dev/rt: RT-36545: Implemet inertia for zoom gesture Message-ID: <201406151303.s5FD3JYp019526@aojmv0008> Changeset: 03ceaa639a2c Author: Seeon Birger Date: 2014-06-15 15:47 +0300 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/03ceaa639a2c RT-36545: Implemet inertia for zoom gesture ! modules/graphics/src/main/java/com/sun/javafx/tk/quantum/ZoomGestureRecognizer.java From hang.vo at oracle.com Sun Jun 15 14:32:46 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Sun, 15 Jun 2014 14:32:46 +0000 Subject: hg: openjfx/8u-dev/rt: RT-37514: [Monocle] implement Application.getKeyCodeForChar Message-ID: <201406151432.s5FEWxkG001260@aojmv0008> Changeset: e37f182ad99b Author: Daniel Blaukopf Date: 2014-06-15 17:24 +0300 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/e37f182ad99b RT-37514: [Monocle] implement Application.getKeyCodeForChar ! modules/graphics/src/main/java/com/sun/glass/ui/monocle/MonocleApplication.java ! modules/graphics/src/main/java/com/sun/glass/ui/monocle/input/KeyInput.java + tests/system/src/test/java/com/sun/glass/ui/monocle/MonocleApplicationTest.java From danno.ferrin at oracle.com Sun Jun 15 14:55:51 2014 From: danno.ferrin at oracle.com (Danno Ferrin) Date: Sun, 15 Jun 2014 08:55:51 -0600 Subject: New bundler in 8u20 question... In-Reply-To: <1402800766.24042.YahooMailNeo@web121801.mail.ne1.yahoo.com> References: <1402800766.24042.YahooMailNeo@web121801.mail.ne1.yahoo.com> Message-ID: <54BC25B7-47C6-4755-8A96-50ADE16164E8@oracle.com> Now that ramp down phase 2 is upon us I was going to post a blog post about it this week, but looks like there are some burning questions... On Jun 14, 2014, at 8:52 PM, Tony Anecito wrote: > Hi All, > > The new bundler in 8u20 seems to create a .pkg file. It can create two pkg files. One is the normal PKG wizard installer, like you see when you install Java. The other pkg installer crease a Mac App Store Ready pkg that ban be uploaded via iTunes connect. The problem is right now they will have the same name and overwrite each other, so later today I?ll submit a patch to make the packages default file name to be -.pkg and --MAS.pkg where the -MAS variant is for Mac App Store, this will show up in next weeks build. > I am wondering if that is also codesigned via apple codesign command and if so how does it find the entitlements file? If you have your Apple keys downloaded in the typical place the signing will be automatic. This also extends to Gatekeeper signing. The bundle arguments to set are? For gatekeeper you can set one or both of these mac.signing-key-developer-id-app - for .app files for gatekeeper mac.signing-key-developer-id-installer - for .pkg files for gatekeeper For mac app store you can set two arguments mac.signing-key-app - for the MAS .app file mac.signing-key-pkg - for the MAS .pkg file The defaults are "Developer ID Application: ?, "Developer ID Installer: ?, "3rd Party Mac Developer Application: ?, and "3rd Party Mac Developer Installer: ? respectively (as of next weeks build). So if you have your keys in the typical place the signing is automatic. If you have multiple keys following the default names you can set "mac.signing-key-user-name? to append a user name after each of the defaults, or manually set all of them. As for entitlements, set a bundle parameter 'mac.app-store-entitlements? to the location of your entitlements file. This is relative to the local file system of the build tool. By default the bundler adds a sandbox entitlement with no other grants. So if you do anything special (such as access a web service) you will need to provide a file. > So is the goal of the new bundler to replace ALL the manual steps Danno mentioned previously for it to be ready for the Apple iTunes store? > That?s the goal. In fact, the manual steps are basically the steps the MacAppStoreBundler goes through, that?s how I proved they work. I mentioned bundler arguments. These are new in the 8u20 bundler. To set them you can use the -B flag in the CLI or the int he ant build. I?m working on the Gradle and Maven plugins but won?t be releasing those for a month or so, but most of the code is in the relevant bitbucket/github reps. For example, you would want to set at least? fxpackager -native mac.appStore -Bmac.app-store-entitlements=src/deploy/package/MyEntitlements.entitlements (? rest of arguments?) or But you may want to set the other signing key arguments as well. From seeon.birger at oracle.com Sun Jun 15 15:02:22 2014 From: seeon.birger at oracle.com (Seeon Birger) Date: Sun, 15 Jun 2014 08:02:22 -0700 (PDT) Subject: Post commit notification: RT-36545: Implement inertia for Zoom gesture Message-ID: <9b65a746-5d2d-4b2d-ba96-1293b64f3abf@default> JIRA: HYPERLINK "https://javafx-jira.kenai.com/browse/RT-36545"RT-36545 - Implement inertia for Zoom gesture Changeset: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/03ceaa639a2c Regards, Seeon From hang.vo at oracle.com Sun Jun 15 15:03:11 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Sun, 15 Jun 2014 15:03:11 +0000 Subject: hg: openjfx/8u-dev/rt: RT-36547: Implement inertia for Scroll gesture Message-ID: <201406151503.s5FF3NUq005382@aojmv0008> Changeset: fad1b7cb08d7 Author: Seeon Birger Date: 2014-06-15 17:50 +0300 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/fad1b7cb08d7 RT-36547: Implement inertia for Scroll gesture ! modules/graphics/src/main/java/com/sun/javafx/tk/quantum/ScrollGestureRecognizer.java From seeon.birger at oracle.com Sun Jun 15 15:06:05 2014 From: seeon.birger at oracle.com (Seeon Birger) Date: Sun, 15 Jun 2014 08:06:05 -0700 (PDT) Subject: Post commit notification: RT-36547 - Implement inertia for Scroll gesture Message-ID: JIRA: HYPERLINK "https://javafx-jira.kenai.com/browse/RT-36547"RT-36547 - Implement inertia for Scroll gesture Changeset: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/fad1b7cb08d7 Regards, Seeon From mike at plan99.net Sun Jun 15 15:48:58 2014 From: mike at plan99.net (Mike Hearn) Date: Sun, 15 Jun 2014 17:48:58 +0200 Subject: New bundler in 8u20 question... In-Reply-To: <54BC25B7-47C6-4755-8A96-50ADE16164E8@oracle.com> References: <1402800766.24042.YahooMailNeo@web121801.mail.ne1.yahoo.com> <54BC25B7-47C6-4755-8A96-50ADE16164E8@oracle.com> Message-ID: Does the new bundler still create DMGs as well? --MAS.pkg where the -MAS variant is for Mac App Store, > this will show up in next weeks build. > Could I suggest -AppStore instead of -MAS, which is a rather opaque acronym. From hang.vo at oracle.com Sun Jun 15 17:03:03 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Sun, 15 Jun 2014 17:03:03 +0000 Subject: hg: openjfx/8u-dev/rt: RT-37527: [TESTS/Monocle]: Unit test for framebuffer overflow Message-ID: <201406151703.s5FH3G1X021180@aojmv0008> Changeset: 08aa9c8a8f2e Author: Daniel Blaukopf Date: 2014-06-15 19:50 +0300 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/08aa9c8a8f2e RT-37527: [TESTS/Monocle]: Unit test for framebuffer overflow + tests/system/src/test/java/com/sun/glass/ui/monocle/FramebufferTest.java From adanecito at yahoo.com Sun Jun 15 17:32:20 2014 From: adanecito at yahoo.com (Tony Anecito) Date: Sun, 15 Jun 2014 10:32:20 -0700 (PDT) Subject: New bundler in 8u20 question... In-Reply-To: References: <1402800766.24042.YahooMailNeo@web121801.mail.ne1.yahoo.com> <54BC25B7-47C6-4755-8A96-50ADE16164E8@oracle.com> Message-ID: <1402853540.98049.YahooMailNeo@web121806.mail.ne1.yahoo.com> Thanks Danno I figured there might be new arguments. And also thanks for working on making it easier for all of us. I did notice?that the pkg file created did not install into the applications folder.?How does one get it to do that? Is there a new argument for that also? ? Thanks, -Tony? On Sunday, June 15, 2014 9:48 AM, Mike Hearn wrote: Does the new bundler still create DMGs as well? ?--MAS.pkg where the -MAS variant is for Mac App Store, this will show up in next weeks build. > Could I suggest -AppStore instead of -MAS, which is a rather opaque acronym.? From danno.ferrin at oracle.com Sun Jun 15 21:25:02 2014 From: danno.ferrin at oracle.com (Danno Ferrin) Date: Sun, 15 Jun 2014 15:25:02 -0600 Subject: New bundler in 8u20 question... In-Reply-To: References: <1402800766.24042.YahooMailNeo@web121801.mail.ne1.yahoo.com> <54BC25B7-47C6-4755-8A96-50ADE16164E8@oracle.com> Message-ID: <641B8847-BA7B-407C-BD2E-FC197E040426@oracle.com> On Jun 15, 2014, at 9:48 AM, Mike Hearn wrote: > Does the new bundler still create DMGs as well? Yes. > > --MAS.pkg where the -MAS variant is for Mac App Store, this will show up in next weeks build. > > Could I suggest -AppStore instead of -MAS, which is a rather opaque acronym. Sure. From danno.ferrin at oracle.com Sun Jun 15 21:35:42 2014 From: danno.ferrin at oracle.com (Danno Ferrin) Date: Sun, 15 Jun 2014 15:35:42 -0600 Subject: New bundler in 8u20 question... In-Reply-To: <1402853540.98049.YahooMailNeo@web121806.mail.ne1.yahoo.com> References: <1402800766.24042.YahooMailNeo@web121801.mail.ne1.yahoo.com> <54BC25B7-47C6-4755-8A96-50ADE16164E8@oracle.com> <1402853540.98049.YahooMailNeo@web121806.mail.ne1.yahoo.com> Message-ID: <615664A5-357B-4B2E-9CE9-0B6F0A1982A3@oracle.com> On Jun 15, 2014, at 11:32 AM, Tony Anecito wrote: > Thanks Danno I figured there might be new arguments. And also thanks for working on making it easier for all of us. > I did notice that the pkg file created did not install into the applications folder. How does one get it to do that? Is there a new argument for that also? This is the ?SystemWide? argument, which IIRC netbeans sets to false by default, this is NetBeans doing and not the packager. I still don?t understand why they invert that default. And it?s a pain to configure. On your project, RMC and select properties. Go to build/deployment and turn on the advanced JavaFX properties. There is a scary dialog about changing the project files format. Save a backup first. Now it re-loads the project. Go to the same dialog and about 2/3 of the way down is a checkbox ?Install Permanently,? check it. If you use the CLI or the Ant files w/o NetBeans help it is set to system wide by default, it is the JavaFX project (which makes sensible decisions for a webstart-centric app) that makes things confusing. > > Thanks, > -Tony > > > On Sunday, June 15, 2014 9:48 AM, Mike Hearn wrote: > > > Does the new bundler still create DMGs as well? > > --MAS.pkg where the -MAS variant is for Mac App Store, this will show up in next weeks build. > > > Could I suggest -AppStore instead of -MAS, which is a rather opaque acronym. > > From adanecito at yahoo.com Mon Jun 16 02:01:33 2014 From: adanecito at yahoo.com (Tony Anecito) Date: Sun, 15 Jun 2014 19:01:33 -0700 (PDT) Subject: New bundler in 8u20 question... In-Reply-To: <615664A5-357B-4B2E-9CE9-0B6F0A1982A3@oracle.com> References: <1402800766.24042.YahooMailNeo@web121801.mail.ne1.yahoo.com> <54BC25B7-47C6-4755-8A96-50ADE16164E8@oracle.com> <1402853540.98049.YahooMailNeo@web121806.mail.ne1.yahoo.com> <615664A5-357B-4B2E-9CE9-0B6F0A1982A3@oracle.com> Message-ID: <1402884093.93784.YahooMailNeo@web121806.mail.ne1.yahoo.com> Thanks Danno I do not use netbeans just Ant script for my build. So any way to set the javaFX Deploy ant script to tell the pkg file to deploy to the applications folder? Thanks Again, -Tony On Sunday, June 15, 2014 3:36 PM, Danno Ferrin wrote: On Jun 15, 2014, at 11:32 AM, Tony Anecito wrote: Thanks Danno I figured there might be new arguments. And also thanks for working on making it easier for all of us. >I did notice?that the pkg file created did not install into the applications folder.?How does one get it to do that? Is there a new argument for that also? This is the ?SystemWide? argument, which IIRC netbeans sets to false by default, this is NetBeans doing and not the packager. ?I still don?t understand why they invert that default. ?And it?s a pain to configure. On your project, RMC and select properties. ?Go to build/deployment and turn on the advanced JavaFX properties. ?There is a scary dialog about changing the project files format. ?Save a backup first. Now it re-loads the project. ?Go to the same dialog and about 2/3 of the way down is a checkbox ?Install Permanently,? check it. If you use the CLI or the Ant files w/o NetBeans help it is set to system wide by default, it is the JavaFX project (which makes sensible decisions for a webstart-centric app) that makes things confusing. ? >Thanks, >-Tony? > > > >On Sunday, June 15, 2014 9:48 AM, Mike Hearn wrote: > > > >Does the new bundler still create DMGs as well? > > >?--MAS.pkg where the -MAS variant is for Mac App Store, this will show up in next weeks build. >> > > >Could I suggest -AppStore instead of -MAS, which is a rather opaque acronym.? > > From danno.ferrin at oracle.com Mon Jun 16 04:13:05 2014 From: danno.ferrin at oracle.com (Danno Ferrin) Date: Sun, 15 Jun 2014 22:13:05 -0600 Subject: New bundler in 8u20 question... In-Reply-To: <1402884093.93784.YahooMailNeo@web121806.mail.ne1.yahoo.com> References: <1402800766.24042.YahooMailNeo@web121801.mail.ne1.yahoo.com> <54BC25B7-47C6-4755-8A96-50ADE16164E8@oracle.com> <1402853540.98049.YahooMailNeo@web121806.mail.ne1.yahoo.com> <615664A5-357B-4B2E-9CE9-0B6F0A1982A3@oracle.com> <1402884093.93784.YahooMailNeo@web121806.mail.ne1.yahoo.com> Message-ID: I was thinking DMG bundler there for a moment. The PKG bundler should be installing in the /Applicaitons folder and there shouldn?t be any way to alter that. So this sounds like a bug to me. Since we are going into M5 tonight at 1am I will need a bug to get this past the gatekeeping process. Could you open one up explaining what you need to happen? Since the PKG bundler is new this should be easier to pull off since there are not nearly as many regressions to watch out for. On Jun 15, 2014, at 8:01 PM, Tony Anecito wrote: > Thanks Danno I do not use netbeans just Ant script for my build. So any way to set the javaFX Deploy ant script to tell the pkg file to deploy to the applications folder? > > Thanks Again, > -Tony > > > On Sunday, June 15, 2014 3:36 PM, Danno Ferrin wrote: > > > > On Jun 15, 2014, at 11:32 AM, Tony Anecito wrote: > >> Thanks Danno I figured there might be new arguments. And also thanks for working on making it easier for all of us. >> I did notice that the pkg file created did not install into the applications folder. How does one get it to do that? Is there a new argument for that also? > > This is the ?SystemWide? argument, which IIRC netbeans sets to false by default, this is NetBeans doing and not the packager. I still don?t understand why they invert that default. And it?s a pain to configure. > > On your project, RMC and select properties. Go to build/deployment and turn on the advanced JavaFX properties. There is a scary dialog about changing the project files format. Save a backup first. > > Now it re-loads the project. Go to the same dialog and about 2/3 of the way down is a checkbox ?Install Permanently,? check it. > > If you use the CLI or the Ant files w/o NetBeans help it is set to system wide by default, it is the JavaFX project (which makes sensible decisions for a webstart-centric app) that makes things confusing. > >> >> Thanks, >> -Tony >> >> >> On Sunday, June 15, 2014 9:48 AM, Mike Hearn wrote: >> >> >> Does the new bundler still create DMGs as well? >> >> --MAS.pkg where the -MAS variant is for Mac App Store, this will show up in next weeks build. >> >> >> Could I suggest -AppStore instead of -MAS, which is a rather opaque acronym. >> >> > > > > From hang.vo at oracle.com Mon Jun 16 04:17:34 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Mon, 16 Jun 2014 04:17:34 +0000 Subject: hg: openjfx/8u-dev/rt: RT-35628: Application Bundlers Message-ID: <201406160418.s5G4I1TY022422@aojmv0008> Changeset: ab1872cec7cd Author: shemnon Date: 2014-06-15 19:55 -0600 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/ab1872cec7cd RT-35628: Application Bundlers Summary: Make MacAppStore pkg files unique from pkg bundler. Bring key signing name defaults in line with other mac framework practices ! modules/fxpackager/src/main/java/com/oracle/tools/packager/mac/MacAppStoreBundler.java ! modules/fxpackager/src/main/java/com/oracle/tools/packager/mac/MacBaseInstallerBundler.java From hang.vo at oracle.com Mon Jun 16 05:32:39 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Mon, 16 Jun 2014 05:32:39 +0000 Subject: hg: openjfx/8u-dev/rt: Fix RT-37475: InnerShadow in Ensemble8 Puzzle Pieces gets erased. Message-ID: <201406160532.s5G5WqGE002139@aojmv0008> Changeset: 53bde5dff7f2 Author: flar Date: 2014-06-15 22:17 -0700 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/53bde5dff7f2 Fix RT-37475: InnerShadow in Ensemble8 Puzzle Pieces gets erased. Reviewed by: Felipe ! modules/graphics/src/main/java/com/sun/scenario/effect/impl/state/BoxRenderState.java ! modules/graphics/src/main/java/com/sun/scenario/effect/impl/state/GaussianRenderState.java ! modules/graphics/src/main/java/com/sun/scenario/effect/impl/state/LinearConvolveRenderState.java ! modules/graphics/src/main/java/com/sun/scenario/effect/impl/sw/java/JSWLinearConvolvePeer.java ! modules/graphics/src/main/java/com/sun/scenario/effect/impl/sw/sse/SSELinearConvolvePeer.java ! modules/graphics/src/main/jsl-decora/LinearConvolve.jsl ! modules/graphics/src/main/jsl-decora/LinearConvolveShadow.jsl From artem.ananiev at oracle.com Mon Jun 16 09:36:04 2014 From: artem.ananiev at oracle.com (Artem Ananiev) Date: Mon, 16 Jun 2014 13:36:04 +0400 Subject: SnapCode is the first and only pure JavaFX IDE In-Reply-To: <8556B066-C649-4F3A-8397-1815FD639998@reportmill.com> References: <8556B066-C649-4F3A-8397-1815FD639998@reportmill.com> Message-ID: <539EBA84.2040104@oracle.com> On 6/12/2014 5:36 AM, Jeff Martin wrote: > Today we finished a two week port of the remaining Swing components of SnapCode to JavaFX, including the code editer, file manager, welcome panel, runtime browser/player and much more. > > That means JavaFX now has a real IDE written in JavaFX! Check out the video overview: > > Blog: http://reportmill.wordpress.com/2014/06/11/snapcode-is-the-first-and-only-pure-javafx-ide/ > Video: https://www.youtube.com/watch?v=VZH3Ifd-IIs > > The good-new/bad-news is I won't be submitting any more JFXPanel bugs. :-) Think about submitting SwingNode bugs instead :) Thanks, Artem > jeff > From vadim.pakhnushev at oracle.com Mon Jun 16 11:10:11 2014 From: vadim.pakhnushev at oracle.com (Vadim Pakhnushev) Date: Mon, 16 Jun 2014 15:10:11 +0400 Subject: [8u20] Review request forRT-15619: BMPImageLoader fails to correctly load an image if the input stream read(byte[] b, int off, int len) method happens to return fewer than 'len' bytes Message-ID: <539ED093.3010406@oracle.com> Jim, Please review this very simple addition to the existing test: https://javafx-jira.kenai.com/browse/RT-15619 http://cr.openjdk.java.net/~vadim/RT-15619/webrev.00/ Thanks, Vadim From hang.vo at oracle.com Mon Jun 16 17:48:11 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Mon, 16 Jun 2014 17:48:11 +0000 Subject: hg: openjfx/8u-dev/rt: RT-37565: [Linux] Unit test run dies with too many open files Message-ID: <201406161748.s5GHmNET018179@aojmv0008> Changeset: 54a8fee7f46e Author: vadim Date: 2014-06-16 21:34 +0400 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/54a8fee7f46e RT-37565: [Linux] Unit test run dies with too many open files Reviewed-by: kcr ! modules/graphics/src/test/java/com/sun/javafx/iio/ImageTestHelper.java From kevin.rushforth at oracle.com Mon Jun 16 20:13:30 2014 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Mon, 16 Jun 2014 13:13:30 -0700 Subject: 8u-dev unlocked for approved changes (rampdown rules in effect) Message-ID: <539F4FEA.2080206@oracle.com> The 8u-dev repo is unlocked following this week's integration. As a reminder, milestone week ramp-down rules are in effect this week. -- Kevin From hang.vo at oracle.com Mon Jun 16 21:03:52 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Mon, 16 Jun 2014 21:03:52 +0000 Subject: hg: openjfx/8u-dev/rt: RT-15619: BMPImageLoader fails to correctly load an image if the input stream read(byte[] b, int off, int len) method happens to return fewer than 'len' bytes Message-ID: <201406162104.s5GL44Va017220@aojmv0008> Changeset: 7113b281dddf Author: vadim Date: 2014-06-17 00:48 +0400 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/7113b281dddf RT-15619: BMPImageLoader fails to correctly load an image if the input stream read(byte[] b, int off, int len) method happens to return fewer than 'len' bytes Reviewed-by: kcr, flar ! modules/graphics/src/test/java/com/sun/javafx/iio/BMPImageLoaderTest.java From hang.vo at oracle.com Mon Jun 16 21:32:52 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Mon, 16 Jun 2014 21:32:52 +0000 Subject: hg: openjfx/8u-dev/rt: 2 new changesets Message-ID: <201406162133.s5GLXFOs021042@aojmv0008> Changeset: e8c207d58dc8 Author: mfang Date: 2014-06-16 14:23 -0700 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/e8c207d58dc8 RT-37571: NLS: javafx8u20 translation message drop 20 integration ! modules/controls/src/main/resources/com/sun/javafx/scene/control/skin/resources/controls_de.properties ! modules/controls/src/main/resources/com/sun/javafx/scene/control/skin/resources/controls_es.properties ! modules/controls/src/main/resources/com/sun/javafx/scene/control/skin/resources/controls_fr.properties ! modules/controls/src/main/resources/com/sun/javafx/scene/control/skin/resources/controls_it.properties ! modules/controls/src/main/resources/com/sun/javafx/scene/control/skin/resources/controls_ja.properties ! modules/controls/src/main/resources/com/sun/javafx/scene/control/skin/resources/controls_ko.properties ! modules/controls/src/main/resources/com/sun/javafx/scene/control/skin/resources/controls_pt_BR.properties ! modules/controls/src/main/resources/com/sun/javafx/scene/control/skin/resources/controls_sv.properties ! modules/controls/src/main/resources/com/sun/javafx/scene/control/skin/resources/controls_zh_CN.properties ! modules/controls/src/main/resources/com/sun/javafx/scene/control/skin/resources/controls_zh_TW.properties ! modules/fxpackager/src/main/resources/com/sun/javafx/tools/packager/Bundle_ja.properties ! modules/fxpackager/src/main/resources/com/sun/javafx/tools/packager/Bundle_zh_CN.properties ! modules/web/src/main/resources/com/sun/webkit/LocalizedStrings_fr.properties Changeset: d7f475ce3a2a Author: ddhill Date: 2014-06-16 17:27 -0400 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/d7f475ce3a2a RT-37552 allow setting stack size for monocle event thread Reviewed-by: dblaukopf, kselle ! modules/graphics/src/main/java/com/sun/glass/ui/monocle/MonocleApplication.java From ngalarneau at ABINITIO.COM Mon Jun 16 22:04:55 2014 From: ngalarneau at ABINITIO.COM (ngalarneau at ABINITIO.COM) Date: Mon, 16 Jun 2014 18:04:55 -0400 Subject: All-Permissions not working properly with sun.plugin2.applet.FXAppletSecurityManager In-Reply-To: References: <2D816D15-74B6-499B-B8A5-07451BA075B1@oracle.com> <534F65C9.8030801@oracle.com> <53987C58.5080308@oracle.com> <5398893C.8080107@oracle.com> <539B91D0.2090505@oracle.com> Message-ID: Also, because I can't login, I can't add a comment to the bug report. I am also getting a security exception even though my applet is signed & has all permissions. In this case it is happening on a call to getClassLoader() on the JavaFX thread (not a daemon thread): Exception in thread "JavaFX Application Thread" java.security.AccessControlException: access denied ("java.lang.RuntimePermission" "getClassLoader") at java.security.AccessControlContext.checkPermission(Unknown Source) at java.security.AccessController.checkPermission(Unknown Source) at java.lang.SecurityManager.checkPermission(Unknown Source) at sun.plugin2.applet.FXAppletSecurityManager.checkPermission(Unknown Source) at java.lang.ClassLoader.checkClassLoaderPermission(Unknown Source) at java.lang.Class.getClassLoader(Unknown Source) ... The call to getClassLoader() happens from inside a 3rd party library if that matters. When I run the identical code as a desktop application it works fine EVEN WHEN I ADD MY OWN SECURITY MANAGER. Thank you for any help, Neil From: Scott Palmer To: Kevin Rushforth , Cc: "openjfx-dev at openjdk.java.net" Date: 06/13/2014 08:19 PM Subject: Re: All-Permissions not working properly with sun.plugin2.applet.FXAppletSecurityManager Sent by: "openjfx-dev" Thank you. Is there a way that people that are not project authors can get notifications of updates? I can?t click to add myself to the watch list or vote without a login, and it seems to be near impossible to get a login. The "Account Help? link on the login page is broken and everything I?ve found in the wiki indicates I need to be a project author to get an account. Scott On Jun 13, 2014, at 8:05 PM, Kevin Rushforth wrote: > Hi Scott, > > I created two new non-confidential bugs and closed the original ones as duplicates. Here are the new bugs: > > > reflection in daemon thread: > JDK-8046825 (was JDK-8040699) : All-Permissions not working properly with sun.plugin2.applet.FXAppletSecurityManager > > security manager and applet-desc webstart mode: > JDK-8046826 (was JDK-8040231) : All permission fx javaws app could not set Security Manager to null. > > I have copied Dmitry in case he has any information about these bugs. > > -- Kevin > > > Kevin Rushforth wrote: >> >> Dmitry can comment further, but it is possible that this issue could be backported to 8u40 if done soon enough. >> >> I will double-check whether the bugs can be made non-confidential (so you can at least track progress), but I suspect they cannot in their current form, in which case new bugs should be filed with the confidential information moved to confidential comments in the bug. I will help with this. >> >> -- Kevin >> >> >> Scott Palmer wrote: >>> Drat... I was hoping to see something much sooner, like 8u20 (obviously too late now) or 8u40. I'm unable to use Web Start deployment because of this. >>> >>> Is it necessary for these issues to be blocked from anonymous viewing? >>> >>> Thanks for the update. >>> >>> Scott >>> >>> >>> On Wed, Jun 11, 2014 at 11:57 AM, Kevin Rushforth > wrote: >>> >>> These are now assigned to Dmitry Cherapanov who I have copied here >>> in case he isn't on the openjfx alias. They are both targeted to >>> JDK 9. >>> >>> -- Kevin >>> >>> >>> Scott Palmer wrote: >>> >>> I tried to send an email to Thomas asking about the status of >>> these issues >>> (they are not visible to me), but the email bounced (user >>> unknown). Could >>> someone let me know the status? >>> >>> Thanks, >>> >>> Scott >>> >>> >>> On Thu, Apr 17, 2014 at 1:25 AM, Thomas Ng >>> > wrote: >>> >>> >>> Thanks for the report! >>> >>> Two bugs created for this: >>> >>> security manager and applet-desc webstart mode: >>> https://bugs.openjdk.java.net/browse/JDK-8040231 >>> >>> reflection in daemon thread: >>> https://bugs.openjdk.java.net/browse/JDK-8040699 >>> >>> -thomas >>> >>> >>> *From: *Scott Palmer >> > >>> *Subject: **All-Permissions not working properly with >>> sun.plugin2.applet.FXAppletSecurityManager* >>> *Date: *April 14, 2014 at 1:07:36 PM PDT >>> *To: *"openjfx-dev at openjdk.java.net >>> " >>> >> > >>> >>> >>> Can someone confirm that all-permissions is working for >>> JavaFX apps >>> that are launched via Web Start with Java 8.0 and use >>> daemon threads >>> in a Service? >>> >>> I have a JNLP file that has: >>> >>> >>> >>> >>> and the manifest of my app's jar has the following >>> instruction in my >>> Gradle script: >>> >>> jar { >>> manifest { >>> attributes('Permissions': 'all-permissions', >>> 'Codebase': '*') >>> } >>> } >>> >>> I'm using the javafx gradle plugin and signing the jars... >>> e.g. I see this for every dependency and the main jar: >>> ... >>> Signing (BLOB) C:\Users\scott\.m2\caches\path\to\some.jar >>> Signed as C:\Users\scott\dev\MyProject\build\libs\some.jar >>> ... >>> >>> I even tried System.setSecurityManager(null); in my >>> start() method >>> (and it lets me do it). >>> >>> However, daemon threads started by my Service are unable >>> to use >>> reflection. (It is working in the main FX application >>> thread.) I see >>> the following stack trace in the Java console: >>> >>> >>> Caused by: java.security.AccessControlException: access denied >>> ("java.lang.reflect.ReflectPermission" "suppressAccessChecks") >>> at >>> java.security.AccessControlContext.checkPermission(Unknown >>> Source) >>> at java.security.AccessController.checkPermission(Unknown >>> Source) >>> at java.lang.SecurityManager.checkPermission(Unknown Source) >>> at >>> sun.plugin2.applet.FXAppletSecurityManager.checkPermission(Unknown >>> Source) >>> at >>> java.lang.reflect.AccessibleObject.setAccessible(Unknown >>> Source) >>> >>> >>> Caused by: java.security.AccessControlException: access denied >>> ("java.lang.RuntimePermission" "accessDeclaredMembers") >>> at >>> java.security.AccessControlContext.checkPermission(Unknown >>> Source) >>> at java.security.AccessController.checkPermission(Unknown >>> Source) >>> at java.lang.SecurityManager.checkPermission(Unknown Source) >>> at >>> sun.plugin2.applet.FXAppletSecurityManager.checkPermission(Unknown >>> Source) >>> at java.lang.Class.checkMemberAccess(Unknown Source) >>> at java.lang.Class.getDeclaredMethod(Unknown Source) >>> at >>> ma.glasnost.orika.property.PropertyResolver.resolvePropertyType(PropertyResolver.java:304) >>> at >>> ma.glasnost.orika.property.PropertyResolver.processProperty(PropertyResolver.java:240) >>> at >>> ma.glasnost.orika.property.IntrospectorPropertyResolver.collectProperties(IntrospectorPropertyResolver.java:83) >>> ... 33 more >>> >>> I bring it up here because FXAppletSecurityManager is >>> involved and >>> this smells like a possible bug in plugin2 >>> >>> Regards, >>> >>> Scott >>> >>> >>> >>> >>> >>> NOTICE from Ab Initio: This email (including any attachments) may contain information that is subject to confidentiality obligations or is legally privileged, and sender does not waive confidentiality or privilege. If received in error, please notify the sender, delete this email, and make no further use, disclosure, or distribution. From kevin.rushforth at oracle.com Mon Jun 16 22:12:21 2014 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Mon, 16 Jun 2014 15:12:21 -0700 Subject: All-Permissions not working properly with sun.plugin2.applet.FXAppletSecurityManager In-Reply-To: References: <2D816D15-74B6-499B-B8A5-07451BA075B1@oracle.com> <534F65C9.8030801@oracle.com> <53987C58.5080308@oracle.com> <5398893C.8080107@oracle.com> <539B91D0.2090505@oracle.com> Message-ID: <539F6BC5.6060401@oracle.com> Hi Neil, If you have a test program that you can send me, I can attach it for you. Question for you: are all of your jar files (including the third-party libs) signed with the same certificate? -- Kevin ngalarneau at ABINITIO.COM wrote: > Also, because I can't login, I can't add a comment to the bug report. > > I am also getting a security exception even though my applet is signed > & has all permissions. > > In this case it is happening on a call to getClassLoader() on the > JavaFX thread (not a daemon thread): > > Exception in thread "JavaFX Application Thread" > java.security.AccessControlException: access denied > ("java.lang.RuntimePermission" "getClassLoader") > at java.security.AccessControlContext.checkPermission(Unknown > Source) > at java.security.AccessController.checkPermission(Unknown Source) > at java.lang.SecurityManager.checkPermission(Unknown Source) > at > sun.plugin2.applet.FXAppletSecurityManager.checkPermission(Unknown > Source) > at java.lang.ClassLoader.checkClassLoaderPermission(Unknown > Source) > at java.lang.Class.getClassLoader(Unknown Source) > ... > > The call to getClassLoader() happens from inside a 3rd party library > if that matters. > > When I run the identical code as a desktop application it works fine > EVEN WHEN I ADD MY OWN SECURITY MANAGER. > > > Thank you for any help, > > Neil > > > > > From: Scott Palmer > To: Kevin Rushforth , > Cc: "openjfx-dev at openjdk.java.net" > Date: 06/13/2014 08:19 PM > Subject: Re: All-Permissions not working properly with > sun.plugin2.applet.FXAppletSecurityManager > Sent by: "openjfx-dev" > ------------------------------------------------------------------------ > > > > Thank you. > > Is there a way that people that are not project authors can get > notifications of updates? I can?t click to add myself to the watch > list or vote without a login, and it seems to be near impossible to > get a login. > The "Account Help? link on the login page is broken and everything > I?ve found in the wiki indicates I need to be a project author to get > an account. > > Scott > > > On Jun 13, 2014, at 8:05 PM, Kevin Rushforth > wrote: > > > Hi Scott, > > > > I created two new non-confidential bugs and closed the original ones > as duplicates. Here are the new bugs: > > > > > > reflection in daemon thread: > > JDK-8046825 (was JDK-8040699) : All-Permissions not working properly > with sun.plugin2.applet.FXAppletSecurityManager > > > > security manager and applet-desc webstart mode: > > JDK-8046826 (was JDK-8040231) : All permission fx javaws app could > not set Security Manager to null. > > > > I have copied Dmitry in case he has any information about these bugs. > > > > -- Kevin > > > > > > Kevin Rushforth wrote: > >> > >> Dmitry can comment further, but it is possible that this issue > could be backported to 8u40 if done soon enough. > >> > >> I will double-check whether the bugs can be made non-confidential > (so you can at least track progress), but I suspect they cannot in > their current form, in which case new bugs should be filed with the > confidential information moved to confidential comments in the bug. I > will help with this. > >> > >> -- Kevin > >> > >> > >> Scott Palmer wrote: > >>> Drat... I was hoping to see something much sooner, like 8u20 > (obviously too late now) or 8u40. I'm unable to use Web Start > deployment because of this. > >>> > >>> Is it necessary for these issues to be blocked from anonymous > viewing? > >>> > >>> Thanks for the update. > >>> > >>> Scott > >>> > >>> > >>> On Wed, Jun 11, 2014 at 11:57 AM, Kevin Rushforth > > wrote: > >>> > >>> These are now assigned to Dmitry Cherapanov who I have copied > here > >>> in case he isn't on the openjfx alias. They are both targeted to > >>> JDK 9. > >>> > >>> -- Kevin > >>> > >>> > >>> Scott Palmer wrote: > >>> > >>> I tried to send an email to Thomas asking about the status of > >>> these issues > >>> (they are not visible to me), but the email bounced (user > >>> unknown). Could > >>> someone let me know the status? > >>> > >>> Thanks, > >>> > >>> Scott > >>> > >>> > >>> On Thu, Apr 17, 2014 at 1:25 AM, Thomas Ng > >>> > > wrote: > >>> > >>> > >>> Thanks for the report! > >>> > >>> Two bugs created for this: > >>> > >>> security manager and applet-desc webstart mode: > >>> https://bugs.openjdk.java.net/browse/JDK-8040231 > >>> > >>> reflection in daemon thread: > >>> https://bugs.openjdk.java.net/browse/JDK-8040699 > >>> > >>> -thomas > >>> > >>> > >>> *From: *Scott Palmer >>> > > >>> *Subject: **All-Permissions not working properly with > >>> sun.plugin2.applet.FXAppletSecurityManager* > >>> *Date: *April 14, 2014 at 1:07:36 PM PDT > >>> *To: *"openjfx-dev at openjdk.java.net > >>> " > >>> >>> > > >>> > >>> > >>> Can someone confirm that all-permissions is working for > >>> JavaFX apps > >>> that are launched via Web Start with Java 8.0 and use > >>> daemon threads > >>> in a Service? > >>> > >>> I have a JNLP file that has: > >>> > >>> > >>> > >>> > >>> and the manifest of my app's jar has the following > >>> instruction in my > >>> Gradle script: > >>> > >>> jar { > >>> manifest { > >>> attributes('Permissions': 'all-permissions', > >>> 'Codebase': '*') > >>> } > >>> } > >>> > >>> I'm using the javafx gradle plugin and signing the > jars... > >>> e.g. I see this for every dependency and the main jar: > >>> ... > >>> Signing (BLOB) C:\Users\scott\.m2\caches\path\to\some.jar > >>> Signed as > C:\Users\scott\dev\MyProject\build\libs\some.jar > >>> ... > >>> > >>> I even tried System.setSecurityManager(null); in my > >>> start() method > >>> (and it lets me do it). > >>> > >>> However, daemon threads started by my Service are unable > >>> to use > >>> reflection. (It is working in the main FX application > >>> thread.) I see > >>> the following stack trace in the Java console: > >>> > >>> > >>> Caused by: java.security.AccessControlException: > access denied > >>> ("java.lang.reflect.ReflectPermission" > "suppressAccessChecks") > >>> at > >>> > java.security.AccessControlContext.checkPermission(Unknown > >>> Source) > >>> at java.security.AccessController.checkPermission(Unknown > >>> Source) > >>> at java.lang.SecurityManager.checkPermission(Unknown > Source) > >>> at > >>> > sun.plugin2.applet.FXAppletSecurityManager.checkPermission(Unknown > >>> Source) > >>> at > >>> java.lang.reflect.AccessibleObject.setAccessible(Unknown > >>> Source) > >>> > >>> > >>> Caused by: java.security.AccessControlException: > access denied > >>> ("java.lang.RuntimePermission" "accessDeclaredMembers") > >>> at > >>> > java.security.AccessControlContext.checkPermission(Unknown > >>> Source) > >>> at java.security.AccessController.checkPermission(Unknown > >>> Source) > >>> at java.lang.SecurityManager.checkPermission(Unknown > Source) > >>> at > >>> > sun.plugin2.applet.FXAppletSecurityManager.checkPermission(Unknown > >>> Source) > >>> at java.lang.Class.checkMemberAccess(Unknown Source) > >>> at java.lang.Class.getDeclaredMethod(Unknown Source) > >>> at > >>> > ma.glasnost.orika.property.PropertyResolver.resolvePropertyType(PropertyResolver.java:304) > > >>> at > >>> > ma.glasnost.orika.property.PropertyResolver.processProperty(PropertyResolver.java:240) > > >>> at > >>> > ma.glasnost.orika.property.IntrospectorPropertyResolver.collectProperties(IntrospectorPropertyResolver.java:83) > > >>> ... 33 more > >>> > >>> I bring it up here because FXAppletSecurityManager is > >>> involved and > >>> this smells like a possible bug in plugin2 > >>> > >>> Regards, > >>> > >>> Scott > >>> > >>> > >>> > >>> > >>> > >>> > > > > > > NOTICE /from Ab Initio: This email (including any attachments) may > contain information that is subject to confidentiality obligations or > is legally privileged, and sender does not waive confidentiality or > privilege. If received in error, please notify the sender, delete this > email, and make no further use, disclosure, or distribution. / From ngalarneau at ABINITIO.COM Mon Jun 16 22:15:44 2014 From: ngalarneau at ABINITIO.COM (ngalarneau at ABINITIO.COM) Date: Mon, 16 Jun 2014 18:15:44 -0400 Subject: All-Permissions not working properly with sun.plugin2.applet.FXAppletSecurityManager In-Reply-To: <539F6BC5.6060401@oracle.com> References: <2D816D15-74B6-499B-B8A5-07451BA075B1@oracle.com> <534F65C9.8030801@oracle.com> <53987C58.5080308@oracle.com> <5398893C.8080107@oracle.com> <539B91D0.2090505@oracle.com> <539F6BC5.6060401@oracle.com> Message-ID: I will see if I can get permission to send you the program. I believe all of my jars are signed with the same certificate. What is the best way to verify that? Thanks Kevin, Neil From: Kevin Rushforth To: ngalarneau at ABINITIO.COM, Cc: Scott Palmer , dmitry cherepanov , "openjfx-dev at openjdk.java.net" Date: 06/16/2014 06:12 PM Subject: Re: All-Permissions not working properly with sun.plugin2.applet.FXAppletSecurityManager Hi Neil, If you have a test program that you can send me, I can attach it for you. Question for you: are all of your jar files (including the third-party libs) signed with the same certificate? -- Kevin ngalarneau at ABINITIO.COM wrote: Also, because I can't login, I can't add a comment to the bug report. I am also getting a security exception even though my applet is signed & has all permissions. In this case it is happening on a call to getClassLoader() on the JavaFX thread (not a daemon thread): Exception in thread "JavaFX Application Thread" java.security.AccessControlException: access denied ("java.lang.RuntimePermission" "getClassLoader") at java.security.AccessControlContext.checkPermission(Unknown Source) at java.security.AccessController.checkPermission(Unknown Source) at java.lang.SecurityManager.checkPermission(Unknown Source) at sun.plugin2.applet.FXAppletSecurityManager.checkPermission(Unknown Source) at java.lang.ClassLoader.checkClassLoaderPermission(Unknown Source) at java.lang.Class.getClassLoader(Unknown Source) ... The call to getClassLoader() happens from inside a 3rd party library if that matters. When I run the identical code as a desktop application it works fine EVEN WHEN I ADD MY OWN SECURITY MANAGER. Thank you for any help, Neil From: Scott Palmer To: Kevin Rushforth , Cc: "openjfx-dev at openjdk.java.net" Date: 06/13/2014 08:19 PM Subject: Re: All-Permissions not working properly with sun.plugin2.applet.FXAppletSecurityManager Sent by: "openjfx-dev" Thank you. Is there a way that people that are not project authors can get notifications of updates? I can?t click to add myself to the watch list or vote without a login, and it seems to be near impossible to get a login. The "Account Help? link on the login page is broken and everything I?ve found in the wiki indicates I need to be a project author to get an account. Scott On Jun 13, 2014, at 8:05 PM, Kevin Rushforth wrote: > Hi Scott, > > I created two new non-confidential bugs and closed the original ones as duplicates. Here are the new bugs: > > > reflection in daemon thread: > JDK-8046825 (was JDK-8040699) : All-Permissions not working properly with sun.plugin2.applet.FXAppletSecurityManager > > security manager and applet-desc webstart mode: > JDK-8046826 (was JDK-8040231) : All permission fx javaws app could not set Security Manager to null. > > I have copied Dmitry in case he has any information about these bugs. > > -- Kevin > > > Kevin Rushforth wrote: >> >> Dmitry can comment further, but it is possible that this issue could be backported to 8u40 if done soon enough. >> >> I will double-check whether the bugs can be made non-confidential (so you can at least track progress), but I suspect they cannot in their current form, in which case new bugs should be filed with the confidential information moved to confidential comments in the bug. I will help with this. >> >> -- Kevin >> >> >> Scott Palmer wrote: >>> Drat... I was hoping to see something much sooner, like 8u20 (obviously too late now) or 8u40. I'm unable to use Web Start deployment because of this. >>> >>> Is it necessary for these issues to be blocked from anonymous viewing? >>> >>> Thanks for the update. >>> >>> Scott >>> >>> >>> On Wed, Jun 11, 2014 at 11:57 AM, Kevin Rushforth < kevin.rushforth at oracle.com > wrote: >>> >>> These are now assigned to Dmitry Cherapanov who I have copied here >>> in case he isn't on the openjfx alias. They are both targeted to >>> JDK 9. >>> >>> -- Kevin >>> >>> >>> Scott Palmer wrote: >>> >>> I tried to send an email to Thomas asking about the status of >>> these issues >>> (they are not visible to me), but the email bounced (user >>> unknown). Could >>> someone let me know the status? >>> >>> Thanks, >>> >>> Scott >>> >>> >>> On Thu, Apr 17, 2014 at 1:25 AM, Thomas Ng >>> > wrote: >>> >>> >>> Thanks for the report! >>> >>> Two bugs created for this: >>> >>> security manager and applet-desc webstart mode: >>> https://bugs.openjdk.java.net/browse/JDK-8040231 >>> >>> reflection in daemon thread: >>> https://bugs.openjdk.java.net/browse/JDK-8040699 >>> >>> -thomas >>> >>> >>> *From: *Scott Palmer >> > >>> *Subject: **All-Permissions not working properly with >>> sun.plugin2.applet.FXAppletSecurityManager* >>> *Date: *April 14, 2014 at 1:07:36 PM PDT >>> *To: *"openjfx-dev at openjdk.java.net >>> " >>> >> > >>> >>> >>> Can someone confirm that all-permissions is working for >>> JavaFX apps >>> that are launched via Web Start with Java 8.0 and use >>> daemon threads >>> in a Service? >>> >>> I have a JNLP file that has: >>> >>> >>> >>> >>> and the manifest of my app's jar has the following >>> instruction in my >>> Gradle script: >>> >>> jar { >>> manifest { >>> attributes('Permissions': 'all-permissions', >>> 'Codebase': '*') >>> } >>> } >>> >>> I'm using the javafx gradle plugin and signing the jars... >>> e.g. I see this for every dependency and the main jar: >>> ... >>> Signing (BLOB) C:\Users\scott\.m2\caches\path\to\some.jar >>> Signed as C:\Users\scott\dev\MyProject\build\libs\some.jar >>> ... >>> >>> I even tried System.setSecurityManager(null); in my >>> start() method >>> (and it lets me do it). >>> >>> However, daemon threads started by my Service are unable >>> to use >>> reflection. (It is working in the main FX application >>> thread.) I see >>> the following stack trace in the Java console: >>> >>> >>> Caused by: java.security.AccessControlException: access denied >>> ("java.lang.reflect.ReflectPermission" "suppressAccessChecks") >>> at >>> java.security.AccessControlContext.checkPermission(Unknown >>> Source) >>> at java.security.AccessController.checkPermission(Unknown >>> Source) >>> at java.lang.SecurityManager.checkPermission(Unknown Source) >>> at >>> sun.plugin2.applet.FXAppletSecurityManager.checkPermission(Unknown >>> Source) >>> at >>> java.lang.reflect.AccessibleObject.setAccessible(Unknown >>> Source) >>> >>> >>> Caused by: java.security.AccessControlException: access denied >>> ("java.lang.RuntimePermission" "accessDeclaredMembers") >>> at >>> java.security.AccessControlContext.checkPermission(Unknown >>> Source) >>> at java.security.AccessController.checkPermission(Unknown >>> Source) >>> at java.lang.SecurityManager.checkPermission(Unknown Source) >>> at >>> sun.plugin2.applet.FXAppletSecurityManager.checkPermission(Unknown >>> Source) >>> at java.lang.Class.checkMemberAccess(Unknown Source) >>> at java.lang.Class.getDeclaredMethod(Unknown Source) >>> at >>> ma.glasnost.orika.property.PropertyResolver.resolvePropertyType(PropertyResolver.java:304) >>> at >>> ma.glasnost.orika.property.PropertyResolver.processProperty(PropertyResolver.java:240) >>> at >>> ma.glasnost.orika.property.IntrospectorPropertyResolver.collectProperties(IntrospectorPropertyResolver.java:83) >>> ... 33 more >>> >>> I bring it up here because FXAppletSecurityManager is >>> involved and >>> this smells like a possible bug in plugin2 >>> >>> Regards, >>> >>> Scott >>> >>> >>> >>> >>> >>> NOTICE from Ab Initio: This email (including any attachments) may contain information that is subject to confidentiality obligations or is legally privileged, and sender does not waive confidentiality or privilege. If received in error, please notify the sender, delete this email, and make no further use, disclosure, or distribution. NOTICE from Ab Initio: This email (including any attachments) may contain information that is subject to confidentiality obligations or is legally privileged, and sender does not waive confidentiality or privilege. If received in error, please notify the sender, delete this email, and make no further use, disclosure, or distribution. From david.dehaven at oracle.com Mon Jun 16 22:18:47 2014 From: david.dehaven at oracle.com (David DeHaven) Date: Mon, 16 Jun 2014 15:18:47 -0700 Subject: All-Permissions not working properly with sun.plugin2.applet.FXAppletSecurityManager In-Reply-To: References: <2D816D15-74B6-499B-B8A5-07451BA075B1@oracle.com> <534F65C9.8030801@oracle.com> <53987C58.5080308@oracle.com> <5398893C.8080107@oracle.com> <539B91D0.2090505@oracle.com> <539F6BC5.6060401@oracle.com> Message-ID: Run: jarsigner -verify -verbose -certs /path/to/some.jar This will show (excessive) signing information as well as the certs used to sign. -DrD- > I will see if I can get permission to send you the program. > > I believe all of my jars are signed with the same certificate. What is the > best way to verify that? > > > Thanks Kevin, > > Neil > > > > > From: Kevin Rushforth > To: ngalarneau at ABINITIO.COM, > Cc: Scott Palmer , dmitry cherepanov > , "openjfx-dev at openjdk.java.net" > > Date: 06/16/2014 06:12 PM > Subject: Re: All-Permissions not working properly with > sun.plugin2.applet.FXAppletSecurityManager > > > > Hi Neil, > > If you have a test program that you can send me, I can attach it for you. > > Question for you: are all of your jar files (including the third-party > libs) signed with the same certificate? > > -- Kevin > > > ngalarneau at ABINITIO.COM wrote: > Also, because I can't login, I can't add a comment to the bug report. > > I am also getting a security exception even though my applet is signed & > has all permissions. > > In this case it is happening on a call to getClassLoader() on the JavaFX > thread (not a daemon thread): > > Exception in thread "JavaFX Application Thread" > java.security.AccessControlException: access denied > ("java.lang.RuntimePermission" "getClassLoader") > at java.security.AccessControlContext.checkPermission(Unknown > Source) > at java.security.AccessController.checkPermission(Unknown Source) > at java.lang.SecurityManager.checkPermission(Unknown Source) > at > sun.plugin2.applet.FXAppletSecurityManager.checkPermission(Unknown Source) > > at java.lang.ClassLoader.checkClassLoaderPermission(Unknown > Source) > at java.lang.Class.getClassLoader(Unknown Source) > ... > > The call to getClassLoader() happens from inside a 3rd party library if > that matters. > > When I run the identical code as a desktop application it works fine EVEN > WHEN I ADD MY OWN SECURITY MANAGER. > > > Thank you for any help, > > Neil > > > > > From: Scott Palmer > To: Kevin Rushforth , > Cc: "openjfx-dev at openjdk.java.net" > Date: 06/13/2014 08:19 PM > Subject: Re: All-Permissions not working properly with > sun.plugin2.applet.FXAppletSecurityManager > Sent by: "openjfx-dev" > > > > Thank you. > > Is there a way that people that are not project authors can get > notifications of updates? I can?t click to add myself to the watch list > or vote without a login, and it seems to be near impossible to get a > login. > The "Account Help? link on the login page is broken and everything I?ve > found in the wiki indicates I need to be a project author to get an > account. > > Scott > > > On Jun 13, 2014, at 8:05 PM, Kevin Rushforth > wrote: > >> Hi Scott, >> >> I created two new non-confidential bugs and closed the original ones as > duplicates. Here are the new bugs: >> >> >> reflection in daemon thread: >> JDK-8046825 (was JDK-8040699) : All-Permissions not working properly > with sun.plugin2.applet.FXAppletSecurityManager >> >> security manager and applet-desc webstart mode: >> JDK-8046826 (was JDK-8040231) : All permission fx javaws app could not > set Security Manager to null. >> >> I have copied Dmitry in case he has any information about these bugs. >> >> -- Kevin >> >> >> Kevin Rushforth wrote: >>> >>> Dmitry can comment further, but it is possible that this issue could be > backported to 8u40 if done soon enough. >>> >>> I will double-check whether the bugs can be made non-confidential (so > you can at least track progress), but I suspect they cannot in their > current form, in which case new bugs should be filed with the confidential > information moved to confidential comments in the bug. I will help with > this. >>> >>> -- Kevin >>> >>> >>> Scott Palmer wrote: >>>> Drat... I was hoping to see something much sooner, like 8u20 > (obviously too late now) or 8u40. I'm unable to use Web Start deployment > because of this. >>>> >>>> Is it necessary for these issues to be blocked from anonymous viewing? > >>>> >>>> Thanks for the update. >>>> >>>> Scott >>>> >>>> >>>> On Wed, Jun 11, 2014 at 11:57 AM, Kevin Rushforth < > kevin.rushforth at oracle.com > wrote: >>>> >>>> These are now assigned to Dmitry Cherapanov who I have copied here > >>>> in case he isn't on the openjfx alias. They are both targeted to >>>> JDK 9. >>>> >>>> -- Kevin >>>> >>>> >>>> Scott Palmer wrote: >>>> >>>> I tried to send an email to Thomas asking about the status of >>>> these issues >>>> (they are not visible to me), but the email bounced (user >>>> unknown). Could >>>> someone let me know the status? >>>> >>>> Thanks, >>>> >>>> Scott >>>> >>>> >>>> On Thu, Apr 17, 2014 at 1:25 AM, Thomas Ng >>>> > > wrote: >>>> >>>> >>>> Thanks for the report! >>>> >>>> Two bugs created for this: >>>> >>>> security manager and applet-desc webstart mode: >>>> https://bugs.openjdk.java.net/browse/JDK-8040231 >>>> >>>> reflection in daemon thread: >>>> https://bugs.openjdk.java.net/browse/JDK-8040699 >>>> >>>> -thomas >>>> >>>> >>>> *From: *Scott Palmer >>> > >>>> *Subject: **All-Permissions not working properly with >>>> sun.plugin2.applet.FXAppletSecurityManager* >>>> *Date: *April 14, 2014 at 1:07:36 PM PDT >>>> *To: *"openjfx-dev at openjdk.java.net >>>> " >>>> >>> > >>>> >>>> >>>> Can someone confirm that all-permissions is working for >>>> JavaFX apps >>>> that are launched via Web Start with Java 8.0 and use >>>> daemon threads >>>> in a Service? >>>> >>>> I have a JNLP file that has: >>>> >>>> >>>> >>>> >>>> and the manifest of my app's jar has the following >>>> instruction in my >>>> Gradle script: >>>> >>>> jar { >>>> manifest { >>>> attributes('Permissions': 'all-permissions', >>>> 'Codebase': '*') >>>> } >>>> } >>>> >>>> I'm using the javafx gradle plugin and signing the jars... > >>>> e.g. I see this for every dependency and the main jar: >>>> ... >>>> Signing (BLOB) C:\Users\scott\.m2\caches\path\to\some.jar >>>> Signed as C:\Users\scott\dev\MyProject\build\libs\some.jar > >>>> ... >>>> >>>> I even tried System.setSecurityManager(null); in my >>>> start() method >>>> (and it lets me do it). >>>> >>>> However, daemon threads started by my Service are unable >>>> to use >>>> reflection. (It is working in the main FX application >>>> thread.) I see >>>> the following stack trace in the Java console: >>>> >>>> >>>> Caused by: java.security.AccessControlException: access > denied >>>> ("java.lang.reflect.ReflectPermission" > "suppressAccessChecks") >>>> at >>>> java.security.AccessControlContext.checkPermission(Unknown > >>>> Source) >>>> at java.security.AccessController.checkPermission(Unknown >>>> Source) >>>> at java.lang.SecurityManager.checkPermission(Unknown > Source) >>>> at >>>> > sun.plugin2.applet.FXAppletSecurityManager.checkPermission(Unknown >>>> Source) >>>> at >>>> java.lang.reflect.AccessibleObject.setAccessible(Unknown >>>> Source) >>>> >>>> >>>> Caused by: java.security.AccessControlException: access > denied >>>> ("java.lang.RuntimePermission" "accessDeclaredMembers") >>>> at >>>> java.security.AccessControlContext.checkPermission(Unknown > >>>> Source) >>>> at java.security.AccessController.checkPermission(Unknown >>>> Source) >>>> at java.lang.SecurityManager.checkPermission(Unknown > Source) >>>> at >>>> > sun.plugin2.applet.FXAppletSecurityManager.checkPermission(Unknown >>>> Source) >>>> at java.lang.Class.checkMemberAccess(Unknown Source) >>>> at java.lang.Class.getDeclaredMethod(Unknown Source) >>>> at >>>> > ma.glasnost.orika.property.PropertyResolver.resolvePropertyType(PropertyResolver.java:304) > >>>> at >>>> > ma.glasnost.orika.property.PropertyResolver.processProperty(PropertyResolver.java:240) > >>>> at >>>> > ma.glasnost.orika.property.IntrospectorPropertyResolver.collectProperties(IntrospectorPropertyResolver.java:83) > >>>> ... 33 more >>>> >>>> I bring it up here because FXAppletSecurityManager is >>>> involved and >>>> this smells like a possible bug in plugin2 >>>> >>>> Regards, >>>> >>>> Scott >>>> >>>> >>>> >>>> >>>> >>>> > > > > > > NOTICE from Ab Initio: This email (including any attachments) may contain > information that is subject to confidentiality obligations or is legally > privileged, and sender does not waive confidentiality or privilege. If > received in error, please notify the sender, delete this email, and make > no further use, disclosure, or distribution. > > > > NOTICE from Ab Initio: This email (including any attachments) may contain > information that is subject to confidentiality obligations or is legally > privileged, and sender does not waive confidentiality or privilege. If > received in error, please notify the sender, delete this email, and make > no further use, disclosure, or distribution. From ngalarneau at ABINITIO.COM Mon Jun 16 22:41:36 2014 From: ngalarneau at ABINITIO.COM (ngalarneau at ABINITIO.COM) Date: Mon, 16 Jun 2014 18:41:36 -0400 Subject: All-Permissions not working properly with sun.plugin2.applet.FXAppletSecurityManager In-Reply-To: References: <2D816D15-74B6-499B-B8A5-07451BA075B1@oracle.com> <534F65C9.8030801@oracle.com> <53987C58.5080308@oracle.com> <5398893C.8080107@oracle.com> <539B91D0.2090505@oracle.com> <539F6BC5.6060401@oracle.com> Message-ID: Thank you David. Interesting. Output from my gradle build (which uses the shemnon javafx-plugin) looks like this: ... :classes :jar :jfxJar :jfxSignJar Signing (BLOB) C:\Users\ngalarneau\.gradle\caches\3rdpartylibrary.jar Signed as C:\directory\to\3rdpartylibrary.jar Signing (BLOB) C:\our\test\app.jar Signed as C:\our\test\app.jar :jfxCopyLibs :compilePackageJava UP-TO-DATE :compilePackageGroovy UP-TO-DATE :processPackageResources UP-TO-DATE :packageClasses UP-TO-DATE :jfxDeploy :assemble :compileTestJava UP-TO-DATE :compileTestGroovy UP-TO-DATE :processTestResources UP-TO-DATE :testClasses UP-TO-DATE :test UP-TO-DATE :check UP-TO-DATE :build BUILD SUCCESSFUL And, when I run the Applet, it runs just fine. But yet, when I run the command line David sent, jarsigner reports: "jar is unsigned" I'm confused. Thanks, Neil From: David DeHaven To: ngalarneau at ABINITIO.COM, Cc: Kevin Rushforth , "openjfx-dev at openjdk.java.net" Date: 06/16/2014 06:18 PM Subject: Re: All-Permissions not working properly with sun.plugin2.applet.FXAppletSecurityManager Run: jarsigner -verify -verbose -certs /path/to/some.jar This will show (excessive) signing information as well as the certs used to sign. -DrD- > I will see if I can get permission to send you the program. > > I believe all of my jars are signed with the same certificate. What is the > best way to verify that? > > > Thanks Kevin, > > Neil > > > > > From: Kevin Rushforth > To: ngalarneau at ABINITIO.COM, > Cc: Scott Palmer , dmitry cherepanov > , "openjfx-dev at openjdk.java.net" > > Date: 06/16/2014 06:12 PM > Subject: Re: All-Permissions not working properly with > sun.plugin2.applet.FXAppletSecurityManager > > > > Hi Neil, > > If you have a test program that you can send me, I can attach it for you. > > Question for you: are all of your jar files (including the third-party > libs) signed with the same certificate? > > -- Kevin > > > ngalarneau at ABINITIO.COM wrote: > Also, because I can't login, I can't add a comment to the bug report. > > I am also getting a security exception even though my applet is signed & > has all permissions. > > In this case it is happening on a call to getClassLoader() on the JavaFX > thread (not a daemon thread): > > Exception in thread "JavaFX Application Thread" > java.security.AccessControlException: access denied > ("java.lang.RuntimePermission" "getClassLoader") > at java.security.AccessControlContext.checkPermission(Unknown > Source) > at java.security.AccessController.checkPermission(Unknown Source) > at java.lang.SecurityManager.checkPermission(Unknown Source) > at > sun.plugin2.applet.FXAppletSecurityManager.checkPermission(Unknown Source) > > at java.lang.ClassLoader.checkClassLoaderPermission(Unknown > Source) > at java.lang.Class.getClassLoader(Unknown Source) > ... > > The call to getClassLoader() happens from inside a 3rd party library if > that matters. > > When I run the identical code as a desktop application it works fine EVEN > WHEN I ADD MY OWN SECURITY MANAGER. > > > Thank you for any help, > > Neil > > > > > From: Scott Palmer > To: Kevin Rushforth , > Cc: "openjfx-dev at openjdk.java.net" > Date: 06/13/2014 08:19 PM > Subject: Re: All-Permissions not working properly with > sun.plugin2.applet.FXAppletSecurityManager > Sent by: "openjfx-dev" > > > > Thank you. > > Is there a way that people that are not project authors can get > notifications of updates? I can?t click to add myself to the watch list > or vote without a login, and it seems to be near impossible to get a > login. > The "Account Help? link on the login page is broken and everything I?ve > found in the wiki indicates I need to be a project author to get an > account. > > Scott > > > On Jun 13, 2014, at 8:05 PM, Kevin Rushforth > wrote: > >> Hi Scott, >> >> I created two new non-confidential bugs and closed the original ones as > duplicates. Here are the new bugs: >> >> >> reflection in daemon thread: >> JDK-8046825 (was JDK-8040699) : All-Permissions not working properly > with sun.plugin2.applet.FXAppletSecurityManager >> >> security manager and applet-desc webstart mode: >> JDK-8046826 (was JDK-8040231) : All permission fx javaws app could not > set Security Manager to null. >> >> I have copied Dmitry in case he has any information about these bugs. >> >> -- Kevin >> >> >> Kevin Rushforth wrote: >>> >>> Dmitry can comment further, but it is possible that this issue could be > backported to 8u40 if done soon enough. >>> >>> I will double-check whether the bugs can be made non-confidential (so > you can at least track progress), but I suspect they cannot in their > current form, in which case new bugs should be filed with the confidential > information moved to confidential comments in the bug. I will help with > this. >>> >>> -- Kevin >>> >>> >>> Scott Palmer wrote: >>>> Drat... I was hoping to see something much sooner, like 8u20 > (obviously too late now) or 8u40. I'm unable to use Web Start deployment > because of this. >>>> >>>> Is it necessary for these issues to be blocked from anonymous viewing? > >>>> >>>> Thanks for the update. >>>> >>>> Scott >>>> >>>> >>>> On Wed, Jun 11, 2014 at 11:57 AM, Kevin Rushforth < > kevin.rushforth at oracle.com > wrote: >>>> >>>> These are now assigned to Dmitry Cherapanov who I have copied here > >>>> in case he isn't on the openjfx alias. They are both targeted to >>>> JDK 9. >>>> >>>> -- Kevin >>>> >>>> >>>> Scott Palmer wrote: >>>> >>>> I tried to send an email to Thomas asking about the status of >>>> these issues >>>> (they are not visible to me), but the email bounced (user >>>> unknown). Could >>>> someone let me know the status? >>>> >>>> Thanks, >>>> >>>> Scott >>>> >>>> >>>> On Thu, Apr 17, 2014 at 1:25 AM, Thomas Ng >>>> > > wrote: >>>> >>>> >>>> Thanks for the report! >>>> >>>> Two bugs created for this: >>>> >>>> security manager and applet-desc webstart mode: >>>> https://bugs.openjdk.java.net/browse/JDK-8040231 >>>> >>>> reflection in daemon thread: >>>> https://bugs.openjdk.java.net/browse/JDK-8040699 >>>> >>>> -thomas >>>> >>>> >>>> *From: *Scott Palmer >>> > >>>> *Subject: **All-Permissions not working properly with >>>> sun.plugin2.applet.FXAppletSecurityManager* >>>> *Date: *April 14, 2014 at 1:07:36 PM PDT >>>> *To: *"openjfx-dev at openjdk.java.net >>>> " >>>> >>> > >>>> >>>> >>>> Can someone confirm that all-permissions is working for >>>> JavaFX apps >>>> that are launched via Web Start with Java 8.0 and use >>>> daemon threads >>>> in a Service? >>>> >>>> I have a JNLP file that has: >>>> >>>> >>>> >>>> >>>> and the manifest of my app's jar has the following >>>> instruction in my >>>> Gradle script: >>>> >>>> jar { >>>> manifest { >>>> attributes('Permissions': 'all-permissions', >>>> 'Codebase': '*') >>>> } >>>> } >>>> >>>> I'm using the javafx gradle plugin and signing the jars... > >>>> e.g. I see this for every dependency and the main jar: >>>> ... >>>> Signing (BLOB) C:\Users\scott\.m2\caches\path\to\some.jar >>>> Signed as C:\Users\scott\dev\MyProject\build\libs\some.jar > >>>> ... >>>> >>>> I even tried System.setSecurityManager(null); in my >>>> start() method >>>> (and it lets me do it). >>>> >>>> However, daemon threads started by my Service are unable >>>> to use >>>> reflection. (It is working in the main FX application >>>> thread.) I see >>>> the following stack trace in the Java console: >>>> >>>> >>>> Caused by: java.security.AccessControlException: access > denied >>>> ("java.lang.reflect.ReflectPermission" > "suppressAccessChecks") >>>> at >>>> java.security.AccessControlContext.checkPermission(Unknown > >>>> Source) >>>> at java.security.AccessController.checkPermission(Unknown >>>> Source) >>>> at java.lang.SecurityManager.checkPermission(Unknown > Source) >>>> at >>>> > sun.plugin2.applet.FXAppletSecurityManager.checkPermission(Unknown >>>> Source) >>>> at >>>> java.lang.reflect.AccessibleObject.setAccessible(Unknown >>>> Source) >>>> >>>> >>>> Caused by: java.security.AccessControlException: access > denied >>>> ("java.lang.RuntimePermission" "accessDeclaredMembers") >>>> at >>>> java.security.AccessControlContext.checkPermission(Unknown > >>>> Source) >>>> at java.security.AccessController.checkPermission(Unknown >>>> Source) >>>> at java.lang.SecurityManager.checkPermission(Unknown > Source) >>>> at >>>> > sun.plugin2.applet.FXAppletSecurityManager.checkPermission(Unknown >>>> Source) >>>> at java.lang.Class.checkMemberAccess(Unknown Source) >>>> at java.lang.Class.getDeclaredMethod(Unknown Source) >>>> at >>>> > ma.glasnost.orika.property.PropertyResolver.resolvePropertyType(PropertyResolver.java:304) > >>>> at >>>> > ma.glasnost.orika.property.PropertyResolver.processProperty(PropertyResolver.java:240) > >>>> at >>>> > ma.glasnost.orika.property.IntrospectorPropertyResolver.collectProperties(IntrospectorPropertyResolver.java:83) > >>>> ... 33 more >>>> >>>> I bring it up here because FXAppletSecurityManager is >>>> involved and >>>> this smells like a possible bug in plugin2 >>>> >>>> Regards, >>>> >>>> Scott >>>> >>>> >>>> >>>> >>>> >>>> > > > > > > NOTICE from Ab Initio: This email (including any attachments) may contain > information that is subject to confidentiality obligations or is legally > privileged, and sender does not waive confidentiality or privilege. If > received in error, please notify the sender, delete this email, and make > no further use, disclosure, or distribution. > > > > NOTICE from Ab Initio: This email (including any attachments) may contain > information that is subject to confidentiality obligations or is legally > privileged, and sender does not waive confidentiality or privilege. If > received in error, please notify the sender, delete this email, and make > no further use, disclosure, or distribution. NOTICE from Ab Initio: This email (including any attachments) may contain information that is subject to confidentiality obligations or is legally privileged, and sender does not waive confidentiality or privilege. If received in error, please notify the sender, delete this email, and make no further use, disclosure, or distribution. From david.dehaven at oracle.com Mon Jun 16 22:59:55 2014 From: david.dehaven at oracle.com (David DeHaven) Date: Mon, 16 Jun 2014 15:59:55 -0700 Subject: All-Permissions not working properly with sun.plugin2.applet.FXAppletSecurityManager In-Reply-To: References: <2D816D15-74B6-499B-B8A5-07451BA075B1@oracle.com> <534F65C9.8030801@oracle.com> <53987C58.5080308@oracle.com> <5398893C.8080107@oracle.com> <539B91D0.2090505@oracle.com> <539F6BC5.6060401@oracle.com> Message-ID: <1AC3040C-AD86-487B-96FF-53600A9E3691@oracle.com> Oh, right. Blob signing can't be verified with jarsigner... -DrD- > Thank you David. > > Interesting. > > Output from my gradle build (which uses the shemnon javafx-plugin) looks like this: > ... > :classes > :jar > :jfxJar > :jfxSignJar > Signing (BLOB) C:\Users\ngalarneau\.gradle\caches\3rdpartylibrary.jar > Signed as C:\directory\to\3rdpartylibrary.jar > Signing (BLOB) C:\our\test\app.jar > Signed as C:\our\test\app.jar > :jfxCopyLibs > :compilePackageJava UP-TO-DATE > :compilePackageGroovy UP-TO-DATE > :processPackageResources UP-TO-DATE > :packageClasses UP-TO-DATE > :jfxDeploy > :assemble > :compileTestJava UP-TO-DATE > :compileTestGroovy UP-TO-DATE > :processTestResources UP-TO-DATE > :testClasses UP-TO-DATE > :test UP-TO-DATE > :check UP-TO-DATE > :build > > BUILD SUCCESSFUL > > And, when I run the Applet, it runs just fine. > > But yet, when I run the command line David sent, jarsigner reports: "jar is unsigned" > > > I'm confused. > > > Thanks, > > Neil > > > > From: David DeHaven > To: ngalarneau at ABINITIO.COM, > Cc: Kevin Rushforth , "openjfx-dev at openjdk.java.net" > Date: 06/16/2014 06:18 PM > Subject: Re: All-Permissions not working properly with sun.plugin2.applet.FXAppletSecurityManager > > > > > Run: > jarsigner -verify -verbose -certs /path/to/some.jar > > This will show (excessive) signing information as well as the certs used to sign. > > -DrD- > > > > I will see if I can get permission to send you the program. > > > > I believe all of my jars are signed with the same certificate. What is the > > best way to verify that? > > > > > > Thanks Kevin, > > > > Neil > > > > > > > > > > From: Kevin Rushforth > > To: ngalarneau at ABINITIO.COM, > > Cc: Scott Palmer , dmitry cherepanov > > , "openjfx-dev at openjdk.java.net" > > > > Date: 06/16/2014 06:12 PM > > Subject: Re: All-Permissions not working properly with > > sun.plugin2.applet.FXAppletSecurityManager > > > > > > > > Hi Neil, > > > > If you have a test program that you can send me, I can attach it for you. > > > > Question for you: are all of your jar files (including the third-party > > libs) signed with the same certificate? > > > > -- Kevin > > > > > > ngalarneau at ABINITIO.COM wrote: > > Also, because I can't login, I can't add a comment to the bug report. > > > > I am also getting a security exception even though my applet is signed & > > has all permissions. > > > > In this case it is happening on a call to getClassLoader() on the JavaFX > > thread (not a daemon thread): > > > > Exception in thread "JavaFX Application Thread" > > java.security.AccessControlException: access denied > > ("java.lang.RuntimePermission" "getClassLoader") > > at java.security.AccessControlContext.checkPermission(Unknown > > Source) > > at java.security.AccessController.checkPermission(Unknown Source) > > at java.lang.SecurityManager.checkPermission(Unknown Source) > > at > > sun.plugin2.applet.FXAppletSecurityManager.checkPermission(Unknown Source) > > > > at java.lang.ClassLoader.checkClassLoaderPermission(Unknown > > Source) > > at java.lang.Class.getClassLoader(Unknown Source) > > ... > > > > The call to getClassLoader() happens from inside a 3rd party library if > > that matters. > > > > When I run the identical code as a desktop application it works fine EVEN > > WHEN I ADD MY OWN SECURITY MANAGER. > > > > > > Thank you for any help, > > > > Neil > > > > > > > > > > From: Scott Palmer > > To: Kevin Rushforth , > > Cc: "openjfx-dev at openjdk.java.net" > > Date: 06/13/2014 08:19 PM > > Subject: Re: All-Permissions not working properly with > > sun.plugin2.applet.FXAppletSecurityManager > > Sent by: "openjfx-dev" > > > > > > > > Thank you. > > > > Is there a way that people that are not project authors can get > > notifications of updates? I can?t click to add myself to the watch list > > or vote without a login, and it seems to be near impossible to get a > > login. > > The "Account Help? link on the login page is broken and everything I?ve > > found in the wiki indicates I need to be a project author to get an > > account. > > > > Scott > > > > > > On Jun 13, 2014, at 8:05 PM, Kevin Rushforth > > wrote: > > > >> Hi Scott, > >> > >> I created two new non-confidential bugs and closed the original ones as > > duplicates. Here are the new bugs: > >> > >> > >> reflection in daemon thread: > >> JDK-8046825 (was JDK-8040699) : All-Permissions not working properly > > with sun.plugin2.applet.FXAppletSecurityManager > >> > >> security manager and applet-desc webstart mode: > >> JDK-8046826 (was JDK-8040231) : All permission fx javaws app could not > > set Security Manager to null. > >> > >> I have copied Dmitry in case he has any information about these bugs. > >> > >> -- Kevin > >> > >> > >> Kevin Rushforth wrote: > >>> > >>> Dmitry can comment further, but it is possible that this issue could be > > backported to 8u40 if done soon enough. > >>> > >>> I will double-check whether the bugs can be made non-confidential (so > > you can at least track progress), but I suspect they cannot in their > > current form, in which case new bugs should be filed with the confidential > > information moved to confidential comments in the bug. I will help with > > this. > >>> > >>> -- Kevin > >>> > >>> > >>> Scott Palmer wrote: > >>>> Drat... I was hoping to see something much sooner, like 8u20 > > (obviously too late now) or 8u40. I'm unable to use Web Start deployment > > because of this. > >>>> > >>>> Is it necessary for these issues to be blocked from anonymous viewing? > > > >>>> > >>>> Thanks for the update. > >>>> > >>>> Scott > >>>> > >>>> > >>>> On Wed, Jun 11, 2014 at 11:57 AM, Kevin Rushforth < > > kevin.rushforth at oracle.com > wrote: > >>>> > >>>> These are now assigned to Dmitry Cherapanov who I have copied here > > > >>>> in case he isn't on the openjfx alias. They are both targeted to > >>>> JDK 9. > >>>> > >>>> -- Kevin > >>>> > >>>> > >>>> Scott Palmer wrote: > >>>> > >>>> I tried to send an email to Thomas asking about the status of > >>>> these issues > >>>> (they are not visible to me), but the email bounced (user > >>>> unknown). Could > >>>> someone let me know the status? > >>>> > >>>> Thanks, > >>>> > >>>> Scott > >>>> > >>>> > >>>> On Thu, Apr 17, 2014 at 1:25 AM, Thomas Ng > >>>> > > > wrote: > >>>> > >>>> > >>>> Thanks for the report! > >>>> > >>>> Two bugs created for this: > >>>> > >>>> security manager and applet-desc webstart mode: > >>>> https://bugs.openjdk.java.net/browse/JDK-8040231 > >>>> > >>>> reflection in daemon thread: > >>>> https://bugs.openjdk.java.net/browse/JDK-8040699 > >>>> > >>>> -thomas > >>>> > >>>> > >>>> *From: *Scott Palmer >>>> > > >>>> *Subject: **All-Permissions not working properly with > >>>> sun.plugin2.applet.FXAppletSecurityManager* > >>>> *Date: *April 14, 2014 at 1:07:36 PM PDT > >>>> *To: *"openjfx-dev at openjdk.java.net > >>>> " > >>>> >>>> > > >>>> > >>>> > >>>> Can someone confirm that all-permissions is working for > >>>> JavaFX apps > >>>> that are launched via Web Start with Java 8.0 and use > >>>> daemon threads > >>>> in a Service? > >>>> > >>>> I have a JNLP file that has: > >>>> > >>>> > >>>> > >>>> > >>>> and the manifest of my app's jar has the following > >>>> instruction in my > >>>> Gradle script: > >>>> > >>>> jar { > >>>> manifest { > >>>> attributes('Permissions': 'all-permissions', > >>>> 'Codebase': '*') > >>>> } > >>>> } > >>>> > >>>> I'm using the javafx gradle plugin and signing the jars... > > > >>>> e.g. I see this for every dependency and the main jar: > >>>> ... > >>>> Signing (BLOB) C:\Users\scott\.m2\caches\path\to\some.jar > >>>> Signed as C:\Users\scott\dev\MyProject\build\libs\some.jar > > > >>>> ... > >>>> > >>>> I even tried System.setSecurityManager(null); in my > >>>> start() method > >>>> (and it lets me do it). > >>>> > >>>> However, daemon threads started by my Service are unable > >>>> to use > >>>> reflection. (It is working in the main FX application > >>>> thread.) I see > >>>> the following stack trace in the Java console: > >>>> > >>>> > >>>> Caused by: java.security.AccessControlException: access > > denied > >>>> ("java.lang.reflect.ReflectPermission" > > "suppressAccessChecks") > >>>> at > >>>> java.security.AccessControlContext.checkPermission(Unknown > > > >>>> Source) > >>>> at java.security.AccessController.checkPermission(Unknown > >>>> Source) > >>>> at java.lang.SecurityManager.checkPermission(Unknown > > Source) > >>>> at > >>>> > > sun.plugin2.applet.FXAppletSecurityManager.checkPermission(Unknown > >>>> Source) > >>>> at > >>>> java.lang.reflect.AccessibleObject.setAccessible(Unknown > >>>> Source) > >>>> > >>>> > >>>> Caused by: java.security.AccessControlException: access > > denied > >>>> ("java.lang.RuntimePermission" "accessDeclaredMembers") > >>>> at > >>>> java.security.AccessControlContext.checkPermission(Unknown > > > >>>> Source) > >>>> at java.security.AccessController.checkPermission(Unknown > >>>> Source) > >>>> at java.lang.SecurityManager.checkPermission(Unknown > > Source) > >>>> at > >>>> > > sun.plugin2.applet.FXAppletSecurityManager.checkPermission(Unknown > >>>> Source) > >>>> at java.lang.Class.checkMemberAccess(Unknown Source) > >>>> at java.lang.Class.getDeclaredMethod(Unknown Source) > >>>> at > >>>> > > ma.glasnost.orika.property.PropertyResolver.resolvePropertyType(PropertyResolver.java:304) > > > >>>> at > >>>> > > ma.glasnost.orika.property.PropertyResolver.processProperty(PropertyResolver.java:240) > > > >>>> at > >>>> > > ma.glasnost.orika.property.IntrospectorPropertyResolver.collectProperties(IntrospectorPropertyResolver.java:83) > > > >>>> ... 33 more > >>>> > >>>> I bring it up here because FXAppletSecurityManager is > >>>> involved and > >>>> this smells like a possible bug in plugin2 > >>>> > >>>> Regards, > >>>> > >>>> Scott > >>>> > >>>> > >>>> > >>>> > >>>> > >>>> > > > > > > > > > > > > NOTICE from Ab Initio: This email (including any attachments) may contain > > information that is subject to confidentiality obligations or is legally > > privileged, and sender does not waive confidentiality or privilege. If > > received in error, please notify the sender, delete this email, and make > > no further use, disclosure, or distribution. > > > > > > > > NOTICE from Ab Initio: This email (including any attachments) may contain > > information that is subject to confidentiality obligations or is legally > > privileged, and sender does not waive confidentiality or privilege. If > > received in error, please notify the sender, delete this email, and make > > no further use, disclosure, or distribution. > > > > > > NOTICE from Ab Initio: This email (including any attachments) may contain information that is subject to confidentiality obligations or is legally privileged, and sender does not waive confidentiality or privilege. If received in error, please notify the sender, delete this email, and make no further use, disclosure, or distribution. From james.graham at oracle.com Mon Jun 16 23:38:11 2014 From: james.graham at oracle.com (Jim Graham) Date: Mon, 16 Jun 2014 16:38:11 -0700 Subject: 8u20 review request: RT-36341 - error loading image without extension on retina Mac Message-ID: <539F7FE3.5010202@oracle.com> webrev: http://cr.openjdk.java.net/~flar/RT-36341/webrev.00/ Jira: https://javafx-jira.kenai.com/browse/RT-36341 It will be hard to verify the test because webrev mangled the patch file on the test file, but any image file renamed to the appropriate file name should work as indicated in the comments in the Jira... ...jim From hang.vo at oracle.com Tue Jun 17 07:18:07 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 17 Jun 2014 07:18:07 +0000 Subject: hg: openjfx/8u-dev/rt: Fix RT-36341: Loading image with no extension on retina Mac gets index OOB exception Message-ID: <201406170718.s5H7IIxT012861@aojmv0008> Changeset: d202ef8951c9 Author: flar Date: 2014-06-17 00:10 -0700 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/d202ef8951c9 Fix RT-36341: Loading image with no extension on retina Mac gets index OOB exception Reviewed by: kcr ! modules/graphics/src/main/java/com/sun/javafx/iio/ImageStorage.java + modules/graphics/src/test/java/com/sun/javafx/iio/ImageStorageTest.java + modules/graphics/src/test/resources/com/sun/javafx/iio/testpngnoextension From hang.vo at oracle.com Tue Jun 17 08:18:15 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 17 Jun 2014 08:18:15 +0000 Subject: hg: openjfx/8u-dev/rt: 2 new changesets Message-ID: <201406170818.s5H8IXEt020926@aojmv0008> Changeset: 027cf67a60cf Author: Rafi Tayar Date: 2014-06-17 10:53 +0300 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/027cf67a60cf RT-34933 : Ensemble: some samples have too small edit boxes Reviewed-by : dblaukopf, kselle ! apps/samples/Ensemble8/src/app/java/ensemble/samplepage/PlaygroundTabs.java Changeset: eb6beaecf92d Author: Rafi Tayar Date: 2014-06-17 10:54 +0300 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/eb6beaecf92d RT-34913 : TextField in Ensemble 8 appears too narrow to fit characters with descenders Reviewed-by: dblaukopf, kselle ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/textfield/TextFieldApp.java From hang.vo at oracle.com Tue Jun 17 10:33:15 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Tue, 17 Jun 2014 10:33:15 +0000 Subject: hg: openjfx/8u-dev/rt: RT-37558, RT-37373, RT-37139, RT-37138 - Fixing and adding different unit tests for inertia feature Message-ID: <201406171033.s5HAXRBB009518@aojmv0008> Changeset: 498c76f90ebf Author: Elina Kleyman Date: 2014-06-17 13:24 +0300 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/498c76f90ebf RT-37558, RT-37373, RT-37139, RT-37138 - Fixing and adding different unit tests for inertia feature ! tests/system/src/test/java/com/sun/glass/ui/monocle/input/RotateTest.java ! tests/system/src/test/java/com/sun/glass/ui/monocle/input/ScrollTest.java ! tests/system/src/test/java/com/sun/glass/ui/monocle/input/ScrollTestBase.java ! tests/system/src/test/java/com/sun/glass/ui/monocle/input/ZoomTest.java From kevin.rushforth at oracle.com Tue Jun 17 13:38:26 2014 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Tue, 17 Jun 2014 06:38:26 -0700 Subject: Getting notification of updates to JDK bugs In-Reply-To: References: <2D816D15-74B6-499B-B8A5-07451BA075B1@oracle.com> <534F65C9.8030801@oracle.com> <53987C58.5080308@oracle.com> <5398893C.8080107@oracle.com> <539B91D0.2090505@oracle.com> Message-ID: <53A044D2.7070302@oracle.com> All, I found what may be an answer to Scott's question. Dalibor Topic wrote the following blog about how to get notifications up updates to JDK bugs using RSS: http://robilad.livejournal.com/139637.html Hope this helps. -- Kevin Scott Palmer wrote: > Thank you. > > Is there a way that people that are not project authors can get > notifications of updates? I can?t click to add myself to the watch > list or vote without a login, and it seems to be near impossible to > get a login. > The "Account Help? link on the login page is broken and everything > I?ve found in the wiki indicates I need to be a project author to get > an account. > > Scott From hang.vo at oracle.com Wed Jun 18 09:17:56 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Wed, 18 Jun 2014 09:17:56 +0000 Subject: hg: openjfx/8u-dev/rt: 2 new changesets Message-ID: <201406180918.s5I9ID7P024580@aojmv0008> Changeset: 1f3e6553e00e Author: Daniel Blaukopf Date: 2014-06-18 12:03 +0300 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/1f3e6553e00e RT-37508 [Monocle] Support 16-bit software-rendered framebuffer Reviewed-by: ddhill ! modules/graphics/src/main/java/com/sun/glass/ui/monocle/Framebuffer.java ! modules/graphics/src/main/java/com/sun/glass/ui/monocle/linux/FBDevScreen.java Changeset: d30c7671f65f Author: Daniel Blaukopf Date: 2014-06-18 12:14 +0300 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/d30c7671f65f RT-37512 [Monocle] Provide a software-rendered cursor Reviewed-by: kselle ! modules/graphics/src/main/java/com/sun/glass/ui/monocle/MonocleApplication.java + modules/graphics/src/main/java/com/sun/glass/ui/monocle/SoftwareCursor.java ! modules/graphics/src/main/java/com/sun/glass/ui/monocle/linux/FBDevScreen.java ! modules/graphics/src/main/java/com/sun/glass/ui/monocle/linux/LinuxPlatform.java From kevin.rushforth at oracle.com Wed Jun 18 13:54:37 2014 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Wed, 18 Jun 2014 06:54:37 -0700 Subject: [8u20] review request: RT-37592, RT-37587, RT-37589 -- whitespace and copyright headers Message-ID: <53A19A1D.1090706@oracle.com> David, Please review the following: https://javafx-jira.kenai.com/browse/RT-37592 (whitespace-only, but patch is needed if you want to apply either of the other two) https://javafx-jira.kenai.com/browse/RT-37587 -- Missing open source copyright headers on some source files https://javafx-jira.kenai.com/browse/RT-37589 -- Malformed copyright headers in some files All changes are comments or white-space so this should not affect any generated bits. Thanks. -- Kevin From lisa.selle at oracle.com Wed Jun 18 14:32:48 2014 From: lisa.selle at oracle.com (Lisa Selle) Date: Wed, 18 Jun 2014 10:32:48 -0400 Subject: [8u26] Review Request RT-37562 [Monocle] Make monocle the default javafx.platform on all ARM/Linux devices Message-ID: <53A1A310.1080500@oracle.com> Hi Daniel, Please review the proposed fix for https://javafx-jira.kenai.com/browse/RT-37562. Details in the jira. Note that this will not affect any bits shipping for 8u20; these are changes to property files for linux arm builds only. Thanks, Lisa From daniel.blaukopf at oracle.com Wed Jun 18 18:55:23 2014 From: daniel.blaukopf at oracle.com (Daniel Blaukopf) Date: Wed, 18 Jun 2014 21:55:23 +0300 Subject: [8u26] Review request RT-37456: [Monocle] Fold together monocle.input, monocle.util and monocle packages Message-ID: <6A749370-9ACA-44CB-8E63-71440C671342@oracle.com> Hi Lisa, Please review the proposed fix for https://javafx-jira.kenai.com/browse/RT-37456 Thanks, Daniel From hang.vo at oracle.com Wed Jun 18 19:48:25 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Wed, 18 Jun 2014 19:48:25 +0000 Subject: hg: openjfx/8u-dev/rt: [doc-only] Fix RT-7993: Specify behavior for negative arcWidth/Height values in Rectangle Message-ID: <201406181948.s5IJmaEs004270@aojmv0008> Changeset: 3f352215be3f Author: flar Date: 2014-06-18 12:44 -0700 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/3f352215be3f [doc-only] Fix RT-7993: Specify behavior for negative arcWidth/Height values in Rectangle ! modules/graphics/src/main/java/javafx/scene/shape/Rectangle.java From hang.vo at oracle.com Wed Jun 18 20:33:01 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Wed, 18 Jun 2014 20:33:01 +0000 Subject: hg: openjfx/8u-dev/rt: [doc-only] Fix RT-36514: Clarify that StrokeType.INNER and OUTER not defined for unclosed paths. Message-ID: <201406182033.s5IKXDk8011619@aojmv0008> Changeset: 1b3ef87e24b9 Author: flar Date: 2014-06-18 13:30 -0700 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/1b3ef87e24b9 [doc-only] Fix RT-36514: Clarify that StrokeType.INNER and OUTER not defined for unclosed paths. Reviewed by: kcr ! modules/graphics/src/main/java/javafx/scene/shape/StrokeType.java From hang.vo at oracle.com Wed Jun 18 21:33:00 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Wed, 18 Jun 2014 21:33:00 +0000 Subject: hg: openjfx/8u-dev/rt: Fix for RT-37562 [Monocle] Make monocle the default javafx.platform on all ARM/Linux devices Message-ID: <201406182133.s5ILXEwx019885@aojmv0008> Changeset: 1191bf829e2f Author: Lisa.Selle at oracle.com Date: 2014-06-18 17:18 -0400 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/1191bf829e2f Fix for RT-37562 [Monocle] Make monocle the default javafx.platform on all ARM/Linux devices Reviewed by dblaukopf Tested with HelloSanity ! buildSrc/armv5sf.gradle ! buildSrc/armv6hf.gradle ! buildSrc/armv6sf.gradle ! buildSrc/armv7hf.gradle ! buildSrc/armv7sf.gradle ! buildSrc/x86egl.gradle From kevin.rushforth at oracle.com Wed Jun 18 22:22:45 2014 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Wed, 18 Jun 2014 15:22:45 -0700 Subject: [8u20] review request: RT-37266: Need unit test that calls Platform.runLater from ShutdownHook Message-ID: <53A21135.2040602@oracle.com> Anthony, Please review the following test-only fix: https://javafx-jira.kenai.com/browse/RT-37266 Thanks. -- Kevin From hang.vo at oracle.com Wed Jun 18 22:33:46 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Wed, 18 Jun 2014 22:33:46 +0000 Subject: hg: openjfx/8u-dev/rt: 3 new changesets Message-ID: <201406182234.s5IMYBrc029296@aojmv0008> Changeset: 735d0d16a390 Author: kcr Date: 2014-06-18 15:13 -0700 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/735d0d16a390 RT-37592: Remove DOS line endings in source code files Reviewed-by: ddhill ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/exporters/fxml/FXMLExporter.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/Optimizer.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/Validator.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/Loader.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/obj/FloatArrayList.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/obj/IntegerArrayList.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/obj/MtlReader.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/obj/ObjImporter.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/obj/PolyObjImporter.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/jfx3dviewer/Frame.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/jfx3dviewer/SessionManager.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/shape3d/SkinningMesh.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/shape3d/symbolic/OriginalPointArray.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/shape3d/symbolic/SubdividedPointArray.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/shape3d/symbolic/SymbolicPointArray.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/shape3d/symbolic/SymbolicPolygonMesh.java ! apps/samples/Ensemble8/src/app/java/ensemble/EnsembleApp.java ! apps/samples/Ensemble8/src/app/java/ensemble/HomePage.java ! apps/samples/Ensemble8/src/app/java/ensemble/SampleInfo.java ! apps/samples/Ensemble8/src/app/java/ensemble/control/BendingPages.java ! apps/samples/Ensemble8/src/app/java/ensemble/control/BookBend.java ! apps/samples/Ensemble8/src/app/java/ensemble/samplepage/Description.java ! apps/samples/Ensemble8/src/app/java/ensemble/samplepage/PieChartDataVisualizer.java ! apps/samples/Ensemble8/src/app/java/ensemble/samplepage/PlaygroundNode.java ! apps/samples/Ensemble8/src/app/java/ensemble/samplepage/SampleContainer.java ! apps/samples/Ensemble8/src/app/java/ensemble/samplepage/SourcePage.java ! apps/samples/Ensemble8/src/app/java/ensemble/samplepage/XYDataVisualizer.java ! apps/samples/Ensemble8/src/app/java/ensemble/util/WebViewWrapper.java ! apps/samples/MandelbrotSet/src/demo/parallel/OffscreenImage.java ! apps/toys/FX8-3DFeatures/src/fx83dfeatures/Camera3D.java ! apps/toys/FX8-3DFeatures/src/fx83dfeatures/CameraController.java ! apps/toys/FX8-3DFeatures/src/fx83dfeatures/Snapshot3D.java ! apps/toys/FX8-3DFeatures/src/fx83dfeatures/TwoBoxes.java ! apps/toys/Hello/src/main/java/hello/HelloHighContrast.java ! modules/base/src/main/java/com/sun/javafx/collections/ArrayListenerHelper.java ! modules/base/src/main/java/com/sun/javafx/collections/ObservableFloatArrayImpl.java ! modules/base/src/main/java/com/sun/javafx/collections/ObservableIntegerArrayImpl.java ! modules/base/src/main/java/javafx/beans/NamedArg.java ! modules/base/src/main/java/javafx/collections/ArrayChangeListener.java ! modules/base/src/main/java/javafx/collections/ObservableArrayBase.java ! modules/builders/src/main/java/javafx/animation/AnimationBuilder.java ! modules/builders/src/main/java/javafx/animation/FadeTransitionBuilder.java ! modules/builders/src/main/java/javafx/animation/FillTransitionBuilder.java ! modules/builders/src/main/java/javafx/animation/ParallelTransitionBuilder.java ! modules/builders/src/main/java/javafx/animation/PathTransitionBuilder.java ! modules/builders/src/main/java/javafx/animation/PauseTransitionBuilder.java ! modules/builders/src/main/java/javafx/animation/RotateTransitionBuilder.java ! modules/builders/src/main/java/javafx/animation/ScaleTransitionBuilder.java ! modules/builders/src/main/java/javafx/animation/SequentialTransitionBuilder.java ! modules/builders/src/main/java/javafx/animation/StrokeTransitionBuilder.java ! modules/builders/src/main/java/javafx/animation/TimelineBuilder.java ! modules/builders/src/main/java/javafx/animation/TransitionBuilder.java ! modules/builders/src/main/java/javafx/animation/TranslateTransitionBuilder.java ! modules/builders/src/main/java/javafx/embed/swing/JFXPanelBuilder.java ! modules/builders/src/main/java/javafx/embed/swt/CustomTransferBuilder.java ! modules/builders/src/main/java/javafx/geometry/BoundingBoxBuilder.java ! modules/builders/src/main/java/javafx/geometry/Dimension2DBuilder.java ! modules/builders/src/main/java/javafx/geometry/InsetsBuilder.java ! modules/builders/src/main/java/javafx/geometry/Point2DBuilder.java ! modules/builders/src/main/java/javafx/geometry/Point3DBuilder.java ! modules/builders/src/main/java/javafx/geometry/Rectangle2DBuilder.java ! modules/builders/src/main/java/javafx/scene/GroupBuilder.java ! modules/builders/src/main/java/javafx/scene/ImageCursorBuilder.java ! modules/builders/src/main/java/javafx/scene/NodeBuilder.java ! modules/builders/src/main/java/javafx/scene/ParentBuilder.java ! modules/builders/src/main/java/javafx/scene/PerspectiveCameraBuilder.java ! modules/builders/src/main/java/javafx/scene/SceneBuilder.java ! modules/builders/src/main/java/javafx/scene/SnapshotParametersBuilder.java ! modules/builders/src/main/java/javafx/scene/canvas/CanvasBuilder.java ! modules/builders/src/main/java/javafx/scene/chart/AreaChartBuilder.java ! modules/builders/src/main/java/javafx/scene/chart/AxisBuilder.java ! modules/builders/src/main/java/javafx/scene/chart/BarChartBuilder.java ! modules/builders/src/main/java/javafx/scene/chart/BubbleChartBuilder.java ! modules/builders/src/main/java/javafx/scene/chart/CategoryAxisBuilder.java ! modules/builders/src/main/java/javafx/scene/chart/ChartBuilder.java ! modules/builders/src/main/java/javafx/scene/chart/LineChartBuilder.java ! modules/builders/src/main/java/javafx/scene/chart/NumberAxisBuilder.java ! modules/builders/src/main/java/javafx/scene/chart/PieChartBuilder.java ! modules/builders/src/main/java/javafx/scene/chart/ScatterChartBuilder.java ! modules/builders/src/main/java/javafx/scene/chart/StackedAreaChartBuilder.java ! modules/builders/src/main/java/javafx/scene/chart/StackedBarChartBuilder.java ! modules/builders/src/main/java/javafx/scene/chart/ValueAxisBuilder.java ! modules/builders/src/main/java/javafx/scene/chart/XYChartBuilder.java ! modules/builders/src/main/java/javafx/scene/control/AccordionBuilder.java ! modules/builders/src/main/java/javafx/scene/control/ButtonBaseBuilder.java ! modules/builders/src/main/java/javafx/scene/control/ButtonBuilder.java ! modules/builders/src/main/java/javafx/scene/control/CellBuilder.java ! modules/builders/src/main/java/javafx/scene/control/CheckBoxBuilder.java ! modules/builders/src/main/java/javafx/scene/control/CheckBoxTreeItemBuilder.java ! modules/builders/src/main/java/javafx/scene/control/CheckMenuItemBuilder.java ! modules/builders/src/main/java/javafx/scene/control/ChoiceBoxBuilder.java ! modules/builders/src/main/java/javafx/scene/control/ColorPickerBuilder.java ! modules/builders/src/main/java/javafx/scene/control/ComboBoxBaseBuilder.java ! modules/builders/src/main/java/javafx/scene/control/ComboBoxBuilder.java ! modules/builders/src/main/java/javafx/scene/control/ContextMenuBuilder.java ! modules/builders/src/main/java/javafx/scene/control/ControlBuilder.java ! modules/builders/src/main/java/javafx/scene/control/CustomMenuItemBuilder.java ! modules/builders/src/main/java/javafx/scene/control/HyperlinkBuilder.java ! modules/builders/src/main/java/javafx/scene/control/IndexRangeBuilder.java ! modules/builders/src/main/java/javafx/scene/control/IndexedCellBuilder.java ! modules/builders/src/main/java/javafx/scene/control/LabelBuilder.java ! modules/builders/src/main/java/javafx/scene/control/LabeledBuilder.java ! modules/builders/src/main/java/javafx/scene/control/ListCellBuilder.java ! modules/builders/src/main/java/javafx/scene/control/ListViewBuilder.java ! modules/builders/src/main/java/javafx/scene/control/MenuBarBuilder.java ! modules/builders/src/main/java/javafx/scene/control/MenuBuilder.java ! modules/builders/src/main/java/javafx/scene/control/MenuButtonBuilder.java ! modules/builders/src/main/java/javafx/scene/control/MenuItemBuilder.java ! modules/builders/src/main/java/javafx/scene/control/MultipleSelectionModelBuilder.java ! modules/builders/src/main/java/javafx/scene/control/PaginationBuilder.java ! modules/builders/src/main/java/javafx/scene/control/PasswordFieldBuilder.java ! modules/builders/src/main/java/javafx/scene/control/PopupControlBuilder.java ! modules/builders/src/main/java/javafx/scene/control/ProgressBarBuilder.java ! modules/builders/src/main/java/javafx/scene/control/ProgressIndicatorBuilder.java ! modules/builders/src/main/java/javafx/scene/control/RadioButtonBuilder.java ! modules/builders/src/main/java/javafx/scene/control/RadioMenuItemBuilder.java ! modules/builders/src/main/java/javafx/scene/control/ScrollBarBuilder.java ! modules/builders/src/main/java/javafx/scene/control/ScrollPaneBuilder.java ! modules/builders/src/main/java/javafx/scene/control/SeparatorBuilder.java ! modules/builders/src/main/java/javafx/scene/control/SeparatorMenuItemBuilder.java ! modules/builders/src/main/java/javafx/scene/control/SliderBuilder.java ! modules/builders/src/main/java/javafx/scene/control/SplitMenuButtonBuilder.java ! modules/builders/src/main/java/javafx/scene/control/SplitPaneBuilder.java ! modules/builders/src/main/java/javafx/scene/control/TabBuilder.java ! modules/builders/src/main/java/javafx/scene/control/TabPaneBuilder.java ! modules/builders/src/main/java/javafx/scene/control/TableCellBuilder.java ! modules/builders/src/main/java/javafx/scene/control/TableColumnBuilder.java ! modules/builders/src/main/java/javafx/scene/control/TablePositionBuilder.java ! modules/builders/src/main/java/javafx/scene/control/TableRowBuilder.java ! modules/builders/src/main/java/javafx/scene/control/TableViewBuilder.java ! modules/builders/src/main/java/javafx/scene/control/TextAreaBuilder.java ! modules/builders/src/main/java/javafx/scene/control/TextFieldBuilder.java ! modules/builders/src/main/java/javafx/scene/control/TextInputControlBuilder.java ! modules/builders/src/main/java/javafx/scene/control/TitledPaneBuilder.java ! modules/builders/src/main/java/javafx/scene/control/ToggleButtonBuilder.java ! modules/builders/src/main/java/javafx/scene/control/ToggleGroupBuilder.java ! modules/builders/src/main/java/javafx/scene/control/ToolBarBuilder.java ! modules/builders/src/main/java/javafx/scene/control/TooltipBuilder.java ! modules/builders/src/main/java/javafx/scene/control/TreeCellBuilder.java ! modules/builders/src/main/java/javafx/scene/control/TreeItemBuilder.java ! modules/builders/src/main/java/javafx/scene/control/TreeViewBuilder.java ! modules/builders/src/main/java/javafx/scene/control/cell/CheckBoxListCellBuilder.java ! modules/builders/src/main/java/javafx/scene/control/cell/CheckBoxTableCellBuilder.java ! modules/builders/src/main/java/javafx/scene/control/cell/CheckBoxTreeCellBuilder.java ! modules/builders/src/main/java/javafx/scene/control/cell/ChoiceBoxListCellBuilder.java ! modules/builders/src/main/java/javafx/scene/control/cell/ChoiceBoxTableCellBuilder.java ! modules/builders/src/main/java/javafx/scene/control/cell/ChoiceBoxTreeCellBuilder.java ! modules/builders/src/main/java/javafx/scene/control/cell/ComboBoxListCellBuilder.java ! modules/builders/src/main/java/javafx/scene/control/cell/ComboBoxTableCellBuilder.java ! modules/builders/src/main/java/javafx/scene/control/cell/ComboBoxTreeCellBuilder.java ! modules/builders/src/main/java/javafx/scene/control/cell/PropertyValueFactoryBuilder.java ! modules/builders/src/main/java/javafx/scene/control/cell/TextFieldListCellBuilder.java ! modules/builders/src/main/java/javafx/scene/control/cell/TextFieldTableCellBuilder.java ! modules/builders/src/main/java/javafx/scene/control/cell/TextFieldTreeCellBuilder.java ! modules/builders/src/main/java/javafx/scene/effect/BlendBuilder.java ! modules/builders/src/main/java/javafx/scene/effect/BloomBuilder.java ! modules/builders/src/main/java/javafx/scene/effect/BoxBlurBuilder.java ! modules/builders/src/main/java/javafx/scene/effect/ColorAdjustBuilder.java ! modules/builders/src/main/java/javafx/scene/effect/ColorInputBuilder.java ! modules/builders/src/main/java/javafx/scene/effect/DisplacementMapBuilder.java ! modules/builders/src/main/java/javafx/scene/effect/DropShadowBuilder.java ! modules/builders/src/main/java/javafx/scene/effect/FloatMapBuilder.java ! modules/builders/src/main/java/javafx/scene/effect/GaussianBlurBuilder.java ! modules/builders/src/main/java/javafx/scene/effect/GlowBuilder.java ! modules/builders/src/main/java/javafx/scene/effect/ImageInputBuilder.java ! modules/builders/src/main/java/javafx/scene/effect/InnerShadowBuilder.java ! modules/builders/src/main/java/javafx/scene/effect/LightBuilder.java ! modules/builders/src/main/java/javafx/scene/effect/LightingBuilder.java ! modules/builders/src/main/java/javafx/scene/effect/MotionBlurBuilder.java ! modules/builders/src/main/java/javafx/scene/effect/PerspectiveTransformBuilder.java ! modules/builders/src/main/java/javafx/scene/effect/ReflectionBuilder.java ! modules/builders/src/main/java/javafx/scene/effect/SepiaToneBuilder.java ! modules/builders/src/main/java/javafx/scene/effect/ShadowBuilder.java ! modules/builders/src/main/java/javafx/scene/image/ImageViewBuilder.java ! modules/builders/src/main/java/javafx/scene/input/ClipboardContentBuilder.java ! modules/builders/src/main/java/javafx/scene/input/KeyCharacterCombinationBuilder.java ! modules/builders/src/main/java/javafx/scene/input/KeyCodeCombinationBuilder.java ! modules/builders/src/main/java/javafx/scene/input/MnemonicBuilder.java ! modules/builders/src/main/java/javafx/scene/layout/AnchorPaneBuilder.java ! modules/builders/src/main/java/javafx/scene/layout/BorderPaneBuilder.java ! modules/builders/src/main/java/javafx/scene/layout/ColumnConstraintsBuilder.java ! modules/builders/src/main/java/javafx/scene/layout/FlowPaneBuilder.java ! modules/builders/src/main/java/javafx/scene/layout/GridPaneBuilder.java ! modules/builders/src/main/java/javafx/scene/layout/HBoxBuilder.java ! modules/builders/src/main/java/javafx/scene/layout/PaneBuilder.java ! modules/builders/src/main/java/javafx/scene/layout/RegionBuilder.java ! modules/builders/src/main/java/javafx/scene/layout/RowConstraintsBuilder.java ! modules/builders/src/main/java/javafx/scene/layout/StackPaneBuilder.java ! modules/builders/src/main/java/javafx/scene/layout/TilePaneBuilder.java ! modules/builders/src/main/java/javafx/scene/layout/VBoxBuilder.java ! modules/builders/src/main/java/javafx/scene/media/AudioClipBuilder.java ! modules/builders/src/main/java/javafx/scene/media/MediaBuilder.java ! modules/builders/src/main/java/javafx/scene/media/MediaPlayerBuilder.java ! modules/builders/src/main/java/javafx/scene/media/MediaViewBuilder.java ! modules/builders/src/main/java/javafx/scene/paint/ColorBuilder.java ! modules/builders/src/main/java/javafx/scene/paint/ImagePatternBuilder.java ! modules/builders/src/main/java/javafx/scene/paint/LinearGradientBuilder.java ! modules/builders/src/main/java/javafx/scene/paint/RadialGradientBuilder.java ! modules/builders/src/main/java/javafx/scene/paint/StopBuilder.java ! modules/builders/src/main/java/javafx/scene/shape/ArcBuilder.java ! modules/builders/src/main/java/javafx/scene/shape/ArcToBuilder.java ! modules/builders/src/main/java/javafx/scene/shape/CircleBuilder.java ! modules/builders/src/main/java/javafx/scene/shape/ClosePathBuilder.java ! modules/builders/src/main/java/javafx/scene/shape/CubicCurveBuilder.java ! modules/builders/src/main/java/javafx/scene/shape/CubicCurveToBuilder.java ! modules/builders/src/main/java/javafx/scene/shape/EllipseBuilder.java ! modules/builders/src/main/java/javafx/scene/shape/HLineToBuilder.java ! modules/builders/src/main/java/javafx/scene/shape/LineBuilder.java ! modules/builders/src/main/java/javafx/scene/shape/LineToBuilder.java ! modules/builders/src/main/java/javafx/scene/shape/MoveToBuilder.java ! modules/builders/src/main/java/javafx/scene/shape/PathBuilder.java ! modules/builders/src/main/java/javafx/scene/shape/PathElementBuilder.java ! modules/builders/src/main/java/javafx/scene/shape/PolygonBuilder.java ! modules/builders/src/main/java/javafx/scene/shape/PolylineBuilder.java ! modules/builders/src/main/java/javafx/scene/shape/QuadCurveBuilder.java ! modules/builders/src/main/java/javafx/scene/shape/QuadCurveToBuilder.java ! modules/builders/src/main/java/javafx/scene/shape/RectangleBuilder.java ! modules/builders/src/main/java/javafx/scene/shape/SVGPathBuilder.java ! modules/builders/src/main/java/javafx/scene/shape/ShapeBuilder.java ! modules/builders/src/main/java/javafx/scene/shape/VLineToBuilder.java ! modules/builders/src/main/java/javafx/scene/text/FontBuilder.java ! modules/builders/src/main/java/javafx/scene/text/TextBuilder.java ! modules/builders/src/main/java/javafx/scene/transform/AffineBuilder.java ! modules/builders/src/main/java/javafx/scene/transform/RotateBuilder.java ! modules/builders/src/main/java/javafx/scene/transform/ScaleBuilder.java ! modules/builders/src/main/java/javafx/scene/transform/ShearBuilder.java ! modules/builders/src/main/java/javafx/scene/transform/TranslateBuilder.java ! modules/builders/src/main/java/javafx/scene/web/WebEngineBuilder.java ! modules/builders/src/main/java/javafx/scene/web/WebViewBuilder.java ! modules/builders/src/main/java/javafx/stage/DirectoryChooserBuilder.java ! modules/builders/src/main/java/javafx/stage/FileChooserBuilder.java ! modules/builders/src/main/java/javafx/stage/PopupBuilder.java ! modules/builders/src/main/java/javafx/stage/PopupWindowBuilder.java ! modules/builders/src/main/java/javafx/stage/StageBuilder.java ! modules/builders/src/main/java/javafx/stage/WindowBuilder.java ! modules/controls/src/main/java/com/sun/javafx/scene/control/ControlAcceleratorSupport.java ! modules/controls/src/main/java/com/sun/javafx/scene/control/SelectedCellsMap.java ! modules/controls/src/main/java/com/sun/javafx/scene/control/SizeLimitedList.java ! modules/controls/src/main/java/com/sun/javafx/scene/control/TableColumnSortTypeWrapper.java ! modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/TableViewBehaviorBase.java ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/AccordionSkin.java ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/ContextMenuContent.java ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/LabeledSkinBase.java ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/VirtualFlow.java ! modules/controls/src/main/java/javafx/scene/chart/Axis.java ! modules/controls/src/main/java/javafx/scene/control/Pagination.java ! modules/controls/src/main/java/javafx/scene/control/SortEvent.java ! modules/controls/src/main/java/javafx/scene/control/TreeTableRow.java ! modules/controls/src/main/java/javafx/scene/control/cell/DefaultTreeCell.java ! modules/controls/src/test/java/com/sun/javafx/scene/control/infrastructure/StageLoader.java ! modules/controls/src/test/java/com/sun/javafx/scene/control/infrastructure/VirtualFlowTestUtils.java ! modules/controls/src/test/java/com/sun/javafx/scene/control/skin/ContextMenuContentRetriever.java ! modules/controls/src/test/java/com/sun/javafx/scene/control/skin/TableColumnHeaderRetriever.java ! modules/controls/src/test/java/com/sun/javafx/scene/control/test/Data.java ! modules/controls/src/test/java/com/sun/javafx/scene/control/test/Employee.java ! modules/controls/src/test/java/com/sun/javafx/scene/control/test/Person.java ! modules/controls/src/test/java/com/sun/javafx/scene/control/test/RT_22463_Person.java ! modules/controls/src/test/java/javafx/scene/control/AcceleratorParameterizedTest.java ! modules/controls/src/test/java/javafx/scene/control/CheckBoxTreeItemTest.java ! modules/controls/src/test/java/javafx/scene/control/cell/CheckBoxListCellTest.java ! modules/controls/src/test/java/javafx/scene/control/cell/CheckBoxTableCellTest.java ! modules/controls/src/test/java/javafx/scene/control/cell/CheckBoxTreeCellTest.java ! modules/controls/src/test/java/javafx/scene/control/cell/CheckBoxTreeTableCellTest.java ! modules/controls/src/test/java/javafx/scene/control/cell/ChoiceBoxListCellTest.java ! modules/controls/src/test/java/javafx/scene/control/cell/ChoiceBoxTableCellTest.java ! modules/controls/src/test/java/javafx/scene/control/cell/ChoiceBoxTreeCellTest.java ! modules/controls/src/test/java/javafx/scene/control/cell/ChoiceBoxTreeTableCellTest.java ! modules/controls/src/test/java/javafx/scene/control/cell/ComboBoxListCellTest.java ! modules/controls/src/test/java/javafx/scene/control/cell/ComboBoxTableCellTest.java ! modules/controls/src/test/java/javafx/scene/control/cell/ComboBoxTreeCellTest.java ! modules/controls/src/test/java/javafx/scene/control/cell/ComboBoxTreeTableCellTest.java ! modules/controls/src/test/java/javafx/scene/control/cell/ParameterisedPrebuiltCellTest.java ! modules/controls/src/test/java/javafx/scene/control/cell/ProgressBarTableCellTest.java ! modules/controls/src/test/java/javafx/scene/control/cell/ProgressBarTreeTableCellTest.java ! modules/controls/src/test/java/javafx/scene/control/cell/TextFieldListCellTest.java ! modules/controls/src/test/java/javafx/scene/control/cell/TextFieldTableCellTest.java ! modules/controls/src/test/java/javafx/scene/control/cell/TextFieldTreeCellTest.java ! modules/controls/src/test/java/javafx/scene/control/cell/TextFieldTreeTableCellTest.java ! modules/fxml/src/test/java/com/sun/javafx/fxml/builder/ClassWithCollection.java ! modules/fxml/src/test/java/com/sun/javafx/fxml/builder/ClassWithDefaultValues.java ! modules/fxml/src/test/java/com/sun/javafx/fxml/builder/ClassWithMixedConstructors.java ! modules/fxml/src/test/java/javafx/fxml/RT_36633Test.java ! modules/fxpackager/src/main/java/com/oracle/tools/packager/AbstractBundler.java ! modules/fxpackager/src/main/java/com/oracle/tools/packager/Bundler.java ! modules/fxpackager/src/main/java/com/oracle/tools/packager/BundlerParamInfo.java ! modules/fxpackager/src/main/java/com/oracle/tools/packager/Bundlers.java ! modules/fxpackager/src/main/java/com/oracle/tools/packager/ConfigException.java ! modules/fxpackager/src/main/java/com/oracle/tools/packager/StandardBundlerParam.java ! modules/fxpackager/src/main/java/com/oracle/tools/packager/UnsupportedPlatformException.java ! modules/fxpackager/src/main/java/com/sun/javafx/tools/packager/JSCallback.java ! modules/fxpackager/src/main/java/com/sun/javafx/tools/packager/bundlers/ConfigException.java ! modules/fxpackager/src/main/java/com/sun/javafx/tools/packager/bundlers/UnsupportedPlatformException.java ! modules/fxpackager/src/test/java/com/oracle/tools/packager/BundlersTest.java ! modules/fxpackager/src/test/java/com/oracle/tools/packager/linux/LinuxAppBundlerTest.java ! modules/fxpackager/src/test/java/com/oracle/tools/packager/linux/LinuxDebBundlerTest.java ! modules/fxpackager/src/test/java/com/oracle/tools/packager/linux/LinuxRpmBundlerTest.java ! modules/fxpackager/src/test/java/com/oracle/tools/packager/windows/RuntimeFlagsParserTest.java ! modules/fxpackager/src/test/java/com/oracle/tools/packager/windows/WinAppBundlerTest.java ! modules/fxpackager/src/test/java/com/oracle/tools/packager/windows/WinExeBundlerTest.java ! modules/fxpackager/src/test/java/com/oracle/tools/packager/windows/WinMsiBundlerTest.java ! modules/fxpackager/src/test/java/hello/HelloRectangle.java ! modules/graphics/src/main/java/com/sun/glass/ui/ios/IosClipboardDelegate.java ! modules/graphics/src/main/java/com/sun/glass/ui/ios/IosPasteboard.java ! modules/graphics/src/main/java/com/sun/glass/ui/ios/IosSystemClipboard.java ! modules/graphics/src/main/java/com/sun/javafx/stage/WindowHelper.java ! modules/graphics/src/main/java/com/sun/prism/impl/BaseResourcePool.java ! modules/graphics/src/main/java/com/sun/prism/impl/MeshTempState.java ! modules/graphics/src/main/java/com/sun/prism/impl/ResourcePool.java ! modules/graphics/src/main/java/com/sun/prism/impl/TextureResourcePool.java ! modules/graphics/src/main/java/com/sun/prism/j2d/J2DTexturePool.java ! modules/graphics/src/main/java/com/sun/prism/null3d/DummyTexturePool.java ! modules/graphics/src/main/java/com/sun/prism/sw/SWContext.java ! modules/graphics/src/main/java/com/sun/prism/sw/SWPaint.java ! modules/graphics/src/main/java/com/sun/prism/sw/SWTexturePool.java ! modules/graphics/src/main/java/com/sun/scenario/effect/LockableResource.java ! modules/graphics/src/main/java/javafx/scene/SceneAntialiasing.java ! modules/graphics/src/main/native-glass/ios/GlassPasteboard.h ! modules/graphics/src/main/native-glass/ios/GlassPasteboard.m ! modules/graphics/src/test/java/com/sun/javafx/iio/ImageLoaderScalingTest.java ! modules/graphics/src/test/java/com/sun/javafx/iio/ImageTestHelper.java ! modules/graphics/src/test/java/com/sun/javafx/sg/prism/NGTriangleMeshTest.java ! modules/graphics/src/test/java/javafx/scene/CameraTest.java ! modules/graphics/src/test/java/javafx/scene/SubSceneTest.java ! modules/graphics/src/test/java/javafx/scene/shape/BoxTest.java ! modules/graphics/src/test/java/javafx/scene/shape/CylinderTest.java ! tests/golden-image-suite/test/modenatest/ModenaTest.java ! tests/system/src/test/java/test3d/TriangleMeshValidationTest.java ! tools/ios/Maven/NetBeansMobileCenter/src/main/java/com/sun/javafx/appmanager/FxApplicationInstance.java ! tools/ios/Maven/NetBeansMobileCenter/src/main/java/com/sun/javafx/stage/WindowManager.java Changeset: f820cff986ed Author: kcr Date: 2014-06-18 15:13 -0700 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/f820cff986ed RT-37587: Missing open source copyright headers on some source files Reviewed-by: ddhill ! apps/experiments/ModenaTest/test/modenatest/ModenaTest.java ! apps/performance/Animations/src/animations/TranslatedRectangle.java ! apps/toys/FX8-3DFeatures/src/fx83dfeatures/SubSceneAndAntiAliasingTest.java ! modules/base/src/main/java/com/sun/javafx/property/adapter/JavaBeanQuickAccessor.java ! modules/controls/src/main/java/javafx/scene/control/SortEvent.java ! modules/controls/src/test/java/com/sun/javafx/scene/control/test/Data.java ! modules/controls/src/test/java/javafx/scene/control/AcceleratorParameterizedTest.java ! modules/controls/src/test/java/javafx/scene/control/MiscellaneousTests.java ! modules/fxml/src/test/java/javafx/fxml/IncompletePropertyContainer.java ! modules/graphics/src/main/java/com/sun/glass/ui/monocle/linux/LinuxPlatform.java ! modules/graphics/src/main/java/com/sun/javafx/font/freetype/FTFactory.java ! modules/media/src/main/native/gstreamer/gstreamer-lite/projects/plugins/gstplugins-lite.c ! modules/media/src/main/native/gstreamer/gstreamer-lite/projects/plugins/gstplugins-lite.h ! modules/web/src/android/native/android_log.h ! modules/web/src/android/native/android_webview.c ! modules/web/src/android/native/android_webview.h ! modules/web/src/android/native/native_webview.c ! modules/web/src/android/native/symbol.h ! modules/web/src/main/java/com/sun/javafx/scene/web/Debugger.java ! modules/web/src/main/java/com/sun/javafx/sg/prism/NGWebView.java ! modules/web/src/main/java/com/sun/javafx/webkit/Accessor.java ! modules/web/src/main/java/com/sun/javafx/webkit/CursorManagerImpl.java ! modules/web/src/main/java/com/sun/javafx/webkit/EventLoopImpl.java ! modules/web/src/main/java/com/sun/javafx/webkit/InputMethodClientImpl.java ! modules/web/src/main/java/com/sun/javafx/webkit/KeyCodeMap.java ! modules/web/src/main/java/com/sun/javafx/webkit/PasteboardImpl.java ! modules/web/src/main/java/com/sun/javafx/webkit/ThemeClientImpl.java ! modules/web/src/main/java/com/sun/javafx/webkit/UIClientImpl.java ! modules/web/src/main/java/com/sun/javafx/webkit/UtilitiesImpl.java ! modules/web/src/main/java/com/sun/javafx/webkit/WebPageClientImpl.java ! modules/web/src/main/java/com/sun/javafx/webkit/drt/DumpRenderTree.java ! modules/web/src/main/java/com/sun/javafx/webkit/drt/EventSender.java ! modules/web/src/main/java/com/sun/javafx/webkit/drt/UIClientImpl.java ! modules/web/src/main/java/com/sun/javafx/webkit/prism/PrismGraphicsManager.java ! modules/web/src/main/java/com/sun/javafx/webkit/prism/PrismImage.java ! modules/web/src/main/java/com/sun/javafx/webkit/prism/PrismInvoker.java ! modules/web/src/main/java/com/sun/javafx/webkit/prism/RTImage.java ! modules/web/src/main/java/com/sun/javafx/webkit/prism/TextUtilities.java ! modules/web/src/main/java/com/sun/javafx/webkit/prism/WCBufferedContext.java ! modules/web/src/main/java/com/sun/javafx/webkit/prism/WCFontCustomPlatformDataImpl.java ! modules/web/src/main/java/com/sun/javafx/webkit/prism/WCFontImpl.java ! modules/web/src/main/java/com/sun/javafx/webkit/prism/WCGraphicsPrismContext.java ! modules/web/src/main/java/com/sun/javafx/webkit/prism/WCImageDecoderImpl.java ! modules/web/src/main/java/com/sun/javafx/webkit/prism/WCImageImpl.java ! modules/web/src/main/java/com/sun/javafx/webkit/prism/WCLinearGradient.java ! modules/web/src/main/java/com/sun/javafx/webkit/prism/WCMediaPlayerImpl.java ! modules/web/src/main/java/com/sun/javafx/webkit/prism/WCPageBackBufferImpl.java ! modules/web/src/main/java/com/sun/javafx/webkit/prism/WCPathImpl.java ! modules/web/src/main/java/com/sun/javafx/webkit/prism/WCRadialGradient.java ! modules/web/src/main/java/com/sun/javafx/webkit/prism/WCRenderQueueImpl.java ! modules/web/src/main/java/com/sun/javafx/webkit/prism/WCStrokeImpl.java ! modules/web/src/main/java/com/sun/javafx/webkit/prism/theme/PrismRenderer.java ! modules/web/src/main/java/com/sun/javafx/webkit/theme/ContextMenuImpl.java ! modules/web/src/main/java/com/sun/javafx/webkit/theme/PopupMenuImpl.java ! modules/web/src/main/java/com/sun/javafx/webkit/theme/RenderThemeImpl.java ! modules/web/src/main/java/com/sun/javafx/webkit/theme/Renderer.java ! modules/web/src/main/java/com/sun/javafx/webkit/theme/ScrollBarThemeImpl.java ! modules/web/src/main/java/com/sun/webkit/BackForwardList.java ! modules/web/src/main/java/com/sun/webkit/ContextMenu.java ! modules/web/src/main/java/com/sun/webkit/ContextMenuItem.java ! modules/web/src/main/java/com/sun/webkit/CursorManager.java ! modules/web/src/main/java/com/sun/webkit/Disposer.java ! modules/web/src/main/java/com/sun/webkit/DisposerRecord.java ! modules/web/src/main/java/com/sun/webkit/EventLoop.java ! modules/web/src/main/java/com/sun/webkit/FileSystem.java ! modules/web/src/main/java/com/sun/webkit/InputMethodClient.java ! modules/web/src/main/java/com/sun/webkit/InspectorClient.java ! modules/web/src/main/java/com/sun/webkit/Invoker.java ! modules/web/src/main/java/com/sun/webkit/LoadListenerClient.java ! modules/web/src/main/java/com/sun/webkit/LocalizedStrings.java ! modules/web/src/main/java/com/sun/webkit/MainThread.java ! modules/web/src/main/java/com/sun/webkit/PageCache.java ! modules/web/src/main/java/com/sun/webkit/Pasteboard.java ! modules/web/src/main/java/com/sun/webkit/PolicyClient.java ! modules/web/src/main/java/com/sun/webkit/PopupMenu.java ! modules/web/src/main/java/com/sun/webkit/SharedBuffer.java ! modules/web/src/main/java/com/sun/webkit/SimpleSharedBufferInputStream.java ! modules/web/src/main/java/com/sun/webkit/ThemeClient.java ! modules/web/src/main/java/com/sun/webkit/Timer.java ! modules/web/src/main/java/com/sun/webkit/UIClient.java ! modules/web/src/main/java/com/sun/webkit/Utilities.java ! modules/web/src/main/java/com/sun/webkit/WCFrameView.java ! modules/web/src/main/java/com/sun/webkit/WCPasteboard.java ! modules/web/src/main/java/com/sun/webkit/WCPluginWidget.java ! modules/web/src/main/java/com/sun/webkit/WCWidget.java ! modules/web/src/main/java/com/sun/webkit/WatchdogTimer.java ! modules/web/src/main/java/com/sun/webkit/WebPage.java ! modules/web/src/main/java/com/sun/webkit/WebPageClient.java ! modules/web/src/main/java/com/sun/webkit/dom/EventListenerImpl.java ! modules/web/src/main/java/com/sun/webkit/event/WCChangeEvent.java ! modules/web/src/main/java/com/sun/webkit/event/WCChangeListener.java ! modules/web/src/main/java/com/sun/webkit/event/WCFocusEvent.java ! modules/web/src/main/java/com/sun/webkit/event/WCInputMethodEvent.java ! modules/web/src/main/java/com/sun/webkit/event/WCKeyEvent.java ! modules/web/src/main/java/com/sun/webkit/event/WCMouseEvent.java ! modules/web/src/main/java/com/sun/webkit/event/WCMouseWheelEvent.java ! modules/web/src/main/java/com/sun/webkit/graphics/GraphicsDecoder.java ! modules/web/src/main/java/com/sun/webkit/graphics/Ref.java ! modules/web/src/main/java/com/sun/webkit/graphics/RenderMediaControls.java ! modules/web/src/main/java/com/sun/webkit/graphics/RenderTheme.java ! modules/web/src/main/java/com/sun/webkit/graphics/ScrollBarTheme.java ! modules/web/src/main/java/com/sun/webkit/graphics/WCFont.java ! modules/web/src/main/java/com/sun/webkit/graphics/WCFontCustomPlatformData.java ! modules/web/src/main/java/com/sun/webkit/graphics/WCGradient.java ! modules/web/src/main/java/com/sun/webkit/graphics/WCGraphicsContext.java ! modules/web/src/main/java/com/sun/webkit/graphics/WCGraphicsManager.java ! modules/web/src/main/java/com/sun/webkit/graphics/WCIcon.java ! modules/web/src/main/java/com/sun/webkit/graphics/WCImage.java ! modules/web/src/main/java/com/sun/webkit/graphics/WCImageDecoder.java ! modules/web/src/main/java/com/sun/webkit/graphics/WCImageFrame.java ! modules/web/src/main/java/com/sun/webkit/graphics/WCMediaPlayer.java ! modules/web/src/main/java/com/sun/webkit/graphics/WCPageBackBuffer.java ! modules/web/src/main/java/com/sun/webkit/graphics/WCPath.java ! modules/web/src/main/java/com/sun/webkit/graphics/WCPathIterator.java ! modules/web/src/main/java/com/sun/webkit/graphics/WCPoint.java ! modules/web/src/main/java/com/sun/webkit/graphics/WCRectangle.java ! modules/web/src/main/java/com/sun/webkit/graphics/WCRenderQueue.java ! modules/web/src/main/java/com/sun/webkit/graphics/WCSize.java ! modules/web/src/main/java/com/sun/webkit/graphics/WCStroke.java ! modules/web/src/main/java/com/sun/webkit/graphics/WCTransform.java ! modules/web/src/main/java/com/sun/webkit/network/ByteBufferPool.java ! modules/web/src/main/java/com/sun/webkit/network/Cookie.java ! modules/web/src/main/java/com/sun/webkit/network/CookieJar.java ! modules/web/src/main/java/com/sun/webkit/network/CookieManager.java ! modules/web/src/main/java/com/sun/webkit/network/CookieStore.java ! modules/web/src/main/java/com/sun/webkit/network/DateParser.java ! modules/web/src/main/java/com/sun/webkit/network/DirectoryURLConnection.java ! modules/web/src/main/java/com/sun/webkit/network/ExtendedTime.java ! modules/web/src/main/java/com/sun/webkit/network/FormDataElement.java ! modules/web/src/main/java/com/sun/webkit/network/NetworkContext.java ! modules/web/src/main/java/com/sun/webkit/network/PublicSuffixes.java ! modules/web/src/main/java/com/sun/webkit/network/SocketStreamHandle.java ! modules/web/src/main/java/com/sun/webkit/network/URLLoader.java ! modules/web/src/main/java/com/sun/webkit/network/URLs.java ! modules/web/src/main/java/com/sun/webkit/network/Util.java ! modules/web/src/main/java/com/sun/webkit/network/about/AboutURLConnection.java ! modules/web/src/main/java/com/sun/webkit/network/about/Handler.java ! modules/web/src/main/java/com/sun/webkit/network/data/DataURLConnection.java ! modules/web/src/main/java/com/sun/webkit/network/data/Handler.java ! modules/web/src/main/java/com/sun/webkit/perf/PerfLogger.java ! modules/web/src/main/java/com/sun/webkit/perf/WCFontPerfLogger.java ! modules/web/src/main/java/com/sun/webkit/perf/WCGraphicsPerfLogger.java ! modules/web/src/main/java/com/sun/webkit/plugin/DefaultPlugin.java ! modules/web/src/main/java/com/sun/webkit/plugin/Plugin.java ! modules/web/src/main/java/com/sun/webkit/plugin/PluginHandler.java ! modules/web/src/main/java/com/sun/webkit/plugin/PluginListener.java ! modules/web/src/main/java/com/sun/webkit/plugin/PluginManager.java ! modules/web/src/main/java/com/sun/webkit/text/StringCase.java ! modules/web/src/main/java/com/sun/webkit/text/TextBreakIterator.java ! modules/web/src/main/java/com/sun/webkit/text/TextCodec.java ! modules/web/src/main/java/com/sun/webkit/text/TextNormalizer.java ! modules/web/src/main/java/javafx/scene/web/DirectoryLock.java ! modules/web/src/main/java/javafx/scene/web/PopupFeatures.java ! modules/web/src/main/java/javafx/scene/web/PromptData.java ! modules/web/src/main/java/javafx/scene/web/WebEngine.java ! modules/web/src/main/java/javafx/scene/web/WebErrorEvent.java ! modules/web/src/main/java/javafx/scene/web/WebEvent.java ! modules/web/src/main/java/javafx/scene/web/WebHistory.java ! modules/web/src/main/java/javafx/scene/web/WebView.java ! modules/web/src/test/java/com/sun/webkit/SharedBufferTest.java ! modules/web/src/test/java/com/sun/webkit/SimpleSharedBufferInputStreamTest.java ! modules/web/src/test/java/com/sun/webkit/network/CookieManagerTest.java ! modules/web/src/test/java/com/sun/webkit/network/CookieTest.java ! modules/web/src/test/java/com/sun/webkit/network/DateParserTest.java ! modules/web/src/test/java/com/sun/webkit/network/PublicSuffixesTest.java ! modules/web/src/test/java/com/sun/webkit/network/UtilTest.java ! modules/web/src/test/java/com/sun/webkit/network/data/DataURLConnectionTest.java ! modules/web/src/test/java/com/sun/webkit/text/TextBreakIteratorTest.java ! modules/web/src/test/java/javafx/scene/web/BindingTest.java ! modules/web/src/test/java/javafx/scene/web/CSSTest.java ! modules/web/src/test/java/javafx/scene/web/CallbackTest.java ! modules/web/src/test/java/javafx/scene/web/CheckFxThreadTest.java ! modules/web/src/test/java/javafx/scene/web/DOMTest.java ! modules/web/src/test/java/javafx/scene/web/DebuggerTest.java ! modules/web/src/test/java/javafx/scene/web/DirectoryLockTest.java ! modules/web/src/test/java/javafx/scene/web/HistoryTest.java ! modules/web/src/test/java/javafx/scene/web/IrresponsiveScriptTest.java ! modules/web/src/test/java/javafx/scene/web/JavaScriptBridgeTest.java ! modules/web/src/test/java/javafx/scene/web/LeakTest.java ! modules/web/src/test/java/javafx/scene/web/LoadNotificationsTest.java ! modules/web/src/test/java/javafx/scene/web/LoadTest.java ! modules/web/src/test/java/javafx/scene/web/MiscellaneousTest.java ! modules/web/src/test/java/javafx/scene/web/ScreenAndWindowTest.java ! modules/web/src/test/java/javafx/scene/web/TestBase.java ! modules/web/src/test/java/javafx/scene/web/UserDataDirectoryTest.java ! modules/web/src/test/java/javafx/scene/web/WebPageTest.java ! modules/web/src/test/java/javafx/scene/web/WebViewResizabilityTest.java ! modules/web/src/test/java/javafx/scene/web/WebViewTest.java ! tests/golden-image-suite/src/modena/SamplePageNavigation.java ! tests/golden-image-suite/test/modenatest/ModenaTest.java ! tests/manual/printing/PrintOrientTest.java Changeset: ba9a8a4b9682 Author: kcr Date: 2014-06-18 15:14 -0700 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/ba9a8a4b9682 RT-37589: Malformed copyright headers in some files Reviewed-by: ddhill ! apps/experiments/PtyConsole/native/pty.c ! apps/experiments/PtyConsole/native/pty_fork.c ! apps/experiments/PtyConsole/native/pty_fork.h ! apps/experiments/PtyConsole/src/ptyconsole/App.java ! apps/experiments/PtyConsole/src/ptyconsole/PTY.java ! apps/experiments/PtyConsole/src/ptyconsole/PtyConsole.java ! apps/experiments/WebTerminal/src/webterminal/NodeWriter.java ! apps/experiments/WebTerminal/src/webterminal/RunInConsole.java ! apps/experiments/WebTerminal/src/webterminal/ShellConsole.java ! apps/experiments/WebTerminal/src/webterminal/WTDebug.java ! apps/experiments/WebTerminal/src/webterminal/WebOutputStream.java ! apps/experiments/WebTerminal/src/webterminal/WebTerminal.java ! apps/experiments/WebTerminal/src/webterminal/WebWriter.java ! apps/performance/GraphicsPerformance/src/main/java/nodecount/BenchBase.java ! apps/performance/GraphicsPerformance/src/main/java/nodecount/BenchTest.java ! apps/performance/GraphicsPerformance/src/main/java/nodecount/ButtonBench.java ! apps/performance/GraphicsPerformance/src/main/java/nodecount/FlatButtonBench.java ! apps/performance/GraphicsPerformance/src/main/java/nodecount/ImageBench.java ! apps/performance/GraphicsPerformance/src/main/java/nodecount/PixelGrid.java ! apps/performance/GraphicsPerformance/src/main/java/nodecount/RectBench.java ! apps/performance/GraphicsPerformance/src/main/java/nodecount/RotatingGrid.java ! apps/performance/GraphicsPerformance/src/main/java/nodecount/SimpleGrid.java ! apps/performance/GraphicsPerformance/src/main/java/preloader/PreloaderApp.java ! apps/performance/GraphicsPerformance/src/main/java/preloader/SlowStartingApp.java ! apps/performance/GraphicsPerformance/src/main/java/scrolling/PixelAlignedTranslatingGridTest.java ! apps/performance/GraphicsPerformance/src/main/java/scrolling/RectScrollingBench.java ! apps/performance/GraphicsPerformance/src/main/java/scrolling/ScrollPaneGridTest.java ! apps/performance/GraphicsPerformance/src/main/java/scrolling/ScrollingBenchBase.java ! apps/performance/GraphicsPerformance/src/main/java/scrolling/TranslatingGridTest.java ! apps/performance/GraphicsPerformance/src/main/java/startup/StartupApp.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/exporters/fxml/FXMLExporter.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/exporters/javasource/JavaSourceExporter.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/height2normal/Height2NormalApp.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/height2normal/Height2NormalConverter.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/Importer3D.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/SmoothingGroups.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/dae/DaeImporter.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/max/MaxAseParser.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/max/MaxAseTokenizer.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/max/MaxData.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/max/MaxLoader.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/Frame.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/Joint.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/Loader.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/MAttribute.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/MConnection.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/MEnv.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/MNode.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/MNodeType.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/MObject.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/MPath.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/MayaAnimationCurveInterpolator.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/MayaGroup.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/MayaImporter.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/Xform.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/parser/MParser.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/types/MArrayType.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/types/MAttributeAliasType.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/types/MBoolType.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/types/MCharacterMappingType.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/types/MComponentListType.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/types/MCompoundType.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/types/MDataType.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/types/MFloat2ArrayType.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/types/MFloat2Type.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/types/MFloat3ArrayType.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/types/MFloat3Type.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/types/MFloatArrayType.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/types/MFloatType.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/types/MInt3ArrayType.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/types/MIntArrayType.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/types/MIntType.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/types/MMatrixType.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/types/MNurbsCurveType.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/types/MPointerType.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/types/MPolyFaceType.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/types/MStringType.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/values/MArray.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/values/MAttributeAlias.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/values/MBool.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/values/MCharacterMapping.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/values/MComponentList.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/values/MCompound.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/values/MData.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/values/MFloat.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/values/MFloat2.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/values/MFloat2Array.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/values/MFloat3.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/values/MFloat3Array.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/values/MFloatArray.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/values/MInt.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/values/MInt3Array.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/values/MIntArray.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/values/MNurbsCurve.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/values/MPointer.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/values/MPolyFace.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/values/MString.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/values/impl/MArrayImpl.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/values/impl/MAttributeAliasImpl.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/values/impl/MBoolImpl.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/values/impl/MCharacterMappingImpl.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/values/impl/MComponentListImpl.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/values/impl/MCompoundImpl.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/values/impl/MDataImpl.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/values/impl/MFloat2ArrayImpl.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/values/impl/MFloat2Impl.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/values/impl/MFloat3ArrayImpl.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/values/impl/MFloat3Impl.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/values/impl/MFloatArrayImpl.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/values/impl/MFloatImpl.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/values/impl/MInt3ArrayImpl.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/values/impl/MIntArrayImpl.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/values/impl/MIntImpl.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/values/impl/MNurbsCurveImpl.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/values/impl/MPointerImpl.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/values/impl/MPolyFaceImpl.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/maya/values/impl/MStringImpl.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/obj/FloatArrayList.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/obj/IntegerArrayList.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/obj/MtlReader.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/obj/ObjImporter.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/importers/obj/PolyObjImporter.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/jfx3dviewer/AutoScalingGroup.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/jfx3dviewer/ContentModel.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/jfx3dviewer/FourWayNavControl.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/jfx3dviewer/Frame.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/jfx3dviewer/Jfx3dViewerApp.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/jfx3dviewer/MainController.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/jfx3dviewer/NavigationController.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/jfx3dviewer/OldTestViewer.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/jfx3dviewer/SessionManager.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/jfx3dviewer/SettingsController.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/jfx3dviewer/SimpleViewerApp.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/jfx3dviewer/SubSceneResizer.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/jfx3dviewer/TimelineController.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/jfx3dviewer/TimelineDisplay.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/jfx3dviewer/Xform.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/shape3d/PolygonMesh.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/shape3d/PolygonMeshView.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/shape3d/SkinningMesh.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/shape3d/SubdivisionMesh.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/shape3d/symbolic/OriginalPointArray.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/shape3d/symbolic/SubdividedPointArray.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/shape3d/symbolic/SymbolicPointArray.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/shape3d/symbolic/SymbolicPolygonMesh.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/shape3d/symbolic/SymbolicSubdivisionBuilder.java ! apps/samples/3DViewer/src/main/java/com/javafx/experiments/utils3d/DragSupport.java ! apps/samples/3DViewer/src/test/java/com/javafx/experiments/exporters/javasource/JavaSourceExporterTestApp.java ! apps/samples/3DViewer/src/test/java/com/javafx/experiments/importers/max/Test.java ! apps/samples/Ensemble8/src/app/java/ensemble/DocsPage.java ! apps/samples/Ensemble8/src/app/java/ensemble/EmbeddedApplication.java ! apps/samples/Ensemble8/src/app/java/ensemble/HomePage.java ! apps/samples/Ensemble8/src/app/java/ensemble/Page.java ! apps/samples/Ensemble8/src/app/java/ensemble/PageBrowser.java ! apps/samples/Ensemble8/src/app/java/ensemble/PlatformFeatures.java ! apps/samples/Ensemble8/src/app/java/ensemble/SampleCategory.java ! apps/samples/Ensemble8/src/app/java/ensemble/SampleInfo.java ! apps/samples/Ensemble8/src/app/java/ensemble/SamplePopoverTreeList.java ! apps/samples/Ensemble8/src/app/java/ensemble/ScrollEventSynthesizer.java ! apps/samples/Ensemble8/src/app/java/ensemble/SearchPopover.java ! apps/samples/Ensemble8/src/app/java/ensemble/SearchResultPopoverList.java ! apps/samples/Ensemble8/src/app/java/ensemble/control/BendingPages.java ! apps/samples/Ensemble8/src/app/java/ensemble/control/BookBend.java ! apps/samples/Ensemble8/src/app/java/ensemble/control/Popover.java ! apps/samples/Ensemble8/src/app/java/ensemble/control/PopoverTreeList.java ! apps/samples/Ensemble8/src/app/java/ensemble/control/SearchBox.java ! apps/samples/Ensemble8/src/app/java/ensemble/control/TitledToolBar.java ! apps/samples/Ensemble8/src/app/java/ensemble/playground/PlaygroundProperty.java ! apps/samples/Ensemble8/src/app/java/ensemble/samplepage/Description.java ! apps/samples/Ensemble8/src/app/java/ensemble/samplepage/PieChartDataVisualizer.java ! apps/samples/Ensemble8/src/app/java/ensemble/samplepage/PlaygroundNode.java ! apps/samples/Ensemble8/src/app/java/ensemble/samplepage/PlaygroundTabs.java ! apps/samples/Ensemble8/src/app/java/ensemble/samplepage/SampleContainer.java ! apps/samples/Ensemble8/src/app/java/ensemble/samplepage/SamplePage.java ! apps/samples/Ensemble8/src/app/java/ensemble/samplepage/SamplePageContent.java ! apps/samples/Ensemble8/src/app/java/ensemble/samplepage/SimpleHSBColorPicker.java ! apps/samples/Ensemble8/src/app/java/ensemble/samplepage/SourcePage.java ! apps/samples/Ensemble8/src/app/java/ensemble/samplepage/SourceTab.java ! apps/samples/Ensemble8/src/app/java/ensemble/samplepage/XYDataVisualizer.java ! apps/samples/Ensemble8/src/app/java/ensemble/search/ClasspathDirectory.java ! apps/samples/Ensemble8/src/app/java/ensemble/search/DocumentType.java ! apps/samples/Ensemble8/src/app/java/ensemble/search/IndexSearcher.java ! apps/samples/Ensemble8/src/app/java/ensemble/search/SearchResult.java ! apps/samples/Ensemble8/src/app/java/ensemble/util/FeatureChecker.java ! apps/samples/Ensemble8/src/app/java/ensemble/util/Utils.java ! apps/samples/Ensemble8/src/compiletime/java/ensemble/compiletime/BuildSamplesList.java ! apps/samples/Ensemble8/src/compiletime/java/ensemble/compiletime/CodeGenerationUtils.java ! apps/samples/Ensemble8/src/compiletime/java/ensemble/compiletime/EnsembleCompiletimeMain.java ! apps/samples/Ensemble8/src/compiletime/java/ensemble/compiletime/Sample.java ! apps/samples/Ensemble8/src/compiletime/java/ensemble/compiletime/SampleCategory.java ! apps/samples/Ensemble8/src/compiletime/java/ensemble/compiletime/search/BuildEnsembleSearchIndex.java ! apps/samples/Ensemble8/src/compiletime/java/ensemble/compiletime/search/DocumentType.java ! apps/samples/Ensemble8/src/compiletime/java/ensemble/compiletime/search/DocumentationIndexer.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/interpolator/InterpolatorApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/timeline/TimelineApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/timelineevents/TimelineEventsApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/transitions/fadetransition/FadeTransitionApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/transitions/filltransition/FillTransitionApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/transitions/paralleltransition/ParallelTransitionApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/transitions/pathtransition/PathTransitionApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/transitions/pausetransition/PauseTransitionApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/transitions/rotatetransition/RotateTransitionApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/transitions/scaletransition/ScaleTransitionApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/transitions/sequentialtransition/SequentialTransitionApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/transitions/stroketransition/StrokeTransitionApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/animation/transitions/translatetransition/TranslateTransitionApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/area/audio/AudioAreaChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/area/chart/AreaChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/area/curvefitted/CurveFittedAreaChart.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/area/curvefitted/CurveFittedAreaChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/area/stacked/StackedAreaChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/bar/audio/AudioBarChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/bar/chart/BarChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/bar/horizontal/HorizontalBarChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/bar/image/ImageBarChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/bar/stacked/StackedBarChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/bubble/BubbleChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/candlestick/Candle.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/candlestick/CandleStickChart.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/candlestick/CandleStickChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/candlestick/CandleStickExtraValues.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/candlestick/TooltipContent.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/line/category/CategoryLineChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/line/chart/LineChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/line/stock/StockLineChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/pie/chart/PieChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/pie/drilldown/DrilldownPieChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/scatter/animated/LiveScatterChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/charts/scatter/chart/ScatterChartApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/accordion/AccordionApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/button/colorbutton/ColorButtonApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/button/graphicbutton/GraphicButtonApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/button/pillbutton/PillButtonApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/checkbox/CheckBoxApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/choicebox/ChoiceBoxApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/colorpicker/ColorPickerApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/datepicker/DatePickerApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/hyperlink/HyperLinkApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/listview/horizontallistview/HorizontalListViewApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/listview/listviewcellfactory/ListViewCellFactoryApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/listview/listviewcellfactory/MoneyFormatCell.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/listview/simplelistview/SimpleListViewApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/menu/MenuApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/pagination/PaginationApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/progressbar/ProgressBarApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/progressindicator/ProgressIndicatorApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/radiobutton/RadioButtonApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/scrollbar/ScrollBarApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/splitpane/HiddenSplitPaneApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/tab/TabPaneApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/tablecellfactory/Person.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/tablecellfactory/TableCellFactoryApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/tableview/Person.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/tableview/TableViewApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/advancedlabel/AdvancedLabelApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/insettext/InsetTextApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/searchbox/SearchBox.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/searchbox/SearchBoxApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/simplelabel/SimpleLabelApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/textfield/TextFieldApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/textflow/TextFlowApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/textvalidator/TextInputValidatorPane.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/textvalidator/TextValidatorApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/textvalidator/ValidationEvent.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/textvalidator/ValidationResult.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/textvalidator/Validator.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/text/textvalidator/ValidatorPane.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/togglebutton/ToggleButtonApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/toolbar/styledtoolbar/StyledToolBarApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/toolbar/toolbar/ToolBarApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/treeview/TreeViewApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/controls/webview/WebViewApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/canvas/FireworksApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/canvas/Particle.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/canvas/SanFranciscoFireworks.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/colorfulcircles/ColorfulCirclesApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/digitalclock/Clock.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/digitalclock/Digit.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/digitalclock/DigitalClockApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/displayshelf/DisplayShelf.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/displayshelf/DisplayShelfApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/displayshelf/PerspectiveImage.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/effects/dropshadow/DropShadowApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/effects/gaussianblur/GaussianBlurApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/effects/innershadow/InnerShadowApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/effects/reflection/ReflectionApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/effects/sepiatone/SepiaToneApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/gauge/SpeedGaugeApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/images/imagecreation/ImageCreationApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/images/imageoperator/ImageOperationApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/images/imageproperties/ImagePropertiesApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/paints/color/ColorApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/paints/lineargradient/LinearGradientApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/paints/radialgradient/RadialGradientApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/puzzle/Desk.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/puzzle/Piece.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/puzzle/PuzzlePiecesApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/shapes/arc/ArcApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/shapes/circle/CircleApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/shapes/cubiccurve/CubicCurveApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/shapes/ellipse/EllipseApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/shapes/line/LineApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/shapes/path/PathApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/shapes/polygon/PolygonApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/shapes/polyline/PolylineApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/shapes/quadcurve/QuadCurveApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/shapes/rectangle/RectangleApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/stopwatch/Dial.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/stopwatch/DigitalClock.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/stopwatch/StopWatchApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/stopwatch/StopWatchButton.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics2d/stopwatch/Watch.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics3d/cube/Cube.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics3d/cube/CubeApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics3d/cubesystem/Cube.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics3d/cubesystem/SphereSystemApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics3d/cubesystem/Xform.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics3d/cubesystem/Xsphere.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics3d/simple3dbox/Simple3DBoxApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics3d/xylophone/Xform.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/graphics3d/xylophone/XylophoneApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/changelistener/ChangeListenerApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/concurrency/service/DailySales.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/concurrency/service/GetDailySalesService.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/concurrency/service/GetDailySalesTask.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/concurrency/service/ServiceApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/concurrency/task/DailySales.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/concurrency/task/GetDailySalesTask.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/concurrency/task/TaskApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/fxml/Authenticator.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/fxml/FXMLLoginDemoApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/fxml/LoginController.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/fxml/ProfileController.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/fxml/User.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/observablelist/ObservableListApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/stringbinding/StringBindingApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/swing/SampleTableModel.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/swing/SwingInterop.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/swing/SwingInteropApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/swing/SwingInteropService.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/language/swing/SwingInteropTask.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/layout/anchorpane/AnchorPaneApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/layout/borderpane/BorderPaneApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/layout/flowpane/FlowPaneApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/layout/gridpane/GridPaneApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/layout/hbox/HBoxApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/layout/stackpane/StackPaneApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/layout/tilepane/TilePaneApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/layout/vbox/VBoxApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/advancedmedia/AdvancedMediaApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/advancedmedia/MediaControl.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/alphamediaplayer/AlphaMediaPlayerApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/alphamediaplayer/PlanetaryPlayerPane.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/audioclip/AudioClipApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/overlaymediaplayer/OverlayMediaPlayerApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/overlaymediaplayer/PlayerPane.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/streamingmediaplayer/PlayerPane.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/media/streamingmediaplayer/StreamingMediaPlayerApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/advancedstage/AdvancedStageApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/customnode/CustomNodeApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/customnode/MyNode.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/cursor/CursorApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/keyevent/KeyEventApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/keystrokemotion/KeyStrokeMotionApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/keystrokemotion/LettersPane.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/mouseevent/MouseEventApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/multitouch/MultiTouchApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/multitouch/MultiTouchImageView.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/events/multitouch/MultiTouchPane.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/nodeproperties/NodePropertiesApp.java ! apps/samples/Ensemble8/src/samples/java/ensemble/samples/scenegraph/stage/StageApp.java ! apps/samples/Modena/src/main/java/modena/Modena.java ! apps/samples/Modena/src/main/java/modena/SamplePageNavigation.java ! buildSrc/src/main/antlr/JSL.g ! modules/controls/src/android/java/com/sun/javafx/scene/control/skin/TextAreaSkinAndroid.java ! modules/controls/src/android/java/com/sun/javafx/scene/control/skin/TextFieldSkinAndroid.java ! modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/DatePickerBehavior.java ! modules/graphics/src/android/java/com/oracle/dalvik/DalvikLauncher.java ! modules/graphics/src/android/java/com/oracle/dalvik/FXActivity.java ! modules/graphics/src/android/java/com/oracle/dalvik/InternalWebView.java ! modules/graphics/src/android/java/com/oracle/dalvik/JavaSELauncher.java ! modules/graphics/src/android/java/com/oracle/dalvik/Launcher.java ! modules/graphics/src/main/java/com/sun/glass/ui/monocle/NativeScreen.java ! modules/graphics/src/main/java/com/sun/glass/ui/monocle/headless/HeadlessScreen.java ! modules/graphics/src/main/java/com/sun/glass/ui/swt/CustomTransfer.java ! modules/graphics/src/main/java/com/sun/glass/ui/swt/SWTApplication.java ! modules/graphics/src/main/java/com/sun/glass/ui/swt/SWTClipboard.java ! modules/graphics/src/main/java/com/sun/glass/ui/swt/SWTCursor.java ! modules/graphics/src/main/java/com/sun/glass/ui/swt/SWTMenuBarDelegate.java ! modules/graphics/src/main/java/com/sun/glass/ui/swt/SWTMenuDelegate.java ! modules/graphics/src/main/java/com/sun/glass/ui/swt/SWTPixels.java ! modules/graphics/src/main/java/com/sun/glass/ui/swt/SWTRobot.java ! modules/graphics/src/main/java/com/sun/glass/ui/swt/SWTTimer.java ! modules/graphics/src/main/java/com/sun/glass/ui/swt/SWTView.java ! modules/graphics/src/main/java/com/sun/glass/ui/swt/SWTWindow.java ! modules/graphics/src/main/java/com/sun/glass/ui/swt/swtPlatformFactory.java ! modules/graphics/src/main/native-glass/lens/android/com_oracle_dalvik_FXActivity.h ! modules/graphics/src/main/native-glass/lens/android/com_oracle_dalvik_FXActivity_InternalSurfaceView.h ! modules/web/src/ios/java/javafx/scene/web/ExportedJavaObject.java ! modules/web/src/ios/java/javafx/scene/web/JS2JavaBridge.java ! modules/web/src/ios/java/javafx/scene/web/JSONDecoder.java ! modules/web/src/ios/java/javafx/scene/web/JSONEncoder.java ! tests/golden-image-suite/src/modena/Modena.java From hang.vo at oracle.com Wed Jun 18 23:03:49 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Wed, 18 Jun 2014 23:03:49 +0000 Subject: hg: openjfx/8u-dev/rt: 2 new changesets Message-ID: <201406182304.s5IN46o8003468@aojmv0008> Changeset: 34c13f9f4646 Author: hudson Date: 2014-06-18 08:39 -0700 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/34c13f9f4646 Added tag 8u20-b19 for changeset 54a8fee7f46e ! .hgtags Changeset: ee1732211131 Author: kcr Date: 2014-06-18 16:00 -0700 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/ee1732211131 Automated merge with ssh://jfxsrc.us.oracle.com//javafx/8u/master/jfx/rt From tomas.mikula at gmail.com Wed Jun 18 23:44:36 2014 From: tomas.mikula at gmail.com (Tomas Mikula) Date: Thu, 19 Jun 2014 01:44:36 +0200 Subject: RichTextFX news Message-ID: Hi all, I would like to briefly inform about the recent additions in RichTextFX [1]. RichTextFX is a text area that supports styled text. Its original goal is to support code editing. To this end, it now features: 1) Displaying line numbers and, more generally, any graphic in front of each line. This can be used to implement, for example, breakpoint toggles on lines of code. 2) Positioning a popup window relative to the caret or selection. Can be used to position an autocompletion box. 3) Getting the index of a character under the mouse, when the mouse stays still for a specified period of time. Can be used to display custom tooltips whose content depends on the word/code under the mouse. Best Regards, Tomas [1] http://www.fxmisc.org/richtext/ From hang.vo at oracle.com Thu Jun 19 00:03:17 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Thu, 19 Jun 2014 00:03:17 +0000 Subject: hg: openjfx/8u-dev/rt: [doc-only] Fix RT-3149: description of strokeDashArray is unclear Message-ID: <201406190003.s5J03T7G013592@aojmv0008> Changeset: 7e131d898531 Author: flar Date: 2014-06-18 16:54 -0700 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/7e131d898531 [doc-only] Fix RT-3149: description of strokeDashArray is unclear ! modules/graphics/src/main/docs/javafx/scene/shape/doc-files/strokedasharray.png ! modules/graphics/src/main/java/javafx/scene/shape/Shape.java From hang.vo at oracle.com Thu Jun 19 00:47:55 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Thu, 19 Jun 2014 00:47:55 +0000 Subject: hg: openjfx/8u-dev/rt: [doc-only] Fix RT-32425: remove confusing documentation about strokeText drawing text relative to top left corner Message-ID: <201406190048.s5J0m6ao019484@aojmv0008> Changeset: fa4f2204bfc5 Author: flar Date: 2014-06-18 17:42 -0700 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/fa4f2204bfc5 [doc-only] Fix RT-32425: remove confusing documentation about strokeText drawing text relative to top left corner ! modules/graphics/src/main/java/javafx/scene/canvas/GraphicsContext.java From hang.vo at oracle.com Thu Jun 19 09:48:00 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Thu, 19 Jun 2014 09:48:00 +0000 Subject: hg: openjfx/8u-dev/rt: [JAVADOC-ONLY] RT-33600 [Timeline, Javadoc]: Javadocs should be more clear on references made and other things Message-ID: <201406190948.s5J9mAjD004446@aojmv0008> Changeset: 1e5d13781725 Author: Martin Sladecek Date: 2014-06-19 11:42 +0200 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/1e5d13781725 [JAVADOC-ONLY] RT-33600 [Timeline, Javadoc]: Javadocs should be more clear on references made and other things Also improved other javadoc related to references ! modules/base/src/main/java/javafx/beans/binding/Binding.java ! modules/base/src/main/java/javafx/beans/property/BooleanPropertyBase.java ! modules/base/src/main/java/javafx/beans/property/Property.java ! modules/graphics/src/main/java/javafx/animation/Timeline.java From felix.bembrick at gmail.com Thu Jun 19 10:09:25 2014 From: felix.bembrick at gmail.com (Felix Bembrick) Date: Thu, 19 Jun 2014 20:09:25 +1000 Subject: JavaFX at JavaOne 2014 Message-ID: There's an impressive list of JavaFX-related content at this year's JavaOne. Good to see both iOS and Android featured! Enterprise JavaFX [CON2341] JavaFX offers a lot of awesome features for creating modern, interactive user interfaces. But in addition to a shiny UI, there are other important issues that must be ... View More Integrating Swing with JavaFX [CON3173] This session describes techniques that enable Swing and JavaFX to work together. JavaFX Everywhere [BOF1578] This session shows the current state of JavaFX on different platforms such as desktops, Raspberry Pi, i.MX6, and some mobile platforms. The session is based on a demo that ...View More Test-Driven Development with JavaFX [CON4599] This session presents existing testing tools and frameworks in their current stage of development. It compares the capabilities and the kinds of impacts of existing projects. ...View More Enterprise JavaFX with OpenDolphin [TUT2257] Enterprise Java applications run on the server. They still need a display, though, and the most capable one is JavaFX on the desktop. OpenDolphin introduces a shared ... View More JavaFX 8: New and Noteworthy [CON3255] Many new features were added to JavaFX for JDK8. JavaFX is now part of the Oracle JDK, so you can make use of these features with a minimum of fuss. Come to this session to ... View More JavaFX 3-D Animation: Bringing Duke to Life [CON2903] This session delves into 3-D animation in JavaFX, including the process by which Duke was brought to life in the 3-D animated chess demo at JavaOne 2013. Concepts covered are ...View More Lambda-izing JavaFX [CON3248] One of the best things about lambda is that it is backward-compatible with inner classes. If an inner class provides a single abstract method (SAM), a lambda can be ... View More JavaFX CSS API [TUT3227] This session provides an introduction to the JavaFX CSS API, with details on how to use the API to add CSS styles to JavaFX controls and nodes. CSS is a powerful feature in ... View More The JavaFX Community and Ecosystem [CON3473] Do you want to start working with JavaFX but don?t know where you can find all the cool tutorials and open source APIs? This session is the perfect place to be! Leading up to ... View More Text Rendering Quality in JavaFX [BOF3221] When it comes to text rendering, there is no single solution that will please all eyes. This BOF discusses the current text rendering technologies on JavaFX and explores ... ... View More Porting JavaFX Embedded [BOF3305] This BOF covers porting JavaFX Embedded to new platforms. Come meet with some of the team and learn about the inside of JavaFX. Swing Away! Move to JavaFX 8 and the NetBeans Platform [TUT2372] The NetBeans platform is known for its comprehensive window framework and loosely coupled architecture. JavaFX offers a rich set of visually appealing GUI components. This ...View More JavaFX Coding Playground (JavaFX-Based Live Editor Tool) [BOF2730] The past few years have seen various online code playgrounds that offer ways to experiment with browser-based client-side code (HTML5) to enable Web developers to rapidly ... ... View More The New JavaFX Accessibility API [CON3193] This complete presentation on the new JavaFX Accessibility API proposal is ideal for developers using the JavaFX Control Library who need to enhance the default accessibility ...View More Creating Amazing Interactive Visualizations with JavaFX [CON2951] This session explores the visual expressiveness of JavaFX and discusses how to create highly interactive and dynamic visualizations. Among other things, it takes a look at ... View More Reactive Modeling of Automotive User Interfaces with JavaFX [CON3700] User interfaces for automotive infotainment systems are developed for various models, brands, and markets at Volkswagen Group. Inspired by an OSGi-based app framework from ... View More Introduction to JavaFX Scenic View [BOF3066] Don?t miss this introduction to the Scenic View tool, which enables you to explore how a JavaFX scene graph is laid out, in real time. By the end of this BOF, you should be ... View More Build, Test, and Deploy JavaFX Applications with Ease [CON3553] Why is it that there are so many different options in the JVM space for building web applications but so few when it comes to desktop applications? This presentation ... View More JavaFX at Eclipse.org [CON4737] Isn't Eclipse only about SWT? This is the main conception you?ll hear when talking with people about Eclipse. Although it?s been true for a long time, it has been changing ... View More Building Custom JavaFX Controls [CON3064] Come get an overview of how to build UI controls in JavaFX, ranging from a simplistic approach to a fully baked approach designed for reusability. This is a code-heavy ... View More Running JavaFX Applications on Android [CON1804] Over the past several years, JavaFX has established itself as a great platform for creating highly interactive applications. JavaFX is supported on desktop systems and ... View More JavaFX Embedded: Graphics in an Internet of Things World [CON3307] JavaFX Embedded brings modern Java-based graphics to a range of Internet of Things devices. This session demonstrates the capabilities and the range of performance of JavaFX ... View More Productive JavaFX 8 [CON2265] JavaFX is included with JDK 1.8, supports CSS 3 skinning and data binding, and comes with a WYSIWYG editor: the Scene Builder. In this session, a ... View More JavaFX Versus HTML5 [CON3258] This presentation takes a pragmatic approach to comparing JavaFX and HTML5, using an application written in JavaFX versus the same functionality written in HTML5 to ... View More NASA Mission Software Development on the Eights: Java 8, JavaFX 8, and NetBeans 8 [CON1994] The latest Java and JavaFX technologies are very attractive software platforms for customers involved in space mission operations such as those of NASA and the US Air Force. ... View More Be in Control of Your JavaFX Mission [CON2262] Starting with JDK 8u20, Java Flight Recorder (JFR) and Java Mission Control (JMC) can help you look under the hood of the JavaFX runtime to better understand the behavior of ... View More Real-Time Financial Applications Using JavaFX [CON7645] JavaFX, the successor to Swing, is the toolkit for creating rich client applications across multiple platforms. This session presents an overview of how Celer Technologies ... View More JavaFX in the Cloud with OpenDolphin [CON2179] Cloud applications run on the server. They still need a display, though, and the most capable one is JavaFX on the desktop. OpenDolphin introduces a shared presentation model ... View More JavaFX 3D: Advanced Application Development [CON1993] JavaFX 3D usage has already begun to find a home within the Java ecosystem. In this session, a panel of JavaFX 3D experts provides live demonstrations of software tools that ...View More Building Java Applications with JavaFX 8 and Java EE 7 [CON2150] The combination of JavaFX 8 for the client side and Java EE 7 for the server side can enable developers to build hybrid applications never seen before. With JavaFX?s ability ... View More Packaging Your JavaFX Apps for the Mac and the Mac App Store [CON2228] Getting your JavaFX app into the hands of end users is often as important as writing the app in the first place. This session outlines the processes, tools (including the ... ... View More Developing JavaFX RCP with the Eclipse4 Application Platform [TUT4874] Eclipse4 is the new runtime platform the Eclipse IDE is built upon. It is the successor to Eclipse3.x and enables people to develop RCP applications not only with SWT but ... ... View More Create the Game 2048 with Java 8 and JavaFX [HOL3244] By developing the famous game 2048 with JavaFX and Java 8 in this hands-on lab session, you will encounter several new language features such as Stream API, lambda ... View More Smart UIs for Mobile and Embedded in JavaFX [BOF3453] You need a shiny, cool UI for embedded devices? It should be optimized for touch? It should be responsive? It should be configurable? It should be based on JavaFX? Great! ... ... View More Lessons Learned in Developing a NetBeans PDF Viewer Plug-in in JavaFX [BOF2317] Both the NetBeans platform and desktop Java have changed considerably for the better in the last few years, which prompted IDR Solutions to take advantage of both to write a ... View More JavaFX Controls: Debugging Controls [BOF3234] Is there a bug in your code or in the runtime? Debugging JavaFX can be difficult. Knowing where and when to set breakpoints in runtime code can help narrow it down, as this ... View More Where?s My UI? The 2014 JavaOne Web App UI Smackdown [CON2801] The original JavaOne web application smackdown was nine years ago now, and can you believe that we as an industry are still trying to figure it out? Of course you can. So ... ... View More Create JavaFX Layouts Like a Boss [CON6149] This session provides a thorough explanation of how to use MigLayout, an open source layout manager that is available for Swing, SWT, Android, and QT and is now also fully ... View More Building Nonblocking JavaFX 8 Applications with JacpFX [CON1823] Event bus, message passing, and async execution are concepts that are getting more and more popular for server-side applications. JacpFX brings this approach to the client, ... View More How to Build the Game 2048 with JavaFX and Java 8: Lessons Learned[CON2710] A trending game called 2048 has gotten a lot of attention this year, with several implementations for mobile smartphones and tablets as well as online JavaScript versions. ... View More Tweet for Beer! Beer Tap Powered by Java Goes Internet of Things and JavaFX [CON2122] Be warned! In this session, attendees over 21 might get drunk. It demonstrates, end-to-end, how to DIY a Java-powered beer tap. The presentation shows you a visual Java SE 8 ... View More Nashorn: Content Developer?s Guide to JavaScript and JavaFX [CON3188] Nashorn is the new JavaScript engine released with JDK8. One of Nashorn?s main features is the ability to seamlessly connect to existing Java and JavaFX libraries. This ... ... View More Meet the Oracle Java and JavaFX Client Teams [BOF3297] This BOF is an excellent opportunity to meet development engineers from the Oracle JavaFX, AWT/Swing, and Java 2D teams. It?s expected to be a lively discussion about the ... ... View More Gantt Get No Satisfaction: Until JavaFX, ControlsFX, and the Time API Rocked the Scene [CON1820] FlexGantt is a very complex and highly specialized custom Gantt chart control initially written for Swing and now reimplemented for JavaFX. This session compares the two ... ... View More JavaFX Packager Tool Integration Deep Dive [BOF2248] The JavaFX Packager has a new API in 8u20 to ease development for tool and IDE vendors. This BOF dives into the deep technical details of how the new API works and shows how ...View More Rapid Internet of Things UI with JavaFX and Scene Builder [CON6366] This session shows how to use Scene Builder and JavaFX to rapidly prototype, evolve, and deploy exciting embedded UIs for the Internet of Things. It explores using Scene ... ... View More JavaFX on Your Wall, in Your Car, or on a Plane [CON6353] Fast and sexy, JavaFX is the perfect toolkit for creating cool UIs for embedded applications such as on-wall displays, in-car dashboards, or in-flight entertainment systems. ... View More JavaFX CSS: Hacking Unsupported Features [CON3275] There are some CSS features that aren?t supported yet, but that shouldn?t stop you from rolling your own. This session shows how to use some simple hacks to make use of ... ...View More Pi on Wheels: DIY Robot for Teaching Java in the Context of the Internet of Things [CON5199] The Pi on Wheels is an affordable open source DIY robot that is ideal for teaching Java-related technologies in the context of the Internet of Things. It can be controlled ... View More In Control with ControlsFX [CON2079] ControlsFX is an open source project for JavaFX that aims to provide high-quality UI controls and other tools to complement the core JavaFX distribution. It was developed for ... View More Apache TomEE, Java EE Web Profile, and More on Tomcat [CON6782] Announced at JavaOne 2011 and winning a JavaOne Rock Star award in 2012 and 2013, Apache TomEE combines the simplicity of Tomcat with the power of Java EE. TomEE offers Java ... View More GlassFish Community BOF [BOF3303] The GlassFish community has had a tradition of getting together at JavaOne for the past few years. Don?t miss this opportunity to meet key members of the Oracle GlassFish ... View More RIA Technologies and Frameworks Panel [CON2600] In this session, a panel discusses the different types of RIA technologies and frameworks: Swing, JavaFX, and HTML5. The questions to be discussed include the following: What ...View More Jetty Features [BOF2237] The Jetty server has added some exciting new features since the last JavaOne, including HTTP2, Servlet 3.1, and quick start. This BOF session introduces these features, gains ...View More Plugging into the Java Compiler [CON4265] The Java compiler enables plug-ins (annotation processors) to analyze source code and generate source code to be compiled in the same compilation job. This powerful technique ...View More ZombieTime: JSR 310 for the Undead [CON4688] Surviving as a zombie is tough: with the constant risks of sunlight, fire, and pesky mobs, doing your job of infecting the local villagers can be deadly. Fortunately, with ... View More Java on iOS? Yes, You Can! [CON3698] The goal of the RoboVM open source project is to bring Java and other JVM languages to iOS devices without compromise. With its ahead-of-time compiler, RoboVM translates Java ...View More Practical Guide to Making Your Home Smart with Java ME Embedded [CON3996] This session focuses on practical usage of Java ME Embedded in our day-to-day life. Live coding and a real demo with home electronics such as an electronic lamp, heater, or ... View More SnapCoding for Education [CON2261] SnapCode is a new free IDE for education that helps students create animations, games, and apps by dragging puzzle pieces to create Java and JavaFX programs. It has the ease ...View More Lambda Programming Laboratory [HOL3373] Interested in trying out the new lambda feature in Java 8? If so, this ?higher-order lab? is for you. Participants will use JDK 8 and NetBeans to work on exercises intended ... View More Do-It-Yourself Usability Design for Developers [CON1712] Good user experience (UX) is essential in modern software, be it a web application based on Java EE, Spring, Play, or a similar framework or a rich client developed with ... View More Using Java 8 to Process Government Open Data [BOF6697] This session shows how the latest Java release has the tools for creating useful applications to help citizens to explore open data of their government. Governments generate ... View More Creating Our Robot Overlords: Autonomous Drone Development with Java and the Internet of Things [CON1863] Who wants a mindless drone? Teach it to ?think,? and it can do so much more. But how do you take it from Toy Story to Terminator? This session?s speakers discuss their new ... View More DataFX: From External Data to a UI Flow and Back [CON3640] The open source project DataFX 8 builds on the core principle of DataFX 2: make it easy for JavaFX developers to retrieve external data (using REST calls, database systems, ... View More Reactive UIs with the Model-View-ViewModel (MVVM) Pattern: Simple with Ankor.io [CON2403] In this session, you will learn about the benefits of using the MVVM design pattern for a state-of-the-art UI. You know MVC and why it is good to distinguish between the ... View More Extreme GUI Makeover [CON3474] This session is for all UI lovers, GUI enthusiasts, and friends of a modern and user-friendly user experience. JavaFX 8, a new UI toolkit that is part of Java 8, offers a lot ... View More NightHacking Gear Revealed! [CON4776] For the NightHacking Tour (http://nighthacking.com), this session?s speaker cruises around the world on a motorcycle, acting simultaneously as a presenter, demo expert, ... View More Stop! Or My Duke Will Shoot! [CON2178] The Internet of Things needs an application architecture that enables the gathering of information from many devices; aggregation and processing of that data, including human ...View More From felix.bembrick at gmail.com Thu Jun 19 10:18:45 2014 From: felix.bembrick at gmail.com (Felix Bembrick) Date: Thu, 19 Jun 2014 20:18:45 +1000 Subject: JavaFX at JavaOne 2014 In-Reply-To: References: Message-ID: Gosh, that formatted badly. Here's a link to the actual list: https://oracleus.activeevents.com/2014/connect/search.ww?eventRef=javaone#loadSearch-event=null&searchPhrase=JavaOne%2C+JavaFX&searchType=session&tc=0&sortBy=&p=&i(10009)=10111 On 19 June 2014 20:09, Felix Bembrick wrote: > There's an impressive list of JavaFX-related content at this year's > JavaOne. > > Good to see both iOS and Android featured! > > Enterprise JavaFX [CON2341] > JavaFX > offers a lot of awesome features for creating modern, interactive user > interfaces. But in addition to a shiny UI, there are other important issues > that must be ... View More > Integrating Swing with JavaFX [CON3173] > This > session describes techniques that enable Swing and JavaFX to work together. > JavaFX Everywhere [BOF1578] > This > session shows the current state of JavaFX on different platforms such as > desktops, Raspberry Pi, i.MX6, and some mobile platforms. The session is > based on a demo that ...View More > Test-Driven Development with JavaFX [CON4599] > This > session presents existing testing tools and frameworks in their current > stage of development. It compares the capabilities and the kinds of impacts > of existing projects. ...View More > Enterprise JavaFX with OpenDolphin [TUT2257] > Enterprise > Java applications run on the server. They still need a display, though, and > the most capable one is JavaFX on the desktop. OpenDolphin introduces a > shared ... View More > JavaFX 8: New and Noteworthy [CON3255] > Many > new features were added to JavaFX for JDK8. JavaFX is now part of the > Oracle JDK, so you can make use of these features with a minimum of fuss. > Come to this session to ... View More > JavaFX 3-D Animation: Bringing Duke to Life [CON2903] > This > session delves into 3-D animation in JavaFX, including the process by which > Duke was brought to life in the 3-D animated chess demo at JavaOne 2013. > Concepts covered are ...View More > Lambda-izing JavaFX [CON3248] > One > of the best things about lambda is that it is backward-compatible with > inner classes. If an inner class provides a single abstract method (SAM), a > lambda can be ... View More > JavaFX CSS API [TUT3227] > This > session provides an introduction to the JavaFX CSS API, with details on how > to use the API to add CSS styles to JavaFX controls and nodes. CSS is a > powerful feature in ... View More > The JavaFX Community and Ecosystem [CON3473] > Do > you want to start working with JavaFX but don?t know where you can find all > the cool tutorials and open source APIs? This session is the perfect place > to be! Leading up to ... View More > Text Rendering Quality in JavaFX [BOF3221] > When > it comes to text rendering, there is no single solution that will please > all eyes. This BOF discusses the current text rendering technologies on > JavaFX and explores ... ... View More > Porting JavaFX Embedded [BOF3305] > This > BOF covers porting JavaFX Embedded to new platforms. Come meet with some of > the team and learn about the inside of JavaFX. > Swing Away! Move to JavaFX 8 and the NetBeans Platform [TUT2372] > The > NetBeans platform is known for its comprehensive window framework and > loosely coupled architecture. JavaFX offers a rich set of visually > appealing GUI components. This ...View More > JavaFX Coding Playground (JavaFX-Based Live Editor Tool) [BOF2730] > The > past few years have seen various online code playgrounds that offer ways to > experiment with browser-based client-side code (HTML5) to enable Web > developers to rapidly ... ... View More > The New JavaFX Accessibility API [CON3193] > This > complete presentation on the new JavaFX Accessibility API proposal is ideal > for developers using the JavaFX Control Library who need to enhance the > default accessibility ...View More > Creating Amazing Interactive Visualizations with JavaFX [CON2951] > This > session explores the visual expressiveness of JavaFX and discusses how to > create highly interactive and dynamic visualizations. Among other things, > it takes a look at ... View More > Reactive Modeling of Automotive User Interfaces with JavaFX [CON3700] > User > interfaces for automotive infotainment systems are developed for various > models, brands, and markets at Volkswagen Group. Inspired by an OSGi-based > app framework from ... View More > Introduction to JavaFX Scenic View [BOF3066] > Don?t > miss this introduction to the Scenic View tool, which enables you to > explore how a JavaFX scene graph is laid out, in real time. By the end of > this BOF, you should be ... View More > Build, Test, and Deploy JavaFX Applications with Ease [CON3553] > Why > is it that there are so many different options in the JVM space for > building web applications but so few when it comes to desktop applications? > This presentation ... View More > JavaFX at Eclipse.org [CON4737] > Isn't > Eclipse only about SWT? This is the main conception you?ll hear when > talking with people about Eclipse. Although it?s been true for a long time, > it has been changing ... View More > Building Custom JavaFX Controls [CON3064] > Come > get an overview of how to build UI controls in JavaFX, ranging from a > simplistic approach to a fully baked approach designed for reusability. > This is a code-heavy ... View More > Running JavaFX Applications on Android [CON1804] > Over > the past several years, JavaFX has established itself as a great platform > for creating highly interactive applications. JavaFX is supported on > desktop systems and ... View More > JavaFX Embedded: Graphics in an Internet of Things World [CON3307] > JavaFX > Embedded brings modern Java-based graphics to a range of Internet of Things > devices. This session demonstrates the capabilities and the range of > performance of JavaFX ... View More > Productive JavaFX 8 [CON2265] > JavaFX > is included with JDK 1.8, supports CSS 3 skinning and data binding, and > comes with a WYSIWYG editor: the Scene Builder. In this session, a ... View > More > JavaFX Versus HTML5 [CON3258] > This > presentation takes a pragmatic approach to comparing JavaFX and HTML5, > using an application written in JavaFX versus the same functionality > written in HTML5 to ... View More > NASA Mission Software Development on the Eights: Java 8, JavaFX 8, and > NetBeans 8 [CON1994] > The > latest Java and JavaFX technologies are very attractive software platforms > for customers involved in space mission operations such as those of NASA > and the US Air Force. ... View More > Be in Control of Your JavaFX Mission [CON2262] > Starting > with JDK 8u20, Java Flight Recorder (JFR) and Java Mission Control (JMC) > can help you look under the hood of the JavaFX runtime to better understand > the behavior of ... View More > Real-Time Financial Applications Using JavaFX [CON7645] > JavaFX, > the successor to Swing, is the toolkit for creating rich client > applications across multiple platforms. This session presents an overview > of how Celer Technologies ... View More > JavaFX in the Cloud with OpenDolphin [CON2179] > Cloud > applications run on the server. They still need a display, though, and the > most capable one is JavaFX on the desktop. OpenDolphin introduces a shared > presentation model ... View More > JavaFX 3D: Advanced Application Development [CON1993] > JavaFX > 3D usage has already begun to find a home within the Java ecosystem. In > this session, a panel of JavaFX 3D experts provides live demonstrations of > software tools that ...View More > Building Java Applications with JavaFX 8 and Java EE 7 [CON2150] > The > combination of JavaFX 8 for the client side and Java EE 7 for the server > side can enable developers to build hybrid applications never seen before. > With JavaFX?s ability ... View More > Packaging Your JavaFX Apps for the Mac and the Mac App Store [CON2228] > Getting > your JavaFX app into the hands of end users is often as important as > writing the app in the first place. This session outlines the processes, > tools (including the ... ... View More > Developing JavaFX RCP with the Eclipse4 Application Platform [TUT4874] > Eclipse4 > is the new runtime platform the Eclipse IDE is built upon. It is the > successor to Eclipse3.x and enables people to develop RCP applications not > only with SWT but ... ... View More > Create the Game 2048 with Java 8 and JavaFX [HOL3244] > By > developing the famous game 2048 with JavaFX and Java 8 in this hands-on lab > session, you will encounter several new language features such as Stream > API, lambda ... View More > Smart UIs for Mobile and Embedded in JavaFX [BOF3453] > You > need a shiny, cool UI for embedded devices? It should be optimized for > touch? It should be responsive? It should be configurable? It should be > based on JavaFX? Great! ... ... View More > Lessons Learned in Developing a NetBeans PDF Viewer Plug-in in JavaFX > [BOF2317] > Both > the NetBeans platform and desktop Java have changed considerably for the > better in the last few years, which prompted IDR Solutions to take > advantage of both to write a ... View More > JavaFX Controls: Debugging Controls [BOF3234] > Is > there a bug in your code or in the runtime? Debugging JavaFX can be > difficult. Knowing where and when to set breakpoints in runtime code can > help narrow it down, as this ... View More > Where?s My UI? The 2014 JavaOne Web App UI Smackdown [CON2801] > The > original JavaOne web application smackdown was nine years ago now, and can > you believe that we as an industry are still trying to figure it out? Of > course you can. So ... ... View More > Create JavaFX Layouts Like a Boss [CON6149] > This > session provides a thorough explanation of how to use MigLayout, an open > source layout manager that is available for Swing, SWT, Android, and QT and > is now also fully ... View More > Building Nonblocking JavaFX 8 Applications with JacpFX [CON1823] > Event > bus, message passing, and async execution are concepts that are getting > more and more popular for server-side applications. JacpFX brings this > approach to the client, ... View More > How to Build the Game 2048 with JavaFX and Java 8: Lessons Learned > [CON2710] > A > trending game called 2048 has gotten a lot of attention this year, with > several implementations for mobile smartphones and tablets as well as > online JavaScript versions. ... View More > Tweet for Beer! Beer Tap Powered by Java Goes Internet of Things and > JavaFX[CON2122] > Be > warned! In this session, attendees over 21 might get drunk. It > demonstrates, end-to-end, how to DIY a Java-powered beer tap. The > presentation shows you a visual Java SE 8 ... View More > Nashorn: Content Developer?s Guide to JavaScript and JavaFX [CON3188] > Nashorn > is the new JavaScript engine released with JDK8. One of Nashorn?s main > features is the ability to seamlessly connect to existing Java and JavaFX > libraries. This ... ... View More > Meet the Oracle Java and JavaFX Client Teams [BOF3297] > This > BOF is an excellent opportunity to meet development engineers from the > Oracle JavaFX, AWT/Swing, and Java 2D teams. It?s expected to be a lively > discussion about the ... ... View More > Gantt Get No Satisfaction: Until JavaFX, ControlsFX, and the Time API > Rocked the Scene [CON1820] > FlexGantt > is a very complex and highly specialized custom Gantt chart control > initially written for Swing and now reimplemented for JavaFX. This session > compares the two ... ... View More > JavaFX Packager Tool Integration Deep Dive [BOF2248] > The > JavaFX Packager has a new API in 8u20 to ease development for tool and IDE > vendors. This BOF dives into the deep technical details of how the new API > works and shows how ...View More > Rapid Internet of Things UI with JavaFX and Scene Builder [CON6366] > This > session shows how to use Scene Builder and JavaFX to rapidly prototype, > evolve, and deploy exciting embedded UIs for the Internet of Things. It > explores using Scene ... ... View More > JavaFX on Your Wall, in Your Car, or on a Plane [CON6353] > Fast > and sexy, JavaFX is the perfect toolkit for creating cool UIs for embedded > applications such as on-wall displays, in-car dashboards, or in-flight > entertainment systems. ... View More > JavaFX CSS: Hacking Unsupported Features [CON3275] > There > are some CSS features that aren?t supported yet, but that shouldn?t stop > you from rolling your own. This session shows how to use some simple hacks > to make use of ... ...View More > Pi on Wheels: DIY Robot for Teaching Java in the Context of the Internet > of Things [CON5199] > The > Pi on Wheels is an affordable open source DIY robot that is ideal for > teaching Java-related technologies in the context of the Internet of > Things. It can be controlled ... View More > In Control with ControlsFX [CON2079] > ControlsFX > is an open source project for JavaFX that aims to provide high-quality UI > controls and other tools to complement the core JavaFX distribution. It was > developed for ... View More > Apache TomEE, Java EE Web Profile, and More on Tomcat [CON6782] > Announced > at JavaOne 2011 and winning a JavaOne Rock Star award in 2012 and 2013, > Apache TomEE combines the simplicity of Tomcat with the power of Java EE. > TomEE offers Java ... View More > GlassFish Community BOF [BOF3303] > The > GlassFish community has had a tradition of getting together at JavaOne for > the past few years. Don?t miss this opportunity to meet key members of the > Oracle GlassFish ... View More > RIA Technologies and Frameworks Panel [CON2600] > In > this session, a panel discusses the different types of RIA technologies and > frameworks: Swing, JavaFX, and HTML5. The questions to be discussed include > the following: What ...View More > Jetty Features [BOF2237] > The > Jetty server has added some exciting new features since the last JavaOne, > including HTTP2, Servlet 3.1, and quick start. This BOF session introduces > these features, gains ...View More > Plugging into the Java Compiler [CON4265] > The > Java compiler enables plug-ins (annotation processors) to analyze source > code and generate source code to be compiled in the same compilation job. > This powerful technique ...View More > ZombieTime: JSR 310 for the Undead [CON4688] > Surviving > as a zombie is tough: with the constant risks of sunlight, fire, and pesky > mobs, doing your job of infecting the local villagers can be deadly. > Fortunately, with ... View More > Java on iOS? Yes, You Can! [CON3698] > The > goal of the RoboVM open source project is to bring Java and other JVM > languages to iOS devices without compromise. With its ahead-of-time > compiler, RoboVM translates Java ...View More > Practical Guide to Making Your Home Smart with Java ME Embedded [CON3996] > This > session focuses on practical usage of Java ME Embedded in our day-to-day > life. Live coding and a real demo with home electronics such as an > electronic lamp, heater, or ... View More > SnapCoding for Education [CON2261] > SnapCode > is a new free IDE for education that helps students create animations, > games, and apps by dragging puzzle pieces to create Java and JavaFX > programs. It has the ease ...View More > Lambda Programming Laboratory [HOL3373] > Interested > in trying out the new lambda feature in Java 8? If so, this ?higher-order > lab? is for you. Participants will use JDK 8 and NetBeans to work on > exercises intended ... View More > Do-It-Yourself Usability Design for Developers [CON1712] > Good > user experience (UX) is essential in modern software, be it a web > application based on Java EE, Spring, Play, or a similar framework or a > rich client developed with ... View More > Using Java 8 to Process Government Open Data [BOF6697] > This > session shows how the latest Java release has the tools for creating useful > applications to help citizens to explore open data of their government. > Governments generate ... View More > Creating Our Robot Overlords: Autonomous Drone Development with Java and > the Internet of Things [CON1863] > Who > wants a mindless drone? Teach it to ?think,? and it can do so much more. > But how do you take it from Toy Story to Terminator? This session?s > speakers discuss their new ... View More > DataFX: From External Data to a UI Flow and Back [CON3640] > The > open source project DataFX 8 builds on the core principle of DataFX 2: make > it easy for JavaFX developers to retrieve external data (using REST calls, > database systems, ... View More > Reactive UIs with the Model-View-ViewModel (MVVM) Pattern: Simple with > Ankor.io [CON2403] > In > this session, you will learn about the benefits of using the MVVM design > pattern for a state-of-the-art UI. You know MVC and why it is good to > distinguish between the ... View More > Extreme GUI Makeover [CON3474] > This > session is for all UI lovers, GUI enthusiasts, and friends of a modern and > user-friendly user experience. JavaFX 8, a new UI toolkit that is part of > Java 8, offers a lot ... View More > NightHacking Gear Revealed! [CON4776] > For > the NightHacking Tour (http://nighthacking.com), this session?s speaker > cruises around the world on a motorcycle, acting simultaneously as a > presenter, demo expert, ... View More > Stop! Or My Duke Will Shoot! [CON2178] > The > Internet of Things needs an application architecture that enables the > gathering of information from many devices; aggregation and processing of > that data, including human ...View More > > > From hang.vo at oracle.com Thu Jun 19 12:33:00 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Thu, 19 Jun 2014 12:33:00 +0000 Subject: hg: openjfx/8u-dev/rt: [SCENEBUILDER] Small tuning of sample code Message-ID: <201406191233.s5JCXBss027891@aojmv0008> Changeset: aaa59aad08d8 Author: yjoan Date: 2014-06-19 14:24 +0200 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/aaa59aad08d8 [SCENEBUILDER] Small tuning of sample code ! apps/scenebuilder/samples/IssueTrackingBiDi/src/issuetrackingbidi/model/TrackingServiceStub.java ! apps/scenebuilder/samples/IssueTrackingLite/src/issuetrackinglite/model/TrackingServiceStub.java From hang.vo at oracle.com Thu Jun 19 13:47:58 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Thu, 19 Jun 2014 13:47:58 +0000 Subject: hg: openjfx/8u-dev/rt: RT-37617-[Unit Tests] RotateTest and ScrollThresholdTest failed on Mac and Windows Message-ID: <201406191348.s5JDm9C7009272@aojmv0008> Changeset: 0a81b7ca983d Author: Elina Kleyman Date: 2014-06-19 16:31 +0300 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/0a81b7ca983d RT-37617-[Unit Tests] RotateTest and ScrollThresholdTest failed on Mac and Windows ! tests/system/src/test/java/com/sun/glass/ui/monocle/input/RotateTest.java ! tests/system/src/test/java/com/sun/glass/ui/monocle/input/ScrollThresholdTest.java From hang.vo at oracle.com Thu Jun 19 15:33:20 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Thu, 19 Jun 2014 15:33:20 +0000 Subject: hg: openjfx/8u-dev/rt: [Unit Tests] Excluding Rotate and ScrollThreshold tests on Windows and Mac Message-ID: <201406191533.s5JFXXkY025288@aojmv0008> Changeset: 599faf35014c Author: Elina Kleyman Date: 2014-06-19 18:27 +0300 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/599faf35014c [Unit Tests] Excluding Rotate and ScrollThreshold tests on Windows and Mac ! tests/system/src/test/java/com/sun/glass/ui/monocle/input/RotateTest.java ! tests/system/src/test/java/com/sun/glass/ui/monocle/input/ScrollThresholdTest.java From hang.vo at oracle.com Thu Jun 19 16:33:18 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Thu, 19 Jun 2014 16:33:18 +0000 Subject: hg: openjfx/8u-dev/rt: 2 new changesets Message-ID: <201406191633.s5JGXa51004008@aojmv0008> Changeset: 8beefabeda2d Author: Elina Kleyman Date: 2014-06-19 19:19 +0300 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/8beefabeda2d RT-37617 [Unit Tests] - Fixing RotateTest and ScrollThresholdTest on Linux desktop ! tests/system/src/test/java/com/sun/glass/ui/monocle/input/RotateTest.java ! tests/system/src/test/java/com/sun/glass/ui/monocle/input/ScrollTestBase.java ! tests/system/src/test/java/com/sun/glass/ui/monocle/input/ScrollThresholdTest.java Changeset: 152c43734a54 Author: kcr Date: 2014-06-19 09:24 -0700 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/152c43734a54 [TEST-ONLY] RT-37266: Need unit test that calls Platform.runLater from ShutdownHook Reviewed-by: anthony + tests/system/src/test/java/shutdowntest/Constants.java + tests/system/src/test/java/shutdowntest/ShutdownHookApp.java + tests/system/src/test/java/shutdowntest/ShutdownHookTest.java From david.grieve at oracle.com Thu Jun 19 18:27:13 2014 From: david.grieve at oracle.com (David Grieve) Date: Thu, 19 Jun 2014 14:27:13 -0400 Subject: [8u40] Review request: (RT-36510) [CSS] Reduce CssMetaData boilerplate code Message-ID: <53A32B81.5070403@oracle.com> I have attached some java files to RT-36510 that are aimed at reducing the amount of boiler-plate code needed to implement StyleableProperty and CssMetaData. The code is not complete - it can only create a StyleableProperty right now - but it is sufficiently far along to warrant a review. Please see https://javafx-jira.kenai.com/browse/RT-36510#comment-414209 for more information. Example with the RT-36510 code: public class MyButton extends Button implements StyleableSupplier { public MyButton(String text) { super(); getStyleClass().add("foo"); } public MyButton get() { return this; } public ObservableValue selectedProperty() { return (ObservableValue)selected; } public boolean isSelected() { return selected.getValue(); } public void setSelected(boolean isSelected) { selected.setValue(isSelected); } private final StyleableProperty selected = StyleablePropertyFactory.createStyleableBooleanProperty(this, "-my-selected", s -> ((MyButton) s).selected); @Override public List> getControlCssMetaData() { return StyleablePropertyFactory.getCssMetaData(this); } } The same example without the RT-36510 code: public class MyButton extends Button { public MyButton(String text) { super(); getStyleClass().add("foo"); } public ObservableValue selectedProperty() { return (ObservableValue)selected; } public boolean isSelected() { return selected.getValue(); } public void setSelected(boolean isSelected) { selected.setValue(isSelected); } private final StyleableProperty selected = new SimpleStyleableBooleanProperty(SELECTED); private static CssMetaData SELECTED = new CssMetaData("-my-selected", StyleConverter.getBooleanConverter(), Boolean.FALSE) { @Override public boolean isSettable(MyButton styleable) { return !((Property)styleable.selectedProperty()).isBound(); } @Override public StyleableProperty getStyleableProperty(MyButton styleable) { return styleable.selected; } }; private final static List> CSS_META_DATA; static { List> list = new ArrayList<>(Button.getClassCssMetaData()); list.add(SELECTED); CSS_META_DATA = Collections.unmodifiableList(list); } @Override public List> getControlCssMetaData() { return CSS_META_DATA; } } From hang.vo at oracle.com Thu Jun 19 20:32:55 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Thu, 19 Jun 2014 20:32:55 +0000 Subject: hg: openjfx/8u-dev/rt: RT-37608: [Android] updating dalvikInput.c Message-ID: <201406192033.s5JKX6NJ008233@aojmv0008> Changeset: 813422c0109f Author: ddhill Date: 2014-06-19 16:22 -0400 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/813422c0109f RT-37608: [Android] updating dalvikInput.c Cntributed-by: johanvos ! modules/graphics/src/main/native-glass/lens/dalvik/dalvikInput.c From jann.schneider at googlemail.com Thu Jun 19 21:24:52 2014 From: jann.schneider at googlemail.com (Jann Schneider) Date: Thu, 19 Jun 2014 23:24:52 +0200 Subject: Testing accessibility / sample apps Message-ID: <53A35524.6060209@googlemail.com> Hello all, As a blind java developer i'm interessted in testing the accessibility of JavaFX and maybe help to find some issues. I've just set up my build environment on my ubuntu 14.04 laptop and checked out the project files as described in the wiki. I could also set it up on a windows 7 with Jaws 15 and NVDa (don't know what the current version is) for comparison.. No i am wondering if there are some examples i could try? Regards Jann From fbrunnerlist at gmx.ch Thu Jun 19 22:35:21 2014 From: fbrunnerlist at gmx.ch (Florian Brunner) Date: Fri, 20 Jun 2014 00:35:21 +0200 Subject: Tutorials for Custom Controls? Message-ID: <93551232.EEhMHRl94T@andor> Hi, Earlier this year I added some Jira issues asking for more tutorials on how to write custom controls: https://javafx-jira.kenai.com/browse/RT-36437 Any chance we could get such tutorials? -Florian From jonathan.giles at oracle.com Thu Jun 19 22:38:13 2014 From: jonathan.giles at oracle.com (Jonathan Giles) Date: Fri, 20 Jun 2014 10:38:13 +1200 Subject: Tutorials for Custom Controls? In-Reply-To: <93551232.EEhMHRl94T@andor> References: <93551232.EEhMHRl94T@andor> Message-ID: <53A36655.7010403@oracle.com> Any official tutorial on how to write custom controls would be constrained to discussing public API. A better source of material is almost certainly recorded talks from conferences such as JavaOne and Devoxx. I've given such talks in recent years, as has Gerrit Grunwald. You should be able to find these sessions on the parleys.com website for free. -- Jonathan On 20/06/2014 10:35 a.m., Florian Brunner wrote: > Hi, > > Earlier this year I added some Jira issues asking for more tutorials on how to > write custom controls: > https://javafx-jira.kenai.com/browse/RT-36437 > > Any chance we could get such tutorials? > > -Florian From jonathan.giles at oracle.com Thu Jun 19 22:55:22 2014 From: jonathan.giles at oracle.com (Jonathan Giles) Date: Fri, 20 Jun 2014 10:55:22 +1200 Subject: Tutorials for Custom Controls? In-Reply-To: <93551232.EEhMHRl94T@andor> References: <93551232.EEhMHRl94T@andor> Message-ID: <53A36A5A.8060709@oracle.com> Oh, I should also note that Hendrik Ebbers has written a book on custom controls for JavaFX 8.0. I haven't read it yet (although my copy is hopefully on the way), but it could be a useful resource: http://www.amazon.com/Mastering-JavaFX-Controls-Hendrik-Ebbers/dp/0071833773/?&tag=nrbo-20 I was interviewed in it, so that must be worth the price of the book alone! ;-) -- Jonathan On 20/06/2014 10:35 a.m., Florian Brunner wrote: > Hi, > > Earlier this year I added some Jira issues asking for more tutorials on how to > write custom controls: > https://javafx-jira.kenai.com/browse/RT-36437 > > Any chance we could get such tutorials? > > -Florian From felipe.heidrich at oracle.com Thu Jun 19 23:10:43 2014 From: felipe.heidrich at oracle.com (Felipe Heidrich) Date: Thu, 19 Jun 2014 16:10:43 -0700 Subject: Testing accessibility / sample apps In-Reply-To: <53A35524.6060209@googlemail.com> References: <53A35524.6060209@googlemail.com> Message-ID: <92216B76-D488-44E7-81EC-6D2AD8344FC5@oracle.com> Hi Jann, Unfortunately Linux support is not in the plan for 8u40. Windows 7 is supported and we have recently fixed JAWS support (see https://javafx-jira.kenai.com/browse/RT-37530 and https://javafx-jira.kenai.com/browse/RT-37609). Unfortunately due to the 8u20 to 8u40 transition the code has not being released yet, but soon. The majority of our testing was done using Narrator. That said, I also tested NVDA lastest version on Windows 8 and I didn?t see any major problems. On the Mac we tested with VoiceOver. Regards, Felipe On Jun 19, 2014, at 2:24 PM, Jann Schneider wrote: > Hello all, > > As a blind java developer i'm interessted in testing the accessibility of JavaFX and maybe help to find some issues. > > I've just set up my build environment on my ubuntu 14.04 laptop and checked out the project files as described in the wiki. I could also set it up on a windows 7 with Jaws 15 and NVDa (don't know what the current version is) for comparison.. > > No i am wondering if there are some examples i could try? > > Regards Jann > > From felipe.heidrich at oracle.com Thu Jun 19 23:14:16 2014 From: felipe.heidrich at oracle.com (Felipe Heidrich) Date: Thu, 19 Jun 2014 16:14:16 -0700 Subject: Testing accessibility / sample apps In-Reply-To: <53A35524.6060209@googlemail.com> References: <53A35524.6060209@googlemail.com> Message-ID: <668D1B93-6645-4641-B8DF-F90AED8CB1C0@oracle.com> Hi all, I have emailed Jann directly earlier today with more information on accessibility, I believe that information can be useful to other users as well. Allow me to shared it: "Let me provide some additional information to help you get started: JavaFX is part of JDK and can be download here: https://jdk8.java.net/download.html 8u20 Build b19 is the last build in the 8u20 stream to include accessibility support. Sometime next month, when we start 8u40 builds, accessibility will part of it for good. We don?t have a specific application to test accessibility at the moment, any app using JavaFX native controls should be accessible (at least, the controls themselves). To start you can try the 'JavaFX Demos and Samples? also available at https://jdk8.java.net/download.html Ensemble8 is a nice app, but itself it is not designed with accessibility in mind (feel free to report bugs agains that too), scroll to the controls section where you can test which control individually. Charts are not accessible at the moment (but it is planned, RT-23916). Supported platforms: Mac 10.9, Windows 7 & 8. Important: you need to explicitly set -Djavafx.accessible=true before running on Windows 8 and Mac 10.9. For Windows 7 (and Mac 10.8) you must set -Djavafx.accessible.force=true. JAWS support: builds in the 8u20 stream do not support JAWS. It will be fixed for 8u40. See RT-37530. For report bugs use http://javafx-jira.kenai.com/ Project: Runtime Component: Accessibility If you have any questions about accessibility or JavaFX in general please use the mailing list: http://mail.openjdk.java.net/mailman/listinfo/openjfx-dev Lastly, we have a wiki https://wiki.openjdk.java.net/display/OpenJFX/Accessibility+Exploration. It is more of a scratchpad at the moment but it has a lot of good information on it." Felipe On Jun 19, 2014, at 2:24 PM, Jann Schneider wrote: > Hello all, > > As a blind java developer i'm interessted in testing the accessibility of JavaFX and maybe help to find some issues. > > I've just set up my build environment on my ubuntu 14.04 laptop and checked out the project files as described in the wiki. I could also set it up on a windows 7 with Jaws 15 and NVDa (don't know what the current version is) for comparison.. > > No i am wondering if there are some examples i could try? > > Regards Jann > > From hang.vo at oracle.com Thu Jun 19 23:18:25 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Thu, 19 Jun 2014 23:18:25 +0000 Subject: hg: openjfx/8u-dev/rt: RT-37593: [TreeTable] TreeTable item selection causes a NullPointerException (regression). Message-ID: <201406192318.s5JNIaN0002544@aojmv0008> Changeset: 779a56e5e4c4 Author: jgiles Date: 2014-06-20 10:01 +1200 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/779a56e5e4c4 RT-37593: [TreeTable] TreeTable item selection causes a NullPointerException (regression). Reviewed-by: kcr, snorthov ! modules/controls/src/main/java/javafx/scene/control/TreeItem.java ! modules/controls/src/test/java/javafx/scene/control/TreeTableViewTest.java From hang.vo at oracle.com Fri Jun 20 02:48:36 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Fri, 20 Jun 2014 02:48:36 +0000 Subject: hg: openjfx/2u/master/rt: 123 new changesets Message-ID: <201406200249.s5K2nMdH002732@aojmv0008> Changeset: 489caa3dfeb5 Author: David Grieve Date: 2013-06-25 13:57 -0400 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/489caa3dfeb5 RT-29975: key to lookup cached styles depended on which parent nodes had parent stylesheets. This led to cache misses because an identical scene-graph would have a different key simply because the node instances were different. Instead, the key can just use the list of parent stylesheets. ! javafx-ui-common/src/com/sun/javafx/css/StyleManager.java Changeset: cb06314b54b9 Author: David Grieve Date: 2013-06-27 10:19 -0400 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/cb06314b54b9 remove debug print left in from changeset 489caa3dfeb5 ! javafx-ui-common/src/com/sun/javafx/css/StyleManager.java Changeset: d34eb1f7e15d Author: hudson Date: 2013-06-27 11:16 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/d34eb1f7e15d Added tag 2.2.40-b31 for changeset ff55a1a6dfa5 ! .hgtags Changeset: 764cbe8a43e4 Author: kcr Date: 2013-07-02 13:57 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/764cbe8a43e4 Automated merge with ssh://jfxsrc.us.oracle.com//javafx/2.2.40/MASTER/jfx/rt Changeset: 053af337fe50 Author: hudson Date: 2013-07-03 18:29 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/053af337fe50 Added tag 2.2.40-b32 for changeset 764cbe8a43e4 ! .hgtags Changeset: 9f367d32aae3 Author: Lubomir Nerad Date: 2013-07-08 13:15 +0200 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/9f367d32aae3 Backport RT-16111: FileChooser: Need to be able to specify initial file name in save dialog ! javafx-ui-common/src/com/sun/javafx/tk/DummyToolkit.java ! javafx-ui-common/src/com/sun/javafx/tk/Toolkit.java ! javafx-ui-common/src/javafx/stage/FileChooser.java + javafx-ui-common/test/unit/javafx/stage/CommonDialogsTest.java ! test-stub-toolkit/src/com/sun/javafx/pgstub/StubToolkit.java Changeset: d944e0629295 Author: Lubomir Nerad Date: 2013-07-08 13:30 +0200 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/d944e0629295 Fixed since for FC initial file name ! javafx-ui-common/src/javafx/stage/FileChooser.java Changeset: 5ea4d80617e4 Author: hudson Date: 2013-07-10 18:36 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/5ea4d80617e4 Added tag 2.2.40-b33 for changeset d944e0629295 ! .hgtags Changeset: b836931cf020 Author: hudson Date: 2013-07-17 17:25 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/b836931cf020 Added tag 2.2.40-b34 for changeset 5ea4d80617e4 ! .hgtags Changeset: 0e6929a9a63d Author: mickf Date: 2013-07-26 18:17 +0100 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/0e6929a9a63d RT-31877 : Performance regression in CSS since 7u40 b32 - remove previous RT-29975 pushes ! javafx-ui-common/src/com/sun/javafx/css/StyleManager.java Changeset: e59950cadb51 Author: hudson Date: 2013-07-24 16:56 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/e59950cadb51 Added tag 2.2.40-b35 for changeset b836931cf020 ! .hgtags Changeset: 8d0655bd2163 Author: kcr Date: 2013-07-29 14:09 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/8d0655bd2163 Automated merge with ssh://jfxsrc.us.oracle.com//javafx/2.2.40/MASTER/jfx/rt Changeset: c2c325536f52 Author: hudson Date: 2013-07-31 15:38 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/c2c325536f52 Added tag 2.2.40-b36 for changeset 8d0655bd2163 ! .hgtags Changeset: aef521116893 Author: hudson Date: 2013-08-02 09:46 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/aef521116893 Added tag 2.2.40-b37 for changeset c2c325536f52 ! .hgtags Changeset: 34e462c596ce Author: hudson Date: 2013-08-07 11:09 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/34e462c596ce Added tag 2.2.40-b38 for changeset aef521116893 ! .hgtags Changeset: a8fcc0065eea Author: Lubomir Nerad Date: 2013-08-23 10:00 +0200 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/a8fcc0065eea Fix for RT-32394: Rendering Artifacts with Groups and Transformations ! javafx-ui-common/src/javafx/scene/Node.java ! javafx-ui-common/test/unit/javafx/scene/Parent_recomputeBounds_Test.java Changeset: 08f0ca557797 Author: hudson Date: 2013-08-09 18:06 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/08f0ca557797 Added tag 2.2.40-b39 for changeset 34e462c596ce ! .hgtags Changeset: 0dfc946e1d3c Author: hudson Date: 2013-08-16 08:40 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/0dfc946e1d3c Added tag 2.2.40-b40 for changeset 08f0ca557797 ! .hgtags Changeset: ed58843d2237 Author: hudson Date: 2013-08-21 17:02 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/ed58843d2237 Added tag 2.2.40-b41 for changeset 0dfc946e1d3c ! .hgtags Changeset: 9d70678d42d2 Author: hudson Date: 2013-08-24 23:23 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/9d70678d42d2 Added tag 2.2.40-b42 for changeset ed58843d2237 ! .hgtags Changeset: 5f2c8b072b29 Author: hudson Date: 2013-08-27 08:15 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/5f2c8b072b29 Added tag 2.2.40-b43 for changeset 9d70678d42d2 ! .hgtags Changeset: 434e1f2605a2 Author: kcr Date: 2013-08-31 11:00 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/434e1f2605a2 Automated merge with ssh://jfxsrc.us.oracle.com//javafx/2.2.40/MASTER/jfx/rt Changeset: 1d7c9e2e7ba5 Author: anashaty Date: 2013-09-03 20:38 +0400 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/1d7c9e2e7ba5 RT-3252: Indeterminate progress bar causes memory leak Reviewed-by: mickf,vkarnauk ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/ProgressBarSkin.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/ProgressIndicatorSkin.java Changeset: 35ef14b60ba4 Author: dmarkov Date: 2013-09-19 11:11 +0400 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/35ef14b60ba4 RT-32968: Memory leaked when using custom CSS file for JavaFX Reviewed-By: dgrieve, anashaty ! javafx-ui-common/src/com/sun/javafx/css/StyleManager.java ! javafx-ui-common/src/javafx/stage/Window.java Changeset: 8ec7f7f24b63 Author: anashaty Date: 2013-09-25 13:52 +0400 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/8ec7f7f24b63 RT-33047: Backport: Wrong widget is selected if another had focus before it Reviewed-by: jgiles,dmarkov ! javafx-ui-controls/src/com/sun/javafx/scene/control/behavior/ComboBoxBaseBehavior.java Changeset: e9bc9793d347 Author: hudson Date: 2013-07-02 15:23 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/e9bc9793d347 Added tag 2.2.45-b01 for changeset d34eb1f7e15d ! .hgtags Changeset: fb9231170967 Author: hudson Date: 2013-07-09 21:32 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/fb9231170967 Added tag 2.2.45-b02 for changeset e9bc9793d347 ! .hgtags Changeset: a148cf130207 Author: hudson Date: 2013-07-16 10:09 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/a148cf130207 Added tag 2.2.45-b03 for changeset fb9231170967 ! .hgtags Changeset: c8b10c32d9e5 Author: kcr Date: 2013-07-18 11:01 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/c8b10c32d9e5 Automated merge with ssh://jfxsrc.us.oracle.com//javafx/2.2.40/MASTER/jfx/rt ! .hgtags Changeset: 9de698e64a91 Author: hudson Date: 2013-07-23 12:38 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/9de698e64a91 Added tag 2.2.45-b04 for changeset c8b10c32d9e5 ! .hgtags Changeset: 3739ad4075e9 Author: kcr Date: 2013-07-29 15:46 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/3739ad4075e9 Automated merge with ssh://jfxsrc.us.oracle.com//javafx/2.2.40/MASTER/jfx/rt ! .hgtags Changeset: d866c14851eb Author: kcr Date: 2013-07-31 16:00 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/d866c14851eb Automated merge with ssh://jfxsrc.us.oracle.com//javafx/2.2.40/MASTER/jfx/rt ! .hgtags Changeset: f6b725b6db13 Author: hudson Date: 2013-08-01 09:30 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/f6b725b6db13 Added tag 2.2.45-b05 for changeset d866c14851eb ! .hgtags Changeset: 46e018bddc3f Author: kcr Date: 2013-08-07 12:24 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/46e018bddc3f Automated merge with ssh://jfxsrc.us.oracle.com//javafx/2.2.40/MASTER/jfx/rt ! .hgtags Changeset: 073e36862313 Author: hudson Date: 2013-08-08 11:03 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/073e36862313 Added tag 2.2.45-b06 for changeset 46e018bddc3f ! .hgtags Changeset: a6e335804e80 Author: Lubomir Nerad Date: 2013-08-09 09:50 +0200 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/a6e335804e80 Fix for RT-31739: Enhance clipboard clips + javafx-ui-common/src/com/sun/javafx/tk/LocalClipboard.java ! javafx-ui-common/src/com/sun/javafx/tk/Toolkit.java ! javafx-ui-common/src/javafx/scene/input/Clipboard.java Changeset: 5bc50b0916b5 Author: kcr Date: 2013-08-09 14:46 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/5bc50b0916b5 Automated merge with ssh://jfxsrc.us.oracle.com//javafx/2.2.45/MASTER/jfx/rt Changeset: e23e4054e61b Author: kcr Date: 2013-08-14 12:09 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/e23e4054e61b Automated merge with ssh://jfxsrc.us.oracle.com//javafx/2.2.40/MASTER/jfx/rt ! .hgtags Changeset: a9c11d0c5266 Author: hudson Date: 2013-08-15 07:55 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/a9c11d0c5266 Added tag 2.2.45-b07 for changeset e23e4054e61b ! .hgtags Changeset: 7865113cdb2b Author: kcr Date: 2013-08-19 11:42 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/7865113cdb2b Automated merge with ssh://jfxsrc.us.oracle.com//javafx/2.2.40/MASTER/jfx/rt ! .hgtags Changeset: fc1760c5e1b3 Author: hudson Date: 2013-08-20 10:51 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/fc1760c5e1b3 Added tag 2.2.45-b08 for changeset 7865113cdb2b ! .hgtags Changeset: 5c4a0e47513f Author: kcr Date: 2013-08-26 08:56 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/5c4a0e47513f Automated merge with ssh://jfxsrc.us.oracle.com//javafx/2.2.40/MASTER/jfx/rt ! .hgtags Changeset: 77b43ce86e20 Author: hudson Date: 2013-08-27 08:15 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/77b43ce86e20 Added tag 2.2.45-b09 for changeset 9d70678d42d2 ! .hgtags Changeset: fc2f6ee296f9 Author: kcr Date: 2013-08-31 09:44 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/fc2f6ee296f9 Automated merge with ssh://jfxsrc.us.oracle.com//javafx/2.2.40/MASTER/jfx/rt ! .hgtags Changeset: c76ec783536b Author: hudson Date: 2013-09-02 10:49 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/c76ec783536b Added tag 2.2.45-b09 for changeset 5c4a0e47513f ! .hgtags Changeset: 5da35d9dcfb7 Author: hudson Date: 2013-09-04 11:31 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/5da35d9dcfb7 Added tag 2.2.45-b10 for changeset c76ec783536b ! .hgtags Changeset: a8d22fe9d780 Author: hudson Date: 2013-09-11 09:45 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/a8d22fe9d780 Added tag 2.2.45-b11 for changeset 5da35d9dcfb7 ! .hgtags Changeset: c5e4c706d491 Author: hudson Date: 2013-09-17 21:23 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/c5e4c706d491 Added tag 2.2.45-b12 for changeset a8d22fe9d780 ! .hgtags Changeset: 996fe54459c9 Author: hudson Date: 2013-09-23 07:59 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/996fe54459c9 Added tag 2.2.45-b13 for changeset c5e4c706d491 ! .hgtags Changeset: e902993889f3 Author: hudson Date: 2013-09-26 07:14 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/e902993889f3 Added tag 2.2.45-b14 for changeset 996fe54459c9 ! .hgtags Changeset: ba64e43a17af Author: hudson Date: 2013-09-27 07:32 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/ba64e43a17af Added tag 2.2.45-b15 for changeset e902993889f3 ! .hgtags Changeset: 4b0151651241 Author: hudson Date: 2013-10-02 20:28 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/4b0151651241 Added tag 2.2.45-b16 for changeset ba64e43a17af ! .hgtags Changeset: 28bf72b54f55 Author: hudson Date: 2013-10-07 22:19 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/28bf72b54f55 Added tag 2.2.45-b17 for changeset 4b0151651241 ! .hgtags Changeset: 36b33d09b274 Author: hudson Date: 2013-10-08 11:10 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/36b33d09b274 Added tag 2.2.45-b18 for changeset 28bf72b54f55 ! .hgtags Changeset: 8fd11d02dec6 Author: kcr Date: 2013-10-15 15:59 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/8fd11d02dec6 Automated merge with ssh://jfxsrc.us.oracle.com//javafx/2.2.45/MASTER/jfx/rt Changeset: ef43e02f07a3 Author: hudson Date: 2013-11-27 09:32 -0800 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/ef43e02f07a3 Added tag 2.2.60-b01 for changeset 8fd11d02dec6 ! .hgtags Changeset: 6354c74e361f Author: hudson Date: 2013-12-18 08:51 -0800 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/6354c74e361f Added tag 2.2.60-b02 for changeset ef43e02f07a3 ! .hgtags Changeset: 6619d6a3cbbb Author: Pavel Safrata Date: 2013-09-06 12:10 +0100 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/6619d6a3cbbb RT-32306: Enhance FX drag and drop operations + javafx-ui-common/src/com/sun/javafx/scene/input/DragboardHelper.java ! javafx-ui-common/src/javafx/scene/Scene.java ! javafx-ui-common/src/javafx/scene/input/Clipboard.java ! javafx-ui-common/src/javafx/scene/input/Dragboard.java Changeset: 37c9617b2600 Author: Lubomir Nerad Date: 2013-09-06 14:14 +0200 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/37c9617b2600 Partial fix for RT-31872: Better window dressing ! javafx-ui-common/src/com/sun/javafx/application/PlatformImpl.java ! javafx-ui-common/src/javafx/application/ConditionalFeature.java ! javafx-ui-common/src/javafx/stage/PopupWindow.java ! javafx-ui-common/src/javafx/stage/Stage.java Changeset: e069a299eb59 Author: kcr Date: 2013-09-10 15:07 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/e069a299eb59 RT-32349: Enhance animated properties Reviewed-by: Martin Sladecek, Artem Ananiev, Marc Schonefeld, Alexander Fomin ! javafx-ui-common/src/com/sun/javafx/tk/Toolkit.java ! javafx-ui-common/src/javafx/scene/Scene.java Changeset: 404110ce1dad Author: kcr Date: 2013-09-18 05:25 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/404110ce1dad Automated merge with ssh://jfxsrc.us.oracle.com//javafx/2.2.45/MASTER/jfx/rt Changeset: 26f9d2850bf4 Author: kcr Date: 2013-09-27 08:48 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/26f9d2850bf4 Automated merge with ssh://jfxsrc.us.oracle.com//javafx/2.2.45/MASTER/jfx/rt Changeset: e7845af500c7 Author: hudson Date: 2013-10-01 09:15 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/e7845af500c7 Added tag 2.2.51-b01 for changeset 26f9d2850bf4 ! .hgtags Changeset: 0996f9dc2e95 Author: kcr Date: 2013-10-03 18:03 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/0996f9dc2e95 Automated merge with ssh://jfxsrc.us.oracle.com//javafx/2.2.45/MASTER/jfx/rt ! .hgtags Changeset: c8ac58353fd3 Author: kcr Date: 2013-10-09 08:44 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/c8ac58353fd3 Automated merge with ssh://jfxsrc.us.oracle.com//javafx/2.2.45/MASTER/jfx/rt ! .hgtags Changeset: 0e5000464f6e Author: hudson Date: 2013-10-10 11:09 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/0e5000464f6e Added tag 2.2.51-b02 for changeset c8ac58353fd3 ! .hgtags Changeset: 4ea5f7f6162a Author: hudson Date: 2013-10-15 07:20 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/4ea5f7f6162a Added tag 2.2.51-b03 for changeset 0e5000464f6e ! .hgtags Changeset: 28e7675f9faf Author: jgiles Date: 2013-10-17 09:49 +1300 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/28e7675f9faf RT-32803: Adjust popup controls for applet mode Reviewed-by: kcr, lnerad, art ! javafx-ui-common/src/com/sun/javafx/application/PlatformImpl.java ! javafx-ui-common/src/javafx/scene/Scene.java + javafx-ui-controls/src/com/sun/javafx/scene/control/skin/caspian/caspian-no-transparency.css ! test-stub-toolkit/src/com/sun/javafx/pgstub/StubToolkit.java Changeset: 3a9e5a349fdf Author: jgiles Date: 2013-10-17 10:17 +1300 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/3a9e5a349fdf Backed out changeset 28e7675f9faf to fix line endings issue. ! javafx-ui-common/src/com/sun/javafx/application/PlatformImpl.java ! javafx-ui-common/src/javafx/scene/Scene.java - javafx-ui-controls/src/com/sun/javafx/scene/control/skin/caspian/caspian-no-transparency.css ! test-stub-toolkit/src/com/sun/javafx/pgstub/StubToolkit.java Changeset: 4d0d3b95d014 Author: jgiles Date: 2013-10-17 10:20 +1300 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/4d0d3b95d014 RT-32803: Adjust popup controls for applet mode Reviewed-by: kcr, lnerad, art ! javafx-ui-common/src/com/sun/javafx/application/PlatformImpl.java ! javafx-ui-common/src/javafx/scene/Scene.java + javafx-ui-controls/src/com/sun/javafx/scene/control/skin/caspian/caspian-no-transparency.css ! test-stub-toolkit/src/com/sun/javafx/pgstub/StubToolkit.java Changeset: 55912925e9e0 Author: jgiles Date: 2013-10-21 10:19 +1300 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/55912925e9e0 RT-33646: Fix line endings in caspian-no-transparency.css ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/caspian/caspian-no-transparency.css Changeset: aac7bff2d264 Author: kcr Date: 2013-10-22 08:37 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/aac7bff2d264 RT-32586: Enhance FX services Reviewed-by: lnerad, art, ahgross ! javafx-concurrent/src/javafx/concurrent/Service.java ! javafx-concurrent/test/javafx/concurrent/ServiceLifecycleTest.java Changeset: e7cdfa6e1b1b Author: hudson Date: 2013-10-23 07:24 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/e7cdfa6e1b1b Added tag 2.2.51-b04 for changeset aac7bff2d264 ! .hgtags Changeset: 1db2d6dd4fde Author: hudson Date: 2013-10-29 07:26 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/1db2d6dd4fde Added tag 2.2.51-b05 for changeset e7cdfa6e1b1b ! .hgtags Changeset: f6b774daf229 Author: hudson Date: 2013-11-05 07:59 -0800 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/f6b774daf229 Added tag 2.2.51-b06 for changeset 1db2d6dd4fde ! .hgtags Changeset: c55317847fa7 Author: hudson Date: 2013-11-12 08:28 -0800 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/c55317847fa7 Added tag 2.2.51-b07 for changeset f6b774daf229 ! .hgtags Changeset: 48647f36fd67 Author: hudson Date: 2013-11-19 07:57 -0800 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/48647f36fd67 Added tag 2.2.51-b08 for changeset c55317847fa7 ! .hgtags Changeset: d8c82ecc2cd7 Author: hudson Date: 2013-11-27 08:19 -0800 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/d8c82ecc2cd7 Added tag 2.2.51-b09 for changeset 48647f36fd67 ! .hgtags Changeset: bfc7d1d3fec1 Author: hudson Date: 2013-12-03 21:38 -0800 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/bfc7d1d3fec1 Added tag 2.2.51-b10 for changeset d8c82ecc2cd7 ! .hgtags Changeset: 832d63006d3d Author: kcr Date: 2013-12-06 07:06 -0800 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/832d63006d3d RT-33941: Update copyright year in docs, readme files to 2014 Reviewed-by: mtvo ! javafx-ui-common/src/javafx/scene/doc-files/cssref.html Changeset: 23ad7db99131 Author: hudson Date: 2013-12-10 09:02 -0800 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/23ad7db99131 Added tag 2.2.51-b11 for changeset 832d63006d3d ! .hgtags Changeset: 57090adf4c42 Author: hudson Date: 2013-12-13 23:21 -0800 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/57090adf4c42 Added tag 2.2.51-b12 for changeset 23ad7db99131 ! .hgtags Changeset: 9d40b8b2d14f Author: hudson Date: 2013-12-19 07:57 -0800 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/9d40b8b2d14f Added tag 2.2.51-b13 for changeset 57090adf4c42 ! .hgtags Changeset: fc533ffc2296 Author: kcr Date: 2014-01-15 09:46 -0800 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/fc533ffc2296 Automated merge with ssh://jfxsrc.us.oracle.com//javafx/2.2.51/MASTER/jfx/rt ! .hgtags Changeset: b8fcc422cc09 Author: hudson Date: 2014-01-16 08:41 -0800 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/b8fcc422cc09 Added tag 2.2.60-b03 for changeset fc533ffc2296 ! .hgtags Changeset: aaecdf1fc0c3 Author: hudson Date: 2014-01-22 13:52 -0800 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/aaecdf1fc0c3 Added tag 2.2.60-b04 for changeset b8fcc422cc09 ! .hgtags Changeset: ad8835ef13db Author: hudson Date: 2014-02-05 08:55 -0800 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/ad8835ef13db Added tag 2.2.60-b05 for changeset aaecdf1fc0c3 ! .hgtags Changeset: 9ede406abdfb Author: hudson Date: 2014-02-12 10:58 -0800 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/9ede406abdfb Added tag 2.2.60-b06 for changeset ad8835ef13db ! .hgtags Changeset: 4cfc306b90a1 Author: hudson Date: 2014-02-19 09:58 -0800 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/4cfc306b90a1 Added tag 2.2.60-b07 for changeset 9ede406abdfb ! .hgtags Changeset: 53d0f8119d8c Author: hudson Date: 2014-02-26 09:19 -0800 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/53d0f8119d8c Added tag 2.2.60-b08 for changeset 4cfc306b90a1 ! .hgtags Changeset: 143b27648d96 Author: hudson Date: 2014-03-05 09:01 -0800 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/143b27648d96 Added tag 2.2.60-b09 for changeset 53d0f8119d8c ! .hgtags Changeset: 350a698900e9 Author: hudson Date: 2014-03-12 14:07 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/350a698900e9 Added tag 2.2.60-b10 for changeset 143b27648d96 ! .hgtags Changeset: c1541c2d6a96 Author: hudson Date: 2014-03-19 10:07 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/c1541c2d6a96 Added tag 2.2.60-b11 for changeset 350a698900e9 ! .hgtags Changeset: ad9fa39517da Author: hudson Date: 2014-03-26 08:12 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/ad9fa39517da Added tag 2.2.60-b12 for changeset c1541c2d6a96 ! .hgtags Changeset: 1c9d2c577088 Author: hudson Date: 2014-04-02 08:06 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/1c9d2c577088 Added tag 2.2.60-b13 for changeset ad9fa39517da ! .hgtags Changeset: acba90833e71 Author: hudson Date: 2014-04-09 08:32 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/acba90833e71 Added tag 2.2.60-b14 for changeset 1c9d2c577088 ! .hgtags Changeset: 8fd201b1d5b3 Author: hudson Date: 2013-12-17 08:34 -0800 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/8fd201b1d5b3 Added tag 2.2.55-b01 for changeset 57090adf4c42 ! .hgtags Changeset: 3dc253847a2c Author: kcr Date: 2013-12-20 10:42 -0800 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/3dc253847a2c Automated merge with ssh://jfxsrc.us.oracle.com//javafx/2.2.51/MASTER/jfx/rt ! .hgtags Changeset: 45a13255bc8e Author: hudson Date: 2013-12-24 07:51 -0800 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/45a13255bc8e Added tag 2.2.55-b02 for changeset 3dc253847a2c ! .hgtags Changeset: 98f81487b039 Author: hudson Date: 2014-01-07 08:55 -0800 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/98f81487b039 Added tag 2.2.55-b03 for changeset 45a13255bc8e ! .hgtags Changeset: f4a628d009e0 Author: kcr Date: 2014-01-13 13:52 -0800 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/f4a628d009e0 RT-35138: Laminar flow for FX windows Reviewed-by: Anthony Petrov, Martin Sladecek, Mark Howe, Chris Ries, Alexander Fomin ! javafx-ui-common/src/com/sun/javafx/stage/StageHelper.java ! javafx-ui-common/src/com/sun/javafx/tk/DummyToolkit.java ! javafx-ui-common/src/com/sun/javafx/tk/Toolkit.java ! javafx-ui-common/src/javafx/stage/Stage.java ! test-stub-toolkit/src/com/sun/javafx/pgstub/StubToolkit.java Changeset: 5f24c0787b87 Author: hudson Date: 2014-01-14 09:44 -0800 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/5f24c0787b87 Added tag 2.2.55-b04 for changeset f4a628d009e0 ! .hgtags Changeset: a538f7621ad7 Author: hudson Date: 2014-01-22 19:31 -0800 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/a538f7621ad7 Added tag 2.2.55-b05 ! .hgtags Changeset: f669fedbab4d Author: dmarkov Date: 2014-01-23 09:50 +0400 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/f669fedbab4d RT-32968: Memory leaked when using custom CSS file for JavaFX Reviewed-By: dgrieve, anashaty ! javafx-ui-common/src/com/sun/javafx/css/StyleManager.java ! javafx-ui-common/src/javafx/stage/Window.java Changeset: 3d32d956a1a2 Author: hudson Date: 2014-01-28 08:49 -0800 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/3d32d956a1a2 Added tag 2.2.55-b06 for changeset f669fedbab4d ! .hgtags Changeset: d24b55c7fb6a Author: anashaty Date: 2014-01-22 17:08 +0400 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/d24b55c7fb6a RT-30871: Indeterminate progress bar causes memory leak Reviewed-by: mickf,vkarnauk ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/ProgressBarSkin.java ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/ProgressIndicatorSkin.java Changeset: 6a0d5584a605 Author: anashaty Date: 2014-01-22 17:11 +0400 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/6a0d5584a605 RT-31393: Wrong widget is selected if another had focus before it Reviewed-by: jgiles,dmarkov ! javafx-ui-controls/src/com/sun/javafx/scene/control/behavior/ComboBoxBaseBehavior.java Changeset: 10be003ded6b Author: hudson Date: 2014-02-04 08:19 -0800 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/10be003ded6b Added tag 2.2.55-b07 for changeset 6a0d5584a605 ! .hgtags Changeset: f12d418086eb Author: dmarkov Date: 2014-02-07 12:47 +0400 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/f12d418086eb RT-34444: ScrollPane is Empty When Maximizing Window Reviewed-By: jgiles ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/ScrollPaneSkin.java Changeset: 3beee3fe90f0 Author: hudson Date: 2014-02-11 08:39 -0800 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/3beee3fe90f0 Added tag 2.2.55-b08 for changeset f12d418086eb ! .hgtags Changeset: 1b3e52b3f7c6 Author: hudson Date: 2014-02-18 08:29 -0800 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/1b3e52b3f7c6 Added tag 2.2.55-b09 for changeset 3beee3fe90f0 ! .hgtags Changeset: 984e266da3a1 Author: hudson Date: 2014-02-25 07:48 -0800 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/984e266da3a1 Added tag 2.2.55-b10 for changeset 1b3e52b3f7c6 ! .hgtags Changeset: 31dc0390a332 Author: hudson Date: 2014-03-04 09:21 -0800 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/31dc0390a332 Added tag 2.2.55-b11 for changeset 984e266da3a1 ! .hgtags Changeset: eca06567759f Author: hudson Date: 2014-03-11 08:51 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/eca06567759f Added tag 2.2.55-b12 for changeset 31dc0390a332 ! .hgtags Changeset: 077b2b93d5fa Author: hudson Date: 2014-03-18 09:30 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/077b2b93d5fa Added tag 2.2.55-b13 for changeset eca06567759f ! .hgtags Changeset: 44b111529375 Author: kcr Date: 2014-04-15 08:17 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/44b111529375 Automated merge with ssh://jfxsrc.us.oracle.com//javafx/2.2.55/MASTER/jfx/rt ! .hgtags Changeset: 17803d04ebc3 Author: hudson Date: 2014-04-16 07:55 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/17803d04ebc3 Added tag 2.2.60-b15 for changeset 44b111529375 ! .hgtags Changeset: 9ddf548a79fe Author: hudson Date: 2014-04-23 09:29 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/9ddf548a79fe Added tag 2.2.60-b16 for changeset 17803d04ebc3 ! .hgtags Changeset: 312b5c77a0ba Author: hudson Date: 2014-04-28 07:50 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/312b5c77a0ba Added tag 2.2.60-b17 for changeset 9ddf548a79fe ! .hgtags Changeset: 845bff23874e Author: hudson Date: 2014-04-29 07:22 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/845bff23874e Added tag 2.2.60-b18 for changeset 312b5c77a0ba ! .hgtags Changeset: 53fbd2add357 Author: bae Date: 2014-05-05 11:04 +0100 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/53fbd2add357 RT-35272: JAVAFX TABLEVIEW VALUES STOP UPDATING WHEN VALUES ARE INVALIDATED Reviewed-by: jgiles ! javafx-ui-controls/src/com/sun/javafx/scene/control/skin/VirtualFlow.java + javafx-ui-controls/test/javafx/scene/control/TableViewBindingTest.java Changeset: 8098bea31667 Author: hudson Date: 2014-05-07 18:19 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/8098bea31667 Added tag 2.2.60-b19 for changeset 845bff23874e ! .hgtags Changeset: 861ad6a6305c Author: kcr Date: 2014-05-08 16:05 -0700 URL: http://hg.openjdk.java.net/openjfx/2u/master/rt/rev/861ad6a6305c Automated merge with ssh://jfxsrc.us.oracle.com//javafx/2.2.60/MASTER/jfx/rt From jonathan.giles at oracle.com Fri Jun 20 04:37:54 2014 From: jonathan.giles at oracle.com (Jonathan Giles) Date: Fri, 20 Jun 2014 16:37:54 +1200 Subject: Dialogs in JavaFX Message-ID: <53A3BAA2.3000000@oracle.com> Hi all, Dialogs are something everyone wants, and also something most people seem to have an opinion on! JavaFX 8u40 will have dialogs, but what form they take (API-wise) is not yet defined. I've posted a relatively long discussion on this over at FX Experience [1] and your feedback is highly welcome. As I note in the blog post, the Jira issue for this feature is RT-12643. If you have any thoughts, please do post them there (rather than spam the many good people subscribed to openjfx-dev). [1] http://fxexperience.com/2014/06/bringing-dialogs-to-javafx/ Thanks! -- -- Jonathan From hang.vo at oracle.com Fri Jun 20 09:03:32 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Fri, 20 Jun 2014 09:03:32 +0000 Subject: hg: openjfx/8u-dev/rt: RT-37254: Hook up SceneBuilder samples for building and later for supporting insanity testing Message-ID: <201406200903.s5K93h1A023572@aojmv0008> Changeset: b60bc59b09d1 Author: yjoan Date: 2014-06-20 11:00 +0200 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/b60bc59b09d1 RT-37254: Hook up SceneBuilder samples for building and later for supporting insanity testing Summary: SceneBuilder samples are now compiled when "gradle apps" is called Reviewed-by: ddhill, kcr Contributed-by: ddhill ! apps/build.xml + apps/scenebuilder/build.xml ! apps/scenebuilder/samples/AirportApp/nbproject/project.properties ! apps/scenebuilder/samples/HelloI18N/nbproject/project.properties ! apps/scenebuilder/samples/HelloSwingNode/nbproject/project.properties ! apps/scenebuilder/samples/IssueTrackingBiDi/nbproject/project.properties ! apps/scenebuilder/samples/IssueTrackingLite/nbproject/project.properties ! apps/scenebuilder/samples/Login/nbproject/project.properties ! apps/scenebuilder/samples/UnlockCustom/nbproject/project.properties + apps/scenebuilder/samples/build.xml ! build.gradle From steve.x.northover at oracle.com Fri Jun 20 12:05:44 2014 From: steve.x.northover at oracle.com (Stephen F Northover) Date: Fri, 20 Jun 2014 08:05:44 -0400 Subject: Dialogs in JavaFX In-Reply-To: <53A3BAA2.3000000@oracle.com> References: <53A3BAA2.3000000@oracle.com> Message-ID: <53A42398.1090602@oracle.com> Great post Jonathan. The summary is that whatever direction we take, we'll have a plan for the future. So if we run out of time and provide only a very scaled back API, we'll have prototyped how it can evolve to handle more complex cases. Steve On 2014-06-20, 12:37 AM, Jonathan Giles wrote: > Hi all, > > Dialogs are something everyone wants, and also something most people > seem to have an opinion on! JavaFX 8u40 will have dialogs, but what > form they take (API-wise) is not yet defined. I've posted a relatively > long discussion on this over at FX Experience [1] and your feedback is > highly welcome. As I note in the blog post, the Jira issue for this > feature is RT-12643. If you have any thoughts, please do post them > there (rather than spam the many good people subscribed to openjfx-dev). > > [1] http://fxexperience.com/2014/06/bringing-dialogs-to-javafx/ > > Thanks! > From steve.x.northover at oracle.com Fri Jun 20 12:46:32 2014 From: steve.x.northover at oracle.com (Stephen F Northover) Date: Fri, 20 Jun 2014 08:46:32 -0400 Subject: Testing accessibility / sample apps In-Reply-To: <92216B76-D488-44E7-81EC-6D2AD8344FC5@oracle.com> References: <53A35524.6060209@googlemail.com> <92216B76-D488-44E7-81EC-6D2AD8344FC5@oracle.com> Message-ID: <53A42D28.7040103@oracle.com> Hello Jann! As soon as the 8u40 repos open, the Accessibility code will be put back along with the recent fixes for JAWS. Since OpenJFX (and the JDK) does not have nightly builds, unless you want to wait for an EA build of 8u40 or 9, you will need to get OpenJFX and build it. This is really the best way to work with the team anyway because you can get fixes as they are made. EA builds take a while to come out and there is no substitute for running on the latest code base. Unfortunately due to Microsoft, building OpenJFX is a bit harder on Windows. However, it is doable and the build instructions should be complete. If they are not (and if you hit any problems), please post back to this list. Here are the build instructions: https://wiki.openjdk.java.net/display/OpenJFX/Building+OpenJFX Many committers use an IDE (you don't have to) and OpenJFX is supports the three major IDE vendors: https://wiki.openjdk.java.net/display/OpenJFX/Using+an+IDE Looking forward to working with you, Steve On 2014-06-19, 7:10 PM, Felipe Heidrich wrote: > Hi Jann, > > Unfortunately Linux support is not in the plan for 8u40. > > Windows 7 is supported and we have recently fixed JAWS support (see https://javafx-jira.kenai.com/browse/RT-37530 and https://javafx-jira.kenai.com/browse/RT-37609). > Unfortunately due to the 8u20 to 8u40 transition the code has not being released yet, but soon. > > The majority of our testing was done using Narrator. That said, I also tested NVDA lastest version on Windows 8 and I didn?t see any major problems. > On the Mac we tested with VoiceOver. > > Regards, > Felipe > > > On Jun 19, 2014, at 2:24 PM, Jann Schneider wrote: > >> Hello all, >> >> As a blind java developer i'm interessted in testing the accessibility of JavaFX and maybe help to find some issues. >> >> I've just set up my build environment on my ubuntu 14.04 laptop and checked out the project files as described in the wiki. I could also set it up on a windows 7 with Jaws 15 and NVDa (don't know what the current version is) for comparison.. >> >> No i am wondering if there are some examples i could try? >> >> Regards Jann >> >> From jeff at reportmill.com Fri Jun 20 13:41:47 2014 From: jeff at reportmill.com (Jeff Martin) Date: Fri, 20 Jun 2014 08:41:47 -0500 Subject: Dialogs in JavaFX In-Reply-To: <53A42398.1090602@oracle.com> References: <53A3BAA2.3000000@oracle.com> <53A42398.1090602@oracle.com> Message-ID: <1392344E-1CF6-428A-B20C-B22206A936CA@reportmill.com> That is a great post. I think the big problem with dialogs in Swing was the permutations problem. There were four basic types of dialogs (Message, Confirm, Option, Input) with six different parameters (Title, Message, Icon, Content, MessageType, Options) - so JOptionPane ended up with a sea of static methods that were confusing to navigate. I don't think you could go wrong with a simple DialogBox class like this (I love simple): // Constructor public DialogBox(String aTitle); // Options public String getTitle(); public void setTitle(String aTitle); public String getMessage(); public void setMessage(String aMessage); public MessageType getMessageType(); public void setMessageType(MessageType aMessageType); public Node getContent(); public void setContent(Node aNode); public Node getGraphic(); public void setGraphic(Node aNode); public String[] getOptions(); public void setOptions(String ... theOptions); // Convenience methods to set Message + MessageType public void setErrorMessage(String aMessage); public void setWarningMessage(String aMessage); public void setQuestionMessage(String aMessage); // Show methods public void showMessageDialog(T aComp); public boolean showConfirmDialog(T aComp); public int showOptionDialog(T aComp, String aDefault); public String showInputDialog(T aComp, String aDefault); // Programatic dismissal public void confirm(); public void cancel(); Then most common invocations would look something like this: // Get user confirmation DialogBox dbox = new DialogBox("Sanity Check"); dbox.setWarningMessage("Are you sure you want to do this? It could kill you."); if(!dbox.showConfirmationDialog(focusedNode)) return; Using instance methods instead of static methods gives opportunity to subclass and override various methods. And notice the Content attribute - for the standard case when no Content is provided, it is built programmatically based on the parameters (essentially just the message and either an Option combo, an input textfield or nothing). I've been using this in my JavaFX app for a while and it is working great and makes porting from Swing easy. I even built it on a convenient FormBuilder class that makes building a simple stack of form controls easy, and can also be used for advanced DialogBoxes. Jeff Martin 214.513.1636 On Jun 20, 2014, at 7:05 AM, Stephen F Northover wrote: > Great post Jonathan. The summary is that whatever direction we take, we'll have a plan for the future. So if we run out of time and provide only a very scaled back API, we'll have prototyped how it can evolve to handle more complex cases. > > Steve > > On 2014-06-20, 12:37 AM, Jonathan Giles wrote: >> Hi all, >> >> Dialogs are something everyone wants, and also something most people seem to have an opinion on! JavaFX 8u40 will have dialogs, but what form they take (API-wise) is not yet defined. I've posted a relatively long discussion on this over at FX Experience [1] and your feedback is highly welcome. As I note in the blog post, the Jira issue for this feature is RT-12643. If you have any thoughts, please do post them there (rather than spam the many good people subscribed to openjfx-dev). >> >> [1] http://fxexperience.com/2014/06/bringing-dialogs-to-javafx/ >> >> Thanks! >> > From anthony.petrov at oracle.com Fri Jun 20 15:14:44 2014 From: anthony.petrov at oracle.com (Anthony Petrov) Date: Fri, 20 Jun 2014 19:14:44 +0400 Subject: Keyboard input testing report for 8u20 Message-ID: <53A44FE4.3080908@oracle.com> In the past few days I've tested how well FX supports international keyboard layouts. I've tested EN, DE, FR, RU, and JP keyboard layouts. Note that myself, I only speak EN and RU, so I might have missed some uncommon (or even some common) cases when trying to enter characters in other languages. MS Windows: Everything works as expected. I've tested all known (to me) dead keys in all the keyboard layouts, and they produce expected results, allowing users to enter all the characters that they want. Mac: JavaFX supports international keyboard layouts on Mac somewhat poorly. Using dead keys on European keyboards may result in inserting two characters when only one is expected. On the bright side, though, JP input seems to work just fine. Also, it's a known issue (RT-35074) that OEM keys generate wrong key codes on Mac (but at least the keys generate correct characters which is actually more essential for text input). To sum it up: you can enter any characters you want, it's just that sometimes you have to hit Backspace or Delete here or there to remove some garbage. Gtk: Well, on Linux some work remains to be done, too. To be more precise, I wasn't able to use any dead keys at all, although "pre-accented" keys work just fine. I don't seem to be able to configure JP or CN input methods on my Linux, so I wasn't able to test the Asian kbd layouts. I've filed a few JIRAs along my testing. I'll be working on polishing keyboard input support on Mac for 8u40. We'll do our best to support Linux/Gtk too, but realistically, I expect this to happen some time closer to FX 9 on that platform. -- best regards, Anthony From steve.x.northover at oracle.com Fri Jun 20 15:15:15 2014 From: steve.x.northover at oracle.com (Stephen F Northover) Date: Fri, 20 Jun 2014 11:15:15 -0400 Subject: Dialogs in JavaFX In-Reply-To: <1392344E-1CF6-428A-B20C-B22206A936CA@reportmill.com> References: <53A3BAA2.3000000@oracle.com> <53A42398.1090602@oracle.com> <1392344E-1CF6-428A-B20C-B22206A936CA@reportmill.com> Message-ID: <53A45003.9030007@oracle.com> This essentially matches my current thinking, however, I would have DialogBox as an abstract superclass of Alert. Further, I would not have many different types of show() methods. Want to take the discussion further in the JIRA? That way, is will track everyone's thinking on the various issues. The downside is that JIRA does not provide threaded conversations and it can be hard to follow. Steve On 2014-06-20, 9:41 AM, Jeff Martin wrote: > That is a great post. I think the big problem with dialogs in Swing was the permutations problem. There were four basic types of dialogs (Message, Confirm, Option, Input) with six different parameters (Title, Message, Icon, Content, MessageType, Options) - so JOptionPane ended up with a sea of static methods that were confusing to navigate. > > I don't think you could go wrong with a simple DialogBox class like this (I love simple): > > // Constructor > public DialogBox(String aTitle); > > // Options > public String getTitle(); > public void setTitle(String aTitle); > public String getMessage(); > public void setMessage(String aMessage); > public MessageType getMessageType(); > public void setMessageType(MessageType aMessageType); > public Node getContent(); > public void setContent(Node aNode); > public Node getGraphic(); > public void setGraphic(Node aNode); > public String[] getOptions(); > public void setOptions(String ... theOptions); > > // Convenience methods to set Message + MessageType > public void setErrorMessage(String aMessage); > public void setWarningMessage(String aMessage); > public void setQuestionMessage(String aMessage); > > // Show methods > public void showMessageDialog(T aComp); > public boolean showConfirmDialog(T aComp); > public int showOptionDialog(T aComp, String aDefault); > public String showInputDialog(T aComp, String aDefault); > > // Programatic dismissal > public void confirm(); > public void cancel(); > > Then most common invocations would look something like this: > > // Get user confirmation > DialogBox dbox = new DialogBox("Sanity Check"); > dbox.setWarningMessage("Are you sure you want to do this? It could kill you."); > if(!dbox.showConfirmationDialog(focusedNode)) return; > > Using instance methods instead of static methods gives opportunity to subclass and override various methods. And notice the Content attribute - for the standard case when no Content is provided, it is built programmatically based on the parameters (essentially just the message and either an Option combo, an input textfield or nothing). > > I've been using this in my JavaFX app for a while and it is working great and makes porting from Swing easy. I even built it on a convenient FormBuilder class that makes building a simple stack of form controls easy, and can also be used for advanced DialogBoxes. > > Jeff Martin > 214.513.1636 > > > On Jun 20, 2014, at 7:05 AM, Stephen F Northover wrote: > >> Great post Jonathan. The summary is that whatever direction we take, we'll have a plan for the future. So if we run out of time and provide only a very scaled back API, we'll have prototyped how it can evolve to handle more complex cases. >> >> Steve >> >> On 2014-06-20, 12:37 AM, Jonathan Giles wrote: >>> Hi all, >>> >>> Dialogs are something everyone wants, and also something most people seem to have an opinion on! JavaFX 8u40 will have dialogs, but what form they take (API-wise) is not yet defined. I've posted a relatively long discussion on this over at FX Experience [1] and your feedback is highly welcome. As I note in the blog post, the Jira issue for this feature is RT-12643. If you have any thoughts, please do post them there (rather than spam the many good people subscribed to openjfx-dev). >>> >>> [1] http://fxexperience.com/2014/06/bringing-dialogs-to-javafx/ >>> >>> Thanks! >>> From hang.vo at oracle.com Fri Jun 20 15:17:53 2014 From: hang.vo at oracle.com (hang.vo at oracle.com) Date: Fri, 20 Jun 2014 15:17:53 +0000 Subject: hg: openjfx/8u-dev/rt: [SCENEBUILDER] Silence a compilation warning in sample code Message-ID: <201406201518.s5KFI5gw018404@aojmv0008> Changeset: 84182535a4be Author: yjoan Date: 2014-06-20 17:12 +0200 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/84182535a4be [SCENEBUILDER] Silence a compilation warning in sample code ! apps/scenebuilder/samples/IssueTrackingLite/src/issuetrackinglite/model/TrackingServiceStub.java From jeff at reportmill.com Fri Jun 20 15:59:53 2014 From: jeff at reportmill.com (Jeff Martin) Date: Fri, 20 Jun 2014 10:59:53 -0500 Subject: Dialogs in JavaFX In-Reply-To: <53A45003.9030007@oracle.com> References: <53A3BAA2.3000000@oracle.com> <53A42398.1090602@oracle.com> <1392344E-1CF6-428A-B20C-B22206A936CA@reportmill.com> <53A45003.9030007@oracle.com> Message-ID: <65AAF2B4-2D75-4C6B-AA8D-ACAD3B57964C@reportmill.com> I agree that the four showXXX() methods are a slight complexity, but I think they are simpler than the alternative. They quickly communicate the implied "Type" of the DialogBox and response: // Type Message: No response DialogBox dbox = new DialogBox("FYI"); dbox.setMessage("Just saying..."); dbox.showMessageDialog(focusedNode); // Type Confirm: Boolean response DialogBox dbox = new DialogBox("Sanity Check"); dbox.setMessage("Really???"); boolean response = dbox.showConfirmDialog(focusedNode); // Type Option: Integer response DialogBox dbox = new DialogBox("Which One"); dbox.setMessage("Select One"); dbox.setOptions(myOptions); int response = dbox.showOptionDialog(focusedNode, defaultOption); // Type Input: String response DialogBox dbox = new DialogBox("Tell Me"); dbox.setMessage("Tell me what you want:"); String response = xbox.showOptionDialog(focusedNode, default); The only alternative I see would be to explicitly set a DialogBox type and return a DialogBoxResponse, which could embody any of the above. That seems cumbersome to me. I also think it would be over-engineering to try to support any kind of response (say like a Color or a Font). In these cases, I think it's better to have your ColorChooserPane or FontChooserPane act as content: // Type ColorChooser: Boolean response plus Color DialogBox dbox = new DialogBox("Please Pick a Color"); dbox.setContent(myColorChooserPane); if(dbox.showConfirmPanel(focusedNode)) setColor(myColorChooserPane.getSelectedColor()); In fact, your ColorChooserPane could have a showColorDialog() method that would just be the above code. Jeff Martin On Jun 20, 2014, at 10:15 AM, Stephen F Northover wrote: > This essentially matches my current thinking, however, I would have DialogBox as an abstract superclass of Alert. Further, I would not have many different types of show() methods. > > Want to take the discussion further in the JIRA? That way, is will track everyone's thinking on the various issues. The downside is that JIRA does not provide threaded conversations and it can be hard to follow. > > Steve > > On 2014-06-20, 9:41 AM, Jeff Martin wrote: >> That is a great post. I think the big problem with dialogs in Swing was the permutations problem. There were four basic types of dialogs (Message, Confirm, Option, Input) with six different parameters (Title, Message, Icon, Content, MessageType, Options) - so JOptionPane ended up with a sea of static methods that were confusing to navigate. >> >> I don't think you could go wrong with a simple DialogBox class like this (I love simple): >> >> // Constructor >> public DialogBox(String aTitle); >> >> // Options >> public String getTitle(); >> public void setTitle(String aTitle); >> public String getMessage(); >> public void setMessage(String aMessage); >> public MessageType getMessageType(); >> public void setMessageType(MessageType aMessageType); >> public Node getContent(); >> public void setContent(Node aNode); >> public Node getGraphic(); >> public void setGraphic(Node aNode); >> public String[] getOptions(); >> public void setOptions(String ... theOptions); >> >> // Convenience methods to set Message + MessageType >> public void setErrorMessage(String aMessage); >> public void setWarningMessage(String aMessage); >> public void setQuestionMessage(String aMessage); >> >> // Show methods >> public void showMessageDialog(T aComp); >> public boolean showConfirmDialog(T aComp); >> public int showOptionDialog(T aComp, String aDefault); >> public String showInputDialog(T aComp, String aDefault); >> >> // Programatic dismissal >> public void confirm(); >> public void cancel(); >> >> Then most common invocations would look something like this: >> >> // Get user confirmation >> DialogBox dbox = new DialogBox("Sanity Check"); >> dbox.setWarningMessage("Are you sure you want to do this? It could kill you."); >> if(!dbox.showConfirmationDialog(focusedNode)) return; >> >> Using instance methods instead of static methods gives opportunity to subclass and override various methods. And notice the Content attribute - for the standard case when no Content is provided, it is built programmatically based on the parameters (essentially just the message and either an Option combo, an input textfield or nothing). >> >> I've been using this in my JavaFX app for a while and it is working great and makes porting from Swing easy. I even built it on a convenient FormBuilder class that makes building a simple stack of form controls easy, and can also be used for advanced DialogBoxes. >> >> Jeff Martin >> 214.513.1636 >> >> >> On Jun 20, 2014, at 7:05 AM, Stephen F Northover wrote: >> >>> Great post Jonathan. The summary is that whatever direction we take, we'll have a plan for the future. So if we run out of time and provide only a very scaled back API, we'll have prototyped how it can evolve to handle more complex cases. >>> >>> Steve >>> >>> On 2014-06-20, 12:37 AM, Jonathan Giles wrote: >>>> Hi all, >>>> >>>> Dialogs are something everyone wants, and also something most people seem to have an opinion on! JavaFX 8u40 will have dialogs, but what form they take (API-wise) is not yet defined. I've posted a relatively long discussion on this over at FX Experience [1] and your feedback is highly welcome. As I note in the blog post, the Jira issue for this feature is RT-12643. If you have any thoughts, please do post them there (rather than spam the many good people subscribed to openjfx-dev). >>>> >>>> [1] http://fxexperience.com/2014/06/bringing-dialogs-to-javafx/ >>>> >>>> Thanks! >>>> > From jann.schneider at googlemail.com Fri Jun 20 16:43:00 2014 From: jann.schneider at googlemail.com (Jann Schneider) Date: Fri, 20 Jun 2014 18:43:00 +0200 Subject: Testing accessibility / sample apps In-Reply-To: <53A42D28.7040103@oracle.com> References: <53A35524.6060209@googlemail.com> <92216B76-D488-44E7-81EC-6D2AD8344FC5@oracle.com> <53A42D28.7040103@oracle.com> Message-ID: Hi all, @Steven: thx for the links. I'll try to build the openjfx project on the windows 7 notebook and test the sample apps with NVDA then. Today i tried the latest ea of jdk1.8.0_20 and sample apps with nvda 14.2. Unfortunately i was not able to read anything except the window title. I've just installed the jdk, changed my JAVA_HOME and tried to run e.g. the ensemble.jar $ java -jar ensemble.jar -Djavafx.accessible.force=true Well i'll try it again by means of building javafx from source and post my results back to the list. Regards Jann! 2014-06-20 14:46 GMT+02:00, Stephen F Northover : > Hello Jann! > > As soon as the 8u40 repos open, the Accessibility code will be put back > along with the recent fixes for JAWS. Since OpenJFX (and the JDK) does > not have nightly builds, unless you want to wait for an EA build of 8u40 > or 9, you will need to get OpenJFX and build it. This is really the > best way to work with the team anyway because you can get fixes as they > are made. EA builds take a while to come out and there is no substitute > for running on the latest code base. > > Unfortunately due to Microsoft, building OpenJFX is a bit harder on > Windows. However, it is doable and the build instructions should be > complete. If they are not (and if you hit any problems), please post > back to this list. > > Here are the build instructions: > > https://wiki.openjdk.java.net/display/OpenJFX/Building+OpenJFX > > Many committers use an IDE (you don't have to) and OpenJFX is supports > the three major IDE vendors: > > https://wiki.openjdk.java.net/display/OpenJFX/Using+an+IDE > > Looking forward to working with you, > Steve > > On 2014-06-19, 7:10 PM, Felipe Heidrich wrote: >> Hi Jann, >> >> Unfortunately Linux support is not in the plan for 8u40. >> >> Windows 7 is supported and we have recently fixed JAWS support (see >> https://javafx-jira.kenai.com/browse/RT-37530 and >> https://javafx-jira.kenai.com/browse/RT-37609). >> Unfortunately due to the 8u20 to 8u40 transition the code has not being >> released yet, but soon. >> >> The majority of our testing was done using Narrator. That said, I also >> tested NVDA lastest version on Windows 8 and I didn?t see any major >> problems. >> On the Mac we tested with VoiceOver. >> >> Regards, >> Felipe >> >> >> On Jun 19, 2014, at 2:24 PM, Jann Schneider >> wrote: >> >>> Hello all, >>> >>> As a blind java developer i'm interessted in testing the accessibility of >>> JavaFX and maybe help to find some issues. >>> >>> I've just set up my build environment on my ubuntu 14.04 laptop and >>> checked out the project files as described in the wiki. I could also set >>> it up on a windows 7 with Jaws 15 and NVDa (don't know what the current >>> version is) for comparison.. >>> >>> No i am wondering if there are some examples i could try? >>> >>> Regards Jann >>> >>> > > From pedro.duquevieira at gmail.com Fri Jun 20 16:43:34 2014 From: pedro.duquevieira at gmail.com (Pedro Duque Vieira) Date: Fri, 20 Jun 2014 17:43:34 +0100 Subject: JavaFX at JavaOne 2014 Message-ID: Unfortunately there's nothing new and no Oracle sessions on that subject - javafx on ios and/or android... :( -- Pedro Duque Vieira From steve.x.northover at oracle.com Fri Jun 20 17:21:03 2014 From: steve.x.northover at oracle.com (Stephen F Northover) Date: Fri, 20 Jun 2014 13:21:03 -0400 Subject: Testing accessibility / sample apps In-Reply-To: References: <53A35524.6060209@googlemail.com> <92216B76-D488-44E7-81EC-6D2AD8344FC5@oracle.com> <53A42D28.7040103@oracle.com> Message-ID: <53A46D7F.9060208@oracle.com> Ok, let us know how you get on with building FX. NOTE: The accessibility code is not there in 8u20 so you will just be ensuring that you can build on Windows (there is nothing there to test). The accessibility code will be going back into 8u40 on Monday or Tuesday so you'll need to get that release at that time and build it instead when it becomes available. It's good to debug the build process though because it can be painful building from source. Steve On 2014-06-20, 12:43 PM, Jann Schneider wrote: > Hi all, > > @Steven: thx for the links. I'll try to build the openjfx project on > the windows 7 notebook and test the sample apps with NVDA then. > Today i tried the latest ea of jdk1.8.0_20 and sample apps with nvda > 14.2. Unfortunately i was not able to read anything except the window > title. > I've just installed the jdk, changed my JAVA_HOME and tried to run > e.g. the ensemble.jar > $ java -jar ensemble.jar -Djavafx.accessible.force=true > > Well i'll try it again by means of building javafx from source and > post my results back to the list. > > Regards Jann! > > > 2014-06-20 14:46 GMT+02:00, Stephen F Northover : >> Hello Jann! >> >> As soon as the 8u40 repos open, the Accessibility code will be put back >> along with the recent fixes for JAWS. Since OpenJFX (and the JDK) does >> not have nightly builds, unless you want to wait for an EA build of 8u40 >> or 9, you will need to get OpenJFX and build it. This is really the >> best way to work with the team anyway because you can get fixes as they >> are made. EA builds take a while to come out and there is no substitute >> for running on the latest code base. >> >> Unfortunately due to Microsoft, building OpenJFX is a bit harder on >> Windows. However, it is doable and the build instructions should be >> complete. If they are not (and if you hit any problems), please post >> back to this list. >> >> Here are the build instructions: >> >> https://wiki.openjdk.java.net/display/OpenJFX/Building+OpenJFX >> >> Many committers use an IDE (you don't have to) and OpenJFX is supports >> the three major IDE vendors: >> >> https://wiki.openjdk.java.net/display/OpenJFX/Using+an+IDE >> >> Looking forward to working with you, >> Steve >> >> On 2014-06-19, 7:10 PM, Felipe Heidrich wrote: >>> Hi Jann, >>> >>> Unfortunately Linux support is not in the plan for 8u40. >>> >>> Windows 7 is supported and we have recently fixed JAWS support (see >>> https://javafx-jira.kenai.com/browse/RT-37530 and >>> https://javafx-jira.kenai.com/browse/RT-37609). >>> Unfortunately due to the 8u20 to 8u40 transition the code has not being >>> released yet, but soon. >>> >>> The majority of our testing was done using Narrator. That said, I also >>> tested NVDA lastest version on Windows 8 and I didn?t see any major >>> problems. >>> On the Mac we tested with VoiceOver. >>> >>> Regards, >>> Felipe >>> >>> >>> On Jun 19, 2014, at 2:24 PM, Jann Schneider >>> wrote: >>> >>>> Hello all, >>>> >>>> As a blind java developer i'm interessted in testing the accessibility of >>>> JavaFX and maybe help to find some issues. >>>> >>>> I've just set up my build environment on my ubuntu 14.04 laptop and >>>> checked out the project files as described in the wiki. I could also set >>>> it up on a windows 7 with Jaws 15 and NVDa (don't know what the current >>>> version is) for comparison.. >>>> >>>> No i am wondering if there are some examples i could try? >>>> >>>> Regards Jann >>>> >>>> >> From David.Hill at Oracle.com Fri Jun 20 17:22:41 2014 From: David.Hill at Oracle.com (David Hill) Date: Fri, 20 Jun 2014 13:22:41 -0400 Subject: Review request for adding capability to disable Lens builds Message-ID: <53A46DE1.1010108@Oracle.com> Kevin, Daniel, Lisa, Jira: https://javafx-jira.kenai.com/browse/RT-37594 From the jira: Review at http://cr.openjdk.java.net/~ddhill/RT-37594/ As part of this change we have: * added an includeMonocle toggle (with a default of false) * when includeMonocle is false, will exclude java Glass classes from jfxrt.jar. * javafx.platform.properties and javafx.properties should have a ending newline * for (armv*, x86egl) * includeLens, includeMonocle, includeGTK will toggle native building and inclusion of Java Glass classes * javafx.platform.properties will only include the groups that were built * definitions of compiler/linker had migrated down in the buildSrc files, so were moved back up for clarity. Tested by clean building with includeLens, includeMonocle, includeGTK turned off in test builds. This submit should have no current build result changes except for the extra newline on javafx.*.properties and a small amount of reordering of javafx.platform.properties -- David Hill Java Embedded Development "This email was created using 100% recycled electrons." From kevin.rushforth at oracle.com Fri Jun 20 17:27:19 2014 From: kevin.rushforth at oracle.com (Kevin Rushforth) Date: Fri, 20 Jun 2014 10:27:19 -0700 Subject: Testing accessibility / sample apps In-Reply-To: <53A46D7F.9060208@oracle.com> References: <53A35524.6060209@googlemail.com> <92216B76-D488-44E7-81EC-6D2AD8344FC5@oracle.com> <53A42D28.7040103@oracle.com> <53A46D7F.9060208@oracle.com> Message-ID: <53A46EF7.90907@oracle.com> To be clear, you will still use the 8u-dev repo at the existing URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt It's just that after Monday the repo will "become" the place where 8u40 work is done. Regarding the build, it is a bit painful to set up for Windows, but not too bad as long as you don't need to build WebKit. We would be interested in hearing whether the instructions on the Wiki are sufficient for you to get the build working. -- Kevin Stephen F Northover wrote: > Ok, let us know how you get on with building FX. > > NOTE: The accessibility code is not there in 8u20 so you will just be > ensuring that you can build on Windows (there is nothing there to > test). The accessibility code will be going back into 8u40 on Monday > or Tuesday so you'll need to get that release at that time and build > it instead when it becomes available. It's good to debug the build > process though because it can be painful building from source. > > Steve > > On 2014-06-20, 12:43 PM, Jann Schneider wrote: >> Hi all, >> >> @Steven: thx for the links. I'll try to build the openjfx project on >> the windows 7 notebook and test the sample apps with NVDA then. >> Today i tried the latest ea of jdk1.8.0_20 and sample apps with nvda >> 14.2. Unfortunately i was not able to read anything except the window >> title. >> I've just installed the jdk, changed my JAVA_HOME and tried to run >> e.g. the ensemble.jar >> $ java -jar ensemble.jar -Djavafx.accessible.force=true >> >> Well i'll try it again by means of building javafx from source and >> post my results back to the list. >> >> Regards Jann! >> >> >> 2014-06-20 14:46 GMT+02:00, Stephen F Northover >> : >>> Hello Jann! >>> >>> As soon as the 8u40 repos open, the Accessibility code will be put back >>> along with the recent fixes for JAWS. Since OpenJFX (and the JDK) does >>> not have nightly builds, unless you want to wait for an EA build of >>> 8u40 >>> or 9, you will need to get OpenJFX and build it. This is really the >>> best way to work with the team anyway because you can get fixes as they >>> are made. EA builds take a while to come out and there is no >>> substitute >>> for running on the latest code base. >>> >>> Unfortunately due to Microsoft, building OpenJFX is a bit harder on >>> Windows. However, it is doable and the build instructions should be >>> complete. If they are not (and if you hit any problems), please post >>> back to this list. >>> >>> Here are the build instructions: >>> >>> https://wiki.openjdk.java.net/display/OpenJFX/Building+OpenJFX >>> >>> Many committers use an IDE (you don't have to) and OpenJFX is supports >>> the three major IDE vendors: >>> >>> https://wiki.openjdk.java.net/display/OpenJFX/Using+an+IDE >>> >>> Looking forward to working with you, >>> Steve >>> >>> On 2014-06-19, 7:10 PM, Felipe Heidrich wrote: >>>> Hi Jann, >>>> >>>> Unfortunately Linux support is not in the plan for 8u40. >>>> >>>> Windows 7 is supported and we have recently fixed JAWS support (see >>>> https://javafx-jira.kenai.com/browse/RT-37530 and >>>> https://javafx-jira.kenai.com/browse/RT-37609). >>>> Unfortunately due to the 8u20 to 8u40 transition the code has not >>>> being >>>> released yet, but soon. >>>> >>>> The majority of our testing was done using Narrator. That said, I also >>>> tested NVDA lastest version on Windows 8 and I didn?t see any major >>>> problems. >>>> On the Mac we tested with VoiceOver. >>>> >>>> Regards, >>>> Felipe >>>> >>>> >>>> On Jun 19, 2014, at 2:24 PM, Jann Schneider >>>> wrote: >>>> >>>>> Hello all, >>>>> >>>>> As a blind java developer i'm interessted in testing the >>>>> accessibility of >>>>> JavaFX and maybe help to find some issues. >>>>> >>>>> I've just set up my build environment on my ubuntu 14.04 laptop and >>>>> checked out the project files as described in the wiki. I could >>>>> also set >>>>> it up on a windows 7 with Jaws 15 and NVDa (don't know what the >>>>> current >>>>> version is) for comparison.. >>>>> >>>>> No i am wondering if there are some examples i could try? >>>>> >>>>> Regards Jann >>>>> >>>>> >>> > From mikegps1 at gmail.com Fri Jun 20 18:17:49 2014 From: mikegps1 at gmail.com (Mike) Date: Fri, 20 Jun 2014 11:17:49 -0700 Subject: JavaFX at JavaOne 2014 In-Reply-To: References: Message-ID: Don't expect anything from Oracle related to IOS and Android other than some code contributions. They have said ADF Mobile / Jdeveloper (etc) will suffer financially if Oracle supports IOS and Android directly. On Fri, Jun 20, 2014 at 9:43 AM, Pedro Duque Vieira < pedro.duquevieira at gmail.com> wrote: > Unfortunately there's nothing new and no Oracle sessions on that subject - > javafx on ios and/or android... > > :( > > -- > Pedro Duque Vieira > From jann.schneider at googlemail.com Fri Jun 20 18:51:21 2014 From: jann.schneider at googlemail.com (Jann Schneider) Date: Fri, 20 Jun 2014 20:51:21 +0200 Subject: Testing accessibility / sample apps In-Reply-To: <53A46EF7.90907@oracle.com> References: <53A35524.6060209@googlemail.com> <92216B76-D488-44E7-81EC-6D2AD8344FC5@oracle.com> <53A42D28.7040103@oracle.com> <53A46D7F.9060208@oracle.com> <53A46EF7.90907@oracle.com> Message-ID: Hi all, The build instructions for linux where very good! I was able to build the project without any problems. Regards Jann 2014-06-20 19:27 GMT+02:00, Kevin Rushforth : > To be clear, you will still use the 8u-dev repo at the existing URL: > > http://hg.openjdk.java.net/openjfx/8u-dev/rt > > It's just that after Monday the repo will "become" the place where 8u40 > work is done. > > Regarding the build, it is a bit painful to set up for Windows, but not > too bad as long as you don't need to build WebKit. We would be > interested in hearing whether the instructions on the Wiki are > sufficient for you to get the build working. > > -- Kevin > > > Stephen F Northover wrote: >> Ok, let us know how you get on with building FX. >> >> NOTE: The accessibility code is not there in 8u20 so you will just be >> ensuring that you can build on Windows (there is nothing there to >> test). The accessibility code will be going back into 8u40 on Monday >> or Tuesday so you'll need to get that release at that time and build >> it instead when it becomes available. It's good to debug the build >> process though because it can be painful building from source. >> >> Steve >> >> On 2014-06-20, 12:43 PM, Jann Schneider wrote: >>> Hi all, >>> >>> @Steven: thx for the links. I'll try to build the openjfx project on >>> the windows 7 notebook and test the sample apps with NVDA then. >>> Today i tried the latest ea of jdk1.8.0_20 and sample apps with nvd